diff options
author | vitya-smirnov <[email protected]> | 2025-06-17 12:45:20 +0300 |
---|---|---|
committer | vitya-smirnov <[email protected]> | 2025-06-17 13:12:27 +0300 |
commit | 633ab50dd51d6f17810f71559ccf6e5bfebe2044 (patch) | |
tree | ebb85b4dff775656e3b5ee1937c1ced01db0f853 /yql/essentials/sql/v1/complete/sql_complete.cpp | |
parent | bacec6cbd87d14bf55c256f17797537ae8c2bbed (diff) |
YQL-19747: Complete columns at simple select
Added support for a columns completion at a simple select. For example, `` SELECT # FROM hahn.`home/yql/tutorial/users` `` и `` USE hahn; SELECT $ FROM `home/yql/tutorial/users` ``.
commit_hash:2254449e91255c19792a1dc521825e44dda7d63b
Diffstat (limited to 'yql/essentials/sql/v1/complete/sql_complete.cpp')
-rw-r--r-- | yql/essentials/sql/v1/complete/sql_complete.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/yql/essentials/sql/v1/complete/sql_complete.cpp b/yql/essentials/sql/v1/complete/sql_complete.cpp index eea7571e8f1..2f61b1fe4df 100644 --- a/yql/essentials/sql/v1/complete/sql_complete.cpp +++ b/yql/essentials/sql/v1/complete/sql_complete.cpp @@ -142,6 +142,11 @@ namespace NSQLComplete { object->Kinds.emplace(EObjectKind::Table); } + if (context.Column && global.Column) { + request.Constraints.Column = TColumnName::TConstraints(); + request.Constraints.Column->Tables = std::move(global.Column->Tables); + } + return request; } @@ -231,6 +236,10 @@ namespace NSQLComplete { return {ECandidateKind::ClusterName, std::move(name.Indentifier)}; } + if constexpr (std::is_base_of_v<TColumnName, T>) { + return {ECandidateKind::ColumnName, std::move(name.Indentifier)}; + } + if constexpr (std::is_base_of_v<TBindingName, T>) { if (!context.Binding) { name.Indentifier.prepend('$'); @@ -333,6 +342,9 @@ void Out<NSQLComplete::ECandidateKind>(IOutputStream& out, NSQLComplete::ECandid case NSQLComplete::ECandidateKind::BindingName: out << "BindingName"; break; + case NSQLComplete::ECandidateKind::ColumnName: + out << "ColumnName"; + break; case NSQLComplete::ECandidateKind::UnknownName: out << "UnknownName"; break; |