diff options
Diffstat (limited to 'vendor/github.com/uptrace/bun/dialect/pgdialect/array.go')
| -rw-r--r-- | vendor/github.com/uptrace/bun/dialect/pgdialect/array.go | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/vendor/github.com/uptrace/bun/dialect/pgdialect/array.go b/vendor/github.com/uptrace/bun/dialect/pgdialect/array.go index 058b9f2fb..b20c20434 100644 --- a/vendor/github.com/uptrace/bun/dialect/pgdialect/array.go +++ b/vendor/github.com/uptrace/bun/dialect/pgdialect/array.go @@ -142,6 +142,10 @@ func (d *Dialect) arrayElemAppender(typ reflect.Type) schema.AppenderFunc { if typ.Implements(driverValuerType) { return arrayAppendDriverValue } + if typ == timeType { + return appendTimeElemValue + } + switch typ.Kind() { case reflect.String: return appendStringElemValue @@ -149,10 +153,20 @@ func (d *Dialect) arrayElemAppender(typ reflect.Type) schema.AppenderFunc { if typ.Elem().Kind() == reflect.Uint8 { return appendBytesElemValue } + case reflect.Ptr: + return schema.PtrAppender(d.arrayElemAppender(typ.Elem())) } return schema.Appender(d, typ) } +func appendTimeElemValue(fmter schema.Formatter, b []byte, v reflect.Value) []byte { + ts := v.Convert(timeType).Interface().(time.Time) + + b = append(b, '"') + b = appendTime(b, ts) + return append(b, '"') +} + func appendStringElemValue(fmter schema.Formatter, b []byte, v reflect.Value) []byte { return appendStringElem(b, v.String()) } |
