diff --git a/stdlib/sql_test.go b/stdlib/sql_test.go index 1bbafd14..0ac45a93 100644 --- a/stdlib/sql_test.go +++ b/stdlib/sql_test.go @@ -325,6 +325,44 @@ func TestConnQuery(t *testing.T) { ensureConnValid(t, db) } +func TestConnQueryNull(t *testing.T) { + db := openDB(t) + defer closeDB(t, db) + + rows, err := db.Query("select $1::int", nil) + if err != nil { + t.Fatalf("db.Query unexpectedly failed: %v", err) + } + + rowCount := int64(0) + + for rows.Next() { + rowCount++ + + var n sql.NullInt64 + if err := rows.Scan(&n); err != nil { + t.Fatalf("rows.Scan unexpectedly failed: %v", err) + } + if n.Valid != false { + t.Errorf("Expected n to be null, but it was %v", n) + } + } + err = rows.Err() + if err != nil { + t.Fatalf("rows.Err unexpectedly is: %v", err) + } + if rowCount != 1 { + t.Fatalf("Expected to receive 11 rows, instead received %d", rowCount) + } + + err = rows.Close() + if err != nil { + t.Fatalf("rows.Close unexpectedly failed: %v", err) + } + + ensureConnValid(t, db) +} + func TestConnQueryRowByteSlice(t *testing.T) { db := openDB(t) defer closeDB(t, db)