Remove btree page items after page unlink
authorAlexander Korotkov <akorotkov@postgresql.org>
Tue, 4 Aug 2020 23:15:34 +0000 (02:15 +0300)
committerAlexander Korotkov <akorotkov@postgresql.org>
Tue, 4 Aug 2020 23:16:13 +0000 (02:16 +0300)
commitf47b5e139579a77c1f7c63400f01ea39d515e8c8
treec01cbe3fdeb976b903728cff101e3840ec8cce3f
parent0f76294260b92849c4958fb706ecd5b5cd73e40e
Remove btree page items after page unlink

Currently, page unlink leaves remaining items "as is", but replay of
corresponding WAL-record re-initializes page leaving it with no items.
For the sake of consistency, this commit makes primary delete all the items
during page unlink as well.

Thanks to this change, we now don't mask contents of deleted btree page for
WAL consistency checking.

Discussion: https://postgr.es/m/CAPpHfdt_OTyQpXaPJcWzV2N-LNeNJseNB-K_A66qG%3DL518VTFw%40mail.gmail.com
Author: Alexander Korotkov
Reviewed-by: Peter Geoghegan
contrib/amcheck/verify_nbtree.c
src/backend/access/nbtree/nbtpage.c
src/backend/access/nbtree/nbtxlog.c