summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/sql_expression.cpp
diff options
context:
space:
mode:
authorAlexander Smirnov <[email protected]>2025-01-22 00:22:18 +0000
committerAlexander Smirnov <[email protected]>2025-01-22 00:22:18 +0000
commit47763d31b221c4f827cfb2d3dec8c0a23489fccc (patch)
treeead46596168eae5e9d38b6e8b770456acaf69ec9 /yql/essentials/sql/v1/sql_expression.cpp
parentf64d8ea3633ca6e8062dd5cd795e72f107353854 (diff)
parentfbaf25eeb4ece3eafbc5f111ff230d1124b86cab (diff)
Merge branch 'rightlib' into merge-libs-250122-0020
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(); };