Fix handling of non-upgraded B-tree metapages

Teodor Sigaev <teodor@sigaev.ru>

Commit: 0a64b45152b593c5eb95f2e88fbce7fbfe84ae7b
Author: Teodor Sigaev <teodor@sigaev.ru>
Date: 2018-04-05T14:56:00Z
Releases: 11.0
Fix handling of non-upgraded B-tree metapages

857f9c36 bumps B-tree metapage version while upgrade is performed "on the fly"
when needed. However, some asserts fired when old version metapage was
cached to rel->rd_amcache. Despite new metadata fields are never used from
rel->rd_amcache, that needs to be fixed. This patch introduces metadata
upgrade during its caching, which fills unavailable fields with their default
values. contrib/pageinspect is also patched to handle non-upgraded metapages
in the same way.

Author: Alexander Korotkov

Files

PathChange+/−
contrib/pageinspect/btreefuncs.c modified +15 −2
src/backend/access/nbtree/nbtpage.c modified +41 −6