This is an automated email from the ASF dual-hosted git repository.
kangkaisen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
The following commit(s) were added to refs/heads/master by this push:
new 79b4f92 Rewrite GroupByClause.oriGroupingExprs (#4197)
79b4f92 is described below
commit 79b4f92cb717ce49d5dd29e96c38fd8811df1c66
Author: Lijia Liu <[email protected]>
AuthorDate: Wed Jul 29 12:27:15 2020 +0800
Rewrite GroupByClause.oriGroupingExprs (#4197)
---
.../src/main/java/org/apache/doris/analysis/GroupByClause.java | 4 ++++
.../src/main/java/org/apache/doris/analysis/SelectStmt.java | 4 ++++
.../src/test/java/org/apache/doris/analysis/SelectStmtTest.java | 6 ++++++
.../src/test/java/org/apache/doris/utframe/MockedBackend.java | 8 ++++++++
4 files changed, 22 insertions(+)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/GroupByClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/GroupByClause.java
index 005d882..70f6424 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/GroupByClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/GroupByClause.java
@@ -114,6 +114,10 @@ public class GroupByClause implements ParseNode {
}
}
+ public List<Expr> getOriGroupingExprs() {
+ return oriGroupingExprs;
+ }
+
public ArrayList<Expr> getGroupingExprs() {
if (!exprGenerated) {
try {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
index 1e3fef3..f2b057a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
@@ -1407,6 +1407,10 @@ public class SelectStmt extends QueryStmt {
if (groupingExprs != null) {
rewriter.rewriteList(groupingExprs, analyzer);
}
+ List<Expr> oriGroupingExprs = groupByClause.getOriGroupingExprs();
+ if (oriGroupingExprs != null) {
+ rewriter.rewriteList(oriGroupingExprs, analyzer);
+ }
}
if (orderByElements != null) {
for (OrderByElement orderByElem : orderByElements) {
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/analysis/SelectStmtTest.java
b/fe/fe-core/src/test/java/org/apache/doris/analysis/SelectStmtTest.java
index 3cb0f2f..86c6153 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/SelectStmtTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/SelectStmtTest.java
@@ -331,4 +331,10 @@ public class SelectStmtTest {
System.out.println(e.getMessage());
}
}
+
+ @Test
+ public void testGroupByConstantExpression() throws Exception {
+ String sql = "SELECT k1 - 4*60*60 FROM baseall GROUP BY k1 - 4*60*60";
+ dorisAssert.query(sql).explainQuery();
+ }
}
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/utframe/MockedBackend.java
b/fe/fe-core/src/test/java/org/apache/doris/utframe/MockedBackend.java
index bd65b6c..844828b 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/utframe/MockedBackend.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/utframe/MockedBackend.java
@@ -18,11 +18,14 @@
package org.apache.doris.utframe;
import org.apache.doris.common.ThriftServer;
+import org.apache.doris.common.util.JdkUtils;
import org.apache.doris.thrift.BackendService;
import org.apache.doris.thrift.HeartbeatService;
import org.apache.doris.thrift.TNetworkAddress;
import org.apache.doris.utframe.MockedBackendFactory.BeThriftService;
+import com.baidu.bjf.remoting.protobuf.utils.JDKCompilerHelper;
+import com.baidu.bjf.remoting.protobuf.utils.compiler.JdkCompiler;
import com.baidu.jprotobuf.pbrpc.transport.RpcServer;
import org.apache.thrift.TProcessor;
@@ -56,6 +59,11 @@ public class MockedBackend {
// This must be set explicitly after creating mocked Backend
private TNetworkAddress feAddress;
+ static {
+ int javaRuntimeVersion =
JdkUtils.getJavaVersionAsInteger(System.getProperty("java.version"));
+ JDKCompilerHelper.setCompiler(new
JdkCompiler(JdkCompiler.class.getClassLoader(),
String.valueOf(javaRuntimeVersion)));
+ }
+
public MockedBackend(String host, int heartbeatPort, int thriftPort, int
brpcPort, int httpPort,
HeartbeatService.Iface hbService,
BeThriftService backendService,
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]