diff options
author | vityaman <[email protected]> | 2025-05-20 12:50:28 +0300 |
---|---|---|
committer | robot-piglet <[email protected]> | 2025-05-20 13:07:06 +0300 |
commit | 16630d4dfad772e0108e694f76f922e486cd6439 (patch) | |
tree | 9502ff9057dfb71a94154f66a3e6452bf684c8fd /yql/essentials/sql/v1/complete/sql_complete_ut.cpp | |
parent | 2cca5c2b53580983c51f00239859e45d4bc32836 (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.cpp | 63 |
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("}, |