diff options
author | Alexander Smirnov <[email protected]> | 2025-01-22 00:22:18 +0000 |
---|---|---|
committer | Alexander Smirnov <[email protected]> | 2025-01-22 00:22:18 +0000 |
commit | 47763d31b221c4f827cfb2d3dec8c0a23489fccc (patch) | |
tree | ead46596168eae5e9d38b6e8b770456acaf69ec9 /yql/essentials/sql/v1/sql_expression.cpp | |
parent | f64d8ea3633ca6e8062dd5cd795e72f107353854 (diff) | |
parent | fbaf25eeb4ece3eafbc5f111ff230d1124b86cab (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.cpp | 25 |
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(); }; |