diff options
Diffstat (limited to 'vendor/github.com/uptrace/bun/query_update.go')
-rw-r--r-- | vendor/github.com/uptrace/bun/query_update.go | 18 |
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...) |