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 }