summaryrefslogtreecommitdiff
path: root/vendor/github.com/uptrace/bun/query_base.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2021-10-24 13:14:37 +0200
committerLibravatar GitHub <noreply@github.com>2021-10-24 13:14:37 +0200
commit8b7c3507fe0c8f6e921ee2de2c170ef93eeb7275 (patch)
treee79e3f5a59fb8942de79955bd26bf665be0acce8 /vendor/github.com/uptrace/bun/query_base.go
parentdocs typo fix (#290) (diff)
downloadgotosocial-8b7c3507fe0c8f6e921ee2de2c170ef93eeb7275.tar.xz
upstep bun to v1.0.14 (#291)
Diffstat (limited to 'vendor/github.com/uptrace/bun/query_base.go')
-rw-r--r--vendor/github.com/uptrace/bun/query_base.go45
1 files changed, 36 insertions, 9 deletions
diff --git a/vendor/github.com/uptrace/bun/query_base.go b/vendor/github.com/uptrace/bun/query_base.go
index 60226890f..9739d93e2 100644
--- a/vendor/github.com/uptrace/bun/query_base.go
+++ b/vendor/github.com/uptrace/bun/query_base.go
@@ -6,6 +6,7 @@ import (
"database/sql/driver"
"errors"
"fmt"
+ "time"
"github.com/uptrace/bun/dialect/feature"
"github.com/uptrace/bun/internal"
@@ -164,6 +165,13 @@ func (q *baseQuery) getModel(dest []interface{}) (Model, error) {
return newModel(q.db, dest)
}
+func (q *baseQuery) beforeAppendModel(ctx context.Context, query Query) error {
+ if q.tableModel != nil {
+ return q.tableModel.BeforeAppendModel(ctx, query)
+ }
+ return nil
+}
+
//------------------------------------------------------------------------------
func (q *baseQuery) checkSoftDelete() error {
@@ -260,6 +268,11 @@ func (q *baseQuery) addColumn(column schema.QueryWithArgs) {
}
func (q *baseQuery) excludeColumn(columns []string) {
+ if q.table == nil {
+ q.setErr(errNilModel)
+ return
+ }
+
if q.columns == nil {
for _, f := range q.table.Fields {
q.columns = append(q.columns, schema.UnsafeIdent(f.Name))
@@ -456,7 +469,7 @@ func (q *baseQuery) _getFields(omitPK bool) ([]*schema.Field, error) {
func (q *baseQuery) scan(
ctx context.Context,
- iquery IQuery,
+ iquery Query,
query string,
model Model,
hasDest bool,
@@ -488,7 +501,7 @@ func (q *baseQuery) scan(
func (q *baseQuery) exec(
ctx context.Context,
- iquery IQuery,
+ iquery Query,
query string,
) (sql.Result, error) {
ctx, event := q.db.beforeQuery(ctx, iquery, query, nil, q.model)
@@ -623,11 +636,23 @@ func (q *whereBaseQuery) appendWhere(
b = append(b, q.tableModel.Table().SQLAlias...)
b = append(b, '.')
}
- b = append(b, q.tableModel.Table().SoftDeleteField.SQLName...)
- if q.flags.Has(deletedFlag) {
- b = append(b, " IS NOT NULL"...)
+
+ field := q.tableModel.Table().SoftDeleteField
+ b = append(b, field.SQLName...)
+
+ if field.NullZero {
+ if q.flags.Has(deletedFlag) {
+ b = append(b, " IS NOT NULL"...)
+ } else {
+ b = append(b, " IS NULL"...)
+ }
} else {
- b = append(b, " IS NULL"...)
+ if q.flags.Has(deletedFlag) {
+ b = append(b, " != "...)
+ } else {
+ b = append(b, " = "...)
+ }
+ b = fmter.Dialect().AppendTime(b, time.Time{})
}
}
@@ -794,9 +819,11 @@ func (q *returningQuery) addReturningField(field *schema.Field) {
func (q *returningQuery) hasReturning() bool {
if len(q.returning) == 1 {
- switch q.returning[0].Query {
- case "null", "NULL":
- return false
+ if ret := q.returning[0]; len(ret.Args) == 0 {
+ switch ret.Query {
+ case "", "null", "NULL":
+ return false
+ }
}
}
return len(q.returning) > 0 || len(q.returningFields) > 0