summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/complete/sql_complete_ut.cpp
diff options
context:
space:
mode:
authorvityaman <[email protected]>2025-05-20 12:50:28 +0300
committerrobot-piglet <[email protected]>2025-05-20 13:07:06 +0300
commit16630d4dfad772e0108e694f76f922e486cd6439 (patch)
tree9502ff9057dfb71a94154f66a3e6452bf684c8fd /yql/essentials/sql/v1/complete/sql_complete_ut.cpp
parent2cca5c2b53580983c51f00239859e45d4bc32836 (diff)
YQL-19747: Support USE statement
Introduce global analysis which will be extended with more ParseTree analysis later. --- - Related to `YQL-19747` - Related to https://github.com/vityaman/ydb/issues/40 --- Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1281 commit_hash:848fb3fdd6bc9612769c47d66198fca018ff465f
Diffstat (limited to 'yql/essentials/sql/v1/complete/sql_complete_ut.cpp')
-rw-r--r--yql/essentials/sql/v1/complete/sql_complete_ut.cpp63
1 files changed, 63 insertions, 0 deletions
diff --git a/yql/essentials/sql/v1/complete/sql_complete_ut.cpp b/yql/essentials/sql/v1/complete/sql_complete_ut.cpp
index 1e01f899e46..00c5f3427f6 100644
--- a/yql/essentials/sql/v1/complete/sql_complete_ut.cpp
+++ b/yql/essentials/sql/v1/complete/sql_complete_ut.cpp
@@ -604,6 +604,69 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
}
}
+ Y_UNIT_TEST(SelectFromWithUse) {
+ auto engine = MakeSqlCompletionEngineUT();
+ {
+ TVector<TCandidate> expected = {
+ {TableName, "`maxim`"},
+ {ClusterName, "example"},
+ {ClusterName, "yt:saurus"},
+ {Keyword, "ANY"},
+ };
+ UNIT_ASSERT_VALUES_EQUAL(Complete(engine, "USE yt:saurus; SELECT * FROM "), expected);
+ }
+ {
+ TVector<TCandidate> expected = {
+ {TableName, "`people`"},
+ {FolderName, "`yql/`"},
+ };
+ UNIT_ASSERT_VALUES_EQUAL(Complete(engine, "USE yt:saurus; SELECT * FROM example."), expected);
+ }
+ {
+ TVector<TCandidate> expected = {
+ {TableName, "`maxim`"},
+ {ClusterName, "example"},
+ {ClusterName, "yt:saurus"},
+ {Keyword, "ANY"},
+ };
+ UNIT_ASSERT_VALUES_EQUAL(Complete(engine, "USE example; USE yt:saurus; SELECT * FROM "), expected);
+ }
+ {
+ TVector<TCandidate> expected = {
+ {TableName, "`maxim`"},
+ {ClusterName, "example"},
+ {ClusterName, "yt:saurus"},
+ {Keyword, "ANY"},
+ };
+ UNIT_ASSERT_VALUES_EQUAL(Complete(engine, R"(
+ USE example;
+ DEFINE ACTION $hello() AS
+ USE yt:saurus;
+ SELECT * FROM #;
+ END DEFINE;
+ )"), expected);
+ }
+ {
+ TVector<TCandidate> expected = {
+ {TableName, "`people`"},
+ {FolderName, "`yql/`"},
+ {ClusterName, "example"},
+ {ClusterName, "yt:saurus"},
+ {Keyword, "ANY"},
+ };
+ UNIT_ASSERT_VALUES_EQUAL(Complete(engine, R"(
+ USE example;
+
+ DEFINE ACTION $action() AS
+ USE yt:saurus;
+ SELECT * FROM test;
+ END DEFINE;
+
+ SELECT * FROM #
+ )"), expected);
+ }
+ }
+
Y_UNIT_TEST(SelectWhere) {
TVector<TCandidate> expected = {
{Keyword, "BITCAST("},