summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/sql_expression.cpp
diff options
context:
space:
mode:
authortesseract <[email protected]>2025-01-21 12:50:29 +0300
committertesseract <[email protected]>2025-01-21 14:32:19 +0300
commite677409ecb6106695a976307290b2f6bad3d72c0 (patch)
tree7c4fe8c7334a8f814506c857a08322ea800a8b79 /yql/essentials/sql/v1/sql_expression.cpp
parente2324a4c7934ecbc80eb47f70d2586c4995499b5 (diff)
YQL for create, alter and drop transfer from topic to table
commit_hash:09502f46a7ee665609d2c4ba8d9e0aa421720cdb
Diffstat (limited to 'yql/essentials/sql/v1/sql_expression.cpp')
-rw-r--r--yql/essentials/sql/v1/sql_expression.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/yql/essentials/sql/v1/sql_expression.cpp b/yql/essentials/sql/v1/sql_expression.cpp
index a7a9877ccbd..199f15f2939 100644
--- a/yql/essentials/sql/v1/sql_expression.cpp
+++ b/yql/essentials/sql/v1/sql_expression.cpp
@@ -34,6 +34,31 @@ TNodePtr TSqlExpression::Build(const TRule_expr& node) {
}
}
+TNodePtr TSqlExpression::Build(const TRule_lambda_or_parameter& node) {
+ // lambda_or_parameter:
+ // lambda
+ // | bind_parameter
+ switch (node.Alt_case()) {
+ case TRule_lambda_or_parameter::kAltLambdaOrParameter1: {
+ return LambdaRule(node.alt_lambda_or_parameter1().GetRule_lambda1());
+ }
+ case TRule_lambda_or_parameter::kAltLambdaOrParameter2: {
+ TString named;
+ if (!NamedNodeImpl(node.GetAlt_lambda_or_parameter2().GetRule_bind_parameter1(), named, *this)) {
+ return nullptr;
+ }
+ auto namedNode = GetNamedNode(named);
+ if (!namedNode) {
+ return nullptr;
+ }
+
+ return namedNode;
+ }
+ case TRule_lambda_or_parameter::ALT_NOT_SET:
+ Y_ABORT("You should change implementation according to grammar changes");
+ }
+ }
+
TNodePtr TSqlExpression::SubExpr(const TRule_mul_subexpr& node, const TTrailingQuestions& tail) {
// mul_subexpr: con_subexpr (DOUBLE_PIPE con_subexpr)*;
auto getNode = [](const TRule_mul_subexpr::TBlock2& b) -> const TRule_con_subexpr& { return b.GetRule_con_subexpr2(); };