From be89cce214a4e9ee8369c8624e284ec2801467e3 Mon Sep 17 00:00:00 2001 From: Jack Christensen Date: Sat, 1 Jun 2019 17:30:38 -0500 Subject: [PATCH] Fix NULL with extendedQueryBuilder --- extended_query_builder.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/extended_query_builder.go b/extended_query_builder.go index b41ba6be..7807ad1b 100644 --- a/extended_query_builder.go +++ b/extended_query_builder.go @@ -72,20 +72,29 @@ func (eqb *extendedQueryBuilder) encodeExtendedParamValue(ci *pgtype.ConnInfo, o } var err error + var buf []byte pos := len(eqb.paramValueBytes) switch arg := arg.(type) { case pgtype.BinaryEncoder: - eqb.paramValueBytes, err = arg.EncodeBinary(ci, eqb.paramValueBytes) + buf, err = arg.EncodeBinary(ci, eqb.paramValueBytes) if err != nil { return nil, err } + if buf == nil { + return nil, nil + } + eqb.paramValueBytes = buf return eqb.paramValueBytes[pos:], nil case pgtype.TextEncoder: - eqb.paramValueBytes, err = arg.EncodeText(ci, eqb.paramValueBytes) + buf, err = arg.EncodeText(ci, eqb.paramValueBytes) if err != nil { return nil, err } + if buf == nil { + return nil, nil + } + eqb.paramValueBytes = buf return eqb.paramValueBytes[pos:], nil case string: return []byte(arg), nil