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 <imj...@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") )) }