Repository: phoenix Updated Branches: refs/heads/calcite 74409be82 -> 751d134be
Update calcite dependence to 1.7.0-SNAPSHOT; Update test cases now that CALCITE-864 is in; Change calcite log level Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/751d134b Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/751d134b Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/751d134b Branch: refs/heads/calcite Commit: 751d134be13b7a2e40a9ed162bb2f80a05aef819 Parents: 74409be Author: maryannxue <maryann....@gmail.com> Authored: Wed Feb 3 22:16:39 2016 -0500 Committer: maryannxue <maryann....@gmail.com> Committed: Wed Feb 3 22:16:39 2016 -0500 ---------------------------------------------------------------------- .../org/apache/phoenix/calcite/CalciteIT.java | 79 +++++++++++--------- .../calcite/rules/PhoenixConverterRules.java | 4 - .../src/test/resources/log4j.properties | 1 + pom.xml | 2 +- 4 files changed, 46 insertions(+), 40 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/751d134b/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteIT.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteIT.java b/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteIT.java index 41d0542..0d9e789 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteIT.java @@ -1014,41 +1014,50 @@ public class CalciteIT extends BaseCalciteIT { " PhoenixTableScan(table=[[phoenix, Join, OrderTable]])\n"; start(decorrelProps).sql(q4).explainIs(p4Decorrelated).resultIs(false, r4).close(); - // CALCITE-864 - //String q5 = "select \"order_id\" from " + JOIN_ITEM_TABLE_FULL_NAME + " i JOIN " + JOIN_ORDER_TABLE_FULL_NAME + " o on o.\"item_id\" = i.\"item_id\" where quantity = (select max(quantity) from " + JOIN_ORDER_TABLE_FULL_NAME + " o2 JOIN " + JOIN_ITEM_TABLE_FULL_NAME + " i2 on o2.\"item_id\" = i2.\"item_id\" where i.\"supplier_id\" = i2.\"supplier_id\")"; - //Object [][] r5 = new Object[][] { - // {"000000000000003"}, - // {"000000000000005"}, - // {"000000000000004"}}; - //String p5Correlate = - // "PhoenixToEnumerableConverter\n" + - // " PhoenixClientProject(order_id=[$7])\n" + - // " PhoenixFilter(condition=[=($11, $14)])\n" + - // " PhoenixCorrelate(correlation=[$cor0], joinType=[LEFT], requiredColumns=[{5}])\n" + - // " PhoenixServerJoin(condition=[=($9, $0)], joinType=[inner])\n" + - // " PhoenixTableScan(table=[[phoenix, Join, ItemTable]])\n" + - // " PhoenixTableScan(table=[[phoenix, Join, OrderTable]])\n" + - // " PhoenixServerAggregate(group=[{}], EXPR$0=[MAX($4)])\n" + - // " PhoenixServerJoin(condition=[=($2, $7)], joinType=[inner])\n" + - // " PhoenixTableScan(table=[[phoenix, Join, OrderTable]])\n" + - // " PhoenixTableScan(table=[[phoenix, Join, ItemTable]], filter=[=($cor0.supplier_id, $5)])\n"; - //String p5Decorrelated = - // "PhoenixToEnumerableConverter\n" + - // " PhoenixClientProject(order_id=[$7])\n" + - // " PhoenixServerJoin(condition=[AND(=($9, $0), =($5, $14))], joinType=[inner])\n" + - // " PhoenixTableScan(table=[[phoenix, Join, ItemTable]])\n" + - // " PhoenixServerJoin(condition=[=($4, $8)], joinType=[inner])\n" + - // " PhoenixTableScan(table=[[phoenix, Join, OrderTable]])\n" + - // " PhoenixServerAggregate(group=[{14}], EXPR$0=[MAX($4)], isOrdered=[false])\n" + - // " PhoenixServerJoin(condition=[=($2, $7)], joinType=[inner])\n" + - // " PhoenixTableScan(table=[[phoenix, Join, OrderTable]])\n" + - // " PhoenixServerJoin(condition=[=($7, $5)], joinType=[inner])\n" + - // " PhoenixTableScan(table=[[phoenix, Join, ItemTable]])\n" + - // " PhoenixServerAggregate(group=[{5}], isOrdered=[false])\n" + - // " PhoenixServerJoin(condition=[=($9, $0)], joinType=[inner])\n" + - // " PhoenixTableScan(table=[[phoenix, Join, ItemTable]])\n" + - // " PhoenixTableScan(table=[[phoenix, Join, OrderTable]])\n"; - //start(correlProps).sql(q5).explainIs(p5Correlate).resultIs(false, r5).close(); + String q5 = "select \"order_id\" from " + JOIN_ITEM_TABLE_FULL_NAME + " i JOIN " + JOIN_ORDER_TABLE_FULL_NAME + " o on o.\"item_id\" = i.\"item_id\" where quantity = (select max(quantity) from " + JOIN_ORDER_TABLE_FULL_NAME + " o2 JOIN " + JOIN_ITEM_TABLE_FULL_NAME + " i2 on o2.\"item_id\" = i2.\"item_id\" where i.\"supplier_id\" = i2.\"supplier_id\")"; + Object [][] r5 = new Object[][] { + {"000000000000003"}, + {"000000000000005"}, + {"000000000000004"}}; + String p5Correlate = + "PhoenixToEnumerableConverter\n" + + " PhoenixClientProject(order_id=[$2])\n" + + " PhoenixFilter(condition=[=($4, $5)])\n" + + " PhoenixCorrelate(correlation=[$cor0], joinType=[LEFT], requiredColumns=[{1}])\n" + + " PhoenixServerJoin(condition=[=($3, $0)], joinType=[inner])\n" + + " PhoenixServerProject(item_id=[$0], supplier_id=[$5])\n" + + " PhoenixTableScan(table=[[phoenix, Join, ItemTable]])\n" + + " PhoenixServerProject(order_id=[$0], item_id=[$2], QUANTITY=[$4])\n" + + " PhoenixTableScan(table=[[phoenix, Join, OrderTable]])\n" + + " PhoenixServerAggregate(group=[{}], EXPR$0=[MAX($4)])\n" + + " PhoenixServerJoin(condition=[=($2, $7)], joinType=[inner])\n" + + " PhoenixTableScan(table=[[phoenix, Join, OrderTable]])\n" + + " PhoenixTableScan(table=[[phoenix, Join, ItemTable]], filter=[=($cor0.supplier_id, $5)])\n"; + String p5Decorrelated = + "PhoenixToEnumerableConverter\n" + + " PhoenixClientProject(order_id=[$2])\n" + + " PhoenixServerJoin(condition=[AND(=($1, $5), =($3, $0))], joinType=[inner])\n" + + " PhoenixServerProject(item_id=[$0], supplier_id=[$5])\n" + + " PhoenixTableScan(table=[[phoenix, Join, ItemTable]])\n" + + " PhoenixServerJoin(condition=[=($2, $4)], joinType=[inner])\n" + + " PhoenixServerProject(order_id=[$0], item_id=[$2], QUANTITY=[$4])\n" + + " PhoenixTableScan(table=[[phoenix, Join, OrderTable]])\n" + + " PhoenixClientAggregate(group=[{4}], EXPR$0=[MAX($1)], isOrdered=[false])\n" + + " PhoenixClientJoin(condition=[=($0, $2)], joinType=[inner])\n" + + " PhoenixServerSort(sort0=[$0], dir0=[ASC])\n" + + " PhoenixServerProject(item_id=[$2], QUANTITY=[$4])\n" + + " PhoenixTableScan(table=[[phoenix, Join, OrderTable]])\n" + + " PhoenixServerJoin(condition=[=($2, $1)], joinType=[inner])\n" + + " PhoenixServerProject(item_id=[$0], supplier_id=[$5])\n" + + " PhoenixTableScan(table=[[phoenix, Join, ItemTable]], scanOrder=[FORWARD])\n" + + " PhoenixServerAggregate(group=[{1}], isOrdered=[false])\n" + + " PhoenixServerJoin(condition=[=($2, $0)], joinType=[inner])\n" + + " PhoenixServerProject(item_id=[$0], supplier_id=[$5])\n" + + " PhoenixTableScan(table=[[phoenix, Join, ItemTable]])\n" + + " PhoenixServerProject(item_id=[$2])\n" + + " PhoenixTableScan(table=[[phoenix, Join, OrderTable]])\n"; + start(correlProps).sql(q5).explainIs(p5Correlate).resultIs(false, r5).close(); + //TODO long-running query, disable for now. //start(decorrelProps).sql(q5).explainIs(p5Decorrelated).resultIs(false, r5).close(); String q6 = "select organization_id, entity_id, a_integer from v v1 where a_integer = (select min(a_integer) from v v2 where v1.organization_id = v2.organization_id and v1.b_string = v2.b_string)"; http://git-wip-us.apache.org/repos/asf/phoenix/blob/751d134b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rules/PhoenixConverterRules.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rules/PhoenixConverterRules.java b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rules/PhoenixConverterRules.java index 1d38204..81dbe21 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rules/PhoenixConverterRules.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rules/PhoenixConverterRules.java @@ -3,7 +3,6 @@ package org.apache.phoenix.calcite.rules; import java.util.Arrays; import java.util.Iterator; import java.util.List; -import java.util.logging.Logger; import org.apache.calcite.adapter.enumerable.EnumerableConvention; import org.apache.calcite.plan.Convention; @@ -36,7 +35,6 @@ import org.apache.calcite.rel.logical.LogicalSort; import org.apache.calcite.rel.logical.LogicalUnion; import org.apache.calcite.rel.logical.LogicalValues; import org.apache.calcite.rex.RexNode; -import org.apache.calcite.util.trace.CalciteTrace; import org.apache.phoenix.calcite.CalciteUtils; import org.apache.phoenix.calcite.rel.PhoenixAbstractAggregate; import org.apache.phoenix.calcite.rel.PhoenixClientAggregate; @@ -70,8 +68,6 @@ import com.google.common.collect.Lists; public class PhoenixConverterRules { private PhoenixConverterRules() {} - protected static final Logger LOGGER = CalciteTrace.getPlannerTracer(); - public static final RelOptRule[] RULES = { PhoenixToEnumerableConverterRule.SERVER, PhoenixToEnumerableConverterRule.SERVERJOIN, http://git-wip-us.apache.org/repos/asf/phoenix/blob/751d134b/phoenix-core/src/test/resources/log4j.properties ---------------------------------------------------------------------- diff --git a/phoenix-core/src/test/resources/log4j.properties b/phoenix-core/src/test/resources/log4j.properties index 8e54793..96ebd73 100644 --- a/phoenix-core/src/test/resources/log4j.properties +++ b/phoenix-core/src/test/resources/log4j.properties @@ -61,3 +61,4 @@ log4j.logger.org.mortbay.log=WARN log4j.logger.org.apache.hadoop=WARN log4j.logger.org.apache.zookeeper=ERROR log4j.logger.org.apache.hadoop.hbase=DEBUG +log4j.logger.org.apache.calcite=INFO http://git-wip-us.apache.org/repos/asf/phoenix/blob/751d134b/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index fc642da..c3fb0f4 100644 --- a/pom.xml +++ b/pom.xml @@ -109,7 +109,7 @@ <collections.version>3.2.1</collections.version> <jodatime.version>2.7</jodatime.version> <joni.version>2.1.2</joni.version> - <calcite.version>1.6.0-SNAPSHOT</calcite.version> + <calcite.version>1.7.0-SNAPSHOT</calcite.version> <jettyVersion>8.1.7.v20120910</jettyVersion> <tephra.version>0.6.4</tephra.version> <spark.version>1.5.2</spark.version>