You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2014/11/14 22:32:46 UTC

[38/58] [abbrv] [partial] incubator-calcite git commit: [CALCITE-306] Standardize code style for "import package.*; "

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/AbstractRelNode.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/AbstractRelNode.java b/core/src/main/java/org/apache/calcite/rel/AbstractRelNode.java
index 6cd21f2..4a60299 100644
--- a/core/src/main/java/org/apache/calcite/rel/AbstractRelNode.java
+++ b/core/src/main/java/org/apache/calcite/rel/AbstractRelNode.java
@@ -14,24 +14,41 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
-
-import java.io.*;
-import java.util.*;
-import java.util.logging.*;
-
-import org.eigenbase.rel.metadata.*;
-import org.eigenbase.relopt.*;
-import org.eigenbase.reltype.*;
-import org.eigenbase.rex.*;
-import org.eigenbase.sql.*;
-import org.eigenbase.trace.*;
-import org.eigenbase.util.*;
-
-import net.hydromatic.optiq.util.BitSets;
+package org.apache.calcite.rel;
+
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.ConventionTraitDef;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelOptQuery;
+import org.apache.calcite.plan.RelOptTable;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.plan.RelTrait;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.externalize.RelWriterImpl;
+import org.apache.calcite.rel.metadata.Metadata;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.sql.SqlExplainLevel;
+import org.apache.calcite.util.BitSets;
+import org.apache.calcite.util.Pair;
+import org.apache.calcite.util.Util;
+import org.apache.calcite.util.trace.CalciteTrace;
 
 import com.google.common.collect.ImmutableList;
 
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.BitSet;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
 /**
  * Base class for every relational expression ({@link RelNode}).
  */
