summaryrefslogtreecommitdiff
path: root/vendor/github.com/uptrace/bun/schema/append.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/uptrace/bun/schema/append.go')
-rw-r--r--vendor/github.com/uptrace/bun/schema/append.go21
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
+}