diff --git a/ast/ast.go b/ast/ast.go index 525e7ad672..0e66dd343d 100644 --- a/ast/ast.go +++ b/ast/ast.go @@ -390,6 +390,17 @@ func (d *DataType) Pos() token.Position { return d.Position } func (d *DataType) End() token.Position { return d.Position } func (d *DataType) expressionNode() {} +// ObjectTypeArgument wraps an expression that is an argument to JSON/OBJECT types. +// This matches ClickHouse's ASTObjectTypeArgument node structure. +type ObjectTypeArgument struct { + Position token.Position `json:"-"` + Expr Expression `json:"expr"` +} + +func (o *ObjectTypeArgument) Pos() token.Position { return o.Position } +func (o *ObjectTypeArgument) End() token.Position { return o.Position } +func (o *ObjectTypeArgument) expressionNode() {} + // NameTypePair represents a named type pair, used in Nested types. type NameTypePair struct { Position token.Position `json:"-"` diff --git a/internal/explain/explain.go b/internal/explain/explain.go index 2fd7d609d2..64c0defc2c 100644 --- a/internal/explain/explain.go +++ b/internal/explain/explain.go @@ -155,6 +155,8 @@ func Node(sb *strings.Builder, node interface{}, depth int) { // Types case *ast.DataType: explainDataType(sb, n, indent, depth) + case *ast.ObjectTypeArgument: + explainObjectTypeArgument(sb, n, indent, depth) case *ast.NameTypePair: explainNameTypePair(sb, n, indent, depth) case *ast.Parameter: diff --git a/internal/explain/format.go b/internal/explain/format.go index da9ba9a309..ae5db9aa24 100644 --- a/internal/explain/format.go +++ b/internal/explain/format.go @@ -218,6 +218,10 @@ func FormatDataType(dt *ast.DataType) string { } var params []string for _, p := range dt.Parameters { + // Unwrap ObjectTypeArgument if present (used for JSON/OBJECT types) + if ota, ok := p.(*ast.ObjectTypeArgument); ok { + p = ota.Expr + } if lit, ok := p.(*ast.Literal); ok { if lit.Type == ast.LiteralString { // String parameters in type need extra escaping: 'val' -> \\\'val\\\' diff --git a/internal/explain/statements.go b/internal/explain/statements.go index 00ef1a27a2..eb96f6331d 100644 --- a/internal/explain/statements.go +++ b/internal/explain/statements.go @@ -671,6 +671,11 @@ func explainDataType(sb *strings.Builder, n *ast.DataType, indent string, depth } } +func explainObjectTypeArgument(sb *strings.Builder, n *ast.ObjectTypeArgument, indent string, depth int) { + fmt.Fprintf(sb, "%sASTObjectTypeArgument (children %d)\n", indent, 1) + Node(sb, n.Expr, depth+1) +} + func explainNameTypePair(sb *strings.Builder, n *ast.NameTypePair, indent string, depth int) { fmt.Fprintf(sb, "%sNameTypePair %s (children %d)\n", indent, n.Name, 1) Node(sb, n.Type, depth+1) diff --git a/parser/parser.go b/parser/parser.go index c09df4a5f7..bd3eaaf76c 100644 --- a/parser/parser.go +++ b/parser/parser.go @@ -2413,7 +2413,9 @@ func (p *Parser) parseDataType() *ast.DataType { // Determine if this type uses named parameters (Nested, Tuple, JSON) upperName := strings.ToUpper(dt.Name) - usesNamedParams := upperName == "NESTED" || upperName == "TUPLE" || upperName == "JSON" + usesNamedParams := upperName == "NESTED" || upperName == "TUPLE" || upperName == "JSON" || upperName == "OBJECT" + // JSON and OBJECT types wrap their parameters in ObjectTypeArgument + isObjectType := upperName == "JSON" || upperName == "OBJECT" // Parse type parameters, but stop on keywords that can't be part of type params for !p.currentIs(token.RPAREN) && !p.currentIs(token.EOF) && !p.currentIs(token.COLLATE) { @@ -2422,10 +2424,11 @@ func (p *Parser) parseDataType() *ast.DataType { isNamedParam := false if usesNamedParams && (p.currentIs(token.IDENT) || p.current.Token.IsKeyword()) { // Check if current is NOT a type name and peek IS a type name or LPAREN follows for complex types - if !p.isDataTypeName(p.current.Value) { + // But NOT if peek is '=' which indicates an expression like max_dynamic_paths=8 + if !p.isDataTypeName(p.current.Value) && !p.peekIs(token.EQ) { // Current is a name (not a type), next should be a type isNamedParam = true - } else if p.peekIs(token.IDENT) || p.peekIs(token.LPAREN) { + } else if !p.peekIs(token.EQ) && (p.peekIs(token.IDENT) || p.peekIs(token.LPAREN)) { // Current looks like a type name but is followed by another identifier // This happens with things like "a Tuple(...)" where "a" looks like it could be a type // Check if peek is a known type name @@ -2441,6 +2444,7 @@ func (p *Parser) parseDataType() *ast.DataType { } } + var param ast.Expression if isNamedParam { // Parse as name + type pair pos := p.current.Pos @@ -2449,19 +2453,29 @@ func (p *Parser) parseDataType() *ast.DataType { // Parse the type for this parameter paramType := p.parseDataType() if paramType != nil { - ntp := &ast.NameTypePair{ + param = &ast.NameTypePair{ Position: pos, Name: paramName, Type: paramType, } - dt.Parameters = append(dt.Parameters, ntp) } } else if (p.currentIs(token.IDENT) || p.current.Token.IsKeyword()) && p.isDataTypeName(p.current.Value) { // It's a type name, parse as data type - dt.Parameters = append(dt.Parameters, p.parseDataType()) + param = p.parseDataType() } else { // Parse as expression (for things like Decimal(10, 2)) - dt.Parameters = append(dt.Parameters, p.parseExpression(LOWEST)) + param = p.parseExpression(LOWEST) + } + + // Wrap in ObjectTypeArgument for JSON/OBJECT types + if param != nil { + if isObjectType { + param = &ast.ObjectTypeArgument{ + Position: param.Pos(), + Expr: param, + } + } + dt.Parameters = append(dt.Parameters, param) } if p.currentIs(token.COMMA) { diff --git a/parser/testdata/03100_lwu_36_json_skip_indexes/metadata.json b/parser/testdata/03100_lwu_36_json_skip_indexes/metadata.json index 5a8a7c364c..839e845d37 100644 --- a/parser/testdata/03100_lwu_36_json_skip_indexes/metadata.json +++ b/parser/testdata/03100_lwu_36_json_skip_indexes/metadata.json @@ -4,7 +4,6 @@ "stmt12": true, "stmt14": true, "stmt16": true, - "stmt3": true, "stmt8": true } } diff --git a/parser/testdata/03205_json_cast_from_string/metadata.json b/parser/testdata/03205_json_cast_from_string/metadata.json index 0d2084d20b..45ab4e25fe 100644 --- a/parser/testdata/03205_json_cast_from_string/metadata.json +++ b/parser/testdata/03205_json_cast_from_string/metadata.json @@ -3,12 +3,6 @@ "stmt10": true, "stmt11": true, "stmt12": true, - "stmt14": true, - "stmt15": true, - "stmt16": true, - "stmt17": true, - "stmt18": true, - "stmt19": true, "stmt5": true, "stmt6": true, "stmt7": true, diff --git a/parser/testdata/03205_json_syntax/metadata.json b/parser/testdata/03205_json_syntax/metadata.json index 31b6d281ff..2192444fd9 100644 --- a/parser/testdata/03205_json_syntax/metadata.json +++ b/parser/testdata/03205_json_syntax/metadata.json @@ -1,7 +1,5 @@ { "explain_todo": { - "stmt11": true, - "stmt13": true, "stmt15": true, "stmt17": true, "stmt19": true, @@ -13,9 +11,6 @@ "stmt31": true, "stmt33": true, "stmt35": true, - "stmt37": true, - "stmt5": true, - "stmt7": true, - "stmt9": true + "stmt37": true } } diff --git a/parser/testdata/03214_json_typed_dynamic_path/metadata.json b/parser/testdata/03214_json_typed_dynamic_path/metadata.json index 3a352d68aa..0967ef424b 100644 --- a/parser/testdata/03214_json_typed_dynamic_path/metadata.json +++ b/parser/testdata/03214_json_typed_dynamic_path/metadata.json @@ -1,6 +1 @@ -{ - "explain_todo": { - "stmt10": true, - "stmt4": true - } -} +{} diff --git a/parser/testdata/03222_json_squashing/metadata.json b/parser/testdata/03222_json_squashing/metadata.json index d4cdf03f73..bb771e4356 100644 --- a/parser/testdata/03222_json_squashing/metadata.json +++ b/parser/testdata/03222_json_squashing/metadata.json @@ -1,19 +1,11 @@ { "explain_todo": { - "stmt21": true, - "stmt22": true, - "stmt30": true, - "stmt38": true, - "stmt46": true, - "stmt47": true, "stmt49": true, "stmt51": true, "stmt53": true, - "stmt55": true, "stmt57": true, "stmt59": true, "stmt61": true, - "stmt63": true, "stmt65": true, "stmt67": true, "stmt69": true diff --git a/parser/testdata/03223_nested_json_in_shared_data_merges/metadata.json b/parser/testdata/03223_nested_json_in_shared_data_merges/metadata.json index df1e2dd202..728d75a643 100644 --- a/parser/testdata/03223_nested_json_in_shared_data_merges/metadata.json +++ b/parser/testdata/03223_nested_json_in_shared_data_merges/metadata.json @@ -2,12 +2,9 @@ "explain_todo": { "stmt10": true, "stmt12": true, - "stmt13": true, "stmt16": true, "stmt18": true, "stmt20": true, - "stmt3": true, - "stmt4": true, "stmt8": true } } diff --git a/parser/testdata/03224_json_merges_new_type_in_shared_data/metadata.json b/parser/testdata/03224_json_merges_new_type_in_shared_data/metadata.json index 1295a45747..0967ef424b 100644 --- a/parser/testdata/03224_json_merges_new_type_in_shared_data/metadata.json +++ b/parser/testdata/03224_json_merges_new_type_in_shared_data/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt3": true - } -} +{} diff --git a/parser/testdata/03224_nested_json_merges_new_type_in_shared_data/metadata.json b/parser/testdata/03224_nested_json_merges_new_type_in_shared_data/metadata.json index 55fcc8fea7..6f422a855e 100644 --- a/parser/testdata/03224_nested_json_merges_new_type_in_shared_data/metadata.json +++ b/parser/testdata/03224_nested_json_merges_new_type_in_shared_data/metadata.json @@ -1,17 +1,11 @@ { "explain_todo": { "stmt11": true, - "stmt12": true, "stmt15": true, "stmt16": true, "stmt17": true, - "stmt18": true, "stmt21": true, "stmt22": true, - "stmt23": true, - "stmt3": true, - "stmt4": true, - "stmt5": true, - "stmt8": true + "stmt23": true } } diff --git a/parser/testdata/03227_distinct_dynamic_types_json_paths/metadata.json b/parser/testdata/03227_distinct_dynamic_types_json_paths/metadata.json index b563327205..0967ef424b 100644 --- a/parser/testdata/03227_distinct_dynamic_types_json_paths/metadata.json +++ b/parser/testdata/03227_distinct_dynamic_types_json_paths/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt7": true - } -} +{} diff --git a/parser/testdata/03232_json_uniq_group_by/metadata.json b/parser/testdata/03232_json_uniq_group_by/metadata.json index 1295a45747..0967ef424b 100644 --- a/parser/testdata/03232_json_uniq_group_by/metadata.json +++ b/parser/testdata/03232_json_uniq_group_by/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt3": true - } -} +{} diff --git a/parser/testdata/03246_json_subcolumn_correct_type/metadata.json b/parser/testdata/03246_json_subcolumn_correct_type/metadata.json index 3a06a4a1ac..0967ef424b 100644 --- a/parser/testdata/03246_json_subcolumn_correct_type/metadata.json +++ b/parser/testdata/03246_json_subcolumn_correct_type/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt5": true - } -} +{} diff --git a/parser/testdata/03247_object_column_copy/metadata.json b/parser/testdata/03247_object_column_copy/metadata.json index dbdbb76d4f..0967ef424b 100644 --- a/parser/testdata/03247_object_column_copy/metadata.json +++ b/parser/testdata/03247_object_column_copy/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt6": true - } -} +{} diff --git a/parser/testdata/03250_json_group_by_sub_object_subcolumn/metadata.json b/parser/testdata/03250_json_group_by_sub_object_subcolumn/metadata.json index 3a06a4a1ac..0967ef424b 100644 --- a/parser/testdata/03250_json_group_by_sub_object_subcolumn/metadata.json +++ b/parser/testdata/03250_json_group_by_sub_object_subcolumn/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt5": true - } -} +{} diff --git a/parser/testdata/03272_json_to_json_cast_1/metadata.json b/parser/testdata/03272_json_to_json_cast_1/metadata.json index 24e9365c27..3a06a4a1ac 100644 --- a/parser/testdata/03272_json_to_json_cast_1/metadata.json +++ b/parser/testdata/03272_json_to_json_cast_1/metadata.json @@ -1,13 +1,5 @@ { "explain_todo": { - "stmt10": true, - "stmt12": true, - "stmt14": true, - "stmt16": true, - "stmt18": true, - "stmt20": true, - "stmt22": true, - "stmt5": true, - "stmt8": true + "stmt5": true } } diff --git a/parser/testdata/03272_json_to_json_cast_2/metadata.json b/parser/testdata/03272_json_to_json_cast_2/metadata.json index a0341fd126..0967ef424b 100644 --- a/parser/testdata/03272_json_to_json_cast_2/metadata.json +++ b/parser/testdata/03272_json_to_json_cast_2/metadata.json @@ -1,14 +1 @@ -{ - "explain_todo": { - "stmt10": true, - "stmt12": true, - "stmt14": true, - "stmt18": true, - "stmt22": true, - "stmt25": true, - "stmt28": true, - "stmt31": true, - "stmt5": true, - "stmt8": true - } -} +{} diff --git a/parser/testdata/03272_json_to_json_cast_3/metadata.json b/parser/testdata/03272_json_to_json_cast_3/metadata.json index d90cd32cbd..b344e2bbfa 100644 --- a/parser/testdata/03272_json_to_json_cast_3/metadata.json +++ b/parser/testdata/03272_json_to_json_cast_3/metadata.json @@ -1,39 +1,24 @@ { "explain_todo": { "stmt10": true, - "stmt12": true, - "stmt14": true, "stmt16": true, - "stmt18": true, - "stmt20": true, - "stmt22": true, "stmt24": true, - "stmt26": true, "stmt28": true, "stmt30": true, "stmt32": true, "stmt34": true, - "stmt36": true, "stmt38": true, - "stmt40": true, - "stmt42": true, - "stmt44": true, "stmt46": true, - "stmt48": true, - "stmt5": true, - "stmt50": true, "stmt52": true, "stmt54": true, "stmt56": true, "stmt58": true, "stmt60": true, "stmt62": true, - "stmt64": true, "stmt66": true, "stmt68": true, "stmt70": true, "stmt72": true, - "stmt74": true, - "stmt8": true + "stmt74": true } } diff --git a/parser/testdata/03272_json_to_json_cast_4/metadata.json b/parser/testdata/03272_json_to_json_cast_4/metadata.json index 9476afa685..0967ef424b 100644 --- a/parser/testdata/03272_json_to_json_cast_4/metadata.json +++ b/parser/testdata/03272_json_to_json_cast_4/metadata.json @@ -1,10 +1 @@ -{ - "explain_todo": { - "stmt11": true, - "stmt13": true, - "stmt15": true, - "stmt5": true, - "stmt7": true, - "stmt9": true - } -} +{} diff --git a/parser/testdata/03272_json_to_json_cast_5/metadata.json b/parser/testdata/03272_json_to_json_cast_5/metadata.json index 988c1a3b32..0967ef424b 100644 --- a/parser/testdata/03272_json_to_json_cast_5/metadata.json +++ b/parser/testdata/03272_json_to_json_cast_5/metadata.json @@ -1,14 +1 @@ -{ - "explain_todo": { - "stmt11": true, - "stmt13": true, - "stmt15": true, - "stmt17": true, - "stmt19": true, - "stmt21": true, - "stmt23": true, - "stmt5": true, - "stmt7": true, - "stmt9": true - } -} +{} diff --git a/parser/testdata/03274_json_to_json_alter_nested_json/metadata.json b/parser/testdata/03274_json_to_json_alter_nested_json/metadata.json index b93741d0d7..e050a434c5 100644 --- a/parser/testdata/03274_json_to_json_alter_nested_json/metadata.json +++ b/parser/testdata/03274_json_to_json_alter_nested_json/metadata.json @@ -3,18 +3,14 @@ "stmt10": true, "stmt12": true, "stmt14": true, - "stmt16": true, "stmt21": true, "stmt23": true, "stmt25": true, "stmt27": true, - "stmt28": true, "stmt33": true, "stmt35": true, "stmt37": true, "stmt39": true, - "stmt4": true, - "stmt40": true, "stmt45": true, "stmt47": true, "stmt49": true, diff --git a/parser/testdata/03279_not_empty_json/metadata.json b/parser/testdata/03279_not_empty_json/metadata.json index d21b63e86b..0967ef424b 100644 --- a/parser/testdata/03279_not_empty_json/metadata.json +++ b/parser/testdata/03279_not_empty_json/metadata.json @@ -1,7 +1 @@ -{ - "explain_todo": { - "stmt10": true, - "stmt14": true, - "stmt6": true - } -} +{} diff --git a/parser/testdata/03282_json_equal_comparison/metadata.json b/parser/testdata/03282_json_equal_comparison/metadata.json index 1295a45747..0967ef424b 100644 --- a/parser/testdata/03282_json_equal_comparison/metadata.json +++ b/parser/testdata/03282_json_equal_comparison/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt3": true - } -} +{} diff --git a/parser/testdata/03283_json_binary_serialization_use_default_setttings/metadata.json b/parser/testdata/03283_json_binary_serialization_use_default_setttings/metadata.json index b65b07d7a6..0967ef424b 100644 --- a/parser/testdata/03283_json_binary_serialization_use_default_setttings/metadata.json +++ b/parser/testdata/03283_json_binary_serialization_use_default_setttings/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt4": true - } -} +{} diff --git a/parser/testdata/03291_json_big_structure_deserialization/metadata.json b/parser/testdata/03291_json_big_structure_deserialization/metadata.json index ef58f80315..0967ef424b 100644 --- a/parser/testdata/03291_json_big_structure_deserialization/metadata.json +++ b/parser/testdata/03291_json_big_structure_deserialization/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt2": true - } -} +{} diff --git a/parser/testdata/03311_constantnode/metadata.json b/parser/testdata/03311_constantnode/metadata.json index 1295a45747..0967ef424b 100644 --- a/parser/testdata/03311_constantnode/metadata.json +++ b/parser/testdata/03311_constantnode/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt3": true - } -} +{} diff --git a/parser/testdata/03311_subcolumns_in_default_and_materialized_expressions/metadata.json b/parser/testdata/03311_subcolumns_in_default_and_materialized_expressions/metadata.json index c84e30800d..0967ef424b 100644 --- a/parser/testdata/03311_subcolumns_in_default_and_materialized_expressions/metadata.json +++ b/parser/testdata/03311_subcolumns_in_default_and_materialized_expressions/metadata.json @@ -1,6 +1 @@ -{ - "explain_todo": { - "stmt3": true, - "stmt7": true - } -} +{} diff --git a/parser/testdata/03312_json_literal_remote/metadata.json b/parser/testdata/03312_json_literal_remote/metadata.json index a2b3c441cd..0967ef424b 100644 --- a/parser/testdata/03312_json_literal_remote/metadata.json +++ b/parser/testdata/03312_json_literal_remote/metadata.json @@ -1,20 +1 @@ -{ - "explain_todo": { - "stmt34": true, - "stmt35": true, - "stmt36": true, - "stmt37": true, - "stmt38": true, - "stmt39": true, - "stmt40": true, - "stmt41": true, - "stmt42": true, - "stmt43": true, - "stmt44": true, - "stmt45": true, - "stmt46": true, - "stmt47": true, - "stmt48": true, - "stmt49": true - } -} +{} diff --git a/parser/testdata/03325_distributed_join_json_array_subcolumns/metadata.json b/parser/testdata/03325_distributed_join_json_array_subcolumns/metadata.json index 0f293987f1..0967ef424b 100644 --- a/parser/testdata/03325_distributed_join_json_array_subcolumns/metadata.json +++ b/parser/testdata/03325_distributed_join_json_array_subcolumns/metadata.json @@ -1,6 +1 @@ -{ - "explain_todo": { - "stmt5": true, - "stmt6": true - } -} +{} diff --git a/parser/testdata/03356_array_join_subcolumns_indexes/metadata.json b/parser/testdata/03356_array_join_subcolumns_indexes/metadata.json index 3a2014fe8c..0967ef424b 100644 --- a/parser/testdata/03356_array_join_subcolumns_indexes/metadata.json +++ b/parser/testdata/03356_array_join_subcolumns_indexes/metadata.json @@ -1 +1 @@ -{"explain_todo":{"stmt6":true}} +{} diff --git a/parser/testdata/03365_json_with_variant_subcolumn/metadata.json b/parser/testdata/03365_json_with_variant_subcolumn/metadata.json index b65b07d7a6..0967ef424b 100644 --- a/parser/testdata/03365_json_with_variant_subcolumn/metadata.json +++ b/parser/testdata/03365_json_with_variant_subcolumn/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt4": true - } -} +{} diff --git a/parser/testdata/03365_time_in_json/metadata.json b/parser/testdata/03365_time_in_json/metadata.json index 49407b86d5..0967ef424b 100644 --- a/parser/testdata/03365_time_in_json/metadata.json +++ b/parser/testdata/03365_time_in_json/metadata.json @@ -1,7 +1 @@ -{ - "explain_todo": { - "stmt10": true, - "stmt15": true, - "stmt5": true - } -} +{} diff --git a/parser/testdata/03376_json_comparison/metadata.json b/parser/testdata/03376_json_comparison/metadata.json index 7feadd8681..0967ef424b 100644 --- a/parser/testdata/03376_json_comparison/metadata.json +++ b/parser/testdata/03376_json_comparison/metadata.json @@ -1,57 +1 @@ -{ - "explain_todo": { - "stmt26": true, - "stmt27": true, - "stmt28": true, - "stmt29": true, - "stmt30": true, - "stmt31": true, - "stmt32": true, - "stmt33": true, - "stmt34": true, - "stmt35": true, - "stmt36": true, - "stmt37": true, - "stmt38": true, - "stmt39": true, - "stmt40": true, - "stmt41": true, - "stmt42": true, - "stmt43": true, - "stmt44": true, - "stmt45": true, - "stmt46": true, - "stmt47": true, - "stmt48": true, - "stmt49": true, - "stmt50": true, - "stmt51": true, - "stmt52": true, - "stmt53": true, - "stmt54": true, - "stmt55": true, - "stmt56": true, - "stmt57": true, - "stmt58": true, - "stmt59": true, - "stmt60": true, - "stmt61": true, - "stmt62": true, - "stmt63": true, - "stmt64": true, - "stmt65": true, - "stmt66": true, - "stmt67": true, - "stmt68": true, - "stmt69": true, - "stmt70": true, - "stmt71": true, - "stmt72": true, - "stmt73": true, - "stmt74": true, - "stmt75": true, - "stmt76": true, - "stmt77": true, - "stmt78": true - } -} +{} diff --git a/parser/testdata/03382_dynamic_serialization_default_settings/metadata.json b/parser/testdata/03382_dynamic_serialization_default_settings/metadata.json index 1295a45747..0967ef424b 100644 --- a/parser/testdata/03382_dynamic_serialization_default_settings/metadata.json +++ b/parser/testdata/03382_dynamic_serialization_default_settings/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt3": true - } -} +{} diff --git a/parser/testdata/03455_direct_io_read_array_values/metadata.json b/parser/testdata/03455_direct_io_read_array_values/metadata.json index 3b61d1417e..e69c938af1 100644 --- a/parser/testdata/03455_direct_io_read_array_values/metadata.json +++ b/parser/testdata/03455_direct_io_read_array_values/metadata.json @@ -1,7 +1,6 @@ { "explain_todo": { "stmt11": true, - "stmt4": true, "stmt5": true, "stmt9": true } diff --git a/parser/testdata/03464_projections_with_subcolumns/metadata.json b/parser/testdata/03464_projections_with_subcolumns/metadata.json index c4847e6aab..ecfa4893c3 100644 --- a/parser/testdata/03464_projections_with_subcolumns/metadata.json +++ b/parser/testdata/03464_projections_with_subcolumns/metadata.json @@ -9,7 +9,6 @@ "stmt24": true, "stmt25": true, "stmt26": true, - "stmt29": true, "stmt31": true, "stmt33": true, "stmt35": true, diff --git a/parser/testdata/03526_columns_substreams_in_wide_parts/metadata.json b/parser/testdata/03526_columns_substreams_in_wide_parts/metadata.json index 8303bc3ea1..3a47899007 100644 --- a/parser/testdata/03526_columns_substreams_in_wide_parts/metadata.json +++ b/parser/testdata/03526_columns_substreams_in_wide_parts/metadata.json @@ -1,6 +1,5 @@ { "explain_todo": { - "stmt2": true, "stmt46": true, "stmt50": true } diff --git a/parser/testdata/03532_dynamic_flattened_serialization_bug/metadata.json b/parser/testdata/03532_dynamic_flattened_serialization_bug/metadata.json index b65b07d7a6..0967ef424b 100644 --- a/parser/testdata/03532_dynamic_flattened_serialization_bug/metadata.json +++ b/parser/testdata/03532_dynamic_flattened_serialization_bug/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt4": true - } -} +{} diff --git a/parser/testdata/03553_json_shared_data_advanced_serialization/metadata.json b/parser/testdata/03553_json_shared_data_advanced_serialization/metadata.json index 7c4e488b99..94b13ecde1 100644 --- a/parser/testdata/03553_json_shared_data_advanced_serialization/metadata.json +++ b/parser/testdata/03553_json_shared_data_advanced_serialization/metadata.json @@ -1,9 +1,7 @@ { "explain_todo": { - "stmt108": true, "stmt117": true, "stmt119": true, - "stmt12": true, "stmt121": true, "stmt123": true, "stmt125": true, @@ -75,7 +73,6 @@ "stmt295": true, "stmt297": true, "stmt299": true, - "stmt3": true, "stmt301": true, "stmt303": true, "stmt305": true, @@ -84,7 +81,6 @@ "stmt31": true, "stmt311": true, "stmt313": true, - "stmt316": true, "stmt33": true, "stmt35": true, "stmt37": true, @@ -93,7 +89,6 @@ "stmt47": true, "stmt49": true, "stmt59": true, - "stmt6": true, "stmt61": true, "stmt63": true, "stmt65": true, @@ -104,7 +99,6 @@ "stmt75": true, "stmt77": true, "stmt79": true, - "stmt81": true, - "stmt84": true + "stmt81": true } } diff --git a/parser/testdata/03553_json_shared_data_map_serialization/metadata.json b/parser/testdata/03553_json_shared_data_map_serialization/metadata.json index dd6d4e6ed3..0967ef424b 100644 --- a/parser/testdata/03553_json_shared_data_map_serialization/metadata.json +++ b/parser/testdata/03553_json_shared_data_map_serialization/metadata.json @@ -1,9 +1 @@ -{ - "explain_todo": { - "stmt110": true, - "stmt28": true, - "stmt3": true, - "stmt52": true, - "stmt6": true - } -} +{} diff --git a/parser/testdata/03553_json_shared_data_map_with_buckets_serialization/metadata.json b/parser/testdata/03553_json_shared_data_map_with_buckets_serialization/metadata.json index 1a4a5de8ae..0967ef424b 100644 --- a/parser/testdata/03553_json_shared_data_map_with_buckets_serialization/metadata.json +++ b/parser/testdata/03553_json_shared_data_map_with_buckets_serialization/metadata.json @@ -1,9 +1 @@ -{ - "explain_todo": { - "stmt157": true, - "stmt3": true, - "stmt39": true, - "stmt6": true, - "stmt63": true - } -} +{} diff --git a/parser/testdata/03554_json_shared_data_advanced_serialization_compact_part_big/metadata.json b/parser/testdata/03554_json_shared_data_advanced_serialization_compact_part_big/metadata.json index 1af7234907..b4b184d331 100644 --- a/parser/testdata/03554_json_shared_data_advanced_serialization_compact_part_big/metadata.json +++ b/parser/testdata/03554_json_shared_data_advanced_serialization_compact_part_big/metadata.json @@ -2,7 +2,6 @@ "explain_todo": { "stmt17": true, "stmt19": true, - "stmt2": true, "stmt21": true, "stmt23": true, "stmt25": true, @@ -25,7 +24,6 @@ "stmt71": true, "stmt73": true, "stmt75": true, - "stmt77": true, - "stmt8": true + "stmt77": true } } diff --git a/parser/testdata/03554_json_shared_data_advanced_serialization_wide_part_big/metadata.json b/parser/testdata/03554_json_shared_data_advanced_serialization_wide_part_big/metadata.json index 83a1002388..0fd9ec12ad 100644 --- a/parser/testdata/03554_json_shared_data_advanced_serialization_wide_part_big/metadata.json +++ b/parser/testdata/03554_json_shared_data_advanced_serialization_wide_part_big/metadata.json @@ -5,7 +5,6 @@ "stmt15": true, "stmt17": true, "stmt19": true, - "stmt2": true, "stmt21": true, "stmt23": true, "stmt25": true, diff --git a/parser/testdata/03554_json_shared_data_map_serialization_compact_part_big/metadata.json b/parser/testdata/03554_json_shared_data_map_serialization_compact_part_big/metadata.json index f540339f40..9be7220609 100644 --- a/parser/testdata/03554_json_shared_data_map_serialization_compact_part_big/metadata.json +++ b/parser/testdata/03554_json_shared_data_map_serialization_compact_part_big/metadata.json @@ -1,7 +1,5 @@ { "explain_todo": { - "stmt2": true, - "stmt22": true, - "stmt24": true + "stmt22": true } } diff --git a/parser/testdata/03554_json_shared_data_map_serialization_wide_part_big/metadata.json b/parser/testdata/03554_json_shared_data_map_serialization_wide_part_big/metadata.json index 59c72cc4a9..6f1e887072 100644 --- a/parser/testdata/03554_json_shared_data_map_serialization_wide_part_big/metadata.json +++ b/parser/testdata/03554_json_shared_data_map_serialization_wide_part_big/metadata.json @@ -1,7 +1,5 @@ { "explain_todo": { - "stmt2": true, - "stmt24": true, "stmt46": true } } diff --git a/parser/testdata/03554_json_shared_data_map_with_buckets_serialization_compact_part_big/metadata.json b/parser/testdata/03554_json_shared_data_map_with_buckets_serialization_compact_part_big/metadata.json index 3602fb0838..7bf4b04abe 100644 --- a/parser/testdata/03554_json_shared_data_map_with_buckets_serialization_compact_part_big/metadata.json +++ b/parser/testdata/03554_json_shared_data_map_with_buckets_serialization_compact_part_big/metadata.json @@ -1,6 +1,5 @@ { "explain_todo": { - "stmt2": true, "stmt33": true } } diff --git a/parser/testdata/03554_json_shared_data_map_with_buckets_serialization_wide_part_big/metadata.json b/parser/testdata/03554_json_shared_data_map_with_buckets_serialization_wide_part_big/metadata.json index ef58f80315..0967ef424b 100644 --- a/parser/testdata/03554_json_shared_data_map_with_buckets_serialization_wide_part_big/metadata.json +++ b/parser/testdata/03554_json_shared_data_map_with_buckets_serialization_wide_part_big/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt2": true - } -} +{} diff --git a/parser/testdata/03554_json_shared_data_tuple_advanced_serialization_compact_part_big/metadata.json b/parser/testdata/03554_json_shared_data_tuple_advanced_serialization_compact_part_big/metadata.json index ef58f80315..0967ef424b 100644 --- a/parser/testdata/03554_json_shared_data_tuple_advanced_serialization_compact_part_big/metadata.json +++ b/parser/testdata/03554_json_shared_data_tuple_advanced_serialization_compact_part_big/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt2": true - } -} +{} diff --git a/parser/testdata/03554_json_shared_data_tuple_advanced_serialization_wide_part_big/metadata.json b/parser/testdata/03554_json_shared_data_tuple_advanced_serialization_wide_part_big/metadata.json index ef58f80315..0967ef424b 100644 --- a/parser/testdata/03554_json_shared_data_tuple_advanced_serialization_wide_part_big/metadata.json +++ b/parser/testdata/03554_json_shared_data_tuple_advanced_serialization_wide_part_big/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt2": true - } -} +{} diff --git a/parser/testdata/03554_json_shared_data_tuple_map_with_buckets_serialization_compact_part_big/metadata.json b/parser/testdata/03554_json_shared_data_tuple_map_with_buckets_serialization_compact_part_big/metadata.json index ef58f80315..0967ef424b 100644 --- a/parser/testdata/03554_json_shared_data_tuple_map_with_buckets_serialization_compact_part_big/metadata.json +++ b/parser/testdata/03554_json_shared_data_tuple_map_with_buckets_serialization_compact_part_big/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt2": true - } -} +{} diff --git a/parser/testdata/03554_json_shared_data_tuple_map_with_buckets_serialization_wide_part_big/metadata.json b/parser/testdata/03554_json_shared_data_tuple_map_with_buckets_serialization_wide_part_big/metadata.json index ef58f80315..0967ef424b 100644 --- a/parser/testdata/03554_json_shared_data_tuple_map_with_buckets_serialization_wide_part_big/metadata.json +++ b/parser/testdata/03554_json_shared_data_tuple_map_with_buckets_serialization_wide_part_big/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt2": true - } -} +{} diff --git a/parser/testdata/03555_json_shared_data_advanced_paths_indexes_1/metadata.json b/parser/testdata/03555_json_shared_data_advanced_paths_indexes_1/metadata.json index 1295a45747..0967ef424b 100644 --- a/parser/testdata/03555_json_shared_data_advanced_paths_indexes_1/metadata.json +++ b/parser/testdata/03555_json_shared_data_advanced_paths_indexes_1/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt3": true - } -} +{} diff --git a/parser/testdata/03555_json_shared_data_advanced_paths_indexes_2/metadata.json b/parser/testdata/03555_json_shared_data_advanced_paths_indexes_2/metadata.json index 1295a45747..0967ef424b 100644 --- a/parser/testdata/03555_json_shared_data_advanced_paths_indexes_2/metadata.json +++ b/parser/testdata/03555_json_shared_data_advanced_paths_indexes_2/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt3": true - } -} +{} diff --git a/parser/testdata/03555_json_shared_data_advanced_paths_indexes_3/metadata.json b/parser/testdata/03555_json_shared_data_advanced_paths_indexes_3/metadata.json index 1295a45747..0967ef424b 100644 --- a/parser/testdata/03555_json_shared_data_advanced_paths_indexes_3/metadata.json +++ b/parser/testdata/03555_json_shared_data_advanced_paths_indexes_3/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt3": true - } -} +{} diff --git a/parser/testdata/03597_alter_column_with_subcolumn_in_key/metadata.json b/parser/testdata/03597_alter_column_with_subcolumn_in_key/metadata.json index ab9202e88e..0967ef424b 100644 --- a/parser/testdata/03597_alter_column_with_subcolumn_in_key/metadata.json +++ b/parser/testdata/03597_alter_column_with_subcolumn_in_key/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt11": true - } -} +{} diff --git a/parser/testdata/03598_json_enum_default_value_in_typed_path/metadata.json b/parser/testdata/03598_json_enum_default_value_in_typed_path/metadata.json index af48d4c110..0967ef424b 100644 --- a/parser/testdata/03598_json_enum_default_value_in_typed_path/metadata.json +++ b/parser/testdata/03598_json_enum_default_value_in_typed_path/metadata.json @@ -1 +1 @@ -{"explain_todo":{"stmt2":true}} +{} diff --git a/parser/testdata/03602_alter_update_nullable_json/metadata.json b/parser/testdata/03602_alter_update_nullable_json/metadata.json index 9a504448b8..0967ef424b 100644 --- a/parser/testdata/03602_alter_update_nullable_json/metadata.json +++ b/parser/testdata/03602_alter_update_nullable_json/metadata.json @@ -1,6 +1 @@ -{ - "explain_todo": { - "stmt12": true, - "stmt4": true - } -} +{} diff --git a/parser/testdata/03622_generic_aggregate_functions__state_compatibility/metadata.json b/parser/testdata/03622_generic_aggregate_functions__state_compatibility/metadata.json index 27692d502a..0967ef424b 100644 --- a/parser/testdata/03622_generic_aggregate_functions__state_compatibility/metadata.json +++ b/parser/testdata/03622_generic_aggregate_functions__state_compatibility/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt41": true - } -} +{} diff --git a/parser/testdata/03638_merge_max_dynamic_subcolumns_in_wide_part/metadata.json b/parser/testdata/03638_merge_max_dynamic_subcolumns_in_wide_part/metadata.json index 9a4ee94115..0967ef424b 100644 --- a/parser/testdata/03638_merge_max_dynamic_subcolumns_in_wide_part/metadata.json +++ b/parser/testdata/03638_merge_max_dynamic_subcolumns_in_wide_part/metadata.json @@ -1,6 +1 @@ -{ - "explain_todo": { - "stmt2": true, - "stmt9": true - } -} +{} diff --git a/parser/testdata/03639_hash_of_json_column/metadata.json b/parser/testdata/03639_hash_of_json_column/metadata.json index d88ada9d51..f4c74e32be 100644 --- a/parser/testdata/03639_hash_of_json_column/metadata.json +++ b/parser/testdata/03639_hash_of_json_column/metadata.json @@ -1,15 +1,5 @@ { "explain_todo": { - "stmt10": true, - "stmt14": true, - "stmt15": true, - "stmt16": true, - "stmt17": true, - "stmt25": true, - "stmt29": true, - "stmt4": true, - "stmt5": true, - "stmt6": true, - "stmt7": true + "stmt10": true } } diff --git a/parser/testdata/03712_json_advanced_shared_data_bug/metadata.json b/parser/testdata/03712_json_advanced_shared_data_bug/metadata.json index bc5c6edb66..3a06a4a1ac 100644 --- a/parser/testdata/03712_json_advanced_shared_data_bug/metadata.json +++ b/parser/testdata/03712_json_advanced_shared_data_bug/metadata.json @@ -1,6 +1,5 @@ { "explain_todo": { - "stmt3": true, "stmt5": true } } diff --git a/parser/testdata/03732_json_duplicated_path_in_dynamic_paths_and_shared_data_compact_part_bug/metadata.json b/parser/testdata/03732_json_duplicated_path_in_dynamic_paths_and_shared_data_compact_part_bug/metadata.json index ef58f80315..0967ef424b 100644 --- a/parser/testdata/03732_json_duplicated_path_in_dynamic_paths_and_shared_data_compact_part_bug/metadata.json +++ b/parser/testdata/03732_json_duplicated_path_in_dynamic_paths_and_shared_data_compact_part_bug/metadata.json @@ -1,5 +1 @@ -{ - "explain_todo": { - "stmt2": true - } -} +{}