Documentation PostgreSQL 15.15 » Annexes » Modules supplémentaires fournis » test_decoding

Précédent | Niveau supérieur | Suivant
F.44. tcn | Sommaire | F.46. tsm_system_rows

## F.45. test_decoding

`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 de point de départ pour créer votre propre plugin de sortie.

`test_decoding` reçoit les journaux de transactions à 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 transactions 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)