"Susy Ham" <sham@ncircle.com> writes:
> We are trying to perform a 'reindex database' and it will fail at
> varying points with a message like:
> ERROR: could not open relation with OID 587495058
> or
> ERROR: could not open relation with OID 587603875
Ugh :-(
> When we queried pg_class we got no rows returned:
> select oid,* from pg_class where oid in (587603875, 587495058);
Indeed not, since the error message is complaining exactly that it
couldn't find any such pg_class row. What you need to be looking into
is where the reference to the OID came from. I'd try looking into
pg_index and maybe pg_depend to see if there are rows linking to these
OIDs.
Also, in a message of this sort you really oughta expand a bit on your
reasons for needing a 'reindex database' in the first place, and the
procedure you are using for it. If you are trying to recover from
system catalog corruption then there's a number of subtle tricks to use
--- the main one being to run the backend with -P (which means "don't
trust the system indexes").
While I'm asking for specifics: exactly which PG version is this?
regards, tom lane