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:
parent
bbc048319f
commit
d66daabec9
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue