Add driver.RowsColumnTypeDatabaseTypeName support to stdlib.Rows

batch-wip
Jack Christensen 2017-05-19 16:05:30 -05:00
parent 5ee76a26c8
commit f9cb22e4b8
2 changed files with 32 additions and 0 deletions

View File

@ -71,6 +71,7 @@ import (
"errors"
"fmt"
"io"
"strings"
"sync"
"github.com/jackc/pgx"
@ -405,6 +406,10 @@ func (r *Rows) Columns() []string {
return names
}
func (r *Rows) ColumnTypeDatabaseTypeName(index int) string {
return strings.ToUpper(r.rows.FieldDescriptions()[index].DataTypeName)
}
func (r *Rows) Close() error {
r.rows.Close()
return nil

View File

@ -1073,3 +1073,30 @@ func TestConnQueryContextCancel(t *testing.T) {
t.Errorf("mock server err: %v", err)
}
}
func TestRowsColumnTypeDatabaseTypeName(t *testing.T) {
db := openDB(t)
defer closeDB(t, db)
rows, err := db.Query("select * from generate_series(1,10) n")
if err != nil {
t.Fatalf("db.Query failed: %v", err)
}
columnTypes, err := rows.ColumnTypes()
if err != nil {
t.Fatalf("rows.ColumnTypes failed: %v", err)
}
if len(columnTypes) != 1 {
t.Fatalf("len(columnTypes) => %v, want %v", len(columnTypes), 1)
}
if columnTypes[0].DatabaseTypeName() != "INT4" {
t.Errorf("columnTypes[0].DatabaseTypeName() => %v, want %v", columnTypes[0].DatabaseTypeName(), "INT4")
}
rows.Close()
ensureConnValid(t, db)
}