From e08a188515546234166a30756f05cedd04019ac4 Mon Sep 17 00:00:00 2001 From: Robert Lin Date: Sun, 10 Mar 2019 23:38:11 -0700 Subject: [PATCH] Fix enum handling --- values.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/values.go b/values.go index 0c571d74..e7e6c1f7 100644 --- a/values.go +++ b/values.go @@ -189,7 +189,15 @@ func encodePreparedStatementArgument(ci *pgtype.ConnInfo, buf []byte, oid pgtype sp := len(buf) buf = pgio.AppendInt32(buf, -1) - argBuf, err := value.(pgtype.BinaryEncoder).EncodeBinary(ci, buf) + var argBuf []byte + switch valueEncoder := value.(type) { + case pgtype.BinaryEncoder: + argBuf, err = valueEncoder.EncodeBinary(ci, buf) + case pgtype.TextEncoder: + argBuf, err = valueEncoder.EncodeText(ci, buf) + default: + return nil, fmt.Errorf("invalid encode type %v", valueEncoder) + } if err != nil { return nil, err }