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 f93e1c9e0e72704878f73bdfe7c5ab2472735203
Author: Timo Walther <[email protected]>
AuthorDate: Thu Jun 27 13:13:46 2019 +0200

    [hotfix][table-common] Add implicit precision to predefined types
---
 .../flink/table/types/logical/BigIntType.java      |  2 +
 .../apache/flink/table/types/logical/IntType.java  |  2 +
 .../flink/table/types/logical/SmallIntType.java    |  2 +
 .../flink/table/types/logical/TinyIntType.java     |  2 +
 .../types/logical/utils/LogicalTypeChecks.java     | 56 ++++++++++++++++++++++
 5 files changed, 64 insertions(+)

diff --git 
a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/BigIntType.java
 
b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/BigIntType.java
index 6bc8033..60795d9 100644
--- 
a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/BigIntType.java
+++ 
b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/BigIntType.java
@@ -33,6 +33,8 @@ import java.util.Set;
 @PublicEvolving
 public final class BigIntType extends LogicalType {
 
+       public static final int PRECISION = 19;
+
        private static final String FORMAT = "BIGINT";
 
        private static final Set<String> NULL_OUTPUT_CONVERSION = conversionSet(
diff --git 
a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/IntType.java
 
b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/IntType.java
index dec0567..567d8ef 100644
--- 
a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/IntType.java
+++ 
b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/IntType.java
@@ -32,6 +32,8 @@ import java.util.Set;
 @PublicEvolving
 public final class IntType extends LogicalType {
 
+       public static final int PRECISION = 10;
+
        private static final String FORMAT = "INT";
 
        private static final Set<String> NULL_OUTPUT_CONVERSION = conversionSet(
diff --git 
a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/SmallIntType.java
 
b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/SmallIntType.java
index c24de82..a575c82 100644
--- 
a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/SmallIntType.java
+++ 
b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/SmallIntType.java
@@ -32,6 +32,8 @@ import java.util.Set;
 @PublicEvolving
 public final class SmallIntType extends LogicalType {
 
+       public static final int PRECISION = 5;
+
        private static final String FORMAT = "SMALLINT";
 
        private static final Set<String> NULL_OUTPUT_CONVERSION = conversionSet(
diff --git 
a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/TinyIntType.java
 
b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/TinyIntType.java
index d42bcef..eb0ebb8 100644
--- 
a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/TinyIntType.java
+++ 
b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/TinyIntType.java
@@ -32,6 +32,8 @@ import java.util.Set;
 @PublicEvolving
 public final class TinyIntType extends LogicalType {
 
+       public static final int PRECISION = 3;
+
        private static final String FORMAT = "TINYINT";
 
        private static final Set<String> NULL_OUTPUT_CONVERSION = conversionSet(
diff --git 
a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/utils/LogicalTypeChecks.java
 
b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/utils/LogicalTypeChecks.java
index 24f1578..edf8ff0 100644
--- 
a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/utils/LogicalTypeChecks.java
+++ 
b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/utils/LogicalTypeChecks.java
@@ -19,17 +19,21 @@
 package org.apache.flink.table.types.logical.utils;
 
 import org.apache.flink.annotation.Internal;
+import org.apache.flink.table.types.logical.BigIntType;
 import org.apache.flink.table.types.logical.BinaryType;
 import org.apache.flink.table.types.logical.CharType;
 import org.apache.flink.table.types.logical.DayTimeIntervalType;
 import org.apache.flink.table.types.logical.DecimalType;
+import org.apache.flink.table.types.logical.IntType;
 import org.apache.flink.table.types.logical.LocalZonedTimestampType;
 import org.apache.flink.table.types.logical.LogicalType;
 import org.apache.flink.table.types.logical.LogicalTypeFamily;
 import org.apache.flink.table.types.logical.LogicalTypeRoot;
+import org.apache.flink.table.types.logical.SmallIntType;
 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.VarBinaryType;
 import org.apache.flink.table.types.logical.VarCharType;
 import org.apache.flink.table.types.logical.YearMonthIntervalType;
@@ -83,18 +87,30 @@ public final class LogicalTypeChecks {
                return getLength(logicalType) == length;
        }
 
+       /**
+        * Returns the precision of all types that define a precision 
implicitly or explicitly.
+        */
        public static int getPrecision(LogicalType logicalType) {
                return logicalType.accept(PRECISION_EXTRACTOR);
        }
 
+       /**
+        * Checks the precision of a type that defines a precision implicitly 
or explicitly.
+        */
        public static boolean hasPrecision(LogicalType logicalType, int 
precision) {
                return getPrecision(logicalType) == precision;
        }
 
+       /**
+        * Returns the scale of all types that define a scale implicitly or 
explicitly.
+        */
        public static int getScale(LogicalType logicalType) {
                return logicalType.accept(SCALE_EXTRACTOR);
        }
 
+       /**
+        * Checks the scale of all types that define a scale implicitly or 
explicitly.
+        */
        public static boolean hasScale(LogicalType logicalType, int scale) {
                return getScale(logicalType) == scale;
        }
@@ -174,6 +190,26 @@ public final class LogicalTypeChecks {
                }
 
                @Override
+               public Integer visit(TinyIntType tinyIntType) {
+                       return TinyIntType.PRECISION;
+               }
+
+               @Override
+               public Integer visit(SmallIntType smallIntType) {
+                       return SmallIntType.PRECISION;
+               }
+
+               @Override
+               public Integer visit(IntType intType) {
+                       return IntType.PRECISION;
+               }
+
+               @Override
+               public Integer visit(BigIntType bigIntType) {
+                       return BigIntType.PRECISION;
+               }
+
+               @Override
                public Integer visit(TimeType timeType) {
                        return timeType.getPrecision();
                }
@@ -200,6 +236,26 @@ public final class LogicalTypeChecks {
                public Integer visit(DecimalType decimalType) {
                        return decimalType.getScale();
                }
+
+               @Override
+               public Integer visit(TinyIntType tinyIntType) {
+                       return 0;
+               }
+
+               @Override
+               public Integer visit(SmallIntType smallIntType) {
+                       return 0;
+               }
+
+               @Override
+               public Integer visit(IntType intType) {
+                       return 0;
+               }
+
+               @Override
+               public Integer visit(BigIntType bigIntType) {
+                       return 0;
+               }
        }
 
        private static class YearPrecisionExtractor extends Extractor<Integer> {

Reply via email to