postgres.git / summary / log / commit / refs

commit    d66daabec948df2a332a9b48ec5aa49145170d80
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Sun May 29 18:24:14 2005 +0000
First released in: 8.1.0

    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.


src/backend/parser/parse_coerce.c | 8 +------- src/backend/parser/parse_type.c | 11 +---------- src/include/parser/parse_type.h | 3 +-- 3 files changed, 3 insertions(+), 19 deletions(-) diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c index 287e496570b..094e99a8acf 100644 --- a/src/backend/parser/parse_coerce.c +++ b/src/backend/parser/parse_coerce.c @@ -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; diff --git a/src/backend/parser/parse_type.c b/src/backend/parser/parse_type.c index 21ce20c5ecf..d8fba16b555 100644 --- a/src/backend/parser/parse_type.c +++ b/src/backend/parser/parse_type.c @@ -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 diff --git a/src/include/parser/parse_type.h b/src/include/parser/parse_type.h index 507919d5a7d..24c004c8e7b 100644 --- a/src/include/parser/parse_type.h +++ b/src/include/parser/parse_type.h @@ -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); [parent: bbc048319f01]