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:38 UTC
[30/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/rules/package-info.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/rules/package-info.java b/core/src/main/java/org/apache/calcite/rel/rules/package-info.java
index b6f07af..47ef478 100644
--- a/core/src/main/java/org/apache/calcite/rel/rules/package-info.java
+++ b/core/src/main/java/org/apache/calcite/rel/rules/package-info.java
@@ -16,21 +16,37 @@
*/
/**
- * Defines relational expressions.<p> </p>
+ * Provides a core set of planner rules.
+ *
+ * <p>Consider this package to be the "standard library" of planner rules.
+ * Most of the common rewrites that you would want to perform on logical
+ * relational expressions, or generically on any data source, are present,
+ * and have been well tested.
+ *
+ * <p>Of course, the library is never complete, and contributions are welcome.
+ *
+ * <p>Not present are rules specific to a particular data source: look in that
+ * data source's adapter.
+ *
+ * <p>Also out of the scope of this package are rules that support a particular
+ * operation, such as decorrelation or recognizing materialized views. Those are
+ * defined along with the algorithm.
+ *
+ * <p>For
*
* <h2>Related packages and classes</h2>
* <ul>
* <li>Package<code> <a href="../sql/package-summary.html">
- * org.eigenbase.sql</a></code>
+ * org.apache.calcite.sql</a></code>
* is an object model for SQL expressions</li>
- * <li>Package<code> <a href="../sql/package-summary.html">
- * org.eigenbase.rex</a></code>
+ * <li>Package<code> <a href="../rex/package-summary.html">
+ * org.apache.calcite.rex</a></code>
* is an object model for relational row expressions</li>
- * <li>Package<code> <a href="../relopt/package-summary.html">
- * org.eigenbase.relopt</a></code>
+ * <li>Package<code> <a href="../plan/package-summary.html">
+ * org.apache.calcite.plan</a></code>
* provides an optimizer interface.</li>
* </ul>
*/
-package org.eigenbase.rel.rules;
+package org.apache.calcite.rel.rules;
// End package-info.java
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/type/RelCrossType.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/type/RelCrossType.java b/core/src/main/java/org/apache/calcite/rel/type/RelCrossType.java
index 4418d43..d361b7b 100644
--- a/core/src/main/java/org/apache/calcite/rel/type/RelCrossType.java
+++ b/core/src/main/java/org/apache/calcite/rel/type/RelCrossType.java
@@ -14,19 +14,19 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.reltype;
+package org.apache.calcite.rel.type;
-import java.util.List;
-
-import net.hydromatic.linq4j.Ord;
+import org.apache.calcite.linq4j.Ord;
import com.google.common.collect.ImmutableList;
+import java.util.List;
+
/**
* Type of the cartesian product of two or more sets of records.
*
- * <p>Its fields are those of its constituent records, but unlike a {@link
- * RelRecordType}, those fields' names are not necessarily distinct.</p>
+ * <p>Its fields are those of its constituent records, but unlike a
+ * {@link RelRecordType}, those fields' names are not necessarily distinct.</p>
*/
public class RelCrossType extends RelDataTypeImpl {
//~ Instance fields --------------------------------------------------------
@@ -54,13 +54,11 @@ public class RelCrossType extends RelDataTypeImpl {
//~ Methods ----------------------------------------------------------------
- @Override
- public boolean isStruct() {
+ @Override public boolean isStruct() {
return false;
}
- @Override
- public List<RelDataTypeField> getFieldList() {
+ @Override public List<RelDataTypeField> getFieldList() {
return fieldList;
}
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/type/RelDataType.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/type/RelDataType.java b/core/src/main/java/org/apache/calcite/rel/type/RelDataType.java
index a470296..f378d48 100644
--- a/core/src/main/java/org/apache/calcite/rel/type/RelDataType.java
+++ b/core/src/main/java/org/apache/calcite/rel/type/RelDataType.java
@@ -14,13 +14,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.reltype;
+package org.apache.calcite.rel.type;
-import java.nio.charset.*;
-import java.util.*;
+import org.apache.calcite.sql.SqlCollation;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlIntervalQualifier;
+import org.apache.calcite.sql.type.SqlTypeName;
-import org.eigenbase.sql.*;
-import org.eigenbase.sql.type.*;
+import java.nio.charset.Charset;
+import java.util.List;
/**
* RelDataType represents the type of a scalar expression or entire row returned
@@ -179,9 +181,9 @@ public interface RelDataType /*extends Type*/ {
/**
* Gets the {@link SqlIdentifier} associated with this type. For a
- * predefined type, this is a simple identifier based on {@link
- * #getSqlTypeName}. For a user-defined type, this is a compound identifier
- * which uniquely names the type.
+ * predefined type, this is a simple identifier based on
+ * {@link #getSqlTypeName}. For a user-defined type, this is a compound
+ * identifier which uniquely names the type.
*
* @return SqlIdentifier, or null if this is not an SQL type
*/
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeComparability.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeComparability.java b/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeComparability.java
index 3246cb0..7dbabbb 100644
--- a/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeComparability.java
+++ b/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeComparability.java
@@ -14,9 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.reltype;
+package org.apache.calcite.rel.type;
-import org.eigenbase.util.*;
+import org.apache.calcite.util.Util;
/**
* RelDataTypeComparability is an enumeration of the categories of comparison
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeFactory.java b/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeFactory.java
index 0d9fd06..16520a7 100644
--- a/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeFactory.java
+++ b/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeFactory.java
@@ -14,14 +14,16 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.reltype;
+package org.apache.calcite.rel.type;
-import java.nio.charset.*;
+import org.apache.calcite.sql.SqlCollation;
+import org.apache.calcite.sql.SqlIntervalQualifier;
+import org.apache.calcite.sql.type.SqlTypeName;
-import java.util.*;
-
-import org.eigenbase.sql.*;
-import org.eigenbase.sql.type.*;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
/**
* RelDataTypeFactory is a factory for datatype descriptors. It defines methods
@@ -30,7 +32,7 @@ import org.eigenbase.sql.type.*;
* SQL 2003 is implementation defined or impractical.
*
* <p>This interface is an example of the
- * {@link org.eigenbase.util.Glossary#ABSTRACT_FACTORY_PATTERN abstract factory pattern}.
+ * {@link org.apache.calcite.util.Glossary#ABSTRACT_FACTORY_PATTERN abstract factory pattern}.
* Any implementation of <code>RelDataTypeFactory</code> must ensure that type
* objects are canonical: two types are equal if and only if they are
* represented by the same Java object. This reduces memory consumption and
@@ -276,7 +278,7 @@ public interface RelDataTypeFactory {
/**
* Creates a
- * {@link org.eigenbase.reltype.RelDataTypeFactory.FieldInfoBuilder}.
+ * {@link org.apache.calcite.rel.type.RelDataTypeFactory.FieldInfoBuilder}.
*/
FieldInfoBuilder builder();
@@ -351,7 +353,7 @@ public interface RelDataTypeFactory {
/**
* Adds a field with a type created using
- * {@link org.eigenbase.reltype.RelDataTypeFactory#createSqlType(org.eigenbase.sql.type.SqlTypeName)}.
+ * {@link org.apache.calcite.rel.type.RelDataTypeFactory#createSqlType(org.apache.calcite.sql.type.SqlTypeName)}.
*/
public FieldInfoBuilder add(String name, SqlTypeName typeName) {
add(name, typeFactory.createSqlType(typeName));
@@ -360,7 +362,7 @@ public interface RelDataTypeFactory {
/**
* Adds a field with a type created using
- * {@link org.eigenbase.reltype.RelDataTypeFactory#createSqlType(org.eigenbase.sql.type.SqlTypeName, int)}.
+ * {@link org.apache.calcite.rel.type.RelDataTypeFactory#createSqlType(org.apache.calcite.sql.type.SqlTypeName, int)}.
*/
public FieldInfoBuilder add(
String name, SqlTypeName typeName, int precision) {
@@ -370,7 +372,7 @@ public interface RelDataTypeFactory {
/**
* Adds a field with a type created using
- * {@link org.eigenbase.reltype.RelDataTypeFactory#createSqlType(org.eigenbase.sql.type.SqlTypeName, int, int)}.
+ * {@link org.apache.calcite.rel.type.RelDataTypeFactory#createSqlType(org.apache.calcite.sql.type.SqlTypeName, int, int)}.
*/
public FieldInfoBuilder add(
String name, SqlTypeName typeName, int precision, int scale) {
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeFactoryImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeFactoryImpl.java b/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeFactoryImpl.java
index 541bd83..06ec977 100644
--- a/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeFactoryImpl.java
+++ b/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeFactoryImpl.java
@@ -14,24 +14,35 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.reltype;
-
-import java.lang.reflect.*;
-import java.nio.charset.*;
-import java.sql.*;
-import java.util.*;
-
-import org.eigenbase.sql.*;
-import org.eigenbase.sql.type.*;
-import org.eigenbase.util.*;
-
-import net.hydromatic.linq4j.expressions.Primitive;
+package org.apache.calcite.rel.type;
+
+import org.apache.calcite.linq4j.tree.Primitive;
+import org.apache.calcite.sql.SqlCollation;
+import org.apache.calcite.sql.type.JavaToSqlTypeConversionRules;
+import org.apache.calcite.sql.type.SqlTypeFamily;
+import org.apache.calcite.sql.type.SqlTypeName;
+import org.apache.calcite.sql.type.SqlTypeUtil;
+import org.apache.calcite.util.Bug;
+import org.apache.calcite.util.Pair;
+import org.apache.calcite.util.Util;
import com.google.common.base.Preconditions;
-import com.google.common.cache.*;
+import com.google.common.cache.CacheBuilder;
+import com.google.common.cache.CacheLoader;
+import com.google.common.cache.LoadingCache;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.nio.charset.Charset;
+import java.sql.Time;
+import java.sql.Timestamp;
+import java.util.AbstractList;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
/**
* Abstract base for implementations of {@link RelDataTypeFactory}.
*/
@@ -46,8 +57,7 @@ public abstract class RelDataTypeFactoryImpl implements RelDataTypeFactory {
.softValues()
.build(
new CacheLoader<Object, RelDataType>() {
- @Override
- public RelDataType load(Object key) {
+ @Override public RelDataType load(Object key) {
if (key instanceof RelDataType) {
return (RelDataType) key;
}
@@ -147,24 +157,20 @@ public abstract class RelDataTypeFactoryImpl implements RelDataTypeFactory {
final RelDataTypeFactory.FieldInfo fieldInfo) {
return canonize(
new AbstractList<String>() {
- @Override
- public String get(int index) {
+ @Override public String get(int index) {
return fieldInfo.getFieldName(index);
}
- @Override
- public int size() {
+ @Override public int size() {
return fieldInfo.getFieldCount();
}
},
new AbstractList<RelDataType>() {
- @Override
- public RelDataType get(int index) {
+ @Override public RelDataType get(int index) {
return fieldInfo.getFieldType(index);
}
- @Override
- public int size() {
+ @Override public int size() {
return fieldInfo.getFieldCount();
}
});
@@ -613,8 +619,7 @@ public abstract class RelDataTypeFactoryImpl implements RelDataTypeFactory {
return nullable;
}
- @Override
- public RelDataTypeFamily getFamily() {
+ @Override public RelDataTypeFamily getFamily() {
RelDataTypeFamily family = CLASS_FAMILIES.get(clazz);
return family != null ? family : this;
}
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeFamily.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeFamily.java b/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeFamily.java
index e69544d..54a3da0 100644
--- a/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeFamily.java
+++ b/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeFamily.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.reltype;
+package org.apache.calcite.rel.type;
/**
* RelDataTypeFamily represents a family of related types. The specific criteria
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeField.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeField.java b/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeField.java
index c776c9f..2094d48 100644
--- a/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeField.java
+++ b/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeField.java
@@ -14,13 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.reltype;
+package org.apache.calcite.rel.type;
import java.util.Map;
/**
- * RelDataTypeField represents the definition of a field in a structured {@link
- * RelDataType}.
+ * RelDataTypeField represents the definition of a field in a structured
+ * {@link RelDataType}.
*
* <p>Extends the {@link java.util.Map.Entry} interface to allow convenient
* inter-operation with Java collections classes. In any implementation of this
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeFieldImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeFieldImpl.java b/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeFieldImpl.java
index 7ac2775..59eea0c 100644
--- a/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeFieldImpl.java
+++ b/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeFieldImpl.java
@@ -14,9 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.reltype;
+package org.apache.calcite.rel.type;
-import java.io.*;
+import java.io.Serializable;
/**
* Default implementation of {@link RelDataTypeField}.
@@ -46,15 +46,13 @@ public class RelDataTypeFieldImpl implements RelDataTypeField, Serializable {
//~ Methods ----------------------------------------------------------------
- @Override
- public int hashCode() {
+ @Override public int hashCode() {
return index
^ name.hashCode()
^ type.hashCode();
}
- @Override
- public boolean equals(Object obj) {
+ @Override public boolean equals(Object obj) {
if (this == obj) {
return true;
}
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeImpl.java b/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeImpl.java
index 688666a..d917667 100644
--- a/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeImpl.java
+++ b/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeImpl.java
@@ -14,21 +14,24 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.reltype;
+package org.apache.calcite.rel.type;
-import java.io.*;
-import java.nio.charset.*;
-import java.util.*;
-
-import org.eigenbase.sql.*;
-import org.eigenbase.sql.parser.*;
-import org.eigenbase.sql.type.*;
-import org.eigenbase.util.Pair;
-import org.eigenbase.util.Util;
+import org.apache.calcite.sql.SqlCollation;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlIntervalQualifier;
+import org.apache.calcite.sql.parser.SqlParserPos;
+import org.apache.calcite.sql.type.BasicSqlType;
+import org.apache.calcite.sql.type.SqlTypeName;
+import org.apache.calcite.util.Pair;
+import org.apache.calcite.util.Util;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
+import java.io.Serializable;
+import java.nio.charset.Charset;
+import java.util.List;
+
/**
* RelDataTypeImpl is an abstract base for implementations of
* {@link RelDataType}.
@@ -60,8 +63,8 @@ public abstract class RelDataTypeImpl
}
/**
- * Default constructor, to allow derived classes such as {@link
- * BasicSqlType} to be {@link Serializable}.
+ * Default constructor, to allow derived classes such as
+ * {@link BasicSqlType} to be {@link Serializable}.
*
* <p>(The serialization specification says that a class can be serializable
* even if its base class is not serializable, provided that the base class
@@ -269,8 +272,8 @@ public abstract class RelDataTypeImpl
};
}
- /** Returns a {@link org.eigenbase.reltype.RelProtoDataType} that will create
- * a type {@code typeName}.
+ /** Returns a {@link org.apache.calcite.rel.type.RelProtoDataType}
+ * that will create a type {@code typeName}.
*
* <p>For example, {@code proto(SqlTypeName.DATE), false}
* will create {@code DATE NOT NULL}.</p>
@@ -290,8 +293,8 @@ public abstract class RelDataTypeImpl
};
}
- /** Returns a {@link org.eigenbase.reltype.RelProtoDataType} that will create
- * a type {@code typeName(precision)}.
+ /** Returns a {@link org.apache.calcite.rel.type.RelProtoDataType}
+ * that will create a type {@code typeName(precision)}.
*
* <p>For example, {@code proto(SqlTypeName.VARCHAR, 100, false)}
* will create {@code VARCHAR(100) NOT NULL}.</p>
@@ -312,8 +315,8 @@ public abstract class RelDataTypeImpl
};
}
- /** Returns a {@link org.eigenbase.reltype.RelProtoDataType} that will create
- * a type {@code typeName(precision, scale)}.
+ /** Returns a {@link org.apache.calcite.rel.type.RelProtoDataType}
+ * that will create a type {@code typeName(precision, scale)}.
*
* <p>For example, {@code proto(SqlTypeName.DECIMAL, 7, 2, false)}
* will create {@code DECIMAL(7, 2) NOT NULL}.</p>
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/type/RelDataTypePrecedenceList.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/type/RelDataTypePrecedenceList.java b/core/src/main/java/org/apache/calcite/rel/type/RelDataTypePrecedenceList.java
index 8d1f006..e2ecea1 100644
--- a/core/src/main/java/org/apache/calcite/rel/type/RelDataTypePrecedenceList.java
+++ b/core/src/main/java/org/apache/calcite/rel/type/RelDataTypePrecedenceList.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.reltype;
+package org.apache.calcite.rel.type;
/**
* RelDataTypePrecedenceList defines a type precedence list for a particular
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeSystem.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeSystem.java b/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeSystem.java
index e72722f..737a644 100644
--- a/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeSystem.java
+++ b/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeSystem.java
@@ -14,9 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.reltype;
+package org.apache.calcite.rel.type;
-import org.eigenbase.sql.type.SqlTypeName;
+import org.apache.calcite.sql.type.SqlTypeName;
/**
* Type system.
@@ -57,4 +57,4 @@ public interface RelDataTypeSystem {
int getMaxNumericPrecision();
}
-// End RelDataTypeFactory.java
+// End RelDataTypeSystem.java
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeSystemImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeSystemImpl.java b/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeSystemImpl.java
index 0f5ff54..ea639c0 100644
--- a/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeSystemImpl.java
+++ b/core/src/main/java/org/apache/calcite/rel/type/RelDataTypeSystemImpl.java
@@ -14,11 +14,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.reltype;
+package org.apache.calcite.rel.type;
-import org.eigenbase.sql.type.SqlTypeName;
+import org.apache.calcite.sql.type.SqlTypeName;
-/** Default implementation of {@link org.eigenbase.reltype.RelDataTypeSystem},
+/** Default implementation of
+ * {@link org.apache.calcite.rel.type.RelDataTypeSystem},
* providing parameters from the SQL standard.
*
* <p>To implement other type systems, create a derived class and override
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/type/RelProtoDataType.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/type/RelProtoDataType.java b/core/src/main/java/org/apache/calcite/rel/type/RelProtoDataType.java
index 2086ce3..ed518b6 100644
--- a/core/src/main/java/org/apache/calcite/rel/type/RelProtoDataType.java
+++ b/core/src/main/java/org/apache/calcite/rel/type/RelProtoDataType.java
@@ -14,15 +14,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.reltype;
+package org.apache.calcite.rel.type;
-import net.hydromatic.linq4j.function.Function1;
+import org.apache.calcite.linq4j.function.Function1;
/**
* Can be converted into a {@link RelDataType} given a
- * {@link org.eigenbase.reltype.RelDataTypeFactory}.
+ * {@link org.apache.calcite.rel.type.RelDataTypeFactory}.
*
- * @see org.eigenbase.reltype.RelDataTypeImpl#proto
+ * @see org.apache.calcite.rel.type.RelDataTypeImpl#proto
*/
public interface RelProtoDataType
extends Function1<RelDataTypeFactory, RelDataType> {
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/type/RelRecordType.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/type/RelRecordType.java b/core/src/main/java/org/apache/calcite/rel/type/RelRecordType.java
index 48c937e..8d09cf4 100644
--- a/core/src/main/java/org/apache/calcite/rel/type/RelRecordType.java
+++ b/core/src/main/java/org/apache/calcite/rel/type/RelRecordType.java
@@ -14,14 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.reltype;
+package org.apache.calcite.rel.type;
-import java.io.*;
-import java.util.List;
-
-import org.eigenbase.sql.type.*;
+import org.apache.calcite.linq4j.Ord;
+import org.apache.calcite.sql.type.SqlTypeName;
-import net.hydromatic.linq4j.Ord;
+import java.io.Serializable;
+import java.util.List;
/**
* RelRecordType represents a structured type having named fields.
@@ -89,9 +88,9 @@ public class RelRecordType extends RelDataTypeImpl implements Serializable {
//~ Inner Classes ----------------------------------------------------------
/**
- * Skinny object which has the same information content as a {@link
- * RelRecordType} but skips redundant stuff like digest and the immutable
- * list.
+ * Skinny object which has the same information content as a
+ * {@link RelRecordType} but skips redundant stuff like digest and the
+ * immutable list.
*/
private static class SerializableRelRecordType implements Serializable {
private List<RelDataTypeField> fields;
@@ -101,8 +100,8 @@ public class RelRecordType extends RelDataTypeImpl implements Serializable {
}
/**
- * Per {@link Serializable} API. See {@link
- * RelRecordType#writeReplace()}.
+ * Per {@link Serializable} API. See
+ * {@link RelRecordType#writeReplace()}.
*/
private Object readResolve() {
return new RelRecordType(fields);
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rel/type/package-info.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/type/package-info.java b/core/src/main/java/org/apache/calcite/rel/type/package-info.java
index 0eaad70..7c2e251 100644
--- a/core/src/main/java/org/apache/calcite/rel/type/package-info.java
+++ b/core/src/main/java/org/apache/calcite/rel/type/package-info.java
@@ -18,6 +18,6 @@
/**
* Defines a type system for relational expressions.
*/
-package org.eigenbase.reltype;
+package org.apache.calcite.rel.type;
// End package-info.java
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexAction.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexAction.java b/core/src/main/java/org/apache/calcite/rex/RexAction.java
index 53ab923..497d349 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexAction.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexAction.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
/**
* A <code>RexAction</code> is called when a {@link RexPattern} finds a match.
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexBuilder.java b/core/src/main/java/org/apache/calcite/rex/RexBuilder.java
index 251af45..31c4eca 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexBuilder.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexBuilder.java
@@ -14,27 +14,45 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
-
-import java.math.*;
-import java.util.*;
-
-import org.eigenbase.rel.*;
-import org.eigenbase.reltype.*;
-import org.eigenbase.sql.*;
-import org.eigenbase.sql.SqlIntervalQualifier.TimeUnit;
-import org.eigenbase.sql.fun.*;
-import org.eigenbase.sql.type.*;
-import org.eigenbase.util.*;
-import org.eigenbase.util14.DateTimeUtil;
-
-import net.hydromatic.avatica.ByteString;
-
-import net.hydromatic.optiq.runtime.Spaces;
-import net.hydromatic.optiq.runtime.SqlFunctions;
+package org.apache.calcite.rex;
+
+import org.apache.calcite.avatica.ByteString;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.core.AggregateCall;
+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.runtime.Spaces;
+import org.apache.calcite.runtime.SqlFunctions;
+import org.apache.calcite.sql.SqlAggFunction;
+import org.apache.calcite.sql.SqlIntervalQualifier;
+import org.apache.calcite.sql.SqlIntervalQualifier.TimeUnit;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.SqlSpecialOperator;
+import org.apache.calcite.sql.SqlUtil;
+import org.apache.calcite.sql.fun.SqlCountAggFunction;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.sql.type.ArraySqlType;
+import org.apache.calcite.sql.type.IntervalSqlType;
+import org.apache.calcite.sql.type.MapSqlType;
+import org.apache.calcite.sql.type.SqlTypeFamily;
+import org.apache.calcite.sql.type.SqlTypeName;
+import org.apache.calcite.sql.type.SqlTypeUtil;
+import org.apache.calcite.util.DateTimeUtil;
+import org.apache.calcite.util.NlsString;
+import org.apache.calcite.util.Pair;
+import org.apache.calcite.util.Util;
import com.google.common.collect.ImmutableList;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Map;
+
/**
* Factory for row expressions.
*
@@ -151,8 +169,7 @@ public class RexBuilder {
final RelDataType type = expr.getType();
final List<RelDataTypeField> fields = type.getFieldList();
if ((i < 0) || (i >= fields.size())) {
- throw Util.newInternal(
- "Field ordinal " + i + " is invalid for "
+ throw Util.newInternal("Field ordinal " + i + " is invalid for "
+ " type '" + type + "'");
}
return makeFieldAccessInternal(expr, fields.get(i));
@@ -199,7 +216,7 @@ public class RexBuilder {
* Creates a call with an array of arguments.
*
* <p>If you already know the return type of the call, then
- * {@link #makeCall(org.eigenbase.reltype.RelDataType, org.eigenbase.sql.SqlOperator, java.util.List)}
+ * {@link #makeCall(org.apache.calcite.rel.type.RelDataType, org.apache.calcite.sql.SqlOperator, java.util.List)}
* is preferred.</p>
*/
public RexNode makeCall(
@@ -752,9 +769,9 @@ public class RexBuilder {
/**
* Internal method to create a call to a literal. Code outside this package
- * should call one of the type-specific methods such as {@link
- * #makeDateLiteral(Calendar)}, {@link #makeLiteral(boolean)}, {@link
- * #makeLiteral(String)}.
+ * should call one of the type-specific methods such as
+ * {@link #makeDateLiteral(Calendar)}, {@link #makeLiteral(boolean)},
+ * {@link #makeLiteral(String)}.
*
* @param o Value of literal, must be appropriate for the type
* @param type Type of literal
@@ -1217,7 +1234,7 @@ public class RexBuilder {
}
/** Converts the type of a value to comply with
- * {@link org.eigenbase.rex.RexLiteral#valueMatchesType}. */
+ * {@link org.apache.calcite.rex.RexLiteral#valueMatchesType}. */
private static Object clean(Object o, RelDataType type) {
if (o == null) {
return null;
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexCall.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexCall.java b/core/src/main/java/org/apache/calcite/rex/RexCall.java
index accc069..0300f54 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexCall.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexCall.java
@@ -14,15 +14,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import java.util.*;
-
-import org.eigenbase.reltype.*;
-import org.eigenbase.sql.*;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.SqlSyntax;
import com.google.common.collect.ImmutableList;
+import java.util.List;
+
/**
* An expression formed by a call to an operator with zero or more expressions
* as operands.
@@ -30,9 +32,9 @@ import com.google.common.collect.ImmutableList;
* <p>Operators may be binary, unary, functions, special syntactic constructs
* like <code>CASE ... WHEN ... END</code>, or even internally generated
* constructs like implicit type conversions. The syntax of the operator is
- * really irrelevant, because row-expressions (unlike {@link
- * org.eigenbase.sql.SqlNode SQL expressions}) do not directly represent a piece
- * of source code.</p>
+ * really irrelevant, because row-expressions (unlike
+ * {@link org.apache.calcite.sql.SqlNode SQL expressions})
+ * do not directly represent a piece of source code.
*
* <p>It's not often necessary to sub-class this class. The smarts should be in
* the operator, rather than the call. Any extra information about the call can
@@ -109,8 +111,7 @@ public class RexCall extends RexNode {
return type;
}
- @Override
- public boolean isAlwaysTrue() {
+ @Override public boolean isAlwaysTrue() {
// "c IS NOT NULL" occurs when we expand EXISTS.
// This reduction allows us to convert it to a semi-join.
switch (getKind()) {
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexCallBinding.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexCallBinding.java b/core/src/main/java/org/apache/calcite/rex/RexCallBinding.java
index 8e5de25..fc80c19 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexCallBinding.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexCallBinding.java
@@ -14,19 +14,22 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import java.util.List;
-
-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 org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.runtime.CalciteException;
+import org.apache.calcite.runtime.Resources;
+import org.apache.calcite.sql.SqlOperator;
+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 com.google.common.collect.ImmutableList;
+import java.util.List;
+
/**
* <code>RexCallBinding</code> implements {@link SqlOperatorBinding} by
* referring to an underlying collection of {@link RexNode} operands.
@@ -73,7 +76,7 @@ public class RexCallBinding extends SqlOperatorBinding {
return operands.get(ordinal).getType();
}
- public EigenbaseException newError(
+ public CalciteException newError(
Resources.ExInst<SqlValidatorException> e) {
return SqlUtil.newContextException(SqlParserPos.ZERO, e);
}
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexChecker.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexChecker.java b/core/src/main/java/org/apache/calcite/rex/RexChecker.java
index 70eca3b..77edc1f 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexChecker.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexChecker.java
@@ -14,12 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import java.util.*;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeField;
-import org.eigenbase.relopt.*;
-import org.eigenbase.reltype.*;
+import java.util.List;
/**
* Visitor which checks the validity of a {@link RexNode} expression.
@@ -63,14 +64,15 @@ public class RexChecker extends RexVisitorImpl<Boolean> {
/**
* Creates a RexChecker with a given input row type.
*
- * <p>If <code>fail</code> is true, the checker will throw an {@link
- * AssertionError} if an invalid node is found and assertions are enabled.
+ * <p>If <code>fail</code> is true, the checker will throw an
+ * {@link AssertionError} if an invalid node is found and assertions are
+ * enabled.
*
* <p>Otherwise, each method returns whether its part of the tree is valid.
*
* @param inputRowType Input row type
- * @param fail Whether to throw an {@link AssertionError} if an invalid node
- * is detected
+ * @param fail Whether to throw an {@link AssertionError} if an
+ * invalid node is detected
*/
public RexChecker(final RelDataType inputRowType, boolean fail) {
this(RelOptUtil.getFieldTypeList(inputRowType), fail);
@@ -79,14 +81,15 @@ public class RexChecker extends RexVisitorImpl<Boolean> {
/**
* Creates a RexChecker with a given set of input fields.
*
- * <p>If <code>fail</code> is true, the checker will throw an {@link
- * AssertionError} if an invalid node is found and assertions are enabled.
+ * <p>If <code>fail</code> is true, the checker will throw an
+ * {@link AssertionError} if an invalid node is found and assertions are
+ * enabled.
*
* <p>Otherwise, each method returns whether its part of the tree is valid.
*
* @param inputTypeList Input row type
- * @param fail Whether to throw an {@link AssertionError} if an invalid node
- * is detected
+ * @param fail Whether to throw an {@link AssertionError} if an
+ * invalid node is detected
*/
public RexChecker(List<RelDataType> inputTypeList, boolean fail) {
super(true);
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexCopier.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexCopier.java b/core/src/main/java/org/apache/calcite/rex/RexCopier.java
index 4a52b1a..708a59a 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexCopier.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexCopier.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
/**
* Shuttle which creates a deep copy of a Rex expression.
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexCorrelVariable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexCorrelVariable.java b/core/src/main/java/org/apache/calcite/rex/RexCorrelVariable.java
index 6a4fc69..ea1dade 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexCorrelVariable.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexCorrelVariable.java
@@ -14,10 +14,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import org.eigenbase.reltype.*;
-import org.eigenbase.sql.SqlKind;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.sql.SqlKind;
/**
* Reference to the current row of a correlating relational expression.
@@ -41,8 +41,7 @@ public class RexCorrelVariable extends RexVariable {
return visitor.visitCorrelVariable(this);
}
- @Override
- public SqlKind getKind() {
+ @Override public SqlKind getKind() {
return SqlKind.CORREL_VARIABLE;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexDynamicParam.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexDynamicParam.java b/core/src/main/java/org/apache/calcite/rex/RexDynamicParam.java
index 5f45401..cd51cc9 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexDynamicParam.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexDynamicParam.java
@@ -14,10 +14,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import org.eigenbase.reltype.*;
-import org.eigenbase.sql.SqlKind;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.sql.SqlKind;
/**
* Dynamic parameter reference in a row-expression.
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexExecutable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexExecutable.java b/core/src/main/java/org/apache/calcite/rex/RexExecutable.java
index 8769228..64c7c99 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexExecutable.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexExecutable.java
@@ -14,7 +14,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
+
+import org.apache.calcite.DataContext;
+import org.apache.calcite.linq4j.function.Function1;
+import org.apache.calcite.runtime.Hook;
+import org.apache.calcite.runtime.Utilities;
+import org.apache.calcite.util.Pair;
+
+import org.codehaus.commons.compiler.CompileException;
+import org.codehaus.janino.ClassBodyEvaluator;
+import org.codehaus.janino.Scanner;
import java.io.IOException;
import java.io.Serializable;
@@ -22,18 +32,6 @@ import java.io.StringReader;
import java.util.Arrays;
import java.util.List;
-import org.eigenbase.util.Pair;
-
-import net.hydromatic.linq4j.function.Function1;
-
-import net.hydromatic.optiq.DataContext;
-import net.hydromatic.optiq.runtime.Hook;
-import net.hydromatic.optiq.runtime.Utilities;
-
-import org.codehaus.commons.compiler.CompileException;
-import org.codehaus.janino.ClassBodyEvaluator;
-import org.codehaus.janino.Scanner;
-
/**
* Result of compiling code generated from a {@link RexNode} expression.
*/
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexExecutorImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexExecutorImpl.java b/core/src/main/java/org/apache/calcite/rex/RexExecutorImpl.java
index da34a55..c795c23 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexExecutorImpl.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexExecutorImpl.java
@@ -14,27 +14,31 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
+
+import org.apache.calcite.DataContext;
+import org.apache.calcite.adapter.enumerable.RexToLixTranslator;
+import org.apache.calcite.adapter.enumerable.RexToLixTranslator.InputGetter;
+import org.apache.calcite.adapter.java.JavaTypeFactory;
+import org.apache.calcite.jdbc.JavaTypeFactoryImpl;
+import org.apache.calcite.linq4j.tree.BlockBuilder;
+import org.apache.calcite.linq4j.tree.Expression;
+import org.apache.calcite.linq4j.tree.Expressions;
+import org.apache.calcite.linq4j.tree.IndexExpression;
+import org.apache.calcite.linq4j.tree.MethodCallExpression;
+import org.apache.calcite.linq4j.tree.MethodDeclaration;
+import org.apache.calcite.linq4j.tree.ParameterExpression;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.prepare.CalcitePrepareImpl;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.util.BuiltInMethod;
+
+import com.google.common.collect.ImmutableList;
import java.lang.reflect.Modifier;
import java.lang.reflect.Type;
-import java.util.*;
-
-import org.eigenbase.relopt.RelOptPlanner;
-import org.eigenbase.reltype.RelDataType;
-import org.eigenbase.reltype.RelDataTypeFactory;
-
-import net.hydromatic.linq4j.expressions.*;
-
-import net.hydromatic.optiq.BuiltinMethod;
-import net.hydromatic.optiq.DataContext;
-import net.hydromatic.optiq.impl.java.JavaTypeFactory;
-import net.hydromatic.optiq.jdbc.JavaTypeFactoryImpl;
-import net.hydromatic.optiq.prepare.OptiqPrepareImpl;
-import net.hydromatic.optiq.rules.java.RexToLixTranslator;
-import net.hydromatic.optiq.rules.java.RexToLixTranslator.InputGetter;
-
-import com.google.common.collect.ImmutableList;
+import java.util.List;
/**
* Evaluates a {@link RexNode} expression.
@@ -79,10 +83,10 @@ public class RexExecutorImpl implements RelOptPlanner.Executor {
Expressions.newArrayInit(Object[].class, expressions)));
final MethodDeclaration methodDecl =
Expressions.methodDecl(Modifier.PUBLIC, Object[].class,
- BuiltinMethod.FUNCTION1_APPLY.method.getName(),
+ BuiltInMethod.FUNCTION1_APPLY.method.getName(),
ImmutableList.of(root0_), blockBuilder.toBlock());
String code = Expressions.toString(methodDecl);
- if (OptiqPrepareImpl.DEBUG) {
+ if (CalcitePrepareImpl.DEBUG) {
System.out.println(code);
}
return code;
@@ -124,9 +128,9 @@ public class RexExecutorImpl implements RelOptPlanner.Executor {
/**
* Implementation of
- * {@link net.hydromatic.optiq.rules.java.RexToLixTranslator.InputGetter}
+ * {@link org.apache.calcite.adapter.enumerable.RexToLixTranslator.InputGetter}
* that reads the values of input fields by calling
- * <code>{@link net.hydromatic.optiq.DataContext#get}("inputRecord")</code>.
+ * <code>{@link org.apache.calcite.DataContext#get}("inputRecord")</code>.
*/
private static class DataContextInputGetter implements InputGetter {
private final RelDataTypeFactory typeFactory;
@@ -141,7 +145,7 @@ public class RexExecutorImpl implements RelOptPlanner.Executor {
public Expression field(BlockBuilder list, int index, Type storageType) {
MethodCallExpression recFromCtx = Expressions.call(
DataContext.ROOT,
- BuiltinMethod.DATA_CONTEXT_GET.method,
+ BuiltInMethod.DATA_CONTEXT_GET.method,
Expressions.constant("inputRecord"));
Expression recFromCtxCasted =
RexToLixTranslator.convert(recFromCtx, Object[].class);
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexFieldAccess.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexFieldAccess.java b/core/src/main/java/org/apache/calcite/rex/RexFieldAccess.java
index 40869e2..09b9058 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexFieldAccess.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexFieldAccess.java
@@ -14,10 +14,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import org.eigenbase.reltype.*;
-import org.eigenbase.sql.SqlKind;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.sql.SqlKind;
/**
* Access to a field of a row-expression.
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexFieldCollation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexFieldCollation.java b/core/src/main/java/org/apache/calcite/rex/RexFieldCollation.java
index 1ed80f9..46c52d8 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexFieldCollation.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexFieldCollation.java
@@ -14,16 +14,16 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import java.util.Set;
-
-import org.eigenbase.rel.RelFieldCollation;
-import org.eigenbase.sql.SqlKind;
-import org.eigenbase.util.Pair;
+import org.apache.calcite.rel.RelFieldCollation;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.util.Pair;
import com.google.common.collect.ImmutableSet;
+import java.util.Set;
+
/**
* Expression combined with sort flags (DESCENDING, NULLS LAST).
*/
@@ -32,8 +32,7 @@ public class RexFieldCollation extends Pair<RexNode, ImmutableSet<SqlKind>> {
super(left, ImmutableSet.copyOf(right));
}
- @Override
- public String toString() {
+ @Override public String toString() {
String s = left.toString();
for (SqlKind operator : right) {
switch (operator) {
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexInputRef.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexInputRef.java b/core/src/main/java/org/apache/calcite/rex/RexInputRef.java
index 9b57b93..edc38da 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexInputRef.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexInputRef.java
@@ -14,13 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import java.util.List;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.util.Pair;
-import org.eigenbase.reltype.*;
-import org.eigenbase.sql.SqlKind;
-import org.eigenbase.util.Pair;
+import java.util.List;
/**
* Variable which references a field of an input relational expression.
@@ -93,8 +94,7 @@ public class RexInputRef extends RexSlot {
field.getName());
}
- @Override
- public SqlKind getKind() {
+ @Override public SqlKind getKind() {
return SqlKind.INPUT_REF;
}
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexLiteral.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexLiteral.java b/core/src/main/java/org/apache/calcite/rex/RexLiteral.java
index 286b9f2..d3dd1a1 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexLiteral.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexLiteral.java
@@ -14,23 +14,33 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
-
-import java.io.*;
-import java.math.*;
-import java.nio.*;
-import java.nio.charset.*;
-import java.util.*;
-
-import org.eigenbase.reltype.*;
-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.*;
-
-import net.hydromatic.avatica.ByteString;
+package org.apache.calcite.rex;
+
+import org.apache.calcite.avatica.ByteString;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.sql.SqlCollation;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.sql.parser.SqlParserUtil;
+import org.apache.calcite.sql.type.SqlTypeName;
+import org.apache.calcite.util.ConversionUtil;
+import org.apache.calcite.util.DateTimeUtil;
+import org.apache.calcite.util.NlsString;
+import org.apache.calcite.util.SaffronProperties;
+import org.apache.calcite.util.Util;
+import org.apache.calcite.util.ZonelessDate;
+import org.apache.calcite.util.ZonelessDatetime;
+import org.apache.calcite.util.ZonelessTime;
+import org.apache.calcite.util.ZonelessTimestamp;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.math.BigDecimal;
+import java.nio.ByteBuffer;
+import java.nio.charset.Charset;
+import java.util.Calendar;
+import java.util.TimeZone;
/**
* Constant value in a row-expression.
@@ -121,8 +131,8 @@ public class RexLiteral extends RexNode {
/**
* The value of this literal. Must be consistent with its type, as per
- * {@link #valueMatchesType}. For example, you can't store an {@link
- * Integer} value here just because you feel like it -- all numbers are
+ * {@link #valueMatchesType}. For example, you can't store an
+ * {@link Integer} value here just because you feel like it -- all numbers are
* represented by a {@link BigDecimal}. But since this field is private, it
* doesn't really matter how the values are stored.
*/
@@ -139,9 +149,9 @@ public class RexLiteral extends RexNode {
/**
* An indication of the broad type of this literal -- even if its type isn't
* a SQL type. Sometimes this will be different than the SQL type; for
- * example, all exact numbers, including integers have typeName {@link
- * SqlTypeName#DECIMAL}. See {@link #valueMatchesType} for the definitive
- * story.
+ * example, all exact numbers, including integers have typeName
+ * {@link SqlTypeName#DECIMAL}. See {@link #valueMatchesType} for the
+ * definitive story.
*/
private final SqlTypeName typeName;
@@ -440,7 +450,7 @@ public class RexLiteral extends RexNode {
if (cal == null) {
throw Util.newInternal(
"fromJdbcString: invalid date/time value '"
- + literal + "'");
+ + literal + "'");
}
return new RexLiteral(cal, type, typeName);
case SYMBOL:
@@ -472,8 +482,7 @@ public class RexLiteral extends RexNode {
return type;
}
- @Override
- public SqlKind getKind() {
+ @Override public SqlKind getKind() {
return SqlKind.LITERAL;
}
@@ -552,7 +561,7 @@ public class RexLiteral extends RexNode {
}
public int hashCode() {
- return Util.hashV(value, type);
+ return com.google.common.base.Objects.hashCode(value, type);
}
public static int intValue(RexNode node) {
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexLocalRef.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexLocalRef.java b/core/src/main/java/org/apache/calcite/rex/RexLocalRef.java
index f251bcb..9d4d1cc 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexLocalRef.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexLocalRef.java
@@ -14,13 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import java.util.List;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.util.Util;
-import org.eigenbase.reltype.*;
-import org.eigenbase.sql.SqlKind;
-import org.eigenbase.util.*;
+import java.util.List;
/**
* Local variable.
@@ -56,8 +56,7 @@ public class RexLocalRef extends RexSlot {
//~ Methods ----------------------------------------------------------------
- @Override
- public SqlKind getKind() {
+ @Override public SqlKind getKind() {
return SqlKind.LOCAL_REF;
}
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexMultisetUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexMultisetUtil.java b/core/src/main/java/org/apache/calcite/rex/RexMultisetUtil.java
index 63f4449..34f4b5f 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexMultisetUtil.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexMultisetUtil.java
@@ -14,16 +14,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import java.util.*;
-
-import org.eigenbase.sql.*;
-import org.eigenbase.sql.fun.*;
-import org.eigenbase.sql.type.*;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.sql.type.SqlTypeName;
import com.google.common.collect.ImmutableSet;
+import java.util.List;
+import java.util.Set;
+
/**
* Utility class for various methods related to multisets.
*/
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexNode.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexNode.java b/core/src/main/java/org/apache/calcite/rex/RexNode.java
index 3d39216..897c06c 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexNode.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexNode.java
@@ -14,19 +14,19 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import java.util.Collection;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.sql.SqlKind;
-import org.eigenbase.reltype.*;
-import org.eigenbase.sql.SqlKind;
+import java.util.Collection;
/**
* Row expression.
*
- * <p>Every row-expression has a type. (Compare with {@link
- * org.eigenbase.sql.SqlNode}, which is created before validation, and therefore
- * types may not be available.)</p>
+ * <p>Every row-expression has a type.
+ * (Compare with {@link org.apache.calcite.sql.SqlNode}, which is created before
+ * validation, and therefore types may not be available.)
*
* <p>Some common row-expressions are: {@link RexLiteral} (constant value),
* {@link RexVariable} (variable), {@link RexCall} (call to operator with
@@ -83,8 +83,8 @@ public abstract class RexNode {
}
/**
- * Accepts a visitor, dispatching to the right overloaded {@link
- * RexVisitor#visitInputRef visitXxx} method.
+ * Accepts a visitor, dispatching to the right overloaded
+ * {@link RexVisitor#visitInputRef visitXxx} method.
*
* <p>Also see {@link RexProgram#apply(RexVisitor, java.util.List, RexNode)},
* which applies a visitor to several expressions simultaneously.
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexOver.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexOver.java b/core/src/main/java/org/apache/calcite/rex/RexOver.java
index a45c218..babfacc 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexOver.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexOver.java
@@ -14,13 +14,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import java.util.List;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.sql.SqlAggFunction;
+import org.apache.calcite.sql.SqlWindow;
+import org.apache.calcite.util.ControlFlowException;
+import org.apache.calcite.util.Util;
-import org.eigenbase.reltype.*;
-import org.eigenbase.sql.*;
-import org.eigenbase.util.*;
+import java.util.List;
/**
* Call to an aggregate function over a window.
@@ -41,7 +43,7 @@ public class RexOver extends RexCall {
*
* <ul>
* <li>type = Integer,
- * <li>op = {@link org.eigenbase.sql.fun.SqlStdOperatorTable#SUM},
+ * <li>op = {@link org.apache.calcite.sql.fun.SqlStdOperatorTable#SUM},
* <li>operands = { {@link RexFieldAccess}("x") }
* <li>window = {@link SqlWindow}(ROWS 3 PRECEDING)
* </ul>
@@ -126,13 +128,13 @@ public class RexOver extends RexCall {
}
}
- @Override
- public RexCall clone(RelDataType type, List<RexNode> operands) {
+ @Override public RexCall clone(RelDataType type, List<RexNode> operands) {
throw new UnsupportedOperationException();
}
//~ Inner Classes ----------------------------------------------------------
+ /** Exception thrown when an OVER is found. */
private static class OverFound extends ControlFlowException {
public static final OverFound INSTANCE = new OverFound();
}
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexPattern.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexPattern.java b/core/src/main/java/org/apache/calcite/rex/RexPattern.java
index 8b7348f..5db7a26 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexPattern.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexPattern.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
/**
* A <code>RexPattern</code> represents an expression with holes in it. The
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexPermutationShuttle.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexPermutationShuttle.java b/core/src/main/java/org/apache/calcite/rex/RexPermutationShuttle.java
index f53424b..2af15ea 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexPermutationShuttle.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexPermutationShuttle.java
@@ -14,9 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import org.eigenbase.util.*;
+import org.apache.calcite.util.Permutation;
/**
* Visitor which replaces {@link RexLocalRef} objects after the expressions in a
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexPermuteInputsShuttle.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexPermuteInputsShuttle.java b/core/src/main/java/org/apache/calcite/rex/RexPermuteInputsShuttle.java
index f9d7b1e..1750477 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexPermuteInputsShuttle.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexPermuteInputsShuttle.java
@@ -14,21 +14,21 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import java.util.List;
-
-import org.eigenbase.rel.RelNode;
-import org.eigenbase.reltype.RelDataTypeField;
-import org.eigenbase.util.mapping.Mappings;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.util.mapping.Mappings;
import com.google.common.collect.ImmutableList;
+import java.util.List;
+
/**
* Shuttle which applies a permutation to its input fields.
*
* @see RexPermutationShuttle
- * @see RexUtil#apply(org.eigenbase.util.mapping.Mappings.TargetMapping, RexNode)
+ * @see RexUtil#apply(org.apache.calcite.util.mapping.Mappings.TargetMapping, RexNode)
*/
public class RexPermuteInputsShuttle extends RexShuttle {
//~ Instance fields --------------------------------------------------------
@@ -43,7 +43,7 @@ public class RexPermuteInputsShuttle extends RexShuttle {
*
* <p>The mapping provides at most one target for every source. If a source
* has no targets and is referenced in the expression,
- * {@link org.eigenbase.util.mapping.Mappings.TargetMapping#getTarget(int)}
+ * {@link org.apache.calcite.util.mapping.Mappings.TargetMapping#getTarget(int)}
* will give an error. Otherwise the mapping gives a unique target.
*
* @param mapping Mapping
@@ -80,8 +80,7 @@ public class RexPermuteInputsShuttle extends RexShuttle {
return fields.build();
}
- @Override
- public RexNode visitInputRef(RexInputRef local) {
+ @Override public RexNode visitInputRef(RexInputRef local) {
final int index = local.getIndex();
int target = mapping.getTarget(index);
return new RexInputRef(
@@ -89,8 +88,7 @@ public class RexPermuteInputsShuttle extends RexShuttle {
local.getType());
}
- @Override
- public RexNode visitCall(RexCall call) {
+ @Override public RexNode visitCall(RexCall call) {
if (call.getOperator() == RexBuilder.GET_OPERATOR) {
final String name =
(String) ((RexLiteral) call.getOperands().get(1)).getValue2();
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexProgram.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexProgram.java b/core/src/main/java/org/apache/calcite/rex/RexProgram.java
index aafe361..03f7540 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexProgram.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexProgram.java
@@ -14,23 +14,34 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.*;
-
-import org.eigenbase.rel.*;
-import org.eigenbase.relopt.*;
-import org.eigenbase.reltype.*;
-import org.eigenbase.sql.*;
-import org.eigenbase.sql.fun.SqlStdOperatorTable;
-import org.eigenbase.sql.type.*;
-import org.eigenbase.util.*;
+package org.apache.calcite.rex;
+
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.rel.RelCollation;
+import org.apache.calcite.rel.RelCollationImpl;
+import org.apache.calcite.rel.RelFieldCollation;
+import org.apache.calcite.rel.RelWriter;
+import org.apache.calcite.rel.externalize.RelWriterImpl;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.sql.SqlExplainLevel;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.sql.type.SqlTypeUtil;
+import org.apache.calcite.util.Pair;
+import org.apache.calcite.util.Permutation;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.AbstractList;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+
/**
* A collection of expressions which read inputs, compute output expressions,
* and optionally use a condition to filter rows.
@@ -251,11 +262,10 @@ public class RexProgram {
SqlExplainLevel level) {
final List<RelDataTypeField> inFields = inputRowType.getFieldList();
final List<RelDataTypeField> outFields = outputRowType.getFieldList();
- assert outFields.size() == projects.size() : "outFields.length="
- + outFields.size()
+ assert outFields.size() == projects.size()
+ : "outFields.length=" + outFields.size()
+ ", projects.length=" + projects.size();
- pw.item(
- prefix + "expr#0"
+ pw.item(prefix + "expr#0"
+ ((inFields.size() > 1) ? (".." + (inFields.size() - 1)) : ""),
"{inputs}");
for (int i = inFields.size(); i < exprs.size(); i++) {
@@ -448,8 +458,7 @@ public class RexProgram {
return exprs.get(index).getType();
}
- @Override
- public int size() {
+ @Override public int size() {
return exprs.size();
}
// CHECKSTYLE: IGNORE 1
@@ -485,7 +494,7 @@ public class RexProgram {
/**
* Returns whether an expression always evaluates to null.
*
- * <p>Like {@link RexUtil#isNull(RexNode)}, null literals are null, and |
+ * <p>Like {@link RexUtil#isNull(RexNode)}, null literals are null, and
* casts of null literals are null. But this method also regards references
* to null expressions as null.</p>
*
@@ -601,7 +610,8 @@ public class RexProgram {
public boolean projectsIdentity(final boolean fail) {
final int fieldCount = inputRowType.getFieldCount();
if (projects.size() < fieldCount) {
- assert !fail : "program '" + toString()
+ assert !fail
+ : "program '" + toString()
+ "' does not project identity for input row type '"
+ inputRowType + "'";
return false;
@@ -609,7 +619,8 @@ public class RexProgram {
for (int i = 0; i < fieldCount; i++) {
RexLocalRef project = projects.get(i);
if (project.index != i) {
- assert !fail : "program " + toString()
+ assert !fail
+ : "program " + toString()
+ "' does not project identity for input row type '"
+ inputRowType + "', field #" + i;
return false;
@@ -849,8 +860,8 @@ public class RexProgram {
}
/**
- * A RexShuttle used in the implementation of {@link
- * RexProgram#expandLocalRef}.
+ * A RexShuttle used in the implementation of
+ * {@link RexProgram#expandLocalRef}.
*/
private class ExpansionShuttle extends RexShuttle {
public RexNode visitLocalRef(RexLocalRef localRef) {
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexProgramBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexProgramBuilder.java b/core/src/main/java/org/apache/calcite/rex/RexProgramBuilder.java
index 6567531..fa4233e 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexProgramBuilder.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexProgramBuilder.java
@@ -14,14 +14,19 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import java.util.*;
+import org.apache.calcite.plan.RelOptUtil;
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeField;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.util.Pair;
+import org.apache.calcite.util.Util;
-import org.eigenbase.relopt.*;
-import org.eigenbase.reltype.*;
-import org.eigenbase.sql.fun.*;
-import org.eigenbase.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
/**
* Workspace for constructing a {@link RexProgram}.
@@ -142,22 +147,19 @@ public class RexProgramBuilder {
if (index < fields.size()) {
final RelDataTypeField inputField = fields.get(index);
if (input.getType() != inputField.getType()) {
- throw Util.newInternal(
- "in expression " + expr
+ throw Util.newInternal("in expression " + expr
+ ", field reference " + input
+ " has inconsistent type");
}
} else {
if (index >= fieldOrdinal) {
- throw Util.newInternal(
- "in expression " + expr
+ throw Util.newInternal("in expression " + expr
+ ", field reference " + input
+ " is out of bounds");
}
RexNode refExpr = exprList.get(index);
if (refExpr.getType() != input.getType()) {
- throw Util.newInternal(
- "in expression " + expr
+ throw Util.newInternal("in expression " + expr
+ ", field reference " + input
+ " has inconsistent type");
}
@@ -838,6 +840,8 @@ public class RexProgramBuilder {
//~ Inner Classes ----------------------------------------------------------
+ /** Shuttle that visits a tree of {@link RexNode} and registers them
+ * in a program. */
private abstract class RegisterShuttle extends RexShuttle {
public RexNode visitCall(RexCall call) {
final RexNode expr = super.visitCall(call);
@@ -888,8 +892,8 @@ public class RexProgramBuilder {
// The expression should already be valid. Check that its
// index is within bounds.
if ((index < 0) || (index >= inputRowType.getFieldCount())) {
- assert false : "RexInputRef index " + index
- + " out of range 0.."
+ assert false
+ : "RexInputRef index " + index + " out of range 0.."
+ (inputRowType.getFieldCount() - 1);
}
@@ -913,8 +917,8 @@ public class RexProgramBuilder {
// The expression should already be valid.
final int index = local.getIndex();
assert index >= 0 : index;
- assert index < exprList.size() : "index=" + index
- + ", exprList=" + exprList;
+ assert index < exprList.size()
+ : "index=" + index + ", exprList=" + exprList;
assert RelOptUtil.eq(
"expr type",
exprList.get(index).getType(),
@@ -930,8 +934,7 @@ public class RexProgramBuilder {
if (expr instanceof RexLocalRef) {
local = (RexLocalRef) expr;
if (local.index >= index) {
- throw Util.newInternal(
- "expr " + local
+ throw Util.newInternal("expr " + local
+ " references later expr " + local.index);
}
} else {
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexRangeRef.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexRangeRef.java b/core/src/main/java/org/apache/calcite/rex/RexRangeRef.java
index 9ab0f79..bf2104c 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexRangeRef.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexRangeRef.java
@@ -14,17 +14,18 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import org.eigenbase.reltype.*;
+import org.apache.calcite.rel.type.RelDataType;
/**
* Reference to a range of columns.
*
- * <p>This construct is used only during the process of translating a {@link
- * org.eigenbase.sql.SqlNode SQL} tree to a {@link org.eigenbase.rel.RelNode
- * rel}/{@link RexNode rex} tree. <em>Regular {@link RexNode rex} trees do not
- * contain this construct.</em></p>
+ * <p>This construct is used only during the process of translating a
+ * {@link org.apache.calcite.sql.SqlNode SQL} tree to a
+ * {@link org.apache.calcite.rel.RelNode rel}/{@link RexNode rex}
+ * tree. <em>Regular {@link RexNode rex} trees do not contain this
+ * construct.</em></p>
*
* <p>While translating a join of EMP(EMPNO, ENAME, DEPTNO) to DEPT(DEPTNO2,
* DNAME) we create <code>RexRangeRef(DeptType,3)</code> to represent the pair
@@ -33,7 +34,7 @@ import org.eigenbase.reltype.*;
*
* <p>Suppose we later create a reference to the DNAME field of this
* RexRangeRef; it will return a <code>{@link RexInputRef}(5,Integer)</code>,
- * and the {@link org.eigenbase.rex.RexRangeRef} will disappear.</p>
+ * and the {@link org.apache.calcite.rex.RexRangeRef} will disappear.</p>
*/
public class RexRangeRef extends RexNode {
//~ Instance fields --------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexShuttle.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexShuttle.java b/core/src/main/java/org/apache/calcite/rex/RexShuttle.java
index 9649b62..bd3ce46 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexShuttle.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexShuttle.java
@@ -14,19 +14,21 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
-
-import java.util.*;
+package org.apache.calcite.rex;
import com.google.common.collect.ImmutableList;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* Passes over a row-expression, calling a handler method for each node,
* appropriate to the type of the node.
*
- * <p>Like {@link RexVisitor}, this is an instance of the {@link
- * org.eigenbase.util.Glossary#VISITOR_PATTERN Visitor Pattern}. Use <code>
- * RexShuttle</code> if you would like your methods to return a value.</p>
+ * <p>Like {@link RexVisitor}, this is an instance of the
+ * {@link org.apache.calcite.util.Glossary#VISITOR_PATTERN Visitor Pattern}. Use
+ * <code> RexShuttle</code> if you would like your methods to return a
+ * value.</p>
*/
public class RexShuttle implements RexVisitor<RexNode> {
//~ Methods ----------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexSlot.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexSlot.java b/core/src/main/java/org/apache/calcite/rex/RexSlot.java
index 11c0e62..5421f12 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexSlot.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexSlot.java
@@ -14,13 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
+
+import org.apache.calcite.rel.type.RelDataType;
import java.util.AbstractList;
import java.util.concurrent.CopyOnWriteArrayList;
-import org.eigenbase.reltype.*;
-
/**
* Abstract base class for {@link RexInputRef} and {@link RexLocalRef}.
*/
@@ -81,8 +81,7 @@ public abstract class RexSlot extends RexVariable {
};
}
- @Override
- public String get(int index) {
+ @Override public String get(int index) {
for (;;) {
try {
return super.get(index);
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexSqlConvertlet.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexSqlConvertlet.java b/core/src/main/java/org/apache/calcite/rex/RexSqlConvertlet.java
index 7107c00..2aca4ea 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexSqlConvertlet.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexSqlConvertlet.java
@@ -14,9 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import org.eigenbase.sql.*;
+import org.apache.calcite.sql.SqlNode;
/**
* Converts a {@link RexNode} expression into a {@link SqlNode} expression.
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexSqlConvertletTable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexSqlConvertletTable.java b/core/src/main/java/org/apache/calcite/rex/RexSqlConvertletTable.java
index dbec59c..8f00b4f 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexSqlConvertletTable.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexSqlConvertletTable.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
/**
* Collection of {@link RexSqlConvertlet}s.
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexSqlReflectiveConvertletTable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexSqlReflectiveConvertletTable.java b/core/src/main/java/org/apache/calcite/rex/RexSqlReflectiveConvertletTable.java
index 4619b98..596ebd5 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexSqlReflectiveConvertletTable.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexSqlReflectiveConvertletTable.java
@@ -14,11 +14,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import java.util.*;
+import org.apache.calcite.sql.SqlOperator;
-import org.eigenbase.sql.*;
+import java.util.HashMap;
+import java.util.Map;
/**
* Implementation of {@link RexSqlConvertletTable}.
@@ -73,8 +74,8 @@ public class RexSqlReflectiveConvertletTable implements RexSqlConvertletTable {
/**
* Registers a convertlet for a given operator instance
*
- * @param op Operator instance, say {@link
- * org.eigenbase.sql.fun.SqlStdOperatorTable#MINUS}
+ * @param op Operator instance, say
+ * {@link org.apache.calcite.sql.fun.SqlStdOperatorTable#MINUS}
* @param convertlet Convertlet
*/
protected void registerOp(SqlOperator op, RexSqlConvertlet convertlet) {
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexSqlStandardConvertletTable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexSqlStandardConvertletTable.java b/core/src/main/java/org/apache/calcite/rex/RexSqlStandardConvertletTable.java
index 704e933..0745995 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexSqlStandardConvertletTable.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexSqlStandardConvertletTable.java
@@ -14,14 +14,22 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import java.util.*;
+import org.apache.calcite.sql.SqlBasicCall;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlDataTypeSpec;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.SqlNodeList;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.fun.SqlCaseOperator;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.sql.parser.SqlParserPos;
+import org.apache.calcite.sql.type.SqlTypeUtil;
-import org.eigenbase.sql.*;
-import org.eigenbase.sql.fun.*;
-import org.eigenbase.sql.parser.*;
-import org.eigenbase.sql.type.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
/**
* Standard implementation of {@link RexSqlConvertletTable}.
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexToSqlNodeConverter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexToSqlNodeConverter.java b/core/src/main/java/org/apache/calcite/rex/RexToSqlNodeConverter.java
index 7f095b7..3e2a966 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexToSqlNodeConverter.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexToSqlNodeConverter.java
@@ -14,9 +14,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import org.eigenbase.sql.*;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlNode;
/**
* Converts expressions from {@link RexNode} to {@link SqlNode}.
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/a0ba73cd/core/src/main/java/org/apache/calcite/rex/RexToSqlNodeConverterImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexToSqlNodeConverterImpl.java b/core/src/main/java/org/apache/calcite/rex/RexToSqlNodeConverterImpl.java
index 65d91df..16b4203 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexToSqlNodeConverterImpl.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexToSqlNodeConverterImpl.java
@@ -14,14 +14,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.eigenbase.rex;
+package org.apache.calcite.rex;
-import java.util.*;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.parser.SqlParserPos;
+import org.apache.calcite.sql.type.SqlTypeFamily;
+import org.apache.calcite.util.NlsString;
-import org.eigenbase.sql.*;
-import org.eigenbase.sql.parser.*;
-import org.eigenbase.sql.type.*;
-import org.eigenbase.util.*;
+import java.util.Calendar;
/**
* Standard implementation of {@link RexToSqlNodeConverter}.