Fix vacuum analyze error.
vacuum analyze on pg_type fails if bogus entries remain in pg_operator. Here is a sample script to reproduce the problem. drop table t1; create table t1(i int); drop function foo(t1,t1); create function foo(t1,t1) returns bool as 'select true' language 'sql'; create operator = ( leftarg = t1, rightarg = t1, commutator = =, procedure = foo ); drop table t1; vacuum analyze;
This commit is contained in:
parent
06e3d84d88
commit
919ace07d5
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.54 2001/01/24 19:43:01 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.55 2001/02/27 07:07:00 ishii Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -225,6 +225,12 @@ can_coerce_type(int nargs, Oid *input_typeids, Oid *func_typeids)
|
|||||||
if (typeInheritsFrom(inputTypeId, targetTypeId))
|
if (typeInheritsFrom(inputTypeId, targetTypeId))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
/* don't choke on references to no-longer-existing types */
|
||||||
|
if (!typeidIsValid(inputTypeId))
|
||||||
|
return false;
|
||||||
|
if (!typeidIsValid(targetTypeId))
|
||||||
|
return false;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Else, try for explicit conversion using functions: look for a
|
* Else, try for explicit conversion using functions: look for a
|
||||||
* single-argument function named with the target type name and
|
* single-argument function named with the target type name and
|
||||||
|
Loading…
x
Reference in New Issue
Block a user