On Wed, Dec 1, 2010 at 4:00 AM, Heikki Linnakangas <heikki.linnakan...@enterprisedb.com> wrote: > On 01.12.2010 04:10, Robert Haas wrote: >> >> On Tue, Nov 30, 2010 at 10:26 AM, Heikki Linnakangas >> <heikki.linnakan...@enterprisedb.com> wrote: >>>> >>>> Does the current code cope with the corruption? >>> >>> It's not corruption, but "intended degradation". Yes, the current code >>> copes >>> with it, that's how GiST survives a crash. However, even with the current >>> code, VACUUM will nag if it finds any invalid tuples with this message: >>> >>> ereport(NOTICE, >>> (errmsg("index \"%s\" needs VACUUM FULL or REINDEX to finish crash >>> recovery", >>> >>> That's harmless, in the sense that all scans and inserts work fine, but >>> scans might need to do more work than if the invalid tuple wasn't there. >>> >>> I don't think we need to go out of our way to support such degraded >>> indexes >>> in 9.1. If you see such notices in your logs, you should REINDEX anyway, >>> before of after pg_upgrade. Let's just make sure that you get a >>> reasonable >>> error message in 9.1 if a scan or insert encounters such a tuple. >> >> I just don't want to take a risk of giving people unexpected wrong >> answers. It's not clear to me whether that's a risk here or not. > > You'll get an error if a scan encounters an invalid tuple. > > In the patch I posted, I just ripped out everything related to invalid > tuples altogether. But we should add a check and ereport for that before > commit.
All right, that seems like a reasonable backstop, if we're fairly sure this won't be a common scenario. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers