diff --git a/pom.xml b/pom.xml
index f302524..bdeaf9c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -100,7 +100,7 @@
3.4
1.7.5
0.8.0.RELEASE
- 1.0.0-incubating
+ 1.1.0-incubating-SNAPSHOT
3.2.6
3.2.10
3.2.9
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/TraitsUtil.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/TraitsUtil.java
index f182846..be28828 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/TraitsUtil.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/TraitsUtil.java
@@ -22,7 +22,7 @@
import org.apache.calcite.plan.RelOptCluster;
import org.apache.calcite.plan.RelTraitSet;
import org.apache.calcite.rel.RelCollation;
-import org.apache.calcite.rel.RelCollationImpl;
+import org.apache.calcite.rel.RelCollations;
import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveRelNode;
public class TraitsUtil {
@@ -32,6 +32,6 @@ public static RelTraitSet getSortTraitSet(RelOptCluster cluster, RelTraitSet tra
}
public static RelTraitSet getDefaultTraitSet(RelOptCluster cluster) {
- return cluster.traitSetOf(HiveRelNode.CONVENTION, RelCollationImpl.EMPTY);
+ return cluster.traitSetOf(HiveRelNode.CONVENTION, RelCollations.EMPTY);
}
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
index 23623f3..c187535 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
@@ -49,6 +49,7 @@
import org.apache.calcite.plan.hep.HepProgramBuilder;
import org.apache.calcite.rel.InvalidRelException;
import org.apache.calcite.rel.RelCollation;
+import org.apache.calcite.rel.RelCollations;
import org.apache.calcite.rel.RelCollationImpl;
import org.apache.calcite.rel.RelFieldCollation;
import org.apache.calcite.rel.RelNode;
@@ -68,6 +69,7 @@
import org.apache.calcite.rel.rules.JoinPushTransitivePredicatesRule;
import org.apache.calcite.rel.rules.JoinToMultiJoinRule;
import org.apache.calcite.rel.rules.LoptOptimizeJoinRule;
+import org.apache.calcite.rel.rules.ProjectMergeRule;
import org.apache.calcite.rel.rules.ProjectRemoveRule;
import org.apache.calcite.rel.rules.ReduceExpressionsRule;
import org.apache.calcite.rel.rules.SemiJoinFilterTransposeRule;
@@ -707,7 +709,7 @@ public RelNode apply(RelOptCluster cluster, RelOptSchema relOptSchema, SchemaPlu
List list = Lists.newArrayList();
list.add(HiveDefaultRelMetadataProvider.INSTANCE);
RelTraitSet desiredTraits = cluster
- .traitSetOf(HiveRelNode.CONVENTION, RelCollationImpl.EMPTY);
+ .traitSetOf(HiveRelNode.CONVENTION, RelCollations.EMPTY);
HepProgram hepPgm = null;
HepProgramBuilder hepPgmBldr = new HepProgramBuilder().addMatchOrder(HepMatchOrder.BOTTOM_UP)
@@ -720,6 +722,7 @@ public RelNode apply(RelOptCluster cluster, RelOptSchema relOptSchema, SchemaPlu
hepPgmBldr.addRuleInstance(ReduceExpressionsRule.PROJECT_INSTANCE);
hepPgmBldr.addRuleInstance(ProjectRemoveRule.INSTANCE);
hepPgmBldr.addRuleInstance(UnionMergeRule.INSTANCE);
+ hepPgmBldr.addRuleInstance(ProjectMergeRule.INSTANCE);
hepPgm = hepPgmBldr.build();
HepPlanner hepPlanner = new HepPlanner(hepPgm);
@@ -784,8 +787,6 @@ private RelNode applyPreJoinOrderingTransforms(RelNode basePlan, RelMetadataProv
// 3. Transitive inference & Partition Pruning
basePlan = hepPlan(basePlan, false, mdProvider, new JoinPushTransitivePredicatesRule(
Join.class, HiveFilter.DEFAULT_FILTER_FACTORY),
- // TODO: Enable it after CALCITE-407 is fixed
- // RemoveTrivialProjectRule.INSTANCE,
new HivePartitionPruneRule(conf));
// 4. Projection Pruning
@@ -2030,7 +2031,7 @@ private RelNode genLimitLogicalPlan(QB qb, RelNode srcRel) throws SemanticExcept
if (limit != null) {
RexNode fetch = cluster.getRexBuilder().makeExactLiteral(BigDecimal.valueOf(limit));
RelTraitSet traitSet = cluster.traitSetOf(HiveRelNode.CONVENTION);
- RelCollation canonizedCollation = traitSet.canonize(RelCollationImpl.EMPTY);
+ RelCollation canonizedCollation = traitSet.canonize(RelCollations.EMPTY);
sortRel = new HiveSort(cluster, traitSet, srcRel, canonizedCollation, null, fetch);
RowResolver outputRR = new RowResolver();