Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions internal/format/expressions.go
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,10 @@ func formatTupleLiteral(sb *strings.Builder, val interface{}) {
// formatIdentifier formats an identifier.
func formatIdentifier(sb *strings.Builder, id *ast.Identifier) {
sb.WriteString(id.Name())
if id.Alias != "" {
sb.WriteString(" AS ")
sb.WriteString(id.Alias)
}
}

// formatTableIdentifier formats a table identifier.
Expand Down
12 changes: 12 additions & 0 deletions internal/format/statements.go
Original file line number Diff line number Diff line change
Expand Up @@ -550,6 +550,18 @@ func formatCreateQuery(sb *strings.Builder, q *ast.CreateQuery) {
sb.WriteString(" SAMPLE BY ")
Expression(sb, q.SampleBy)
}
// Format SETTINGS clause (before AS SELECT)
if len(q.Settings) > 0 {
sb.WriteString(" SETTINGS ")
for i, s := range q.Settings {
if i > 0 {
sb.WriteString(", ")
}
sb.WriteString(s.Name)
sb.WriteString(" = ")
Expression(sb, s.Value)
}
}
if q.AsSelect != nil {
sb.WriteString(" AS ")
Statement(sb, q.AsSelect)
Expand Down
3 changes: 2 additions & 1 deletion parser/parser_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -269,9 +269,10 @@ func TestParser(t *testing.T) {
// Strip comments from expected since formatter doesn't preserve them
expected := strings.TrimSpace(stripComments(query))
// Compare with format normalization (whitespace + trailing semicolons)
// Use case-insensitive comparison since formatter uses uppercase keywords
formattedNorm := normalizeForFormat(formatted)
expectedNorm := normalizeForFormat(expected)
if formattedNorm != expectedNorm {
if !strings.EqualFold(formattedNorm, expectedNorm) {
if metadata.TodoFormat {
if *checkFormat {
t.Logf("FORMAT STILL FAILING:\nExpected:\n%s\n\nGot:\n%s", expected, formatted)
Expand Down
2 changes: 1 addition & 1 deletion parser/testdata/00012_array_join_alias_2/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00021_1_select_with_in/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00021_2_select_with_in/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00021_3_select_with_in/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00032_aggregate_key64/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00033_aggregate_key_string/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00035_aggregate_keys128/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00036_aggregate_hashed/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00053_replicate_segfault/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00075_left_array_join/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00078_group_by_arrays/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00078_string_concat/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00081_int_div_or_zero/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00149_function_url_hash/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00164_quantileBfloat16/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00178_quantile_ddsketch/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00207_left_array_join/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00254_tuple_extremes/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00255_array_concat_string/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00266_read_overflow_mode/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00284_external_aggregation/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00287_column_const_with_nan/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00324_hashing_enums/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00396_uuid/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00402_nan_and_extremes/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00425_count_nullable/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00442_filter_by_nullable/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00500_point_in_polygon_bug_2/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00515_gcd_lcm/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00522_multidimensional/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00534_exp10/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00556_array_intersect/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00557_array_resize/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00583_limit_by_expressions/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00627_recursive_alias/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00634_rename_view/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00700_decimal_round/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00710_array_enumerate_dense/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00718_format_datetime/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00718_format_datetime_1/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00800_function_java_hash/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00800_low_cardinality_join/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00805_round_down/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00840_top_k_weighted/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00863_comma_join_in/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00879_cast_to_decimal_crash/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00917_least_sqr/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00954_resample_combinator/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00974_low_cardinality_cast/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00980_crash_nullable_decimal/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00981_topK_topKWeighted_long/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/00990_function_current_user/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/01015_random_constant/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/01016_macros/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/01025_array_compact_generic/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/01032_cityHash64_for_decimal/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/01041_h3_is_valid/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/01047_nullable_rand/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/01050_group_array_sample/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/01086_modulo_or_zero/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/01098_sum/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/01178_int_field_to_decimal/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/01222_system_codecs/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/01252_weird_time_zone/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/01259_datetime64_ubsan/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/01268_DateTime64_in_WHERE/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/01277_fromUnixTimestamp64/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/01277_toUnixTimestamp64/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/01292_quantile_array_bug/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/01322_cast_keep_nullable/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
2 changes: 1 addition & 1 deletion parser/testdata/01323_too_many_threads_bug/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"todo_format":true}
{}
Loading