You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by ma...@apache.org on 2015/06/26 05:40:48 UTC
phoenix git commit: PHOENIX-2078 Non-Phoenix convention Rel appear as
a child of Phoenix Rel after application of XXXTransposeRule or other similar
rules
Repository: phoenix
Updated Branches:
refs/heads/calcite 62d6720f7 -> 22162037e
PHOENIX-2078 Non-Phoenix convention Rel appear as a child of Phoenix Rel after application of XXXTransposeRule or other similar rules
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/22162037
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/22162037
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/22162037
Branch: refs/heads/calcite
Commit: 22162037edcad2189c46abe488a4166f2e130de5
Parents: 62d6720
Author: maryannxue <we...@intel.com>
Authored: Thu Jun 25 23:40:35 2015 -0400
Committer: maryannxue <we...@intel.com>
Committed: Thu Jun 25 23:40:35 2015 -0400
----------------------------------------------------------------------
phoenix-core/pom.xml | 4 ++++
.../it/java/org/apache/phoenix/calcite/CalciteTest.java | 12 ++++++------
.../phoenix/calcite/rel/PhoenixClientAggregate.java | 3 +++
.../apache/phoenix/calcite/rel/PhoenixClientJoin.java | 5 ++++-
.../phoenix/calcite/rel/PhoenixClientProject.java | 3 +++
.../apache/phoenix/calcite/rel/PhoenixClientSort.java | 3 +++
.../phoenix/calcite/rel/PhoenixCompactClientSort.java | 5 ++++-
.../org/apache/phoenix/calcite/rel/PhoenixFilter.java | 3 +++
.../org/apache/phoenix/calcite/rel/PhoenixLimit.java | 3 +++
.../phoenix/calcite/rel/PhoenixPostJoinProject.java | 3 +++
.../phoenix/calcite/rel/PhoenixServerAggregate.java | 4 ++++
.../apache/phoenix/calcite/rel/PhoenixServerJoin.java | 6 +++++-
.../phoenix/calcite/rel/PhoenixServerProject.java | 3 +++
.../apache/phoenix/calcite/rel/PhoenixServerSort.java | 4 ++++
pom.xml | 4 ++--
15 files changed, 54 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/phoenix/blob/22162037/phoenix-core/pom.xml
----------------------------------------------------------------------
diff --git a/phoenix-core/pom.xml b/phoenix-core/pom.xml
index 965d198..2f8f006 100644
--- a/phoenix-core/pom.xml
+++ b/phoenix-core/pom.xml
@@ -350,6 +350,10 @@
<artifactId>calcite-core</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.calcite</groupId>
+ <artifactId>calcite-linq4j</artifactId>
+ </dependency>
+ <dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/phoenix/blob/22162037/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteTest.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteTest.java b/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteTest.java
index ebd9dfb..d65eb80 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteTest.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/calcite/CalciteTest.java
@@ -826,12 +826,12 @@ public class CalciteTest extends BaseClientManagedTimeIT {
" PhoenixTableScan(table=[[phoenix, Join, OrderTable]])\n" +
" EnumerableAggregate(group=[{0}], agg#0=[SINGLE_VALUE($1)])\n" +
" EnumerableAggregate(group=[{0}], CNT=[COUNT()])\n" +
- " EnumerableCalc(expr#0..10=[{inputs}], expr#11=[CAST($t5):INTEGER], expr#12=[=($t11, $t0)], proj#0..10=[{exprs}], $condition=[$t12])\n" +
- " EnumerableJoin(condition=[true], joinType=[inner])\n" +
- " PhoenixToEnumerableConverter\n" +
- " PhoenixServerAggregate(group=[{6}])\n" +
- " PhoenixTableScan(table=[[phoenix, Join, OrderTable]])\n" +
- " JdbcToEnumerableConverter\n" +
+ " EnumerableJoin(condition=[=($0, $11)], joinType=[inner])\n" +
+ " PhoenixToEnumerableConverter\n" +
+ " PhoenixServerAggregate(group=[{6}])\n" +
+ " PhoenixTableScan(table=[[phoenix, Join, OrderTable]])\n" +
+ " JdbcToEnumerableConverter\n" +
+ " JdbcProject(time_id=[$0], the_date=[$1], the_day=[$2], the_month=[$3], the_year=[$4], day_of_month=[$5], week_of_year=[$6], month_of_year=[$7], quarter=[$8], fiscal_period=[$9], $f10=[CAST($4):INTEGER])\n" +
" JdbcTableScan(table=[[foodmart, time_by_day]])\n")
.resultIs(new Object[][] {
new Object[] {1997, 1000, 365L},
http://git-wip-us.apache.org/repos/asf/phoenix/blob/22162037/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientAggregate.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientAggregate.java b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientAggregate.java
index 7e9ff90..75f19a0 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientAggregate.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientAggregate.java
@@ -49,6 +49,9 @@ public class PhoenixClientAggregate extends PhoenixAbstractAggregate {
@Override
public RelOptCost computeSelfCost(RelOptPlanner planner) {
+ if (getInput().getConvention() != PhoenixRel.CLIENT_CONVENTION)
+ return planner.getCostFactory().makeInfiniteCost();
+
return super.computeSelfCost(planner)
.multiplyBy(PHOENIX_FACTOR);
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/22162037/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientJoin.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientJoin.java b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientJoin.java
index d664843..c6cf214 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientJoin.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientJoin.java
@@ -61,7 +61,6 @@ public class PhoenixClientJoin extends PhoenixAbstractJoin {
JoinRelType joinType, Set<String> variablesStopped, boolean isSingleValueRhs) {
super(cluster, traits, left, right, condition, joinType,
variablesStopped, isSingleValueRhs);
- assert joinType != JoinRelType.RIGHT;
}
@Override
@@ -78,6 +77,10 @@ public class PhoenixClientJoin extends PhoenixAbstractJoin {
@Override
public RelOptCost computeSelfCost(RelOptPlanner planner) {
+ if (getLeft().getConvention() != PhoenixRel.CLIENT_CONVENTION
+ || getRight().getConvention() != PhoenixRel.CLIENT_CONVENTION)
+ return planner.getCostFactory().makeInfiniteCost();
+
if (joinType == JoinRelType.RIGHT
|| (!joinInfo.leftKeys.isEmpty() && !RelCollations.contains(RelMetadataQuery.collations(getLeft()), joinInfo.leftKeys))
|| (!joinInfo.rightKeys.isEmpty() && !RelCollations.contains(RelMetadataQuery.collations(getRight()), joinInfo.rightKeys)))
http://git-wip-us.apache.org/repos/asf/phoenix/blob/22162037/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientProject.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientProject.java b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientProject.java
index 4cbf4d0..77ca76d 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientProject.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientProject.java
@@ -47,6 +47,9 @@ public class PhoenixClientProject extends PhoenixAbstractProject {
@Override
public RelOptCost computeSelfCost(RelOptPlanner planner) {
+ if (getInput().getConvention() != PhoenixRel.CLIENT_CONVENTION)
+ return planner.getCostFactory().makeInfiniteCost();
+
return super.computeSelfCost(planner)
.multiplyBy(PHOENIX_FACTOR);
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/22162037/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientSort.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientSort.java b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientSort.java
index ab9dfd2..09218c8 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientSort.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientSort.java
@@ -44,6 +44,9 @@ public class PhoenixClientSort extends PhoenixAbstractSort {
@Override
public RelOptCost computeSelfCost(RelOptPlanner planner) {
+ if (getInput().getConvention() != PhoenixRel.CLIENT_CONVENTION)
+ return planner.getCostFactory().makeInfiniteCost();
+
return super.computeSelfCost(planner)
.multiplyBy(PHOENIX_FACTOR);
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/22162037/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixCompactClientSort.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixCompactClientSort.java b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixCompactClientSort.java
index 81b5608..d881f3f 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixCompactClientSort.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixCompactClientSort.java
@@ -28,7 +28,7 @@ public class PhoenixCompactClientSort extends PhoenixAbstractSort {
private PhoenixCompactClientSort(RelOptCluster cluster, RelTraitSet traits,
RelNode child, RelCollation collation) {
super(cluster, traits, child, collation);
- }
+ }
@Override
public PhoenixCompactClientSort copy(RelTraitSet traitSet, RelNode newInput,
@@ -38,6 +38,9 @@ public class PhoenixCompactClientSort extends PhoenixAbstractSort {
@Override
public RelOptCost computeSelfCost(RelOptPlanner planner) {
+ if (getInput().getConvention() != PhoenixRel.CLIENT_CONVENTION)
+ return planner.getCostFactory().makeInfiniteCost();
+
return super.computeSelfCost(planner)
.multiplyBy(CLIENT_MERGE_FACTOR)
.multiplyBy(PHOENIX_FACTOR);
http://git-wip-us.apache.org/repos/asf/phoenix/blob/22162037/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixFilter.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixFilter.java b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixFilter.java
index 7583750..a070d35 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixFilter.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixFilter.java
@@ -49,6 +49,9 @@ public class PhoenixFilter extends Filter implements PhoenixRel {
@Override
public RelOptCost computeSelfCost(RelOptPlanner planner) {
+ if (getInput().getConvention() != PhoenixRel.CLIENT_CONVENTION)
+ return planner.getCostFactory().makeInfiniteCost();
+
return super.computeSelfCost(planner).multiplyBy(PHOENIX_FACTOR);
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/22162037/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixLimit.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixLimit.java b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixLimit.java
index b66ecbd..55acd4a 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixLimit.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixLimit.java
@@ -67,6 +67,9 @@ public class PhoenixLimit extends SingleRel implements PhoenixRel {
@Override
public RelOptCost computeSelfCost(RelOptPlanner planner) {
+ if (getInput().getConvention() != PhoenixRel.CLIENT_CONVENTION)
+ return planner.getCostFactory().makeInfiniteCost();
+
double rowCount = RelMetadataQuery.getRowCount(this);
return planner.getCostFactory()
.makeCost(rowCount, 0, 0)
http://git-wip-us.apache.org/repos/asf/phoenix/blob/22162037/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixPostJoinProject.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixPostJoinProject.java b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixPostJoinProject.java
index 0559ba6..a1ae22b 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixPostJoinProject.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixPostJoinProject.java
@@ -47,6 +47,9 @@ public class PhoenixPostJoinProject extends PhoenixAbstractProject {
@Override
public RelOptCost computeSelfCost(RelOptPlanner planner) {
+ if (getInput().getConvention() != PhoenixRel.PROJECTABLE_CONVENTION)
+ return planner.getCostFactory().makeInfiniteCost();
+
return super.computeSelfCost(planner)
.multiplyBy(SERVER_FACTOR)
.multiplyBy(PHOENIX_FACTOR);
http://git-wip-us.apache.org/repos/asf/phoenix/blob/22162037/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixServerAggregate.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixServerAggregate.java b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixServerAggregate.java
index 4231f03..f0697e4 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixServerAggregate.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixServerAggregate.java
@@ -43,6 +43,10 @@ public class PhoenixServerAggregate extends PhoenixAbstractAggregate {
@Override
public RelOptCost computeSelfCost(RelOptPlanner planner) {
+ if (getInput().getConvention() != PhoenixRel.SERVER_CONVENTION
+ && getInput().getConvention() != PhoenixRel.PROJECTABLE_CONVENTION)
+ return planner.getCostFactory().makeInfiniteCost();
+
return super.computeSelfCost(planner)
.multiplyBy(SERVER_FACTOR)
.multiplyBy(PHOENIX_FACTOR);
http://git-wip-us.apache.org/repos/asf/phoenix/blob/22162037/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixServerJoin.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixServerJoin.java b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixServerJoin.java
index ef0abd3..328549b 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixServerJoin.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixServerJoin.java
@@ -70,12 +70,16 @@ public class PhoenixServerJoin extends PhoenixAbstractJoin {
@Override
public RelOptCost computeSelfCost(RelOptPlanner planner) {
- //TODO return infinite cost if RHS size exceeds memory limit.
+ if (getLeft().getConvention() != PhoenixRel.SERVER_CONVENTION
+ || getRight().getConvention() != PhoenixRel.CLIENT_CONVENTION)
+ return planner.getCostFactory().makeInfiniteCost();
if (joinType == JoinRelType.FULL || joinType == JoinRelType.RIGHT
|| getLeft().getConvention() != PhoenixRel.SERVER_CONVENTION)
return planner.getCostFactory().makeInfiniteCost();
+ //TODO return infinite cost if RHS size exceeds memory limit.
+
double rowCount = RelMetadataQuery.getRowCount(this);
double leftRowCount = RelMetadataQuery.getRowCount(getLeft());
http://git-wip-us.apache.org/repos/asf/phoenix/blob/22162037/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixServerProject.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixServerProject.java b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixServerProject.java
index 802211a..da9f250 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixServerProject.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixServerProject.java
@@ -47,6 +47,9 @@ public class PhoenixServerProject extends PhoenixAbstractProject {
@Override
public RelOptCost computeSelfCost(RelOptPlanner planner) {
+ if (getInput().getConvention() != PhoenixRel.SERVER_CONVENTION)
+ return planner.getCostFactory().makeInfiniteCost();
+
return super.computeSelfCost(planner)
.multiplyBy(SERVER_FACTOR)
.multiplyBy(PHOENIX_FACTOR);
http://git-wip-us.apache.org/repos/asf/phoenix/blob/22162037/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixServerSort.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixServerSort.java b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixServerSort.java
index dea751f..e185a2f 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixServerSort.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixServerSort.java
@@ -38,6 +38,10 @@ public class PhoenixServerSort extends PhoenixAbstractSort {
@Override
public RelOptCost computeSelfCost(RelOptPlanner planner) {
+ if (getInput().getConvention() != PhoenixRel.SERVER_CONVENTION
+ && getInput().getConvention() != PhoenixRel.PROJECTABLE_CONVENTION)
+ return planner.getCostFactory().makeInfiniteCost();
+
return super.computeSelfCost(planner)
.multiplyBy(SERVER_FACTOR)
.multiplyBy(PHOENIX_FACTOR);
http://git-wip-us.apache.org/repos/asf/phoenix/blob/22162037/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 8227115..a9786ce 100644
--- a/pom.xml
+++ b/pom.xml
@@ -113,7 +113,7 @@
<collections.version>3.2.1</collections.version>
<jodatime.version>2.7</jodatime.version>
<joni.version>2.1.2</joni.version>
- <calcite.version>1.3.0-incubating</calcite.version>
+ <calcite.version>1.4.0-incubating-SNAPSHOT</calcite.version>
<!-- Test Dependencies -->
<mockito-all.version>1.8.5</mockito-all.version>
@@ -773,7 +773,7 @@
</dependency>
<dependency>
<groupId>org.apache.calcite</groupId>
- <artifactId>calcite-avatica</artifactId>
+ <artifactId>calcite-linq4j</artifactId>
<version>${calcite.version}</version>
</dependency>
<dependency>