Fix COPY FREEZE with CLOBBER_CACHE_ALWAYS

Tomas Vondra <tomas.vondra@postgresql.org>

Commit: 39b66a91bdebb00af71a2c6218412ecfc89a0e13
Author: Tomas Vondra <tomas.vondra@postgresql.org>
Date: 2021-01-24T00:08:11Z
Releases: 14.0
Fix COPY FREEZE with CLOBBER_CACHE_ALWAYS

This adds code omitted from commit 7db0cd2145 by accident, which had
two consequences. Firstly, only rows inserted by heap_multi_insert were
frozen as expected when running COPY FREEZE, while heap_insert left
rows unfrozen. That however includes rows in TOAST tables, so a lot of
data might have been left unfrozen. Secondly, page might have been left
partially empty after relcache invalidation.

This addresses both of those issues.

Discussion: https://postgr.es/m/CABOikdN-ptGv0mZntrK2Q8OtfUuAjqaYMGmkdU1dCKFtUxVLrg@mail.gmail.com

Files

PathChange+/−
src/backend/access/heap/heapam.c modified +77 −1
src/backend/access/heap/hio.c modified +11 −11

Discussion