You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ja...@apache.org on 2019/08/09 03:17:12 UTC
[flink] 02/03: [FLINK-13523][table-planner-blink] Remove
non-standard bitwise scalar function and DIV(),
DIV_INT() function from blink planner
This is an automated email from the ASF dual-hosted git repository.
jark pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
commit fbd3225e9d63a10eb6e55fca136d2acfcc777250
Author: Zhenghua Gao <do...@gmail.com>
AuthorDate: Fri Aug 2 12:33:45 2019 +0800
[FLINK-13523][table-planner-blink] Remove non-standard bitwise scalar function and DIV(), DIV_INT() function from blink planner
This commit remove BITAND, BITOR, BITNOT, BITXOR scalar functions because they are not standard.
This commit also removes DIV(), DIV_INT() because we already have "/" and "/INT" operators.
---
.../functions/sql/FlinkSqlOperatorTable.java | 57 -----------
.../planner/codegen/calls/FunctionGenerator.scala | 109 ---------------------
.../planner/expressions/ScalarFunctionsTest.scala | 59 -----------
.../planner/expressions/SqlExpressionTest.scala | 26 -----
.../FlinkRelMdFilteredColumnIntervalTest.scala | 5 +-
5 files changed, 2 insertions(+), 254 deletions(-)
diff --git a/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/functions/sql/FlinkSqlOperatorTable.java b/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/functions/sql/FlinkSqlOperatorTable.java
index ba453ff..8618207 100644
--- a/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/functions/sql/FlinkSqlOperatorTable.java
+++ b/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/functions/sql/FlinkSqlOperatorTable.java
@@ -50,7 +50,6 @@ import java.util.Arrays;
import java.util.List;
import static org.apache.flink.table.planner.plan.type.FlinkReturnTypes.ARG0_VARCHAR_FORCE_NULLABLE;
-import static org.apache.flink.table.planner.plan.type.FlinkReturnTypes.FLINK_DIV_NULLABLE;
import static org.apache.flink.table.planner.plan.type.FlinkReturnTypes.STR_MAP_NULLABLE;
import static org.apache.flink.table.planner.plan.type.FlinkReturnTypes.VARCHAR_2000_NULLABLE;
@@ -109,30 +108,6 @@ public class FlinkSqlOperatorTable extends ReflectiveSqlOperatorTable {
// FUNCTIONS
/**
- * DIV function. It corresponds to {@link #DIVIDE} operator but
- * returns without fractional part.
- */
- public static final SqlFunction DIV = new SqlFunction(
- "DIV",
- SqlKind.OTHER_FUNCTION,
- FLINK_DIV_NULLABLE,
- null,
- OperandTypes.EXACT_NUMERIC_EXACT_NUMERIC,
- SqlFunctionCategory.NUMERIC);
-
- /**
- * DIV_INT function. It corresponds to {@link #DIVIDE_INTEGER} operator but
- * returns without fractional part.
- */
- public static final SqlFunction DIV_INT = new SqlFunction(
- "DIV_INT",
- SqlKind.OTHER_FUNCTION,
- ReturnTypes.INTEGER_QUOTIENT_NULLABLE,
- null,
- OperandTypes.family(SqlTypeFamily.NUMERIC, SqlTypeFamily.NUMERIC),
- SqlFunctionCategory.NUMERIC);
-
- /**
* Function used to access a processing time attribute.
*/
public static final SqlFunction PROCTIME =
@@ -288,38 +263,6 @@ public class FlinkSqlOperatorTable extends ReflectiveSqlOperatorTable {
OperandTypes.family(SqlTypeFamily.STRING)),
SqlFunctionCategory.NUMERIC);
- public static final SqlFunction BITAND = new SqlFunction(
- "BITAND",
- SqlKind.OTHER_FUNCTION,
- ReturnTypes.ARG0_NULLABLE,
- null,
- OperandTypes.family(SqlTypeFamily.NUMERIC, SqlTypeFamily.NUMERIC),
- SqlFunctionCategory.NUMERIC);
-
- public static final SqlFunction BITOR = new SqlFunction(
- "BITOR",
- SqlKind.OTHER_FUNCTION,
- ReturnTypes.ARG0_NULLABLE,
- null,
- OperandTypes.family(SqlTypeFamily.NUMERIC, SqlTypeFamily.NUMERIC),
- SqlFunctionCategory.NUMERIC);
-
- public static final SqlFunction BITXOR = new SqlFunction(
- "BITXOR",
- SqlKind.OTHER_FUNCTION,
- ReturnTypes.ARG0_NULLABLE,
- null,
- OperandTypes.family(SqlTypeFamily.NUMERIC, SqlTypeFamily.NUMERIC),
- SqlFunctionCategory.NUMERIC);
-
- public static final SqlFunction BITNOT = new SqlFunction(
- "BITNOT",
- SqlKind.OTHER_FUNCTION,
- ReturnTypes.ARG0_NULLABLE,
- null,
- OperandTypes.NUMERIC,
- SqlFunctionCategory.NUMERIC);
-
public static final SqlFunction JSONVALUE = new SqlFunction(
"JSONVALUE",
SqlKind.OTHER_FUNCTION,
diff --git a/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/codegen/calls/FunctionGenerator.scala b/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/codegen/calls/FunctionGenerator.scala
index 5769b55..d1eb672 100644
--- a/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/codegen/calls/FunctionGenerator.scala
+++ b/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/codegen/calls/FunctionGenerator.scala
@@ -544,86 +544,6 @@ object FunctionGenerator {
BuiltInMethods.TANH_DEC)
addSqlFunctionMethod(
- BITAND,
- Seq(INTEGER, INTEGER),
- BuiltInMethods.BITAND_BYTE)
-
- addSqlFunctionMethod(
- BITAND,
- Seq(SMALLINT, SMALLINT),
- BuiltInMethods.BITAND_SHORT)
-
- addSqlFunctionMethod(
- BITAND,
- Seq(INTEGER, INTEGER),
- BuiltInMethods.BITAND_INTEGER)
-
- addSqlFunctionMethod(
- BITAND,
- Seq(BIGINT, BIGINT),
- BuiltInMethods.BITAND_LONG)
-
- addSqlFunctionMethod(
- BITNOT,
- Seq(INTEGER),
- BuiltInMethods.BITNOT_BYTE)
-
- addSqlFunctionMethod(
- BITNOT,
- Seq(SMALLINT),
- BuiltInMethods.BITNOT_SHORT)
-
- addSqlFunctionMethod(
- BITNOT,
- Seq(INTEGER),
- BuiltInMethods.BITNOT_INTEGER)
-
- addSqlFunctionMethod(
- BITNOT,
- Seq(BIGINT),
- BuiltInMethods.BITNOT_LONG)
-
- addSqlFunctionMethod(
- BITOR,
- Seq(INTEGER, INTEGER),
- BuiltInMethods.BITOR_BYTE)
-
- addSqlFunctionMethod(
- BITOR,
- Seq(SMALLINT, SMALLINT),
- BuiltInMethods.BITOR_SHORT)
-
- addSqlFunctionMethod(
- BITOR,
- Seq(INTEGER, INTEGER),
- BuiltInMethods.BITOR_INTEGER)
-
- addSqlFunctionMethod(
- BITOR,
- Seq(BIGINT, BIGINT),
- BuiltInMethods.BITOR_LONG)
-
- addSqlFunctionMethod(
- BITXOR,
- Seq(INTEGER, INTEGER),
- BuiltInMethods.BITXOR_BYTE)
-
- addSqlFunctionMethod(
- BITXOR,
- Seq(SMALLINT, SMALLINT),
- BuiltInMethods.BITXOR_SHORT)
-
- addSqlFunctionMethod(
- BITXOR,
- Seq(INTEGER, INTEGER),
- BuiltInMethods.BITXOR_INTEGER)
-
- addSqlFunctionMethod(
- BITXOR,
- Seq(BIGINT, BIGINT),
- BuiltInMethods.BITXOR_LONG)
-
- addSqlFunctionMethod(
NOW,
Seq(),
BuiltInMethods.NOW)
@@ -693,35 +613,6 @@ object FunctionGenerator {
BINARY),
new IfCallGen())
- addSqlFunctionMethod(
- DIV_INT,
- Seq(INTEGER, INTEGER),
- BuiltInMethods.DIV_INT)
-
- addSqlFunction(
- DIV,
- Seq(DECIMAL, DOUBLE),
- new DivCallGen()
- )
-
- addSqlFunction(
- DIV,
- Seq(DECIMAL, DECIMAL),
- new DivCallGen()
- )
-
- addSqlFunction(
- DIV,
- Seq(DOUBLE, DOUBLE),
- new DivCallGen()
- )
-
- addSqlFunction(
- DIV,
- Seq(DOUBLE, DECIMAL),
- new DivCallGen()
- )
-
addSqlFunction(
HASH_CODE,
Seq(BOOLEAN),
diff --git a/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/expressions/ScalarFunctionsTest.scala b/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/expressions/ScalarFunctionsTest.scala
index 0472cf7..6f9bd60 100644
--- a/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/expressions/ScalarFunctionsTest.scala
+++ b/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/expressions/ScalarFunctionsTest.scala
@@ -4060,63 +4060,4 @@ class ScalarFunctionsTest extends ScalarTypesTestBase {
"IS_ALPHA(f33)",
"false")
}
-
- @Test
- def testBit(): Unit = {
- testSqlApi(
- "BITAND(1, 1)",
- s"${1 & 1}")
-
- testSqlApi(
- "BITAND(2, 2)",
- s"${2 & 2}")
-
- testSqlApi(
- "BITAND(-3, -2)",
- "-4")
-
- testSqlApi(
- "BITOR(1, 2)",
- s"${1 | 2}")
-
- testSqlApi(
- "BITOR(3, 0)",
- s"${3 | 0}")
-
- testSqlApi(
- "BITOR(3, 4)",
- "7")
-
- testSqlApi(
- "BITOR(-3, 2)",
- "-1")
-
- testSqlApi(
- "BITXOR(1, 1)",
- s"${1 ^ 1}")
-
- testSqlApi(
- "BITXOR(3, 1)",
- s"${3 ^ 1}")
-
- testSqlApi(
- "BITXOR(-3, 2)",
- "-1")
-
- testSqlApi(
- "BITNOT(1)",
- s"${~1}")
-
- testSqlApi(
- "BITNOT(2)",
- s"${~2}")
-
- testSqlApi(
- "BITNOT(3)",
- s"${~3}")
-
- testSqlApi(
- "BITNOT(-3)",
- "2")
- }
}
diff --git a/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/expressions/SqlExpressionTest.scala b/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/expressions/SqlExpressionTest.scala
index 1e7e53c..35a60c1 100644
--- a/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/expressions/SqlExpressionTest.scala
+++ b/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/expressions/SqlExpressionTest.scala
@@ -137,12 +137,6 @@ class SqlExpressionTest extends ExpressionTestBase {
// Decimal(2,1) / Decimal(10,0) => Decimal(23,12)
testSqlApi("2.0/(-3)", "-0.666666666667")
testSqlApi("-7.9/2", "-3.950000000000")
-
- //div function
- testSqlApi("div(7, 2)", "3")
- testSqlApi("div(7.9, 2.009)", "3")
- testSqlApi("div(7, -2.009)", "-3")
- testSqlApi("div(-7.9, 2)", "-3")
}
@Test
@@ -278,26 +272,6 @@ class SqlExpressionTest extends ExpressionTestBase {
@Test
def testNullableCases(): Unit = {
testSqlApi(
- "BITAND(cast(NUll as bigInt), cast(NUll as bigInt))",
- nullable
- )
-
- testSqlApi(
- "BITNOT(cast(NUll as bigInt))",
- nullable
- )
-
- testSqlApi(
- "BITOR(cast(NUll as bigInt), cast(NUll as bigInt))",
- nullable
- )
-
- testSqlApi(
- "BITXOR(cast(NUll as bigInt), cast(NUll as bigInt))",
- nullable
- )
-
- testSqlApi(
"TO_BASE64(FROM_BASE64(cast(NUll as varchar)))",
nullable
)
diff --git a/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/plan/metadata/FlinkRelMdFilteredColumnIntervalTest.scala b/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/plan/metadata/FlinkRelMdFilteredColumnIntervalTest.scala
index 36410e7..9a659f1 100644
--- a/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/plan/metadata/FlinkRelMdFilteredColumnIntervalTest.scala
+++ b/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/plan/metadata/FlinkRelMdFilteredColumnIntervalTest.scala
@@ -17,13 +17,12 @@
*/
package org.apache.flink.table.planner.plan.metadata
-import org.apache.flink.table.planner.functions.sql.FlinkSqlOperatorTable
import org.apache.flink.table.planner.plan.stats.{RightSemiInfiniteValueInterval,ValueInterval}
import org.apache.flink.table.types.logical._
import org.apache.calcite.rel.RelNode
import org.apache.calcite.rex.RexNode
-import org.apache.calcite.sql.fun.SqlStdOperatorTable.{EQUALS, GREATER_THAN, IS_FALSE, IS_TRUE, LESS_THAN, LESS_THAN_OR_EQUAL}
+import org.apache.calcite.sql.fun.SqlStdOperatorTable.{EQUALS, GREATER_THAN, IS_FALSE, IS_TRUE, LESS_THAN, LESS_THAN_OR_EQUAL, DIVIDE}
import org.junit.Assert.{assertEquals, assertNull}
import org.junit.{Before, Test}
@@ -44,7 +43,7 @@ class FlinkRelMdFilteredColumnIntervalTest extends FlinkRelMdHandlerTestBase {
expr2 = relBuilder.call(GREATER_THAN, relBuilder.field(0), relBuilder.literal(-1))
// a / 2 > 3
expr3 = relBuilder.call(GREATER_THAN,
- relBuilder.call(FlinkSqlOperatorTable.DIV, relBuilder.field(0), relBuilder.literal(2)),
+ relBuilder.call(DIVIDE, relBuilder.field(0), relBuilder.literal(2)),
relBuilder.literal(3))
// b < 1.1
expr4 = relBuilder.call(LESS_THAN, relBuilder.field(1), relBuilder.literal(1.1D))