> Hi guys,
>
> I've been looking at CLUSTER today. I've put together a patch which
> recreates all the indices which current CLUSTER drops and copies relacl
> from the old pg_class tuple and puts it in the new one.
>
> I was working on updating pg_inherits to handle the new OID when it
> occured to me that pg_inherits is not the only system table
> corrupted. pg_trigger, pg_rewrite (and therefore views) and pg_description
> need to be updated as well. It seems like the easiest thing to do would be
> to update the new relation to have to OID of the old relation. Is there
> any reason why we would not want to do this?
We did strange things with this in the past because we didn't have
pg_class.relfilenode. Now that we do, you can just recreate the heap
table using a different oid filename and update relfilenode when you are
done. Keep the same oid. Of course, as you noted, the old indexes have
to be recreated because the heap has changed.
-- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610)
853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill,
Pennsylvania19026