diff options
author | robot-piglet <[email protected]> | 2025-06-02 16:34:29 +0300 |
---|---|---|
committer | robot-piglet <[email protected]> | 2025-06-02 16:48:28 +0300 |
commit | a94f4f389851dfc9ac0a7f8e7bb7a0d12ffadf82 (patch) | |
tree | a4041ded4fdc5746f5c1002ede7f3fe583131fa0 /yql/essentials/sql/v1/complete/sql_complete_ut.cpp | |
parent | 23b5653e9af4ef22f764a842524a69815ec0459c (diff) |
Intermediate changes
commit_hash:6476b453be16b7db003e75789e3b630c1168f14f
Diffstat (limited to 'yql/essentials/sql/v1/complete/sql_complete_ut.cpp')
-rw-r--r-- | yql/essentials/sql/v1/complete/sql_complete_ut.cpp | 37 |
1 files changed, 37 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 cc39fa875cc..ebc6500b901 100644 --- a/yql/essentials/sql/v1/complete/sql_complete_ut.cpp +++ b/yql/essentials/sql/v1/complete/sql_complete_ut.cpp @@ -1,8 +1,10 @@ #include "sql_complete.h" #include <yql/essentials/sql/v1/complete/syntax/grammar.h> +#include <yql/essentials/sql/v1/complete/name/cache/local/cache.h> #include <yql/essentials/sql/v1/complete/name/cluster/static/discovery.h> #include <yql/essentials/sql/v1/complete/name/object/simple/schema.h> +#include <yql/essentials/sql/v1/complete/name/object/simple/cached/schema.h> #include <yql/essentials/sql/v1/complete/name/object/simple/static/schema.h> #include <yql/essentials/sql/v1/complete/name/service/ranking/frequency.h> #include <yql/essentials/sql/v1/complete/name/service/ranking/ranking.h> @@ -1269,4 +1271,39 @@ JOIN yt:$cluster_name.test; UNIT_ASSERT_UNEQUAL(Complete(engine, {"SELE"}).size(), 0); } + Y_UNIT_TEST(CachedSchema) { + TLexerSupplier lexer = MakePureLexerSupplier(); + + auto cache = MakeLocalCache< + TSchemaListCacheKey, TVector<TFolderEntry>>( + NMonotonic::CreateDefaultMonotonicTimeProvider(), {}); + + auto aliceService = MakeSchemaNameService( + MakeSimpleSchema( + MakeCachedSimpleSchema( + cache, "alice", + MakeStaticSimpleSchema({{"", {{"/", {{"Table", "alice"}}}}}})))); + + auto petyaService = MakeSchemaNameService( + MakeSimpleSchema( + MakeCachedSimpleSchema( + cache, "petya", + MakeStaticSimpleSchema({{"", {{"/", {{"Table", "petya"}}}}}})))); + + auto aliceEngine = MakeSqlCompletionEngine(lexer, std::move(aliceService)); + auto petyaEngine = MakeSqlCompletionEngine(lexer, std::move(petyaService)); + + TVector<TCandidate> empty; + TVector<TCandidate> aliceExpected = {{TableName, "`alice"}}; + TVector<TCandidate> petyaExpected = {{TableName, "`petya"}}; + + // Cache is empty + UNIT_ASSERT_VALUES_EQUAL(Complete(aliceEngine, "SELECT * FROM "), empty); + UNIT_ASSERT_VALUES_EQUAL(Complete(petyaEngine, "SELECT * FROM "), empty); + + // Updates in backround + UNIT_ASSERT_VALUES_EQUAL(Complete(aliceEngine, "SELECT * FROM "), aliceExpected); + UNIT_ASSERT_VALUES_EQUAL(Complete(petyaEngine, "SELECT * FROM "), petyaExpected); + } + } // Y_UNIT_TEST_SUITE(SqlCompleteTests) |