diff options
Diffstat (limited to 'vendor/github.com/uptrace/bun/dialect/pgdialect')
3 files changed, 36 insertions, 1 deletions
diff --git a/vendor/github.com/uptrace/bun/dialect/pgdialect/append.go b/vendor/github.com/uptrace/bun/dialect/pgdialect/append.go index a60bf5de2..75798b385 100644 --- a/vendor/github.com/uptrace/bun/dialect/pgdialect/append.go +++ b/vendor/github.com/uptrace/bun/dialect/pgdialect/append.go @@ -27,6 +27,9 @@ var ( float64Type = reflect.TypeOf((*float64)(nil)).Elem() sliceFloat64Type = reflect.TypeOf([]float64(nil)) + + timeType = reflect.TypeOf((*time.Time)(nil)).Elem() + sliceTimeType = reflect.TypeOf([]time.Time(nil)) ) func arrayAppend(fmter schema.Formatter, b []byte, v interface{}) []byte { @@ -93,6 +96,8 @@ func (d *Dialect) arrayAppender(typ reflect.Type) schema.AppenderFunc { return appendInt64SliceValue case float64Type: return appendFloat64SliceValue + case timeType: + return appendTimeSliceValue } } @@ -308,6 +313,32 @@ func arrayAppendString(b []byte, s string) []byte { return b } +func appendTimeSliceValue(fmter schema.Formatter, b []byte, v reflect.Value) []byte { + ts := v.Convert(sliceTimeType).Interface().([]time.Time) + return appendTimeSlice(fmter, b, ts) +} + +func appendTimeSlice(fmter schema.Formatter, b []byte, ts []time.Time) []byte { + if ts == nil { + return dialect.AppendNull(b) + } + b = append(b, '\'') + b = append(b, '{') + for _, t := range ts { + b = append(b, '"') + b = t.UTC().AppendFormat(b, "2006-01-02 15:04:05.999999-07:00") + b = append(b, '"') + b = append(b, ',') + } + if len(ts) > 0 { + b[len(b)-1] = '}' // Replace trailing comma. + } else { + b = append(b, '}') + } + b = append(b, '\'') + return b +} + //------------------------------------------------------------------------------ var mapStringStringType = reflect.TypeOf(map[string]string(nil)) diff --git a/vendor/github.com/uptrace/bun/dialect/pgdialect/sqltype.go b/vendor/github.com/uptrace/bun/dialect/pgdialect/sqltype.go index 6c6294d71..dadea5c1c 100644 --- a/vendor/github.com/uptrace/bun/dialect/pgdialect/sqltype.go +++ b/vendor/github.com/uptrace/bun/dialect/pgdialect/sqltype.go @@ -45,6 +45,10 @@ var ( jsonRawMessageType = reflect.TypeOf((*json.RawMessage)(nil)).Elem() ) +func (d *Dialect) DefaultVarcharLen() int { + return 0 +} + func fieldSQLType(field *schema.Field) string { if field.UserSQLType != "" { return field.UserSQLType diff --git a/vendor/github.com/uptrace/bun/dialect/pgdialect/version.go b/vendor/github.com/uptrace/bun/dialect/pgdialect/version.go index 0be479664..b7f683df3 100644 --- a/vendor/github.com/uptrace/bun/dialect/pgdialect/version.go +++ b/vendor/github.com/uptrace/bun/dialect/pgdialect/version.go @@ -2,5 +2,5 @@ package pgdialect // Version is the current release version. func Version() string { - return "1.1.9" + return "1.1.10" } |