summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/complete/analysis/local/parser_call_stack.cpp
diff options
context:
space:
mode:
authorvitya-smirnov <[email protected]>2025-07-10 16:18:41 +0300
committervitya-smirnov <[email protected]>2025-07-10 16:49:06 +0300
commitab4a6f4beadc1b478f8c208d07226687821b5fc2 (patch)
treee19e74f48361d1aa73d139c23ae514ea8ab4453f /yql/essentials/sql/v1/complete/analysis/local/parser_call_stack.cpp
parentea2073d5c0897338da46444473d7649ceac2289b (diff)
YQL-19747: Complete table functions
- Added table functions completion. - Also fixed a bug when USEd cluster was not added to table context at table function argument. - Complete folder names at `prefix` of `LIKE`, `RANGE`, etc. commit_hash:26be383be728796e8431f906e2815acd77645ad4
Diffstat (limited to 'yql/essentials/sql/v1/complete/analysis/local/parser_call_stack.cpp')
-rw-r--r--yql/essentials/sql/v1/complete/analysis/local/parser_call_stack.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/yql/essentials/sql/v1/complete/analysis/local/parser_call_stack.cpp b/yql/essentials/sql/v1/complete/analysis/local/parser_call_stack.cpp
index 7b30d2a20d7..9f0501f1968 100644
--- a/yql/essentials/sql/v1/complete/analysis/local/parser_call_stack.cpp
+++ b/yql/essentials/sql/v1/complete/analysis/local/parser_call_stack.cpp
@@ -98,6 +98,10 @@ namespace NSQLComplete {
EndsWith({RULE(Value_constructor)}, stack);
}
+ bool IsLikelyTableFunctionStack(const TParserCallStack& stack) {
+ return EndsWith({RULE(Table_ref), RULE(An_id_expr), RULE(Id_expr)}, stack);
+ }
+
bool IsLikelyHintStack(const TParserCallStack& stack) {
return ContainsRule(RULE(Id_hint), stack) ||
Contains({RULE(External_call_param), RULE(An_id)}, stack);
@@ -119,6 +123,10 @@ namespace NSQLComplete {
RULE(Id_table_or_type)}, stack));
}
+ bool IsLikelyTableArgStack(const TParserCallStack& stack) {
+ return Contains({RULE(Table_arg)}, stack);
+ }
+
bool IsLikelyClusterStack(const TParserCallStack& stack) {
return Contains({RULE(Cluster_expr)}, stack);
}