Skip to content

Commit 7108b35

Browse files
author
lisbon-craigb-13142
committed
fix(parser): keep parenthesized multi-param lambda as first function arg
Signed-off-by: lisbon-craigb-13142 <lisbon-craigb-13142@users.noreply.github.com>
1 parent 5bec712 commit 7108b35

1 file changed

Lines changed: 15 additions & 15 deletions

File tree

‎src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt‎

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7885,22 +7885,22 @@ Expression PrimaryExpression() #PrimaryExpression:
78857885
list=ParenthesedExpressionList()
78867886
// Mutli-Variable Lambda Expression, e. g.
78877887
// SELECT map_filter(my_column, (k,v) -> v.my_inner_column = 'some_value')
7888-
[ LOOKAHEAD(2) "->"
7889-
retval = Expression()
7890-
{
7891-
retval = LambdaExpression.from(list, retval);
7892-
}
7893-
]
7894-
7895-
7896-
{
7897-
if (list.size() == 1) {
7898-
retval = new ParenthesedExpressionList( (Expression) list.getExpressions().get(0));
7899-
} else {
7900-
retval = list;
7888+
// First-arg form (issue #2195): array_map((x,y,z) -> x + y, ...)
7889+
(
7890+
LOOKAHEAD(2) "->"
7891+
retval = Expression()
7892+
{
7893+
retval = LambdaExpression.from(list, retval);
7894+
}
7895+
|
7896+
{
7897+
if (list.size() == 1) {
7898+
retval = new ParenthesedExpressionList( (Expression) list.getExpressions().get(0));
7899+
} else {
7900+
retval = list;
7901+
}
79017902
}
7902-
}
7903-
7903+
)
79047904

79057905
// RowGet Expressions
79067906
( LOOKAHEAD(2) "." tmp=RelObjectName() { retval = new RowGetExpression(retval, tmp); } )*

0 commit comments

Comments
 (0)