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 2018/01/18 01:35:46 UTC
[4/4] calcite git commit: [CALCITE-2133] In SqlGroupedWindowFunction
constructor, add returnTypeInference,
operandTypeInference and category parameters (Shuyi Chen)
[CALCITE-2133] In SqlGroupedWindowFunction constructor, add returnTypeInference, operandTypeInference and category parameters (Shuyi Chen)
Deprecate the previous constructors.
Close apache/calcite#606
Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/522f6548
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/522f6548
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/522f6548
Branch: refs/heads/master
Commit: 522f65487e0ad632c339590b0ee6bd91a4890bda
Parents: 7f86f4e
Author: Shuyi Chen <sh...@uber.com>
Authored: Fri Jan 12 18:41:00 2018 -0800
Committer: Julian Hyde <jh...@apache.org>
Committed: Wed Jan 17 17:34:55 2018 -0800
----------------------------------------------------------------------
.../calcite/sql/SqlGroupedWindowFunction.java | 43 ++++++++++++--------
.../calcite/sql/fun/SqlStdOperatorTable.java | 18 +++++---
2 files changed, 39 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/calcite/blob/522f6548/core/src/main/java/org/apache/calcite/sql/SqlGroupedWindowFunction.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlGroupedWindowFunction.java b/core/src/main/java/org/apache/calcite/sql/SqlGroupedWindowFunction.java
index ef982fa..59d4242 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlGroupedWindowFunction.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlGroupedWindowFunction.java
@@ -18,8 +18,11 @@ package org.apache.calcite.sql;
import org.apache.calcite.sql.type.ReturnTypes;
import org.apache.calcite.sql.type.SqlOperandTypeChecker;
+import org.apache.calcite.sql.type.SqlOperandTypeInference;
+import org.apache.calcite.sql.type.SqlReturnTypeInference;
import org.apache.calcite.sql.validate.SqlMonotonicity;
+import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import java.util.List;
@@ -52,30 +55,37 @@ public class SqlGroupedWindowFunction extends SqlFunction {
* @param kind Kind
* @param groupFunction Group function, if this is an auxiliary;
* null, if this is a group function
- * @param operandTypeChecker Operand type checker
+ * @param returnTypeInference Strategy to use for return type inference
+ * @param operandTypeInference Strategy to use for parameter type inference
+ * @param operandTypeChecker Strategy to use for parameter type checking
+ * @param category Categorization for function
*/
public SqlGroupedWindowFunction(String name, SqlKind kind,
SqlGroupedWindowFunction groupFunction,
- SqlOperandTypeChecker operandTypeChecker) {
- super(name, kind, ReturnTypes.ARG0, null,
- operandTypeChecker, SqlFunctionCategory.SYSTEM);
+ SqlReturnTypeInference returnTypeInference,
+ SqlOperandTypeInference operandTypeInference,
+ SqlOperandTypeChecker operandTypeChecker, SqlFunctionCategory category) {
+ super(name, kind, returnTypeInference, operandTypeInference,
+ operandTypeChecker, category);
this.groupFunction = groupFunction;
- if (groupFunction != null) {
- assert groupFunction.groupFunction == null;
- }
+ Preconditions.checkArgument(groupFunction == null
+ || groupFunction.groupFunction == null);
}
- /** Creates a SqlGroupedWindowFunction.
- *
- * @param kind Kind; also determines function name
- * @param groupFunction Group function, if this is an auxiliary;
- * null, if this is a group function
- * @param operandTypeChecker Operand type checker
- */
+ @Deprecated // to be removed before 2.0
+ public SqlGroupedWindowFunction(String name, SqlKind kind,
+ SqlGroupedWindowFunction groupFunction,
+ SqlOperandTypeChecker operandTypeChecker) {
+ this(name, kind, groupFunction, ReturnTypes.ARG0, null, operandTypeChecker,
+ SqlFunctionCategory.SYSTEM);
+ }
+
+ @Deprecated // to be removed before 2.0
public SqlGroupedWindowFunction(SqlKind kind,
SqlGroupedWindowFunction groupFunction,
SqlOperandTypeChecker operandTypeChecker) {
- this(kind.name(), kind, groupFunction, operandTypeChecker);
+ this(kind.name(), kind, groupFunction, ReturnTypes.ARG0, null,
+ operandTypeChecker, SqlFunctionCategory.SYSTEM);
}
/** Creates an auxiliary function from this grouped window function.
@@ -92,7 +102,8 @@ public class SqlGroupedWindowFunction extends SqlFunction {
* @param kind Kind
*/
public SqlGroupedWindowFunction auxiliary(String name, SqlKind kind) {
- return new SqlGroupedWindowFunction(name, kind, this, getOperandTypeChecker());
+ return new SqlGroupedWindowFunction(name, kind, this, ReturnTypes.ARG0,
+ null, getOperandTypeChecker(), SqlFunctionCategory.SYSTEM);
}
/** Returns a list of this grouped window function's auxiliary functions. */
http://git-wip-us.apache.org/repos/asf/calcite/blob/522f6548/core/src/main/java/org/apache/calcite/sql/fun/SqlStdOperatorTable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/fun/SqlStdOperatorTable.java b/core/src/main/java/org/apache/calcite/sql/fun/SqlStdOperatorTable.java
index c56b8bc..cfff50f 100644
--- a/core/src/main/java/org/apache/calcite/sql/fun/SqlStdOperatorTable.java
+++ b/core/src/main/java/org/apache/calcite/sql/fun/SqlStdOperatorTable.java
@@ -2006,9 +2006,11 @@ public class SqlStdOperatorTable extends ReflectiveSqlOperatorTable {
/** The {@code TUMBLE} group function. */
public static final SqlGroupedWindowFunction TUMBLE =
- new SqlGroupedWindowFunction(SqlKind.TUMBLE, null,
+ new SqlGroupedWindowFunction(SqlKind.TUMBLE.name(), SqlKind.TUMBLE,
+ null, ReturnTypes.ARG0, null,
OperandTypes.or(OperandTypes.DATETIME_INTERVAL,
- OperandTypes.DATETIME_INTERVAL_TIME)) {
+ OperandTypes.DATETIME_INTERVAL_TIME),
+ SqlFunctionCategory.SYSTEM) {
@Override public List<SqlGroupedWindowFunction> getAuxiliaryFunctions() {
return ImmutableList.of(TUMBLE_START, TUMBLE_END);
}
@@ -2026,9 +2028,11 @@ public class SqlStdOperatorTable extends ReflectiveSqlOperatorTable {
/** The {@code HOP} group function. */
public static final SqlGroupedWindowFunction HOP =
- new SqlGroupedWindowFunction(SqlKind.HOP, null,
+ new SqlGroupedWindowFunction(SqlKind.HOP.name(), SqlKind.HOP, null,
+ ReturnTypes.ARG0, null,
OperandTypes.or(OperandTypes.DATETIME_INTERVAL_INTERVAL,
- OperandTypes.DATETIME_INTERVAL_INTERVAL_TIME)) {
+ OperandTypes.DATETIME_INTERVAL_INTERVAL_TIME),
+ SqlFunctionCategory.SYSTEM) {
@Override public List<SqlGroupedWindowFunction> getAuxiliaryFunctions() {
return ImmutableList.of(HOP_START, HOP_END);
}
@@ -2046,9 +2050,11 @@ public class SqlStdOperatorTable extends ReflectiveSqlOperatorTable {
/** The {@code SESSION} group function. */
public static final SqlGroupedWindowFunction SESSION =
- new SqlGroupedWindowFunction(SqlKind.SESSION, null,
+ new SqlGroupedWindowFunction(SqlKind.SESSION.name(), SqlKind.SESSION,
+ null, ReturnTypes.ARG0, null,
OperandTypes.or(OperandTypes.DATETIME_INTERVAL,
- OperandTypes.DATETIME_INTERVAL_TIME)) {
+ OperandTypes.DATETIME_INTERVAL_TIME),
+ SqlFunctionCategory.SYSTEM) {
@Override public List<SqlGroupedWindowFunction> getAuxiliaryFunctions() {
return ImmutableList.of(SESSION_START, SESSION_END);
}