diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2009-09-15 20:31:35 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2009-09-15 20:31:35 +0000 |
commit | 010394d7aa4eadb9ec6ba8f1175e7e043ae3d01f (patch) | |
tree | b039327eb568a392e6b650c890d6923b422b73cd /src/tutorial/complex.c | |
parent | 524f701cb5cc5e9846d623c4273bf71a93e0a6f5 (diff) | |
download | postgresql-010394d7aa4eadb9ec6ba8f1175e7e043ae3d01f.tar.gz postgresql-010394d7aa4eadb9ec6ba8f1175e7e043ae3d01f.zip |
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.
Diffstat (limited to 'src/tutorial/complex.c')
0 files changed, 0 insertions, 0 deletions