Chapter 47. Logical Decoding
Table of Contents
- 47.1. Logical Decoding Examples
- 47.2. Logical Decoding Concepts
- 47.3. Streaming Replication Protocol Interface
- 47.4. Logical DecodingSQL Interface
- 47.5. System Catalogs Related to Logical Decoding
- 47.6. Logical Decoding Output Plugins
- 47.4. Logical DecodingSQL Interface
- 47.7. Logical Decoding Output Writers
- 47.8. Synchronous Replication Support for Logical Decoding
- 47.9. Streaming of Large Transactions for Logical Decoding
- 47.10. Two-phase Commit Support for Logical Decoding
PostgreSQL provides infrastructure to stream the modifications performed via SQL to external consumers. This functionality can be used for a variety of purposes, including replication solutions and auditing.
Changes are sent out in streams identified by logical replication slots.
The format in which those changes are streamed is determined by the output plugin used. An example plugin is provided in the PostgreSQL distribution. Additional plugins can be written to extend the choice of available formats without modifying any core code. Every output plugin has access to each individual new row produced byINSERT
and the new row version created byUPDATE
. Availability of old row versions forUPDATE
andDELETE
depends on the configured replica identity (seeREPLICA IDENTITY
).
Changes can be consumed either using the streaming replication protocol (seeSection 53.4 andSection 47.3), or by calling functions via SQL (seeSection 47.4). It is also possible to write additional methods of consuming the output of a replication slot without modifying core code (seeSection 47.7).