Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <psteinhardt@gitlab.com>2020-11-17 12:50:16 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2020-11-17 12:50:16 +0300
commit4a6451746c2e3cd3e6aab83f14495384fc8a9cae (patch)
tree4acf3e9ec8cd16159aafc75efd8dbca411079d43
parent056aeb4c13a88dae4282e5d45d981fdf2a7bd9c5 (diff)
parentcae616cc514f903c55505fd52b619c4907ffae29 (diff)
Merge branch 'smh-add-err-check-linter' into 'master'
Add linter for checking SQL row errors See merge request gitlab-org/gitaly!2788
-rw-r--r--.golangci.yml1
-rw-r--r--internal/praefect/datastore/glsql/postgres.go11
-rw-r--r--internal/praefect/datastore/queue.go3
3 files changed, 5 insertions, 10 deletions
diff --git a/.golangci.yml b/.golangci.yml
index 91ba3db3c..12a028484 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -20,6 +20,7 @@ linters:
- maligned
- noctx
- sqlclosecheck
+ - rowserrcheck
issues:
# Excluding configuration per-path, per-linter, per-text and per-source
diff --git a/internal/praefect/datastore/glsql/postgres.go b/internal/praefect/datastore/glsql/postgres.go
index 5a0231e1e..8259c5f50 100644
--- a/internal/praefect/datastore/glsql/postgres.go
+++ b/internal/praefect/datastore/glsql/postgres.go
@@ -136,21 +136,14 @@ type DestProvider interface {
}
// ScanAll reads all data from 'rows' into holders provided by 'in'.
-// It will also 'Close' source after completion.
func ScanAll(rows *sql.Rows, in DestProvider) (err error) {
- defer func() {
- if cErr := rows.Close(); cErr != nil && err == nil {
- err = cErr
- }
- }()
-
for rows.Next() {
if err = rows.Scan(in.To()...); err != nil {
return err
}
}
- err = rows.Err()
- return err
+
+ return nil
}
// Uint64Provider allows to use it with ScanAll function to read all rows into it and return result as a slice.
diff --git a/internal/praefect/datastore/queue.go b/internal/praefect/datastore/queue.go
index 1899a7bee..545fac26e 100644
--- a/internal/praefect/datastore/queue.go
+++ b/internal/praefect/datastore/queue.go
@@ -402,13 +402,14 @@ func (rq PostgresReplicationEventQueue) Acknowledge(ctx context.Context, state J
if err != nil {
return nil, fmt.Errorf("query: %w", err)
}
+ defer rows.Close()
var acknowledged glsql.Uint64Provider
if err := glsql.ScanAll(rows, &acknowledged); err != nil {
return nil, fmt.Errorf("scan: %w", err)
}
- return acknowledged.Values(), nil
+ return acknowledged.Values(), rows.Err()
}
// StartHealthUpdate starts periodical update of the event's health identifier.