diff --git a/ydb/library/yql/core/type_ann/type_ann_core.cpp b/ydb/library/yql/core/type_ann/type_ann_core.cpp index 816716d56c3b..0931cfe60346 100644 --- a/ydb/library/yql/core/type_ann/type_ann_core.cpp +++ b/ydb/library/yql/core/type_ann/type_ann_core.cpp @@ -9497,7 +9497,7 @@ template // somewhat ugly attempt to find SqlProject to obtain column order auto currInput = input->HeadPtr(); TString path = ToString(input->Content()); - while (currInput->IsCallable({"PersistableRepr", "SqlAggregateAll", "RemoveSystemMembers", "Sort"})) { + while (currInput->IsCallable({"PersistableRepr", "SqlAggregateAll", "RemoveSystemMembers", "Sort", "Take", "Skip"})) { path = path + " -> " + ToString(currInput->Content()); currInput = currInput->HeadPtr(); } @@ -9512,7 +9512,7 @@ template for (const auto& item : currInput->Child(1)->ChildrenList()) { if (!item->IsCallable("SqlProjectItem")) { ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(item->Pos()), - TStringBuilder() << "Failed to deduce column order for input - star / qualified star is prosent in projection")); + TStringBuilder() << "Failed to deduce column order for input - star / qualified star is present in projection")); return IGraphTransformer::TStatus::Error; } childColumnOrder->push_back(ToString(item->Child(1)->Content())); diff --git a/ydb/library/yql/tests/sql/dq_file/part1/canondata/result.json b/ydb/library/yql/tests/sql/dq_file/part1/canondata/result.json index 6733e6b575fb..898144a78877 100644 --- a/ydb/library/yql/tests/sql/dq_file/part1/canondata/result.json +++ b/ydb/library/yql/tests/sql/dq_file/part1/canondata/result.json @@ -758,6 +758,28 @@ } ], "test.test[case-case_val_then_else-default.txt-Results]": [], + "test.test[column_order-insert_reorder_without_columnorder--Analyze]": [ + { + "checksum": "9f976dc964b65317600df5a37ad5c299", + "size": 5708, + "uri": "https://{canondata_backend}/1936273/9c0654be6d8c964c541bdf0c96b4980357ef29d2/resource.tar.gz#test.test_column_order-insert_reorder_without_columnorder--Analyze_/plan.txt" + } + ], + "test.test[column_order-insert_reorder_without_columnorder--Debug]": [ + { + "checksum": "24a68010f08ed95c74dbafff96f4ce0e", + "size": 2482, + "uri": "https://{canondata_backend}/1936273/9c0654be6d8c964c541bdf0c96b4980357ef29d2/resource.tar.gz#test.test_column_order-insert_reorder_without_columnorder--Debug_/opt.yql_patched" + } + ], + "test.test[column_order-insert_reorder_without_columnorder--Plan]": [ + { + "checksum": "9f976dc964b65317600df5a37ad5c299", + "size": 5708, + "uri": "https://{canondata_backend}/1936273/9c0654be6d8c964c541bdf0c96b4980357ef29d2/resource.tar.gz#test.test_column_order-insert_reorder_without_columnorder--Plan_/plan.txt" + } + ], + "test.test[column_order-insert_reorder_without_columnorder--Results]": [], "test.test[column_order-select_limit_offset_reorder-default.txt-Analyze]": [ { "checksum": "e0cc08c6479b76e82c514b6c219d04a9", diff --git a/ydb/library/yql/tests/sql/hybrid_file/part6/canondata/result.json b/ydb/library/yql/tests/sql/hybrid_file/part6/canondata/result.json index cca4afbc9a72..147cc6e847d9 100644 --- a/ydb/library/yql/tests/sql/hybrid_file/part6/canondata/result.json +++ b/ydb/library/yql/tests/sql/hybrid_file/part6/canondata/result.json @@ -685,6 +685,20 @@ "uri": "https://{canondata_backend}/1031349/201452dd8c883b2adcbf46cb075c912d25efe67e/resource.tar.gz#test.test_blocks-string_filter--Plan_/plan.txt" } ], + "test.test[column_order-insert_reorder_without_columnorder--Debug]": [ + { + "checksum": "5114a0354b52004a0f348e647f5ee7da", + "size": 3293, + "uri": "https://{canondata_backend}/1923547/5451f47c75a00d5a13be1b9727e4bd8ab28d3dbc/resource.tar.gz#test.test_column_order-insert_reorder_without_columnorder--Debug_/opt.yql_patched" + } + ], + "test.test[column_order-insert_reorder_without_columnorder--Plan]": [ + { + "checksum": "ef6f35bbaf81f3538336079d0e53a013", + "size": 7612, + "uri": "https://{canondata_backend}/1923547/5451f47c75a00d5a13be1b9727e4bd8ab28d3dbc/resource.tar.gz#test.test_column_order-insert_reorder_without_columnorder--Plan_/plan.txt" + } + ], "test.test[count-count_all_grouped-empty-Debug]": [ { "checksum": "78e370a06195fd118ab2628516fc207a", diff --git a/ydb/library/yql/tests/sql/sql2yql/canondata/result.json b/ydb/library/yql/tests/sql/sql2yql/canondata/result.json index 7d7b44ae90cb..2b24be8c4c09 100644 --- a/ydb/library/yql/tests/sql/sql2yql/canondata/result.json +++ b/ydb/library/yql/tests/sql/sql2yql/canondata/result.json @@ -3975,6 +3975,13 @@ "uri": "https://{canondata_backend}/1936947/659b615f15086142a8960946dabd06b519d43335/resource.tar.gz#test_sql2yql.test_column_order-insert_/sql.yql" } ], + "test_sql2yql.test[column_order-insert_reorder_without_columnorder]": [ + { + "checksum": "d3105827a0ca8e095bcecc797540f34e", + "size": 1553, + "uri": "https://{canondata_backend}/1923547/0aba22156762a55d9c7578c76fffd5395d319f8b/resource.tar.gz#test_sql2yql.test_column_order-insert_reorder_without_columnorder_/sql.yql" + } + ], "test_sql2yql.test[column_order-insert_tmp]": [ { "checksum": "f7020067b63cf9ba560ad9e409933221", @@ -22266,6 +22273,13 @@ "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_column_order-insert_/formatted.sql" } ], + "test_sql_format.test[column_order-insert_reorder_without_columnorder]": [ + { + "checksum": "e0526a3060fc6b9c9a2d0c295066f135", + "size": 223, + "uri": "https://{canondata_backend}/1923547/0aba22156762a55d9c7578c76fffd5395d319f8b/resource.tar.gz#test_sql_format.test_column_order-insert_reorder_without_columnorder_/formatted.sql" + } + ], "test_sql_format.test[column_order-insert_tmp]": [ { "checksum": "ce56494a4e05ac5ccd812e10665c7541", diff --git a/ydb/library/yql/tests/sql/suites/column_order/insert_reorder_without_columnorder.cfg b/ydb/library/yql/tests/sql/suites/column_order/insert_reorder_without_columnorder.cfg new file mode 100644 index 000000000000..ad52c79527f6 --- /dev/null +++ b/ydb/library/yql/tests/sql/suites/column_order/insert_reorder_without_columnorder.cfg @@ -0,0 +1,2 @@ +in Input input.txt +out Output output.txt diff --git a/ydb/library/yql/tests/sql/suites/column_order/insert_reorder_without_columnorder.sql b/ydb/library/yql/tests/sql/suites/column_order/insert_reorder_without_columnorder.sql new file mode 100644 index 000000000000..0b9f6613ac24 --- /dev/null +++ b/ydb/library/yql/tests/sql/suites/column_order/insert_reorder_without_columnorder.sql @@ -0,0 +1,14 @@ +/* postgres can not */ +use plato; +pragma DisableOrderedColumns; +pragma warning("disable", "4517"); + +$Group = 1u; + +INSERT INTO Output(Group, Name) +SELECT + $Group, + value +FROM Input +WHERE key = "150" +LIMIT 1; diff --git a/ydb/library/yql/tests/sql/yt_native_file/part1/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part1/canondata/result.json index 1a230a738e67..23d6e449da93 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part1/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part1/canondata/result.json @@ -740,6 +740,32 @@ "uri": "https://{canondata_backend}/1937424/66c5c1f7eacf73e0268f48e38b5a6fa4b89642a8/resource.tar.gz#test.test_case-case_val_then_else-default.txt-Results_/results.txt" } ], + "test.test[column_order-insert_reorder_without_columnorder--Debug]": [ + { + "checksum": "394fb1a2432e75eff98cd04fed0e7d56", + "size": 2268, + "uri": "https://{canondata_backend}/1936273/bfda7491784aceaa88c55429ca2306196db27d7c/resource.tar.gz#test.test_column_order-insert_reorder_without_columnorder--Debug_/opt.yql" + } + ], + "test.test[column_order-insert_reorder_without_columnorder--Plan]": [ + { + "checksum": "3fc5cf899c15ced58a2e419bbef6d2ce", + "size": 6210, + "uri": "https://{canondata_backend}/1936273/bfda7491784aceaa88c55429ca2306196db27d7c/resource.tar.gz#test.test_column_order-insert_reorder_without_columnorder--Plan_/plan.txt" + } + ], + "test.test[column_order-insert_reorder_without_columnorder--Results]": [ + { + "checksum": "570d8ebc467fbc835d91616927ca98d8", + "size": 42, + "uri": "https://{canondata_backend}/1936273/bfda7491784aceaa88c55429ca2306196db27d7c/resource.tar.gz#test.test_column_order-insert_reorder_without_columnorder--Results_/Output.txt" + }, + { + "checksum": "fc35e8e5321928f409f3cacb0b0ac6e0", + "size": 487, + "uri": "https://{canondata_backend}/1936273/bfda7491784aceaa88c55429ca2306196db27d7c/resource.tar.gz#test.test_column_order-insert_reorder_without_columnorder--Results_/Output.yqlrun.txt.attr" + } + ], "test.test[column_order-select_limit_offset_reorder-default.txt-Debug]": [ { "checksum": "f810b94782294b9bafa467567637b4a3",