summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/complete/sql_complete.cpp
diff options
context:
space:
mode:
authorvitya-smirnov <[email protected]>2025-06-17 12:45:20 +0300
committervitya-smirnov <[email protected]>2025-06-17 13:12:27 +0300
commit633ab50dd51d6f17810f71559ccf6e5bfebe2044 (patch)
treeebb85b4dff775656e3b5ee1937c1ced01db0f853 /yql/essentials/sql/v1/complete/sql_complete.cpp
parentbacec6cbd87d14bf55c256f17797537ae8c2bbed (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.cpp12
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;