diff options
| author | vityaman <[email protected]> | 2025-05-27 11:56:16 +0300 |
|---|---|---|
| committer | robot-piglet <[email protected]> | 2025-05-27 12:09:17 +0300 |
| commit | 04c43eb2d8297ffe7b7b7a5b4ca48980d01fca96 (patch) | |
| tree | 4230ea5e52fbdbfd3068624004cdc054e1952268 /yql/essentials/sql/v1/complete/sql_complete_ut.cpp | |
| parent | 844ea8aaa5c094d9210b9535d06d98cc5bb56afa (diff) | |
YQL-19747: Support immediate string named expressions
---
- Related to `YQL-19747`
- Related to https://github.com/vityaman/ydb/issues/50
---
Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1292
commit_hash:a6d543bc18b2f9239bf0b33afd8497a7919fe4b3
Diffstat (limited to 'yql/essentials/sql/v1/complete/sql_complete_ut.cpp')
| -rw-r--r-- | yql/essentials/sql/v1/complete/sql_complete_ut.cpp | 56 |
1 files changed, 48 insertions, 8 deletions
diff --git a/yql/essentials/sql/v1/complete/sql_complete_ut.cpp b/yql/essentials/sql/v1/complete/sql_complete_ut.cpp index dc5690853f5..60a77a422d9 100644 --- a/yql/essentials/sql/v1/complete/sql_complete_ut.cpp +++ b/yql/essentials/sql/v1/complete/sql_complete_ut.cpp @@ -127,8 +127,8 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) { return MakeSqlCompletionEngine(std::move(lexer), std::move(service)); } - TVector<TCandidate> Complete(ISqlCompletionEngine::TPtr& engine, TString sharped) { - return engine->CompleteAsync(SharpedInput(sharped)).GetValueSync().Candidates; + TVector<TCandidate> Complete(ISqlCompletionEngine::TPtr& engine, TString sharped, TEnvironment env = {}) { + return engine->CompleteAsync(SharpedInput(sharped), std::move(env)).GetValueSync().Candidates; } TVector<TCandidate> CompleteTop(size_t limit, ISqlCompletionEngine::TPtr& engine, TString sharped) { @@ -196,6 +196,41 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) { UNIT_ASSERT_VALUES_EQUAL(Complete(engine, "USE "), expected); } + Y_UNIT_TEST(UseClusterResultion) { + auto engine = MakeSqlCompletionEngineUT(); + { + TVector<TCandidate> expected = { + {TableName, "`maxim`"}, + {ClusterName, "example"}, + {ClusterName, "yt:saurus"}, + {Keyword, "ANY"}, + }; + UNIT_ASSERT_VALUES_EQUAL( + Complete( + engine, + "USE yt:$cluster_name; SELECT * FROM ", + {.Parameters = {{"cluster_name", "saurus"}}}), + expected); + } + { + TVector<TCandidate> expected = { + {FolderName, "`.sys/`"}, + {FolderName, "`local/`"}, + {FolderName, "`prod/`"}, + {FolderName, "`test/`"}, + {ClusterName, "example"}, + {ClusterName, "yt:saurus"}, + {Keyword, "ANY"}, + }; + UNIT_ASSERT_VALUES_EQUAL( + Complete( + engine, + "USE yt:$cluster_name; SELECT * FROM ", + {.Parameters = {}}), + expected); + } + } + Y_UNIT_TEST(Alter) { TVector<TCandidate> expected = { {Keyword, "ASYNC REPLICATION"}, @@ -981,12 +1016,17 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) { } Y_UNIT_TEST(Tabbing) { - TString query = - "SELECT \n" - " 123467, \"Hello, {name}! 编码\"}, \n" - " (1 + (5 * 1 / 0)), MIN(identifier), \n" - " Bool(field), Math::Sin(var) \n" - "FROM `local/test/space/table` JOIN test;"; + TString query = R"( +USE example; + +SELECT + 123467, \"Hello, {name}! 编码\"}, + (1 + (5 * 1 / 0)), MIN(identifier), + Bool(field), Math::Sin(var) +FROM `local/test/space/table` +JOIN yt:$cluster_name.test; +)"; + query += query + ";"; query += query + ";"; |
