vacuum analyze fails: ERROR: Unable to locate type oid 2230924 in catalog - Mailing list pgsql-hackers

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;

To fix the problem I propose following patches. Comments?
--
Tatsuo Ishii

*** parse_coerce.c.orig    Sat Feb  3 20:07:53 2001
--- parse_coerce.c    Tue Feb 27 11:33:01 2001
***************
*** 190,195 ****
--- 190,201 ----         Oid            inputTypeId = input_typeids[i];         Oid            targetTypeId =
func_typeids[i];
 
+         if (typeidIsValid(inputTypeId) == false)
+             return(false);
+ 
+         if (typeidIsValid(targetTypeId) == false)
+             return(false);
+          /* no problem if same type */         if (inputTypeId == targetTypeId)             continue;


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [ADMIN] COPY doesn't works when containing ' ' or ' ' characters on db
Next
From: The Hermit Hacker
Date:
Subject: Re[3]: Re: [PATCHES] A patch for xlog.c