(fmter QueryFormatter, b []byte, strct reflect.Value)
| 193 | } |
| 194 | |
| 195 | func (q *UpdateQuery) appendSetStruct(fmter QueryFormatter, b []byte, strct reflect.Value) ([]byte, error) { |
| 196 | fields, err := q.q.getFields() |
| 197 | if err != nil { |
| 198 | return nil, err |
| 199 | } |
| 200 | |
| 201 | if len(fields) == 0 { |
| 202 | fields = q.q.tableModel.Table().DataFields |
| 203 | } |
| 204 | |
| 205 | pos := len(b) |
| 206 | for _, f := range fields { |
| 207 | if q.omitZero && f.NullZero() && f.HasZeroValue(strct) { |
| 208 | continue |
| 209 | } |
| 210 | |
| 211 | if len(b) != pos { |
| 212 | b = append(b, ", "...) |
| 213 | pos = len(b) |
| 214 | } |
| 215 | |
| 216 | b = append(b, f.Column...) |
| 217 | b = append(b, " = "...) |
| 218 | |
| 219 | if q.placeholder { |
| 220 | b = append(b, '?') |
| 221 | continue |
| 222 | } |
| 223 | |
| 224 | app, ok := q.q.modelValues[f.SQLName] |
| 225 | if ok { |
| 226 | b, err = app.AppendQuery(fmter, b) |
| 227 | if err != nil { |
| 228 | return nil, err |
| 229 | } |
| 230 | } else { |
| 231 | b = f.AppendValue(b, strct, 1) |
| 232 | } |
| 233 | } |
| 234 | |
| 235 | for i, v := range q.q.extraValues { |
| 236 | if i > 0 || len(fields) > 0 { |
| 237 | b = append(b, ", "...) |
| 238 | } |
| 239 | |
| 240 | b = types.AppendIdent(b, v.column, 1) |
| 241 | b = append(b, " = "...) |
| 242 | |
| 243 | b, err = v.value.AppendQuery(fmter, b) |
| 244 | if err != nil { |
| 245 | return nil, err |
| 246 | } |
| 247 | } |
| 248 | |
| 249 | return b, nil |
| 250 | } |
| 251 | |
| 252 | func (q *UpdateQuery) appendSetSlice(b []byte) ([]byte, error) { |
no test coverage detected