]> granicus.if.org Git - postgresql/commit
Fix WAL-logging of B-tree "unlink halfdead page" operation.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Mon, 17 Nov 2014 16:42:04 +0000 (18:42 +0200)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Mon, 17 Nov 2014 16:48:11 +0000 (18:48 +0200)
commit8607fdf0337051ca1da493ded5db15c41da08d66
treeada493385134553cf2bc7958309fc385d29936f0
parentd8a7cdde585c49037cdfdc624223dd53cd868a30
Fix WAL-logging of B-tree "unlink halfdead page" operation.

There was some confusion on how to record the case that the operation
unlinks the last non-leaf page in the branch being deleted.
_bt_unlink_halfdead_page set the "topdead" field in the WAL record to
the leaf page, but the redo routine assumed that it would be an invalid
block number in that case. This commit fixes _bt_unlink_halfdead_page to
do what the redo routine expected.

This code is new in 9.4, so backpatch there.
src/backend/access/nbtree/nbtpage.c