Re: Database corruption with duplicate tables.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: George Woodring <george(dot)woodring(at)iglass(dot)net>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Database corruption with duplicate tables.
Date: 2010-04-19 17:32:26
Message-ID: 29521.1271698346@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

George Woodring <george(dot)woodring(at)iglass(dot)net> writes:
> Upon investigation I found that I have a table that is in the database twice

> db=> select oid, relname from pg_class where oid IN (26770910,
> 26770918, 26770919);
> oid | relname
> ----------+---------------------------------------
> 26770910 | availcpedata_20100410
> 26770918 | availcpedata_20100410_date_index
> 26770919 | availcpedata_20100410_pollgrpid_index
> 26770910 | availcpedata_20100410
> (4 rows)

It's not immediately clear whether that's really two instances of the
row for availcpedata_20100410, or a false hit due to index corruption.
If you include ctid in the query, do the rows have distinct ctids?
If not, reindexing pg_class should fix it.

> Can anyone suggest a strategy for removing the table? I don't want to
> start randomly deleting stuff from the catalogs.

If there are two, manually deleting one is the only way to fix it. Use
the ctid to make sure you remove only one ...

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Alban Hertroys 2010-04-19 18:04:02 Re: Ltree - how to sort nodes on parent node
Previous Message Alvaro Herrera 2010-04-19 17:14:25 Re: Database corruption with duplicate tables.