morrySnow commented on code in PR #14662:
URL: https://github.com/apache/doris/pull/14662#discussion_r1036246536
##########
fe/fe-core/src/main/java/org/apache/doris/analysis/ArithmeticExpr.java:
##########
@@ -62,7 +62,6 @@ public enum Operator {
BITXOR("^", "bitxor", OperatorPosition.BINARY_INFIX,
TExprOpcode.BITXOR),
BITNOT("~", "bitnot", OperatorPosition.UNARY_PREFIX,
TExprOpcode.BITNOT),
FACTORIAL("!", "factorial", OperatorPosition.UNARY_POSTFIX,
TExprOpcode.FACTORIAL);
-
Review Comment:
add this line back
##########
fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java:
##########
@@ -363,6 +363,16 @@ private String paramsToSql() {
}
int len = children.size();
List<String> result = Lists.newArrayList();
+ if (fnName.getFunction().equalsIgnoreCase("years_diff")
+ || fnName.getFunction().equalsIgnoreCase("months_diff")
+ || fnName.getFunction().equalsIgnoreCase("days_diff")
+ || fnName.getFunction().equalsIgnoreCase("hours_diff")
+ || fnName.getFunction().equalsIgnoreCase("minutes_diff")
+ || fnName.getFunction().equalsIgnoreCase("seconds_diff")) {
+ sb.append(children.get(1).toSql()).append(", ");
+ sb.append(children.get(0).toSql()).append(")");
+ return sb.toString();
+ }
Review Comment:
add comment to explain this is use for nereids and should not be removed
##########
fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4:
##########
@@ -257,8 +257,15 @@ valueExpression
| left=valueExpression comparisonOperator right=valueExpression
#comparison
;
+datetimeUnit
+ : YEAR | MONTH
+ | WEEK | DAY
+ | HOUR | MINUTE | SECOND
+ ;
+
primaryExpression
- : CASE whenClause+ (ELSE elseExpression=expression)? END
#searchedCase
+ : name=(TIMESTAMPDIFF | DATEDIFF) LEFT_PAREN unit=datetimeUnit COMMA
startTimestamp=valueExpression COMMA endTimestamp=valueExpression RIGHT_PAREN
#timestampdiff
Review Comment:
wrap this line, such as:
```suggestion
: name=(TIMESTAMPDIFF | DATEDIFF) LEFT_PAREN unit=datetimeUnit COMMA
startTimestamp=valueExpression COMMA endTimestamp=valueExpression
RIGHT_PAREN #timestampdiff
```
##########
fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java:
##########
@@ -613,7 +643,8 @@ public UnboundFunction
visitFunctionCall(DorisParser.FunctionCallContext ctx) {
// the function information is obtained by parsing the
catalog. This method is more scalable.
String functionName = ctx.identifier().getText();
boolean isDistinct = ctx.DISTINCT() != null;
- List<Expression> params = visit(ctx.expression(),
Expression.class);
+ List<ExpressionContext> expressionContexts = ctx.expression();
+ List<Expression> params = visit(expressionContexts,
Expression.class);
Review Comment:
why add a local var?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]