summaryrefslogtreecommitdiff
path: root/vendor/github.com/uptrace/bun/dialect/pgdialect
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/uptrace/bun/dialect/pgdialect')
-rw-r--r--vendor/github.com/uptrace/bun/dialect/pgdialect/append.go8
-rw-r--r--vendor/github.com/uptrace/bun/dialect/pgdialect/array_scan.go8
-rw-r--r--vendor/github.com/uptrace/bun/dialect/pgdialect/dialect.go7
-rw-r--r--vendor/github.com/uptrace/bun/dialect/pgdialect/go.mod7
-rw-r--r--vendor/github.com/uptrace/bun/dialect/pgdialect/go.sum22
-rw-r--r--vendor/github.com/uptrace/bun/dialect/pgdialect/scan.go17
6 files changed, 12 insertions, 57 deletions
diff --git a/vendor/github.com/uptrace/bun/dialect/pgdialect/append.go b/vendor/github.com/uptrace/bun/dialect/pgdialect/append.go
index 475621197..e8480b6be 100644
--- a/vendor/github.com/uptrace/bun/dialect/pgdialect/append.go
+++ b/vendor/github.com/uptrace/bun/dialect/pgdialect/append.go
@@ -94,12 +94,12 @@ func arrayAppendDriverValue(fmter schema.Formatter, b []byte, v reflect.Value) [
func arrayAppender(typ reflect.Type) schema.AppenderFunc {
kind := typ.Kind()
- if kind == reflect.Ptr {
- typ = typ.Elem()
- kind = typ.Kind()
- }
switch kind {
+ case reflect.Ptr:
+ if fn := arrayAppender(typ.Elem()); fn != nil {
+ return schema.PtrAppender(fn)
+ }
case reflect.Slice, reflect.Array:
// ok:
default:
diff --git a/vendor/github.com/uptrace/bun/dialect/pgdialect/array_scan.go b/vendor/github.com/uptrace/bun/dialect/pgdialect/array_scan.go
index 33d31f325..a8ff29715 100644
--- a/vendor/github.com/uptrace/bun/dialect/pgdialect/array_scan.go
+++ b/vendor/github.com/uptrace/bun/dialect/pgdialect/array_scan.go
@@ -12,12 +12,12 @@ import (
func arrayScanner(typ reflect.Type) schema.ScannerFunc {
kind := typ.Kind()
- if kind == reflect.Ptr {
- typ = typ.Elem()
- kind = typ.Kind()
- }
switch kind {
+ case reflect.Ptr:
+ if fn := arrayScanner(typ.Elem()); fn != nil {
+ return schema.PtrScanner(fn)
+ }
case reflect.Slice, reflect.Array:
// ok:
default:
diff --git a/vendor/github.com/uptrace/bun/dialect/pgdialect/dialect.go b/vendor/github.com/uptrace/bun/dialect/pgdialect/dialect.go
index fb210751b..837c2d8ab 100644
--- a/vendor/github.com/uptrace/bun/dialect/pgdialect/dialect.go
+++ b/vendor/github.com/uptrace/bun/dialect/pgdialect/dialect.go
@@ -24,7 +24,8 @@ type Dialect struct {
func New() *Dialect {
d := new(Dialect)
d.tables = schema.NewTables(d)
- d.features = feature.Returning |
+ d.features = feature.CTE |
+ feature.Returning |
feature.DefaultPlaceholder |
feature.DoubleColonCast |
feature.InsertTableAlias |
@@ -70,8 +71,8 @@ func (d *Dialect) onField(field *schema.Field) {
}
if field.Tag.HasOption("array") {
- field.Append = arrayAppender(field.IndirectType)
- field.Scan = arrayScanner(field.IndirectType)
+ field.Append = arrayAppender(field.StructField.Type)
+ field.Scan = arrayScanner(field.StructField.Type)
}
}
diff --git a/vendor/github.com/uptrace/bun/dialect/pgdialect/go.mod b/vendor/github.com/uptrace/bun/dialect/pgdialect/go.mod
deleted file mode 100644
index 0cad1ce5b..000000000
--- a/vendor/github.com/uptrace/bun/dialect/pgdialect/go.mod
+++ /dev/null
@@ -1,7 +0,0 @@
-module github.com/uptrace/bun/dialect/pgdialect
-
-go 1.16
-
-replace github.com/uptrace/bun => ../..
-
-require github.com/uptrace/bun v0.4.3
diff --git a/vendor/github.com/uptrace/bun/dialect/pgdialect/go.sum b/vendor/github.com/uptrace/bun/dialect/pgdialect/go.sum
deleted file mode 100644
index 4d0f1c1bb..000000000
--- a/vendor/github.com/uptrace/bun/dialect/pgdialect/go.sum
+++ /dev/null
@@ -1,22 +0,0 @@
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
-github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
-github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc h1:9lRDQMhESg+zvGYmW5DyG0UqvY96Bu5QYsTLvCHdrgo=
-github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc/go.mod h1:bciPuU6GHm1iF1pBvUfxfsH0Wmnc2VbpgvbI9ZWuIRs=
-github.com/vmihailenco/msgpack/v5 v5.3.4 h1:qMKAwOV+meBw2Y8k9cVwAy7qErtYCwBzZ2ellBfvnqc=
-github.com/vmihailenco/msgpack/v5 v5.3.4/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc=
-github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g=
-github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds=
-golang.org/x/sys v0.0.0-20210616094352-59db8d763f22 h1:RqytpXGR1iVNX7psjB3ff8y7sNFinVFvkx1c8SjBkio=
-golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/vendor/github.com/uptrace/bun/dialect/pgdialect/scan.go b/vendor/github.com/uptrace/bun/dialect/pgdialect/scan.go
index 9e22282f5..e06bb8bc2 100644
--- a/vendor/github.com/uptrace/bun/dialect/pgdialect/scan.go
+++ b/vendor/github.com/uptrace/bun/dialect/pgdialect/scan.go
@@ -1,28 +1,11 @@
package pgdialect
import (
- "fmt"
"reflect"
"github.com/uptrace/bun/schema"
)
func scanner(typ reflect.Type) schema.ScannerFunc {
- if typ.Kind() == reflect.Interface {
- return scanInterface
- }
return schema.Scanner(typ)
}
-
-func scanInterface(dest reflect.Value, src interface{}) error {
- if dest.IsNil() {
- dest.Set(reflect.ValueOf(src))
- return nil
- }
-
- dest = dest.Elem()
- if fn := scanner(dest.Type()); fn != nil {
- return fn(dest, src)
- }
- return fmt.Errorf("bun: can't scan %#v into %s", src, dest.Type())
-}