summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/complete/check/check_complete.cpp
diff options
context:
space:
mode:
authorvitya-smirnov <[email protected]>2025-10-07 09:34:39 +0300
committervitya-smirnov <[email protected]>2025-10-07 09:52:14 +0300
commitbabe7533f18c11be1f8a195ed2324d2d9a89436a (patch)
tree45b7627141bf5a52b45a3d61fd1fbdd564bb8dd9 /yql/essentials/sql/v1/complete/check/check_complete.cpp
parent8fe7cfe254fde2772477a8933a163b5f303716b4 (diff)
YQL-20086 sql/v1
commit_hash:55bc611cdaa0d8a0fc3c4c7708ed9f17cc4976cf
Diffstat (limited to 'yql/essentials/sql/v1/complete/check/check_complete.cpp')
-rw-r--r--yql/essentials/sql/v1/complete/check/check_complete.cpp160
1 files changed, 80 insertions, 80 deletions
diff --git a/yql/essentials/sql/v1/complete/check/check_complete.cpp b/yql/essentials/sql/v1/complete/check/check_complete.cpp
index dbbc4b1e6c4..2ed7ccd835e 100644
--- a/yql/essentials/sql/v1/complete/check/check_complete.cpp
+++ b/yql/essentials/sql/v1/complete/check/check_complete.cpp
@@ -17,93 +17,93 @@
namespace NSQLComplete {
- namespace {
-
- TLexerSupplier MakePureLexerSupplier() {
- NSQLTranslationV1::TLexers lexers;
- lexers.Antlr4Pure = NSQLTranslationV1::MakeAntlr4PureLexerFactory();
- lexers.Antlr4PureAnsi = NSQLTranslationV1::MakeAntlr4PureAnsiLexerFactory();
- return [lexers = std::move(lexers)](bool ansi) {
- return NSQLTranslationV1::MakeLexer(
- lexers, ansi, /* antlr4 = */ true,
- NSQLTranslationV1::ELexerFlavor::Pure);
- };
+namespace {
+
+TLexerSupplier MakePureLexerSupplier() {
+ NSQLTranslationV1::TLexers lexers;
+ lexers.Antlr4Pure = NSQLTranslationV1::MakeAntlr4PureLexerFactory();
+ lexers.Antlr4PureAnsi = NSQLTranslationV1::MakeAntlr4PureAnsiLexerFactory();
+ return [lexers = std::move(lexers)](bool ansi) {
+ return NSQLTranslationV1::MakeLexer(
+ lexers, ansi, /* antlr4 = */ true,
+ NSQLTranslationV1::ELexerFlavor::Pure);
+ };
+}
+
+INameService::TPtr MakeClusterNameService(const TYqlContext& ctx) {
+ THashSet<TString> clusterSet = ctx.Clusters();
+ TVector<TString> clusterVec(begin(clusterSet), end(clusterSet));
+ Sort(clusterVec);
+
+ return MakeClusterNameService(MakeStaticClusterDiscovery(std::move(clusterVec)));
+}
+
+INameService::TPtr MakeSchemaNameService(const TYqlContext& ctx) {
+ THashMap<TString, THashMap<TString, TVector<TFolderEntry>>> fs;
+ for (const auto& [cluster, tables] : ctx.TablesByCluster) {
+ for (TString table : tables) {
+ fs[cluster]["/"].push_back(TFolderEntry{
+ .Type = TFolderEntry::Table,
+ .Name = std::move(table),
+ });
}
+ }
- INameService::TPtr MakeClusterNameService(const TYqlContext& ctx) {
- THashSet<TString> clusterSet = ctx.Clusters();
- TVector<TString> clusterVec(begin(clusterSet), end(clusterSet));
- Sort(clusterVec);
-
- return MakeClusterNameService(MakeStaticClusterDiscovery(std::move(clusterVec)));
+ return MakeSchemaNameService(MakeSimpleSchema(MakeStaticSimpleSchema({.Folders = std::move(fs)})));
+}
+
+} // namespace
+
+bool CheckComplete(TStringBuf query, TYqlContext ctx) {
+ constexpr size_t Seed = 97651231;
+ constexpr size_t Attempts = 64;
+ constexpr size_t MaxAttempts = 256;
+ SetRandomSeed(Seed);
+
+ auto service = MakeUnionNameService(
+ {
+ MakeClusterNameService(ctx),
+ MakeSchemaNameService(ctx),
+ },
+ MakeDefaultRanking());
+
+ auto engine = MakeSqlCompletionEngine(
+ MakePureLexerSupplier(),
+ std::move(service),
+ MakeYQLConfiguration());
+
+ for (size_t i = 0, j = 0; i < Attempts && j < MaxAttempts; ++j) {
+ size_t pos = RandomNumber<size_t>(query.size() + 1);
+ if (pos < query.size() && IsUTF8ContinuationByte(query.at(pos))) {
+ continue;
}
- INameService::TPtr MakeSchemaNameService(const TYqlContext& ctx) {
- THashMap<TString, THashMap<TString, TVector<TFolderEntry>>> fs;
- for (const auto& [cluster, tables] : ctx.TablesByCluster) {
- for (TString table : tables) {
- fs[cluster]["/"].push_back(TFolderEntry{
- .Type = TFolderEntry::Table,
- .Name = std::move(table),
- });
- }
- }
-
- return MakeSchemaNameService(MakeSimpleSchema(MakeStaticSimpleSchema({.Folders = std::move(fs)})));
- }
+ TCompletionInput input = {
+ .Text = query,
+ .CursorPosition = pos,
+ };
- } // namespace
-
- bool CheckComplete(TStringBuf query, TYqlContext ctx) {
- constexpr size_t Seed = 97651231;
- constexpr size_t Attempts = 64;
- constexpr size_t MaxAttempts = 256;
- SetRandomSeed(Seed);
-
- auto service = MakeUnionNameService(
- {
- MakeClusterNameService(ctx),
- MakeSchemaNameService(ctx),
- },
- MakeDefaultRanking());
-
- auto engine = MakeSqlCompletionEngine(
- MakePureLexerSupplier(),
- std::move(service),
- MakeYQLConfiguration());
-
- for (size_t i = 0, j = 0; i < Attempts && j < MaxAttempts; ++j) {
- size_t pos = RandomNumber<size_t>(query.size() + 1);
- if (pos < query.size() && IsUTF8ContinuationByte(query.at(pos))) {
- continue;
- }
-
- TCompletionInput input = {
- .Text = query,
- .CursorPosition = pos,
- };
-
- auto output = engine->Complete(input).ExtractValueSync();
- Y_DO_NOT_OPTIMIZE_AWAY(output);
-
- i += 1;
- }
+ auto output = engine->Complete(input).ExtractValueSync();
+ Y_DO_NOT_OPTIMIZE_AWAY(output);
- return true;
+ i += 1;
}
- bool CheckComplete(TStringBuf query, NYql::TExprNode::TPtr root, NYql::TExprContext& ctx, NYql::TIssues& issues) try {
- return CheckComplete(query, MakeYqlAnalysis()->Analyze(root, ctx));
- } catch (...) {
- issues.AddIssue(FormatCurrentException());
- return false;
- }
-
- bool CheckComplete(TStringBuf query, NYql::TAstNode& root, NYql::TIssues& issues) try {
- return CheckComplete(query, MakeYqlAnalysis()->Analyze(root, issues).GetOrElse({}));
- } catch (...) {
- issues.AddIssue(FormatCurrentException());
- return false;
- }
+ return true;
+}
+
+bool CheckComplete(TStringBuf query, NYql::TExprNode::TPtr root, NYql::TExprContext& ctx, NYql::TIssues& issues) try {
+ return CheckComplete(query, MakeYqlAnalysis()->Analyze(root, ctx));
+} catch (...) {
+ issues.AddIssue(FormatCurrentException());
+ return false;
+}
+
+bool CheckComplete(TStringBuf query, NYql::TAstNode& root, NYql::TIssues& issues) try {
+ return CheckComplete(query, MakeYqlAnalysis()->Analyze(root, issues).GetOrElse({}));
+} catch (...) {
+ issues.AddIssue(FormatCurrentException());
+ return false;
+}
} // namespace NSQLComplete