summaryrefslogtreecommitdiff
path: root/vendor/github.com/uptrace/bun/dialect/pgdialect/dialect.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/uptrace/bun/dialect/pgdialect/dialect.go')
-rw-r--r--vendor/github.com/uptrace/bun/dialect/pgdialect/dialect.go29
1 files changed, 26 insertions, 3 deletions
diff --git a/vendor/github.com/uptrace/bun/dialect/pgdialect/dialect.go b/vendor/github.com/uptrace/bun/dialect/pgdialect/dialect.go
index 2180e6ab7..05c4e371f 100644
--- a/vendor/github.com/uptrace/bun/dialect/pgdialect/dialect.go
+++ b/vendor/github.com/uptrace/bun/dialect/pgdialect/dialect.go
@@ -3,6 +3,7 @@ package pgdialect
import (
"database/sql"
"fmt"
+ "strconv"
"strings"
"github.com/uptrace/bun"
@@ -25,8 +26,9 @@ func init() {
type Dialect struct {
schema.BaseDialect
- tables *schema.Tables
- features feature.Feature
+ tables *schema.Tables
+ features feature.Feature
+ uintAsInt bool
}
var _ schema.Dialect = (*Dialect)(nil)
@@ -53,7 +55,8 @@ func New(opts ...DialectOption) *Dialect {
feature.SelectExists |
feature.GeneratedIdentity |
feature.CompositeIn |
- feature.DeleteReturning
+ feature.DeleteReturning |
+ feature.AlterColumnExists
for _, opt := range opts {
opt(d)
@@ -70,6 +73,12 @@ func WithoutFeature(other feature.Feature) DialectOption {
}
}
+func WithAppendUintAsInt(on bool) DialectOption {
+ return func(d *Dialect) {
+ d.uintAsInt = on
+ }
+}
+
func (d *Dialect) Init(*sql.DB) {}
func (d *Dialect) Name() dialect.Name {
@@ -127,6 +136,20 @@ func (d *Dialect) IdentQuote() byte {
return '"'
}
+func (d *Dialect) AppendUint32(b []byte, n uint32) []byte {
+ if d.uintAsInt {
+ return strconv.AppendInt(b, int64(int32(n)), 10)
+ }
+ return strconv.AppendUint(b, uint64(n), 10)
+}
+
+func (d *Dialect) AppendUint64(b []byte, n uint64) []byte {
+ if d.uintAsInt {
+ return strconv.AppendInt(b, int64(n), 10)
+ }
+ return strconv.AppendUint(b, n, 10)
+}
+
func (d *Dialect) AppendSequence(b []byte, _ *schema.Table, _ *schema.Field) []byte {
return appendGeneratedAsIdentity(b)
}