This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch branch-1.2-lts
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-1.2-lts by this push:
new ea0afb2a78 [branch-1.2] fix some function call expr toSql issue
ea0afb2a78 is described below
commit ea0afb2a788edf55e6cdf3ffcd569d57db6243d1
Author: morningman <[email protected]>
AuthorDate: Tue Aug 29 16:02:18 2023 +0800
[branch-1.2] fix some function call expr toSql issue
---
.../apache/doris/analysis/FunctionCallExpr.java | 26 +++++++++++++++++-----
1 file changed, 20 insertions(+), 6 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java
index 10b1f9e46d..09dc26a67f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java
@@ -516,6 +516,14 @@ public class FunctionCallExpr extends Expr {
return false;
}
}
+ if (orderByElements.size() != o.orderByElements.size()) {
+ return false;
+ }
+ for (int i = 0; i < orderByElements.size(); i++) {
+ if (!orderByElements.get(i).equals(o.orderByElements.get(i))) {
+ return false;
+ }
+ }
return /*opcode == o.opcode && aggOp == o.aggOp &&*/
fnName.equals(o.fnName)
&& fnParams.isDistinct() == o.fnParams.isDistinct()
&& fnParams.isStar() == o.fnParams.isStar();
@@ -532,7 +540,6 @@ public class FunctionCallExpr extends Expr {
sb.append("DISTINCT ");
}
int len = children.size();
- List<String> result = Lists.newArrayList();
if (fnName.getFunction().equalsIgnoreCase("json_array")
|| fnName.getFunction().equalsIgnoreCase("json_object")) {
len = len - 1;
@@ -556,14 +563,20 @@ public class FunctionCallExpr extends Expr {
|| fnName.getFunction().equalsIgnoreCase("aes_encrypt")
|| fnName.getFunction().equalsIgnoreCase("sm4_decrypt")
|| fnName.getFunction().equalsIgnoreCase("sm4_encrypt"))) {
- result.add("\'***\'");
+ sb.append("\'***\'");
} else if (orderByElements.size() > 0 && i == len -
orderByElements.size()) {
- result.add("ORDER BY " + children.get(i).toSql());
- } else {
- result.add(children.get(i).toSql());
+ sb.append("ORDER BY");
+ }
+ sb.append(children.get(i).toSql());
+ if (orderByElements.size() > 0 && i >= len -
orderByElements.size()) {
+ if (orderByElements.get(i - len +
orderByElements.size()).getIsAsc()) {
+ sb.append(" ASC");
+ } else {
+ sb.append(" DESC");
+ }
}
}
- sb.append(Joiner.on(", ").join(result)).append(")");
+ sb.append(")");
return sb.toString();
}
@@ -1964,3 +1977,4 @@ public class FunctionCallExpr extends Expr {
orderByElements.forEach(o -> addChild(o.getExpr()));
}
}
+
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]