From d5dbe546e461261056b5fda1a2ac9fc6d36c69e1 Mon Sep 17 00:00:00 2001 From: Kiril Vladimiroff Date: Tue, 11 Feb 2020 16:12:21 +0200 Subject: Always defer *sql.Rows.Close and consult with Err (#844) * Always defer *sql.Rows.Close and consult with Err database/sql.Rows.Next() makes sure to call Close only after exhausting result rows which would NOT happen when returning early from a bad Scan. Close being idempotent makes it a great candidate to get always deferred regardless of what happens later on the result set. This change also makes sure call Err() after exhausting Next() and propagate non-nil results from it as the documentation advises. Closes #764 Signed-off-by: Kiril Vladimiroff * Override named result parameters in last returns Signed-off-by: Kiril Vladimiroff * Do the same over new changes that got merged Signed-off-by: Kiril Vladimiroff Co-authored-by: Neil Alexander --- common/keydb/postgres/server_key_table.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'common/keydb/postgres/server_key_table.go') diff --git a/common/keydb/postgres/server_key_table.go b/common/keydb/postgres/server_key_table.go index 8fb9a0ee..6b13cc3c 100644 --- a/common/keydb/postgres/server_key_table.go +++ b/common/keydb/postgres/server_key_table.go @@ -117,7 +117,7 @@ func (s *serverKeyStatements) bulkSelectServerKeys( ExpiredTS: gomatrixserverlib.Timestamp(expiredTS), } } - return results, nil + return results, rows.Err() } func (s *serverKeyStatements) upsertServerKeys( -- cgit v1.2.3