test_decoding
est un exemple de plugin de sortie pour le
décodage logique. Il ne fait rien de particulièrement utile, mais peut
servir comme point de départ pour créer votre propre plugin de sortie.
test_decoding
reçoit les journaux de transaction à
travers les mécanismes de décodage logique, et les décode sous forme de
représentation au format texte des opérations effectuées.
La sortie typique de ce plugin, utilisé sur l'interface de décodage logique SQL, serait :
postgres=# SELECT * FROM pg_logical_slot_get_changes('test_slot', NULL, NULL, 'include-xids', '0'); lsn | xid | data -----------+-----+-------------------------------------------------- 0/16D30F8 | 691 | BEGIN 0/16D32A0 | 691 | table public.data: INSERT: id[int4]:2 data[text]:'arg' 0/16D32A0 | 691 | table public.data: INSERT: id[int4]:3 data[text]:'demo' 0/16D32A0 | 691 | COMMIT 0/16D32D8 | 692 | BEGIN 0/16D3398 | 692 | table public.data: DELETE: id[int4]:2 0/16D3398 | 692 | table public.data: DELETE: id[int4]:3 0/16D3398 | 692 | COMMIT (8 rows)
Nous pouvons aussi obtenir les changements de transaction en cours. La sortie ressemblerait typiquement à ceci :
postgres[33712]=#* SELECT * FROM pg_logical_slot_get_changes('test_slot', NULL, NULL, 'stream-changes', '1'); lsn | xid | data -----------+-----+-------------------------------------------------- 0/16B21F8 | 503 | opening a streamed block for transaction TXN 503 0/16B21F8 | 503 | streaming change for TXN 503 0/16B2300 | 503 | streaming change for TXN 503 0/16B2408 | 503 | streaming change for TXN 503 0/16BEBA0 | 503 | closing a streamed block for transaction TXN 503 0/16B21F8 | 503 | opening a streamed block for transaction TXN 503 0/16BECA8 | 503 | streaming change for TXN 503 0/16BEDB0 | 503 | streaming change for TXN 503 0/16BEEB8 | 503 | streaming change for TXN 503 0/16BEBA0 | 503 | closing a streamed block for transaction TXN 503 (10 rows)