summaryrefslogtreecommitdiff
path: root/vendor/github.com/uptrace/bun/schema/append_value.go
diff options
context:
space:
mode:
authorLibravatar kim (grufwub) <grufwub@gmail.com>2021-09-08 21:13:54 +0100
committerLibravatar kim (grufwub) <grufwub@gmail.com>2021-09-08 21:13:54 +0100
commit6a2d0d9508392425392738743fa4dd5b5d93bdb4 (patch)
tree2c076235c197acbb9080745fc79a4b41aaa5452e /vendor/github.com/uptrace/bun/schema/append_value.go
parentupdate sqlite library -> v1.13.0 (diff)
parentMerge pull request #195 from NyaaaWhatsUpDoc/update/bun-library (diff)
downloadgotosocial-6a2d0d9508392425392738743fa4dd5b5d93bdb4.tar.xz
Merge remote-tracking branch 'upstream/main' into update/sqlite-library
Signed-off-by: kim (grufwub) <grufwub@gmail.com>
Diffstat (limited to 'vendor/github.com/uptrace/bun/schema/append_value.go')
-rw-r--r--vendor/github.com/uptrace/bun/schema/append_value.go22
1 files changed, 7 insertions, 15 deletions
diff --git a/vendor/github.com/uptrace/bun/schema/append_value.go b/vendor/github.com/uptrace/bun/schema/append_value.go
index 0c4677069..948ff86af 100644
--- a/vendor/github.com/uptrace/bun/schema/append_value.go
+++ b/vendor/github.com/uptrace/bun/schema/append_value.go
@@ -2,7 +2,6 @@ package schema
import (
"database/sql/driver"
- "encoding/json"
"fmt"
"net"
"reflect"
@@ -14,16 +13,6 @@ import (
"github.com/uptrace/bun/internal"
)
-var (
- timeType = reflect.TypeOf((*time.Time)(nil)).Elem()
- ipType = reflect.TypeOf((*net.IP)(nil)).Elem()
- ipNetType = reflect.TypeOf((*net.IPNet)(nil)).Elem()
- jsonRawMessageType = reflect.TypeOf((*json.RawMessage)(nil)).Elem()
-
- driverValuerType = reflect.TypeOf((*driver.Valuer)(nil)).Elem()
- queryAppenderType = reflect.TypeOf((*QueryAppender)(nil)).Elem()
-)
-
type (
AppenderFunc func(fmter Formatter, b []byte, v reflect.Value) []byte
CustomAppender func(typ reflect.Type) AppenderFunc
@@ -60,6 +49,8 @@ var appenders = []AppenderFunc{
func Appender(typ reflect.Type, custom CustomAppender) AppenderFunc {
switch typ {
+ case bytesType:
+ return appendBytesValue
case timeType:
return appendTimeValue
case ipType:
@@ -93,7 +84,9 @@ func Appender(typ reflect.Type, custom CustomAppender) AppenderFunc {
case reflect.Interface:
return ifaceAppenderFunc(typ, custom)
case reflect.Ptr:
- return ptrAppenderFunc(typ, custom)
+ if fn := Appender(typ.Elem(), custom); fn != nil {
+ return PtrAppender(fn)
+ }
case reflect.Slice:
if typ.Elem().Kind() == reflect.Uint8 {
return appendBytesValue
@@ -123,13 +116,12 @@ func ifaceAppenderFunc(typ reflect.Type, custom func(reflect.Type) AppenderFunc)
}
}
-func ptrAppenderFunc(typ reflect.Type, custom func(reflect.Type) AppenderFunc) AppenderFunc {
- appender := Appender(typ.Elem(), custom)
+func PtrAppender(fn AppenderFunc) AppenderFunc {
return func(fmter Formatter, b []byte, v reflect.Value) []byte {
if v.IsNil() {
return dialect.AppendNull(b)
}
- return appender(fmter, b, v.Elem())
+ return fn(fmter, b, v.Elem())
}
}