From 9529d2c915461d5b26bbdeeaee819c32d97b3fe6 Mon Sep 17 00:00:00 2001 From: Vitaly Stoyan Date: Fri, 24 May 2024 12:11:52 +0300 Subject: [PATCH] Revert file cycles detection (#4802) --- .../providers/config/yql_config_provider.cpp | 50 +++---------------- .../sql/dq_file/part8/canondata/result.json | 5 -- .../extracted | 5 -- .../tests/sql/sql2yql/canondata/result.json | 14 ------ .../tests/sql/suites/action/file_cycle.cfg | 2 - .../tests/sql/suites/action/file_cycle.sql | 3 -- .../part8/canondata/result.json | 7 --- .../extracted | 5 -- 8 files changed, 8 insertions(+), 83 deletions(-) delete mode 100644 ydb/library/yql/tests/sql/dq_file/part8/canondata/test.test_action-file_cycle--Results_/extracted delete mode 100644 ydb/library/yql/tests/sql/suites/action/file_cycle.cfg delete mode 100644 ydb/library/yql/tests/sql/suites/action/file_cycle.sql delete mode 100644 ydb/library/yql/tests/sql/yt_native_file/part8/canondata/test.test_action-file_cycle--Results_/extracted diff --git a/ydb/library/yql/providers/config/yql_config_provider.cpp b/ydb/library/yql/providers/config/yql_config_provider.cpp index c471f6fc0f01..b8a1bbbf8284 100644 --- a/ydb/library/yql/providers/config/yql_config_provider.cpp +++ b/ydb/library/yql/providers/config/yql_config_provider.cpp @@ -168,7 +168,7 @@ namespace { for (auto& arg: flag.GetArgs()) { args.push_back(arg); } - if (!ApplyFlag(pos, flag.GetName(), args, ctx, 0)) { + if (!ApplyFlag(pos, flag.GetName(), args, ctx)) { return false; } } @@ -260,7 +260,7 @@ namespace { for (size_t i = 3; i < node->ChildrenSize(); ++i) { if (node->Child(i)->IsCallable("EvaluateAtom")) { hasPendingEvaluations = true; - break; + return res; } if (!EnsureAtom(*node->Child(i), ctx)) { return {}; @@ -268,15 +268,7 @@ namespace { args.push_back(node->Child(i)->Content()); } - if (hasPendingEvaluations) { - if (!ValidateEvaluation(command, *node, ctx)) { - return {}; - } - - return res; - } - - if (!ApplyFlag(ctx.GetPosition(node->Child(2)->Pos()), command, args, ctx, node->UniqueId())) { + if (!ApplyFlag(ctx.GetPosition(node->Child(2)->Pos()), command, args, ctx)) { return {}; } @@ -468,30 +460,7 @@ namespace { return true; } - bool ValidateEvaluation(const TStringBuf name, const TExprNode& node, TExprContext& ctx) { - if (name == "AddFileByUrl" || name == "AddFolderByUrl") { - if (node.ChildrenSize() < 4) { - ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder() << "Expected at least 4 arguments, but got " << node.ChildrenSize())); - return false; - } - - if (node.Child(3)->IsCallable("EvaluateAtom")) { - return true; - } - - if (!PendingEvaluationFiles.insert({TString(node.Child(3)->Content()), node.UniqueId()}).second) { - ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder() << "Detected evaluation cycle for file: " << node.Child(3)->Content())); - return false; - } - - return true; - } else { - return true; - } - } - - bool ApplyFlag(const TPosition& pos, const TStringBuf name, const TVector& args, TExprContext& ctx, - ui64 nodeUniqueId) { + bool ApplyFlag(const TPosition& pos, const TStringBuf name, const TVector& args, TExprContext& ctx) { if (!IsSettingAllowed(pos, name, ctx)) { return false; } @@ -505,7 +474,7 @@ namespace { return false; } } else if (name == "AddFileByUrl") { - if (!AddFileByUrl(pos, args, ctx, nodeUniqueId)) { + if (!AddFileByUrl(pos, args, ctx)) { return false; } } else if (name == "SetFileOption") { @@ -513,7 +482,7 @@ namespace { return false; } } else if (name == "AddFolderByUrl") { - if (!AddFolderByUrl(pos, args, ctx, nodeUniqueId)) { + if (!AddFolderByUrl(pos, args, ctx)) { return false; } } else if (name == "SetPackageVersion") { @@ -1040,13 +1009,12 @@ namespace { return true; } - bool AddFileByUrl(const TPosition& pos, const TVector& args, TExprContext& ctx, ui64 nodeUniqueId) { + bool AddFileByUrl(const TPosition& pos, const TVector& args, TExprContext& ctx) { if (args.size() < 2 || args.size() > 3) { ctx.AddError(TIssue(pos, TStringBuilder() << "Expected 2 or 3 arguments, but got " << args.size())); return false; } - PendingEvaluationFiles.erase({TString(args[0]),nodeUniqueId}); TStringBuf token = args.size() == 3 ? args[2] : TStringBuf(); if (token) { if (auto cred = Types.Credentials->FindCredential(token)) { @@ -1160,13 +1128,12 @@ namespace { return url; } - bool AddFolderByUrl(const TPosition& pos, const TVector& args, TExprContext& ctx, ui64 nodeUniqueId) { + bool AddFolderByUrl(const TPosition& pos, const TVector& args, TExprContext& ctx) { if (args.size() < 2 || args.size() > 3) { ctx.AddError(TIssue(pos, TStringBuilder() << "Expected 2 or 3 arguments, but got " << args.size())); return false; } - PendingEvaluationFiles.erase({TString(args[0]),nodeUniqueId}); TStringBuf token = args.size() == 3 ? args[2] : TStringBuf(); if (token) { if (auto cred = Types.Credentials->FindCredential(token)) { @@ -1263,7 +1230,6 @@ namespace { TString Username; const TAllowSettingPolicy Policy; TOperationStatistics Statistics; - THashSet> PendingEvaluationFiles; }; } diff --git a/ydb/library/yql/tests/sql/dq_file/part8/canondata/result.json b/ydb/library/yql/tests/sql/dq_file/part8/canondata/result.json index 5fa621543f76..3ac0cb44cec4 100644 --- a/ydb/library/yql/tests/sql/dq_file/part8/canondata/result.json +++ b/ydb/library/yql/tests/sql/dq_file/part8/canondata/result.json @@ -21,11 +21,6 @@ } ], "test.test[action-evaluate_pure--Results]": [], - "test.test[action-file_cycle--Results]": [ - { - "uri": "file://test.test_action-file_cycle--Results_/extracted" - } - ], "test.test[action-nested_eval-default.txt-Analyze]": [ { "checksum": "b4dd508a329723c74293d80f0278c705", diff --git a/ydb/library/yql/tests/sql/dq_file/part8/canondata/test.test_action-file_cycle--Results_/extracted b/ydb/library/yql/tests/sql/dq_file/part8/canondata/test.test_action-file_cycle--Results_/extracted deleted file mode 100644 index 833dc693f5a5..000000000000 --- a/ydb/library/yql/tests/sql/dq_file/part8/canondata/test.test_action-file_cycle--Results_/extracted +++ /dev/null @@ -1,5 +0,0 @@ -/program.sql:
: Error: Pre type annotation - - /program.sql:
:2:18: Error: Detected evaluation cycle for file: f - pragma file("f", $p); - ^ \ No newline at end of file diff --git a/ydb/library/yql/tests/sql/sql2yql/canondata/result.json b/ydb/library/yql/tests/sql/sql2yql/canondata/result.json index 0808903b9b95..c8498215e2f3 100644 --- a/ydb/library/yql/tests/sql/sql2yql/canondata/result.json +++ b/ydb/library/yql/tests/sql/sql2yql/canondata/result.json @@ -426,13 +426,6 @@ "uri": "https://{canondata_backend}/1936947/659b615f15086142a8960946dabd06b519d43335/resource.tar.gz#test_sql2yql.test_action-export_action_/sql.yql" } ], - "test_sql2yql.test[action-file_cycle]": [ - { - "checksum": "095c2c315ba26037554c056a02f5af05", - "size": 343, - "uri": "https://{canondata_backend}/1871002/4d084a25cea0c62bd09f3c9e9e7c2b56d112c5b1/resource.tar.gz#test_sql2yql.test_action-file_cycle_/sql.yql" - } - ], "test_sql2yql.test[action-inline_action]": [ { "checksum": "928aaa85637625e18fef89b35501f0f3", @@ -19004,13 +18997,6 @@ "uri": "https://{canondata_backend}/1871102/17992aa919577eec0f31ef167084ab70f41ccc80/resource.tar.gz#test_sql_format.test_action-export_action_/formatted.sql" } ], - "test_sql_format.test[action-file_cycle]": [ - { - "checksum": "5476df82092007027246993752e24f68", - "size": 45, - "uri": "https://{canondata_backend}/1871002/4d084a25cea0c62bd09f3c9e9e7c2b56d112c5b1/resource.tar.gz#test_sql_format.test_action-file_cycle_/formatted.sql" - } - ], "test_sql_format.test[action-inline_action]": [ { "checksum": "7da554999ea3520183678c730ae2fffb", diff --git a/ydb/library/yql/tests/sql/suites/action/file_cycle.cfg b/ydb/library/yql/tests/sql/suites/action/file_cycle.cfg deleted file mode 100644 index 83cfd96179ac..000000000000 --- a/ydb/library/yql/tests/sql/suites/action/file_cycle.cfg +++ /dev/null @@ -1,2 +0,0 @@ -xfail - diff --git a/ydb/library/yql/tests/sql/suites/action/file_cycle.sql b/ydb/library/yql/tests/sql/suites/action/file_cycle.sql deleted file mode 100644 index fc1374cfc62e..000000000000 --- a/ydb/library/yql/tests/sql/suites/action/file_cycle.sql +++ /dev/null @@ -1,3 +0,0 @@ -$p=FileContent("f"); -pragma file("f", $p); - diff --git a/ydb/library/yql/tests/sql/yt_native_file/part8/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part8/canondata/result.json index 0558ad1b9d98..13180ff87a89 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part8/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part8/canondata/result.json @@ -20,13 +20,6 @@ "uri": "https://{canondata_backend}/1775059/105879cd875204bc7c66426c8bfdd2bbd01bfaf7/resource.tar.gz#test.test_action-evaluate_pure--Results_/results.txt" } ], - "test.test[action-file_cycle--Debug]": [], - "test.test[action-file_cycle--Plan]": [], - "test.test[action-file_cycle--Results]": [ - { - "uri": "file://test.test_action-file_cycle--Results_/extracted" - } - ], "test.test[action-nested_eval-default.txt-Debug]": [ { "checksum": "dfc49c1f6f30ac41794475c26145cd89", diff --git a/ydb/library/yql/tests/sql/yt_native_file/part8/canondata/test.test_action-file_cycle--Results_/extracted b/ydb/library/yql/tests/sql/yt_native_file/part8/canondata/test.test_action-file_cycle--Results_/extracted deleted file mode 100644 index 833dc693f5a5..000000000000 --- a/ydb/library/yql/tests/sql/yt_native_file/part8/canondata/test.test_action-file_cycle--Results_/extracted +++ /dev/null @@ -1,5 +0,0 @@ -/program.sql:
: Error: Pre type annotation - - /program.sql:
:2:18: Error: Detected evaluation cycle for file: f - pragma file("f", $p); - ^ \ No newline at end of file