@@ -2700,8 +2700,6 @@ Expression PrimaryExpression() #PrimaryExpression:
27002700
27012701 | LOOKAHEAD(2) retval=NumericBind()
27022702
2703- | LOOKAHEAD(AnalyticExpression()) retval=AnalyticExpression()
2704-
27052703 | LOOKAHEAD(3) retval=ExtractExpression()
27062704
27072705 | retval=MySQLGroupConcat()
@@ -2710,7 +2708,7 @@ Expression PrimaryExpression() #PrimaryExpression:
27102708
27112709 | LOOKAHEAD(FunctionWithCondParams()) retval = FunctionWithCondParams()
27122710
2713- | LOOKAHEAD(Function()) retval=Function()
2711+ | LOOKAHEAD(Function()) retval=Function() [ LOOKAHEAD(2) retval = AnalyticExpression((Function)retval) ]
27142712
27152713 | LOOKAHEAD(2) retval = IntervalExpression() { dateExpressionAllowed = false; }
27162714
@@ -2893,29 +2891,29 @@ KeepExpression KeepExpression() : {
28932891 }
28942892}
28952893
2896- AnalyticExpression AnalyticExpression() :
2894+ AnalyticExpression AnalyticExpression(Function function ) :
28972895{
2898- AnalyticExpression retval = new AnalyticExpression();
2896+ AnalyticExpression retval = new AnalyticExpression(function );
28992897 ExpressionList expressionList = null;
29002898 List<OrderByElement> olist = null;
29012899 Token token = null;
29022900 Expression expr = null;
29032901 Expression offset = null;
29042902 Expression defaultValue = null;
29052903 WindowElement windowElement = null;
2906- KeepExpression keep = null;
2907- boolean distinct = false;
2908- boolean ignoreNulls = false;
2904+ // KeepExpression keep = null;
2905+ // boolean distinct = false;
2906+ // boolean ignoreNulls = false;
29092907}
29102908{
2911- token=<S_IDENTIFIER> { retval.setName(token.image); }
2909+ /* token=<S_IDENTIFIER> { retval.setName(token.image); }
29122910 "(" [
29132911 [ <K_DISTINCT> {distinct = true;} ]
29142912 (expr=SimpleExpression() ["," offset=SimpleExpression() ["," defaultValue=SimpleExpression() ]] | "*" { retval.setAllColumns(true); } )
29152913 [ <K_IGNORE> <K_NULLS> {ignoreNulls = true;}]
2916- ] ")"
2914+ ] ")" */
29172915
2918- [ keep=KeepExpression() ]
2916+ /* [ keep=KeepExpression() ] */
29192917
29202918 (<K_OVER> {retval.setType(AnalyticType.OVER);}
29212919 | <K_WITHIN> <K_GROUP> {retval.setType(AnalyticType.WITHIN_GROUP);} )
@@ -2925,12 +2923,12 @@ AnalyticExpression AnalyticExpression() :
29252923 [olist=OrderByElements() [windowElement = WindowElement() ] ]
29262924
29272925 {
2928- retval.setDistinct(distinct);
2929- retval.setIgnoreNulls(ignoreNulls);
2930- retval.setExpression(expr);
2931- retval.setOffset(offset);
2932- retval.setDefaultValue(defaultValue);
2933- retval.setKeep(keep);
2926+ // retval.setDistinct(distinct);
2927+ // retval.setIgnoreNulls(ignoreNulls);
2928+ // retval.setExpression(expr);
2929+ // retval.setOffset(offset);
2930+ // retval.setDefaultValue(defaultValue);
2931+ // retval.setKeep(keep);
29342932 retval.setPartitionExpressionList(expressionList);
29352933 retval.setOrderByElements(olist);
29362934 retval.setWindowElement(windowElement);
@@ -3189,6 +3187,7 @@ Function InternalFunction(Function retval) :
31893187 Token tk1 = null;
31903188 Token tk2 = null;
31913189 Expression expr1 = null;
3190+ boolean ignoreNulls = false;
31923191}
31933192{
31943193 funcName=RelObjectNameExt()
@@ -3203,11 +3202,10 @@ Function InternalFunction(Function retval) :
32033202 LOOKAHEAD(NamedExpressionListExprFirst()) namedExpressionList = NamedExpressionListExprFirst()
32043203 |
32053204 LOOKAHEAD(3) expressionList=SimpleExpressionList()
3206- //|
3207- //LOOKAHEAD(ConditionExpressionList()) expressionList=ConditionExpressionList()
32083205 |
32093206 expr = SubSelect() { expr.setUseBrackets(false); expressionList = new ExpressionList(expr); }
32103207 )]
3208+ [ <K_IGNORE> <K_NULLS> {retval.setIgnoreNulls(true); }]
32113209 ")"
32123210
32133211 [ "." (
0 commit comments