mirror of
https://github.com/postgres/postgres.git
synced 2025-05-21 15:54:08 +03:00
This module provides SQL functions that allow to inspect logical decoding components. It currently allows to inspect the contents of serialized logical snapshots of a running database cluster, which is useful for debugging or educational purposes. Author: Bertrand Drouvot Reviewed-by: Amit Kapila, Shveta Malik, Peter Smith, Peter Eisentraut Reviewed-by: David G. Johnston Discussion: https://postgr.es/m/ZscuZ92uGh3wm4tW%40ip-10-97-1-34.eu-west-3.compute.internal
53 lines
2.4 KiB
Plaintext
53 lines
2.4 KiB
Plaintext
Parsed test spec with 2 sessions
|
|
|
|
starting permutation: s0_init s0_begin s0_savepoint s0_truncate s1_checkpoint s1_get_changes s0_commit s0_begin s0_insert s1_checkpoint s1_get_changes s0_commit s1_get_changes s1_get_logical_snapshot_info s1_get_logical_snapshot_meta
|
|
step s0_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
|
|
?column?
|
|
--------
|
|
init
|
|
(1 row)
|
|
|
|
step s0_begin: BEGIN;
|
|
step s0_savepoint: SAVEPOINT sp1;
|
|
step s0_truncate: TRUNCATE tbl1;
|
|
step s1_checkpoint: CHECKPOINT;
|
|
step s1_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'skip-empty-xacts', '1', 'include-xids', '0');
|
|
data
|
|
----
|
|
(0 rows)
|
|
|
|
step s0_commit: COMMIT;
|
|
step s0_begin: BEGIN;
|
|
step s0_insert: INSERT INTO tbl1 VALUES (1);
|
|
step s1_checkpoint: CHECKPOINT;
|
|
step s1_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'skip-empty-xacts', '1', 'include-xids', '0');
|
|
data
|
|
---------------------------------------
|
|
BEGIN
|
|
table public.tbl1: TRUNCATE: (no-flags)
|
|
COMMIT
|
|
(3 rows)
|
|
|
|
step s0_commit: COMMIT;
|
|
step s1_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'skip-empty-xacts', '1', 'include-xids', '0');
|
|
data
|
|
-------------------------------------------------------------
|
|
BEGIN
|
|
table public.tbl1: INSERT: val1[integer]:1 val2[integer]:null
|
|
COMMIT
|
|
(3 rows)
|
|
|
|
step s1_get_logical_snapshot_info: SELECT info.state, info.catchange_count, array_length(info.catchange_xip,1) AS catchange_array_length, info.committed_count, array_length(info.committed_xip,1) AS committed_array_length FROM pg_ls_logicalsnapdir(), pg_get_logical_snapshot_info(name) AS info ORDER BY 2;
|
|
state |catchange_count|catchange_array_length|committed_count|committed_array_length
|
|
----------+---------------+----------------------+---------------+----------------------
|
|
consistent| 0| | 2| 2
|
|
consistent| 2| 2| 0|
|
|
(2 rows)
|
|
|
|
step s1_get_logical_snapshot_meta: SELECT COUNT(meta.*) from pg_ls_logicalsnapdir(), pg_get_logical_snapshot_meta(name) as meta;
|
|
count
|
|
-----
|
|
2
|
|
(1 row)
|
|
|