Add driver.RowsColumnTypeDatabaseTypeName support to stdlib.Rows
This commit is contained in:
@@ -71,6 +71,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/jackc/pgx"
|
"github.com/jackc/pgx"
|
||||||
@@ -405,6 +406,10 @@ func (r *Rows) Columns() []string {
|
|||||||
return names
|
return names
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r *Rows) ColumnTypeDatabaseTypeName(index int) string {
|
||||||
|
return strings.ToUpper(r.rows.FieldDescriptions()[index].DataTypeName)
|
||||||
|
}
|
||||||
|
|
||||||
func (r *Rows) Close() error {
|
func (r *Rows) Close() error {
|
||||||
r.rows.Close()
|
r.rows.Close()
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -1073,3 +1073,30 @@ func TestConnQueryContextCancel(t *testing.T) {
|
|||||||
t.Errorf("mock server err: %v", err)
|
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)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user