diff options
Diffstat (limited to 'vendor/github.com/uptrace/bun/schema/append.go')
-rw-r--r-- | vendor/github.com/uptrace/bun/schema/append.go | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/vendor/github.com/uptrace/bun/schema/append.go b/vendor/github.com/uptrace/bun/schema/append.go index 6f633b101..0cfc1180b 100644 --- a/vendor/github.com/uptrace/bun/schema/append.go +++ b/vendor/github.com/uptrace/bun/schema/append.go @@ -81,7 +81,7 @@ func appendIn(fmter Formatter, b []byte, slice reflect.Value) []byte { sliceLen := slice.Len() if sliceLen == 0 { - return append(b, "NULL"...) + return dialect.AppendNull(b) } for i := 0; i < sliceLen; i++ { @@ -104,3 +104,22 @@ func appendIn(fmter Formatter, b []byte, slice reflect.Value) []byte { } return b } + +//------------------------------------------------------------------------------ + +func NullZero(value interface{}) QueryAppender { + return nullZero{ + value: value, + } +} + +type nullZero struct { + value interface{} +} + +func (nz nullZero) AppendQuery(fmter Formatter, b []byte) (_ []byte, err error) { + if isZero(nz.value) { + return dialect.AppendNull(b), nil + } + return fmter.AppendValue(b, reflect.ValueOf(nz.value)), nil +} |