diff --git a/internal/explain/expressions.go b/internal/explain/expressions.go index 4816c581a2..74604df541 100644 --- a/internal/explain/expressions.go +++ b/internal/explain/expressions.go @@ -7,10 +7,15 @@ import ( "github.com/sqlc-dev/doubleclick/ast" ) +// escapeAlias escapes backslashes in alias names for EXPLAIN output +func escapeAlias(alias string) string { + return strings.ReplaceAll(alias, "\\", "\\\\") +} + func explainIdentifier(sb *strings.Builder, n *ast.Identifier, indent string) { name := formatIdentifierName(n) if n.Alias != "" { - fmt.Fprintf(sb, "%sIdentifier %s (alias %s)\n", indent, name, n.Alias) + fmt.Fprintf(sb, "%sIdentifier %s (alias %s)\n", indent, name, escapeAlias(n.Alias)) } else { fmt.Fprintf(sb, "%sIdentifier %s\n", indent, name) } @@ -319,7 +324,7 @@ func explainUnaryExpr(sb *strings.Builder, n *ast.UnaryExpr, indent string, dept func explainSubquery(sb *strings.Builder, n *ast.Subquery, indent string, depth int) { children := 1 if n.Alias != "" { - fmt.Fprintf(sb, "%sSubquery (alias %s) (children %d)\n", indent, n.Alias, children) + fmt.Fprintf(sb, "%sSubquery (alias %s) (children %d)\n", indent, escapeAlias(n.Alias), children) } else { fmt.Fprintf(sb, "%sSubquery (children %d)\n", indent, children) } @@ -349,7 +354,7 @@ func explainAliasedExpr(sb *strings.Builder, n *ast.AliasedExpr, depth int) { } if hasComplexExpr { // Render as Function tuple with alias - fmt.Fprintf(sb, "%sFunction tuple (alias %s) (children %d)\n", indent, n.Alias, 1) + fmt.Fprintf(sb, "%sFunction tuple (alias %s) (children %d)\n", indent, escapeAlias(n.Alias), 1) fmt.Fprintf(sb, "%s ExpressionList (children %d)\n", indent, len(exprs)) for _, expr := range exprs { Node(sb, expr, depth+2) @@ -380,7 +385,7 @@ func explainAliasedExpr(sb *strings.Builder, n *ast.AliasedExpr, depth int) { } if needsFunctionFormat { // Render as Function array with alias - fmt.Fprintf(sb, "%sFunction array (alias %s) (children %d)\n", indent, n.Alias, 1) + fmt.Fprintf(sb, "%sFunction array (alias %s) (children %d)\n", indent, escapeAlias(n.Alias), 1) if len(exprs) > 0 { fmt.Fprintf(sb, "%s ExpressionList (children %d)\n", indent, len(exprs)) } else { @@ -393,20 +398,20 @@ func explainAliasedExpr(sb *strings.Builder, n *ast.AliasedExpr, depth int) { } } } - fmt.Fprintf(sb, "%sLiteral %s (alias %s)\n", indent, FormatLiteral(e), n.Alias) + fmt.Fprintf(sb, "%sLiteral %s (alias %s)\n", indent, FormatLiteral(e), escapeAlias(n.Alias)) case *ast.BinaryExpr: // Binary expressions become functions with alias fnName := OperatorToFunction(e.Op) // For || (concat) operator, flatten chained concatenations if e.Op == "||" { operands := collectConcatOperands(e) - fmt.Fprintf(sb, "%sFunction %s (alias %s) (children %d)\n", indent, fnName, n.Alias, 1) + fmt.Fprintf(sb, "%sFunction %s (alias %s) (children %d)\n", indent, fnName, escapeAlias(n.Alias), 1) fmt.Fprintf(sb, "%s ExpressionList (children %d)\n", indent, len(operands)) for _, op := range operands { Node(sb, op, depth+2) } } else { - fmt.Fprintf(sb, "%sFunction %s (alias %s) (children %d)\n", indent, fnName, n.Alias, 1) + fmt.Fprintf(sb, "%sFunction %s (alias %s) (children %d)\n", indent, fnName, escapeAlias(n.Alias), 1) fmt.Fprintf(sb, "%s ExpressionList (children %d)\n", indent, 2) Node(sb, e.Left, depth+2) Node(sb, e.Right, depth+2) @@ -423,10 +428,10 @@ func explainAliasedExpr(sb *strings.Builder, n *ast.AliasedExpr, depth int) { if inSubqueryContext { switch val := lit.Value.(type) { case int64: - fmt.Fprintf(sb, "%sLiteral Int64_%d (alias %s)\n", indent, -val, n.Alias) + fmt.Fprintf(sb, "%sLiteral Int64_%d (alias %s)\n", indent, -val, escapeAlias(n.Alias)) return case uint64: - fmt.Fprintf(sb, "%sLiteral Int64_-%d (alias %s)\n", indent, val, n.Alias) + fmt.Fprintf(sb, "%sLiteral Int64_-%d (alias %s)\n", indent, val, escapeAlias(n.Alias)) return } } @@ -434,14 +439,14 @@ func explainAliasedExpr(sb *strings.Builder, n *ast.AliasedExpr, depth int) { // Always convert negated floats to literals (especially for -inf, -nan) val := lit.Value.(float64) s := FormatFloat(-val) - fmt.Fprintf(sb, "%sLiteral Float64_%s (alias %s)\n", indent, s, n.Alias) + fmt.Fprintf(sb, "%sLiteral Float64_%s (alias %s)\n", indent, s, escapeAlias(n.Alias)) return } } } // Unary expressions become functions with alias fnName := UnaryOperatorToFunction(e.Op) - fmt.Fprintf(sb, "%sFunction %s (alias %s) (children %d)\n", indent, fnName, n.Alias, 1) + fmt.Fprintf(sb, "%sFunction %s (alias %s) (children %d)\n", indent, fnName, escapeAlias(n.Alias), 1) fmt.Fprintf(sb, "%s ExpressionList (children %d)\n", indent, 1) Node(sb, e.Operand, depth+2) case *ast.FunctionCall: @@ -449,13 +454,13 @@ func explainAliasedExpr(sb *strings.Builder, n *ast.AliasedExpr, depth int) { explainFunctionCallWithAlias(sb, e, n.Alias, indent, depth) case *ast.Identifier: // Identifiers with alias - fmt.Fprintf(sb, "%sIdentifier %s (alias %s)\n", indent, e.Name(), n.Alias) + fmt.Fprintf(sb, "%sIdentifier %s (alias %s)\n", indent, e.Name(), escapeAlias(n.Alias)) case *ast.IntervalExpr: // Interval expressions with alias explainIntervalExpr(sb, e, n.Alias, indent, depth) case *ast.TernaryExpr: // Ternary expressions become if functions with alias - fmt.Fprintf(sb, "%sFunction if (alias %s) (children %d)\n", indent, n.Alias, 1) + fmt.Fprintf(sb, "%sFunction if (alias %s) (children %d)\n", indent, escapeAlias(n.Alias), 1) fmt.Fprintf(sb, "%s ExpressionList (children %d)\n", indent, 3) Node(sb, e.Condition, depth+2) Node(sb, e.Then, depth+2) diff --git a/internal/explain/select.go b/internal/explain/select.go index 789c90aa08..824e6b5b8d 100644 --- a/internal/explain/select.go +++ b/internal/explain/select.go @@ -42,9 +42,9 @@ func explainSelectWithUnionQuery(sb *strings.Builder, n *ast.SelectWithUnionQuer break } } - // When FORMAT is present, SETTINGS is output at SelectWithUnionQuery level + // When SETTINGS comes AFTER FORMAT, it's output at SelectWithUnionQuery level for _, sel := range n.Selects { - if sq, ok := sel.(*ast.SelectQuery); ok && sq.Format != nil && len(sq.Settings) > 0 { + if sq, ok := sel.(*ast.SelectQuery); ok && sq.SettingsAfterFormat && len(sq.Settings) > 0 { fmt.Fprintf(sb, "%s Set\n", indent) break } @@ -122,9 +122,9 @@ func explainSelectQuery(sb *strings.Builder, n *ast.SelectQuery, indent string, Node(sb, expr, depth+2) } } - // SETTINGS - output at SelectQuery level only if there's no FORMAT - // When FORMAT is present, SETTINGS is at SelectWithUnionQuery level instead - if len(n.Settings) > 0 && n.Format == nil { + // SETTINGS is output at SelectQuery level only when NOT after FORMAT + // When SettingsAfterFormat is true, it's output at SelectWithUnionQuery level instead + if len(n.Settings) > 0 && !n.SettingsAfterFormat { fmt.Fprintf(sb, "%s Set\n", indent) } } @@ -238,9 +238,9 @@ func countSelectUnionChildren(n *ast.SelectWithUnionQuery) int { break } } - // When FORMAT is present, SETTINGS is counted at SelectWithUnionQuery level + // When SETTINGS comes AFTER FORMAT, it's counted at SelectWithUnionQuery level for _, sel := range n.Selects { - if sq, ok := sel.(*ast.SelectQuery); ok && sq.Format != nil && len(sq.Settings) > 0 { + if sq, ok := sel.(*ast.SelectQuery); ok && sq.SettingsAfterFormat && len(sq.Settings) > 0 { count++ break } @@ -294,9 +294,8 @@ func countSelectQueryChildren(n *ast.SelectQuery) int { if n.Offset != nil { count++ } - // SETTINGS is counted at SelectQuery level only if there's no FORMAT - // When FORMAT is present, SETTINGS is at SelectWithUnionQuery level instead - if len(n.Settings) > 0 && n.Format == nil { + // SETTINGS is counted at SelectQuery level only when NOT after FORMAT + if len(n.Settings) > 0 && !n.SettingsAfterFormat { count++ } return count diff --git a/parser/testdata/00307_format_xml/metadata.json b/parser/testdata/00307_format_xml/metadata.json index bc5c6edb66..0967ef424b 100644 --- a/parser/testdata/00307_format_xml/metadata.json +++ b/parser/testdata/00307_format_xml/metadata.json @@ -1,6 +1 @@ -{ - "explain_todo": { - "stmt3": true, - "stmt5": true - } -} +{} diff --git a/parser/testdata/00405_output_format_pretty_color/metadata.json b/parser/testdata/00405_output_format_pretty_color/metadata.json index 2445e8def7..13a7459d03 100644 --- a/parser/testdata/00405_output_format_pretty_color/metadata.json +++ b/parser/testdata/00405_output_format_pretty_color/metadata.json @@ -1,28 +1,7 @@ { "explain_todo": { - "stmt10": true, - "stmt11": true, "stmt13": true, - "stmt14": true, - "stmt15": true, - "stmt16": true, - "stmt17": true, - "stmt18": true, - "stmt19": true, - "stmt20": true, "stmt22": true, - "stmt23": true, - "stmt24": true, - "stmt25": true, - "stmt26": true, - "stmt27": true, - "stmt28": true, - "stmt29": true, - "stmt4": true, - "stmt5": true, - "stmt6": true, - "stmt7": true, - "stmt8": true, - "stmt9": true + "stmt4": true } } diff --git a/parser/testdata/00405_pretty_formats/metadata.json b/parser/testdata/00405_pretty_formats/metadata.json index 5429d34364..0967ef424b 100644 --- a/parser/testdata/00405_pretty_formats/metadata.json +++ b/parser/testdata/00405_pretty_formats/metadata.json @@ -1 +1 @@ -{"explain_todo":{"stmt10":true,"stmt12":true,"stmt13":true,"stmt14":true,"stmt15":true,"stmt16":true,"stmt17":true,"stmt18":true,"stmt20":true,"stmt21":true,"stmt22":true,"stmt23":true,"stmt24":true,"stmt25":true,"stmt26":true,"stmt4":true,"stmt5":true,"stmt6":true,"stmt7":true,"stmt8":true,"stmt9":true}} +{} diff --git a/parser/testdata/00722_inner_join/metadata.json b/parser/testdata/00722_inner_join/metadata.json index c2f49d8102..0967ef424b 100644 --- a/parser/testdata/00722_inner_join/metadata.json +++ b/parser/testdata/00722_inner_join/metadata.json @@ -1 +1 @@ -{"explain_todo":{"stmt8":true,"stmt9":true}} +{} diff --git a/parser/testdata/00730_unicode_terminal_format/metadata.json b/parser/testdata/00730_unicode_terminal_format/metadata.json index a08759fb21..0967ef424b 100644 --- a/parser/testdata/00730_unicode_terminal_format/metadata.json +++ b/parser/testdata/00730_unicode_terminal_format/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt21": true - } -} +{} diff --git a/parser/testdata/00963_achimbab/metadata.json b/parser/testdata/00963_achimbab/metadata.json index ef58f80315..0967ef424b 100644 --- a/parser/testdata/00963_achimbab/metadata.json +++ b/parser/testdata/00963_achimbab/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt2": true - } -} +{} diff --git a/parser/testdata/01074_partial_revokes/metadata.json b/parser/testdata/01074_partial_revokes/metadata.json index ff7eb35825..651e92deb1 100644 --- a/parser/testdata/01074_partial_revokes/metadata.json +++ b/parser/testdata/01074_partial_revokes/metadata.json @@ -20,7 +20,6 @@ "stmt34": true, "stmt35": true, "stmt36": true, - "stmt37": true, "stmt39": true, "stmt4": true, "stmt40": true, @@ -41,7 +40,6 @@ "stmt59": true, "stmt6": true, "stmt60": true, - "stmt61": true, "stmt63": true, "stmt64": true, "stmt66": true, diff --git a/parser/testdata/01104_distributed_numbers_test/metadata.json b/parser/testdata/01104_distributed_numbers_test/metadata.json index e9d6e46171..0967ef424b 100644 --- a/parser/testdata/01104_distributed_numbers_test/metadata.json +++ b/parser/testdata/01104_distributed_numbers_test/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt1": true - } -} +{} diff --git a/parser/testdata/01246_extractAllGroupsHorizontal/metadata.json b/parser/testdata/01246_extractAllGroupsHorizontal/metadata.json index b65b07d7a6..0967ef424b 100644 --- a/parser/testdata/01246_extractAllGroupsHorizontal/metadata.json +++ b/parser/testdata/01246_extractAllGroupsHorizontal/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt4": true - } -} +{} diff --git a/parser/testdata/01293_external_sorting_limit_bug/metadata.json b/parser/testdata/01293_external_sorting_limit_bug/metadata.json index e9d6e46171..0967ef424b 100644 --- a/parser/testdata/01293_external_sorting_limit_bug/metadata.json +++ b/parser/testdata/01293_external_sorting_limit_bug/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt1": true - } -} +{} diff --git a/parser/testdata/01318_parallel_final_stuck/metadata.json b/parser/testdata/01318_parallel_final_stuck/metadata.json index 8556c3021f..0967ef424b 100644 --- a/parser/testdata/01318_parallel_final_stuck/metadata.json +++ b/parser/testdata/01318_parallel_final_stuck/metadata.json @@ -1 +1 @@ -{"explain_todo":{"stmt5":true}} +{} diff --git a/parser/testdata/01553_settings_early_apply/metadata.json b/parser/testdata/01553_settings_early_apply/metadata.json index ab9202e88e..0967ef424b 100644 --- a/parser/testdata/01553_settings_early_apply/metadata.json +++ b/parser/testdata/01553_settings_early_apply/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt11": true - } -} +{} diff --git a/parser/testdata/01591_window_functions/metadata.json b/parser/testdata/01591_window_functions/metadata.json index c2f288c6b8..0abe7de429 100644 --- a/parser/testdata/01591_window_functions/metadata.json +++ b/parser/testdata/01591_window_functions/metadata.json @@ -21,7 +21,6 @@ "stmt39": true, "stmt41": true, "stmt45": true, - "stmt46": true, "stmt50": true, "stmt51": true, "stmt52": true, diff --git a/parser/testdata/01600_remerge_sort_lowered_memory_bytes_ratio/metadata.json b/parser/testdata/01600_remerge_sort_lowered_memory_bytes_ratio/metadata.json index 0f293987f1..0967ef424b 100644 --- a/parser/testdata/01600_remerge_sort_lowered_memory_bytes_ratio/metadata.json +++ b/parser/testdata/01600_remerge_sort_lowered_memory_bytes_ratio/metadata.json @@ -1,6 +1 @@ -{ - "explain_todo": { - "stmt5": true, - "stmt6": true - } -} +{} diff --git a/parser/testdata/01640_marks_corruption_regression/metadata.json b/parser/testdata/01640_marks_corruption_regression/metadata.json index bbdf418192..3a06a4a1ac 100644 --- a/parser/testdata/01640_marks_corruption_regression/metadata.json +++ b/parser/testdata/01640_marks_corruption_regression/metadata.json @@ -1,8 +1,5 @@ { "explain_todo": { - "stmt10": true, - "stmt5": true, - "stmt8": true, - "stmt9": true + "stmt5": true } } diff --git a/parser/testdata/01656_test_query_log_factories_info/metadata.json b/parser/testdata/01656_test_query_log_factories_info/metadata.json index ca4725da89..663de47109 100644 --- a/parser/testdata/01656_test_query_log_factories_info/metadata.json +++ b/parser/testdata/01656_test_query_log_factories_info/metadata.json @@ -8,7 +8,6 @@ "stmt24": true, "stmt26": true, "stmt3": true, - "stmt4": true, "stmt7": true, "stmt9": true } diff --git a/parser/testdata/01670_neighbor_lc_bug/metadata.json b/parser/testdata/01670_neighbor_lc_bug/metadata.json index c84e30800d..1295a45747 100644 --- a/parser/testdata/01670_neighbor_lc_bug/metadata.json +++ b/parser/testdata/01670_neighbor_lc_bug/metadata.json @@ -1,6 +1,5 @@ { "explain_todo": { - "stmt3": true, - "stmt7": true + "stmt3": true } } diff --git a/parser/testdata/01730_distributed_group_by_no_merge_order_by_long/metadata.json b/parser/testdata/01730_distributed_group_by_no_merge_order_by_long/metadata.json index 342b3ff5b4..0967ef424b 100644 --- a/parser/testdata/01730_distributed_group_by_no_merge_order_by_long/metadata.json +++ b/parser/testdata/01730_distributed_group_by_no_merge_order_by_long/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt8": true - } -} +{} diff --git a/parser/testdata/01801_approx_total_rows_mergetree_reverse/metadata.json b/parser/testdata/01801_approx_total_rows_mergetree_reverse/metadata.json index b19e612cd1..0967ef424b 100644 --- a/parser/testdata/01801_approx_total_rows_mergetree_reverse/metadata.json +++ b/parser/testdata/01801_approx_total_rows_mergetree_reverse/metadata.json @@ -1 +1 @@ -{"explain_todo":{"stmt4":true,"stmt5":true,"stmt6":true,"stmt7":true}} +{} diff --git a/parser/testdata/01812_optimize_skip_unused_shards_single_node/metadata.json b/parser/testdata/01812_optimize_skip_unused_shards_single_node/metadata.json index e9d6e46171..0967ef424b 100644 --- a/parser/testdata/01812_optimize_skip_unused_shards_single_node/metadata.json +++ b/parser/testdata/01812_optimize_skip_unused_shards_single_node/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt1": true - } -} +{} diff --git a/parser/testdata/01822_union_and_constans_error/metadata.json b/parser/testdata/01822_union_and_constans_error/metadata.json index 51dfabe749..0967ef424b 100644 --- a/parser/testdata/01822_union_and_constans_error/metadata.json +++ b/parser/testdata/01822_union_and_constans_error/metadata.json @@ -1 +1 @@ -{"explain_todo":{"stmt3":true}} +{} diff --git a/parser/testdata/01910_view_dictionary_check_refresh/metadata.json b/parser/testdata/01910_view_dictionary_check_refresh/metadata.json index d21b63e86b..dbdbb76d4f 100644 --- a/parser/testdata/01910_view_dictionary_check_refresh/metadata.json +++ b/parser/testdata/01910_view_dictionary_check_refresh/metadata.json @@ -1,7 +1,5 @@ { "explain_todo": { - "stmt10": true, - "stmt14": true, "stmt6": true } } diff --git a/parser/testdata/02180_group_by_lowcardinality/metadata.json b/parser/testdata/02180_group_by_lowcardinality/metadata.json index b65b07d7a6..0967ef424b 100644 --- a/parser/testdata/02180_group_by_lowcardinality/metadata.json +++ b/parser/testdata/02180_group_by_lowcardinality/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt4": true - } -} +{} diff --git a/parser/testdata/02270_client_name/metadata.json b/parser/testdata/02270_client_name/metadata.json index e9d6e46171..0967ef424b 100644 --- a/parser/testdata/02270_client_name/metadata.json +++ b/parser/testdata/02270_client_name/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt1": true - } -} +{} diff --git a/parser/testdata/02295_GROUP_BY_AggregateFunction/metadata.json b/parser/testdata/02295_GROUP_BY_AggregateFunction/metadata.json index 2dda3f42fa..0967ef424b 100644 --- a/parser/testdata/02295_GROUP_BY_AggregateFunction/metadata.json +++ b/parser/testdata/02295_GROUP_BY_AggregateFunction/metadata.json @@ -1,8 +1 @@ -{ - "explain_todo": { - "stmt4": true, - "stmt5": true, - "stmt6": true, - "stmt7": true - } -} +{} diff --git a/parser/testdata/02402_external_disk_metrics/metadata.json b/parser/testdata/02402_external_disk_metrics/metadata.json index 81e7f59e77..685bb7b242 100644 --- a/parser/testdata/02402_external_disk_metrics/metadata.json +++ b/parser/testdata/02402_external_disk_metrics/metadata.json @@ -1,10 +1,7 @@ { "explain_todo": { - "stmt10": true, - "stmt14": true, "stmt16": true, "stmt17": true, - "stmt18": true, - "stmt4": true + "stmt18": true } } diff --git a/parser/testdata/02441_alter_delete_and_drop_column/metadata.json b/parser/testdata/02441_alter_delete_and_drop_column/metadata.json index a041e88097..1b1665a74b 100644 --- a/parser/testdata/02441_alter_delete_and_drop_column/metadata.json +++ b/parser/testdata/02441_alter_delete_and_drop_column/metadata.json @@ -1,14 +1,11 @@ { "explain_todo": { - "stmt10": true, "stmt11": true, "stmt12": true, "stmt14": true, "stmt3": true, "stmt5": true, - "stmt6": true, "stmt7": true, - "stmt8": true, "stmt9": true } } diff --git a/parser/testdata/02448_clone_replica_lost_part/metadata.json b/parser/testdata/02448_clone_replica_lost_part/metadata.json index 6ff79b5b6e..18d05d78c5 100644 --- a/parser/testdata/02448_clone_replica_lost_part/metadata.json +++ b/parser/testdata/02448_clone_replica_lost_part/metadata.json @@ -25,7 +25,6 @@ "stmt77": true, "stmt80": true, "stmt84": true, - "stmt86": true, "stmt87": true, "stmt9": true, "stmt91": true, diff --git a/parser/testdata/02494_query_cache_ignore_output_settings/metadata.json b/parser/testdata/02494_query_cache_ignore_output_settings/metadata.json index 31cb028fb1..62b81668c3 100644 --- a/parser/testdata/02494_query_cache_ignore_output_settings/metadata.json +++ b/parser/testdata/02494_query_cache_ignore_output_settings/metadata.json @@ -1,7 +1,5 @@ { "explain_todo": { - "stmt10": true, - "stmt11": true, "stmt13": true } } diff --git a/parser/testdata/02494_query_cache_key/metadata.json b/parser/testdata/02494_query_cache_key/metadata.json index deda2d36ad..612a5b7592 100644 --- a/parser/testdata/02494_query_cache_key/metadata.json +++ b/parser/testdata/02494_query_cache_key/metadata.json @@ -1,12 +1,6 @@ { "explain_todo": { "stmt10": true, - "stmt19": true, - "stmt20": true, - "stmt21": true, - "stmt22": true, - "stmt27": true, - "stmt32": true, "stmt7": true, "stmt8": true, "stmt9": true diff --git a/parser/testdata/02494_query_cache_log_comment/metadata.json b/parser/testdata/02494_query_cache_log_comment/metadata.json index c87b56dfa3..dbdbb76d4f 100644 --- a/parser/testdata/02494_query_cache_log_comment/metadata.json +++ b/parser/testdata/02494_query_cache_log_comment/metadata.json @@ -1 +1,5 @@ -{"explain_todo":{"stmt2":true,"stmt3":true,"stmt4":true,"stmt6":true}} +{ + "explain_todo": { + "stmt6": true + } +} diff --git a/parser/testdata/02494_query_cache_metrics/metadata.json b/parser/testdata/02494_query_cache_metrics/metadata.json index af48d4c110..0967ef424b 100644 --- a/parser/testdata/02494_query_cache_metrics/metadata.json +++ b/parser/testdata/02494_query_cache_metrics/metadata.json @@ -1 +1 @@ -{"explain_todo":{"stmt2":true}} +{} diff --git a/parser/testdata/02494_query_cache_sparse_columns/metadata.json b/parser/testdata/02494_query_cache_sparse_columns/metadata.json index bf2276a832..b65b07d7a6 100644 --- a/parser/testdata/02494_query_cache_sparse_columns/metadata.json +++ b/parser/testdata/02494_query_cache_sparse_columns/metadata.json @@ -1 +1,5 @@ -{"explain_todo":{"stmt4":true,"stmt8":true,"stmt9":true}} +{ + "explain_todo": { + "stmt4": true + } +} diff --git a/parser/testdata/02516_projections_with_rollup/metadata.json b/parser/testdata/02516_projections_with_rollup/metadata.json index 4509e9eea5..a56c7cdb0b 100644 --- a/parser/testdata/02516_projections_with_rollup/metadata.json +++ b/parser/testdata/02516_projections_with_rollup/metadata.json @@ -1,7 +1,6 @@ { "explain_todo": { "stmt10": true, - "stmt12": true, - "stmt13": true + "stmt12": true } } diff --git a/parser/testdata/02552_client_format_settings/metadata.json b/parser/testdata/02552_client_format_settings/metadata.json index e9d6e46171..0967ef424b 100644 --- a/parser/testdata/02552_client_format_settings/metadata.json +++ b/parser/testdata/02552_client_format_settings/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt1": true - } -} +{} diff --git a/parser/testdata/02711_trim_aliases/metadata.json b/parser/testdata/02711_trim_aliases/metadata.json index e9d6e46171..c07b240259 100644 --- a/parser/testdata/02711_trim_aliases/metadata.json +++ b/parser/testdata/02711_trim_aliases/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt1": true - } -} +{"explain_todo":{"stmt1":true}} diff --git a/parser/testdata/02805_distributed_queries_timeouts/metadata.json b/parser/testdata/02805_distributed_queries_timeouts/metadata.json index fffcb7d38b..0967ef424b 100644 --- a/parser/testdata/02805_distributed_queries_timeouts/metadata.json +++ b/parser/testdata/02805_distributed_queries_timeouts/metadata.json @@ -1,7 +1 @@ -{ - "explain_todo": { - "stmt2": true, - "stmt3": true, - "stmt4": true - } -} +{} diff --git a/parser/testdata/02896_max_execution_time_with_break_overflow_mode/metadata.json b/parser/testdata/02896_max_execution_time_with_break_overflow_mode/metadata.json index 2ea394d932..0967ef424b 100644 --- a/parser/testdata/02896_max_execution_time_with_break_overflow_mode/metadata.json +++ b/parser/testdata/02896_max_execution_time_with_break_overflow_mode/metadata.json @@ -1 +1 @@ -{"explain_todo":{"stmt2":true,"stmt3":true,"stmt4":true}} +{} diff --git a/parser/testdata/02998_pretty_format_print_readable_number_on_single_value/metadata.json b/parser/testdata/02998_pretty_format_print_readable_number_on_single_value/metadata.json index 56e152fffd..0967ef424b 100644 --- a/parser/testdata/02998_pretty_format_print_readable_number_on_single_value/metadata.json +++ b/parser/testdata/02998_pretty_format_print_readable_number_on_single_value/metadata.json @@ -1 +1 @@ -{"explain_todo":{"stmt14":true,"stmt15":true,"stmt16":true,"stmt17":true,"stmt18":true,"stmt19":true,"stmt20":true,"stmt21":true,"stmt22":true,"stmt23":true,"stmt24":true,"stmt25":true}} +{} diff --git a/parser/testdata/03023_group_by_use_nulls_analyzer_crashes/metadata.json b/parser/testdata/03023_group_by_use_nulls_analyzer_crashes/metadata.json index d9afe34368..4a30edb046 100644 --- a/parser/testdata/03023_group_by_use_nulls_analyzer_crashes/metadata.json +++ b/parser/testdata/03023_group_by_use_nulls_analyzer_crashes/metadata.json @@ -4,9 +4,6 @@ "stmt14": true, "stmt15": true, "stmt4": true, - "stmt5": true, - "stmt7": true, - "stmt8": true, - "stmt9": true + "stmt5": true } } diff --git a/parser/testdata/03145_unicode_quotes/metadata.json b/parser/testdata/03145_unicode_quotes/metadata.json index ef58f80315..0967ef424b 100644 --- a/parser/testdata/03145_unicode_quotes/metadata.json +++ b/parser/testdata/03145_unicode_quotes/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt2": true - } -} +{} diff --git a/parser/testdata/03148_query_log_used_dictionaries/metadata.json b/parser/testdata/03148_query_log_used_dictionaries/metadata.json index b0550dd717..cc4426336e 100644 --- a/parser/testdata/03148_query_log_used_dictionaries/metadata.json +++ b/parser/testdata/03148_query_log_used_dictionaries/metadata.json @@ -1,13 +1,9 @@ { "explain_todo": { "stmt11": true, - "stmt12": true, "stmt14": true, "stmt2": true, - "stmt3": true, "stmt5": true, - "stmt6": true, - "stmt8": true, - "stmt9": true + "stmt8": true } } diff --git a/parser/testdata/03172_format_settings_clauses/metadata.json b/parser/testdata/03172_format_settings_clauses/metadata.json index 972c3e87e9..75570071c7 100644 --- a/parser/testdata/03172_format_settings_clauses/metadata.json +++ b/parser/testdata/03172_format_settings_clauses/metadata.json @@ -4,7 +4,6 @@ "stmt3": true, "stmt4": true, "stmt5": true, - "stmt6": true, "stmt8": true, "stmt9": true } diff --git a/parser/testdata/03229_query_condition_cache_drop_cache/metadata.json b/parser/testdata/03229_query_condition_cache_drop_cache/metadata.json index dbdbb76d4f..0967ef424b 100644 --- a/parser/testdata/03229_query_condition_cache_drop_cache/metadata.json +++ b/parser/testdata/03229_query_condition_cache_drop_cache/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt6": true - } -} +{} diff --git a/parser/testdata/03229_query_condition_cache_final/metadata.json b/parser/testdata/03229_query_condition_cache_final/metadata.json index ccc75f74d5..0967ef424b 100644 --- a/parser/testdata/03229_query_condition_cache_final/metadata.json +++ b/parser/testdata/03229_query_condition_cache_final/metadata.json @@ -1,6 +1 @@ -{ - "explain_todo": { - "stmt15": true, - "stmt9": true - } -} +{} diff --git a/parser/testdata/03229_query_condition_cache_nondeterministic_functions/metadata.json b/parser/testdata/03229_query_condition_cache_nondeterministic_functions/metadata.json index ccc75f74d5..0967ef424b 100644 --- a/parser/testdata/03229_query_condition_cache_nondeterministic_functions/metadata.json +++ b/parser/testdata/03229_query_condition_cache_nondeterministic_functions/metadata.json @@ -1,6 +1 @@ -{ - "explain_todo": { - "stmt15": true, - "stmt9": true - } -} +{} diff --git a/parser/testdata/03229_query_condition_cache_plaintext_condition/metadata.json b/parser/testdata/03229_query_condition_cache_plaintext_condition/metadata.json index 3a37abe779..0967ef424b 100644 --- a/parser/testdata/03229_query_condition_cache_plaintext_condition/metadata.json +++ b/parser/testdata/03229_query_condition_cache_plaintext_condition/metadata.json @@ -1,8 +1 @@ -{ - "explain_todo": { - "stmt10": true, - "stmt16": true, - "stmt17": true, - "stmt9": true - } -} +{} diff --git a/parser/testdata/03229_query_condition_cache_system_table/metadata.json b/parser/testdata/03229_query_condition_cache_system_table/metadata.json index d5a2677f27..0967ef424b 100644 --- a/parser/testdata/03229_query_condition_cache_system_table/metadata.json +++ b/parser/testdata/03229_query_condition_cache_system_table/metadata.json @@ -1,8 +1 @@ -{ - "explain_todo": { - "stmt12": true, - "stmt18": true, - "stmt21": true, - "stmt9": true - } -} +{} diff --git a/parser/testdata/03240_insert_select_named_tuple/metadata.json b/parser/testdata/03240_insert_select_named_tuple/metadata.json index 0438c9b85f..0967ef424b 100644 --- a/parser/testdata/03240_insert_select_named_tuple/metadata.json +++ b/parser/testdata/03240_insert_select_named_tuple/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt15": true - } -} +{} diff --git a/parser/testdata/03279_join_choose_build_table/metadata.json b/parser/testdata/03279_join_choose_build_table/metadata.json index ca1d33d8ba..28681d458b 100644 --- a/parser/testdata/03279_join_choose_build_table/metadata.json +++ b/parser/testdata/03279_join_choose_build_table/metadata.json @@ -1,10 +1,6 @@ { "explain_todo": { - "stmt12": true, - "stmt13": true, "stmt15": true, - "stmt17": true, - "stmt18": true, "stmt20": true, "stmt21": true, "stmt22": true, diff --git a/parser/testdata/03279_join_choose_build_table_auto_statistics/metadata.json b/parser/testdata/03279_join_choose_build_table_auto_statistics/metadata.json index 52f07a6b85..7b61becc83 100644 --- a/parser/testdata/03279_join_choose_build_table_auto_statistics/metadata.json +++ b/parser/testdata/03279_join_choose_build_table_auto_statistics/metadata.json @@ -1,7 +1,5 @@ { "explain_todo": { - "stmt12": true, - "stmt13": true, "stmt15": true, "stmt16": true } diff --git a/parser/testdata/03279_join_choose_build_table_statistics/metadata.json b/parser/testdata/03279_join_choose_build_table_statistics/metadata.json index bd656e4d1e..be4d02dac9 100644 --- a/parser/testdata/03279_join_choose_build_table_statistics/metadata.json +++ b/parser/testdata/03279_join_choose_build_table_statistics/metadata.json @@ -1,11 +1,7 @@ { "explain_todo": { - "stmt12": true, - "stmt13": true, "stmt15": true, "stmt16": true, - "stmt17": true, - "stmt18": true, "stmt20": true, "stmt21": true, "stmt22": true, diff --git a/parser/testdata/03312_squashing_with_low_card_mem_usage/metadata.json b/parser/testdata/03312_squashing_with_low_card_mem_usage/metadata.json index b65b07d7a6..0967ef424b 100644 --- a/parser/testdata/03312_squashing_with_low_card_mem_usage/metadata.json +++ b/parser/testdata/03312_squashing_with_low_card_mem_usage/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt4": true - } -} +{} diff --git a/parser/testdata/03317_pretty_fallback_to_vertical_consistent/metadata.json b/parser/testdata/03317_pretty_fallback_to_vertical_consistent/metadata.json index ef58f80315..0967ef424b 100644 --- a/parser/testdata/03317_pretty_fallback_to_vertical_consistent/metadata.json +++ b/parser/testdata/03317_pretty_fallback_to_vertical_consistent/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt2": true - } -} +{} diff --git a/parser/testdata/03339_native_reader_exact_rows/metadata.json b/parser/testdata/03339_native_reader_exact_rows/metadata.json index e9d6e46171..0967ef424b 100644 --- a/parser/testdata/03339_native_reader_exact_rows/metadata.json +++ b/parser/testdata/03339_native_reader_exact_rows/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt1": true - } -} +{} diff --git a/parser/testdata/03356_threshold_for_parallel_hash/metadata.json b/parser/testdata/03356_threshold_for_parallel_hash/metadata.json index eb559ac3d6..403f17bdf0 100644 --- a/parser/testdata/03356_threshold_for_parallel_hash/metadata.json +++ b/parser/testdata/03356_threshold_for_parallel_hash/metadata.json @@ -5,9 +5,7 @@ "stmt13": true, "stmt14": true, "stmt15": true, - "stmt17": true, "stmt18": true, - "stmt19": true, "stmt20": true, "stmt9": true } diff --git a/parser/testdata/03569_max_joined_block_size_rows_bug/metadata.json b/parser/testdata/03569_max_joined_block_size_rows_bug/metadata.json index af48d4c110..0967ef424b 100644 --- a/parser/testdata/03569_max_joined_block_size_rows_bug/metadata.json +++ b/parser/testdata/03569_max_joined_block_size_rows_bug/metadata.json @@ -1 +1 @@ -{"explain_todo":{"stmt2":true}} +{} diff --git a/parser/testdata/03640_load_marks_synchronously/metadata.json b/parser/testdata/03640_load_marks_synchronously/metadata.json index 3c17446e87..342b3ff5b4 100644 --- a/parser/testdata/03640_load_marks_synchronously/metadata.json +++ b/parser/testdata/03640_load_marks_synchronously/metadata.json @@ -1,7 +1,5 @@ { "explain_todo": { - "stmt5": true, - "stmt6": true, "stmt8": true } } diff --git a/parser/testdata/03644_rows_before_aggregation_in_order/metadata.json b/parser/testdata/03644_rows_before_aggregation_in_order/metadata.json index 51dfabe749..0967ef424b 100644 --- a/parser/testdata/03644_rows_before_aggregation_in_order/metadata.json +++ b/parser/testdata/03644_rows_before_aggregation_in_order/metadata.json @@ -1 +1 @@ -{"explain_todo":{"stmt3":true}} +{}