You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by tw...@apache.org on 2021/11/02 08:47:18 UTC
[flink] 03/03: [hotfix][table-common] Disable cast from binary to
date/time
This is an automated email from the ASF dual-hosted git repository.
twalthr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
commit ba1d9166f5f704bd47ad6d71e755b0653e8c2a83
Author: Marios Trivyzas <ma...@gmail.com>
AuthorDate: Sun Oct 31 21:07:46 2021 +0100
[hotfix][table-common] Disable cast from binary to date/time
Don't allow to cast from `BINARY`/`VARBINARY`/`BYTES` to any of
`DATE`/`TIME`/`TIMESTAMP`/`TIMESTAMP_LTZ` in verification stage.
---
.../types/logical/utils/LogicalTypeCasts.java | 8 ++++----
.../planner/functions/CastFunctionITCase.java | 24 +++++++++++-----------
2 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/utils/LogicalTypeCasts.java b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/utils/LogicalTypeCasts.java
index 36dda77..2bbf255 100644
--- a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/utils/LogicalTypeCasts.java
+++ b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/utils/LogicalTypeCasts.java
@@ -184,17 +184,17 @@ public final class LogicalTypeCasts {
castTo(DATE)
.implicitFrom(DATE, TIMESTAMP_WITHOUT_TIME_ZONE)
- .explicitFromFamily(TIMESTAMP, CHARACTER_STRING, BINARY_STRING)
+ .explicitFromFamily(TIMESTAMP, CHARACTER_STRING)
.build();
castTo(TIME_WITHOUT_TIME_ZONE)
.implicitFrom(TIME_WITHOUT_TIME_ZONE, TIMESTAMP_WITHOUT_TIME_ZONE)
- .explicitFromFamily(TIME, TIMESTAMP, CHARACTER_STRING, BINARY_STRING)
+ .explicitFromFamily(TIME, TIMESTAMP, CHARACTER_STRING)
.build();
castTo(TIMESTAMP_WITHOUT_TIME_ZONE)
.implicitFrom(TIMESTAMP_WITHOUT_TIME_ZONE, TIMESTAMP_WITH_LOCAL_TIME_ZONE)
- .explicitFromFamily(DATETIME, CHARACTER_STRING, BINARY_STRING, NUMERIC)
+ .explicitFromFamily(DATETIME, CHARACTER_STRING, NUMERIC)
.build();
castTo(TIMESTAMP_WITH_TIME_ZONE)
@@ -204,7 +204,7 @@ public final class LogicalTypeCasts {
castTo(TIMESTAMP_WITH_LOCAL_TIME_ZONE)
.implicitFrom(TIMESTAMP_WITH_LOCAL_TIME_ZONE, TIMESTAMP_WITHOUT_TIME_ZONE)
- .explicitFromFamily(DATETIME, CHARACTER_STRING, BINARY_STRING, NUMERIC)
+ .explicitFromFamily(DATETIME, CHARACTER_STRING, NUMERIC)
.build();
castTo(INTERVAL_YEAR_MONTH)
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/functions/CastFunctionITCase.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/functions/CastFunctionITCase.java
index 723a262..78f6d6c 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/functions/CastFunctionITCase.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/functions/CastFunctionITCase.java
@@ -789,9 +789,9 @@ public class CastFunctionITCase extends BuiltInFunctionTestBase {
.fromCase(STRING(), "2021/09/27", null)
// Not supported - no fix
.fail(BOOLEAN(), true)
- // BINARY
- // VARBINARY
- // BYTES
+ .failTableApi(BINARY(2), DEFAULT_BINARY)
+ .failTableApi(VARBINARY(5), DEFAULT_VARBINARY)
+ .failTableApi(BYTES(), DEFAULT_BYTES)
.fail(DECIMAL(5, 3), 12.345)
.fail(TINYINT(), DEFAULT_POSITIVE_TINY_INT)
.fail(SMALLINT(), DEFAULT_POSITIVE_SMALL_INT)
@@ -836,9 +836,9 @@ public class CastFunctionITCase extends BuiltInFunctionTestBase {
.fromCase(STRING(), "2021-09-27 12:34:56.123456789", null)
// Not supported - no fix
.fail(BOOLEAN(), true)
- // BINARY
- // VARBINARY
- // BYTES
+ .failTableApi(BINARY(2), DEFAULT_BINARY)
+ .failTableApi(VARBINARY(5), DEFAULT_VARBINARY)
+ .failTableApi(BYTES(), DEFAULT_BYTES)
.fail(DECIMAL(5, 3), 12.345)
.fail(TINYINT(), DEFAULT_POSITIVE_TINY_INT)
.fail(SMALLINT(), DEFAULT_POSITIVE_SMALL_INT)
@@ -881,9 +881,9 @@ public class CastFunctionITCase extends BuiltInFunctionTestBase {
LocalDateTime.of(2021, 9, 27, 12, 34, 56, 123456789))
// Not supported - no fix
.fail(BOOLEAN(), true)
- // BINARY
- // VARBINARY
- // BYTES
+ .failTableApi(BINARY(2), DEFAULT_BINARY)
+ .failTableApi(VARBINARY(5), DEFAULT_VARBINARY)
+ .failTableApi(BYTES(), DEFAULT_BYTES)
.fail(DECIMAL(5, 3), 12.345)
.fail(TINYINT(), DEFAULT_POSITIVE_TINY_INT)
.fail(SMALLINT(), DEFAULT_POSITIVE_SMALL_INT)
@@ -957,9 +957,9 @@ public class CastFunctionITCase extends BuiltInFunctionTestBase {
// Not supported - no fix
.fail(BOOLEAN(), true)
- // BINARY
- // VARBINARY
- // BYTES
+ .failTableApi(BINARY(2), DEFAULT_BINARY)
+ .failTableApi(VARBINARY(5), DEFAULT_VARBINARY)
+ .failTableApi(BYTES(), DEFAULT_BYTES)
.fail(DECIMAL(5, 3), 12.345)
.fail(TINYINT(), DEFAULT_POSITIVE_TINY_INT)
.fail(SMALLINT(), DEFAULT_POSITIVE_SMALL_INT)