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:29 UTC

[21/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/sql2rel/SqlRexConvertletTable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql2rel/SqlRexConvertletTable.java b/core/src/main/java/org/apache/calcite/sql2rel/SqlRexConvertletTable.java
index 09a6a75..b1e0a51 100644
--- a/core/src/main/java/org/apache/calcite/sql2rel/SqlRexConvertletTable.java
+++ b/core/src/main/java/org/apache/calcite/sql2rel/SqlRexConvertletTable.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.sql2rel;
+package org.apache.calcite.sql2rel;
 
-import org.eigenbase.sql.*;
+import org.apache.calcite.sql.SqlCall;
 
 /**
  * Collection of {@link SqlRexConvertlet}s.

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java b/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
index c940b6c..ce1cb4a 100644
--- a/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
+++ b/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
@@ -14,47 +14,160 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.sql2rel;
-
-import java.lang.reflect.Type;
-import java.math.*;
-import java.util.*;
-import java.util.logging.*;
-
-import org.eigenbase.rel.*;
-import org.eigenbase.rel.metadata.*;
-import org.eigenbase.relopt.*;
-import org.eigenbase.reltype.*;
-import org.eigenbase.rex.*;
-import org.eigenbase.sql.*;
-import org.eigenbase.sql.fun.*;
-import org.eigenbase.sql.parser.*;
-import org.eigenbase.sql.type.*;
-import org.eigenbase.sql.util.*;
-import org.eigenbase.sql.validate.*;
-import org.eigenbase.trace.*;
-import org.eigenbase.util.*;
-import org.eigenbase.util.mapping.Mappings;
-import org.eigenbase.util14.*;
-
-import net.hydromatic.linq4j.Ord;
-
-import net.hydromatic.optiq.ModifiableTable;
-import net.hydromatic.optiq.TranslatableTable;
-import net.hydromatic.optiq.prepare.Prepare;
-import net.hydromatic.optiq.prepare.RelOptTableImpl;
-import net.hydromatic.optiq.util.BitSets;
+package org.apache.calcite.sql2rel;
+
+import org.apache.calcite.linq4j.Ord;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelOptQuery;
+import org.apache.calcite.plan.RelOptSamplingParameters;
+import org.apache.calcite.plan.RelOptTable;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.prepare.Prepare;
+import org.apache.calcite.prepare.RelOptTableImpl;
+import org.apache.calcite.rel.RelCollation;
+import org.apache.calcite.rel.RelCollationImpl;
+import org.apache.calcite.rel.RelFieldCollation;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.core.AggregateCall;
+import org.apache.calcite.rel.core.Collect;
+import org.apache.calcite.rel.core.Correlation;
+import org.apache.calcite.rel.core.Correlator;
+import org.apache.calcite.rel.core.Join;
+import org.apache.calcite.rel.core.JoinInfo;
+import org.apache.calcite.rel.core.JoinRelType;
+import org.apache.calcite.rel.core.Project;
+import org.apache.calcite.rel.core.Sample;
+import org.apache.calcite.rel.core.Sort;
+import org.apache.calcite.rel.core.Uncollect;
+import org.apache.calcite.rel.logical.LogicalAggregate;
+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.LogicalOneRow;
+import org.apache.calcite.rel.logical.LogicalProject;
+import org.apache.calcite.rel.logical.LogicalTableFunctionScan;
+import org.apache.calcite.rel.logical.LogicalTableModify;
+import org.apache.calcite.rel.logical.LogicalTableScan;
+import org.apache.calcite.rel.logical.LogicalUnion;
+import org.apache.calcite.rel.logical.LogicalValues;
+import org.apache.calcite.rel.metadata.RelColumnMapping;
+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.rex.RexBuilder;
+import org.apache.calcite.rex.RexCall;
+import org.apache.calcite.rex.RexCallBinding;
+import org.apache.calcite.rex.RexCorrelVariable;
+import org.apache.calcite.rex.RexDynamicParam;
+import org.apache.calcite.rex.RexFieldAccess;
+import org.apache.calcite.rex.RexFieldCollation;
+import org.apache.calcite.rex.RexInputRef;
+import org.apache.calcite.rex.RexLiteral;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexRangeRef;
+import org.apache.calcite.rex.RexShuttle;
+import org.apache.calcite.rex.RexUtil;
+import org.apache.calcite.rex.RexVisitorImpl;
+import org.apache.calcite.rex.RexWindowBound;
+import org.apache.calcite.schema.ModifiableTable;
+import org.apache.calcite.schema.TranslatableTable;
+import org.apache.calcite.sql.JoinConditionType;
+import org.apache.calcite.sql.JoinType;
+import org.apache.calcite.sql.SqlAggFunction;
+import org.apache.calcite.sql.SqlBasicCall;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlDataTypeSpec;
+import org.apache.calcite.sql.SqlDelete;
+import org.apache.calcite.sql.SqlDynamicParam;
+import org.apache.calcite.sql.SqlExplainLevel;
+import org.apache.calcite.sql.SqlFunction;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlInsert;
+import org.apache.calcite.sql.SqlIntervalQualifier;
+import org.apache.calcite.sql.SqlJoin;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlMerge;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.SqlNodeList;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.SqlOperatorTable;
+import org.apache.calcite.sql.SqlSampleSpec;
+import org.apache.calcite.sql.SqlSelect;
+import org.apache.calcite.sql.SqlSelectKeyword;
+import org.apache.calcite.sql.SqlSetOperator;
+import org.apache.calcite.sql.SqlUpdate;
+import org.apache.calcite.sql.SqlUtil;
+import org.apache.calcite.sql.SqlWindow;
+import org.apache.calcite.sql.SqlWith;
+import org.apache.calcite.sql.SqlWithItem;
+import org.apache.calcite.sql.fun.SqlCountAggFunction;
+import org.apache.calcite.sql.fun.SqlInOperator;
+import org.apache.calcite.sql.fun.SqlRowOperator;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.sql.parser.SqlParserPos;
+import org.apache.calcite.sql.type.SqlReturnTypeInference;
+import org.apache.calcite.sql.type.SqlTypeName;
+import org.apache.calcite.sql.type.SqlTypeUtil;
+import org.apache.calcite.sql.type.TableFunctionReturnTypeInference;
+import org.apache.calcite.sql.util.SqlBasicVisitor;
+import org.apache.calcite.sql.util.SqlVisitor;
+import org.apache.calcite.sql.validate.CollectNamespace;
+import org.apache.calcite.sql.validate.DelegatingScope;
+import org.apache.calcite.sql.validate.ListScope;
+import org.apache.calcite.sql.validate.ParameterScope;
+import org.apache.calcite.sql.validate.SelectScope;
+import org.apache.calcite.sql.validate.SqlMonotonicity;
+import org.apache.calcite.sql.validate.SqlUserDefinedTableFunction;
+import org.apache.calcite.sql.validate.SqlUserDefinedTableMacro;
+import org.apache.calcite.sql.validate.SqlValidator;
+import org.apache.calcite.sql.validate.SqlValidatorImpl;
+import org.apache.calcite.sql.validate.SqlValidatorNamespace;
+import org.apache.calcite.sql.validate.SqlValidatorScope;
+import org.apache.calcite.sql.validate.SqlValidatorUtil;
+import org.apache.calcite.util.BitSets;
+import org.apache.calcite.util.ImmutableIntList;
+import org.apache.calcite.util.NlsString;
+import org.apache.calcite.util.NumberUtil;
+import org.apache.calcite.util.Pair;
+import org.apache.calcite.util.Util;
+import org.apache.calcite.util.mapping.Mappings;
+import org.apache.calcite.util.trace.CalciteTrace;
 
 import com.google.common.base.Function;
-import com.google.common.collect.*;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
 
-import static org.eigenbase.sql.SqlUtil.stripAs;
-import static org.eigenbase.util.Static.RESOURCE;
+import java.lang.reflect.Type;
+import java.math.BigDecimal;
+import java.util.AbstractList;
+import java.util.ArrayList;
+import java.util.BitSet;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Stack;
+import java.util.TreeSet;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import static org.apache.calcite.sql.SqlUtil.stripAs;
+import static org.apache.calcite.util.Static.RESOURCE;
 
 /**
- * Converts a SQL parse tree (consisting of {@link org.eigenbase.sql.SqlNode}
- * objects) into a relational algebra expression (consisting of
- * {@link org.eigenbase.rel.RelNode} objects).
+ * Converts a SQL parse tree (consisting of
+ * {@link org.apache.calcite.sql.SqlNode} objects) into a relational algebra
+ * expression (consisting of {@link org.apache.calcite.rel.RelNode} objects).
  *
  * <p>The public entry points are: {@link #convertQuery},
  * {@link #convertExpression(SqlNode)}.
@@ -63,7 +176,7 @@ public class SqlToRelConverter {
   //~ Static fields/initializers ---------------------------------------------
 
   protected static final Logger SQL2REL_LOGGER =
-      EigenbaseTrace.getSqlToRelTracer();
+      CalciteTrace.getSqlToRelTracer();
 
   private static final Function<SubQuery, SqlNode> FN =
       new Function<SubQuery, SqlNode>() {
@@ -273,19 +386,20 @@ public class SqlToRelConverter {
    * convert method.
    *
    * @param enabled true for immediate conversion (the default); false to
-   *                generate logical TableAccessRel instances
+   *                generate logical LogicalTableScan instances
    */
   public void enableTableAccessConversion(boolean enabled) {
     shouldConvertTableAccess = enabled;
   }
 
   /**
-   * Controls whether instances of {@link ValuesRel} are generated. These may
-   * not be supported by all physical implementations. To have any effect,
+   * Controls whether instances of
+   * {@link org.apache.calcite.rel.logical.LogicalValues} are generated. These
+   * may not be supported by all physical implementations. To have any effect,
    * this must be called before any convert method.
    *
-   * @param enabled true to allow ValuesRel to be generated (the default);
-   *                false to force substitution of ProjectRel+OneRowRel instead
+   * @param enabled true to allow LogicalValues to be generated (the default);
+   *                false to force substitution of Project+OneRow instead
    */
   public void enableValuesRelCreation(boolean enabled) {
     shouldCreateValuesRel = enabled;
@@ -303,9 +417,8 @@ public class SqlToRelConverter {
         RelDataType validatedRowType =
             validator.getValidatedNodeType(query);
         validatedRowType = uniquifyFields(validatedRowType);
-        throw Util.newInternal(
-            "Conversion to relational algebra failed to preserve "
-            + "datatypes:\n"
+        throw Util.newInternal("Conversion to relational algebra failed to "
+            + "preserve datatypes:\n"
             + "validated type:\n"
             + validatedRowType.getFullTypeString()
             + "\nconverted type:\n"
@@ -512,10 +625,10 @@ public class SqlToRelConverter {
    * Having translated 'SELECT ... FROM ... [GROUP BY ...] [HAVING ...]', adds
    * a relational expression to make the results unique.
    *
-   * <p>If the SELECT clause contains duplicate expressions, adds {@link
-   * ProjectRel}s so that we are grouping on the minimal set of keys. The
-   * performance gain isn't huge, but it is difficult to detect these
-   * duplicate expressions later.
+   * <p>If the SELECT clause contains duplicate expressions, adds
+   * {@link org.apache.calcite.rel.logical.LogicalProject}s so that we are
+   * grouping on the minimal set of keys. The performance gain isn't huge, but
+   * it is difficult to detect these duplicate expressions later.
    *
    * @param bb               Blackboard
    * @param checkForDupExprs Check for duplicate expressions
@@ -528,8 +641,8 @@ public class SqlToRelConverter {
     // Then dups will be {[2, 0]}
     // and oldToNew will be {[0, 0], [1, 1], [2, 0], [3, 2]}
     RelNode rel = bb.root;
-    if (checkForDupExprs && (rel instanceof ProjectRel)) {
-      ProjectRel project = (ProjectRel) rel;
+    if (checkForDupExprs && (rel instanceof LogicalProject)) {
+      LogicalProject project = (LogicalProject) rel;
       final List<RexNode> projectExprs = project.getProjects();
       List<Integer> origins = new ArrayList<Integer>();
       int dupCount = 0;
@@ -557,12 +670,12 @@ public class SqlToRelConverter {
         }
       }
       rel =
-          new ProjectRel(
+          new LogicalProject(
               cluster,
               rel,
               Pair.left(newProjects),
               Pair.right(newProjects),
-              ProjectRel.Flags.BOXED);
+              LogicalProject.Flags.BOXED);
 
       bb.root = rel;
       distinctify(bb, false);
@@ -582,12 +695,12 @@ public class SqlToRelConverter {
       }
 
       rel =
-          new ProjectRel(
+          new LogicalProject(
               cluster,
               rel,
               Pair.left(undoProjects),
               Pair.right(undoProjects),
-              ProjectRel.Flags.BOXED);
+              LogicalProject.Flags.BOXED);
 
       bb.setRoot(
           rel,
@@ -647,7 +760,7 @@ public class SqlToRelConverter {
 
     // Create a sorter using the previously constructed collations.
     bb.setRoot(
-        new SortRel(
+        new Sort(
             cluster,
             cluster.traitSetOf(Convention.NONE, collation),
             bb.root,
@@ -667,14 +780,14 @@ public class SqlToRelConverter {
         exprs.add(rexBuilder.makeInputRef(bb.root, i));
       }
       bb.setRoot(
-          new ProjectRel(
+          new LogicalProject(
               cluster,
               cluster.traitSetOf(RelCollationImpl.PRESERVE),
               bb.root,
               exprs,
               cluster.getTypeFactory().createStructType(
                   rowType.getFieldList().subList(0, fieldCount)),
-              ProjectRelBase.Flags.BOXED),
+              Project.Flags.BOXED),
           false);
     }
   }
@@ -919,15 +1032,15 @@ public class SqlToRelConverter {
         final RelNode seek = converted.left.getInput(0); // fragile
         final int keyCount = leftKeys.size();
         final List<Integer> args = ImmutableIntList.range(0, keyCount);
-        AggregateRel aggregate =
-            new AggregateRel(cluster, seek, BitSets.of(),
+        LogicalAggregate aggregate =
+            new LogicalAggregate(cluster, seek, BitSets.of(),
                 ImmutableList.of(
                     new AggregateCall(SqlStdOperatorTable.COUNT, false,
                         ImmutableList.<Integer>of(), longType, null),
                     new AggregateCall(SqlStdOperatorTable.COUNT, false,
                         args, longType, null)));
-        JoinRel join =
-            new JoinRel(cluster, bb.root, aggregate,
+        LogicalJoin join =
+            new LogicalJoin(cluster, bb.root, aggregate,
                 rexBuilder.makeLiteral(true), JoinRelType.INNER,
                 ImmutableSet.<String>of());
         bb.setRoot(join, false);
@@ -1041,9 +1154,9 @@ public class SqlToRelConverter {
       // cross join (select count(*) as c, count(deptno) as ck from v) as ct
       // left join (select distinct deptno, true as i from v) as dt
       //   on e.deptno = dt.deptno
-      final JoinRelBase join = (JoinRelBase) root;
-      final ProjectRelBase left = (ProjectRelBase) join.getLeft();
-      final RelNode leftLeft = ((JoinRelBase) left.getInput(0)).getLeft();
+      final Join join = (Join) root;
+      final Project left = (Project) join.getLeft();
+      final RelNode leftLeft = ((Join) left.getInput(0)).getLeft();
       final int leftLeftCount = leftLeft.getRowType().getFieldCount();
       final RelDataType nullableBooleanType =
           typeFactory.createTypeWithNullability(
@@ -1234,9 +1347,10 @@ public class SqlToRelConverter {
   /**
    * Gets the list size threshold under which {@link #convertInToOr} is used.
    * Lists of this size or greater will instead be converted to use a join
-   * against an inline table ({@link ValuesRel}) rather than a predicate. A
-   * threshold of 0 forces usage of an inline table in all cases; a threshold
-   * of Integer.MAX_VALUE forces usage of OR in all cases
+   * against an inline table
+   * ({@link org.apache.calcite.rel.logical.LogicalValues}) rather than a
+   * predicate. A threshold of 0 forces usage of an inline table in all cases; a
+   * threshold of Integer.MAX_VALUE forces usage of OR in all cases
    *
    * @return threshold, default 20
    */
@@ -1305,10 +1419,10 @@ public class SqlToRelConverter {
       boolean allowLiteralsOnly,
       RelDataType targetRowType) {
     // NOTE jvs 30-Apr-2006: We combine all rows consisting entirely of
-    // literals into a single ValuesRel; this gives the optimizer a smaller
+    // literals into a single LogicalValues; this gives the optimizer a smaller
     // input tree.  For everything else (computed expressions, row
     // subqueries), we union each row in as a projection on top of a
-    // OneRowRel.
+    // LogicalOneRow.
 
     final List<List<RexLiteral>> tupleList =
         new ArrayList<List<RexLiteral>>();
@@ -1375,24 +1489,24 @@ public class SqlToRelConverter {
       }
       unionInputs.add(convertRowConstructor(bb, call));
     }
-    ValuesRel valuesRel =
-        new ValuesRel(
+    LogicalValues values =
+        new LogicalValues(
             cluster,
             rowType,
             tupleList);
     RelNode resultRel;
     if (unionInputs.isEmpty()) {
-      resultRel = valuesRel;
+      resultRel = values;
     } else {
       if (!tupleList.isEmpty()) {
-        unionInputs.add(valuesRel);
+        unionInputs.add(values);
       }
-      UnionRel unionRel =
-          new UnionRel(
+      LogicalUnion union =
+          new LogicalUnion(
               cluster,
               unionInputs,
               true);
-      resultRel = unionRel;
+      resultRel = union;
     }
     leaves.add(resultRel);
     return resultRel;
@@ -1411,7 +1525,7 @@ public class SqlToRelConverter {
     if (type.isStruct()) {
       // null literals for weird stuff like UDT's need
       // special handling during type flattening, so
-      // don't use ValuesRel for those
+      // don't use LogicalValues for those
       return null;
     }
 
@@ -1426,7 +1540,7 @@ public class SqlToRelConverter {
       assert RexLiteral.isNullLiteral(child);
 
       // NOTE jvs 22-Nov-2006:  we preserve type info
-      // in ValuesRel digest, so it's OK to lose it here
+      // in LogicalValues digest, so it's OK to lose it here
       return (RexLiteral) child;
     }
 
@@ -1724,7 +1838,7 @@ public class SqlToRelConverter {
                 tableSampleSpec.getSamplePercentage(),
                 tableSampleSpec.isRepeatable(),
                 tableSampleSpec.getRepeatableSeed());
-        bb.setRoot(new SamplingRel(cluster, bb.root, params), false);
+        bb.setRoot(new Sample(cluster, bb.root, params), false);
       } else {
         throw Util.newInternal(
             "unknown TABLESAMPLE type: " + sampleSpec);
@@ -1751,7 +1865,7 @@ public class SqlToRelConverter {
       if (shouldConvertTableAccess) {
         tableRel = toRel(table);
       } else {
-        tableRel = new TableAccessRel(cluster, table);
+        tableRel = new LogicalTableScan(cluster, table);
       }
       bb.setRoot(tableRel, true);
       if (usedDataset[0]) {
@@ -1824,15 +1938,15 @@ public class SqlToRelConverter {
       replaceSubqueries(bb, node, RelOptUtil.Logic.TRUE_FALSE_UNKNOWN);
       final RelNode childRel =
           RelOptUtil.createProject(
-              (null != bb.root) ? bb.root : new OneRowRel(cluster),
+              (null != bb.root) ? bb.root : new LogicalOneRow(cluster),
               Collections.singletonList(bb.convertExpression(node)),
               Collections.singletonList(validator.deriveAlias(node, 0)),
               true);
 
-      UncollectRel uncollectRel =
-          new UncollectRel(cluster, cluster.traitSetOf(Convention.NONE),
+      Uncollect uncollect =
+          new Uncollect(cluster, cluster.traitSetOf(Convention.NONE),
               childRel);
-      bb.setRoot(uncollectRel, true);
+      bb.setRoot(uncollect, true);
       return;
 
     case COLLECTION_TABLE:
@@ -1867,7 +1981,7 @@ public class SqlToRelConverter {
     replaceSubqueries(bb, call, RelOptUtil.Logic.TRUE_FALSE_UNKNOWN);
 
     // Expand table macro if possible. It's more efficient than
-    // TableFunctionRel.
+    // LogicalTableFunctionScan.
     if (operator instanceof SqlUserDefinedTableMacro) {
       final SqlUserDefinedTableMacro udf =
           (SqlUserDefinedTableMacro) operator;
@@ -1892,8 +2006,8 @@ public class SqlToRelConverter {
     final List<RelNode> inputs = bb.retrieveCursors();
     Set<RelColumnMapping> columnMappings =
         getColumnMappings(operator);
-    TableFunctionRel callRel =
-        new TableFunctionRel(
+    LogicalTableFunctionScan callRel =
+        new LogicalTableFunctionScan(
             cluster,
             inputs,
             rexCall,
@@ -1907,7 +2021,7 @@ public class SqlToRelConverter {
   protected void afterTableFunction(
       SqlToRelConverter.Blackboard bb,
       SqlCall call,
-      TableFunctionRel callRel) {
+      LogicalTableFunctionScan callRel) {
   }
 
   private Set<RelColumnMapping> getColumnMappings(SqlOperator op) {
@@ -2011,7 +2125,7 @@ public class SqlToRelConverter {
       }
 
       if (!correlations.isEmpty()) {
-        return new CorrelatorRel(
+        return new Correlator(
             rightRel.getCluster(),
             leftRel,
             rightRel,
@@ -2035,13 +2149,11 @@ public class SqlToRelConverter {
       leftRel = RelOptUtil.createProject(
           leftRel,
           new AbstractList<Pair<RexNode, String>>() {
-            @Override
-            public int size() {
+            @Override public int size() {
               return leftCount + extraLeftExprs.size();
             }
 
-            @Override
-            public Pair<RexNode, String> get(int index) {
+            @Override public Pair<RexNode, String> get(int index) {
               if (index < leftCount) {
                 RelDataTypeField field = fields.get(index);
                 return Pair.<RexNode, String>of(
@@ -2062,13 +2174,11 @@ public class SqlToRelConverter {
       rightRel = RelOptUtil.createProject(
           rightRel,
           new AbstractList<Pair<RexNode, String>>() {
-            @Override
-            public int size() {
+            @Override public int size() {
               return rightCount + extraRightExprs.size();
             }
 
-            @Override
-            public Pair<RexNode, String> get(int index) {
+            @Override public Pair<RexNode, String> get(int index) {
               if (index < rightCount) {
                 RelDataTypeField field = fields.get(index);
                 return Pair.<RexNode, String>of(
@@ -2616,7 +2726,7 @@ public class SqlToRelConverter {
   }
 
   /**
-   * Creates an AggregateRel.
+   * Creates an Aggregate.
    *
    * <p>In case the aggregate rel changes the order in which it projects
    * fields, the <code>groupExprProjection</code> parameter is provided, and
@@ -2630,13 +2740,13 @@ public class SqlToRelConverter {
    * @param bb       Blackboard
    * @param groupSet Bit set of ordinals of grouping columns
    * @param aggCalls Array of calls to aggregate functions
-   * @return AggregateRel
+   * @return LogicalAggregate
    */
   protected RelNode createAggregate(
       Blackboard bb,
       BitSet groupSet,
       List<AggregateCall> aggCalls) {
-    return new AggregateRel(
+    return new LogicalAggregate(
         cluster,
         bb.root,
         groupSet,
@@ -2838,7 +2948,7 @@ public class SqlToRelConverter {
     }
     switch (call.getKind()) {
     case UNION:
-      return new UnionRel(
+      return new LogicalUnion(
           cluster,
           ImmutableList.of(left, right),
           all);
@@ -2846,7 +2956,7 @@ public class SqlToRelConverter {
     case INTERSECT:
       // TODO:  all
       if (!all) {
-        return new IntersectRel(
+        return new LogicalIntersect(
             cluster,
             ImmutableList.of(left, right),
             all);
@@ -2858,7 +2968,7 @@ public class SqlToRelConverter {
     case EXCEPT:
       // TODO:  all
       if (!all) {
-        return new MinusRel(
+        return new LogicalMinus(
             cluster,
             ImmutableList.of(left, right),
             all);
@@ -2893,16 +3003,16 @@ public class SqlToRelConverter {
           targetTable,
           catalogReader,
           massagedRel,
-          TableModificationRel.Operation.INSERT,
+          LogicalTableModify.Operation.INSERT,
           null,
           false);
     }
-    return new TableModificationRel(
+    return new LogicalTableModify(
         cluster,
         targetTable,
         catalogReader,
         massagedRel,
-        TableModificationRel.Operation.INSERT,
+        LogicalTableModify.Operation.INSERT,
         null,
         false);
   }
@@ -3045,12 +3155,12 @@ public class SqlToRelConverter {
   private RelNode convertDelete(SqlDelete call) {
     RelOptTable targetTable = getTargetTable(call);
     RelNode sourceRel = convertSelect(call.getSourceSelect());
-    return new TableModificationRel(
+    return new LogicalTableModify(
         cluster,
         targetTable,
         catalogReader,
         sourceRel,
-        TableModificationRel.Operation.DELETE,
+        LogicalTableModify.Operation.DELETE,
         null,
         false);
   }
@@ -3068,12 +3178,12 @@ public class SqlToRelConverter {
 
     RelNode sourceRel = convertSelect(call.getSourceSelect());
 
-    return new TableModificationRel(
+    return new LogicalTableModify(
         cluster,
         targetTable,
         catalogReader,
         sourceRel,
-        TableModificationRel.Operation.UPDATE,
+        LogicalTableModify.Operation.UPDATE,
         targetColumnNameList,
         false);
   }
@@ -3120,17 +3230,17 @@ public class SqlToRelConverter {
       // the column; or if the expressions directly map to the source
       // table
       level1InsertExprs =
-          ((ProjectRel) insertRel.getInput(0)).getProjects();
-      if (insertRel.getInput(0).getInput(0) instanceof ProjectRel) {
+          ((LogicalProject) insertRel.getInput(0)).getProjects();
+      if (insertRel.getInput(0).getInput(0) instanceof LogicalProject) {
         level2InsertExprs =
-            ((ProjectRel) insertRel.getInput(0).getInput(0))
+            ((LogicalProject) insertRel.getInput(0).getInput(0))
                 .getProjects();
       }
       nLevel1Exprs = level1InsertExprs.size();
     }
 
-    JoinRel joinRel = (JoinRel) mergeSourceRel.getInput(0);
-    int nSourceFields = joinRel.getLeft().getRowType().getFieldCount();
+    LogicalJoin join = (LogicalJoin) mergeSourceRel.getInput(0);
+    int nSourceFields = join.getLeft().getRowType().getFieldCount();
     List<RexNode> projects = new ArrayList<RexNode>();
     for (int level1Idx = 0; level1Idx < nLevel1Exprs; level1Idx++) {
       if ((level2InsertExprs != null)
@@ -3143,20 +3253,20 @@ public class SqlToRelConverter {
       }
     }
     if (updateCall != null) {
-      final ProjectRel project = (ProjectRel) mergeSourceRel;
+      final LogicalProject project = (LogicalProject) mergeSourceRel;
       projects.addAll(
           Util.skip(project.getProjects(), nSourceFields));
     }
 
     RelNode massagedRel =
-        RelOptUtil.createProject(joinRel, projects, null, true);
+        RelOptUtil.createProject(join, projects, null, true);
 
-    return new TableModificationRel(
+    return new LogicalTableModify(
         cluster,
         targetTable,
         catalogReader,
         massagedRel,
-        TableModificationRel.Operation.MERGE,
+        LogicalTableModify.Operation.MERGE,
         targetColumnNameList,
         false);
   }
@@ -3319,13 +3429,13 @@ public class SqlToRelConverter {
         joinList.add(lastList);
       }
       lastList = new ArrayList<SqlNode>();
-      CollectRel collectRel =
-          new CollectRel(
+      Collect collect =
+          new Collect(
               cluster,
               cluster.traitSetOf(Convention.NONE),
               input,
               validator.deriveAlias(call, i));
-      joinList.add(collectRel);
+      joinList.add(collect);
     }
 
     if (joinList.size() == 0) {
@@ -3354,7 +3464,7 @@ public class SqlToRelConverter {
 
         RelNode projRel =
             RelOptUtil.createProject(
-                new OneRowRel(cluster),
+                new LogicalOneRow(cluster),
                 selectList,
                 fieldNameList);
 
@@ -3386,7 +3496,7 @@ public class SqlToRelConverter {
    * @param joinType         Join type
    * @param variablesStopped Set of names of variables which are set by the
    *                         LHS and used by the RHS and are not available to
-   *                         nodes above this JoinRel in the tree
+   *                         nodes above this LogicalJoin in the tree
    * @return A relational expression representing a join
    */
   protected RelNode createJoin(
@@ -3395,7 +3505,7 @@ public class SqlToRelConverter {
       RexNode condition,
       JoinRelType joinType,
       Set<String> variablesStopped) {
-    return new JoinRel(
+    return new LogicalJoin(
         cluster,
         left,
         right,
@@ -3532,7 +3642,7 @@ public class SqlToRelConverter {
       Blackboard bb,
       SqlCall values,
       RelDataType targetRowType) {
-    // Attempt direct conversion to ValuesRel; if that fails, deal with
+    // Attempt direct conversion to LogicalValues; if that fails, deal with
     // fancy stuff like subqueries below.
     RelNode valuesRel =
         convertRowValues(
@@ -3562,7 +3672,7 @@ public class SqlToRelConverter {
       }
       RelNode in =
           (null == tmpBb.root)
-              ? new OneRowRel(cluster)
+              ? new LogicalOneRow(cluster)
               : tmpBb.root;
       unionRels.add(
           RelOptUtil.createProject(
@@ -3580,7 +3690,7 @@ public class SqlToRelConverter {
           true);
     } else {
       bb.setRoot(
-          new UnionRel(
+          new LogicalUnion(
               cluster,
               unionRels,
               true),
@@ -3721,14 +3831,14 @@ public class SqlToRelConverter {
           leftJoinKeys.add(origLeftInputCount + leftJoinKeys.size());
         }
 
-        ProjectRel newLeftInput =
-            (ProjectRel) RelOptUtil.createProject(
+        LogicalProject newLeftInput =
+            (LogicalProject) RelOptUtil.createProject(
                 root,
                 newLeftInputExpr,
                 null,
                 true);
 
-        // maintain the group by mapping in the new ProjectRel
+        // maintain the group by mapping in the new LogicalProject
         if (mapRootRelToFieldProjection.containsKey(root)) {
           mapRootRelToFieldProjection.put(
               newLeftInput,
@@ -3808,7 +3918,7 @@ public class SqlToRelConverter {
      */
     public void setRoot(RelNode root, boolean leaf) {
       setRoot(
-          Collections.singletonList(root), root, root instanceof JoinRel);
+          Collections.singletonList(root), root, root instanceof LogicalJoin);
       if (leaf) {
         leaves.add(root);
       }
@@ -3828,8 +3938,9 @@ public class SqlToRelConverter {
     }
 
     /**
-     * Notifies this Blackboard that the root just set using {@link
-     * #setRoot(RelNode, boolean)} was derived using dataset substitution.
+     * Notifies this Blackboard that the root just set using
+     * {@link #setRoot(RelNode, boolean)} was derived using dataset
+     * substitution.
      *
      * <p>The default implementation is not interested in such
      * notifications, and does nothing.
@@ -3854,8 +3965,7 @@ public class SqlToRelConverter {
       if (nameToNodeMap != null) {
         RexNode node = nameToNodeMap.get(name);
         if (node == null) {
-          throw Util.newInternal(
-              "Unknown identifier '" + name
+          throw Util.newInternal("Unknown identifier '" + name
               + "' encountered while expanding expression" + node);
         }
         return node;
@@ -3934,8 +4044,8 @@ public class SqlToRelConverter {
               Pair.of(rel, start[0]));
           start[0] += rel.getRowType().getFieldCount();
         } else {
-          if (rel instanceof JoinRel
-              || rel instanceof AggregateRel) {
+          if (rel instanceof LogicalJoin
+              || rel instanceof LogicalAggregate) {
             start[0] += systemFieldCount;
           }
           flatten(
@@ -4192,6 +4302,7 @@ public class SqlToRelConverter {
     }
   }
 
+  /** Deferred lookup. */
   private static class DeferredLookup {
     Blackboard bb;
     String originalRelName;
@@ -4283,8 +4394,8 @@ public class SqlToRelConverter {
         new SqlNodeList(SqlParserPos.ZERO);
 
     /**
-     * Input expressions for the group columns and aggregates, in {@link
-     * RexNode} format. The first elements of the list correspond to the
+     * Input expressions for the group columns and aggregates, in
+     * {@link RexNode} format. The first elements of the list correspond to the
      * elements in {@link #groupExprs}; the remaining elements are for
      * aggregates.
      */
@@ -4440,8 +4551,8 @@ public class SqlToRelConverter {
           bb.agg = this;
         }
 
-        final Aggregation aggregation =
-            (Aggregation) call.getOperator();
+        final SqlAggFunction aggFunction =
+            (SqlAggFunction) call.getOperator();
         RelDataType type = validator.deriveType(bb.scope, call);
         boolean distinct = false;
         SqlLiteral quantifier = call.getFunctionQuantifier();
@@ -4451,7 +4562,7 @@ public class SqlToRelConverter {
         }
         final AggregateCall aggCall =
             new AggregateCall(
-                aggregation,
+                aggFunction,
                 distinct,
                 args,
                 type,
@@ -4719,9 +4830,9 @@ public class SqlToRelConverter {
      * Returns the histogram operator corresponding to a given aggregate
      * function.
      *
-     * <p>For example, <code>getHistogramOp({@link
-     * SqlStdOperatorTable#MIN}}</code> returns {@link
-     * SqlStdOperatorTable#HISTOGRAM_MIN}.
+     * <p>For example, <code>getHistogramOp
+     *({@link SqlStdOperatorTable#MIN}}</code> returns
+     * {@link SqlStdOperatorTable#HISTOGRAM_MIN}.
      *
      * @param aggFunction An aggregate function
      * @return Its histogram function, or null

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/sql2rel/StandardConvertletTable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql2rel/StandardConvertletTable.java b/core/src/main/java/org/apache/calcite/sql2rel/StandardConvertletTable.java
index 59b48d7..74fc92e 100644
--- a/core/src/main/java/org/apache/calcite/sql2rel/StandardConvertletTable.java
+++ b/core/src/main/java/org/apache/calcite/sql2rel/StandardConvertletTable.java
@@ -14,23 +14,62 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.sql2rel;
-
-import java.math.*;
-import java.util.*;
-
-import org.eigenbase.relopt.*;
-import org.eigenbase.reltype.*;
-import org.eigenbase.rex.*;
-import org.eigenbase.sql.*;
-import org.eigenbase.sql.fun.*;
-import org.eigenbase.sql.parser.*;
-import org.eigenbase.sql.type.*;
-import org.eigenbase.util.*;
-import org.eigenbase.util14.DateTimeUtil;
+package org.apache.calcite.sql2rel;
+
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexCall;
+import org.apache.calcite.rex.RexCallBinding;
+import org.apache.calcite.rex.RexLiteral;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexRangeRef;
+import org.apache.calcite.rex.RexUtil;
+import org.apache.calcite.sql.SqlAggFunction;
+import org.apache.calcite.sql.SqlBasicCall;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlDataTypeSpec;
+import org.apache.calcite.sql.SqlFunction;
+import org.apache.calcite.sql.SqlFunctionCategory;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlIntervalLiteral;
+import org.apache.calcite.sql.SqlIntervalQualifier;
+import org.apache.calcite.sql.SqlJdbcFunctionCall;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.SqlNodeList;
+import org.apache.calcite.sql.SqlNumericLiteral;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.SqlUtil;
+import org.apache.calcite.sql.fun.SqlArrayValueConstructor;
+import org.apache.calcite.sql.fun.SqlAvgAggFunction;
+import org.apache.calcite.sql.fun.SqlBetweenOperator;
+import org.apache.calcite.sql.fun.SqlCase;
+import org.apache.calcite.sql.fun.SqlDatetimeSubtractionOperator;
+import org.apache.calcite.sql.fun.SqlExtractFunction;
+import org.apache.calcite.sql.fun.SqlLiteralChainOperator;
+import org.apache.calcite.sql.fun.SqlMapValueConstructor;
+import org.apache.calcite.sql.fun.SqlMultisetQueryConstructor;
+import org.apache.calcite.sql.fun.SqlMultisetValueConstructor;
+import org.apache.calcite.sql.fun.SqlOverlapsOperator;
+import org.apache.calcite.sql.fun.SqlRowOperator;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.sql.parser.SqlParserPos;
+import org.apache.calcite.sql.type.OperandTypes;
+import org.apache.calcite.sql.type.SqlTypeName;
+import org.apache.calcite.util.DateTimeUtil;
+import org.apache.calcite.util.Util;
 
 import com.google.common.collect.ImmutableList;
 
+import java.math.BigDecimal;
+import java.math.MathContext;
+import java.util.AbstractList;
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * Standard implementation of {@link SqlRexConvertletTable}.
  */
@@ -155,11 +194,11 @@ public class StandardConvertletTable extends ReflectiveConvertletTable {
 
     // REVIEW jvs 24-Apr-2006: This only seems to be working from within a
     // windowed agg.  I have added an optimizer rule
-    // org.eigenbase.rel.rules.ReduceAggregatesRule which handles other
-    // cases post-translation.  The reason I did that was to defer the
-    // implementation decision; e.g. we may want to push it down to a
-    // foreign server directly rather than decomposed; decomposition is
-    // easier than recognition.
+    // org.apache.calcite.rel.rules.AggregateReduceFunctionsRule which handles
+    // other cases post-translation.  The reason I did that was to defer the
+    // implementation decision; e.g. we may want to push it down to a foreign
+    // server directly rather than decomposed; decomposition is easier than
+    // recognition.
 
     // Convert "avg(<expr>)" to "cast(sum(<expr>) / count(<expr>) as
     // <type>)". We don't need to handle the empty set specially, because
@@ -623,8 +662,7 @@ public class StandardConvertletTable extends ReflectiveConvertletTable {
     if (returnType == null) {
       RexCallBinding binding =
           new RexCallBinding(cx.getTypeFactory(), fun, exprs) {
-            @Override
-            public int getGroupCount() {
+            @Override public int getGroupCount() {
               return groupCount;
             }
           };
@@ -956,6 +994,8 @@ public class StandardConvertletTable extends ReflectiveConvertletTable {
     return cx.getRexBuilder().makeCast(resType, value);
   }
 
+  /** Convertlet that handles {@code AVG} and {@code VARIANCE}
+   * windowed aggregate functions. */
   private static class AvgVarianceConvertlet implements SqlRexConvertlet {
     private final SqlAvgAggFunction.Subtype subtype;
 
@@ -1067,6 +1107,7 @@ public class StandardConvertletTable extends ReflectiveConvertletTable {
     }
   }
 
+  /** Convertlet that handles {@code FLOOR} and {@code CEIL} functions. */
   private class FloorCeilConvertlet implements SqlRexConvertlet {
     private final boolean floor;
 

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/sql2rel/SubqueryConverter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql2rel/SubqueryConverter.java b/core/src/main/java/org/apache/calcite/sql2rel/SubqueryConverter.java
index 1f3a9e3..6145619 100644
--- a/core/src/main/java/org/apache/calcite/sql2rel/SubqueryConverter.java
+++ b/core/src/main/java/org/apache/calcite/sql2rel/SubqueryConverter.java
@@ -14,10 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.sql2rel;
+package org.apache.calcite.sql2rel;
 
-import org.eigenbase.rex.*;
-import org.eigenbase.sql.*;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.sql.SqlCall;
 
 /**
  * SubqueryConverter provides the interface for classes that convert subqueries

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/sql2rel/package-info.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql2rel/package-info.java b/core/src/main/java/org/apache/calcite/sql2rel/package-info.java
index dcac14f..0b0aa01 100644
--- a/core/src/main/java/org/apache/calcite/sql2rel/package-info.java
+++ b/core/src/main/java/org/apache/calcite/sql2rel/package-info.java
@@ -18,6 +18,6 @@
 /**
  * Translates a SQL parse tree to relational expression.
  */
-package org.eigenbase.sql2rel;
+package org.apache.calcite.sql2rel;
 
 // End package-info.java

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/tools/FrameworkConfig.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/tools/FrameworkConfig.java b/core/src/main/java/org/apache/calcite/tools/FrameworkConfig.java
index 98d0739..d3118dd 100644
--- a/core/src/main/java/org/apache/calcite/tools/FrameworkConfig.java
+++ b/core/src/main/java/org/apache/calcite/tools/FrameworkConfig.java
@@ -14,18 +14,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package net.hydromatic.optiq.tools;
+package org.apache.calcite.tools;
 
-import net.hydromatic.optiq.SchemaPlus;
-import net.hydromatic.optiq.config.Lex;
-
-import org.eigenbase.relopt.Context;
-import org.eigenbase.relopt.RelOptCostFactory;
-import org.eigenbase.relopt.RelTraitDef;
-import org.eigenbase.reltype.RelDataTypeSystem;
-import org.eigenbase.sql.SqlOperatorTable;
-import org.eigenbase.sql.parser.SqlParserImplFactory;
-import org.eigenbase.sql2rel.SqlRexConvertletTable;
+import org.apache.calcite.config.Lex;
+import org.apache.calcite.plan.Context;
+import org.apache.calcite.plan.RelOptCostFactory;
+import org.apache.calcite.plan.RelTraitDef;
+import org.apache.calcite.rel.type.RelDataTypeSystem;
+import org.apache.calcite.schema.SchemaPlus;
+import org.apache.calcite.sql.SqlOperatorTable;
+import org.apache.calcite.sql.parser.SqlParserImplFactory;
+import org.apache.calcite.sql2rel.SqlRexConvertletTable;
 
 import com.google.common.collect.ImmutableList;
 
@@ -60,7 +59,7 @@ public interface FrameworkConfig {
    *
    * <p>The common use case is when there is a single program
    * created using {@link Programs#of(RuleSet)}
-   * and {@link net.hydromatic.optiq.tools.Planner#transform}
+   * and {@link org.apache.calcite.tools.Planner#transform}
    * will only be called once.
    *
    * <p>However, consumers may also create programs
@@ -107,7 +106,7 @@ public interface FrameworkConfig {
 
   /**
    * Returns the PlannerContext that should be made available during planning by
-   * calling {@link org.eigenbase.relopt.RelOptPlanner#getContext()}.
+   * calling {@link org.apache.calcite.plan.RelOptPlanner#getContext()}.
    */
   Context getContext();
 

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/tools/Frameworks.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/tools/Frameworks.java b/core/src/main/java/org/apache/calcite/tools/Frameworks.java
index 7024343..4f835a5 100644
--- a/core/src/main/java/org/apache/calcite/tools/Frameworks.java
+++ b/core/src/main/java/org/apache/calcite/tools/Frameworks.java
@@ -14,29 +14,28 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package net.hydromatic.optiq.tools;
-
-import net.hydromatic.optiq.SchemaPlus;
-import net.hydromatic.optiq.config.Lex;
-import net.hydromatic.optiq.config.OptiqConnectionProperty;
-import net.hydromatic.optiq.jdbc.OptiqConnection;
-import net.hydromatic.optiq.jdbc.OptiqSchema;
-import net.hydromatic.optiq.prepare.OptiqPrepareImpl;
-import net.hydromatic.optiq.prepare.PlannerImpl;
-import net.hydromatic.optiq.server.OptiqServerStatement;
-
-import org.eigenbase.relopt.Context;
-import org.eigenbase.relopt.RelOptCluster;
-import org.eigenbase.relopt.RelOptCostFactory;
-import org.eigenbase.relopt.RelOptSchema;
-import org.eigenbase.relopt.RelTraitDef;
-import org.eigenbase.reltype.RelDataTypeSystem;
-import org.eigenbase.sql.SqlOperatorTable;
-import org.eigenbase.sql.fun.SqlStdOperatorTable;
-import org.eigenbase.sql.parser.SqlParserImplFactory;
-import org.eigenbase.sql.parser.impl.SqlParserImpl;
-import org.eigenbase.sql2rel.SqlRexConvertletTable;
-import org.eigenbase.sql2rel.StandardConvertletTable;
+package org.apache.calcite.tools;
+
+import org.apache.calcite.config.CalciteConnectionProperty;
+import org.apache.calcite.config.Lex;
+import org.apache.calcite.jdbc.CalciteConnection;
+import org.apache.calcite.jdbc.CalciteSchema;
+import org.apache.calcite.plan.Context;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptCostFactory;
+import org.apache.calcite.plan.RelOptSchema;
+import org.apache.calcite.plan.RelTraitDef;
+import org.apache.calcite.prepare.CalcitePrepareImpl;
+import org.apache.calcite.prepare.PlannerImpl;
+import org.apache.calcite.rel.type.RelDataTypeSystem;
+import org.apache.calcite.schema.SchemaPlus;
+import org.apache.calcite.server.CalciteServerStatement;
+import org.apache.calcite.sql.SqlOperatorTable;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.sql.parser.SqlParserImplFactory;
+import org.apache.calcite.sql.parser.impl.SqlParserImpl;
+import org.apache.calcite.sql2rel.SqlRexConvertletTable;
+import org.apache.calcite.sql2rel.StandardConvertletTable;
 
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
@@ -75,7 +74,7 @@ public class Frameworks {
   /** Piece of code to be run in a context where a planner and statement are
    * available. The planner is accessible from the {@code cluster} parameter, as
    * are several other useful objects. The connection and
-   * {@link net.hydromatic.optiq.DataContext} are accessible from the
+   * {@link org.apache.calcite.DataContext} are accessible from the
    * statement. */
   public abstract static class PrepareAction<R> {
     private final FrameworkConfig config;
@@ -94,7 +93,7 @@ public class Frameworks {
     }
 
     public abstract R apply(RelOptCluster cluster, RelOptSchema relOptSchema,
-        SchemaPlus rootSchema, OptiqServerStatement statement);
+        SchemaPlus rootSchema, CalciteServerStatement statement);
   }
 
   /**
@@ -109,7 +108,7 @@ public class Frameworks {
     return withPrepare(
         new Frameworks.PrepareAction<R>(config) {
           public R apply(RelOptCluster cluster, RelOptSchema relOptSchema,
-              SchemaPlus rootSchema, OptiqServerStatement statement) {
+              SchemaPlus rootSchema, CalciteServerStatement statement) {
             return action.apply(cluster, relOptSchema, rootSchema);
           }
         });
@@ -136,19 +135,19 @@ public class Frameworks {
    */
   public static <R> R withPrepare(PrepareAction<R> action) {
     try {
-      Class.forName("net.hydromatic.optiq.jdbc.Driver");
       final Properties info = new Properties();
       if (action.config.getTypeSystem() != RelDataTypeSystem.DEFAULT) {
-        info.setProperty(OptiqConnectionProperty.TYPE_SYSTEM.camelName(),
+        info.setProperty(CalciteConnectionProperty.TYPE_SYSTEM.camelName(),
             action.config.getTypeSystem().getClass().getName());
       }
       Connection connection =
           DriverManager.getConnection("jdbc:calcite:", info);
-      OptiqConnection optiqConnection =
-          connection.unwrap(OptiqConnection.class);
-      final OptiqServerStatement statement =
-          optiqConnection.createStatement().unwrap(OptiqServerStatement.class);
-      return new OptiqPrepareImpl().perform(statement, action);
+      CalciteConnection calciteConnection =
+          connection.unwrap(CalciteConnection.class);
+      final CalciteServerStatement statement =
+          calciteConnection.createStatement()
+              .unwrap(CalciteServerStatement.class);
+      return new CalcitePrepareImpl().perform(statement, action);
     } catch (Exception e) {
       throw new RuntimeException(e);
     }
@@ -161,7 +160,7 @@ public class Frameworks {
    *    definitions of tables, columns etc.
    */
   public static SchemaPlus createRootSchema(boolean addMetadataSchema) {
-    return OptiqSchema.createRootSchema(addMetadataSchema).plus();
+    return CalciteSchema.createRootSchema(addMetadataSchema).plus();
   }
 
   public static ConfigBuilder newConfigBuilder() {

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/tools/Planner.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/tools/Planner.java b/core/src/main/java/org/apache/calcite/tools/Planner.java
index 5b7e776..98c1649 100644
--- a/core/src/main/java/org/apache/calcite/tools/Planner.java
+++ b/core/src/main/java/org/apache/calcite/tools/Planner.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package net.hydromatic.optiq.tools;
+package org.apache.calcite.tools;
 
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelTraitSet;
-import org.eigenbase.reltype.RelDataTypeFactory;
-import org.eigenbase.sql.SqlNode;
-import org.eigenbase.sql.parser.SqlParseException;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.parser.SqlParseException;
 
 /**
  * A fa&ccedil;ade that covers Calcite's query planning process: parse SQL,
@@ -38,7 +38,7 @@ public interface Planner {
    *
    * @param sql The SQL statement to parse.
    * @return The root node of the SQL parse tree.
-   * @throws org.eigenbase.sql.parser.SqlParseException on parse error
+   * @throws org.apache.calcite.sql.parser.SqlParseException on parse error
    */
   SqlNode parse(String sql) throws SqlParseException;
 
@@ -54,11 +54,11 @@ public interface Planner {
   /**
    * Converts a SQL parse tree into a tree of relational expressions.
    *
-   * <p>You must call {@link #validate(org.eigenbase.sql.SqlNode)} first.</p>
+   * <p>You must call {@link #validate(org.apache.calcite.sql.SqlNode)} first.
    *
    * @param sql The root node of the SQL parse tree.
    * @return The root node of the newly generated RelNode tree.
-   * @throws net.hydromatic.optiq.tools.RelConversionException if the node
+   * @throws org.apache.calcite.tools.RelConversionException if the node
    * cannot be converted or has not been validated
    */
   RelNode convert(SqlNode sql) throws RelConversionException;
@@ -78,7 +78,7 @@ public interface Planner {
    *                             at the termination of the planning cycle.
    * @param rel The root of the RelNode tree to convert.
    * @return The root of the new RelNode tree.
-   * @throws net.hydromatic.optiq.tools.RelConversionException on conversion
+   * @throws org.apache.calcite.tools.RelConversionException on conversion
    *     error
    */
   RelNode transform(int ruleSetIndex,

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/tools/Program.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/tools/Program.java b/core/src/main/java/org/apache/calcite/tools/Program.java
index 04898e0..1bfa4cf 100644
--- a/core/src/main/java/org/apache/calcite/tools/Program.java
+++ b/core/src/main/java/org/apache/calcite/tools/Program.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package net.hydromatic.optiq.tools;
+package org.apache.calcite.tools;
 
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.relopt.RelTraitSet;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.rel.RelNode;
 
 /**
  * Program that transforms a relational expression into another relational
@@ -27,7 +27,7 @@ import org.eigenbase.relopt.RelTraitSet;
  * <p>A planner is a sequence of programs, each of which is sometimes called
  * a "phase".
  * The most typical program is an invocation of the volcano planner with a
- * particular {@link net.hydromatic.optiq.tools.RuleSet}.</p>
+ * particular {@link org.apache.calcite.tools.RuleSet}.</p>
  */
 public interface Program {
   RelNode run(RelOptPlanner planner, RelNode rel,

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/tools/Programs.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/tools/Programs.java b/core/src/main/java/org/apache/calcite/tools/Programs.java
index 1364467..49c77ae 100644
--- a/core/src/main/java/org/apache/calcite/tools/Programs.java
+++ b/core/src/main/java/org/apache/calcite/tools/Programs.java
@@ -14,25 +14,54 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package net.hydromatic.optiq.tools;
-
-import net.hydromatic.optiq.prepare.OptiqPrepareImpl;
-import net.hydromatic.optiq.rules.java.JavaRules;
-
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.rel.metadata.ChainedRelMetadataProvider;
-import org.eigenbase.rel.metadata.DefaultRelMetadataProvider;
-import org.eigenbase.rel.metadata.RelMetadataProvider;
-import org.eigenbase.rel.rules.*;
-import org.eigenbase.relopt.*;
-import org.eigenbase.relopt.hep.*;
+package org.apache.calcite.tools;
+
+import org.apache.calcite.adapter.enumerable.EnumerableRules;
+import org.apache.calcite.plan.RelOptCostImpl;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.plan.RelTraitSet;
+import org.apache.calcite.plan.hep.HepMatchOrder;
+import org.apache.calcite.plan.hep.HepPlanner;
+import org.apache.calcite.plan.hep.HepProgram;
+import org.apache.calcite.plan.hep.HepProgramBuilder;
+import org.apache.calcite.prepare.CalcitePrepareImpl;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.metadata.ChainedRelMetadataProvider;
+import org.apache.calcite.rel.metadata.DefaultRelMetadataProvider;
+import org.apache.calcite.rel.metadata.RelMetadataProvider;
+import org.apache.calcite.rel.rules.AggregateExpandDistinctAggregatesRule;
+import org.apache.calcite.rel.rules.AggregateReduceFunctionsRule;
+import org.apache.calcite.rel.rules.AggregateStarTableRule;
+import org.apache.calcite.rel.rules.CalcMergeRule;
+import org.apache.calcite.rel.rules.FilterAggregateTransposeRule;
+import org.apache.calcite.rel.rules.FilterCalcMergeRule;
+import org.apache.calcite.rel.rules.FilterJoinRule;
+import org.apache.calcite.rel.rules.FilterProjectTransposeRule;
+import org.apache.calcite.rel.rules.FilterTableRule;
+import org.apache.calcite.rel.rules.FilterToCalcRule;
+import org.apache.calcite.rel.rules.JoinAssociateRule;
+import org.apache.calcite.rel.rules.JoinCommuteRule;
+import org.apache.calcite.rel.rules.JoinPushThroughJoinRule;
+import org.apache.calcite.rel.rules.JoinToMultiJoinRule;
+import org.apache.calcite.rel.rules.LoptOptimizeJoinRule;
+import org.apache.calcite.rel.rules.MultiJoinOptimizeBushyRule;
+import org.apache.calcite.rel.rules.ProjectCalcMergeRule;
+import org.apache.calcite.rel.rules.ProjectMergeRule;
+import org.apache.calcite.rel.rules.ProjectToCalcRule;
+import org.apache.calcite.rel.rules.SemiJoinRule;
+import org.apache.calcite.rel.rules.SortProjectTransposeRule;
+import org.apache.calcite.rel.rules.TableScanRule;
 
 import com.google.common.base.Function;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Lists;
 
-import java.util.*;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
 
 /**
  * Utilities for creating {@link Program}s.
@@ -47,21 +76,21 @@ public class Programs {
 
   public static final ImmutableList<RelOptRule> CALC_RULES =
       ImmutableList.of(
-          JavaRules.ENUMERABLE_CALC_RULE,
-          JavaRules.ENUMERABLE_FILTER_TO_CALC_RULE,
-          JavaRules.ENUMERABLE_PROJECT_TO_CALC_RULE,
-          MergeCalcRule.INSTANCE,
-          MergeFilterOntoCalcRule.INSTANCE,
-          MergeProjectOntoCalcRule.INSTANCE,
+          EnumerableRules.ENUMERABLE_CALC_RULE,
+          EnumerableRules.ENUMERABLE_FILTER_TO_CALC_RULE,
+          EnumerableRules.ENUMERABLE_PROJECT_TO_CALC_RULE,
+          CalcMergeRule.INSTANCE,
+          FilterCalcMergeRule.INSTANCE,
+          ProjectCalcMergeRule.INSTANCE,
           FilterToCalcRule.INSTANCE,
           ProjectToCalcRule.INSTANCE,
-          MergeCalcRule.INSTANCE,
+          CalcMergeRule.INSTANCE,
 
           // REVIEW jvs 9-Apr-2006: Do we still need these two?  Doesn't the
-          // combination of MergeCalcRule, FilterToCalcRule, and
+          // combination of CalcMergeRule, FilterToCalcRule, and
           // ProjectToCalcRule have the same effect?
-          MergeFilterOntoCalcRule.INSTANCE,
-          MergeProjectOntoCalcRule.INSTANCE);
+          FilterCalcMergeRule.INSTANCE,
+          ProjectCalcMergeRule.INSTANCE);
 
   /** Program that converts filters and projects to calcs. */
   public static final Program CALC_PROGRAM =
@@ -69,38 +98,38 @@ public class Programs {
 
   public static final ImmutableSet<RelOptRule> RULE_SET =
       ImmutableSet.of(
-          JavaRules.ENUMERABLE_JOIN_RULE,
-          JavaRules.ENUMERABLE_SEMI_JOIN_RULE,
-          JavaRules.ENUMERABLE_PROJECT_RULE,
-          JavaRules.ENUMERABLE_FILTER_RULE,
-          JavaRules.ENUMERABLE_AGGREGATE_RULE,
-          JavaRules.ENUMERABLE_SORT_RULE,
-          JavaRules.ENUMERABLE_LIMIT_RULE,
-          JavaRules.ENUMERABLE_UNION_RULE,
-          JavaRules.ENUMERABLE_INTERSECT_RULE,
-          JavaRules.ENUMERABLE_MINUS_RULE,
-          JavaRules.ENUMERABLE_TABLE_MODIFICATION_RULE,
-          JavaRules.ENUMERABLE_VALUES_RULE,
-          JavaRules.ENUMERABLE_WINDOW_RULE,
-          JavaRules.ENUMERABLE_ONE_ROW_RULE,
-          JavaRules.ENUMERABLE_EMPTY_RULE,
+          EnumerableRules.ENUMERABLE_JOIN_RULE,
+          EnumerableRules.ENUMERABLE_SEMI_JOIN_RULE,
+          EnumerableRules.ENUMERABLE_PROJECT_RULE,
+          EnumerableRules.ENUMERABLE_FILTER_RULE,
+          EnumerableRules.ENUMERABLE_AGGREGATE_RULE,
+          EnumerableRules.ENUMERABLE_SORT_RULE,
+          EnumerableRules.ENUMERABLE_LIMIT_RULE,
+          EnumerableRules.ENUMERABLE_UNION_RULE,
+          EnumerableRules.ENUMERABLE_INTERSECT_RULE,
+          EnumerableRules.ENUMERABLE_MINUS_RULE,
+          EnumerableRules.ENUMERABLE_TABLE_MODIFICATION_RULE,
+          EnumerableRules.ENUMERABLE_VALUES_RULE,
+          EnumerableRules.ENUMERABLE_WINDOW_RULE,
+          EnumerableRules.ENUMERABLE_ONE_ROW_RULE,
+          EnumerableRules.ENUMERABLE_EMPTY_RULE,
           SemiJoinRule.INSTANCE,
-          TableAccessRule.INSTANCE,
-          OptiqPrepareImpl.COMMUTE
-              ? CommutativeJoinRule.INSTANCE
-              : MergeProjectRule.INSTANCE,
+          TableScanRule.INSTANCE,
+          CalcitePrepareImpl.COMMUTE
+              ? JoinAssociateRule.INSTANCE
+              : ProjectMergeRule.INSTANCE,
           AggregateStarTableRule.INSTANCE,
           AggregateStarTableRule.INSTANCE2,
           FilterTableRule.INSTANCE,
-          PushFilterPastProjectRule.INSTANCE,
-          PushFilterPastJoinRule.FILTER_ON_JOIN,
-          RemoveDistinctAggregateRule.INSTANCE,
-          ReduceAggregatesRule.INSTANCE,
+          FilterProjectTransposeRule.INSTANCE,
+          FilterJoinRule.FILTER_ON_JOIN,
+          AggregateExpandDistinctAggregatesRule.INSTANCE,
+          AggregateReduceFunctionsRule.INSTANCE,
           FilterAggregateTransposeRule.INSTANCE,
-          SwapJoinRule.INSTANCE,
-          PushJoinThroughJoinRule.RIGHT,
-          PushJoinThroughJoinRule.LEFT,
-          PushSortPastProjectRule.INSTANCE);
+          JoinCommuteRule.INSTANCE,
+          JoinPushThroughJoinRule.RIGHT,
+          JoinPushThroughJoinRule.LEFT,
+          SortProjectTransposeRule.INSTANCE);
 
   // private constructor for utility class
   private Programs() {}
@@ -170,9 +199,9 @@ public class Programs {
   }
 
   /** Creates a program that invokes heuristic join-order optimization
-   * (via {@link org.eigenbase.rel.rules.ConvertMultiJoinRule},
-   * {@link org.eigenbase.rel.rules.MultiJoinRel} and
-   * {@link org.eigenbase.rel.rules.LoptOptimizeJoinRule})
+   * (via {@link org.apache.calcite.rel.rules.JoinToMultiJoinRule},
+   * {@link org.apache.calcite.rel.rules.MultiJoin} and
+   * {@link org.apache.calcite.rel.rules.LoptOptimizeJoinRule})
    * if there are 6 or more joins (7 or more relations). */
   public static Program heuristicJoinOrder(final Collection<RelOptRule> rules,
       final boolean bushy, final int minJoinCount) {
@@ -184,27 +213,27 @@ public class Programs {
         if (joinCount < minJoinCount) {
           program = ofRules(rules);
         } else {
-          // Create a program that gathers together joins as a MultiJoinRel.
+          // Create a program that gathers together joins as a MultiJoin.
           final HepProgram hep = new HepProgramBuilder()
-              .addRuleInstance(PushFilterPastJoinRule.FILTER_ON_JOIN)
+              .addRuleInstance(FilterJoinRule.FILTER_ON_JOIN)
               .addMatchOrder(HepMatchOrder.BOTTOM_UP)
-              .addRuleInstance(ConvertMultiJoinRule.INSTANCE)
+              .addRuleInstance(JoinToMultiJoinRule.INSTANCE)
               .build();
           final Program program1 =
               of(hep, false, new DefaultRelMetadataProvider());
 
-          // Create a program that contains a rule to expand a MultiJoinRel
+          // Create a program that contains a rule to expand a MultiJoin
           // into heuristically ordered joins.
-          // We use the rule set passed in, but remove SwapJoinRule and
-          // PushJoinThroughJoinRule, because they cause exhaustive search.
+          // We use the rule set passed in, but remove JoinCommuteRule and
+          // JoinPushThroughJoinRule, because they cause exhaustive search.
           final List<RelOptRule> list = Lists.newArrayList(rules);
           list.removeAll(
-              ImmutableList.of(SwapJoinRule.INSTANCE,
-                  CommutativeJoinRule.INSTANCE,
-                  PushJoinThroughJoinRule.LEFT,
-                  PushJoinThroughJoinRule.RIGHT));
+              ImmutableList.of(JoinCommuteRule.INSTANCE,
+                  JoinAssociateRule.INSTANCE,
+                  JoinPushThroughJoinRule.LEFT,
+                  JoinPushThroughJoinRule.RIGHT));
           list.add(bushy
-              ? OptimizeBushyJoinRule.INSTANCE
+              ? MultiJoinOptimizeBushyRule.INSTANCE
               : LoptOptimizeJoinRule.INSTANCE);
           final Program program2 = ofRules(list);
 

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/tools/RelConversionException.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/tools/RelConversionException.java b/core/src/main/java/org/apache/calcite/tools/RelConversionException.java
index c03aaef..6c1cecc 100644
--- a/core/src/main/java/org/apache/calcite/tools/RelConversionException.java
+++ b/core/src/main/java/org/apache/calcite/tools/RelConversionException.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package net.hydromatic.optiq.tools;
+package org.apache.calcite.tools;
 
 /**
  * An Exception thrown when attempting conversion to a set of
- * {@link org.eigenbase.rel.RelNode}s.
+ * {@link org.apache.calcite.rel.RelNode}s.
  */
 public class RelConversionException extends Exception {
   /** Creates a RelConversionException with the specified detail message and

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/tools/RuleSet.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/tools/RuleSet.java b/core/src/main/java/org/apache/calcite/tools/RuleSet.java
index 8c467b1..b9b92ea 100644
--- a/core/src/main/java/org/apache/calcite/tools/RuleSet.java
+++ b/core/src/main/java/org/apache/calcite/tools/RuleSet.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package net.hydromatic.optiq.tools;
+package org.apache.calcite.tools;
 
-import org.eigenbase.relopt.RelOptRule;
+import org.apache.calcite.plan.RelOptRule;
 
 /**
  * A set rules associated with a particular

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/tools/RuleSets.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/tools/RuleSets.java b/core/src/main/java/org/apache/calcite/tools/RuleSets.java
index 7d9857b..8a1cdc0 100644
--- a/core/src/main/java/org/apache/calcite/tools/RuleSets.java
+++ b/core/src/main/java/org/apache/calcite/tools/RuleSets.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package net.hydromatic.optiq.tools;
+package org.apache.calcite.tools;
 
-import org.eigenbase.relopt.RelOptRule;
+import org.apache.calcite.plan.RelOptRule;
 
 import com.google.common.collect.ImmutableList;
 
@@ -26,7 +26,7 @@ import java.util.Iterator;
 /**
  * Utilities for creating and composing rule sets.
  *
- * @see net.hydromatic.optiq.tools.RuleSet
+ * @see org.apache.calcite.tools.RuleSet
  */
 public class RuleSets {
   private RuleSets() {
@@ -50,13 +50,11 @@ public class RuleSets {
       this.rules = rules;
     }
 
-    @Override
-    public int hashCode() {
+    @Override public int hashCode() {
       return rules.hashCode();
     }
 
-    @Override
-    public boolean equals(Object obj) {
+    @Override public boolean equals(Object obj) {
       return obj == this
           || obj instanceof ListRuleSet
           && rules.equals(((ListRuleSet) obj).rules);

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/tools/ValidationException.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/tools/ValidationException.java b/core/src/main/java/org/apache/calcite/tools/ValidationException.java
index 4046f9e..9651c71 100644
--- a/core/src/main/java/org/apache/calcite/tools/ValidationException.java
+++ b/core/src/main/java/org/apache/calcite/tools/ValidationException.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package net.hydromatic.optiq.tools;
+package org.apache.calcite.tools;
 
 /**
  * An Exception thrown when attempting to validate a SQL parse tree.

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/tools/package-info.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/tools/package-info.java b/core/src/main/java/org/apache/calcite/tools/package-info.java
index 166259a..3273ae2 100644
--- a/core/src/main/java/org/apache/calcite/tools/package-info.java
+++ b/core/src/main/java/org/apache/calcite/tools/package-info.java
@@ -18,6 +18,6 @@
 /**
  * Provides utility classes.
  */
-package net.hydromatic.optiq.tools;
+package org.apache.calcite.tools;
 
 // End package-info.java

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/util/BarfingInvocationHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/util/BarfingInvocationHandler.java b/core/src/main/java/org/apache/calcite/util/BarfingInvocationHandler.java
index d83b057..94c50a6 100644
--- a/core/src/main/java/org/apache/calcite/util/BarfingInvocationHandler.java
+++ b/core/src/main/java/org/apache/calcite/util/BarfingInvocationHandler.java
@@ -14,9 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.util;
+package org.apache.calcite.util;
 
-import java.lang.reflect.*;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.UndeclaredThrowableException;
 
 /**
  * A class derived from <code>BarfingInvocationHandler</code> handles a method

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/util/BasicDatetime.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/util/BasicDatetime.java b/core/src/main/java/org/apache/calcite/util/BasicDatetime.java
index f0f48ff..0d38bc0 100644
--- a/core/src/main/java/org/apache/calcite/util/BasicDatetime.java
+++ b/core/src/main/java/org/apache/calcite/util/BasicDatetime.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.util14;
+package org.apache.calcite.util;
 
-import java.util.*;
+import java.util.TimeZone;
 
 /**
  * BasicDatetime is an interface for dates, times, or timestamps that can be
@@ -35,9 +35,9 @@ import java.util.*;
  *
  * <p>A zoned time represents a time that was created in a particular time zone.
  * It may contain date and/or time components that are valid when interpreted
- * relative to a specified time zone, according to a {@link java.util.Calendar
- * Calendar}. Jdbc types, such as {@link java.sql.Date} typically contain zoned
- * times.
+ * relative to a specified time zone, according to a
+ * {@link java.util.Calendar Calendar}. Jdbc types, such as
+ * {@link java.sql.Date} typically contain zoned times.
  */
 public interface BasicDatetime {
   //~ Methods ----------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/util/Benchmark.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/util/Benchmark.java b/core/src/main/java/org/apache/calcite/util/Benchmark.java
index 95aaa6c..b992427 100644
--- a/core/src/main/java/org/apache/calcite/util/Benchmark.java
+++ b/core/src/main/java/org/apache/calcite/util/Benchmark.java
@@ -14,15 +14,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.util;
+package org.apache.calcite.util;
+
+import org.apache.calcite.linq4j.function.Function1;
 
 import java.text.MessageFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import net.hydromatic.linq4j.function.Function1;
-
 /**
  * Helps to run benchmarks by running the same task repeatedly and averaging
  * the running times.

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/util/BitSets.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/util/BitSets.java b/core/src/main/java/org/apache/calcite/util/BitSets.java
index 0616fbb..0d79c85 100644
--- a/core/src/main/java/org/apache/calcite/util/BitSets.java
+++ b/core/src/main/java/org/apache/calcite/util/BitSets.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package net.hydromatic.optiq.util;
+package org.apache.calcite.util;
 
-import org.eigenbase.util.ImmutableIntList;
-import org.eigenbase.util.IntList;
-
-import java.util.*;
+import java.util.BitSet;
+import java.util.Iterator;
+import java.util.SortedMap;
+import java.util.TreeMap;
 
 /**
  * Utility functions for {@link BitSet}.
@@ -265,7 +265,7 @@ public final class BitSets {
   }
 
   /** Populates a {@link BitSet} from an
-   *  {@link org.eigenbase.util.ImmutableIntList}. */
+   *  {@link ImmutableIntList}. */
   public static void populate(BitSet bitSet, ImmutableIntList list) {
     for (int i = 0; i < list.size(); i++) {
       bitSet.set(list.getInt(i));

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/util/BitString.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/util/BitString.java b/core/src/main/java/org/apache/calcite/util/BitString.java
index 1dc6a95..ab7e9c3 100644
--- a/core/src/main/java/org/apache/calcite/util/BitString.java
+++ b/core/src/main/java/org/apache/calcite/util/BitString.java
@@ -14,13 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.util;
+package org.apache.calcite.util;
 
-import java.math.*;
+import java.math.BigInteger;
 import java.util.List;
 
-import org.eigenbase.util14.*;
-
 /**
  * String of bits.
  *
@@ -28,12 +26,13 @@ import org.eigenbase.util14.*;
  * specified length. The length is preserved even if this means that the bit
  * string has leading '0's.
  *
- * <p>You can create a bit string from a string of 0s and 1s ({@link
- * #BitString(String, int)} or {@link #createFromBitString}), or from a string of
- * hex digits ({@link #createFromHexString}). You can convert it to a byte array
- * ({@link #getAsByteArray}), to a bit string ({@link #toBitString}), or to a
- * hex string ({@link #toHexString}). A utility method {@link
- * #toByteArrayFromBitString} converts a bit string directly to a byte array.
+ * <p>You can create a bit string from a string of 0s and 1s
+ * ({@link #BitString(String, int)} or {@link #createFromBitString}), or from a
+ * string of hex digits ({@link #createFromHexString}). You can convert it to a
+ * byte array ({@link #getAsByteArray}), to a bit string ({@link #toBitString}),
+ * or to a hex string ({@link #toHexString}). A utility method
+ * {@link #toByteArrayFromBitString} converts a bit string directly to a byte
+ * array.
  *
  * <p>This class is immutable: once created, none of the methods modify the
  * value.

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/util/Bug.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/util/Bug.java b/core/src/main/java/org/apache/calcite/util/Bug.java
index 37a9db6..b851f27 100644
--- a/core/src/main/java/org/apache/calcite/util/Bug.java
+++ b/core/src/main/java/org/apache/calcite/util/Bug.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.util;
+package org.apache.calcite.util;
 
 /**
  * Holder for a list of constants describing which bugs which have not been
@@ -29,7 +29,7 @@ package org.eigenbase.util;
  * <pre>Statement stmt = connection.createStatement();
  * int rowCount = stmt.execute(
  *     "INSERT INTO FemaleEmps SELECT * FROM Emps WHERE gender = 'F'");
- * if (Bug.OPTIQ123_FIXED) {
+ * if (Bug.CALCITE_123_FIXED) {
  *    assertEquals(rowCount, 5);
  * }</pre>
  * </blockquote>

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/util/BuiltInMethod.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/util/BuiltInMethod.java b/core/src/main/java/org/apache/calcite/util/BuiltInMethod.java
index 9ed9b8f..8ad1742 100644
--- a/core/src/main/java/org/apache/calcite/util/BuiltInMethod.java
+++ b/core/src/main/java/org/apache/calcite/util/BuiltInMethod.java
@@ -14,22 +14,47 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package net.hydromatic.optiq;
+package org.apache.calcite.util;
 
-import net.hydromatic.linq4j.*;
-import net.hydromatic.linq4j.expressions.FunctionExpression;
-import net.hydromatic.linq4j.expressions.Primitive;
-import net.hydromatic.linq4j.expressions.Types;
-import net.hydromatic.linq4j.function.*;
-
-import net.hydromatic.optiq.impl.interpreter.Row;
-import net.hydromatic.optiq.impl.java.ReflectiveSchema;
-import net.hydromatic.optiq.impl.jdbc.JdbcSchema;
-import net.hydromatic.optiq.runtime.*;
-
-import org.eigenbase.rel.metadata.Metadata;
-import org.eigenbase.rex.RexNode;
-import org.eigenbase.sql.SqlExplainLevel;
+import org.apache.calcite.DataContext;
+import org.apache.calcite.adapter.java.ReflectiveSchema;
+import org.apache.calcite.adapter.jdbc.JdbcSchema;
+import org.apache.calcite.interpreter.Row;
+import org.apache.calcite.linq4j.AbstractEnumerable;
+import org.apache.calcite.linq4j.Enumerable;
+import org.apache.calcite.linq4j.Enumerator;
+import org.apache.calcite.linq4j.ExtendedEnumerable;
+import org.apache.calcite.linq4j.Linq4j;
+import org.apache.calcite.linq4j.QueryProvider;
+import org.apache.calcite.linq4j.Queryable;
+import org.apache.calcite.linq4j.function.EqualityComparer;
+import org.apache.calcite.linq4j.function.Function0;
+import org.apache.calcite.linq4j.function.Function1;
+import org.apache.calcite.linq4j.function.Function2;
+import org.apache.calcite.linq4j.function.Functions;
+import org.apache.calcite.linq4j.function.Predicate1;
+import org.apache.calcite.linq4j.function.Predicate2;
+import org.apache.calcite.linq4j.tree.FunctionExpression;
+import org.apache.calcite.linq4j.tree.Primitive;
+import org.apache.calcite.linq4j.tree.Types;
+import org.apache.calcite.rel.metadata.Metadata;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.runtime.BinarySearch;
+import org.apache.calcite.runtime.Bindable;
+import org.apache.calcite.runtime.Enumerables;
+import org.apache.calcite.runtime.FlatLists;
+import org.apache.calcite.runtime.ResultSetEnumerable;
+import org.apache.calcite.runtime.SortedMultiMap;
+import org.apache.calcite.runtime.SqlFunctions;
+import org.apache.calcite.runtime.Typed;
+import org.apache.calcite.schema.FilterableTable;
+import org.apache.calcite.schema.ModifiableTable;
+import org.apache.calcite.schema.QueryableTable;
+import org.apache.calcite.schema.ScannableTable;
+import org.apache.calcite.schema.Schema;
+import org.apache.calcite.schema.SchemaPlus;
+import org.apache.calcite.schema.Schemas;
+import org.apache.calcite.sql.SqlExplainLevel;
 
 import com.google.common.collect.ImmutableMap;
 
@@ -38,15 +63,34 @@ import java.lang.reflect.Method;
 import java.sql.ResultSet;
 import java.sql.Time;
 import java.sql.Timestamp;
-import java.util.*;
+import java.util.BitSet;
+import java.util.Calendar;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.TimeZone;
 import javax.sql.DataSource;
 
-import static org.eigenbase.rel.metadata.BuiltInMetadata.*;
+import static org.apache.calcite.rel.metadata.BuiltInMetadata.ColumnOrigin;
+import static org.apache.calcite.rel.metadata.BuiltInMetadata.ColumnUniqueness;
+import static org.apache.calcite.rel.metadata.BuiltInMetadata.CumulativeCost;
+import static org.apache.calcite.rel.metadata.BuiltInMetadata.DistinctRowCount;
+import static org.apache.calcite.rel.metadata.BuiltInMetadata.ExplainVisibility;
+import static org.apache.calcite.rel.metadata.BuiltInMetadata.NonCumulativeCost;
+import static org.apache.calcite.rel.metadata.BuiltInMetadata.PercentageOriginalRows;
+import static org.apache.calcite.rel.metadata.BuiltInMetadata.PopulationSize;
+import static org.apache.calcite.rel.metadata.BuiltInMetadata.Predicates;
+import static org.apache.calcite.rel.metadata.BuiltInMetadata.RowCount;
+import static org.apache.calcite.rel.metadata.BuiltInMetadata.Selectivity;
+import static org.apache.calcite.rel.metadata.BuiltInMetadata.UniqueKeys;
 
 /**
- * Builtin methods.
+ * Built-in methods.
  */
-public enum BuiltinMethod {
+public enum BuiltInMethod {
   QUERYABLE_SELECT(Queryable.class, "select", FunctionExpression.class),
   QUERYABLE_AS_ENUMERABLE(Queryable.class, "asEnumerable"),
   QUERYABLE_TABLE_AS_QUERYABLE(QueryableTable.class, "asQueryable",
@@ -241,12 +285,12 @@ public enum BuiltinMethod {
   public final Method method;
   public final Constructor constructor;
 
-  public static final ImmutableMap<Method, BuiltinMethod> MAP;
+  public static final ImmutableMap<Method, BuiltInMethod> MAP;
 
   static {
-    final ImmutableMap.Builder<Method, BuiltinMethod> builder =
+    final ImmutableMap.Builder<Method, BuiltInMethod> builder =
         ImmutableMap.builder();
-    for (BuiltinMethod value : BuiltinMethod.values()) {
+    for (BuiltInMethod value : BuiltInMethod.values()) {
       if (value.method != null) {
         builder.put(value.method, value);
       }
@@ -254,15 +298,15 @@ public enum BuiltinMethod {
     MAP = builder.build();
   }
 
-  BuiltinMethod(Class clazz, String methodName, Class... argumentTypes) {
+  BuiltInMethod(Class clazz, String methodName, Class... argumentTypes) {
     this.method = Types.lookupMethod(clazz, methodName, argumentTypes);
     this.constructor = null;
   }
 
-  BuiltinMethod(Class clazz, Class... argumentTypes) {
+  BuiltInMethod(Class clazz, Class... argumentTypes) {
     this.method = null;
     this.constructor = Types.lookupConstructor(clazz, argumentTypes);
   }
 }
 
-// End BuiltinMethod.java
+// End BuiltInMethod.java

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/util/CalciteParserException.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/util/CalciteParserException.java b/core/src/main/java/org/apache/calcite/util/CalciteParserException.java
index 49bfc9e..ff88c96 100644
--- a/core/src/main/java/org/apache/calcite/util/CalciteParserException.java
+++ b/core/src/main/java/org/apache/calcite/util/CalciteParserException.java
@@ -14,14 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.util14;
+package org.apache.calcite.util;
 
 /**
- * This is a tagging interface to allow a {@link
- * org.eigenbase.sql.parser.SqlParseException} to be identified without adding a
+ * Tagging interface to allow a
+ * {@link org.apache.calcite.sql.parser.SqlParseException}
+ * to be identified without adding a
  * dependency on it from client-side code.
  */
-public interface EigenbaseParserException {
+public interface CalciteParserException {
 }
 
-// End EigenbaseParserException.java
+// End CalciteParserException.java

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/util/CalciteValidatorException.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/util/CalciteValidatorException.java b/core/src/main/java/org/apache/calcite/util/CalciteValidatorException.java
index b03fb2b..2adc473 100644
--- a/core/src/main/java/org/apache/calcite/util/CalciteValidatorException.java
+++ b/core/src/main/java/org/apache/calcite/util/CalciteValidatorException.java
@@ -14,14 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.util14;
+package org.apache.calcite.util;
 
 /**
- * This is a tagging interface to allow {@link
- * org.eigenbase.sql.validate.SqlValidatorException} to be identified without
+ * Tagging interface to allow a
+ * {@link org.apache.calcite.sql.validate.SqlValidatorException}
+ * to be identified without
  * adding a dependency on it from client-side code.
  */
-public interface EigenbaseValidatorException {
+public interface CalciteValidatorException {
 }
 
-// End EigenbaseValidatorException.java
+// End CalciteValidatorException.java

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/util/CancelFlag.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/util/CancelFlag.java b/core/src/main/java/org/apache/calcite/util/CancelFlag.java
index b088efe..b1f57b7 100644
--- a/core/src/main/java/org/apache/calcite/util/CancelFlag.java
+++ b/core/src/main/java/org/apache/calcite/util/CancelFlag.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.util;
+package org.apache.calcite.util;
 
 /**
  * CancelFlag is used to post and check cancellation requests.

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/util/CastingList.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/util/CastingList.java b/core/src/main/java/org/apache/calcite/util/CastingList.java
index e9583cb..8bcf85c 100644
--- a/core/src/main/java/org/apache/calcite/util/CastingList.java
+++ b/core/src/main/java/org/apache/calcite/util/CastingList.java
@@ -14,19 +14,22 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.eigenbase.util;
+package org.apache.calcite.util;
 
-import java.util.*;
+import java.util.AbstractList;
+import java.util.List;
 
 /**
  * Converts a list whose members are automatically down-cast to a given type.
  *
  * <p>If a member of the backing list is not an instanceof <code>E</code>, the
- * accessing method (such as {@link List#get}) will throw a {@link
- * ClassCastException}.
+ * accessing method (such as {@link List#get}) will throw a
+ * {@link ClassCastException}.
  *
  * <p>All modifications are automatically written to the backing list. Not
  * synchronized.
+ *
+ * @param <E> Element type
  */
 public class CastingList<E> extends AbstractList<E> implements List<E> {
   //~ Instance fields --------------------------------------------------------