MCPcopy Index your code
hub / github.com/Masterminds/squirrel / appendValuesToSQL

Method appendValuesToSQL

insert.go:117–146  ·  view source on GitHub ↗
(w io.Writer, args []interface{})

Source from the content-addressed store, hash-verified

115}
116
117func (d *insertData) appendValuesToSQL(w io.Writer, args []interface{}) ([]interface{}, error) {
118 if len(d.Values) == 0 {
119 return args, errors.New("values for insert statements are not set")
120 }
121
122 io.WriteString(w, "VALUES ")
123
124 valuesStrings := make([]string, len(d.Values))
125 for r, row := range d.Values {
126 valueStrings := make([]string, len(row))
127 for v, val := range row {
128 if vs, ok := val.(Sqlizer); ok {
129 vsql, vargs, err := vs.ToSql()
130 if err != nil {
131 return nil, err
132 }
133 valueStrings[v] = vsql
134 args = append(args, vargs...)
135 } else {
136 valueStrings[v] = "?"
137 args = append(args, val)
138 }
139 }
140 valuesStrings[r] = fmt.Sprintf("(%s)", strings.Join(valueStrings, ","))
141 }
142
143 io.WriteString(w, strings.Join(valuesStrings, ","))
144
145 return args, nil
146}
147
148func (d *insertData) appendSelectToSQL(w io.Writer, args []interface{}) ([]interface{}, error) {
149 if d.Select == nil {

Callers 1

ToSqlMethod · 0.95

Calls 2

JoinMethod · 0.80
ToSqlMethod · 0.65

Tested by

no test coverage detected