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/08 12:38:24 UTC
[flink] 02/09: [FLINK-13561][table-planner-blink] Drop
DATE_FORMAT(timestamp, from_format, to_format) function support
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 e8fd892220f6575ef99339d274b812202e687f93
Author: Jark Wu <im...@gmail.com>
AuthorDate: Wed Aug 7 13:40:34 2019 +0800
[FLINK-13561][table-planner-blink] Drop DATE_FORMAT(timestamp, from_format, to_format) function support
This commit drops DATE_FORMAT(timestamp, from_format, to_format) function support in blink planner to align with other systems. We only support DATE_FORMAT(timestamp, to_format) and DATE_FORMAT(string, to_format) in this version.
---
.../functions/sql/FlinkSqlOperatorTable.java | 4 +---
.../planner/codegen/calls/BuiltInMethods.scala | 4 ----
.../planner/codegen/calls/StringCallGen.scala | 6 -----
.../planner/expressions/TemporalTypesTest.scala | 26 ++++++++++------------
.../planner/runtime/batch/sql/CalcITCase.scala | 4 +---
5 files changed, 14 insertions(+), 30 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 d81b2f1..5219a11 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
@@ -573,9 +573,7 @@ public class FlinkSqlOperatorTable extends ReflectiveSqlOperatorTable {
ReturnTypes.cascade(ReturnTypes.explicit(SqlTypeName.VARCHAR), SqlTypeTransforms.FORCE_NULLABLE),
InferTypes.RETURN_TYPE,
OperandTypes.or(
- OperandTypes.sequence("'(TIMESTAMP, FORMAT)'",
- OperandTypes.DATETIME, OperandTypes.STRING),
- OperandTypes.family(SqlTypeFamily.STRING, SqlTypeFamily.STRING, SqlTypeFamily.STRING),
+ OperandTypes.family(SqlTypeFamily.TIMESTAMP, SqlTypeFamily.STRING),
OperandTypes.family(SqlTypeFamily.STRING, SqlTypeFamily.STRING)),
SqlFunctionCategory.TIMEDATE);
diff --git a/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/codegen/calls/BuiltInMethods.scala b/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/codegen/calls/BuiltInMethods.scala
index dd91b52..ff4796b 100644
--- a/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/codegen/calls/BuiltInMethods.scala
+++ b/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/codegen/calls/BuiltInMethods.scala
@@ -258,10 +258,6 @@ object BuiltInMethods {
val DATE_FORMAT_LONG_STRING_TIME_ZONE = Types.lookupMethod(
classOf[SqlDateTimeUtils], "dateFormat", classOf[Long], classOf[String], classOf[TimeZone])
- val DATE_FORMAT_STRING_STRING_STRING = Types.lookupMethod(
- classOf[SqlDateTimeUtils], "dateFormat", classOf[String],
- classOf[String], classOf[String])
-
val DATE_FORMAT_STIRNG_STRING = Types.lookupMethod(
classOf[SqlDateTimeUtils], "dateFormat", classOf[String], classOf[String])
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 676eef6..aac9010 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
@@ -221,12 +221,6 @@ object StringCallGen {
isCharacterString(operands(1).resultType) =>
methodGen(BuiltInMethods.DATE_FORMAT_STIRNG_STRING)
- case DATE_FORMAT if operands.size == 3 &&
- isCharacterString(operands.head.resultType) &&
- isCharacterString(operands(1).resultType) &&
- isCharacterString(operands(2).resultType) =>
- methodGen(BuiltInMethods.DATE_FORMAT_STRING_STRING_STRING)
-
case CONVERT_TZ if operands.size == 3 &&
isCharacterString(operands.head.resultType) &&
isCharacterString(operands(1).resultType) &&
diff --git a/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/expressions/TemporalTypesTest.scala b/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/expressions/TemporalTypesTest.scala
index 90bdc92..86175d1 100644
--- a/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/expressions/TemporalTypesTest.scala
+++ b/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/expressions/TemporalTypesTest.scala
@@ -590,11 +590,6 @@ class TemporalTypesTest extends ExpressionTestBase {
)
testSqlApi(
- "FROM_TIMESTAMP(f13)",
- "null"
- )
-
- testSqlApi(
"TO_TIMESTAMP(SUBSTR('', 2, -1))",
"null"
)
@@ -606,11 +601,14 @@ class TemporalTypesTest extends ExpressionTestBase {
}
@Test
- def testdebug() = {
- testSqlApi("DATE_FORMAT('2018-03-14 01:02:03', 'yyyy/MM/dd HH:mm:ss')",
+ def testDateFormat(): Unit = {
+ testSqlApi(
+ "DATE_FORMAT('2018-03-14 01:02:03', 'yyyy/MM/dd HH:mm:ss')",
"2018/03/14 01:02:03")
- testSqlApi("DATE_FORMAT('2018-03-14 01:02:03', 'yyyy-MM-dd HH:mm:ss', " +
- "'yyyy/MM/dd HH:mm:ss')", "2018/03/14 01:02:03")
+
+ testSqlApi(
+ s"DATE_FORMAT(${timestampTz("2018-03-14 01:02:03")}, 'yyyy-MM-dd HH:mm:ss')",
+ "2018-03-14 01:02:03")
}
@Test
@@ -659,12 +657,12 @@ class TemporalTypesTest extends ExpressionTestBase {
testSqlApi(timestampTz("2018-03-14 19:00:00.010"), "2018-03-14 19:00:00.010")
// DATE_FORMAT
- testSqlApi("DATE_FORMAT('2018-03-14 01:02:03', 'yyyy/MM/dd HH:mm:ss')",
+ testSqlApi(
+ "DATE_FORMAT('2018-03-14 01:02:03', 'yyyy/MM/dd HH:mm:ss')",
"2018/03/14 01:02:03")
- testSqlApi("DATE_FORMAT('2018-03-14 01:02:03', 'yyyy-MM-dd HH:mm:ss', " +
- "'yyyy/MM/dd HH:mm:ss')", "2018/03/14 01:02:03")
- testSqlApi(s"DATE_FORMAT(${timestampTz("2018-03-14 01:02:03")}," +
- " 'yyyy-MM-dd HH:mm:ss')",
+
+ testSqlApi(
+ s"DATE_FORMAT(${timestampTz("2018-03-14 01:02:03")}, 'yyyy-MM-dd HH:mm:ss')",
"2018-03-14 01:02:03")
// EXTRACT
diff --git a/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/runtime/batch/sql/CalcITCase.scala b/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/runtime/batch/sql/CalcITCase.scala
index 8e3e82c..50a33c3 100644
--- a/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/runtime/batch/sql/CalcITCase.scala
+++ b/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/runtime/batch/sql/CalcITCase.scala
@@ -1079,13 +1079,11 @@ class CalcITCase extends BatchTestBase {
//j 2015-05-20 10:00:00.887
checkResult("SELECT j, " +
" DATE_FORMAT(j, 'yyyy/MM/dd HH:mm:ss')," +
- " DATE_FORMAT('2015-05-20 10:00:00.887', 'yyyy/MM/dd HH:mm:ss')," +
- " DATE_FORMAT('2015-05-20 10:00:00.887', 'yyyy-MM-dd HH:mm:ss', 'yyyy/MM/dd HH:mm:ss')" +
+ " DATE_FORMAT('2015-05-20 10:00:00.887', 'yyyy/MM/dd HH:mm:ss')" +
" FROM testTable WHERE a = TRUE",
Seq(
row(localDateTime("2015-05-20 10:00:00.887"),
"2015/05/20 10:00:00",
- "2015/05/20 10:00:00",
"2015/05/20 10:00:00")
))
}