Skip to content

Commit 557ca40

Browse files
authored
orm: allow multiple set() in one update() call (fix #26116) (#26117)
1 parent 6d8c261 commit 557ca40

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

vlib/orm/orm_func.v

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -362,8 +362,8 @@ pub fn (qb_ &QueryBuilder[T]) set(assign string, values ...Primitive) !&QueryBui
362362
}
363363
fields << field
364364
}
365-
qb.data.fields = fields
366-
qb.data.data = values
365+
qb.data.fields << fields
366+
qb.data.data << values
367367
return qb
368368
}
369369

vlib/orm/orm_func_test.v

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -498,13 +498,23 @@ fn test_orm_func_stmts() {
498498
assert only_names[0].score == 0
499499
assert only_names[0].created_at == none
500500

501-
// update
501+
// update with single `set()`
502502
qb.set('age = ?, title = ?', 71, 'boss')!.where('name = ?', 'John')!.update()!
503503
john := qb.where('name = ?', 'John')!.query()!
504504
assert john[0].name == 'John'
505505
assert john[0].age == 71
506506
assert john[0].title == 'boss'
507507

508+
// update with multiple `set()`
509+
510+
qb.set('age = ?', 51)!
511+
.set('title = ?', 'employee')!
512+
.where('name = ?', 'John')!.update()!
513+
john2 := qb.where('name = ?', 'John')!.query()!
514+
assert john2[0].name == 'John'
515+
assert john2[0].age == 51
516+
assert john2[0].title == 'employee'
517+
508518
// delete
509519
qb.where('name = ?', 'John')!.delete()!
510520
no_john := qb.where('name = ?', 'John')!.query()!

0 commit comments

Comments
 (0)