summaryrefslogtreecommitdiff
path: root/vendor/github.com/uptrace/bun/query_update.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/uptrace/bun/query_update.go')
-rw-r--r--vendor/github.com/uptrace/bun/query_update.go18
1 files changed, 14 insertions, 4 deletions
diff --git a/vendor/github.com/uptrace/bun/query_update.go b/vendor/github.com/uptrace/bun/query_update.go
index a5d9a17f2..df583db25 100644
--- a/vendor/github.com/uptrace/bun/query_update.go
+++ b/vendor/github.com/uptrace/bun/query_update.go
@@ -100,6 +100,11 @@ func (q *UpdateQuery) Value(column string, expr string, args ...interface{}) *Up
return q
}
+func (q *UpdateQuery) OmitZero() *UpdateQuery {
+ q.omitZero = true
+ return q
+}
+
//------------------------------------------------------------------------------
func (q *UpdateQuery) WherePK() *UpdateQuery {
@@ -165,9 +170,6 @@ func (q *UpdateQuery) Operation() string {
}
func (q *UpdateQuery) AppendQuery(fmter schema.Formatter, b []byte) (_ []byte, err error) {
- if q.err != nil {
- return nil, q.err
- }
fmter = formatterWithModel(fmter, q)
b, err = q.appendWith(fmter, b)
@@ -254,7 +256,7 @@ func (q *UpdateQuery) appendSetStruct(
isTemplate := fmter.IsNop()
pos := len(b)
for _, f := range fields {
- if q.omitZero && f.NullZero && f.HasZeroValue(model.strct) {
+ if q.omitZero && f.HasZeroValue(model.strct) {
continue
}
@@ -381,12 +383,20 @@ func (db *UpdateQuery) updateSliceWhere(model *sliceTableModel) string {
//------------------------------------------------------------------------------
func (q *UpdateQuery) Exec(ctx context.Context, dest ...interface{}) (sql.Result, error) {
+ if q.err != nil {
+ return nil, q.err
+ }
+
if q.table != nil {
if err := q.beforeUpdateHook(ctx); err != nil {
return nil, err
}
}
+ if err := q.beforeAppendModel(ctx, q); err != nil {
+ return nil, err
+ }
+
queryBytes, err := q.AppendQuery(q.db.fmter, q.db.makeQueryBytes())
if err != nil {
return nil, err