diff --git a/presto-common/src/main/java/com/facebook/presto/common/type/UserDefinedType.java b/presto-common/src/main/java/com/facebook/presto/common/type/UserDefinedType.java index 06618c224ae92..22a4759fe1504 100644 --- a/presto-common/src/main/java/com/facebook/presto/common/type/UserDefinedType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/UserDefinedType.java @@ -18,7 +18,7 @@ import static java.util.Objects.requireNonNull; /** - * UserDefinedType represents an enum type, or a distinct type. + * UserDefinedType represents an enum type, a distinct type, or a primitive type with a name. * Type definition is defined by user and is extracted at runtime. */ public class UserDefinedType @@ -46,4 +46,14 @@ public boolean isDistinctType() { return representation.isDistinctType(); } + + public boolean isEnumType() + { + return representation.isEnum(); + } + + public boolean isPrimitiveType() + { + return !representation.isDistinctType() && representation.getTypeSignatureBase().hasStandardType(); + } } diff --git a/presto-main-base/src/main/java/com/facebook/presto/metadata/FunctionAndTypeManager.java b/presto-main-base/src/main/java/com/facebook/presto/metadata/FunctionAndTypeManager.java index 1aac110ea88e5..2781b84a63240 100644 --- a/presto-main-base/src/main/java/com/facebook/presto/metadata/FunctionAndTypeManager.java +++ b/presto-main-base/src/main/java/com/facebook/presto/metadata/FunctionAndTypeManager.java @@ -861,7 +861,7 @@ protected Type getType(UserDefinedType userDefinedType) if (userDefinedType.isDistinctType()) { return getDistinctType(userDefinedType.getPhysicalTypeSignature().getParameters().get(0).getDistinctTypeInfo()); } - // Enum type + // Enum type or primitive type with name return getType(new TypeSignature(userDefinedType)); }