@@ -23,34 +23,38 @@ type updater struct {
23
23
mu sync.Mutex
24
24
}
25
25
26
- func (qu * updater ) Set (terms ... interface {}) Updater {
27
- if len (terms ) == 1 {
28
- ff , vv , _ := Map (terms [0 ], nil )
26
+ func (qu * updater ) Set (columns ... interface {}) Updater {
29
27
30
- cvs := make ([]exql.Fragment , 0 , len (ff ))
31
- args := make ([]interface {}, 0 , len (vv ))
28
+ if len (columns ) == 1 {
29
+ ff , vv , err := Map (columns [0 ], nil )
30
+ if err == nil {
32
31
33
- for i := range ff {
34
- cv := & exql.ColumnValue {
35
- Column : exql .ColumnWithName (ff [i ]),
36
- Operator : qu .builder .t .AssignmentOperator ,
37
- }
32
+ cvs := make ([]exql.Fragment , 0 , len (ff ))
33
+ args := make ([]interface {}, 0 , len (vv ))
38
34
39
- var localArgs []interface {}
40
- cv .Value , localArgs = qu .builder .t .PlaceholderValue (vv [i ])
35
+ for i := range ff {
36
+ cv := & exql.ColumnValue {
37
+ Column : exql .ColumnWithName (ff [i ]),
38
+ Operator : qu .builder .t .AssignmentOperator ,
39
+ }
41
40
42
- args = append (args , localArgs ... )
43
- cvs = append (cvs , cv )
44
- }
41
+ var localArgs []interface {}
42
+ cv .Value , localArgs = qu .builder .t .PlaceholderValue (vv [i ])
43
+
44
+ args = append (args , localArgs ... )
45
+ cvs = append (cvs , cv )
46
+ }
45
47
46
- qu .columnValues .Insert (cvs ... )
47
- qu .columnValuesArgs = append (qu .columnValuesArgs , args ... )
48
- } else if len (terms ) > 1 {
49
- cv , arguments := qu .builder .t .ToColumnValues (terms )
50
- qu .columnValues .Insert (cv .ColumnValues ... )
51
- qu .columnValuesArgs = append (qu .columnValuesArgs , arguments ... )
48
+ qu .columnValues .Insert (cvs ... )
49
+ qu .columnValuesArgs = append (qu .columnValuesArgs , args ... )
50
+ return qu
51
+ }
52
52
}
53
53
54
+ cv , arguments := qu .builder .t .ToColumnValues (columns )
55
+ qu .columnValues .Insert (cv .ColumnValues ... )
56
+ qu .columnValuesArgs = append (qu .columnValuesArgs , arguments ... )
57
+
54
58
return qu
55
59
}
56
60
0 commit comments