mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Show record information in pg_get_wal_block_info.
Expand the output parameters in pg_walinspect's pg_get_wal_block_info function to return additional information that was previously only available from pg_walinspect's pg_get_wal_records_info function. Some of the details are attributed to individual block references, rather than aggregated into whole-record values, since the function returns one row per block reference per WAL record (unlike pg_get_wal_records_info, which always returns one row per WAL record). This structure is much easier to work with when writing queries that track how individual blocks changed over time, or when attributing costs to individual blocks (not WAL records) is useful. This is the second time that pg_get_wal_block_info has been enhanced in recent weeks. Commit9ecb134a
expanded on the original version of the function added in commitc31cf1c0
(where it first appeared under the name pg_get_wal_fpi_info). There still hasn't been a stable release since commitc31cf1c0
, so no bump in the pg_walinspect extension version. Author: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com> Author: Peter Geoghegan <pg@bowt.ie> Reviewed-By: Peter Geoghegan <pg@bowt.ie> Reviewed-By: Kyotaro HORIGUCHI <horikyota.ntt@gmail.com> Discussion: https://postgr.es/m/CALj2ACVRK5=Z+2ZVsjgTTSkfEnQzCuwny7iigpG7g1btk4Ws2A@mail.gmail.com
This commit is contained in:
@ -78,7 +78,7 @@ UPDATE sample_tbl SET col1 = col1 + 1 WHERE col1 = 1;
|
||||
SELECT pg_current_wal_lsn() AS wal_lsn4 \gset
|
||||
-- Check if we get block data from WAL record.
|
||||
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_block_info(:'wal_lsn3', :'wal_lsn4')
|
||||
WHERE relfilenode = :'sample_tbl_oid' AND blockdata IS NOT NULL;
|
||||
WHERE relfilenode = :'sample_tbl_oid' AND block_data IS NOT NULL;
|
||||
|
||||
-- Force full-page image on the next update.
|
||||
SELECT pg_current_wal_lsn() AS wal_lsn5 \gset
|
||||
@ -87,7 +87,7 @@ UPDATE sample_tbl SET col1 = col1 + 1 WHERE col1 = 2;
|
||||
SELECT pg_current_wal_lsn() AS wal_lsn6 \gset
|
||||
-- Check if we get FPI from WAL record.
|
||||
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_block_info(:'wal_lsn5', :'wal_lsn6')
|
||||
WHERE relfilenode = :'sample_tbl_oid' AND fpi IS NOT NULL;
|
||||
WHERE relfilenode = :'sample_tbl_oid' AND block_fpi_data IS NOT NULL;
|
||||
|
||||
-- ===================================================================
|
||||
-- Tests for permissions
|
||||
|
Reference in New Issue
Block a user