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 5ad0621f1d9c..c9109ff550be 100644 --- a/ydb/library/yql/core/type_ann/type_ann_core.cpp +++ b/ydb/library/yql/core/type_ann/type_ann_core.cpp @@ -9495,7 +9495,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(); } @@ -9510,7 +9510,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 bd6b83b0e943..dd38a7d87385 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 @@ -736,6 +736,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": "e31bd3307574142ad420a09e5ad536e0", + "size": 2462, + "uri": "https://{canondata_backend}/1031349/a0b3e3db5f104c4fb6b8f2733a1f6bdd159cebf8/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/sql2yql/canondata/result.json b/ydb/library/yql/tests/sql/sql2yql/canondata/result.json index 0a281e083086..0b798cfdc8f5 100644 --- a/ydb/library/yql/tests/sql/sql2yql/canondata/result.json +++ b/ydb/library/yql/tests/sql/sql2yql/canondata/result.json @@ -3695,6 +3695,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", @@ -21167,6 +21174,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 e416956271d9..528406c3c24d 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 @@ -719,6 +719,27 @@ "uri": "https://{canondata_backend}/1924537/4423f8f88aaeda4e03b0c158e2e6b0df92c41109/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": "e2f603569cbeb53f1f75cc535fe4a542", + "size": 2248, + "uri": "https://{canondata_backend}/1817427/944e3e51d311ff192b733679255631e4b144c75c/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": "e09e785295186f47f7f26ab8e0f0fbb3", + "size": 27, + "uri": "https://{canondata_backend}/1817427/944e3e51d311ff192b733679255631e4b144c75c/resource.tar.gz#test.test_column_order-insert_reorder_without_columnorder--Results_/Output.txt" + } + ], "test.test[column_order-select_limit_offset_reorder-default.txt-Debug]": [ { "checksum": "f810b94782294b9bafa467567637b4a3",