From 2a0443335563425ce1d6e61a07f4fbe9a743d8c3 Mon Sep 17 00:00:00 2001 From: Jack Christensen Date: Fri, 8 Aug 2014 10:31:47 -0500 Subject: [PATCH] Fix misleading error message --- conn.go | 2 +- query_test.go | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/conn.go b/conn.go index 5f1cf262..98229ad5 100644 --- a/conn.go +++ b/conn.go @@ -530,7 +530,7 @@ func (c *Conn) sendPreparedQuery(ps *PreparedStatement, arguments ...interface{} case VarcharArrayOid: err = encodeTextArray(wbuf, arguments[i], VarcharOid) default: - return SerializationError(fmt.Sprintf("%T is not a core type and it does not implement Encoder", arg)) + return SerializationError(fmt.Sprintf("Cannot encode %T into oid %v - %T must implement Encoder or be converted to a string", arg, oid, arg)) } } if err != nil { diff --git a/query_test.go b/query_test.go index 506afa3c..0e6e36fa 100644 --- a/query_test.go +++ b/query_test.go @@ -437,6 +437,7 @@ func TestQueryRowErrors(t *testing.T) { type allTypes struct { i16 int16 + s string } var actual, zero allTypes @@ -451,6 +452,7 @@ func TestQueryRowErrors(t *testing.T) { {"select $1::badtype", []interface{}{"Jack"}, []interface{}{&actual.i16}, `type "badtype" does not exist`}, {"SYNTAX ERROR", []interface{}{}, []interface{}{&actual.i16}, "SQLSTATE 42601"}, {"select $1::text", []interface{}{"Jack"}, []interface{}{&actual.i16}, "Expected type oid 21 but received type oid 25"}, + {"select $1::int8range", []interface{}{int(705)}, []interface{}{&actual.s}, "Cannot encode int into oid 3926 - int must implement Encoder or be converted to a string"}, } for i, tt := range tests {