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

Method appendSliceValues

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

Source from the content-addressed store, hash-verified

271}
272
273func (q *InsertQuery) appendSliceValues(
274 fmter QueryFormatter, b []byte, fields []*Field, slice reflect.Value,
275) (_ []byte, err error) {
276 if q.placeholder {
277 return q.appendValues(fmter, b, fields, reflect.Value{})
278 }
279
280 sliceLen := slice.Len()
281 for i := 0; i < sliceLen; i++ {
282 if i > 0 {
283 b = append(b, "), ("...)
284 }
285 el := indirect(slice.Index(i))
286 b, err = q.appendValues(fmter, b, fields, el)
287 if err != nil {
288 return nil, err
289 }
290 }
291
292 for i, v := range q.q.extraValues {
293 if i > 0 || len(fields) > 0 {
294 b = append(b, ", "...)
295 }
296
297 b, err = v.value.AppendQuery(fmter, b)
298 if err != nil {
299 return nil, err
300 }
301 }
302
303 return b, nil
304}
305
306func (q *InsertQuery) addReturningField(field *Field) {
307 if len(q.q.returning) > 0 {

Callers 1

appendColumnsValuesMethod · 0.95

Calls 5

appendValuesMethod · 0.95
indirectFunction · 0.85
LenMethod · 0.65
IndexMethod · 0.65
AppendQueryMethod · 0.65

Tested by

no test coverage detected