mirror of
https://github.com/postgres/postgres.git
synced 2025-07-26 01:22:12 +03:00
Revert "Logical decoding of sequences"
This reverts a sequence of commits, implementing features related to logical decoding and replication of sequences: -0da92dc530
-80901b3291
-b779d7d8fd
-d5ed9da41d
-a180c2b34d
-75b1521dae
-2d2232933b
-002c9dd97a
-05843b1aa4
The implementation has issues, mostly due to combining transactional and non-transactional behavior of sequences. It's not clear how this could be fixed, but it'll require reworking significant part of the patch. Discussion: https://postgr.es/m/95345a19-d508-63d1-860a-f5c2f41e8d40@enterprisedb.com
This commit is contained in:
@ -64,8 +64,7 @@ typedef enum ReorderBufferChangeType
|
||||
REORDER_BUFFER_CHANGE_INTERNAL_SPEC_INSERT,
|
||||
REORDER_BUFFER_CHANGE_INTERNAL_SPEC_CONFIRM,
|
||||
REORDER_BUFFER_CHANGE_INTERNAL_SPEC_ABORT,
|
||||
REORDER_BUFFER_CHANGE_TRUNCATE,
|
||||
REORDER_BUFFER_CHANGE_SEQUENCE
|
||||
REORDER_BUFFER_CHANGE_TRUNCATE
|
||||
} ReorderBufferChangeType;
|
||||
|
||||
/* forward declaration */
|
||||
@ -159,13 +158,6 @@ typedef struct ReorderBufferChange
|
||||
uint32 ninvalidations; /* Number of messages */
|
||||
SharedInvalidationMessage *invalidations; /* invalidation message */
|
||||
} inval;
|
||||
|
||||
/* Context data for Sequence changes */
|
||||
struct
|
||||
{
|
||||
RelFileNode relnode;
|
||||
ReorderBufferTupleBuf *tuple;
|
||||
} sequence;
|
||||
} data;
|
||||
|
||||
/*
|
||||
@ -438,15 +430,6 @@ typedef void (*ReorderBufferMessageCB) (ReorderBuffer *rb,
|
||||
const char *prefix, Size sz,
|
||||
const char *message);
|
||||
|
||||
/* sequence callback signature */
|
||||
typedef void (*ReorderBufferSequenceCB) (ReorderBuffer *rb,
|
||||
ReorderBufferTXN *txn,
|
||||
XLogRecPtr sequence_lsn,
|
||||
Relation rel,
|
||||
bool transactional,
|
||||
int64 last_value, int64 log_cnt,
|
||||
bool is_called);
|
||||
|
||||
/* begin prepare callback signature */
|
||||
typedef void (*ReorderBufferBeginPrepareCB) (ReorderBuffer *rb,
|
||||
ReorderBufferTXN *txn);
|
||||
@ -513,15 +496,6 @@ typedef void (*ReorderBufferStreamMessageCB) (
|
||||
const char *prefix, Size sz,
|
||||
const char *message);
|
||||
|
||||
/* stream sequence callback signature */
|
||||
typedef void (*ReorderBufferStreamSequenceCB) (ReorderBuffer *rb,
|
||||
ReorderBufferTXN *txn,
|
||||
XLogRecPtr sequence_lsn,
|
||||
Relation rel,
|
||||
bool transactional,
|
||||
int64 last_value, int64 log_cnt,
|
||||
bool is_called);
|
||||
|
||||
/* stream truncate callback signature */
|
||||
typedef void (*ReorderBufferStreamTruncateCB) (
|
||||
ReorderBuffer *rb,
|
||||
@ -537,12 +511,6 @@ struct ReorderBuffer
|
||||
*/
|
||||
HTAB *by_txn;
|
||||
|
||||
/*
|
||||
* relfilenode => XID lookup table for sequences created in a transaction
|
||||
* (also includes altered sequences, which assigns new relfilenode)
|
||||
*/
|
||||
HTAB *sequences;
|
||||
|
||||
/*
|
||||
* Transactions that could be a toplevel xact, ordered by LSN of the first
|
||||
* record bearing that xid.
|
||||
@ -573,7 +541,6 @@ struct ReorderBuffer
|
||||
ReorderBufferApplyTruncateCB apply_truncate;
|
||||
ReorderBufferCommitCB commit;
|
||||
ReorderBufferMessageCB message;
|
||||
ReorderBufferSequenceCB sequence;
|
||||
|
||||
/*
|
||||
* Callbacks to be called when streaming a transaction at prepare time.
|
||||
@ -593,7 +560,6 @@ struct ReorderBuffer
|
||||
ReorderBufferStreamCommitCB stream_commit;
|
||||
ReorderBufferStreamChangeCB stream_change;
|
||||
ReorderBufferStreamMessageCB stream_message;
|
||||
ReorderBufferStreamSequenceCB stream_sequence;
|
||||
ReorderBufferStreamTruncateCB stream_truncate;
|
||||
|
||||
/*
|
||||
@ -669,10 +635,6 @@ void ReorderBufferQueueChange(ReorderBuffer *, TransactionId,
|
||||
void ReorderBufferQueueMessage(ReorderBuffer *, TransactionId, Snapshot snapshot, XLogRecPtr lsn,
|
||||
bool transactional, const char *prefix,
|
||||
Size message_size, const char *message);
|
||||
void ReorderBufferQueueSequence(ReorderBuffer *rb, TransactionId xid,
|
||||
Snapshot snapshot, XLogRecPtr lsn, RepOriginId origin_id,
|
||||
RelFileNode rnode, bool transactional, bool created,
|
||||
ReorderBufferTupleBuf *tuplebuf);
|
||||
void ReorderBufferCommit(ReorderBuffer *, TransactionId,
|
||||
XLogRecPtr commit_lsn, XLogRecPtr end_lsn,
|
||||
TimestampTz commit_time, RepOriginId origin_id, XLogRecPtr origin_lsn);
|
||||
@ -720,7 +682,4 @@ void ReorderBufferSetRestartPoint(ReorderBuffer *, XLogRecPtr ptr);
|
||||
|
||||
void StartupReorderBuffer(void);
|
||||
|
||||
bool ReorderBufferSequenceIsTransactional(ReorderBuffer *rb,
|
||||
RelFileNode rnode, bool created);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user