I broke pg_upgrade for GiST

From: Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>
To: PostgreSQL-development <pgsql-hackers(at)postgreSQL(dot)org>
Subject: I broke pg_upgrade for GiST
Date: 2013-01-16 12:18:21
Message-ID: 50F69A8D.6030008@vmware.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I just realized that my patch that turned XLogRecPtr into a uint64
changed the on-disk format of GiST indexes, because the NSN field in the
page header is an XLogRecPtr. Oops. Fortunately that's easy to fix. I
avoided the same issue with LSNs by continuing to use the old two-field
struct in the on-disk format, we just need to do the same for the NSN
field in GiST. Patch attached.

This got me thinking: although the problem is immediately visible when
you try to run queries on an upgraded gist index - you get incorrect
results - the test procedure explained in TESTING file and performed by
tests.h won't catch this.

We're never going to have full coverage of all possible
incompatibilities, but it would be nice to have at least a simple test
suite that creates an index using each indexam, and checks that they
still work after upgrade.

- Heikki

Attachment Content-Type Size
make-gist-on-disk-compatible-again-1.patch text/x-diff 7.7 KB

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2013-01-16 12:53:12 Re: Parallel query execution
Previous Message Magnus Hagander 2013-01-16 12:18:04 Re: CF3+4 (was Re: Parallel query execution)