pgsql: Fix full-page writes of internal GIN pages. - Mailing list pgsql-committers

From Heikki Linnakangas
Subject pgsql: Fix full-page writes of internal GIN pages.
Date
Msg-id E1Vnxb2-0001Gh-5m@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix full-page writes of internal GIN pages.

Insertion to a non-leaf GIN page didn't make a full-page image of the page,
which is wrong. The code used to do it correctly, but was changed (commit
853d1c3103fa961ae6219f0281885b345593d101) because the redo-routine didn't
track incomplete splits correctly when the page was restored from a full
page image. Of course, that was not right way to fix it, the redo routine
should've been fixed instead. The redo-routine was surreptitiously fixed
in 2010 (commit 4016bdef8aded77b4903c457050622a5a1815c16), so all we need
to do now is revert the code that creates the record to its original form.

This doesn't change the format of the WAL record.

Backpatch to all supported versions.

Branch
------
REL9_1_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/e6acb956a0505572b470daf27c145e930e689b23

Modified Files
--------------
src/backend/access/gin/gindatapage.c  |   42 +++++++++++++--------------------
src/backend/access/gin/ginentrypage.c |   42 +++++++++++++--------------------
2 files changed, 34 insertions(+), 50 deletions(-)


pgsql-committers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: pgsql: Fix full-page writes of internal GIN pages.
Next
From: Heikki Linnakangas
Date:
Subject: pgsql: Fix full-page writes of internal GIN pages.