mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-08-21 06:23:23 +02:00
122376f028
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
42 lines
1.2 KiB
SQL
42 lines
1.2 KiB
SQL
/* contrib/pg_walinspect/pg_walinspect--1.0--1.1.sql */
|
|
|
|
-- complain if script is sourced in psql, rather than via ALTER EXTENSION
|
|
\echo Use "ALTER EXTENSION pg_walinspect UPDATE TO '1.1'" to load this file. \quit
|
|
|
|
-- Unsupported functions after 1.1.
|
|
DROP FUNCTION pg_get_wal_records_info_till_end_of_wal(pg_lsn);
|
|
DROP FUNCTION pg_get_wal_stats_till_end_of_wal(pg_lsn, boolean);
|
|
|
|
--
|
|
-- pg_get_wal_block_info()
|
|
--
|
|
CREATE FUNCTION pg_get_wal_block_info(IN start_lsn pg_lsn,
|
|
IN end_lsn pg_lsn,
|
|
OUT start_lsn pg_lsn,
|
|
OUT end_lsn pg_lsn,
|
|
OUT prev_lsn pg_lsn,
|
|
OUT block_id int2,
|
|
OUT reltablespace oid,
|
|
OUT reldatabase oid,
|
|
OUT relfilenode oid,
|
|
OUT relforknumber int2,
|
|
OUT relblocknumber int8,
|
|
OUT xid xid,
|
|
OUT resource_manager text,
|
|
OUT record_type text,
|
|
OUT record_length int4,
|
|
OUT main_data_length int4,
|
|
OUT block_data_length int4,
|
|
OUT block_fpi_length int4,
|
|
OUT block_fpi_info text[],
|
|
OUT description text,
|
|
OUT block_data bytea,
|
|
OUT block_fpi_data bytea
|
|
)
|
|
RETURNS SETOF record
|
|
AS 'MODULE_PATHNAME', 'pg_get_wal_block_info'
|
|
LANGUAGE C STRICT PARALLEL SAFE;
|
|
|
|
REVOKE EXECUTE ON FUNCTION pg_get_wal_block_info(pg_lsn, pg_lsn) FROM PUBLIC;
|
|
GRANT EXECUTE ON FUNCTION pg_get_wal_block_info(pg_lsn, pg_lsn) TO pg_read_server_files;
|