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.go8
1 files changed, 8 insertions, 0 deletions
diff --git a/vendor/github.com/uptrace/bun/query_update.go b/vendor/github.com/uptrace/bun/query_update.go
index 708bcfbce..146d695b8 100644
--- a/vendor/github.com/uptrace/bun/query_update.go
+++ b/vendor/github.com/uptrace/bun/query_update.go
@@ -271,10 +271,18 @@ func (q *UpdateQuery) mustAppendSet(fmter schema.Formatter, b []byte) (_ []byte,
switch model := q.tableModel.(type) {
case *structTableModel:
+ pos := len(b)
b, err = q.appendSetStruct(fmter, b, model)
if err != nil {
return nil, err
}
+
+ // Validate if no values were appended after SET clause.
+ // e.g. UPDATE users SET WHERE id = 1
+ // See issues858
+ if len(b) == pos {
+ return nil, errors.New("bun: empty SET clause is not allowed in the UPDATE query")
+ }
case *sliceTableModel:
return nil, errors.New("bun: to bulk Update, use CTE and VALUES")
default: