diff --git a/src/backend/parser/parse_type.c b/src/backend/parser/parse_type.c
index ca5fbed..0e9632c 100644
--- a/src/backend/parser/parse_type.c
+++ b/src/backend/parser/parse_type.c
@@ -157,13 +157,18 @@ LookupTypeName(ParseState *pstate, const TypeName *typeName,
 			/* Look in specific schema only */
 			Oid			namespaceId;
 
-			namespaceId = LookupExplicitNamespace(schemaname, missing_ok);
+			namespaceId = LookupExplicitNamespace(schemaname, true);
 			if (OidIsValid(namespaceId))
 				typoid = GetSysCacheOid2(TYPENAMENSP,
 										 PointerGetDatum(typname),
 										 ObjectIdGetDatum(namespaceId));
-			else
+			else if (missing_ok)
 				typoid = InvalidOid;
+			else
+				ereport(ERROR,
+						(errcode(ERRCODE_UNDEFINED_SCHEMA),
+						 errmsg("schema \"%s\" does not exist", schemaname),
+						 parser_errposition(pstate, typeName->location)));
 		}
 		else
 		{
