Tom Lane wrote: > "scott.marlowe" <[EMAIL PROTECTED]> writes: > > Sorry, that should have been: > > Isn't it true that reindex's behavior ON A FAILURE is to simply, quietly > > delete the index? that was reported ^^^^^^^^^^^^^ > > No. > > If you are doing a standalone system index rebuild (with backend -P > switch) then REINDEX does a "TRUNCATE" of the index relation and > rebuilds it in place. If that fails partway through, you'd be left > with a corrupted index ... which presumably is the same problem you > started with, so I'm not that concerned about it. > > The TRUNCATE approach is also used for rebuilding indexes on shared > system relations (pg_database, pg_shadow, pg_group). This seems > necessary since REINDEX has no way to update pg_class.relfilenode in > databases other than the current one. > > In all other cases the rebuild is rollback-able, and a failure should > leave you exactly where you were before. > > > Given these facts I think it would be a bad idea to include the shared > system relations in any automatic "REINDEX ALL" command. One could > make a good argument that any such command should skip *all* system > tables, actually.
Yes, absolutely. REINDEX is not like vacuum. It needs to skip all system tables, I think. Those indexes are tied into backend structures. -- Bruce Momjian | http://candle.pha.pa.us [EMAIL PROTECTED] | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly