pgsql: Fix two distinct errors in creation of GIN_INSERT_LISTPAGE xlog

Поиск
Список
Период
Сортировка
От tgl@postgresql.org (Tom Lane)
Тема pgsql: Fix two distinct errors in creation of GIN_INSERT_LISTPAGE xlog
Дата
Msg-id 20090915203135.AAC3E753FB7@cvs.postgresql.org
обсуждение исходный текст
Список pgsql-committers
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.

Tags:
----
REL8_4_STABLE

Modified Files:
--------------
    pgsql/src/backend/access/gin:
        ginfast.c (r1.3 -> r1.3.2.1)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gin/ginfast.c?r1=1.3&r2=1.3.2.1)

В списке pgsql-committers по дате отправления:

Предыдущее
От: tgl@postgresql.org (Tom Lane)
Дата:
Сообщение: pgsql: Fix two distinct errors in creation of GIN_INSERT_LISTPAGE xlog
Следующее
От: nanardon@pgfoundry.org (User Nanardon)
Дата:
Сообщение: pgrpm - pgrpm: - don't copy header to avoid memory leaks, rpm 4.4/4.6/5