Remove typeidIsValid() checks in can_coerce_type(). These checks

were pretty expensive and I believe the case they were put in to
defend against can no longer arise, now that we have dependency checks
to prevent deletion of a type entry that is still referenced.  Certainly
the example given in the CVS log entry can't happen anymore.
Since this was the only use of typeidIsValid(), remove the routine too.
This commit is contained in:
Tom Lane 2005-05-29 18:24:14 +00:00
parent bbc048319f
commit d66daabec9
3 changed files with 3 additions and 19 deletions

View File

@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/parser/parse_coerce.c,v 2.128 2005/05/05 00:19:47 tgl Exp $
* $PostgreSQL: pgsql/src/backend/parser/parse_coerce.c,v 2.129 2005/05/29 18:24:13 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -371,12 +371,6 @@ can_coerce_type(int nargs, Oid *input_typeids, Oid *target_typeids,
if (inputTypeId == targetTypeId)
continue;
/* don't choke on references to no-longer-existing types */
if (!typeidIsValid(inputTypeId))
return false;
if (!typeidIsValid(targetTypeId))
return false;
/* accept if target is ANY */
if (targetTypeId == ANYOID)
continue;

View File

@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/parser/parse_type.c,v 1.74 2005/04/28 21:47:14 tgl Exp $
* $PostgreSQL: pgsql/src/backend/parser/parse_type.c,v 1.75 2005/05/29 18:24:13 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -239,15 +239,6 @@ typenameType(const TypeName *typename)
return (Type) tup;
}
/* check to see if a type id is valid, returns true if it is */
bool
typeidIsValid(Oid id)
{
return SearchSysCacheExists(TYPEOID,
ObjectIdGetDatum(id),
0, 0, 0);
}
/* return a Type structure, given a type id */
/* NB: caller must ReleaseSysCache the type tuple when done with it */
Type

View File

@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* $PostgreSQL: pgsql/src/include/parser/parse_type.h,v 1.29 2004/12/31 22:03:38 pgsql Exp $
* $PostgreSQL: pgsql/src/include/parser/parse_type.h,v 1.30 2005/05/29 18:24:14 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -25,7 +25,6 @@ extern char *TypeNameToString(const TypeName *typename);
extern Oid typenameTypeId(const TypeName *typename);
extern Type typenameType(const TypeName *typename);
extern bool typeidIsValid(Oid id);
extern Type typeidType(Oid id);
extern Oid typeTypeId(Type tp);