diff --git a/ast/ast.go b/ast/ast.go index 3fb83df7b0..27af3e313c 100644 --- a/ast/ast.go +++ b/ast/ast.go @@ -559,9 +559,11 @@ const ( // ExplainQuery represents an EXPLAIN statement. type ExplainQuery struct { - Position token.Position `json:"-"` - ExplainType ExplainType `json:"explain_type"` - Statement Statement `json:"statement"` + Position token.Position `json:"-"` + ExplainType ExplainType `json:"explain_type"` + Statement Statement `json:"statement"` + HasSettings bool `json:"has_settings,omitempty"` + ExplicitType bool `json:"explicit_type,omitempty"` // true if type was explicitly specified } func (e *ExplainQuery) Pos() token.Position { return e.Position } diff --git a/internal/explain/statements.go b/internal/explain/statements.go index 1653b92195..54c1766f25 100644 --- a/internal/explain/statements.go +++ b/internal/explain/statements.go @@ -384,22 +384,36 @@ func explainSystemQuery(sb *strings.Builder, indent string) { } func explainExplainQuery(sb *strings.Builder, n *ast.ExplainQuery, indent string, depth int) { + // Determine the type string - only show if explicitly specified + typeStr := "" + if n.ExplicitType { + typeStr = " " + string(n.ExplainType) + } + // EXPLAIN CURRENT TRANSACTION has no children if n.ExplainType == ast.ExplainCurrentTransaction { // At top level (depth 0), ClickHouse outputs "Explain EXPLAIN " if depth == 0 { - fmt.Fprintf(sb, "%sExplain EXPLAIN %s\n", indent, n.ExplainType) + fmt.Fprintf(sb, "%sExplain EXPLAIN%s\n", indent, typeStr) } else { - fmt.Fprintf(sb, "%sExplain %s\n", indent, n.ExplainType) + fmt.Fprintf(sb, "%sExplain%s\n", indent, typeStr) } return } + // Count children: settings (if present) + statement + children := 1 + if n.HasSettings { + children++ + } // At top level (depth 0), ClickHouse outputs "Explain EXPLAIN " // Nested in subqueries, it outputs "Explain " if depth == 0 { - fmt.Fprintf(sb, "%sExplain EXPLAIN %s (children %d)\n", indent, n.ExplainType, 1) + fmt.Fprintf(sb, "%sExplain EXPLAIN%s (children %d)\n", indent, typeStr, children) } else { - fmt.Fprintf(sb, "%sExplain %s (children %d)\n", indent, n.ExplainType, 1) + fmt.Fprintf(sb, "%sExplain%s (children %d)\n", indent, typeStr, children) + } + if n.HasSettings { + fmt.Fprintf(sb, "%s Set\n", indent) } Node(sb, n.Statement, depth+1) } diff --git a/parser/parser.go b/parser/parser.go index b67df9cde4..6bdf6f27c9 100644 --- a/parser/parser.go +++ b/parser/parser.go @@ -2895,18 +2895,23 @@ func (p *Parser) parseExplain() *ast.ExplainQuery { switch strings.ToUpper(p.current.Value) { case "AST": explain.ExplainType = ast.ExplainAST + explain.ExplicitType = true p.nextToken() case "SYNTAX": explain.ExplainType = ast.ExplainSyntax + explain.ExplicitType = true p.nextToken() case "PLAN": explain.ExplainType = ast.ExplainPlan + explain.ExplicitType = true p.nextToken() case "PIPELINE": explain.ExplainType = ast.ExplainPipeline + explain.ExplicitType = true p.nextToken() case "ESTIMATE": explain.ExplainType = ast.ExplainEstimate + explain.ExplicitType = true p.nextToken() case "CURRENT": // EXPLAIN CURRENT TRANSACTION @@ -2915,6 +2920,7 @@ func (p *Parser) parseExplain() *ast.ExplainQuery { p.nextToken() } explain.ExplainType = ast.ExplainCurrentTransaction + explain.ExplicitType = true return explain // No statement follows CURRENT TRANSACTION default: explain.ExplainType = ast.ExplainPlan @@ -2926,6 +2932,7 @@ func (p *Parser) parseExplain() *ast.ExplainQuery { // Options can be identifiers or keywords like OPTIMIZE followed by = for p.peekIs(token.EQ) && !p.currentIs(token.SELECT) && !p.currentIs(token.WITH) { // This is an option (name = value) + explain.HasSettings = true p.nextToken() // skip option name p.nextToken() // skip = p.parseExpression(LOWEST) // skip value diff --git a/parser/parser_test.go b/parser/parser_test.go index fbeb71b539..6ecb71670c 100644 --- a/parser/parser_test.go +++ b/parser/parser_test.go @@ -245,7 +245,7 @@ func TestParser(t *testing.T) { if len(metadata.ExplainTodo) == 0 { metadata.ExplainTodo = nil } - updatedBytes, err := json.Marshal(metadata) + updatedBytes, err := json.MarshalIndent(metadata, "", " ") if err != nil { t.Errorf("Failed to marshal updated metadata: %v", err) } else if err := os.WriteFile(metadataPath, append(updatedBytes, '\n'), 0644); err != nil { diff --git a/parser/testdata/01508_explain_header/metadata.json b/parser/testdata/01508_explain_header/metadata.json index ef58f80315..0967ef424b 100644 --- a/parser/testdata/01508_explain_header/metadata.json +++ b/parser/testdata/01508_explain_header/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt2": true - } -} +{} diff --git a/parser/testdata/01556_explain_select_with_union_query/metadata.json b/parser/testdata/01556_explain_select_with_union_query/metadata.json index f41e53a9b5..02f6b8f47e 100644 --- a/parser/testdata/01556_explain_select_with_union_query/metadata.json +++ b/parser/testdata/01556_explain_select_with_union_query/metadata.json @@ -1,12 +1 @@ -{ - "explain_todo": { - "stmt15": true, - "stmt16": true, - "stmt18": true, - "stmt19": true, - "stmt4": true, - "stmt5": true, - "stmt7": true, - "stmt8": true - } -} +{"explain_todo":{"stmt16":true,"stmt19":true,"stmt5":true,"stmt8":true}} diff --git a/parser/testdata/01576_alias_column_rewrite/metadata.json b/parser/testdata/01576_alias_column_rewrite/metadata.json index 17b332f6d6..65e5a8f58d 100644 --- a/parser/testdata/01576_alias_column_rewrite/metadata.json +++ b/parser/testdata/01576_alias_column_rewrite/metadata.json @@ -1,17 +1 @@ -{ - "explain_todo": { - "stmt22": true, - "stmt23": true, - "stmt3": true, - "stmt32": true, - "stmt33": true, - "stmt34": true, - "stmt36": true, - "stmt37": true, - "stmt38": true, - "stmt4": true, - "stmt42": true, - "stmt5": true, - "stmt51": true - } -} +{"explain_todo":{"stmt22":true,"stmt23":true,"stmt3":true,"stmt4":true,"stmt42":true,"stmt5":true,"stmt51":true}} diff --git a/parser/testdata/01763_filter_push_down_bugs/metadata.json b/parser/testdata/01763_filter_push_down_bugs/metadata.json index 9698b2953d..50ea210c1f 100644 --- a/parser/testdata/01763_filter_push_down_bugs/metadata.json +++ b/parser/testdata/01763_filter_push_down_bugs/metadata.json @@ -1,8 +1 @@ -{ - "explain_todo": { - "stmt11": true, - "stmt23": true, - "stmt24": true, - "stmt5": true - } -} +{"explain_todo":{"stmt11":true,"stmt5":true}} diff --git a/parser/testdata/01951_distributed_push_down_limit/metadata.json b/parser/testdata/01951_distributed_push_down_limit/metadata.json index bc141058a4..0967ef424b 100644 --- a/parser/testdata/01951_distributed_push_down_limit/metadata.json +++ b/parser/testdata/01951_distributed_push_down_limit/metadata.json @@ -1,6 +1 @@ -{ - "explain_todo": { - "stmt2": true, - "stmt3": true - } -} +{} diff --git a/parser/testdata/01952_optimize_distributed_group_by_sharding_key/metadata.json b/parser/testdata/01952_optimize_distributed_group_by_sharding_key/metadata.json index 36fdeb77a0..8dcc4448c8 100644 --- a/parser/testdata/01952_optimize_distributed_group_by_sharding_key/metadata.json +++ b/parser/testdata/01952_optimize_distributed_group_by_sharding_key/metadata.json @@ -1,20 +1 @@ -{ - "explain_todo": { - "stmt10": true, - "stmt11": true, - "stmt12": true, - "stmt14": true, - "stmt15": true, - "stmt16": true, - "stmt17": true, - "stmt18": true, - "stmt19": true, - "stmt20": true, - "stmt21": true, - "stmt5": true, - "stmt6": true, - "stmt7": true, - "stmt8": true, - "stmt9": true - } -} +{"explain_todo":{"stmt11":true,"stmt12":true,"stmt16":true,"stmt17":true,"stmt20":true,"stmt21":true,"stmt7":true,"stmt8":true}} diff --git a/parser/testdata/02023_parser_number_binary_literal/metadata.json b/parser/testdata/02023_parser_number_binary_literal/metadata.json index b024a9978b..0967ef424b 100644 --- a/parser/testdata/02023_parser_number_binary_literal/metadata.json +++ b/parser/testdata/02023_parser_number_binary_literal/metadata.json @@ -1,8 +1 @@ -{ - "explain_todo": { - "stmt11": true, - "stmt12": true, - "stmt13": true, - "stmt14": true - } -} +{} diff --git a/parser/testdata/02154_bit_slice_for_fixedstring/metadata.json b/parser/testdata/02154_bit_slice_for_fixedstring/metadata.json index 9f778c71f2..0967ef424b 100644 --- a/parser/testdata/02154_bit_slice_for_fixedstring/metadata.json +++ b/parser/testdata/02154_bit_slice_for_fixedstring/metadata.json @@ -1,44 +1 @@ -{ - "explain_todo": { - "stmt100": true, - "stmt101": true, - "stmt102": true, - "stmt103": true, - "stmt104": true, - "stmt105": true, - "stmt109": true, - "stmt110": true, - "stmt111": true, - "stmt124": true, - "stmt126": true, - "stmt127": true, - "stmt72": true, - "stmt73": true, - "stmt74": true, - "stmt75": true, - "stmt76": true, - "stmt77": true, - "stmt78": true, - "stmt79": true, - "stmt80": true, - "stmt81": true, - "stmt82": true, - "stmt83": true, - "stmt84": true, - "stmt85": true, - "stmt86": true, - "stmt87": true, - "stmt88": true, - "stmt89": true, - "stmt90": true, - "stmt91": true, - "stmt92": true, - "stmt93": true, - "stmt94": true, - "stmt95": true, - "stmt96": true, - "stmt97": true, - "stmt98": true, - "stmt99": true - } -} +{} diff --git a/parser/testdata/02154_bit_slice_for_string/metadata.json b/parser/testdata/02154_bit_slice_for_string/metadata.json index 44412bd351..0967ef424b 100644 --- a/parser/testdata/02154_bit_slice_for_string/metadata.json +++ b/parser/testdata/02154_bit_slice_for_string/metadata.json @@ -1,42 +1 @@ -{ - "explain_todo": { - "stmt100": true, - "stmt101": true, - "stmt102": true, - "stmt103": true, - "stmt104": true, - "stmt105": true, - "stmt109": true, - "stmt110": true, - "stmt111": true, - "stmt124": true, - "stmt126": true, - "stmt127": true, - "stmt74": true, - "stmt75": true, - "stmt76": true, - "stmt77": true, - "stmt78": true, - "stmt79": true, - "stmt80": true, - "stmt81": true, - "stmt82": true, - "stmt83": true, - "stmt84": true, - "stmt85": true, - "stmt86": true, - "stmt87": true, - "stmt88": true, - "stmt89": true, - "stmt90": true, - "stmt91": true, - "stmt92": true, - "stmt93": true, - "stmt94": true, - "stmt95": true, - "stmt96": true, - "stmt97": true, - "stmt98": true, - "stmt99": true - } -} +{} diff --git a/parser/testdata/02227_union_match_by_name/metadata.json b/parser/testdata/02227_union_match_by_name/metadata.json index ef58f80315..0967ef424b 100644 --- a/parser/testdata/02227_union_match_by_name/metadata.json +++ b/parser/testdata/02227_union_match_by_name/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt2": true - } -} +{} diff --git a/parser/testdata/02353_explain_ast_optimize/metadata.json b/parser/testdata/02353_explain_ast_optimize/metadata.json index 6ed702cc94..0967ef424b 100644 --- a/parser/testdata/02353_explain_ast_optimize/metadata.json +++ b/parser/testdata/02353_explain_ast_optimize/metadata.json @@ -1,8 +1 @@ -{ - "explain_todo": { - "stmt1": true, - "stmt2": true, - "stmt3": true, - "stmt4": true - } -} +{} diff --git a/parser/testdata/02354_vector_search_drop_table_clear_cache/metadata.json b/parser/testdata/02354_vector_search_drop_table_clear_cache/metadata.json index 342b3ff5b4..0967ef424b 100644 --- a/parser/testdata/02354_vector_search_drop_table_clear_cache/metadata.json +++ b/parser/testdata/02354_vector_search_drop_table_clear_cache/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt8": true - } -} +{} diff --git a/parser/testdata/02354_vector_search_queries/metadata.json b/parser/testdata/02354_vector_search_queries/metadata.json index 8d59a3991e..e10d7d44e2 100644 --- a/parser/testdata/02354_vector_search_queries/metadata.json +++ b/parser/testdata/02354_vector_search_queries/metadata.json @@ -1,18 +1 @@ -{ - "explain_todo": { - "stmt12": true, - "stmt19": true, - "stmt55": true, - "stmt57": true, - "stmt59": true, - "stmt6": true, - "stmt61": true, - "stmt63": true, - "stmt65": true, - "stmt67": true, - "stmt69": true, - "stmt71": true, - "stmt73": true, - "stmt90": true - } -} +{"explain_todo":{"stmt90":true}} diff --git a/parser/testdata/02354_vector_search_subquery/metadata.json b/parser/testdata/02354_vector_search_subquery/metadata.json index 8f6d4ba033..0967ef424b 100644 --- a/parser/testdata/02354_vector_search_subquery/metadata.json +++ b/parser/testdata/02354_vector_search_subquery/metadata.json @@ -1,7 +1 @@ -{ - "explain_todo": { - "stmt5": true, - "stmt6": true, - "stmt7": true - } -} +{} diff --git a/parser/testdata/02497_if_transform_strings_to_enum/metadata.json b/parser/testdata/02497_if_transform_strings_to_enum/metadata.json index ddf53155d6..71b17bbd59 100644 --- a/parser/testdata/02497_if_transform_strings_to_enum/metadata.json +++ b/parser/testdata/02497_if_transform_strings_to_enum/metadata.json @@ -1,17 +1 @@ -{ - "explain_todo": { - "stmt11": true, - "stmt14": true, - "stmt17": true, - "stmt20": true, - "stmt23": true, - "stmt26": true, - "stmt29": true, - "stmt31": true, - "stmt32": true, - "stmt36": true, - "stmt39": true, - "stmt5": true, - "stmt8": true - } -} +{"explain_todo":{"stmt11":true,"stmt14":true,"stmt17":true,"stmt20":true,"stmt23":true,"stmt26":true,"stmt29":true,"stmt32":true,"stmt36":true,"stmt39":true,"stmt5":true,"stmt8":true}} diff --git a/parser/testdata/02576_predicate_push_down_sorting_fix/metadata.json b/parser/testdata/02576_predicate_push_down_sorting_fix/metadata.json index ef58f80315..0967ef424b 100644 --- a/parser/testdata/02576_predicate_push_down_sorting_fix/metadata.json +++ b/parser/testdata/02576_predicate_push_down_sorting_fix/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt2": true - } -} +{} diff --git a/parser/testdata/02675_predicate_push_down_filled_join_fix/metadata.json b/parser/testdata/02675_predicate_push_down_filled_join_fix/metadata.json index ab9202e88e..0967ef424b 100644 --- a/parser/testdata/02675_predicate_push_down_filled_join_fix/metadata.json +++ b/parser/testdata/02675_predicate_push_down_filled_join_fix/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt11": true - } -} +{} diff --git a/parser/testdata/02679_explain_merge_tree_prewhere_row_policy/metadata.json b/parser/testdata/02679_explain_merge_tree_prewhere_row_policy/metadata.json index 8449447a8e..7ee9a1f9ac 100644 --- a/parser/testdata/02679_explain_merge_tree_prewhere_row_policy/metadata.json +++ b/parser/testdata/02679_explain_merge_tree_prewhere_row_policy/metadata.json @@ -1,9 +1 @@ -{ - "explain_todo": { - "stmt4": true, - "stmt5": true, - "stmt6": true, - "stmt7": true, - "stmt8": true - } -} +{"explain_todo":{"stmt4":true,"stmt5":true,"stmt8":true}} diff --git a/parser/testdata/02707_skip_index_with_in/metadata.json b/parser/testdata/02707_skip_index_with_in/metadata.json index ef382ce51e..cc2f3624ef 100644 --- a/parser/testdata/02707_skip_index_with_in/metadata.json +++ b/parser/testdata/02707_skip_index_with_in/metadata.json @@ -1,6 +1 @@ -{ - "explain_todo": { - "stmt4": true, - "stmt5": true - } -} +{"explain_todo":{"stmt4":true}} diff --git a/parser/testdata/02713_array_low_cardinality_string/metadata.json b/parser/testdata/02713_array_low_cardinality_string/metadata.json index b563327205..0967ef424b 100644 --- a/parser/testdata/02713_array_low_cardinality_string/metadata.json +++ b/parser/testdata/02713_array_low_cardinality_string/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt7": true - } -} +{} diff --git a/parser/testdata/02835_join_step_explain/metadata.json b/parser/testdata/02835_join_step_explain/metadata.json index a56c7cdb0b..0967ef424b 100644 --- a/parser/testdata/02835_join_step_explain/metadata.json +++ b/parser/testdata/02835_join_step_explain/metadata.json @@ -1,6 +1 @@ -{ - "explain_todo": { - "stmt10": true, - "stmt12": true - } -} +{} diff --git a/parser/testdata/02866_size_of_marks_skip_idx_explain/metadata.json b/parser/testdata/02866_size_of_marks_skip_idx_explain/metadata.json index 92e84e943a..0967ef424b 100644 --- a/parser/testdata/02866_size_of_marks_skip_idx_explain/metadata.json +++ b/parser/testdata/02866_size_of_marks_skip_idx_explain/metadata.json @@ -1,6 +1 @@ -{ - "explain_todo": { - "stmt8": true, - "stmt9": true - } -} +{} diff --git a/parser/testdata/02882_primary_key_index_in_function_different_types/metadata.json b/parser/testdata/02882_primary_key_index_in_function_different_types/metadata.json index fac52de549..0967ef424b 100644 --- a/parser/testdata/02882_primary_key_index_in_function_different_types/metadata.json +++ b/parser/testdata/02882_primary_key_index_in_function_different_types/metadata.json @@ -1,12 +1 @@ -{ - "explain_todo": { - "stmt10": true, - "stmt11": true, - "stmt12": true, - "stmt13": true, - "stmt5": true, - "stmt6": true, - "stmt7": true, - "stmt8": true - } -} +{} diff --git a/parser/testdata/02911_support_alias_column_in_indices/metadata.json b/parser/testdata/02911_support_alias_column_in_indices/metadata.json index 6f4469d106..0967ef424b 100644 --- a/parser/testdata/02911_support_alias_column_in_indices/metadata.json +++ b/parser/testdata/02911_support_alias_column_in_indices/metadata.json @@ -1,8 +1 @@ -{ - "explain_todo": { - "stmt12": true, - "stmt13": true, - "stmt7": true, - "stmt8": true - } -} +{} diff --git a/parser/testdata/02918_optimize_count_for_merge_tables/metadata.json b/parser/testdata/02918_optimize_count_for_merge_tables/metadata.json index 992db88e12..0967ef424b 100644 --- a/parser/testdata/02918_optimize_count_for_merge_tables/metadata.json +++ b/parser/testdata/02918_optimize_count_for_merge_tables/metadata.json @@ -1 +1 @@ -{"explain_todo":{"stmt12":true,"stmt16":true}} +{} diff --git a/parser/testdata/02998_projection_after_attach_partition/metadata.json b/parser/testdata/02998_projection_after_attach_partition/metadata.json index 684f51af55..cda16c2fc6 100644 --- a/parser/testdata/02998_projection_after_attach_partition/metadata.json +++ b/parser/testdata/02998_projection_after_attach_partition/metadata.json @@ -1,11 +1 @@ -{ - "explain_todo": { - "stmt10": true, - "stmt11": true, - "stmt13": true, - "stmt15": true, - "stmt17": true, - "stmt5": true, - "stmt6": true - } -} +{"explain_todo":{"stmt10":true,"stmt11":true,"stmt17":true,"stmt5":true,"stmt6":true}} diff --git a/parser/testdata/03151_analyzer_view_read_only_necessary_columns/metadata.json b/parser/testdata/03151_analyzer_view_read_only_necessary_columns/metadata.json index 3a06a4a1ac..0967ef424b 100644 --- a/parser/testdata/03151_analyzer_view_read_only_necessary_columns/metadata.json +++ b/parser/testdata/03151_analyzer_view_read_only_necessary_columns/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt5": true - } -} +{} diff --git a/parser/testdata/03152_join_filter_push_down_equivalent_columns/metadata.json b/parser/testdata/03152_join_filter_push_down_equivalent_columns/metadata.json index 3254576df7..0967ef424b 100644 --- a/parser/testdata/03152_join_filter_push_down_equivalent_columns/metadata.json +++ b/parser/testdata/03152_join_filter_push_down_equivalent_columns/metadata.json @@ -1,7 +1 @@ -{ - "explain_todo": { - "stmt13": true, - "stmt15": true, - "stmt17": true - } -} +{} diff --git a/parser/testdata/03166_skip_indexes_vertical_merge_1/metadata.json b/parser/testdata/03166_skip_indexes_vertical_merge_1/metadata.json index faa01185dd..014227e091 100644 --- a/parser/testdata/03166_skip_indexes_vertical_merge_1/metadata.json +++ b/parser/testdata/03166_skip_indexes_vertical_merge_1/metadata.json @@ -1,8 +1 @@ -{ - "explain_todo": { - "stmt10": true, - "stmt13": true, - "stmt7": true, - "stmt8": true - } -} +{"explain_todo":{"stmt13":true,"stmt8":true}} diff --git a/parser/testdata/03217_filtering_in_storage_merge/metadata.json b/parser/testdata/03217_filtering_in_storage_merge/metadata.json index cba8b1fd5c..5cbbf535f7 100644 --- a/parser/testdata/03217_filtering_in_storage_merge/metadata.json +++ b/parser/testdata/03217_filtering_in_storage_merge/metadata.json @@ -1,7 +1 @@ -{ - "explain_todo": { - "stmt1": true, - "stmt5": true, - "stmt6": true - } -} +{"explain_todo":{"stmt1":true,"stmt5":true}} diff --git a/parser/testdata/03272_partition_pruning_monotonic_func_bug/metadata.json b/parser/testdata/03272_partition_pruning_monotonic_func_bug/metadata.json index dbdbb76d4f..0967ef424b 100644 --- a/parser/testdata/03272_partition_pruning_monotonic_func_bug/metadata.json +++ b/parser/testdata/03272_partition_pruning_monotonic_func_bug/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt6": true - } -} +{} diff --git a/parser/testdata/03275_auto_cluster_functions_with_parallel_replicas/metadata.json b/parser/testdata/03275_auto_cluster_functions_with_parallel_replicas/metadata.json index 1de2498be6..0967ef424b 100644 --- a/parser/testdata/03275_auto_cluster_functions_with_parallel_replicas/metadata.json +++ b/parser/testdata/03275_auto_cluster_functions_with_parallel_replicas/metadata.json @@ -1,12 +1 @@ -{ - "explain_todo": { - "stmt10": true, - "stmt11": true, - "stmt12": true, - "stmt23": true, - "stmt24": true, - "stmt7": true, - "stmt8": true, - "stmt9": true - } -} +{} diff --git a/parser/testdata/03302_analyzer_join_filter_push_down_bug/metadata.json b/parser/testdata/03302_analyzer_join_filter_push_down_bug/metadata.json index b65b07d7a6..0967ef424b 100644 --- a/parser/testdata/03302_analyzer_join_filter_push_down_bug/metadata.json +++ b/parser/testdata/03302_analyzer_join_filter_push_down_bug/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt4": true - } -} +{} diff --git a/parser/testdata/03303_distributed_explain/metadata.json b/parser/testdata/03303_distributed_explain/metadata.json index a1a9de21bc..0967ef424b 100644 --- a/parser/testdata/03303_distributed_explain/metadata.json +++ b/parser/testdata/03303_distributed_explain/metadata.json @@ -1,9 +1 @@ -{ - "explain_todo": { - "stmt14": true, - "stmt3": true, - "stmt4": true, - "stmt7": true, - "stmt8": true - } -} +{} diff --git a/parser/testdata/03305_mergine_aggregated_filter_push_down/metadata.json b/parser/testdata/03305_mergine_aggregated_filter_push_down/metadata.json index b5148ff0bd..d281969467 100644 --- a/parser/testdata/03305_mergine_aggregated_filter_push_down/metadata.json +++ b/parser/testdata/03305_mergine_aggregated_filter_push_down/metadata.json @@ -1,12 +1 @@ -{ - "explain_todo": { - "stmt10": true, - "stmt11": true, - "stmt14": true, - "stmt15": true, - "stmt16": true, - "stmt7": true, - "stmt8": true, - "stmt9": true - } -} +{"explain_todo":{"stmt10":true,"stmt11":true,"stmt15":true,"stmt16":true,"stmt8":true,"stmt9":true}} diff --git a/parser/testdata/03356_array_join_subcolumns_indexes/metadata.json b/parser/testdata/03356_array_join_subcolumns_indexes/metadata.json index 08a237ec55..3a2014fe8c 100644 --- a/parser/testdata/03356_array_join_subcolumns_indexes/metadata.json +++ b/parser/testdata/03356_array_join_subcolumns_indexes/metadata.json @@ -1,6 +1 @@ -{ - "explain_todo": { - "stmt6": true, - "stmt9": true - } -} +{"explain_todo":{"stmt6":true}} diff --git a/parser/testdata/03374_indexes_with_literals/metadata.json b/parser/testdata/03374_indexes_with_literals/metadata.json index f3bf2f0711..0967ef424b 100644 --- a/parser/testdata/03374_indexes_with_literals/metadata.json +++ b/parser/testdata/03374_indexes_with_literals/metadata.json @@ -1,9 +1 @@ -{ - "explain_todo": { - "stmt13": true, - "stmt17": true, - "stmt21": true, - "stmt5": true, - "stmt9": true - } -} +{} diff --git a/parser/testdata/03374_indexes_with_trivial_cast/metadata.json b/parser/testdata/03374_indexes_with_trivial_cast/metadata.json index f3bf2f0711..0967ef424b 100644 --- a/parser/testdata/03374_indexes_with_trivial_cast/metadata.json +++ b/parser/testdata/03374_indexes_with_trivial_cast/metadata.json @@ -1,9 +1 @@ -{ - "explain_todo": { - "stmt13": true, - "stmt17": true, - "stmt21": true, - "stmt5": true, - "stmt9": true - } -} +{} diff --git a/parser/testdata/03399_advanced_expr_contains_sharding_key/metadata.json b/parser/testdata/03399_advanced_expr_contains_sharding_key/metadata.json index 86d2f95411..0967ef424b 100644 --- a/parser/testdata/03399_advanced_expr_contains_sharding_key/metadata.json +++ b/parser/testdata/03399_advanced_expr_contains_sharding_key/metadata.json @@ -1,16 +1 @@ -{ - "explain_todo": { - "stmt12": true, - "stmt13": true, - "stmt14": true, - "stmt15": true, - "stmt17": true, - "stmt18": true, - "stmt19": true, - "stmt20": true, - "stmt22": true, - "stmt23": true, - "stmt24": true, - "stmt25": true - } -} +{} diff --git a/parser/testdata/03400_explain_distributed_bug/metadata.json b/parser/testdata/03400_explain_distributed_bug/metadata.json index bc5c6edb66..0967ef424b 100644 --- a/parser/testdata/03400_explain_distributed_bug/metadata.json +++ b/parser/testdata/03400_explain_distributed_bug/metadata.json @@ -1,6 +1 @@ -{ - "explain_todo": { - "stmt3": true, - "stmt5": true - } -} +{} diff --git a/parser/testdata/03402_concurrent_right_full_join/metadata.json b/parser/testdata/03402_concurrent_right_full_join/metadata.json index 533f7c37f8..040cedf646 100644 --- a/parser/testdata/03402_concurrent_right_full_join/metadata.json +++ b/parser/testdata/03402_concurrent_right_full_join/metadata.json @@ -1,6 +1 @@ -{ - "explain_todo": { - "stmt14": true, - "stmt24": true - } -} +{"explain_todo":{"stmt24":true}} diff --git a/parser/testdata/03402_secondary_indexes_analyzer_bugs/metadata.json b/parser/testdata/03402_secondary_indexes_analyzer_bugs/metadata.json index 0f293987f1..0967ef424b 100644 --- a/parser/testdata/03402_secondary_indexes_analyzer_bugs/metadata.json +++ b/parser/testdata/03402_secondary_indexes_analyzer_bugs/metadata.json @@ -1,6 +1 @@ -{ - "explain_todo": { - "stmt5": true, - "stmt6": true - } -} +{} diff --git a/parser/testdata/03445_subcolumns_prewhere_pushdown/metadata.json b/parser/testdata/03445_subcolumns_prewhere_pushdown/metadata.json index 9476afa685..0967ef424b 100644 --- a/parser/testdata/03445_subcolumns_prewhere_pushdown/metadata.json +++ b/parser/testdata/03445_subcolumns_prewhere_pushdown/metadata.json @@ -1,10 +1 @@ -{ - "explain_todo": { - "stmt11": true, - "stmt13": true, - "stmt15": true, - "stmt5": true, - "stmt7": true, - "stmt9": true - } -} +{} diff --git a/parser/testdata/03448_analyzer_skip_index_and_lambdas/metadata.json b/parser/testdata/03448_analyzer_skip_index_and_lambdas/metadata.json index 12faad3d93..0967ef424b 100644 --- a/parser/testdata/03448_analyzer_skip_index_and_lambdas/metadata.json +++ b/parser/testdata/03448_analyzer_skip_index_and_lambdas/metadata.json @@ -1,7 +1 @@ -{ - "explain_todo": { - "stmt4": true, - "stmt6": true, - "stmt8": true - } -} +{} diff --git a/parser/testdata/03545_analyzer_correlated_subqueries_use_equivalence_classes/metadata.json b/parser/testdata/03545_analyzer_correlated_subqueries_use_equivalence_classes/metadata.json index 3a06a4a1ac..0967ef424b 100644 --- a/parser/testdata/03545_analyzer_correlated_subqueries_use_equivalence_classes/metadata.json +++ b/parser/testdata/03545_analyzer_correlated_subqueries_use_equivalence_classes/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt5": true - } -} +{} diff --git a/parser/testdata/03545_analyzer_correlated_subquery_exists_asterisk/metadata.json b/parser/testdata/03545_analyzer_correlated_subquery_exists_asterisk/metadata.json index f4c74e32be..0967ef424b 100644 --- a/parser/testdata/03545_analyzer_correlated_subquery_exists_asterisk/metadata.json +++ b/parser/testdata/03545_analyzer_correlated_subquery_exists_asterisk/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt10": true - } -} +{} diff --git a/parser/testdata/03583_rewrite_in_to_join/metadata.json b/parser/testdata/03583_rewrite_in_to_join/metadata.json index 0565e97b21..3b8e7f7464 100644 --- a/parser/testdata/03583_rewrite_in_to_join/metadata.json +++ b/parser/testdata/03583_rewrite_in_to_join/metadata.json @@ -1,11 +1 @@ -{ - "explain_todo": { - "stmt19": true, - "stmt20": true, - "stmt21": true, - "stmt23": true, - "stmt25": true, - "stmt26": true, - "stmt5": true - } -} +{"explain_todo":{"stmt20":true,"stmt21":true,"stmt23":true,"stmt25":true,"stmt26":true,"stmt5":true}} diff --git a/parser/testdata/03594_like_perfect_affix_rewrite_pass/metadata.json b/parser/testdata/03594_like_perfect_affix_rewrite_pass/metadata.json index 7fd62bbb92..0967ef424b 100644 --- a/parser/testdata/03594_like_perfect_affix_rewrite_pass/metadata.json +++ b/parser/testdata/03594_like_perfect_affix_rewrite_pass/metadata.json @@ -1,36 +1 @@ -{ - "explain_todo": { - "stmt100": true, - "stmt104": true, - "stmt108": true, - "stmt11": true, - "stmt112": true, - "stmt116": true, - "stmt120": true, - "stmt15": true, - "stmt19": true, - "stmt23": true, - "stmt27": true, - "stmt31": true, - "stmt35": true, - "stmt39": true, - "stmt43": true, - "stmt47": true, - "stmt51": true, - "stmt54": true, - "stmt57": true, - "stmt60": true, - "stmt63": true, - "stmt66": true, - "stmt69": true, - "stmt7": true, - "stmt72": true, - "stmt75": true, - "stmt79": true, - "stmt82": true, - "stmt86": true, - "stmt89": true, - "stmt93": true, - "stmt96": true - } -} +{} diff --git a/parser/testdata/03595_convert_any_join_to_semi_or_anti/metadata.json b/parser/testdata/03595_convert_any_join_to_semi_or_anti/metadata.json index 470d47b502..0967ef424b 100644 --- a/parser/testdata/03595_convert_any_join_to_semi_or_anti/metadata.json +++ b/parser/testdata/03595_convert_any_join_to_semi_or_anti/metadata.json @@ -1,6 +1 @@ -{ - "explain_todo": { - "stmt10": true, - "stmt9": true - } -} +{} diff --git a/parser/testdata/03612_explain_indexes_bugs/metadata.json b/parser/testdata/03612_explain_indexes_bugs/metadata.json index e1a6d4eeeb..0967ef424b 100644 --- a/parser/testdata/03612_explain_indexes_bugs/metadata.json +++ b/parser/testdata/03612_explain_indexes_bugs/metadata.json @@ -1,10 +1 @@ -{ - "explain_todo": { - "stmt10": true, - "stmt11": true, - "stmt4": true, - "stmt5": true, - "stmt6": true, - "stmt7": true - } -} +{} diff --git a/parser/testdata/03635_in_function_different_types_many_columns/metadata.json b/parser/testdata/03635_in_function_different_types_many_columns/metadata.json index 2dda3f42fa..0967ef424b 100644 --- a/parser/testdata/03635_in_function_different_types_many_columns/metadata.json +++ b/parser/testdata/03635_in_function_different_types_many_columns/metadata.json @@ -1,8 +1 @@ -{ - "explain_todo": { - "stmt4": true, - "stmt5": true, - "stmt6": true, - "stmt7": true - } -} +{} diff --git a/parser/testdata/03701_analyzer_correlated_subquery_plan_reference/metadata.json b/parser/testdata/03701_analyzer_correlated_subquery_plan_reference/metadata.json index dbdbb76d4f..0967ef424b 100644 --- a/parser/testdata/03701_analyzer_correlated_subquery_plan_reference/metadata.json +++ b/parser/testdata/03701_analyzer_correlated_subquery_plan_reference/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt6": true - } -} +{} diff --git a/parser/testdata/03701_distinct_but_no_group_by_projection_table_use_check/metadata.json b/parser/testdata/03701_distinct_but_no_group_by_projection_table_use_check/metadata.json index 22bdbc2f38..ab7874eb0c 100644 --- a/parser/testdata/03701_distinct_but_no_group_by_projection_table_use_check/metadata.json +++ b/parser/testdata/03701_distinct_but_no_group_by_projection_table_use_check/metadata.json @@ -1,13 +1 @@ -{ - "explain_todo": { - "stmt10": true, - "stmt13": true, - "stmt16": true, - "stmt19": true, - "stmt23": true, - "stmt26": true, - "stmt29": true, - "stmt3": true, - "stmt7": true - } -} +{"explain_todo":{"stmt19":true,"stmt3":true}} diff --git a/parser/testdata/03701_optimize_inverse_dictionary_lookup_basic/metadata.json b/parser/testdata/03701_optimize_inverse_dictionary_lookup_basic/metadata.json index 6d9b3c3d7f..277e18d49f 100644 --- a/parser/testdata/03701_optimize_inverse_dictionary_lookup_basic/metadata.json +++ b/parser/testdata/03701_optimize_inverse_dictionary_lookup_basic/metadata.json @@ -1,37 +1 @@ -{ - "explain_todo": { - "stmt102": true, - "stmt106": true, - "stmt110": true, - "stmt114": true, - "stmt118": true, - "stmt120": true, - "stmt122": true, - "stmt124": true, - "stmt126": true, - "stmt14": true, - "stmt18": true, - "stmt22": true, - "stmt26": true, - "stmt30": true, - "stmt34": true, - "stmt38": true, - "stmt42": true, - "stmt46": true, - "stmt50": true, - "stmt54": true, - "stmt58": true, - "stmt62": true, - "stmt66": true, - "stmt70": true, - "stmt74": true, - "stmt78": true, - "stmt80": true, - "stmt82": true, - "stmt86": true, - "stmt9": true, - "stmt90": true, - "stmt94": true, - "stmt98": true - } -} +{"explain_todo":{"stmt118":true,"stmt120":true,"stmt122":true,"stmt124":true,"stmt78":true,"stmt80":true,"stmt9":true}} diff --git a/parser/testdata/03702_optimize_inverse_dictionary_lookup_composite_and_layouts/metadata.json b/parser/testdata/03702_optimize_inverse_dictionary_lookup_composite_and_layouts/metadata.json index 72172b21d8..d4c336bac8 100644 --- a/parser/testdata/03702_optimize_inverse_dictionary_lookup_composite_and_layouts/metadata.json +++ b/parser/testdata/03702_optimize_inverse_dictionary_lookup_composite_and_layouts/metadata.json @@ -1,18 +1 @@ -{ - "explain_todo": { - "stmt18": true, - "stmt19": true, - "stmt20": true, - "stmt21": true, - "stmt22": true, - "stmt23": true, - "stmt24": true, - "stmt28": true, - "stmt32": true, - "stmt36": true, - "stmt40": true, - "stmt44": true, - "stmt48": true, - "stmt52": true - } -} +{"explain_todo":{"stmt18":true,"stmt19":true,"stmt20":true,"stmt21":true,"stmt22":true,"stmt23":true,"stmt24":true}} diff --git a/parser/testdata/03703_optimize_inverse_dictionary_lookup_dictget_family/metadata.json b/parser/testdata/03703_optimize_inverse_dictionary_lookup_dictget_family/metadata.json index cb9bfab1d3..299d9b76de 100644 --- a/parser/testdata/03703_optimize_inverse_dictionary_lookup_dictget_family/metadata.json +++ b/parser/testdata/03703_optimize_inverse_dictionary_lookup_dictget_family/metadata.json @@ -1,17 +1 @@ -{ - "explain_todo": { - "stmt13": true, - "stmt17": true, - "stmt21": true, - "stmt25": true, - "stmt29": true, - "stmt33": true, - "stmt37": true, - "stmt41": true, - "stmt45": true, - "stmt49": true, - "stmt53": true, - "stmt57": true, - "stmt9": true - } -} +{"explain_todo":{"stmt9":true}} diff --git a/parser/testdata/03707_analyzer_convert_outer_any_to_inner/metadata.json b/parser/testdata/03707_analyzer_convert_outer_any_to_inner/metadata.json index 342b3ff5b4..0967ef424b 100644 --- a/parser/testdata/03707_analyzer_convert_outer_any_to_inner/metadata.json +++ b/parser/testdata/03707_analyzer_convert_outer_any_to_inner/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt8": true - } -} +{} diff --git a/parser/testdata/03713_optimize_inverse_dictionary_lookup_setting_rewrite_in_to_join/metadata.json b/parser/testdata/03713_optimize_inverse_dictionary_lookup_setting_rewrite_in_to_join/metadata.json index 0b2aecfac5..92ffdfe8b5 100644 --- a/parser/testdata/03713_optimize_inverse_dictionary_lookup_setting_rewrite_in_to_join/metadata.json +++ b/parser/testdata/03713_optimize_inverse_dictionary_lookup_setting_rewrite_in_to_join/metadata.json @@ -1,6 +1 @@ -{ - "explain_todo": { - "stmt10": true, - "stmt15": true - } -} +{"explain_todo":{"stmt10":true}}