diff options
-rw-r--r-- | doc/src/sgml/logicaldecoding.sgml | 50 |
1 files changed, 27 insertions, 23 deletions
diff --git a/doc/src/sgml/logicaldecoding.sgml b/doc/src/sgml/logicaldecoding.sgml index 4cf863a76f3..4e912b4bd48 100644 --- a/doc/src/sgml/logicaldecoding.sgml +++ b/doc/src/sgml/logicaldecoding.sgml @@ -479,8 +479,8 @@ typedef void (*LogicalOutputPluginInit) (struct OutputPluginCallbacks *cb); </programlisting> The <function>begin_cb</function>, <function>change_cb</function> and <function>commit_cb</function> callbacks are required, - while <function>startup_cb</function>, - <function>filter_by_origin_cb</function>, <function>truncate_cb</function>, + while <function>startup_cb</function>, <function>truncate_cb</function>, + <function>message_cb</function>, <function>filter_by_origin_cb</function>, and <function>shutdown_cb</function> are optional. If <function>truncate_cb</function> is not set but a <command>TRUNCATE</command> is to be decoded, the action will be ignored. @@ -490,19 +490,21 @@ typedef void (*LogicalOutputPluginInit) (struct OutputPluginCallbacks *cb); An output plugin may also define functions to support streaming of large, in-progress transactions. The <function>stream_start_cb</function>, <function>stream_stop_cb</function>, <function>stream_abort_cb</function>, - <function>stream_commit_cb</function>, <function>stream_change_cb</function>, - and <function>stream_prepare_cb</function> + <function>stream_commit_cb</function>, and <function>stream_change_cb</function> are required, while <function>stream_message_cb</function> and - <function>stream_truncate_cb</function> are optional. + <function>stream_truncate_cb</function> are optional. The + <function>stream_prepare_cb</function> is also required if the output + plugin also support two-phase commits. </para> <para> An output plugin may also define functions to support two-phase commits, which allows actions to be decoded on the <command>PREPARE TRANSACTION</command>. The <function>begin_prepare_cb</function>, <function>prepare_cb</function>, - <function>stream_prepare_cb</function>, <function>commit_prepared_cb</function> and <function>rollback_prepared_cb</function> callbacks are required, while <function>filter_prepare_cb</function> is optional. + The <function>stream_prepare_cb</function> is also required if the output plugin + also supports the streaming of large in-progress transactions. </para> </sect2> @@ -721,7 +723,7 @@ typedef void (*LogicalDecodeChangeCB) (struct LogicalDecodingContext *ctx, <title>Truncate Callback</title> <para> - The <function>truncate_cb</function> callback is called for a + The optional <function>truncate_cb</function> callback is called for a <command>TRUNCATE</command> command. <programlisting> typedef void (*LogicalDecodeTruncateCB) (struct LogicalDecodingContext *ctx, @@ -919,8 +921,8 @@ typedef void (*LogicalDecodeRollbackPreparedCB) (struct LogicalDecodingContext * <sect3 id="logicaldecoding-output-plugin-stream-start"> <title>Stream Start Callback</title> <para> - The <function>stream_start_cb</function> callback is called when opening - a block of streamed changes from an in-progress transaction. + The required <function>stream_start_cb</function> callback is called when + opening a block of streamed changes from an in-progress transaction. <programlisting> typedef void (*LogicalDecodeStreamStartCB) (struct LogicalDecodingContext *ctx, ReorderBufferTXN *txn); @@ -931,8 +933,8 @@ typedef void (*LogicalDecodeStreamStartCB) (struct LogicalDecodingContext *ctx, <sect3 id="logicaldecoding-output-plugin-stream-stop"> <title>Stream Stop Callback</title> <para> - The <function>stream_stop_cb</function> callback is called when closing - a block of streamed changes from an in-progress transaction. + The required <function>stream_stop_cb</function> callback is called when + closing a block of streamed changes from an in-progress transaction. <programlisting> typedef void (*LogicalDecodeStreamStopCB) (struct LogicalDecodingContext *ctx, ReorderBufferTXN *txn); @@ -943,8 +945,8 @@ typedef void (*LogicalDecodeStreamStopCB) (struct LogicalDecodingContext *ctx, <sect3 id="logicaldecoding-output-plugin-stream-abort"> <title>Stream Abort Callback</title> <para> - The <function>stream_abort_cb</function> callback is called to abort - a previously streamed transaction. + The required <function>stream_abort_cb</function> callback is called to + abort a previously streamed transaction. <programlisting> typedef void (*LogicalDecodeStreamAbortCB) (struct LogicalDecodingContext *ctx, ReorderBufferTXN *txn, @@ -957,8 +959,10 @@ typedef void (*LogicalDecodeStreamAbortCB) (struct LogicalDecodingContext *ctx, <title>Stream Prepare Callback</title> <para> The <function>stream_prepare_cb</function> callback is called to prepare - a previously streamed transaction as part of a two-phase commit. -<programlisting> + a previously streamed transaction as part of a two-phase commit. This + callback is required when the output plugin supports both the streaming + of large in-progress transactions and two-phase commits. + <programlisting> typedef void (*LogicalDecodeStreamPrepareCB) (struct LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr prepare_lsn); @@ -969,8 +973,8 @@ typedef void (*LogicalDecodeStreamPrepareCB) (struct LogicalDecodingContext *ctx <sect3 id="logicaldecoding-output-plugin-stream-commit"> <title>Stream Commit Callback</title> <para> - The <function>stream_commit_cb</function> callback is called to commit - a previously streamed transaction. + The required <function>stream_commit_cb</function> callback is called to + commit a previously streamed transaction. <programlisting> typedef void (*LogicalDecodeStreamCommitCB) (struct LogicalDecodingContext *ctx, ReorderBufferTXN *txn, @@ -982,8 +986,8 @@ typedef void (*LogicalDecodeStreamCommitCB) (struct LogicalDecodingContext *ctx, <sect3 id="logicaldecoding-output-plugin-stream-change"> <title>Stream Change Callback</title> <para> - The <function>stream_change_cb</function> callback is called when sending - a change in a block of streamed changes (demarcated by + The required <function>stream_change_cb</function> callback is called + when sending a change in a block of streamed changes (demarcated by <function>stream_start_cb</function> and <function>stream_stop_cb</function> calls). The actual changes are not displayed as the transaction can abort at a later point in time and we don't decode changes for aborted transactions. @@ -999,8 +1003,8 @@ typedef void (*LogicalDecodeStreamChangeCB) (struct LogicalDecodingContext *ctx, <sect3 id="logicaldecoding-output-plugin-stream-message"> <title>Stream Message Callback</title> <para> - The <function>stream_message_cb</function> callback is called when sending - a generic message in a block of streamed changes (demarcated by + The optional <function>stream_message_cb</function> callback is called when + sending a generic message in a block of streamed changes (demarcated by <function>stream_start_cb</function> and <function>stream_stop_cb</function> calls). The message contents for transactional messages are not displayed as the transaction can abort at a later point in time and we don't decode changes for aborted @@ -1020,8 +1024,8 @@ typedef void (*LogicalDecodeStreamMessageCB) (struct LogicalDecodingContext *ctx <sect3 id="logicaldecoding-output-plugin-stream-truncate"> <title>Stream Truncate Callback</title> <para> - The <function>stream_truncate_cb</function> callback is called for a - <command>TRUNCATE</command> command in a block of streamed changes + The optional <function>stream_truncate_cb</function> callback is called + for a <command>TRUNCATE</command> command in a block of streamed changes (demarcated by <function>stream_start_cb</function> and <function>stream_stop_cb</function> calls). <programlisting> |