September 25, 2025: PostgreSQL 18 Released!
DocumentationPostgreSQL devel (2025年09月25日 15:24:14 - git commit 507aa16125c)
Supported Versions: Current (18) / 17 / 16 / 15 / 14 / 13
Development Versions: devel
Unsupported versions: 12 / 11 / 10 / 9.6 / 9.5 / 9.4
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the current version, or one of the other supported versions listed above instead.
Chapter 47. Logical Decoding
Prev Up Part V. Server Programming Home Next

Chapter 47. Logical Decoding

Table of Contents

47.1. Logical Decoding Examples
47.2. Logical Decoding Concepts
47.2.1. Logical Decoding
47.2.2. Replication Slots
47.2.3. Replication Slot Synchronization
47.2.4. Output Plugins
47.2.5. Exported Snapshots
47.3. Streaming Replication Protocol Interface
47.4. Logical Decoding SQL Interface
47.5. System Catalogs Related to Logical Decoding
47.6. Logical Decoding Output Plugins
47.6.1. pgoutput — Standard Logical Decoding Output Plugin
47.7. Writing Logical Decoding Output Plugins
47.7.1. Initialization Function
47.7.2. Capabilities
47.7.3. Output Modes
47.7.4. Output Plugin Callbacks
47.7.5. Functions for Producing Output
47.8. Logical Decoding Output Writers
47.9. Synchronous Replication Support for Logical Decoding
47.9.1. Overview
47.9.2. Caveats
47.10. Streaming of Large Transactions for Logical Decoding
47.11. 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 by INSERT and the new row version created by UPDATE. Availability of old row versions for UPDATE and DELETE depends on the configured replica identity (see REPLICA IDENTITY).

Changes can be consumed either using the streaming replication protocol (see Section 54.4 and Section 47.3), or by calling functions via SQL (see Section 47.4). It is also possible to write additional methods of consuming the output of a replication slot without modifying core code (see Section 47.8).


Prev Up Next
Chapter 46. Background Worker Processes Home 47.1. Logical Decoding Examples

AltStyle によって変換されたページ (->オリジナル) /