summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/complete/sql_complete_ut.cpp
diff options
context:
space:
mode:
authorrobot-piglet <[email protected]>2025-06-02 16:34:29 +0300
committerrobot-piglet <[email protected]>2025-06-02 16:48:28 +0300
commita94f4f389851dfc9ac0a7f8e7bb7a0d12ffadf82 (patch)
treea4041ded4fdc5746f5c1002ede7f3fe583131fa0 /yql/essentials/sql/v1/complete/sql_complete_ut.cpp
parent23b5653e9af4ef22f764a842524a69815ec0459c (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.cpp37
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)