]> Cypherpunks repositories - gostls13.git/commitdiff
database/sql: add "defer rows.Close()" to the example code.
authorNigel Tao <nigeltao@golang.org>
Tue, 25 Mar 2014 02:32:18 +0000 (13:32 +1100)
committerNigel Tao <nigeltao@golang.org>
Tue, 25 Mar 2014 02:32:18 +0000 (13:32 +1100)
Strictly speaking, it's not necessary in example_test.go, as the
Rows.Close docs say that "If Next returns false, the Rows are closed
automatically". However, if the for loop breaks or returns early, it's
not obvious that you'll leak unless you explicitly call Rows.Close.

LGTM=bradfitz
R=bradfitz
CC=golang-codereviews, rsc
https://golang.org/cl/79330043

src/pkg/database/sql/example_test.go
src/pkg/database/sql/sql.go

index d47eed50c0a175edc256696c117fa4b5f7184d58..dcb74e06998d9f8184c39ca1a6aa6f78b6432a31 100644 (file)
@@ -18,6 +18,7 @@ func ExampleDB_Query() {
        if err != nil {
                log.Fatal(err)
        }
+       defer rows.Close()
        for rows.Next() {
                var name string
                if err := rows.Scan(&name); err != nil {
index 4f86d24b2e5e819b149e399b2e8d16f14516091f..e891d4f4c4179d1ed87b68a104bd167e6087ca34 100644 (file)
@@ -1494,6 +1494,7 @@ func (s *Stmt) finalClose() error {
 //
 //     rows, err := db.Query("SELECT ...")
 //     ...
+//     defer rows.Close()
 //     for rows.Next() {
 //         var id int
 //         var name string