From: Nigel Tao Date: Tue, 25 Mar 2014 02:32:18 +0000 (+1100) Subject: database/sql: add "defer rows.Close()" to the example code. X-Git-Tag: go1.3beta1~288 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=50ca1a52ca39bdd76bb5f999a67450f5984ebba2;p=gostls13.git database/sql: add "defer rows.Close()" to the example code. 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 --- diff --git a/src/pkg/database/sql/example_test.go b/src/pkg/database/sql/example_test.go index d47eed50c0..dcb74e0699 100644 --- a/src/pkg/database/sql/example_test.go +++ b/src/pkg/database/sql/example_test.go @@ -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 { diff --git a/src/pkg/database/sql/sql.go b/src/pkg/database/sql/sql.go index 4f86d24b2e..e891d4f4c4 100644 --- a/src/pkg/database/sql/sql.go +++ b/src/pkg/database/sql/sql.go @@ -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