summaryrefslogtreecommitdiffstats
path: root/Godeps/_workspace/src/github.com/lib/pq
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2015-12-16 15:49:04 -0500
committerChristopher Speller <crspeller@gmail.com>2015-12-16 15:49:04 -0500
commitf54936467101bb08bbdf7f3d9c341134c06b83c3 (patch)
tree5976a456548fce8beb79014c7c2780afeea89a8a /Godeps/_workspace/src/github.com/lib/pq
parentf08deca79f24ff1efe086483a091cf807a5a2e14 (diff)
downloadchat-f54936467101bb08bbdf7f3d9c341134c06b83c3.tar.gz
chat-f54936467101bb08bbdf7f3d9c341134c06b83c3.tar.bz2
chat-f54936467101bb08bbdf7f3d9c341134c06b83c3.zip
Updating go dependancies
Diffstat (limited to 'Godeps/_workspace/src/github.com/lib/pq')
-rw-r--r--Godeps/_workspace/src/github.com/lib/pq/conn.go14
-rw-r--r--Godeps/_workspace/src/github.com/lib/pq/conn_test.go53
2 files changed, 61 insertions, 6 deletions
diff --git a/Godeps/_workspace/src/github.com/lib/pq/conn.go b/Godeps/_workspace/src/github.com/lib/pq/conn.go
index ce661d66e..4af880fb5 100644
--- a/Godeps/_workspace/src/github.com/lib/pq/conn.go
+++ b/Godeps/_workspace/src/github.com/lib/pq/conn.go
@@ -557,13 +557,15 @@ func (cn *conn) simpleQuery(q string) (res *rows, err error) {
cn.bad = true
errorf("unexpected message %q in simple query execution", t)
}
- res = &rows{
- cn: cn,
- colNames: st.colNames,
- colTyps: st.colTyps,
- colFmts: st.colFmts,
- done: true,
+ if res == nil {
+ res = &rows{
+ cn: cn,
+ colNames: st.colNames,
+ colTyps: st.colTyps,
+ colFmts: st.colFmts,
+ }
}
+ res.done = true
case 'Z':
cn.processReadyForQuery(r)
// done
diff --git a/Godeps/_workspace/src/github.com/lib/pq/conn_test.go b/Godeps/_workspace/src/github.com/lib/pq/conn_test.go
index af07e5596..5cb8095a3 100644
--- a/Godeps/_workspace/src/github.com/lib/pq/conn_test.go
+++ b/Godeps/_workspace/src/github.com/lib/pq/conn_test.go
@@ -345,6 +345,59 @@ func TestEmptyQuery(t *testing.T) {
}
}
+// Test that rows.Columns() is correct even if there are no result rows.
+func TestEmptyResultSetColumns(t *testing.T) {
+ db := openTestConn(t)
+ defer db.Close()
+
+ rows, err := db.Query("SELECT 1 AS a, text 'bar' AS bar WHERE FALSE")
+ if err != nil {
+ t.Fatal(err)
+ }
+ cols, err := rows.Columns()
+ if err != nil {
+ t.Fatal(err)
+ }
+ if len(cols) != 2 {
+ t.Fatalf("unexpected number of columns %d in response to an empty query", len(cols))
+ }
+ if rows.Next() {
+ t.Fatal("unexpected row")
+ }
+ if rows.Err() != nil {
+ t.Fatal(rows.Err())
+ }
+ if cols[0] != "a" || cols[1] != "bar" {
+ t.Fatalf("unexpected Columns result %v", cols)
+ }
+
+ stmt, err := db.Prepare("SELECT $1::int AS a, text 'bar' AS bar WHERE FALSE")
+ if err != nil {
+ t.Fatal(err)
+ }
+ rows, err = stmt.Query(1)
+ if err != nil {
+ t.Fatal(err)
+ }
+ cols, err = rows.Columns()
+ if err != nil {
+ t.Fatal(err)
+ }
+ if len(cols) != 2 {
+ t.Fatalf("unexpected number of columns %d in response to an empty query", len(cols))
+ }
+ if rows.Next() {
+ t.Fatal("unexpected row")
+ }
+ if rows.Err() != nil {
+ t.Fatal(rows.Err())
+ }
+ if cols[0] != "a" || cols[1] != "bar" {
+ t.Fatalf("unexpected Columns result %v", cols)
+ }
+
+}
+
func TestEncodeDecode(t *testing.T) {
db := openTestConn(t)
defer db.Close()