[fix](Nereids) can not parse left and right function (#15655)
This commit is contained in:
@ -304,7 +304,7 @@ primaryExpression
|
||||
| constant #constantDefault
|
||||
| ASTERISK #star
|
||||
| qualifiedName DOT ASTERISK #star
|
||||
| identifier LEFT_PAREN ((DISTINCT|ALL)? arguments+=expression
|
||||
| functionIdentifier LEFT_PAREN ((DISTINCT|ALL)? arguments+=expression
|
||||
(COMMA arguments+=expression)* (ORDER BY sortItem (COMMA sortItem)*)?)? RIGHT_PAREN #functionCall
|
||||
| LEFT_PAREN query RIGHT_PAREN #subqueryExpression
|
||||
| ATSIGN identifier #userVariable
|
||||
@ -316,6 +316,11 @@ primaryExpression
|
||||
source=valueExpression RIGHT_PAREN #extract
|
||||
;
|
||||
|
||||
functionIdentifier
|
||||
: identifier
|
||||
| LEFT | RIGHT
|
||||
;
|
||||
|
||||
qualifiedName
|
||||
: identifier (DOT identifier)*
|
||||
;
|
||||
|
||||
@ -871,7 +871,7 @@ public class LogicalPlanBuilder extends DorisParserBaseVisitor<Object> {
|
||||
@Override
|
||||
public Expression visitFunctionCall(DorisParser.FunctionCallContext ctx) {
|
||||
return ParserUtils.withOrigin(ctx, () -> {
|
||||
String functionName = ctx.identifier().getText();
|
||||
String functionName = ctx.functionIdentifier().getText();
|
||||
boolean isDistinct = ctx.DISTINCT() != null;
|
||||
List<Expression> params = visit(ctx.expression(), Expression.class);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user