| F.41. pg_logicalinspect — logical decoding components inspection | ||||
|---|---|---|---|---|
| Prev | Up | Appendix F. Additional Supplied Modules and Extensions Shipped inpostgrespro-std-18-contrib | Home | Next |
F.41. pg_logicalinspect — logical decoding components inspection#
Thepg_logicalinspect module provides SQL functions that allow you to inspect the contents of logical decoding components. It allows the inspection of serialized logical snapshots of a runningPostgres Pro database cluster, which is useful for debugging or educational purposes.
By default, use of these functions is restricted to superusers and members of thepg_read_server_files role. Access may be granted by superusers to others usingGRANT.
F.41.1. Functions#
pg_get_logical_snapshot_meta(filename text) returns record#Gets logical snapshot metadata about a snapshot file that is located in the server's
pg_logical/snapshotsdirectory. Thefilenameargument represents the snapshot file name. For example:postgres=# SELECT * FROM pg_ls_logicalsnapdir();-[ RECORD 1 ]+-----------------------name | 0-40796E18.snapsize | 152modification | 2024-08-14 16:36:32+00postgres=# SELECT * FROM pg_get_logical_snapshot_meta('0-40796E18.snap');-[ RECORD 1 ]--------magic | 1369563137checksum | 1028045905version | 6postgres=# SELECT ss.name, meta.* FROM pg_ls_logicalsnapdir() AS ss,pg_get_logical_snapshot_meta(ss.name) AS meta;-[ RECORD 1 ]-------------name | 0-40796E18.snapmagic | 1369563137checksum | 1028045905version | 6If
filenamedoes not match a snapshot file, the function raises an error.pg_get_logical_snapshot_info(filename text) returns record#Gets logical snapshot information about a snapshot file that is located in the server's
pg_logical/snapshotsdirectory. Thefilenameargument represents the snapshot file name. For example:postgres=# SELECT * FROM pg_ls_logicalsnapdir();-[ RECORD 1 ]+-----------------------name | 0-40796E18.snapsize | 152modification | 2024-08-14 16:36:32+00postgres=# SELECT * FROM pg_get_logical_snapshot_info('0-40796E18.snap');-[ RECORD 1 ]------------+-----------state | consistentxmin | 751xmax | 751start_decoding_at | 0/40796AF8two_phase_at | 0/40796AF8initial_xmin_horizon | 0building_full_snapshot | fin_slot_creation | flast_serialized_snapshot | 0/0next_phase_at | 0committed_count | 0committed_xip |catchange_count | 2catchange_xip | {751,752}postgres=# SELECT ss.name, info.* FROM pg_ls_logicalsnapdir() AS ss,pg_get_logical_snapshot_info(ss.name) AS info;-[ RECORD 1 ]------------+----------------name | 0-40796E18.snapstate | consistentxmin | 751xmax | 751start_decoding_at | 0/40796AF8two_phase_at | 0/40796AF8initial_xmin_horizon | 0building_full_snapshot | fin_slot_creation | flast_serialized_snapshot | 0/0next_phase_at | 0committed_count | 0committed_xip |catchange_count | 2catchange_xip | {751,752}If
filenamedoes not match a snapshot file, the function raises an error.
F.41.2. Author#
Bertrand Drouvot<bertranddrouvot.pg@gmail.com>