From 05fe5f8b05285cac23190b1d99543e98924f2dee Mon Sep 17 00:00:00 2001 From: Jack Christensen Date: Fri, 21 Mar 2025 20:33:32 -0500 Subject: [PATCH] Explain seemingly redundant rows.Close() in CollectOneRow fixes https://github.com/jackc/pgx/issues/2282 --- rows.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rows.go b/rows.go index 268559ce..f6f26f47 100644 --- a/rows.go +++ b/rows.go @@ -473,6 +473,8 @@ func CollectOneRow[T any](rows Rows, fn RowToFunc[T]) (T, error) { return value, err } + // The defer rows.Close() won't have executed yet. If the query returned more than one row, rows would still be open. + // rows.Close() must be called before rows.Err() so we explicitly call it here. rows.Close() return value, rows.Err() }