diff --git a/core/trino-spi/src/main/java/io/trino/spi/type/DecimalType.java b/core/trino-spi/src/main/java/io/trino/spi/type/DecimalType.java index e3a19bb94fab..efaaba6a2f51 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/type/DecimalType.java +++ b/core/trino-spi/src/main/java/io/trino/spi/type/DecimalType.java @@ -23,9 +23,10 @@ import static io.trino.spi.type.TypeSignatureParameter.numericParameter; import static java.lang.String.format; -public abstract class DecimalType +public abstract sealed class DecimalType extends AbstractType implements FixedWidthType + permits LongDecimalType, ShortDecimalType { public static final int DEFAULT_SCALE = 0; public static final int DEFAULT_PRECISION = MAX_PRECISION; diff --git a/core/trino-spi/src/main/java/io/trino/spi/type/LongTimeWithTimeZoneType.java b/core/trino-spi/src/main/java/io/trino/spi/type/LongTimeWithTimeZoneType.java index 3d93374b8516..504ef457f7df 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/type/LongTimeWithTimeZoneType.java +++ b/core/trino-spi/src/main/java/io/trino/spi/type/LongTimeWithTimeZoneType.java @@ -36,7 +36,7 @@ import static java.lang.String.format; import static java.lang.invoke.MethodHandles.lookup; -class LongTimeWithTimeZoneType +final class LongTimeWithTimeZoneType extends TimeWithTimeZoneType { private static final TypeOperatorDeclaration TYPE_OPERATOR_DECLARATION = extractOperatorDeclaration(LongTimeWithTimeZoneType.class, lookup(), LongTimeWithTimeZone.class); diff --git a/core/trino-spi/src/main/java/io/trino/spi/type/LongTimestampWithTimeZoneType.java b/core/trino-spi/src/main/java/io/trino/spi/type/LongTimestampWithTimeZoneType.java index 1cef7a98e6e1..c730d90a1497 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/type/LongTimestampWithTimeZoneType.java +++ b/core/trino-spi/src/main/java/io/trino/spi/type/LongTimestampWithTimeZoneType.java @@ -42,7 +42,7 @@ * in the first long and the fractional increment in the remaining integer, as a number of picoseconds * additional to the epoch millisecond. */ -class LongTimestampWithTimeZoneType +final class LongTimestampWithTimeZoneType extends TimestampWithTimeZoneType { private static final TypeOperatorDeclaration TYPE_OPERATOR_DECLARATION = extractOperatorDeclaration(LongTimestampWithTimeZoneType.class, lookup(), LongTimestampWithTimeZone.class); diff --git a/core/trino-spi/src/main/java/io/trino/spi/type/ShortTimeWithTimeZoneType.java b/core/trino-spi/src/main/java/io/trino/spi/type/ShortTimeWithTimeZoneType.java index 92585f21edad..2f1b8b944fdd 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/type/ShortTimeWithTimeZoneType.java +++ b/core/trino-spi/src/main/java/io/trino/spi/type/ShortTimeWithTimeZoneType.java @@ -40,7 +40,7 @@ /** * Encodes time with time zone up to p = 9. */ -class ShortTimeWithTimeZoneType +final class ShortTimeWithTimeZoneType extends TimeWithTimeZoneType { private static final TypeOperatorDeclaration TYPE_OPERATOR_DECLARATION = extractOperatorDeclaration(ShortTimeWithTimeZoneType.class, lookup(), long.class); diff --git a/core/trino-spi/src/main/java/io/trino/spi/type/ShortTimestampWithTimeZoneType.java b/core/trino-spi/src/main/java/io/trino/spi/type/ShortTimestampWithTimeZoneType.java index 09f50ce617a9..2a0684e64e35 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/type/ShortTimestampWithTimeZoneType.java +++ b/core/trino-spi/src/main/java/io/trino/spi/type/ShortTimestampWithTimeZoneType.java @@ -40,7 +40,7 @@ *

* The value is encoded as milliseconds from the 1970-01-01 00:00:00 epoch. */ -class ShortTimestampWithTimeZoneType +final class ShortTimestampWithTimeZoneType extends TimestampWithTimeZoneType { private static final TypeOperatorDeclaration TYPE_OPERATOR_DECLARATION = extractOperatorDeclaration(ShortTimestampWithTimeZoneType.class, lookup(), long.class); diff --git a/core/trino-spi/src/main/java/io/trino/spi/type/TimeWithTimeZoneType.java b/core/trino-spi/src/main/java/io/trino/spi/type/TimeWithTimeZoneType.java index 55a8ee5605d0..0b27040581ef 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/type/TimeWithTimeZoneType.java +++ b/core/trino-spi/src/main/java/io/trino/spi/type/TimeWithTimeZoneType.java @@ -18,9 +18,10 @@ import static io.trino.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; import static java.lang.String.format; -public abstract class TimeWithTimeZoneType +public abstract sealed class TimeWithTimeZoneType extends AbstractType implements FixedWidthType + permits LongTimeWithTimeZoneType, ShortTimeWithTimeZoneType { public static final int MAX_PRECISION = 12; public static final int MAX_SHORT_PRECISION = 9; diff --git a/core/trino-spi/src/main/java/io/trino/spi/type/TimestampWithTimeZoneType.java b/core/trino-spi/src/main/java/io/trino/spi/type/TimestampWithTimeZoneType.java index 58bb7ba06a0b..d900d47553c8 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/type/TimestampWithTimeZoneType.java +++ b/core/trino-spi/src/main/java/io/trino/spi/type/TimestampWithTimeZoneType.java @@ -22,9 +22,10 @@ * @see ShortTimestampWithTimeZoneType * @see LongTimestampWithTimeZoneType */ -public abstract class TimestampWithTimeZoneType +public abstract sealed class TimestampWithTimeZoneType extends AbstractType implements FixedWidthType + permits LongTimestampWithTimeZoneType, ShortTimestampWithTimeZoneType { public static final int MAX_PRECISION = 12;