From 0338de62cd955b98244b5b624a2bcb7af76465b0 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Tue, 7 Dec 2021 15:29:51 +0100 Subject: [PATCH 3/4] Some documentation updates --- doc/src/sgml/logicaldecoding.sgml | 54 +++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 3 deletions(-) diff --git a/doc/src/sgml/logicaldecoding.sgml b/doc/src/sgml/logicaldecoding.sgml index b6353c7a12..eea4f3cd50 100644 --- a/doc/src/sgml/logicaldecoding.sgml +++ b/doc/src/sgml/logicaldecoding.sgml @@ -458,6 +458,7 @@ Initialization Function LogicalDecodeTruncateCB truncate_cb; LogicalDecodeCommitCB commit_cb; LogicalDecodeMessageCB message_cb; + LogicalDecodeSequenceCB sequence_cb; LogicalDecodeFilterByOriginCB filter_by_origin_cb; LogicalDecodeShutdownCB shutdown_cb; LogicalDecodeFilterPrepareCB filter_prepare_cb; @@ -472,6 +473,7 @@ Initialization Function LogicalDecodeStreamCommitCB stream_commit_cb; LogicalDecodeStreamChangeCB stream_change_cb; LogicalDecodeStreamMessageCB stream_message_cb; + LogicalDecodeStreamSequenceCB stream_sequence_cb; LogicalDecodeStreamTruncateCB stream_truncate_cb; } OutputPluginCallbacks; @@ -481,9 +483,12 @@ Initialization Function and commit_cb callbacks are required, while startup_cb, filter_by_origin_cb, truncate_cb, + sequence_cb, and shutdown_cb are optional. If truncate_cb is not set but a TRUNCATE is to be decoded, the action will be ignored. + Similarly, if sequence_cb is not set and a sequence + change is to be decoded, the action will be ignored. @@ -492,7 +497,7 @@ Initialization Function stream_stop_cb, stream_abort_cb, stream_commit_cb, stream_change_cb, and stream_prepare_cb - are required, while stream_message_cb and + are required, while stream_message_cb, stream_sequence_cb, and stream_truncate_cb are optional. @@ -808,6 +813,27 @@ Generic Message Callback + + Sequence Callback + + + The sequence_cb callback is called for actions that + change a sequence. + +typedef void (*LogicalDecodeSequenceCB) (struct LogicalDecodingContext *ctx, + ReorderBufferTXN *txn, + XLogRecPtr sequence_lsn, + Relation rel, + bool transactional, + bool created, + int64 last_value, + int64 log_cnt, + bool is_called); + + TODO + + + Prepare Filter Callback @@ -1017,6 +1043,28 @@ Stream Message Callback + + Stream Sequence Callback + + The stream_sequence_cb callback is called for + actions that change a sequence in a block of streamed changes + (demarcated by stream_start_cb and + stream_stop_cb calls). + +typedef void (*LogicalDecodeStreamSequenceCB) (struct LogicalDecodingContext *ctx, + ReorderBufferTXN *txn, + XLogRecPtr sequence_lsn, + Relation rel, + bool transactional, + bool created, + int64 last_value, + int64 log_cnt, + bool is_called); + + TODO + + + Stream Truncate Callback @@ -1197,8 +1245,8 @@ Streaming of Large Transactions for Logical Decoding in-progress transactions. There are multiple required streaming callbacks (stream_start_cb, stream_stop_cb, stream_abort_cb, stream_commit_cb - and stream_change_cb) and two optional callbacks - (stream_message_cb and stream_truncate_cb). + and stream_change_cb) and multiple optional callbacks + (stream_message_cb, stream_sequence_cb, and stream_truncate_cb). Also, if streaming of two-phase commands is to be supported, then additional callbacks must be provided. (See for details). -- 2.34.1