|
10 | 10 | *
|
11 | 11 | *
|
12 | 12 | * IDENTIFICATION
|
13 |
| - * $PostgreSQL: pgsql/src/backend/commands/functioncmds.c,v 1.72 2006/03/05 15:58:24 momjian Exp $ |
| 13 | + * $PostgreSQL: pgsql/src/backend/commands/functioncmds.c,v 1.73 2006/03/14 22:48:18 tgl Exp $ |
14 | 14 | *
|
15 | 15 | * DESCRIPTION
|
16 | 16 | * These routines take the parse tree and pick out the
|
@@ -75,7 +75,7 @@ compute_return_type(TypeName *returnType, Oid languageOid,
|
75 | 75 | {
|
76 | 76 | Oidrettype;
|
77 | 77 |
|
78 |
| -rettype=LookupTypeName(returnType); |
| 78 | +rettype=LookupTypeName(NULL,returnType); |
79 | 79 |
|
80 | 80 | if (OidIsValid(rettype))
|
81 | 81 | {
|
@@ -174,7 +174,7 @@ examine_parameter_list(List *parameters, Oid languageOid,
|
174 | 174 | TypeName*t=fp->argType;
|
175 | 175 | Oidtoid;
|
176 | 176 |
|
177 |
| -toid=LookupTypeName(t); |
| 177 | +toid=LookupTypeName(NULL,t); |
178 | 178 | if (OidIsValid(toid))
|
179 | 179 | {
|
180 | 180 | if (!get_typisdefined(toid))
|
@@ -1152,33 +1152,10 @@ CreateCast(CreateCastStmt *stmt)
|
1152 | 1152 | ObjectAddressmyself,
|
1153 | 1153 | referenced;
|
1154 | 1154 |
|
1155 |
| -sourcetypeid=LookupTypeName(stmt->sourcetype); |
1156 |
| -if (!OidIsValid(sourcetypeid)) |
1157 |
| -ereport(ERROR, |
1158 |
| -(errcode(ERRCODE_UNDEFINED_OBJECT), |
1159 |
| -errmsg("source data type %s does not exist", |
1160 |
| -TypeNameToString(stmt->sourcetype)))); |
1161 |
| - |
1162 |
| -targettypeid=LookupTypeName(stmt->targettype); |
1163 |
| -if (!OidIsValid(targettypeid)) |
1164 |
| -ereport(ERROR, |
1165 |
| -(errcode(ERRCODE_UNDEFINED_OBJECT), |
1166 |
| -errmsg("target data type %s does not exist", |
1167 |
| -TypeNameToString(stmt->targettype)))); |
1168 |
| - |
1169 |
| -/* No shells, no pseudo-types allowed */ |
1170 |
| -if (!get_typisdefined(sourcetypeid)) |
1171 |
| -ereport(ERROR, |
1172 |
| -(errcode(ERRCODE_WRONG_OBJECT_TYPE), |
1173 |
| -errmsg("source data type %s is only a shell", |
1174 |
| -TypeNameToString(stmt->sourcetype)))); |
1175 |
| - |
1176 |
| -if (!get_typisdefined(targettypeid)) |
1177 |
| -ereport(ERROR, |
1178 |
| -(errcode(ERRCODE_WRONG_OBJECT_TYPE), |
1179 |
| -errmsg("target data type %s is only a shell", |
1180 |
| -TypeNameToString(stmt->targettype)))); |
| 1155 | +sourcetypeid=typenameTypeId(NULL,stmt->sourcetype); |
| 1156 | +targettypeid=typenameTypeId(NULL,stmt->targettype); |
1181 | 1157 |
|
| 1158 | +/* No pseudo-types allowed */ |
1182 | 1159 | if (get_typtype(sourcetypeid)=='p')
|
1183 | 1160 | ereport(ERROR,
|
1184 | 1161 | (errcode(ERRCODE_WRONG_OBJECT_TYPE),
|
@@ -1400,19 +1377,8 @@ DropCast(DropCastStmt *stmt)
|
1400 | 1377 | HeapTupletuple;
|
1401 | 1378 | ObjectAddressobject;
|
1402 | 1379 |
|
1403 |
| -sourcetypeid=LookupTypeName(stmt->sourcetype); |
1404 |
| -if (!OidIsValid(sourcetypeid)) |
1405 |
| -ereport(ERROR, |
1406 |
| -(errcode(ERRCODE_UNDEFINED_OBJECT), |
1407 |
| -errmsg("source data type %s does not exist", |
1408 |
| -TypeNameToString(stmt->sourcetype)))); |
1409 |
| - |
1410 |
| -targettypeid=LookupTypeName(stmt->targettype); |
1411 |
| -if (!OidIsValid(targettypeid)) |
1412 |
| -ereport(ERROR, |
1413 |
| -(errcode(ERRCODE_UNDEFINED_OBJECT), |
1414 |
| -errmsg("target data type %s does not exist", |
1415 |
| -TypeNameToString(stmt->targettype)))); |
| 1380 | +sourcetypeid=typenameTypeId(NULL,stmt->sourcetype); |
| 1381 | +targettypeid=typenameTypeId(NULL,stmt->targettype); |
1416 | 1382 |
|
1417 | 1383 | tuple=SearchSysCache(CASTSOURCETARGET,
|
1418 | 1384 | ObjectIdGetDatum(sourcetypeid),
|
|