@@ -44,7 +61,7 @@ public abstract class AbstractRelNode implements RelNode {
   /** Generator for {@link #id} values. */
   static int nextId = 0;
 
-  private static final Logger LOGGER = EigenbaseTrace.getPlannerTracer();
+  private static final Logger LOGGER = CalciteTrace.getPlannerTracer();
 
   //~ Instance fields --------------------------------------------------------
 
@@ -61,9 +78,9 @@ public abstract class AbstractRelNode implements RelNode {
   /**
    * A short description of this relational expression's type, inputs, and
    * other properties. The string uniquely identifies the node; another node
-   * is equivalent if and only if it has the same value. Computed by {@link
-   * #computeDigest}, assigned by {@link #onRegister}, returned by {@link
-   * #getDigest()}.
+   * is equivalent if and only if it has the same value. Computed by
+   * {@link #computeDigest}, assigned by {@link #onRegister}, returned by
+   * {@link #getDigest()}.
    *
    * @see #desc
    */
@@ -115,9 +132,10 @@ public abstract class AbstractRelNode implements RelNode {
         && traitSet == getTraitSet()) {
       return this;
     }
-    throw new AssertionError(
-        "Relational expression should override copy. Class=[" + getClass()
-        + "]; traits=[" + getTraitSet() + "]; desired traits=[" + traitSet
+    throw new AssertionError("Relational expression should override copy. "
+        + "Class=[" + getClass()
+        + "]; traits=[" + getTraitSet()
+        + "]; desired traits=[" + traitSet
         + "]");
   }
 
@@ -252,8 +270,8 @@ public abstract class AbstractRelNode implements RelNode {
   }
 
   public RelNode accept(RelShuttle shuttle) {
-    // Call fall-back method. Specific logical types (such as ProjectRel
-    // and JoinRel) have their own RelShuttle.visit methods.
+    // Call fall-back method. Specific logical types (such as LogicalProject
+    // and LogicalJoin) have their own RelShuttle.visit methods.
     return shuttle.visit(this);
   }
 
@@ -283,9 +301,10 @@ public abstract class AbstractRelNode implements RelNode {
   /**
    * Describes the inputs and attributes of this relational expression.
    * Each node should call {@code super.explainTerms}, then call the
-   * {@link RelWriterImpl#input(String, RelNode)}
-   * and {@link RelWriterImpl#item(String, Object)} methods for each input
-   * and attribute.
+   * {@link org.apache.calcite.rel.externalize.RelWriterImpl#input(String, RelNode)}
+   * and
+   * {@link org.apache.calcite.rel.externalize.RelWriterImpl#item(String, Object)}
+   * methods for each input and attribute.
    *
    * @param pw Plan writer
    */

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/Aggregation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/Aggregation.java b/core/src/main/java/org/apache/calcite/rel/Aggregation.java
deleted file mode 100644
index 2af9369..0000000
--- a/core/src/main/java/org/apache/calcite/rel/Aggregation.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.eigenbase.rel;
-
-import java.util.List;
-
-import org.eigenbase.reltype.*;
-
-/**
- * An <code>Aggregation</code> aggregates a set of values into one value.
- *
- * <p>It is used, via a {@link AggregateCall}, in an {@link AggregateRel}
- * relational operator.</p>
- *
- * @deprecated Use {@link org.eigenbase.sql.SqlAggFunction};
- * after {@link org.eigenbase.util.Bug#upgrade calcite-0.9.1},
- * {@link org.eigenbase.rel.AggregateCall} will require a {@code SqlAggFunction}
- * and after {@link org.eigenbase.util.Bug#upgrade calcite-0.9.2}
- * this interface will be removed.
- */
-public interface Aggregation {
-  //~ Methods ----------------------------------------------------------------
-
-  /**
-   * Returns the parameter types accepted by this Aggregation.
-   *
-   * @param typeFactory Type factory to create the types
-   * @return Array of parameter types
-   *
-   * @deprecated Use
-   * {@link org.eigenbase.sql.SqlAggFunction#getOperandTypeInference()}; will
-   * be removed after {@link org.eigenbase.util.Bug#upgrade calcite-0.9.2}.
-   */
-  List<RelDataType> getParameterTypes(RelDataTypeFactory typeFactory);
-
-  /**
-   * Returns the type of the result yielded by this Aggregation.
-   *
-   * @param typeFactory Type factory to create the type
-   * @return Result type
-   *
-   * @deprecated Use
-   * {@link org.eigenbase.sql.SqlAggFunction#getReturnTypeInference()}; will
-   * be removed after {@link org.eigenbase.util.Bug#upgrade calcite-0.9.2}.
-   */
-  RelDataType getReturnType(RelDataTypeFactory typeFactory);
-
-  /**
-   * Returns the name of this Aggregation
-   *
-   * @return name of this aggregation
-   */
-  String getName();
-}
-
-// End Aggregation.java

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/InvalidRelException.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/InvalidRelException.java b/core/src/main/java/org/apache/calcite/rel/InvalidRelException.java
index e29b093..0852967 100644
--- a/core/src/main/java/org/apache/calcite/rel/InvalidRelException.java
+++ b/core/src/main/java/org/apache/calcite/rel/InvalidRelException.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
+package org.apache.calcite.rel;
 
 /**
  * Exception that indicates that a relational expression would be invalid

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/RelCollation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/RelCollation.java b/core/src/main/java/org/apache/calcite/rel/RelCollation.java
index 5b80ac9..3aed2e9 100644
--- a/core/src/main/java/org/apache/calcite/rel/RelCollation.java
+++ b/core/src/main/java/org/apache/calcite/rel/RelCollation.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
+package org.apache.calcite.rel;
 
-import java.util.*;
+import org.apache.calcite.plan.RelTrait;
 
-import org.eigenbase.relopt.RelTrait;
+import java.util.List;
 
 /**
  * Description of the physical ordering of a relational expression.

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/RelCollationImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/RelCollationImpl.java b/core/src/main/java/org/apache/calcite/rel/RelCollationImpl.java
index 218529e..363c190 100644
--- a/core/src/main/java/org/apache/calcite/rel/RelCollationImpl.java
+++ b/core/src/main/java/org/apache/calcite/rel/RelCollationImpl.java
@@ -14,20 +14,21 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
+package org.apache.calcite.rel;
 
-import java.util.*;
-
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTrait;
-import org.eigenbase.relopt.RelTraitDef;
-import org.eigenbase.reltype.*;
-import org.eigenbase.util.Util;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTrait;
+import org.apache.calcite.plan.RelTraitDef;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.util.Util;
 
 import com.google.common.base.Function;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 
+import java.util.Iterator;
+import java.util.List;
+
 /**
  * Simple implementation of {@link RelCollation}.
  */

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/RelCollationTraitDef.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/RelCollationTraitDef.java b/core/src/main/java/org/apache/calcite/rel/RelCollationTraitDef.java
index 9c918a8..dc935fd 100644
--- a/core/src/main/java/org/apache/calcite/rel/RelCollationTraitDef.java
+++ b/core/src/main/java/org/apache/calcite/rel/RelCollationTraitDef.java
@@ -14,20 +14,24 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
+package org.apache.calcite.rel;
 
-import org.eigenbase.relopt.*;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitDef;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.core.Sort;
 
 /**
  * Definition of the ordering trait.
  *
  * <p>Ordering is a physical property (i.e. a trait) because it can be changed
- * without loss of information. The converter to do this is the {@link SortRel}
- * operator.</p>
+ * without loss of information. The converter to do this is the
+ * {@link org.apache.calcite.rel.core.Sort} operator.
  *
  * <p>Unlike other current traits, a {@link RelNode} can have more than one
  * value of this trait simultaneously. For example,
- * <code>TableAccessRel(table=TIME_BY_DAY)</code> might be sorted by
+ * <code>LogicalTableScan(table=TIME_BY_DAY)</code> might be sorted by
  * <code>{the_year, the_month, the_date}</code> and also by
  * <code>{time_id}</code>. We have to allow a RelNode to belong to more than
  * one RelSubset (these RelSubsets are always in the same set).</p>
@@ -47,8 +51,7 @@ public class RelCollationTraitDef extends RelTraitDef<RelCollation> {
     return "sort";
   }
 
-  @Override
-  public boolean multiple() {
+  @Override public boolean multiple() {
     return true;
   }
 
@@ -73,8 +76,8 @@ public class RelCollationTraitDef extends RelTraitDef<RelCollation> {
     // Create a logical sort, then ask the planner to convert its remaining
     // traits (e.g. convert it to an EnumerableSortRel if rel is enumerable
     // convention)
-    final SortRel sort =
-        new SortRel(
+    final Sort sort =
+        new Sort(
             rel.getCluster(),
             rel.getCluster().traitSetOf(Convention.NONE, toCollation),
             rel,

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/RelFieldCollation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/RelFieldCollation.java b/core/src/main/java/org/apache/calcite/rel/RelFieldCollation.java
index 0e3593f..dba73f8 100644
--- a/core/src/main/java/org/apache/calcite/rel/RelFieldCollation.java
+++ b/core/src/main/java/org/apache/calcite/rel/RelFieldCollation.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
+package org.apache.calcite.rel;
 
 /**
  * Definition of the ordering of one field of a {@link RelNode} whose

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/RelImplementorImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/RelImplementorImpl.java b/core/src/main/java/org/apache/calcite/rel/RelImplementorImpl.java
index e871f00..8e42bed 100644
--- a/core/src/main/java/org/apache/calcite/rel/RelImplementorImpl.java
+++ b/core/src/main/java/org/apache/calcite/rel/RelImplementorImpl.java
@@ -14,7 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
+package org.apache.calcite.rel;
+
+import org.apache.calcite.plan.RelImplementor;
+import org.apache.calcite.rel.core.Join;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.util.trace.CalciteTrace;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -22,17 +28,12 @@ import java.util.List;
 import java.util.Map;
 import java.util.logging.Logger;
 
-import org.eigenbase.relopt.RelImplementor;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.rex.RexBuilder;
-import org.eigenbase.trace.EigenbaseTrace;
-
 /**
  * Implementation of {@link RelImplementor}.
  */
 public class RelImplementorImpl implements RelImplementor {
   protected static final Logger LOGGER =
-      EigenbaseTrace.getRelImplementorTracer();
+      CalciteTrace.getRelImplementorTracer();
 
   /**
    * Maps a {@link String} to the {@link RelImplementorImpl.Frame} whose
@@ -42,7 +43,7 @@ public class RelImplementorImpl implements RelImplementor {
       new HashMap<String, Frame>();
 
   /**
-   * Maps a {@link org.eigenbase.rel.RelNode} to the unique frame whose
+   * Maps a {@link RelNode} to the unique frame whose
    * {@link RelImplementorImpl.Frame#rel} is
    * that relational expression.
    */
@@ -105,7 +106,7 @@ public class RelImplementorImpl implements RelImplementor {
       RelNode rel,
       int offset,
       int[] offsets) {
-    if (rel instanceof JoinRelBase) {
+    if (rel instanceof Join) {
       // no variable here -- go deeper
       List<RelNode> inputs = rel.getInputs();
       for (RelNode input : inputs) {

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/RelInput.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/RelInput.java b/core/src/main/java/org/apache/calcite/rel/RelInput.java
index 963a0eb..0eff922 100644
--- a/core/src/main/java/org/apache/calcite/rel/RelInput.java
+++ b/core/src/main/java/org/apache/calcite/rel/RelInput.java
@@ -14,16 +14,19 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
+package org.apache.calcite.rel;
+
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptTable;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.core.AggregateCall;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rex.RexLiteral;
+import org.apache.calcite.rex.RexNode;
 
 import java.util.BitSet;
 import java.util.List;
 
-import org.eigenbase.relopt.*;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.rex.RexLiteral;
-import org.eigenbase.rex.RexNode;
-
 /**
  * Context from which a relational expression can initialize itself,
  * reading from a serialized form of the relational expression.

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/RelNode.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/RelNode.java b/core/src/main/java/org/apache/calcite/rel/RelNode.java
index b896790..50da558 100644
--- a/core/src/main/java/org/apache/calcite/rel/RelNode.java
+++ b/core/src/main/java/org/apache/calcite/rel/RelNode.java
@@ -14,27 +14,39 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
-
-import java.util.*;
-
-import org.eigenbase.rel.metadata.*;
-import org.eigenbase.relopt.*;
-import org.eigenbase.reltype.*;
-import org.eigenbase.rex.*;
+package org.apache.calcite.rel;
+
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptNode;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelOptQuery;
+import org.apache.calcite.plan.RelOptTable;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.metadata.Metadata;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rex.RexNode;
+
+import java.util.BitSet;
+import java.util.List;
+import java.util.Set;
 
 /**
  * A <code>RelNode</code> is a relational expression.
  *
+ * <p>Relational expressions process data, so their names are typically verbs:
+ * Sort, Join, Project, Filter, Scan, Sample.
+ *
  * <p>A relational expression is not a scalar expression; see
- * {@link org.eigenbase.sql.SqlNode} and {@link RexNode}.</p>
+ * {@link org.apache.calcite.sql.SqlNode} and {@link RexNode}.</p>
  *
  * <p>If this type of relational expression has some particular planner rules,
  * it should implement the <em>public static</em> method
  * {@link AbstractRelNode#register}.</p>
  *
  * <p>When a relational expression comes to be implemented, the system allocates
- * a {@link org.eigenbase.relopt.RelImplementor} to manage the process. Every
+ * a {@link org.apache.calcite.plan.RelImplementor} to manage the process. Every
  * implementable relational expression has a {@link RelTraitSet} describing its
  * physical attributes. The RelTraitSet always contains a {@link Convention}
  * describing how the expression passes data to its consuming
@@ -44,9 +56,10 @@ import org.eigenbase.rex.*;
  * those traits configured by the RelNode itself).</p>
  *
  * <p>For each calling-convention, there is a corresponding sub-interface of
- * RelNode. For example, {@code net.hydromatic.optiq.rules.java.EnumerableRel}
+ * RelNode. For example,
+ * {@code org.apache.calcite.adapter.enumerable.EnumerableRel}
  * has operations to manage the conversion to a graph of
- * {@code net.hydromatic.optiq.rules.java.EnumerableConvention}
+ * {@code org.apache.calcite.adapter.enumerable.EnumerableConvention}
  * calling-convention, and it interacts with a
  * {@code EnumerableRelImplementor}.</p>
  *
@@ -75,8 +88,8 @@ public interface RelNode extends RelOptNode, Cloneable {
   List<RexNode> getChildExps();
 
   /**
-   * Return the CallingConvention trait from this RelNode's {@link
-   * #getTraitSet() trait set}.
+   * Return the CallingConvention trait from this RelNode's
+   * {@link #getTraitSet() trait set}.
    *
    * @return this RelNode's CallingConvention
    */
@@ -122,8 +135,8 @@ public interface RelNode extends RelOptNode, Cloneable {
 
   /**
    * Returns the sub-query this relational expression belongs to. A sub-query
-   * determines the scope for correlating variables (see {@link
-   * #setCorrelVariable(String)}).
+   * determines the scope for correlating variables (see
+   * {@link #setCorrelVariable(String)}).
    *
    * @return Sub-query
    */
@@ -135,8 +148,8 @@ public interface RelNode extends RelOptNode, Cloneable {
   RelDataType getRowType();
 
   /**
-   * Returns the type of the rows expected for an input. Defaults to {@link
-   * #getRowType}.
+   * Returns the type of the rows expected for an input. Defaults to
+   * {@link #getRowType}.
    *
    * @param ordinalInParent input's 0-based ordinal with respect to this
    *                        parent rel
@@ -188,9 +201,9 @@ public interface RelNode extends RelOptNode, Cloneable {
   void collectVariablesSet(Set<String> variableSet);
 
   /**
-   * Interacts with the {@link RelVisitor} in a {@link
-   * org.eigenbase.util.Glossary#VISITOR_PATTERN visitor pattern} to traverse
-   * the tree of relational expressions.
+   * Interacts with the {@link RelVisitor} in a
+   * {@link org.apache.calcite.util.Glossary#VISITOR_PATTERN visitor pattern} to
+   * traverse the tree of relational expressions.
    */
   void childrenAccept(RelVisitor visitor);
 
@@ -218,9 +231,10 @@ public interface RelNode extends RelOptNode, Cloneable {
   /**
    * Describes the inputs and attributes of this relational expression.
    * Each node should call {@code super.explain}, then call the
-   * {@link RelWriterImpl#input(String, RelNode)}
-   * and {@link RelWriterImpl#item(String, Object)} methods for each input
-   * and attribute.
+   * {@link org.apache.calcite.rel.externalize.RelWriterImpl#input(String, RelNode)}
+   * and
+   * {@link org.apache.calcite.rel.externalize.RelWriterImpl#item(String, Object)}
+   * methods for each input and attribute.
    *
    * @param pw Plan writer
    */
@@ -262,7 +276,7 @@ public interface RelNode extends RelOptNode, Cloneable {
   /**
    * Returns the name of this relational expression's class, sans package
    * name, for use in explain. For example, for a <code>
-   * org.eigenbase.rel.ArrayRel.ArrayReader</code>, this method returns
+   * org.apache.calcite.rel.ArrayRel.ArrayReader</code>, this method returns
    * "ArrayReader".
    */
   String getRelTypeName();
@@ -314,9 +328,9 @@ public interface RelNode extends RelOptNode, Cloneable {
    * expression.
    *
    * <p>The planner calls this method this first time that it sees a
-   * relational expression of this class. The derived class should call {@link
-   * org.eigenbase.relopt.RelOptPlanner#addRule} for each rule, and then call
-   * {@code super.register}.</p>
+   * relational expression of this class. The derived class should call
+   * {@link org.apache.calcite.plan.RelOptPlanner#addRule} for each rule, and
+   * then call {@code super.register}.</p>
    */
   void register(RelOptPlanner planner);
 
@@ -324,7 +338,7 @@ public interface RelNode extends RelOptNode, Cloneable {
    * Returns whether the result of this relational expression is uniquely
    * identified by this columns with the given ordinals.
    *
-   * <p>For example, if this relational expression is a TableAccessRel to
+   * <p>For example, if this relational expression is a LogicalTableScan to
    * T(A, B, C, D) whose key is (A, B), then isKey([0, 1]) yields true,
    * and isKey([0]) and isKey([0, 2]) yields false.</p>
    *

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/RelShuttle.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/RelShuttle.java b/core/src/main/java/org/apache/calcite/rel/RelShuttle.java
index c103879..c1e1915 100644
--- a/core/src/main/java/org/apache/calcite/rel/RelShuttle.java
+++ b/core/src/main/java/org/apache/calcite/rel/RelShuttle.java
@@ -14,35 +14,48 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
+package org.apache.calcite.rel;
+
+import org.apache.calcite.rel.core.Correlator;
+import org.apache.calcite.rel.core.Sort;
+import org.apache.calcite.rel.core.TableFunctionScan;
+import org.apache.calcite.rel.core.TableScan;
+import org.apache.calcite.rel.logical.LogicalAggregate;
+import org.apache.calcite.rel.logical.LogicalFilter;
+import org.apache.calcite.rel.logical.LogicalIntersect;
+import org.apache.calcite.rel.logical.LogicalJoin;
+import org.apache.calcite.rel.logical.LogicalMinus;
+import org.apache.calcite.rel.logical.LogicalProject;
+import org.apache.calcite.rel.logical.LogicalUnion;
+import org.apache.calcite.rel.logical.LogicalValues;
 
 /**
  * Visitor that has methods for the common logical relational expressions.
  */
 public interface RelShuttle {
-  RelNode visit(TableAccessRelBase scan);
+  RelNode visit(TableScan scan);
 
-  RelNode visit(TableFunctionRelBase scan);
+  RelNode visit(TableFunctionScan scan);
 
-  RelNode visit(ValuesRel values);
+  RelNode visit(LogicalValues values);
 
-  RelNode visit(FilterRel filter);
+  RelNode visit(LogicalFilter filter);
 
-  RelNode visit(ProjectRel project);
+  RelNode visit(LogicalProject project);
 
-  RelNode visit(JoinRel join);
+  RelNode visit(LogicalJoin join);
 
-  RelNode visit(CorrelatorRel correlator);
+  RelNode visit(Correlator correlator);
 
-  RelNode visit(UnionRel union);
+  RelNode visit(LogicalUnion union);
 
-  RelNode visit(IntersectRel intersect);
+  RelNode visit(LogicalIntersect intersect);
 
-  RelNode visit(MinusRel minus);
+  RelNode visit(LogicalMinus minus);
 
-  RelNode visit(AggregateRel aggregate);
+  RelNode visit(LogicalAggregate aggregate);
 
-  RelNode visit(SortRel sort);
+  RelNode visit(Sort sort);
 
   RelNode visit(RelNode other);
 }

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/RelShuttleImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/RelShuttleImpl.java b/core/src/main/java/org/apache/calcite/rel/RelShuttleImpl.java
index b3d3502..6b7cb96 100644
--- a/core/src/main/java/org/apache/calcite/rel/RelShuttleImpl.java
+++ b/core/src/main/java/org/apache/calcite/rel/RelShuttleImpl.java
@@ -14,19 +14,30 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
+package org.apache.calcite.rel;
+
+import org.apache.calcite.linq4j.Ord;
+import org.apache.calcite.rel.core.Correlator;
+import org.apache.calcite.rel.core.Sort;
+import org.apache.calcite.rel.core.TableFunctionScan;
+import org.apache.calcite.rel.core.TableScan;
+import org.apache.calcite.rel.logical.LogicalAggregate;
+import org.apache.calcite.rel.logical.LogicalFilter;
+import org.apache.calcite.rel.logical.LogicalIntersect;
+import org.apache.calcite.rel.logical.LogicalJoin;
+import org.apache.calcite.rel.logical.LogicalMinus;
+import org.apache.calcite.rel.logical.LogicalProject;
+import org.apache.calcite.rel.logical.LogicalUnion;
+import org.apache.calcite.rel.logical.LogicalValues;
+import org.apache.calcite.util.Stacks;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import org.eigenbase.util.Stacks;
-
-import net.hydromatic.linq4j.Ord;
-
 /**
  * Basic implementation of {@link RelShuttle} that calls
  * {@link RelNode#accept(RelShuttle)} on each child, and
- * {@link RelNode#copy(org.eigenbase.relopt.RelTraitSet, java.util.List)} if
+ * {@link RelNode#copy(org.apache.calcite.plan.RelTraitSet, java.util.List)} if
  * any children change.
  */
 public class RelShuttleImpl implements RelShuttle {
@@ -58,51 +69,51 @@ public class RelShuttleImpl implements RelShuttle {
     return rel;
   }
 
-  public RelNode visit(AggregateRel aggregate) {
-    return visitChild(aggregate, 0, aggregate.getChild());
+  public RelNode visit(LogicalAggregate aggregate) {
+    return visitChild(aggregate, 0, aggregate.getInput());
   }
 
-  public RelNode visit(TableAccessRelBase scan) {
+  public RelNode visit(TableScan scan) {
     return scan;
   }
 
-  public RelNode visit(TableFunctionRelBase scan) {
+  public RelNode visit(TableFunctionScan scan) {
     return visitChildren(scan);
   }
 
-  public RelNode visit(ValuesRel values) {
+  public RelNode visit(LogicalValues values) {
     return values;
   }
 
-  public RelNode visit(FilterRel filter) {
-    return visitChild(filter, 0, filter.getChild());
+  public RelNode visit(LogicalFilter filter) {
+    return visitChild(filter, 0, filter.getInput());
   }
 
-  public RelNode visit(ProjectRel project) {
-    return visitChild(project, 0, project.getChild());
+  public RelNode visit(LogicalProject project) {
+    return visitChild(project, 0, project.getInput());
   }
 
-  public RelNode visit(JoinRel join) {
+  public RelNode visit(LogicalJoin join) {
     return visitChildren(join);
   }
 
-  public RelNode visit(CorrelatorRel correlator) {
+  public RelNode visit(Correlator correlator) {
     return visitChildren(correlator);
   }
 
-  public RelNode visit(UnionRel union) {
+  public RelNode visit(LogicalUnion union) {
     return visitChildren(union);
   }
 
-  public RelNode visit(IntersectRel intersect) {
+  public RelNode visit(LogicalIntersect intersect) {
     return visitChildren(intersect);
   }
 
-  public RelNode visit(MinusRel minus) {
+  public RelNode visit(LogicalMinus minus) {
     return visitChildren(minus);
   }
 
-  public RelNode visit(SortRel sort) {
+  public RelNode visit(Sort sort) {
     return visitChildren(sort);
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/RelVisitor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/RelVisitor.java b/core/src/main/java/org/apache/calcite/rel/RelVisitor.java
index 82186db..1a77690 100644
--- a/core/src/main/java/org/apache/calcite/rel/RelVisitor.java
+++ b/core/src/main/java/org/apache/calcite/rel/RelVisitor.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
+package org.apache.calcite.rel;
 
 /**
- * A <code>RelVisitor</code> is a Visitor role in the {@link
- * org.eigenbase.util.Glossary#VISITOR_PATTERN visitor pattern} and visits {@link
- * RelNode} objects as the role of Element. Other components in the pattern:
- * {@link RelNode#childrenAccept(RelVisitor)}.
+ * A <code>RelVisitor</code> is a Visitor role in the
+ * {@link org.apache.calcite.util.Glossary#VISITOR_PATTERN visitor pattern} and
+ * visits {@link RelNode} objects as the role of Element. Other components in
+ * the pattern: {@link RelNode#childrenAccept(RelVisitor)}.
  */
 public abstract class RelVisitor {
   //~ Instance fields --------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/RelWriter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/RelWriter.java b/core/src/main/java/org/apache/calcite/rel/RelWriter.java
index bde35d6..fa63bc2 100644
--- a/core/src/main/java/org/apache/calcite/rel/RelWriter.java
+++ b/core/src/main/java/org/apache/calcite/rel/RelWriter.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
+package org.apache.calcite.rel;
 
-import java.util.List;
+import org.apache.calcite.sql.SqlExplainLevel;
+import org.apache.calcite.util.Pair;
 
-import org.eigenbase.sql.SqlExplainLevel;
-import org.eigenbase.util.Pair;
+import java.util.List;
 
 /**
  * Callback for an expression to dump itself to.
@@ -32,8 +32,9 @@ public interface RelWriter {
    * Prints an explanation of a node, with a list of (term, value) pairs.
    *
    * <p>The term-value pairs are generally gathered by calling
-   * {@link RelNode#explain(RelWriter)}. Each sub-class of
-   * {@link RelNode} calls {@link #input(String, org.eigenbase.rel.RelNode)}
+   * {@link org.apache.calcite.rel.RelNode#explain(RelWriter)}.
+   * Each sub-class of {@link org.apache.calcite.rel.RelNode}
+   * calls {@link #input(String, org.apache.calcite.rel.RelNode)}
    * and {@link #item(String, Object)} to declare term-value pairs.</p>
    *
    * @param rel       Relational expression

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/SingleRel.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/SingleRel.java b/core/src/main/java/org/apache/calcite/rel/SingleRel.java
index c7d6f53..27e0bf6 100644
--- a/core/src/main/java/org/apache/calcite/rel/SingleRel.java
+++ b/core/src/main/java/org/apache/calcite/rel/SingleRel.java
@@ -14,75 +14,78 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
+package org.apache.calcite.rel;
 
-import java.util.Collections;
-import java.util.List;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.rel.type.RelDataType;
+
+import com.google.common.collect.ImmutableList;
 
-import org.eigenbase.rel.metadata.*;
-import org.eigenbase.relopt.*;
-import org.eigenbase.reltype.*;
+import java.util.List;
 
 /**
- * A <code>SingleRel</code> is a base class single-input relational expressions.
+ * Abstract base class for relational expressions with a single input.
+ *
+ * <p>It is not required that single-input relational expressions use this
+ * class as a base class. However, default implementations of methods make life
+ * easier.
  */
 public abstract class SingleRel extends AbstractRelNode {
   //~ Instance fields --------------------------------------------------------
 
-  private RelNode child;
+  private RelNode input;
 
   //~ Constructors -----------------------------------------------------------
 
   /**
    * Creates a <code>SingleRel</code>.
    *
-   * @param cluster {@link RelOptCluster}  this relational expression belongs
-   *                to
-   * @param child   input relational expression
+   * @param cluster Cluster this relational expression belongs to
+   * @param input   Input relational expression
    */
   protected SingleRel(
       RelOptCluster cluster,
       RelTraitSet traits,
-      RelNode child) {
+      RelNode input) {
     super(cluster, traits);
-    this.child = child;
+    this.input = input;
   }
 
   //~ Methods ----------------------------------------------------------------
 
-  public RelNode getChild() {
-    return child;
+  public RelNode getInput() {
+    return input;
   }
 
-  // implement RelNode
-  public List<RelNode> getInputs() {
-    return Collections.singletonList(child);
+  @Override public List<RelNode> getInputs() {
+    return ImmutableList.of(input);
   }
 
-  public double getRows() {
-    // Not necessarily correct, but a better default than Rel's 1.0
-    return RelMetadataQuery.getRowCount(child);
+  @Override public double getRows() {
+    // Not necessarily correct, but a better default than AbstractRelNode's 1.0
+    return RelMetadataQuery.getRowCount(input);
   }
 
-  public void childrenAccept(RelVisitor visitor) {
-    visitor.visit(child, 0, this);
+  @Override public void childrenAccept(RelVisitor visitor) {
+    visitor.visit(input, 0, this);
   }
 
   public RelWriter explainTerms(RelWriter pw) {
     return super.explainTerms(pw)
-        .input("child", getChild());
+        .input("input", getInput());
   }
 
-  // override Rel
-  public void replaceInput(
+  @Override public void replaceInput(
       int ordinalInParent,
       RelNode rel) {
     assert ordinalInParent == 0;
-    this.child = rel;
+    this.input = rel;
   }
 
   protected RelDataType deriveRowType() {
-    return child.getRowType();
+    return input.getRowType();
   }
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/convert/Converter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/convert/Converter.java b/core/src/main/java/org/apache/calcite/rel/convert/Converter.java
index ec078de..b84c30a 100644
--- a/core/src/main/java/org/apache/calcite/rel/convert/Converter.java
+++ b/core/src/main/java/org/apache/calcite/rel/convert/Converter.java
@@ -14,16 +14,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel.convert;
+package org.apache.calcite.rel.convert;
 
-import org.eigenbase.rel.*;
-import org.eigenbase.relopt.*;
+import org.apache.calcite.plan.RelTraitDef;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
 
 /**
- * A relational expression implements the interface <code>ConverterRel</code> to
- * indicate that it converts a physical attribute, or {@link
- * org.eigenbase.relopt.RelTrait trait}, of a relational expression from one
- * value to another.
+ * A relational expression implements the interface <code>Converter</code> to
+ * indicate that it converts a physical attribute, or
+ * {@link org.apache.calcite.plan.RelTrait trait}, of a relational expression
+ * from one value to another.
  *
  * <p>Sometimes this conversion is expensive; for example, to convert a
  * non-distinct to a distinct object stream, we have to clone every object in
@@ -39,11 +40,11 @@ import org.eigenbase.relopt.*;
  * <p>In principle one could devise converters which change multiple traits
  * simultaneously (say change the sort-order and the physical location of a
  * relational expression). In which case, the method {@link #getInputTraits()}
- * would return a {@link org.eigenbase.relopt.RelTraitSet}. But for simplicity,
- * this class only allows one trait to be converted at a time; all other traits
- * are assumed to be preserved.</p>
+ * would return a {@link org.apache.calcite.plan.RelTraitSet}. But for
+ * simplicity, this class only allows one trait to be converted at a
+ * time; all other traits are assumed to be preserved.</p>
  */
-public interface ConverterRel extends RelNode {
+public interface Converter extends RelNode {
   //~ Methods ----------------------------------------------------------------
 
   /**
@@ -70,7 +71,7 @@ public interface ConverterRel extends RelNode {
    *
    * @return child relational expression
    */
-  RelNode getChild();
+  RelNode getInput();
 }
 
-// End ConverterRel.java
+// End Converter.java

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/convert/ConverterImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/convert/ConverterImpl.java b/core/src/main/java/org/apache/calcite/rel/convert/ConverterImpl.java
index 6859cc2..15d1375 100644
--- a/core/src/main/java/org/apache/calcite/rel/convert/ConverterImpl.java
+++ b/core/src/main/java/org/apache/calcite/rel/convert/ConverterImpl.java
@@ -14,18 +14,23 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel.convert;
+package org.apache.calcite.rel.convert;
 
-import org.eigenbase.rel.*;
-import org.eigenbase.rel.metadata.*;
-import org.eigenbase.relopt.*;
-import org.eigenbase.util.*;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitDef;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.SingleRel;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.util.Util;
 
 /**
- * Abstract implementation of {@link org.eigenbase.rel.convert.ConverterRel}.
+ * Abstract implementation of {@link Converter}.
  */
-public abstract class ConverterRelImpl extends SingleRel
-    implements ConverterRel {
+public abstract class ConverterImpl extends SingleRel
+    implements Converter {
   //~ Instance fields --------------------------------------------------------
 
   protected RelTraitSet inTraits;
@@ -34,14 +39,14 @@ public abstract class ConverterRelImpl extends SingleRel
   //~ Constructors -----------------------------------------------------------
 
   /**
-   * Creates a ConverterRelImpl.
+   * Creates a ConverterImpl.
    *
    * @param cluster  planner's cluster
    * @param traitDef the RelTraitDef this converter converts
    * @param traits   the output traits of this converter
    * @param child    child rel (provides input traits)
    */
-  protected ConverterRelImpl(
+  protected ConverterImpl(
       RelOptCluster cluster,
       RelTraitDef traitDef,
       RelTraitSet traits,
@@ -55,7 +60,7 @@ public abstract class ConverterRelImpl extends SingleRel
 
   // implement RelNode
   public RelOptCost computeSelfCost(RelOptPlanner planner) {
-    double dRows = RelMetadataQuery.getRowCount(getChild());
+    double dRows = RelMetadataQuery.getRowCount(getInput());
     double dCpu = dRows;
     double dIo = 0;
     return planner.getCostFactory().makeCost(dRows, dCpu, dIo);
@@ -68,7 +73,7 @@ public abstract class ConverterRelImpl extends SingleRel
   }
 
   public boolean isDistinct() {
-    return getChild().isDistinct();
+    return getInput().isDistinct();
   }
 
   public RelTraitSet getInputTraits() {
@@ -81,4 +86,4 @@ public abstract class ConverterRelImpl extends SingleRel
 
 }
 
-// End ConverterRelImpl.java
+// End ConverterImpl.java

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/convert/ConverterRule.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/convert/ConverterRule.java b/core/src/main/java/org/apache/calcite/rel/convert/ConverterRule.java
index 2724c52..55e243e 100644
--- a/core/src/main/java/org/apache/calcite/rel/convert/ConverterRule.java
+++ b/core/src/main/java/org/apache/calcite/rel/convert/ConverterRule.java
@@ -14,10 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel.convert;
+package org.apache.calcite.rel.convert;
 
-import org.eigenbase.rel.*;
-import org.eigenbase.relopt.*;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelOptRuleOperand;
+import org.apache.calcite.plan.RelTrait;
+import org.apache.calcite.plan.RelTraitDef;
+import org.apache.calcite.rel.RelNode;
 
 import com.google.common.base.Predicates;
 
@@ -117,9 +122,9 @@ public abstract class ConverterRule extends RelOptRule {
       // Don't apply converters to converters that operate
       // on the same RelTraitDef -- otherwise we get
       // an n^2 effect.
-      if (rel instanceof ConverterRel) {
+      if (rel instanceof Converter) {
         if (((ConverterRule) getRule()).getTraitDef()
-            == ((ConverterRel) rel).getTraitDef()) {
+            == ((Converter) rel).getTraitDef()) {
           return false;
         }
       }

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/convert/NoneConverter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/convert/NoneConverter.java b/core/src/main/java/org/apache/calcite/rel/convert/NoneConverter.java
index 102d68d..dc1fa08 100644
--- a/core/src/main/java/org/apache/calcite/rel/convert/NoneConverter.java
+++ b/core/src/main/java/org/apache/calcite/rel/convert/NoneConverter.java
@@ -14,22 +14,26 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel.convert;
+package org.apache.calcite.rel.convert;
 
-import java.util.List;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.ConventionTraitDef;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.util.Util;
 
-import org.eigenbase.rel.*;
-import org.eigenbase.relopt.*;
-import org.eigenbase.util.*;
+import java.util.List;
 
 /**
  * <code>NoneConverter</code> converts a plan from <code>inConvention</code> to
- * {@link org.eigenbase.relopt.Convention#NONE}.
+ * {@link org.apache.calcite.plan.Convention#NONE}.
  */
-public class NoneConverterRel extends ConverterRelImpl {
+public class NoneConverter extends ConverterImpl {
   //~ Constructors -----------------------------------------------------------
 
-  public NoneConverterRel(
+  public NoneConverter(
       RelOptCluster cluster,
       RelNode child) {
     super(
@@ -44,7 +48,7 @@ public class NoneConverterRel extends ConverterRelImpl {
 
   public RelNode copy(RelTraitSet traitSet, List<RelNode> inputs) {
     assert traitSet.comprises(Convention.NONE);
-    return new NoneConverterRel(
+    return new NoneConverter(
         getCluster(),
         sole(inputs));
   }
@@ -55,4 +59,4 @@ public class NoneConverterRel extends ConverterRelImpl {
   }
 }
 
-// End NoneConverterRel.java
+// End NoneConverter.java

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/convert/TraitMatchingRule.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/convert/TraitMatchingRule.java b/core/src/main/java/org/apache/calcite/rel/convert/TraitMatchingRule.java
index 12a6efc..63f621c 100644
--- a/core/src/main/java/org/apache/calcite/rel/convert/TraitMatchingRule.java
+++ b/core/src/main/java/org/apache/calcite/rel/convert/TraitMatchingRule.java
@@ -14,15 +14,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel.convert;
+package org.apache.calcite.rel.convert;
 
-import org.eigenbase.rel.*;
-import org.eigenbase.relopt.*;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptRuleCall;
+import org.apache.calcite.plan.RelOptRuleOperandChildPolicy;
+import org.apache.calcite.rel.RelNode;
 
 /**
  * TraitMatchingRule adapts a converter rule, restricting it to fire only when
  * its input already matches the expected output trait. This can be used with
- * {@link org.eigenbase.relopt.hep.HepPlanner} in cases where alternate
+ * {@link org.apache.calcite.plan.hep.HepPlanner} in cases where alternate
  * implementations are available and it is desirable to minimize converters.
  */
 public class TraitMatchingRule extends RelOptRule {

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/convert/package-info.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/convert/package-info.java b/core/src/main/java/org/apache/calcite/rel/convert/package-info.java
index 5b813a2..cf1032c 100644
--- a/core/src/main/java/org/apache/calcite/rel/convert/package-info.java
+++ b/core/src/main/java/org/apache/calcite/rel/convert/package-info.java
@@ -19,6 +19,6 @@
  * Defines relational expressions and rules for converting between calling
  * conventions.
  */
-package org.eigenbase.rel.convert;
+package org.apache.calcite.rel.convert;
 
 // End package-info.java

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/core/Aggregate.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/core/Aggregate.java b/core/src/main/java/org/apache/calcite/rel/core/Aggregate.java
index 6de37b3..920ef46 100644
--- a/core/src/main/java/org/apache/calcite/rel/core/Aggregate.java
+++ b/core/src/main/java/org/apache/calcite/rel/core/Aggregate.java
@@ -14,30 +14,58 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
-
-import java.util.*;
-
-import org.eigenbase.rel.metadata.*;
-import org.eigenbase.relopt.*;
-import org.eigenbase.reltype.*;
-import org.eigenbase.resource.Resources;
-import org.eigenbase.sql.*;
-import org.eigenbase.sql.parser.*;
-import org.eigenbase.sql.validate.*;
-import org.eigenbase.util.*;
-
-import net.hydromatic.linq4j.Ord;
-
-import net.hydromatic.optiq.util.BitSets;
+package org.apache.calcite.rel.core;
+
+import org.apache.calcite.linq4j.Ord;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.RelInput;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelWriter;
+import org.apache.calcite.rel.SingleRel;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.rel.type.RelDataTypeFieldImpl;
+import org.apache.calcite.runtime.CalciteException;
+import org.apache.calcite.runtime.Resources;
+import org.apache.calcite.sql.SqlAggFunction;
+import org.apache.calcite.sql.SqlOperatorBinding;
+import org.apache.calcite.sql.SqlUtil;
+import org.apache.calcite.sql.parser.SqlParserPos;
+import org.apache.calcite.sql.validate.SqlValidatorException;
+import org.apache.calcite.util.BitSets;
+import org.apache.calcite.util.CompositeList;
+import org.apache.calcite.util.IntList;
+import org.apache.calcite.util.Util;
 
 import com.google.common.collect.ImmutableList;
 
+import java.util.AbstractList;
+import java.util.BitSet;
+import java.util.List;
+
 /**
- * <code>AggregateRelBase</code> is an abstract base class for implementations
- * of {@link AggregateRel}.
+ * Relational operator that eliminates
+ * duplicates and computes totals.
+ *
+ * <p>It corresponds to the {@code GROUP BY} operator in a SQL query
+ * statement, together with the aggregate functions in the {@code SELECT}
+ * clause.
+ *
+ * <p>Rules:
+ *
+ * <ul>
+ * <li>{@link org.apache.calcite.rel.rules.AggregateProjectPullUpConstantsRule}
+ * <li>{@link org.apache.calcite.rel.rules.AggregateExpandDistinctAggregatesRule}
+ * <li>{@link org.apache.calcite.rel.rules.AggregateReduceFunctionsRule}.
+ * </ul>
  */
-public abstract class AggregateRelBase extends SingleRel {
+public abstract class Aggregate extends SingleRel {
   //~ Instance fields --------------------------------------------------------
 
   protected final List<AggregateCall> aggCalls;
@@ -46,7 +74,7 @@ public abstract class AggregateRelBase extends SingleRel {
   //~ Constructors -----------------------------------------------------------
 
   /**
-   * Creates an AggregateRelBase.
+   * Creates an Aggregate.
    *
    * @param cluster  Cluster
    * @param traits   Traits
@@ -54,7 +82,7 @@ public abstract class AggregateRelBase extends SingleRel {
    * @param groupSet Bit set of grouping fields
    * @param aggCalls Collection of calls to aggregate functions
    */
-  protected AggregateRelBase(
+  protected Aggregate(
       RelOptCluster cluster,
       RelTraitSet traits,
       RelNode child,
@@ -75,9 +103,9 @@ public abstract class AggregateRelBase extends SingleRel {
   }
 
   /**
-   * Creates an AggregateRelBase by parsing serialized output.
+   * Creates an Aggregate by parsing serialized output.
    */
-  protected AggregateRelBase(RelInput input) {
+  protected Aggregate(RelInput input) {
     this(input.getCluster(), input.getTraitSet(), input.getInput(),
         input.getBitSet("group"), input.getAggregateCalls("aggs"));
   }
@@ -91,9 +119,9 @@ public abstract class AggregateRelBase extends SingleRel {
 
   /** Creates a copy of this aggregate.
    *
-   * @see #copy(org.eigenbase.relopt.RelTraitSet, java.util.List)
+   * @see #copy(org.apache.calcite.plan.RelTraitSet, java.util.List)
    */
-  public abstract AggregateRelBase copy(RelTraitSet traitSet, RelNode input,
+  public abstract Aggregate copy(RelTraitSet traitSet, RelNode input,
       BitSet groupSet, List<AggregateCall> aggCalls);
 
   // implement RelNode
@@ -166,7 +194,7 @@ public abstract class AggregateRelBase extends SingleRel {
 
   public RelOptCost computeSelfCost(RelOptPlanner planner) {
     // REVIEW jvs 24-Aug-2008:  This is bogus, but no more bogus
-    // than what's currently in JoinRelBase.
+    // than what's currently in Join.
     double rowCount = RelMetadataQuery.getRowCount(this);
     return planner.getCostFactory().makeCost(rowCount, 0, 0);
   }
@@ -174,12 +202,12 @@ public abstract class AggregateRelBase extends SingleRel {
   protected RelDataType deriveRowType() {
     return deriveRowType(
         getCluster().getTypeFactory(),
-        getChild().getRowType(),
+        getInput().getRowType(),
         groupSet,
         aggCalls);
   }
 
-  /** Computes the row type of an {@code AggregateRelBase} before it exists. */
+  /** Computes the row type of an {@code Aggregate} before it exists. */
   public static RelDataType deriveRowType(RelDataTypeFactory typeFactory,
       final RelDataType inputRowType, BitSet groupSet,
       final List<AggregateCall> aggCalls) {
@@ -256,9 +284,9 @@ public abstract class AggregateRelBase extends SingleRel {
   //~ Inner Classes ----------------------------------------------------------
 
   /**
-   * Implementation of the {@link SqlOperatorBinding} interface for an {@link
-   * AggregateCall aggregate call} applied to a set of operands in the context
-   * of a {@link AggregateRel}.
+   * Implementation of the {@link SqlOperatorBinding} interface for an
+   * {@link AggregateCall aggregate call} applied to a set of operands in the
+   * context of a {@link org.apache.calcite.rel.logical.LogicalAggregate}.
    */
   public static class AggCallBinding extends SqlOperatorBinding {
     private final List<RelDataType> operands;
@@ -268,7 +296,7 @@ public abstract class AggregateRelBase extends SingleRel {
      * Creates an AggCallBinding
      *
      * @param typeFactory  Type factory
-     * @param aggFunction  Aggregation function
+     * @param aggFunction  Aggregate function
      * @param operands     Data types of operands
      * @param groupCount   Number of columns in the GROUP BY clause
      */
@@ -284,7 +312,7 @@ public abstract class AggregateRelBase extends SingleRel {
           : "operands of aggregate call should not be null";
       assert groupCount >= 0
           : "number of group by columns should be greater than zero in "
-            + "aggregate call. Got " + groupCount;
+          + "aggregate call. Got " + groupCount;
     }
 
     @Override public int getGroupCount() {
@@ -299,11 +327,11 @@ public abstract class AggregateRelBase extends SingleRel {
       return operands.get(ordinal);
     }
 
-    public EigenbaseException newError(
+    public CalciteException newError(
         Resources.ExInst<SqlValidatorException> e) {
       return SqlUtil.newContextException(SqlParserPos.ZERO, e);
     }
   }
 }
 
-// End AggregateRelBase.java
+// End Aggregate.java

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/core/AggregateCall.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/core/AggregateCall.java b/core/src/main/java/org/apache/calcite/rel/core/AggregateCall.java
index 651c2f3..fa1620c 100644
--- a/core/src/main/java/org/apache/calcite/rel/core/AggregateCall.java
+++ b/core/src/main/java/org/apache/calcite/rel/core/AggregateCall.java
@@ -14,24 +14,27 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
+package org.apache.calcite.rel.core;
 
-import java.util.*;
-
-import org.eigenbase.reltype.*;
-import org.eigenbase.sql.*;
-import org.eigenbase.sql.type.SqlTypeUtil;
-import org.eigenbase.util.mapping.Mappings;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.sql.SqlAggFunction;
+import org.apache.calcite.sql.type.SqlTypeUtil;
+import org.apache.calcite.util.mapping.Mappings;
 
 import com.google.common.collect.ImmutableList;
 
+import java.util.List;
+
 /**
- * Call to an aggregation function within an {@link AggregateRel}.
+ * Call to an aggFunction function within an
+ * {@link org.apache.calcite.rel.logical.LogicalAggregate}.
  */
 public class AggregateCall {
   //~ Instance fields --------------------------------------------------------
 
-  private final Aggregation aggregation;
+  private final SqlAggFunction aggFunction;
 
   private final boolean distinct;
   public final RelDataType type;
@@ -46,24 +49,24 @@ public class AggregateCall {
   /**
    * Creates an AggregateCall.
    *
-   * @param aggregation Aggregation
+   * @param aggFunction Aggregate function
    * @param distinct    Whether distinct
    * @param argList     List of ordinals of arguments
    * @param type        Result type
    * @param name        Name (may be null)
    */
   public AggregateCall(
-      Aggregation aggregation,
+      SqlAggFunction aggFunction,
       boolean distinct,
       List<Integer> argList,
       RelDataType type,
       String name) {
     this.type = type;
     this.name = name;
-    assert aggregation != null;
+    assert aggFunction != null;
     assert argList != null;
     assert type != null;
-    this.aggregation = aggregation;
+    this.aggFunction = aggFunction;
 
     this.argList = ImmutableList.copyOf(argList);
     this.distinct = distinct;
@@ -80,8 +83,8 @@ public class AggregateCall {
           input.getCluster().getTypeFactory();
       final List<RelDataType> types =
           SqlTypeUtil.projectTypes(input.getRowType(), argList);
-      final AggregateRelBase.AggCallBinding callBinding =
-          new AggregateRelBase.AggCallBinding(typeFactory, aggFunction, types,
+      final Aggregate.AggCallBinding callBinding =
+          new Aggregate.AggCallBinding(typeFactory, aggFunction, types,
               groupCount);
       type = aggFunction.inferReturnType(callBinding);
     }
@@ -99,12 +102,12 @@ public class AggregateCall {
   }
 
   /**
-   * Returns the Aggregation.
+   * Returns the aggregate function.
    *
-   * @return aggregation
+   * @return aggregate function
    */
-  public final Aggregation getAggregation() {
-    return aggregation;
+  public final SqlAggFunction getAggregation() {
+    return aggFunction;
   }
 
   /**
@@ -143,11 +146,11 @@ public class AggregateCall {
    */
   public AggregateCall rename(String name) {
     // no need to copy argList - already immutable
-    return new AggregateCall(aggregation, distinct, argList, type, name);
+    return new AggregateCall(aggFunction, distinct, argList, type, name);
   }
 
   public String toString() {
-    StringBuilder buf = new StringBuilder(aggregation.getName());
+    StringBuilder buf = new StringBuilder(aggFunction.getName());
     buf.append("(");
     if (distinct) {
       buf.append((argList.size() == 0) ? "DISTINCT" : "DISTINCT ");
@@ -170,27 +173,28 @@ public class AggregateCall {
       return false;
     }
     AggregateCall other = (AggregateCall) o;
-    return aggregation.equals(other.aggregation)
+    return aggFunction.equals(other.aggFunction)
         && (distinct == other.distinct)
         && argList.equals(other.argList);
   }
 
   // override Object
   public int hashCode() {
-    return aggregation.hashCode() + argList.hashCode();
+    return aggFunction.hashCode() + argList.hashCode();
   }
 
   /**
-   * Creates a binding of this call in the context of an {@link AggregateRel},
+   * Creates a binding of this call in the context of an
+   * {@link org.apache.calcite.rel.logical.LogicalAggregate},
    * which can then be used to infer the return type.
    */
-  public AggregateRelBase.AggCallBinding createBinding(
-      AggregateRelBase aggregateRelBase) {
-    final RelDataType rowType = aggregateRelBase.getChild().getRowType();
+  public Aggregate.AggCallBinding createBinding(
+      Aggregate aggregateRelBase) {
+    final RelDataType rowType = aggregateRelBase.getInput().getRowType();
 
-    return new AggregateRelBase.AggCallBinding(
+    return new Aggregate.AggCallBinding(
         aggregateRelBase.getCluster().getTypeFactory(),
-        (SqlAggFunction) aggregation,
+        (SqlAggFunction) aggFunction,
         SqlTypeUtil.projectTypes(rowType, argList),
         aggregateRelBase.getGroupCount());
   }
@@ -202,22 +206,22 @@ public class AggregateCall {
    * @return AggregateCall that suits new inputs and GROUP BY columns
    */
   public AggregateCall copy(List<Integer> args) {
-    return new AggregateCall(aggregation, distinct, args, type, name);
+    return new AggregateCall(aggFunction, distinct, args, type, name);
   }
 
   /**
    * Creates equivalent AggregateCall that is adapted to a new input types
    * and/or number of columns in GROUP BY.
    *
-   * @param input relation that will be used as a child of AggregateRel
+   * @param input relation that will be used as a child of aggregate
    * @param aggArgs argument indices of the new call in the input
-   * @param oldGroupKeyCount number of columns in GROUP BY of old AggregateRel
-   * @param newGroupKeyCount number of columns in GROUP BY of new AggregateRel
+   * @param oldGroupKeyCount number of columns in GROUP BY of old aggregate
+   * @param newGroupKeyCount number of columns in GROUP BY of new aggregate
    * @return AggregateCall that suits new inputs and GROUP BY columns
    */
   public AggregateCall adaptTo(RelNode input, List<Integer> aggArgs,
       int oldGroupKeyCount, int newGroupKeyCount) {
-    final SqlAggFunction sqlAgg = (SqlAggFunction) aggregation;
+    final SqlAggFunction sqlAgg = (SqlAggFunction) aggFunction;
     // The return type of aggregate call need to be recomputed.
     // Since it might depend on the number of columns in GROUP BY.
     final RelDataType newType =

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/core/Calc.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/core/Calc.java b/core/src/main/java/org/apache/calcite/rel/core/Calc.java
index cfa1e3d..803c783 100644
--- a/core/src/main/java/org/apache/calcite/rel/core/Calc.java
+++ b/core/src/main/java/org/apache/calcite/rel/core/Calc.java
@@ -14,22 +14,32 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
-
-import java.util.*;
-
-import org.eigenbase.rel.metadata.*;
-import org.eigenbase.relopt.*;
-import org.eigenbase.reltype.*;
-import org.eigenbase.rex.*;
+package org.apache.calcite.rel.core;
+
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.RelCollation;
+import org.apache.calcite.rel.RelCollationImpl;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelWriter;
+import org.apache.calcite.rel.SingleRel;
+import org.apache.calcite.rel.logical.LogicalFilter;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rex.RexProgram;
 
 import com.google.common.collect.ImmutableList;
 
+import java.util.List;
+
 /**
- * <code>CalcRelBase</code> is an abstract base class for implementations of
- * {@link CalcRel}.
+ * <code>Calc</code> is an abstract base class for implementations of
+ * {@link org.apache.calcite.rel.logical.LogicalCalc}.
  */
-public abstract class CalcRelBase extends SingleRel {
+public abstract class Calc extends SingleRel {
   //~ Instance fields --------------------------------------------------------
 
   protected final RexProgram program;
@@ -37,7 +47,7 @@ public abstract class CalcRelBase extends SingleRel {
 
   //~ Constructors -----------------------------------------------------------
 
-  protected CalcRelBase(
+  protected Calc(
       RelOptCluster cluster,
       RelTraitSet traits,
       RelNode child,
@@ -53,15 +63,12 @@ public abstract class CalcRelBase extends SingleRel {
 
   //~ Methods ----------------------------------------------------------------
 
-  @Override
-  public final CalcRelBase copy(RelTraitSet traitSet, List<RelNode> inputs) {
+  @Override public final Calc copy(RelTraitSet traitSet, List<RelNode> inputs) {
     return copy(traitSet, sole(inputs), program, collationList);
   }
 
-  /**
-   * Creates a copy of this {@code CalcRelBase}.
-   */
-  public abstract CalcRelBase copy(
+  /** Creates a copy of this {@code Calc}. */
+  public abstract Calc copy(
       RelTraitSet traitSet,
       RelNode child,
       RexProgram program,
@@ -72,7 +79,7 @@ public abstract class CalcRelBase extends SingleRel {
         "program's input type",
         program.getInputRowType(),
         "child's output type",
-        getChild().getRowType(),
+        getInput().getRowType(),
         fail)) {
       return false;
     }
@@ -104,8 +111,8 @@ public abstract class CalcRelBase extends SingleRel {
   }
 
   public double getRows() {
-    return FilterRel.estimateFilteredRows(
-        getChild(),
+    return LogicalFilter.estimateFilteredRows(
+        getInput(),
         program);
   }
 
@@ -116,7 +123,7 @@ public abstract class CalcRelBase extends SingleRel {
   public RelOptCost computeSelfCost(RelOptPlanner planner) {
     double dRows = RelMetadataQuery.getRowCount(this);
     double dCpu =
-        RelMetadataQuery.getRowCount(getChild())
+        RelMetadataQuery.getRowCount(getInput())
             * program.getExprCount();
     double dIo = 0;
     return planner.getCostFactory().makeCost(dRows, dCpu, dIo);
@@ -127,4 +134,4 @@ public abstract class CalcRelBase extends SingleRel {
   }
 }
 
-// End CalcRelBase.java
+// End Calc.java

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/core/Collect.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/core/Collect.java b/core/src/main/java/org/apache/calcite/rel/core/Collect.java
index 0dc9f80..522672a 100644
--- a/core/src/main/java/org/apache/calcite/rel/core/Collect.java
+++ b/core/src/main/java/org/apache/calcite/rel/core/Collect.java
@@ -14,13 +14,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
+package org.apache.calcite.rel.core;
 
-import java.util.List;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.RelInput;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelWriter;
+import org.apache.calcite.rel.SingleRel;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.sql.type.SqlTypeUtil;
 
-import org.eigenbase.relopt.*;
-import org.eigenbase.reltype.*;
-import org.eigenbase.sql.type.*;
+import java.util.List;
 
 /**
  * A relational expression that collapses multiple rows into one.
@@ -29,12 +36,12 @@ import org.eigenbase.sql.type.*;
  *
  * <ul>
  * <li>{@code net.sf.farrago.fennel.rel.FarragoMultisetSplitterRule}
- * creates a CollectRel from a call to
- * {@link org.eigenbase.sql.fun.SqlMultisetValueConstructor} or to
- * {@link org.eigenbase.sql.fun.SqlMultisetQueryConstructor}.</li>
+ * creates a Collect from a call to
+ * {@link org.apache.calcite.sql.fun.SqlMultisetValueConstructor} or to
+ * {@link org.apache.calcite.sql.fun.SqlMultisetQueryConstructor}.</li>
  * </ul>
  */
-public class CollectRel extends SingleRel {
+public class Collect extends SingleRel {
   //~ Instance fields --------------------------------------------------------
 
   protected final String fieldName;
@@ -42,13 +49,13 @@ public class CollectRel extends SingleRel {
   //~ Constructors -----------------------------------------------------------
 
   /**
-   * Creates a CollectRel.
+   * Creates a Collect.
    *
    * @param cluster   Cluster
    * @param child     Child relational expression
    * @param fieldName Name of the sole output field
    */
-  public CollectRel(
+  public Collect(
       RelOptCluster cluster,
       RelTraitSet traitSet,
       RelNode child,
@@ -58,27 +65,26 @@ public class CollectRel extends SingleRel {
   }
 
   /**
-   * Creates a CollectRel by parsing serialized output.
+   * Creates a Collect by parsing serialized output.
    */
-  public CollectRel(RelInput input) {
+  public Collect(RelInput input) {
     this(input.getCluster(), input.getTraitSet(), input.getInput(),
         input.getString("field"));
   }
 
   //~ Methods ----------------------------------------------------------------
 
-  @Override
-  public final RelNode copy(RelTraitSet traitSet, List<RelNode> inputs) {
+  @Override public final RelNode copy(RelTraitSet traitSet,
+      List<RelNode> inputs) {
     return copy(traitSet, sole(inputs));
   }
 
   public RelNode copy(RelTraitSet traitSet, RelNode input) {
     assert traitSet.containsIfApplicable(Convention.NONE);
-    return new CollectRel(getCluster(), traitSet, input, fieldName);
+    return new Collect(getCluster(), traitSet, input, fieldName);
   }
 
-  @Override
-  public RelWriter explainTerms(RelWriter pw) {
+  @Override public RelWriter explainTerms(RelWriter pw) {
     return super.explainTerms(pw)
         .item("field", fieldName);
   }
@@ -92,8 +98,7 @@ public class CollectRel extends SingleRel {
     return fieldName;
   }
 
-  @Override
-  protected RelDataType deriveRowType() {
+  @Override protected RelDataType deriveRowType() {
     return deriveCollectRowType(this, fieldName);
   }
 
@@ -107,7 +112,7 @@ public class CollectRel extends SingleRel {
   public static RelDataType deriveCollectRowType(
       SingleRel rel,
       String fieldName) {
-    RelDataType childType = rel.getChild().getRowType();
+    RelDataType childType = rel.getInput().getRowType();
     assert childType.isStruct();
     final RelDataTypeFactory typeFactory = rel.getCluster().getTypeFactory();
     RelDataType ret =
@@ -120,4 +125,4 @@ public class CollectRel extends SingleRel {
   }
 }
 
-// End CollectRel.java
+// End Collect.java

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/core/Correlation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/core/Correlation.java b/core/src/main/java/org/apache/calcite/rel/core/Correlation.java
index cd0de34..7aed265 100644
--- a/core/src/main/java/org/apache/calcite/rel/core/Correlation.java
+++ b/core/src/main/java/org/apache/calcite/rel/core/Correlation.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
+package org.apache.calcite.rel.core;
 
 /**
  * Describes the necessary parameters for an implementation in order to

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/core/Correlator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/core/Correlator.java b/core/src/main/java/org/apache/calcite/rel/core/Correlator.java
index eff6c38..a80d324 100644
--- a/core/src/main/java/org/apache/calcite/rel/core/Correlator.java
+++ b/core/src/main/java/org/apache/calcite/rel/core/Correlator.java
@@ -14,25 +14,37 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
+package org.apache.calcite.rel.core;
 
-import java.util.*;
-
-import org.eigenbase.relopt.*;
-import org.eigenbase.rex.*;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.RelInput;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelShuttle;
+import org.apache.calcite.rel.RelWriter;
+import org.apache.calcite.rex.RexNode;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
 /**
- * A <code>CorrelatorRel</code> behaves like a kind of {@link JoinRel}, but
- * works by setting variables in its environment and restarting its right-hand
- * input.
+ * A relational operator that performs nested-loop joins.
+ *
+ * <p>It behaves like a kind of {@link Join},
+ * but works by setting variables in its environment and restarting its
+ * right-hand input.
  *
- * <p>A CorrelatorRel is used to represent a correlated query. One
+ * <p>A Correlator is used to represent a correlated query. One
  * implementation strategy is to de-correlate the expression.
+ *
+ * @see Correlation
  */
-public final class CorrelatorRel extends JoinRelBase {
+public final class Correlator extends Join {
   //~ Instance fields --------------------------------------------------------
 
   protected final ImmutableList<Correlation> correlations;
@@ -40,7 +52,7 @@ public final class CorrelatorRel extends JoinRelBase {
   //~ Constructors -----------------------------------------------------------
 
   /**
-   * Creates a CorrelatorRel.
+   * Creates a Correlator.
    *
    * @param cluster      cluster this relational expression belongs to
    * @param left         left input relational expression
@@ -50,7 +62,7 @@ public final class CorrelatorRel extends JoinRelBase {
    *                     row arrives from the left input
    * @param joinType     join type
    */
-  public CorrelatorRel(
+  public Correlator(
       RelOptCluster cluster,
       RelNode left,
       RelNode right,
@@ -71,16 +83,16 @@ public final class CorrelatorRel extends JoinRelBase {
   }
 
   /**
-   * Creates a CorrelatorRel with no join condition.
+   * Creates a Correlator with no join condition.
    *
-   * @param cluster      cluster this relational expression belongs to
+   * @param cluster      Cluster that this relational expression belongs to
    * @param left         left input relational expression
    * @param right        right input relational expression
    * @param correlations set of expressions to set as variables each time a
    *                     row arrives from the left input
    * @param joinType     join type
    */
-  public CorrelatorRel(
+  public Correlator(
       RelOptCluster cluster,
       RelNode left,
       RelNode right,
@@ -96,9 +108,9 @@ public final class CorrelatorRel extends JoinRelBase {
   }
 
   /**
-   * Creates a CorrelatorRel by parsing serialized output.
+   * Creates a Correlator by parsing serialized output.
    */
-  public CorrelatorRel(RelInput input) {
+  public Correlator(RelInput input) {
     this(
         input.getCluster(), input.getInputs().get(0),
         input.getInputs().get(1), getCorrelations(input),
@@ -121,11 +133,10 @@ public final class CorrelatorRel extends JoinRelBase {
 
   //~ Methods ----------------------------------------------------------------
 
-  @Override
-  public CorrelatorRel copy(RelTraitSet traitSet, RexNode conditionExpr,
+  @Override public Correlator copy(RelTraitSet traitSet, RexNode conditionExpr,
       RelNode left, RelNode right, JoinRelType joinType, boolean semiJoinDone) {
     assert traitSet.containsIfApplicable(Convention.NONE);
-    return new CorrelatorRel(
+    return new Correlator(
         getCluster(),
         left,
         right,
@@ -152,4 +163,4 @@ public final class CorrelatorRel extends JoinRelBase {
   }
 }
 
-// End CorrelatorRel.java
+// End Correlator.java

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/core/Empty.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/core/Empty.java b/core/src/main/java/org/apache/calcite/rel/core/Empty.java
index cb14057..772b946 100644
--- a/core/src/main/java/org/apache/calcite/rel/core/Empty.java
+++ b/core/src/main/java/org/apache/calcite/rel/core/Empty.java
@@ -14,46 +14,50 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
+package org.apache.calcite.rel.core;
 
-import java.util.List;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.AbstractRelNode;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelWriter;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.sql.SqlExplainLevel;
 
-import org.eigenbase.relopt.*;
-import org.eigenbase.reltype.*;
-import org.eigenbase.sql.*;
+import java.util.List;
 
 /**
- * <code>EmptyRel</code> represents a relational expression with zero rows.
+ * Relational expression with zero rows.
  *
- * <p>EmptyRel can not be implemented, but serves as a token for rules to match
+ * <p>Empty can not be implemented, but serves as a token for rules to match
  * so that empty sections of queries can be eliminated.
  *
  * <p>Rules:
  *
  * <ul>
  * <li>Created by {@code net.sf.farrago.query.FarragoReduceValuesRule}</li>
- * <li>Triggers {@link org.eigenbase.rel.rules.RemoveEmptyRules}</li>
+ * <li>Triggers {@link org.apache.calcite.rel.rules.EmptyPruneRules}</li>
  * </ul>
  *
- * @see org.eigenbase.rel.ValuesRel
+ * @see org.apache.calcite.rel.logical.LogicalValues
+ * @see OneRow
  */
-public class EmptyRel extends AbstractRelNode {
+public class Empty extends AbstractRelNode {
   //~ Constructors -----------------------------------------------------------
 
   /**
-   * Creates a new EmptyRel.
+   * Creates a new Empty.
    *
    * @param cluster Cluster
    * @param rowType row type for tuples which would be produced by this rel if
    *                it actually produced any, but it doesn't (see, philosophy is
    *                good for something after all!)
    */
-  public EmptyRel(
-      RelOptCluster cluster,
-      RelDataType rowType) {
-    super(
-        cluster,
-        cluster.traitSetOf(Convention.NONE));
+  public Empty(RelOptCluster cluster, RelDataType rowType) {
+    super(cluster, cluster.traitSetOf(Convention.NONE));
     this.rowType = rowType;
   }
 
@@ -66,23 +70,19 @@ public class EmptyRel extends AbstractRelNode {
     return this;
   }
 
-  // implement RelNode
-  protected RelDataType deriveRowType() {
+  @Override protected RelDataType deriveRowType() {
     return rowType;
   }
 
-  // implement RelNode
-  public RelOptCost computeSelfCost(RelOptPlanner planner) {
+  @Override public RelOptCost computeSelfCost(RelOptPlanner planner) {
     return planner.getCostFactory().makeZeroCost();
   }
 
-  // implement RelNode
-  public double getRows() {
+  @Override public double getRows() {
     return 0.0;
   }
 
-  // implement RelNode
-  public RelWriter explainTerms(RelWriter pw) {
+  @Override public RelWriter explainTerms(RelWriter pw) {
     return super.explainTerms(pw)
         // For rel digest, include the row type to discriminate
         // this from other empties with different row types.
@@ -94,4 +94,4 @@ public class EmptyRel extends AbstractRelNode {
   }
 }
 
-// End EmptyRel.java
+// End Empty.java

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/core/Filter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/core/Filter.java b/core/src/main/java/org/apache/calcite/rel/core/Filter.java
index 7468a7e..8fbdb0e 100644
--- a/core/src/main/java/org/apache/calcite/rel/core/Filter.java
+++ b/core/src/main/java/org/apache/calcite/rel/core/Filter.java
@@ -14,21 +14,38 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.rel;
-
-import java.util.List;
-
-import org.eigenbase.rel.metadata.*;
-import org.eigenbase.relopt.*;
-import org.eigenbase.rex.*;
+package org.apache.calcite.rel.core;
+
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCost;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.RelInput;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelWriter;
+import org.apache.calcite.rel.SingleRel;
+import org.apache.calcite.rel.metadata.RelMetadataQuery;
+import org.apache.calcite.rex.RexChecker;
+import org.apache.calcite.rex.RexLocalRef;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexProgram;
+import org.apache.calcite.rex.RexUtil;
 
 import com.google.common.collect.ImmutableList;
 
+import java.util.List;
+
 /**
- * <code>FilterRelBase</code> is an abstract base class for implementations of
- * {@link FilterRel}.
+ * Relational expression that iterates over its input
+ * and returns elements for which <code>condition</code> evaluates to
+ * <code>true</code>.
+ *
+ * <p>If the condition allows nulls, then a null value is treated the same as
+ * false.</p>
+ *
+ * @see org.apache.calcite.rel.logical.LogicalFilter
  */
-public abstract class FilterRelBase extends SingleRel {
+public abstract class Filter extends SingleRel {
   //~ Instance fields --------------------------------------------------------
 
   protected final RexNode condition;
@@ -38,14 +55,13 @@ public abstract class FilterRelBase extends SingleRel {
   /**
    * Creates a filter.
    *
-   * @param cluster   {@link RelOptCluster}  this relational expression belongs
-   *                  to
+   * @param cluster   Cluster that this relational expression belongs to
    * @param traits    the traits of this rel
    * @param child     input relational expression
    * @param condition boolean expression which determines whether a row is
    *                  allowed to pass
    */
-  protected FilterRelBase(
+  protected Filter(
       RelOptCluster cluster,
       RelTraitSet traits,
       RelNode child,
@@ -59,25 +75,24 @@ public abstract class FilterRelBase extends SingleRel {
   }
 
   /**
-   * Creates a FilterRelBase by parsing serialized output.
+   * Creates a Filter by parsing serialized output.
    */
-  protected FilterRelBase(RelInput input) {
+  protected Filter(RelInput input) {
     this(input.getCluster(), input.getTraitSet(), input.getInput(),
         input.getExpression("condition"));
   }
 
   //~ Methods ----------------------------------------------------------------
 
-  @Override
-  public final RelNode copy(RelTraitSet traitSet, List<RelNode> inputs) {
+  @Override public final RelNode copy(RelTraitSet traitSet,
+      List<RelNode> inputs) {
     return copy(traitSet, sole(inputs), getCondition());
   }
 
-  public abstract FilterRelBase copy(RelTraitSet traitSet, RelNode input,
+  public abstract Filter copy(RelTraitSet traitSet, RelNode input,
       RexNode condition);
 
-  @Override
-  public List<RexNode> getChildExps() {
+  @Override public List<RexNode> getChildExps() {
     return ImmutableList.of(condition);
   }
 
@@ -86,7 +101,7 @@ public abstract class FilterRelBase extends SingleRel {
   }
 
   @Override public boolean isValid(boolean fail) {
-    final RexChecker checker = new RexChecker(getChild().getRowType(), fail);
+    final RexChecker checker = new RexChecker(getInput().getRowType(), fail);
     condition.accept(checker);
     if (checker.getFailureCount() > 0) {
       assert !fail;
@@ -97,7 +112,7 @@ public abstract class FilterRelBase extends SingleRel {
 
   public RelOptCost computeSelfCost(RelOptPlanner planner) {
     double dRows = RelMetadataQuery.getRowCount(this);
-    double dCpu = RelMetadataQuery.getRowCount(getChild());
+    double dCpu = RelMetadataQuery.getRowCount(getInput());
     double dIo = 0;
     return planner.getCostFactory().makeCost(dRows, dCpu, dIo);
   }
@@ -105,7 +120,7 @@ public abstract class FilterRelBase extends SingleRel {
   // override RelNode
   public double getRows() {
     return estimateFilteredRows(
-        getChild(),
+        getInput(),
         condition);
   }
 
@@ -134,4 +149,4 @@ public abstract class FilterRelBase extends SingleRel {
   }
 }
 
-// End FilterRelBase.java
+// End Filter.java