MCPcopy Create free account
hub / github.com/go-pg/pg / appendValues

Method appendValues

orm/insert.go:230–271  ·  view source on GitHub ↗
(
	fmter QueryFormatter, b []byte, fields []*Field, strct reflect.Value,
)

Source from the content-addressed store, hash-verified

228}
229
230func (q *InsertQuery) appendValues(
231 fmter QueryFormatter, b []byte, fields []*Field, strct reflect.Value,
232) (_ []byte, err error) {
233 for i, f := range fields {
234 if i > 0 {
235 b = append(b, ", "...)
236 }
237
238 app, ok := q.q.modelValues[f.SQLName]
239 if ok {
240 b, err = app.AppendQuery(fmter, b)
241 if err != nil {
242 return nil, err
243 }
244 q.addReturningField(f)
245 continue
246 }
247
248 switch {
249 case q.placeholder:
250 b = append(b, '?')
251 case (f.Default != "" || f.NullZero()) && f.HasZeroValue(strct):
252 b = append(b, "DEFAULT"...)
253 q.addReturningField(f)
254 default:
255 b = f.AppendValue(b, strct, 1)
256 }
257 }
258
259 for i, v := range q.q.extraValues {
260 if i > 0 || len(fields) > 0 {
261 b = append(b, ", "...)
262 }
263
264 b, err = v.value.AppendQuery(fmter, b)
265 if err != nil {
266 return nil, err
267 }
268 }
269
270 return b, nil
271}
272
273func (q *InsertQuery) appendSliceValues(
274 fmter QueryFormatter, b []byte, fields []*Field, slice reflect.Value,

Callers 2

appendColumnsValuesMethod · 0.95
appendSliceValuesMethod · 0.95

Calls 5

addReturningFieldMethod · 0.95
NullZeroMethod · 0.80
HasZeroValueMethod · 0.80
AppendQueryMethod · 0.65
AppendValueMethod · 0.65

Tested by

no test coverage detected