diff options
| author | Amit Kapila | 2021-03-30 05:04:43 +0000 |
|---|---|---|
| committer | Amit Kapila | 2021-03-30 05:04:43 +0000 |
| commit | f64ea6dc5c8ccaec9a3d3d39695ca261febb6883 (patch) | |
| tree | 6fd006f6239df0b955d390f27189ffbd68b8df05 /src/include | |
| parent | bc2797ebb14bae663da1ee7845774dd98716c0d0 (diff) | |
Add a xid argument to the filter_prepare callback for output plugins.
Along with gid, this provides a different way to identify the transaction.
The users that use xid in some way to prepare the transactions can use it
to filter prepare transactions. The later commands COMMIT PREPARED or
ROLLBACK PREPARED carries both identifiers, providing an output plugin the
choice of what to use.
Author: Markus Wanner
Reviewed-by: Vignesh C, Amit Kapila
Discussion: https://postgr.es/m/ee280000-7355-c4dc-e47b-2436e7be959c@enterprisedb.com
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/replication/logical.h | 3 | ||||
| -rw-r--r-- | src/include/replication/output_plugin.h | 1 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/include/replication/logical.h b/src/include/replication/logical.h index c2534033723..af551d6f4ee 100644 --- a/src/include/replication/logical.h +++ b/src/include/replication/logical.h @@ -125,7 +125,8 @@ extern void LogicalIncreaseRestartDecodingForSlot(XLogRecPtr current_lsn, XLogRecPtr restart_lsn); extern void LogicalConfirmReceivedLocation(XLogRecPtr lsn); -extern bool filter_prepare_cb_wrapper(LogicalDecodingContext *ctx, const char *gid); +extern bool filter_prepare_cb_wrapper(LogicalDecodingContext *ctx, + TransactionId xid, const char *gid); extern bool filter_by_origin_cb_wrapper(LogicalDecodingContext *ctx, RepOriginId origin_id); extern void ResetLogicalStreamingState(void); extern void UpdateDecodingStats(LogicalDecodingContext *ctx); diff --git a/src/include/replication/output_plugin.h b/src/include/replication/output_plugin.h index 2c2c964c55f..810495ed0e4 100644 --- a/src/include/replication/output_plugin.h +++ b/src/include/replication/output_plugin.h @@ -106,6 +106,7 @@ typedef void (*LogicalDecodeShutdownCB) (struct LogicalDecodingContext *ctx); * and sent as usual transaction. */ typedef bool (*LogicalDecodeFilterPrepareCB) (struct LogicalDecodingContext *ctx, + TransactionId xid, const char *gid); /* |
