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 b415ff201..1662245a8 100644
--- a/vendor/github.com/uptrace/bun/query_update.go
+++ b/vendor/github.com/uptrace/bun/query_update.go
@@ -43,7 +43,7 @@ func (q *UpdateQuery) Conn(db IConn) *UpdateQuery {
}
func (q *UpdateQuery) Model(model interface{}) *UpdateQuery {
- q.setTableModel(model)
+ q.setModel(model)
return q
}
@@ -53,7 +53,12 @@ func (q *UpdateQuery) Apply(fn func(*UpdateQuery) *UpdateQuery) *UpdateQuery {
}
func (q *UpdateQuery) With(name string, query schema.QueryAppender) *UpdateQuery {
- q.addWith(name, query)
+ q.addWith(name, query, false)
+ return q
+}
+
+func (q *UpdateQuery) WithRecursive(name string, query schema.QueryAppender) *UpdateQuery {
+ q.addWith(name, query, true)
return q
}
@@ -380,9 +385,14 @@ func (q *UpdateQuery) updateSliceSet(
}
var b []byte
- for i, field := range fields {
- if i > 0 {
+ pos := len(b)
+ for _, field := range fields {
+ if field.SkipUpdate() {
+ continue
+ }
+ if len(b) != pos {
b = append(b, ", "...)
+ pos = len(b)
}
if fmter.HasFeature(feature.UpdateMultiTable) {
b = append(b, model.table.SQLAlias...)