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 2019/05/16 08:49:19 UTC
[flink] branch master updated: [hotfix][table-common] Add the
timestamp kind to summary strings
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
The following commit(s) were added to refs/heads/master by this push:
new ce881f9 [hotfix][table-common] Add the timestamp kind to summary strings
ce881f9 is described below
commit ce881f9ebbec134f459ca4de6cf278bd040d8f3c
Author: Timo Walther <tw...@apache.org>
AuthorDate: Mon May 13 17:17:28 2019 +0200
[hotfix][table-common] Add the timestamp kind to summary strings
---
.../types/logical/LocalZonedTimestampType.java | 8 +++++
.../flink/table/types/logical/TimestampType.java | 8 +++++
.../table/types/logical/ZonedTimestampType.java | 8 +++++
.../apache/flink/table/types/LogicalTypesTest.java | 40 ++++++++++++++++++++++
4 files changed, 64 insertions(+)
diff --git a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/LocalZonedTimestampType.java b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/LocalZonedTimestampType.java
index 8352d47..d0c237c 100644
--- a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/LocalZonedTimestampType.java
+++ b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/LocalZonedTimestampType.java
@@ -131,6 +131,14 @@ public final class LocalZonedTimestampType extends LogicalType {
}
@Override
+ public String asSummaryString() {
+ if (kind != TimestampKind.REGULAR) {
+ return String.format("%s *%s*", asSerializableString(), kind);
+ }
+ return asSerializableString();
+ }
+
+ @Override
public boolean supportsInputConversion(Class<?> clazz) {
return NOT_NULL_INPUT_OUTPUT_CONVERSION.contains(clazz.getName());
}
diff --git a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/TimestampType.java b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/TimestampType.java
index 8092726..c796f7d 100644
--- a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/TimestampType.java
+++ b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/TimestampType.java
@@ -117,6 +117,14 @@ public final class TimestampType extends LogicalType {
}
@Override
+ public String asSummaryString() {
+ if (kind != TimestampKind.REGULAR) {
+ return String.format("%s *%s*", asSerializableString(), kind);
+ }
+ return asSerializableString();
+ }
+
+ @Override
public boolean supportsInputConversion(Class<?> clazz) {
return INPUT_OUTPUT_CONVERSION.contains(clazz.getName());
}
diff --git a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/ZonedTimestampType.java b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/ZonedTimestampType.java
index 4230bb8..22e5538 100644
--- a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/ZonedTimestampType.java
+++ b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/ZonedTimestampType.java
@@ -122,6 +122,14 @@ public final class ZonedTimestampType extends LogicalType {
}
@Override
+ public String asSummaryString() {
+ if (kind != TimestampKind.REGULAR) {
+ return String.format("%s *%s*", asSerializableString(), kind);
+ }
+ return asSerializableString();
+ }
+
+ @Override
public boolean supportsInputConversion(Class<?> clazz) {
return INPUT_CONVERSION.contains(clazz.getName());
}
diff --git a/flink-table/flink-table-common/src/test/java/org/apache/flink/table/types/LogicalTypesTest.java b/flink-table/flink-table-common/src/test/java/org/apache/flink/table/types/LogicalTypesTest.java
index 60f37b2..52f2778 100644
--- a/flink-table/flink-table-common/src/test/java/org/apache/flink/table/types/LogicalTypesTest.java
+++ b/flink-table/flink-table-common/src/test/java/org/apache/flink/table/types/LogicalTypesTest.java
@@ -46,6 +46,7 @@ import org.apache.flink.table.types.logical.RowType;
import org.apache.flink.table.types.logical.SmallIntType;
import org.apache.flink.table.types.logical.StructuredType;
import org.apache.flink.table.types.logical.TimeType;
+import org.apache.flink.table.types.logical.TimestampKind;
import org.apache.flink.table.types.logical.TimestampType;
import org.apache.flink.table.types.logical.TinyIntType;
import org.apache.flink.table.types.logical.TypeInformationAnyType;
@@ -272,6 +273,19 @@ public class LogicalTypesTest {
}
@Test
+ public void testTimestampTypeWithTimeAttribute() {
+ testAll(
+ new TimestampType(true, TimestampKind.ROWTIME, 9),
+ "TIMESTAMP(9)",
+ "TIMESTAMP(9) *ROWTIME*",
+ new Class[]{java.sql.Timestamp.class, java.time.LocalDateTime.class},
+ new Class[]{java.time.LocalDateTime.class},
+ new LogicalType[]{},
+ new TimestampType(3)
+ );
+ }
+
+ @Test
public void testZonedTimestampType() {
testAll(
new ZonedTimestampType(9),
@@ -285,6 +299,19 @@ public class LogicalTypesTest {
}
@Test
+ public void testZonedTimestampTypeWithTimeAttribute() {
+ testAll(
+ new ZonedTimestampType(true, TimestampKind.PROCTIME, 9),
+ "TIMESTAMP(9) WITH TIME ZONE",
+ "TIMESTAMP(9) WITH TIME ZONE *PROCTIME*",
+ new Class[]{java.time.ZonedDateTime.class, java.time.OffsetDateTime.class},
+ new Class[]{java.time.OffsetDateTime.class},
+ new LogicalType[]{},
+ new ZonedTimestampType(3)
+ );
+ }
+
+ @Test
public void testLocalZonedTimestampType() {
testAll(
new LocalZonedTimestampType(9),
@@ -298,6 +325,19 @@ public class LogicalTypesTest {
}
@Test
+ public void testLocalZonedTimestampTypeWithTimeAttribute() {
+ testAll(
+ new LocalZonedTimestampType(true, TimestampKind.ROWTIME, 9),
+ "TIMESTAMP(9) WITH LOCAL TIME ZONE",
+ "TIMESTAMP(9) WITH LOCAL TIME ZONE *ROWTIME*",
+ new Class[]{java.time.Instant.class, long.class, int.class},
+ new Class[]{java.time.Instant.class},
+ new LogicalType[]{},
+ new LocalZonedTimestampType(3)
+ );
+ }
+
+ @Test
public void testYearMonthIntervalType() {
testAll(
new YearMonthIntervalType(YearMonthIntervalType.YearMonthResolution.YEAR_TO_MONTH, 2),