You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by za...@apache.org on 2021/04/20 09:08:10 UTC

[calcite] 02/02: [CALCITE-4586] In piglet, allow creating a PigRelBuilder with custom `config.simplify()` (Jiatao Tao)

This is an automated email from the ASF dual-hosted git repository.

zabetak pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/calcite.git

commit df95257f357e67eac330ba4c6d6bc749851e99fb
Author: Jiatao Tao <24...@qq.com>
AuthorDate: Fri Apr 16 14:49:52 2021 +0800

    [CALCITE-4586] In piglet, allow creating a PigRelBuilder with custom `config.simplify()` (Jiatao Tao)
    
    Close apache/calcite#2398
---
 .../org/apache/calcite/piglet/PigRelBuilder.java    |  2 --
 .../java/org/apache/calcite/test/PigRelOpTest.java  | 21 +++++++++------------
 2 files changed, 9 insertions(+), 14 deletions(-)

diff --git a/piglet/src/main/java/org/apache/calcite/piglet/PigRelBuilder.java b/piglet/src/main/java/org/apache/calcite/piglet/PigRelBuilder.java
index 699bda0..6b60bee 100644
--- a/piglet/src/main/java/org/apache/calcite/piglet/PigRelBuilder.java
+++ b/piglet/src/main/java/org/apache/calcite/piglet/PigRelBuilder.java
@@ -35,7 +35,6 @@ import org.apache.calcite.rel.type.RelDataTypeFactory;
 import org.apache.calcite.rel.type.RelDataTypeField;
 import org.apache.calcite.rex.RexLiteral;
 import org.apache.calcite.rex.RexNode;
-import org.apache.calcite.runtime.Hook;
 import org.apache.calcite.sql.fun.SqlStdOperatorTable;
 import org.apache.calcite.sql.type.MultisetSqlType;
 import org.apache.calcite.tools.FrameworkConfig;
@@ -83,7 +82,6 @@ public class PigRelBuilder extends RelBuilder {
   /** Creates a PigRelBuilder. */
   public static PigRelBuilder create(FrameworkConfig config) {
     final RelBuilder relBuilder = RelBuilder.create(config);
-    Hook.REL_BUILDER_SIMPLIFY.addThread(Hook.propertyJ(false));
     return new PigRelBuilder(
         transform(config.getContext(), c -> c.withBloat(-1)),
         relBuilder.getCluster(),
diff --git a/piglet/src/test/java/org/apache/calcite/test/PigRelOpTest.java b/piglet/src/test/java/org/apache/calcite/test/PigRelOpTest.java
index a2bdbfe..a457214 100644
--- a/piglet/src/test/java/org/apache/calcite/test/PigRelOpTest.java
+++ b/piglet/src/test/java/org/apache/calcite/test/PigRelOpTest.java
@@ -1454,9 +1454,8 @@ class PigRelOpTest extends PigRelTestBase {
         + "          LogicalTableScan(table=[[scott, EMP]])\n";
     final String optimizedPlan = ""
         + "LogicalSort(sort0=[$2], dir0=[ASC])\n"
-        + "  LogicalProject(group=[ROW($0, $1, $2)], $f1=[+(CAST($3):BIGINT, 1)], "
-        + "salSum=[CAST($4):DECIMAL(19, 0)], salAvg=[/(CAST($4):DECIMAL(19, 0), CAST(CAST($3)"
-        + ":BIGINT):DECIMAL(19, 0))])\n"
+        + "  LogicalProject(group=[ROW($0, $1, $2)], $f1=[+($3, 1)], salSum=[CAST($4):DECIMAL(19,"
+        + " 0)], salAvg=[/(CAST($4):DECIMAL(19, 0), CAST($3):DECIMAL(19, 0))])\n"
         + "    LogicalAggregate(group=[{0, 1, 2}], agg#0=[COUNT()], agg#1=[SUM($3)])\n"
         + "      LogicalProject(DEPTNO=[$7], MGR=[$3], HIREDATE=[$4], SAL=[$5])\n"
         + "        LogicalTableScan(table=[[scott, EMP]])\n";
@@ -1476,10 +1475,9 @@ class PigRelOpTest extends PigRelTestBase {
         + "({20, 7566, 1987-04-19},2,3000.00,3000.00)\n"
         + "({10, null, 1981-11-17},2,5000.00,5000.00)\n";
     final String sql = ""
-        + "SELECT ROW(DEPTNO, MGR, HIREDATE) AS group, CAST(COUNT(*) AS "
-        + "BIGINT) + 1 AS $f1, CAST(SUM(SAL) AS DECIMAL(19, 0)) AS salSum, "
-        + "CAST(SUM(SAL) AS DECIMAL(19, 0)) / CAST(CAST(COUNT(*) AS BIGINT) "
-        + "AS DECIMAL(19, 0)) AS salAvg\n"
+        + "SELECT ROW(DEPTNO, MGR, HIREDATE) AS group, COUNT(*) + 1 AS $f1, CAST(SUM(SAL) AS "
+        + "DECIMAL(19, 0)) AS salSum, CAST(SUM(SAL) AS DECIMAL(19, 0)) / CAST(COUNT(*) AS DECIMAL"
+        + "(19, 0)) AS salAvg\n"
         + "FROM scott.EMP\n"
         + "GROUP BY DEPTNO, MGR, HIREDATE\n"
         + "ORDER BY CAST(SUM(SAL) AS DECIMAL(19, 0))";
@@ -1497,11 +1495,10 @@ class PigRelOpTest extends PigRelTestBase {
         + "BigDecimalSum(A.SAL) / COUNT(A) as salAvg, A;\n"
         + "D = ORDER C BY salSum;\n";
     final String sql2 = ""
-        + "SELECT ROW(DEPTNO, MGR, HIREDATE) AS group, CAST(COUNT(*) AS BIGINT) + 1"
-        + " AS $f1, CAST(SUM(SAL) AS DECIMAL(19, 0)) AS salSum, CAST(SUM(SAL) AS "
-        + "DECIMAL(19, 0)) / CAST(CAST(COUNT(*) AS BIGINT) AS DECIMAL(19, 0)) AS "
-        + "salAvg, COLLECT(ROW(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)"
-        + ") AS A\n"
+        + "SELECT ROW(DEPTNO, MGR, HIREDATE) AS group, COUNT(*) + 1 AS $f1, CAST(SUM(SAL) AS "
+        + "DECIMAL(19, 0)) AS salSum, CAST(SUM(SAL) AS DECIMAL(19, 0)) / CAST(COUNT(*) AS DECIMAL"
+        + "(19, 0)) AS salAvg, COLLECT(ROW(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)) "
+        + "AS A\n"
         + "FROM scott.EMP\n"
         + "GROUP BY DEPTNO, MGR, HIREDATE\n"
         + "ORDER BY CAST(SUM(SAL) AS DECIMAL(19, 0))";