MCPcopy Index your code
hub / github.com/upper/db / Set

Method Set

internal/sqlbuilder/update.go:104–141  ·  view source on GitHub ↗
(terms ...interface{})

Source from the content-addressed store, hash-verified

102}
103
104func (upd *updater) Set(terms ...interface{}) db.Updater {
105 return upd.frame(func(uq *updaterQuery) error {
106 if uq.columnValues == nil {
107 uq.columnValues = &exql.ColumnValues{}
108 }
109
110 if len(terms) == 1 {
111 ff, vv, err := Map(terms[0], nil)
112 if err == nil && len(ff) > 0 {
113 cvs := make([]exql.Fragment, 0, len(ff))
114 args := make([]interface{}, 0, len(vv))
115
116 for i := range ff {
117 cv := &exql.ColumnValue{
118 Column: exql.ColumnWithName(ff[i]),
119 Operator: upd.SQL().t.AssignmentOperator,
120 }
121
122 var localArgs []interface{}
123 cv.Value, localArgs = upd.SQL().t.PlaceholderValue(vv[i])
124
125 args = append(args, localArgs...)
126 cvs = append(cvs, cv)
127 }
128
129 uq.columnValues.Insert(cvs...)
130 uq.columnValuesArgs = append(uq.columnValuesArgs, args...)
131
132 return nil
133 }
134 }
135
136 cv, arguments := upd.SQL().t.setColumnValues(terms)
137 uq.columnValues.Insert(cv.ColumnValues...)
138 uq.columnValuesArgs = append(uq.columnValuesArgs, arguments...)
139 return nil
140 })
141}
142
143func (upd *updater) Amend(fn func(string) string) db.Updater {
144 return upd.frame(func(uq *updaterQuery) error {

Callers

nothing calls this directly

Calls 7

frameMethod · 0.95
SQLMethod · 0.95
ColumnWithNameFunction · 0.92
MapFunction · 0.85
PlaceholderValueMethod · 0.80
setColumnValuesMethod · 0.80
InsertMethod · 0.65

Tested by

no test coverage detected