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/14 04:35:22 UTC
[flink] branch release-1.9 updated:
[FLINK-13704][table-planner-blink] Revert removing SUBSTR() function in
blink planner to fix TPC-H e2e test failed
This is an automated email from the ASF dual-hosted git repository.
jark pushed a commit to branch release-1.9
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/release-1.9 by this push:
new 09a6aa9 [FLINK-13704][table-planner-blink] Revert removing SUBSTR() function in blink planner to fix TPC-H e2e test failed
09a6aa9 is described below
commit 09a6aa96909c1e1f0b618d525a26dae8b69817cb
Author: JingsongLi <lz...@aliyun.com>
AuthorDate: Tue Aug 13 16:09:00 2019 +0200
[FLINK-13704][table-planner-blink] Revert removing SUBSTR() function in blink planner to fix TPC-H e2e test failed
This closes #9427
---
.../table/planner/functions/sql/FlinkSqlOperatorTable.java | 11 +++++++++++
.../flink/table/planner/codegen/calls/StringCallGen.scala | 2 +-
.../flink/table/planner/expressions/ScalarFunctionsTest.scala | 2 +-
.../flink/table/planner/expressions/SqlExpressionTest.scala | 4 ++++
4 files changed, 17 insertions(+), 2 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 a1228fc..b303da4 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
@@ -617,6 +617,17 @@ public class FlinkSqlOperatorTable extends ReflectiveSqlOperatorTable {
),
SqlFunctionCategory.STRING);
+ public static final SqlFunction SUBSTR = new SqlFunction(
+ "SUBSTR",
+ SqlKind.OTHER_FUNCTION,
+ ARG0_VARCHAR_FORCE_NULLABLE,
+ null,
+ OperandTypes.or(
+ OperandTypes.family(SqlTypeFamily.CHARACTER, SqlTypeFamily.INTEGER),
+ OperandTypes.family(SqlTypeFamily.CHARACTER, SqlTypeFamily.INTEGER, SqlTypeFamily.INTEGER)
+ ),
+ SqlFunctionCategory.STRING);
+
public static final SqlFunction LEFT = new SqlFunction(
"LEFT",
SqlKind.OTHER_FUNCTION,
diff --git a/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/codegen/calls/StringCallGen.scala b/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/codegen/calls/StringCallGen.scala
index 0e7c5d1..7f40f73 100644
--- a/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/codegen/calls/StringCallGen.scala
+++ b/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/codegen/calls/StringCallGen.scala
@@ -63,7 +63,7 @@ object StringCallGen {
case NOT_LIKE =>
generateNot(ctx, new LikeCallGen().generate(ctx, operands, new BooleanType()))
- case SUBSTRING => generateSubString(ctx, operands)
+ case SUBSTR | SUBSTRING => generateSubString(ctx, operands)
case LEFT => generateLeft(ctx, operands.head, operands(1))
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 921b2ac..7e094a4 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
@@ -938,7 +938,7 @@ class ScalarFunctionsTest extends ScalarTypesTestBase {
@Test
def testSubString(): Unit = {
- Array("substring").foreach {
+ Array("substring", "substr").foreach {
substr =>
testSqlApi(s"$substr(f0, 2, 3)", "his")
testSqlApi(s"$substr(f0, 2, 100)", "his is a test String.")
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 42de09d..53e5f7c 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
@@ -158,6 +158,10 @@ class SqlExpressionTest extends ExpressionTestBase {
testSqlApi("SUBSTRING('hello world', 2)", "ello world")
testSqlApi("SUBSTRING('hello world', 2, 3)", "ell")
testSqlApi("SUBSTRING('hello world', 2, 300)", "ello world")
+ testSqlApi("SUBSTR('hello world', 2, 3)", "ell")
+ testSqlApi("SUBSTR('hello world', 2)", "ello world")
+ testSqlApi("SUBSTR('hello world', 2, 300)", "ello world")
+ testSqlApi("SUBSTR('hello world', 0, 3)", "hel")
testSqlApi("INITCAP('hello world')", "Hello World")
testSqlApi("REGEXP_REPLACE('foobar', 'oo|ar', '')", "fb")
testSqlApi("REGEXP_EXTRACT('foothebar', 'foo(.*?)(bar)', 2)", "bar")