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:45:46 +0000 (18:45 +0200)
commitc73669c0e0168923e3f9e787beec980f55af2bd8
tree28d7663c466d8aad15ca3d577f2981d641f6d878
parent0f9692b40d1292f1b2640f026561908fd37b7407
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