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))";