From a48ad29c160ba65d6cf8532510b25f0b9ae765e6 Mon Sep 17 00:00:00 2001 From: Ilya Sivanev Date: Mon, 21 Jan 2019 17:49:11 +0300 Subject: [PATCH] Use more detailed error output of unknown field; --- conn.go | 3 ++- query.go | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/conn.go b/conn.go index 968c9253..7b3db53d 100644 --- a/conn.go +++ b/conn.go @@ -1133,7 +1133,8 @@ func (c *Conn) prepareEx(name, sql string, opts *PrepareExOptions) (ps *Prepared ps.FieldDescriptions[i].FormatCode = TextFormatCode } } else { - return nil, errors.Errorf("unknown oid: %d", ps.FieldDescriptions[i].DataType) + fd := ps.FieldDescriptions[i] + return nil, errors.Errorf("unknown oid: %d, name: %s", fd.DataType, fd.Name) } } case *pgproto3.ReadyForQuery: diff --git a/query.go b/query.go index ad3ed84b..d85ee771 100644 --- a/query.go +++ b/query.go @@ -137,7 +137,8 @@ func (rows *Rows) Next() bool { rows.fields[i].DataTypeName = dt.Name rows.fields[i].FormatCode = TextFormatCode } else { - rows.fatal(errors.Errorf("unknown oid: %d", rows.fields[i].DataType)) + fd := rows.fields[i] + rows.fatal(errors.Errorf("unknown oid: %d, name: %s", fd.DataType, fd.Name)) return false } } @@ -259,7 +260,7 @@ func (rows *Rows) Scan(dest ...interface{}) (err error) { } } } else { - rows.fatal(scanArgError{col: i, err: errors.Errorf("unknown oid: %v", fd.DataType)}) + rows.fatal(scanArgError{col: i, err: errors.Errorf("unknown oid: %v, name: %s", fd.DataType, fd.Name)}) } } @@ -507,7 +508,8 @@ func (c *Conn) readUntilRowDescription() ([]FieldDescription, error) { if dt, ok := c.ConnInfo.DataTypeForOID(fieldDescriptions[i].DataType); ok { fieldDescriptions[i].DataTypeName = dt.Name } else { - return nil, errors.Errorf("unknown oid: %d", fieldDescriptions[i].DataType) + fd := fieldDescriptions[i] + return nil, errors.Errorf("unknown oid: %d, name: %s", fd.DataType, fd.Name) } } return fieldDescriptions, nil