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 <liutang...@yeah.net>
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: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to