summaryrefslogtreecommitdiff
path: root/src/backend/commands/functioncmds.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands/functioncmds.c')
-rw-r--r--src/backend/commands/functioncmds.c48
1 files changed, 7 insertions, 41 deletions
diff --git a/src/backend/commands/functioncmds.c b/src/backend/commands/functioncmds.c
index 0757402b9e..00d7facc0f 100644
--- a/src/backend/commands/functioncmds.c
+++ b/src/backend/commands/functioncmds.c
@@ -75,7 +75,7 @@ compute_return_type(TypeName *returnType, Oid languageOid,
{
Oid rettype;
- rettype = LookupTypeName(returnType);
+ rettype = LookupTypeName(NULL, returnType);
if (OidIsValid(rettype))
{
@@ -174,7 +174,7 @@ examine_parameter_list(List *parameters, Oid languageOid,
TypeName *t = fp->argType;
Oid toid;
- toid = LookupTypeName(t);
+ toid = LookupTypeName(NULL, t);
if (OidIsValid(toid))
{
if (!get_typisdefined(toid))
@@ -1152,33 +1152,10 @@ CreateCast(CreateCastStmt *stmt)
ObjectAddress myself,
referenced;
- sourcetypeid = LookupTypeName(stmt->sourcetype);
- if (!OidIsValid(sourcetypeid))
- ereport(ERROR,
- (errcode(ERRCODE_UNDEFINED_OBJECT),
- errmsg("source data type %s does not exist",
- TypeNameToString(stmt->sourcetype))));
-
- targettypeid = LookupTypeName(stmt->targettype);
- if (!OidIsValid(targettypeid))
- ereport(ERROR,
- (errcode(ERRCODE_UNDEFINED_OBJECT),
- errmsg("target data type %s does not exist",
- TypeNameToString(stmt->targettype))));
-
- /* No shells, no pseudo-types allowed */
- if (!get_typisdefined(sourcetypeid))
- ereport(ERROR,
- (errcode(ERRCODE_WRONG_OBJECT_TYPE),
- errmsg("source data type %s is only a shell",
- TypeNameToString(stmt->sourcetype))));
-
- if (!get_typisdefined(targettypeid))
- ereport(ERROR,
- (errcode(ERRCODE_WRONG_OBJECT_TYPE),
- errmsg("target data type %s is only a shell",
- TypeNameToString(stmt->targettype))));
+ sourcetypeid = typenameTypeId(NULL, stmt->sourcetype);
+ targettypeid = typenameTypeId(NULL, stmt->targettype);
+ /* No pseudo-types allowed */
if (get_typtype(sourcetypeid) == 'p')
ereport(ERROR,
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
@@ -1400,19 +1377,8 @@ DropCast(DropCastStmt *stmt)
HeapTuple tuple;
ObjectAddress object;
- sourcetypeid = LookupTypeName(stmt->sourcetype);
- if (!OidIsValid(sourcetypeid))
- ereport(ERROR,
- (errcode(ERRCODE_UNDEFINED_OBJECT),
- errmsg("source data type %s does not exist",
- TypeNameToString(stmt->sourcetype))));
-
- targettypeid = LookupTypeName(stmt->targettype);
- if (!OidIsValid(targettypeid))
- ereport(ERROR,
- (errcode(ERRCODE_UNDEFINED_OBJECT),
- errmsg("target data type %s does not exist",
- TypeNameToString(stmt->targettype))));
+ sourcetypeid = typenameTypeId(NULL, stmt->sourcetype);
+ targettypeid = typenameTypeId(NULL, stmt->targettype);
tuple = SearchSysCache(CASTSOURCETARGET,
ObjectIdGetDatum(sourcetypeid),