formatInsert formats INSERT statements
(stmt *ast.InsertStatement)
| 259 | |
| 260 | // formatInsert formats INSERT statements |
| 261 | func (f *SQLFormatter) formatInsert(stmt *ast.InsertStatement) error { |
| 262 | f.writeKeyword("INSERT INTO") |
| 263 | f.builder.WriteString(" " + stmt.TableName) |
| 264 | |
| 265 | if len(stmt.Columns) > 0 { |
| 266 | f.builder.WriteString(" (") |
| 267 | f.formatExpressionList(stmt.Columns, ", ") |
| 268 | f.builder.WriteString(")") |
| 269 | } |
| 270 | |
| 271 | if len(stmt.Values) > 0 { |
| 272 | f.writeNewline() |
| 273 | f.writeKeyword("VALUES") |
| 274 | for i, row := range stmt.Values { |
| 275 | if i > 0 { |
| 276 | f.builder.WriteString(",") |
| 277 | } |
| 278 | f.builder.WriteString(" (") |
| 279 | f.formatExpressionList(row, ", ") |
| 280 | f.builder.WriteString(")") |
| 281 | } |
| 282 | } |
| 283 | |
| 284 | if stmt.Query != nil { |
| 285 | f.writeNewline() |
| 286 | if sel, ok := stmt.Query.(*ast.SelectStatement); ok { |
| 287 | return f.formatSelect(sel) |
| 288 | } |
| 289 | // For SetOperation or other statement types, use Format if available |
| 290 | if fmtable, ok := stmt.Query.(interface { |
| 291 | Format(ast.FormatOptions) string |
| 292 | }); ok { |
| 293 | f.builder.WriteString(fmtable.Format(ast.FormatOptions{})) |
| 294 | } |
| 295 | } |
| 296 | |
| 297 | return nil |
| 298 | } |
| 299 | |
| 300 | // formatUpdate formats UPDATE statements |
| 301 | func (f *SQLFormatter) formatUpdate(stmt *ast.UpdateStatement) error { |
no test coverage detected