diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c
index 0b5b81c7f27..b884745f7f6 100644
--- a/src/backend/parser/parse_coerce.c
+++ b/src/backend/parser/parse_coerce.c
@@ -276,7 +276,7 @@ coerce_type(ParseState *pstate, Node *node,
 		 * or it won't be able to obey the bizarre SQL-spec input rules. (Ugly
 		 * as sin, but so is this part of the spec...)
 		 */
-		if (baseTypeId == INTERVALOID)
+		if (baseTypeId == INTERVALOID || baseTypeId >= 16384)
 			inputTypeMod = baseTypeMod;
 		else
 			inputTypeMod = -1;
