Thread: pgsql: Fix two distinct errors in creation of GIN_INSERT_LISTPAGE xlog
pgsql: Fix two distinct errors in creation of GIN_INSERT_LISTPAGE xlog
From
tgl@postgresql.org (Tom Lane)
Date:
Log Message: ----------- Fix two distinct errors in creation of GIN_INSERT_LISTPAGE xlog records. In practice these mistakes were always masked when full_page_writes was on, because XLogInsert would always choose to log the full page, and then ginRedoInsertListPage wouldn't try to do anything. But with full_page_writes off a WAL replay failure was certain. The GIN_INSERT_LISTPAGE record type could probably be eliminated entirely in favor of using XLOG_HEAP_NEWPAGE, but I refrained from doing that now since it would have required a significantly more invasive patch. In passing do a little bit of code cleanup, including making the accounting for free space on GIN list pages more precise. (This wasn't a bug as the errors were always in the conservative direction.) Per report from Simon. Back-patch to 8.4 which contains the identical code. Modified Files: -------------- pgsql/src/backend/access/gin: ginfast.c (r1.3 -> r1.4) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gin/ginfast.c?r1=1.3&r2=1.4)