MCPcopy
hub / github.com/go-gorm/gorm / prepareValues

Function prepareValues

scan.go:15–37  ·  view source on GitHub ↗

prepareValues prepare values slice

(values []interface{}, db *DB, columnTypes []*sql.ColumnType, columns []string)

Source from the content-addressed store, hash-verified

13
14// prepareValues prepare values slice
15func prepareValues(values []interface{}, db *DB, columnTypes []*sql.ColumnType, columns []string) {
16 if db.Statement.Schema != nil {
17 for idx, name := range columns {
18 if field := db.Statement.Schema.LookUpField(name); field != nil {
19 values[idx] = reflect.New(reflect.PointerTo(field.FieldType)).Interface()
20 continue
21 }
22 values[idx] = new(interface{})
23 }
24 } else if len(columnTypes) > 0 {
25 for idx, columnType := range columnTypes {
26 if columnType.ScanType() != nil {
27 values[idx] = reflect.New(reflect.PointerTo(columnType.ScanType())).Interface()
28 } else {
29 values[idx] = new(interface{})
30 }
31 }
32 } else {
33 for idx := range columns {
34 values[idx] = new(interface{})
35 }
36 }
37}
38
39func scanIntoMap(mapValue map[string]interface{}, values []interface{}, columns []string) {
40 for idx, column := range columns {

Callers 1

ScanFunction · 0.85

Calls 3

LookUpFieldMethod · 0.80
NewMethod · 0.65
ScanTypeMethod · 0.65

Tested by

no test coverage detected