MCPcopy Create free account
hub / github.com/ajitpratap0/GoSQLX / formatMergeStatement

Method formatMergeStatement

cmd/gosqlx/cmd/sql_formatter.go:1270–1306  ·  view source on GitHub ↗

formatMergeStatement formats MERGE statements with proper indentation

(stmt *ast.MergeStatement)

Source from the content-addressed store, hash-verified

1268
1269// formatMergeStatement formats MERGE statements with proper indentation
1270func (f *SQLFormatter) formatMergeStatement(stmt *ast.MergeStatement) error {
1271 // MERGE INTO target_table
1272 f.writeKeyword("MERGE INTO")
1273 f.builder.WriteString(" ")
1274 f.formatTableReference(&stmt.TargetTable)
1275 if stmt.TargetAlias != "" {
1276 f.builder.WriteString(" " + stmt.TargetAlias)
1277 }
1278
1279 // USING source_table
1280 f.writeNewline()
1281 f.writeKeyword("USING")
1282 f.builder.WriteString(" ")
1283 f.formatTableReference(&stmt.SourceTable)
1284 if stmt.SourceAlias != "" {
1285 f.builder.WriteString(" " + stmt.SourceAlias)
1286 }
1287
1288 // ON condition
1289 if stmt.OnCondition != nil {
1290 f.writeNewline()
1291 f.writeKeyword("ON")
1292 f.builder.WriteString(" ")
1293 if err := f.formatExpression(stmt.OnCondition); err != nil {
1294 return fmt.Errorf("failed to format ON condition: %w", err)
1295 }
1296 }
1297
1298 // WHEN clauses
1299 for _, whenClause := range stmt.WhenClauses {
1300 if err := f.formatMergeWhenClause(whenClause); err != nil {
1301 return fmt.Errorf("failed to format WHEN clause: %w", err)
1302 }
1303 }
1304
1305 return nil
1306}
1307
1308// formatMergeWhenClause formats a WHEN clause in a MERGE statement
1309func (f *SQLFormatter) formatMergeWhenClause(when *ast.MergeWhenClause) error {

Callers 1

formatStatementMethod · 0.95

Calls 6

writeKeywordMethod · 0.95
formatTableReferenceMethod · 0.95
writeNewlineMethod · 0.95
formatExpressionMethod · 0.95
formatMergeWhenClauseMethod · 0.95
ErrorfMethod · 0.65

Tested by

no test coverage detected