Though I notice something I can't understand here.
After activating the new clone subsequent attempts to select rows from
the page bump the LSN, presumably due to touching hint bits (since the
prune xid hasn't changed). But the checksum hasn't changed even after
running CHECKPOINT.
How is it possible for the LSN to get updated without changing the checksum?
postgres=# select (page_header(get_raw_page('users',13065))).* ; lsn | checksum | flags | lower | upper |
special| pagesize |
version | prune_xid
-------------+----------+-------+-------+-------+---------+----------+---------+-----------FD/330EC998 | -25547 |
1| 152 | 2576 | 8192 | 8192 | 4 | 5638282
(1 row)
postgres=# select (page_header(get_raw_page('users',13065))).* ; lsn | checksum | flags | lower | upper |
special| pagesize |
version | prune_xid
-------------+----------+-------+-------+-------+---------+----------+---------+-----------FD/33140160 | -25547 |
1| 152 | 2576 | 8192 | 8192 | 4 | 5638282
(1 row)
postgres=# select (page_header(get_raw_page('users',13065))).* ; lsn | checksum | flags | lower | upper |
special| pagesize |
version | prune_xid
-------------+----------+-------+-------+-------+---------+----------+---------+-----------FD/350016E8 | -25547 |
1| 152 | 2576 | 8192 | 8192 | 4 | 5638282
(1 row)