diff options
author | 2021-09-08 21:13:54 +0100 | |
---|---|---|
committer | 2021-09-08 21:13:54 +0100 | |
commit | 6a2d0d9508392425392738743fa4dd5b5d93bdb4 (patch) | |
tree | 2c076235c197acbb9080745fc79a4b41aaa5452e /vendor/github.com/uptrace/bun/schema/append_value.go | |
parent | update sqlite library -> v1.13.0 (diff) | |
parent | Merge pull request #195 from NyaaaWhatsUpDoc/update/bun-library (diff) | |
download | gotosocial-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.go | 22 |
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()) } } |