mirror of
https://github.com/postgres/postgres.git
synced 2025-12-21 05:21:08 +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-05843b1aa4The 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:
@@ -662,56 +662,6 @@ logicalrep_write_message(StringInfo out, TransactionId xid, XLogRecPtr lsn,
|
||||
pq_sendbytes(out, message, sz);
|
||||
}
|
||||
|
||||
/*
|
||||
* Write SEQUENCE to stream
|
||||
*/
|
||||
void
|
||||
logicalrep_write_sequence(StringInfo out, Relation rel, TransactionId xid,
|
||||
XLogRecPtr lsn, bool transactional,
|
||||
int64 last_value, int64 log_cnt, bool is_called)
|
||||
{
|
||||
uint8 flags = 0;
|
||||
char *relname;
|
||||
|
||||
pq_sendbyte(out, LOGICAL_REP_MSG_SEQUENCE);
|
||||
|
||||
/* transaction ID (if not valid, we're not streaming) */
|
||||
if (TransactionIdIsValid(xid))
|
||||
pq_sendint32(out, xid);
|
||||
|
||||
pq_sendint8(out, flags);
|
||||
pq_sendint64(out, lsn);
|
||||
|
||||
logicalrep_write_namespace(out, RelationGetNamespace(rel));
|
||||
relname = RelationGetRelationName(rel);
|
||||
pq_sendstring(out, relname);
|
||||
|
||||
pq_sendint8(out, transactional);
|
||||
pq_sendint64(out, last_value);
|
||||
pq_sendint64(out, log_cnt);
|
||||
pq_sendint8(out, is_called);
|
||||
}
|
||||
|
||||
/*
|
||||
* Read SEQUENCE from the stream.
|
||||
*/
|
||||
void
|
||||
logicalrep_read_sequence(StringInfo in, LogicalRepSequence *seqdata)
|
||||
{
|
||||
/* XXX skipping flags and lsn */
|
||||
pq_getmsgint(in, 1);
|
||||
pq_getmsgint64(in);
|
||||
|
||||
/* Read relation name from stream */
|
||||
seqdata->nspname = pstrdup(logicalrep_read_namespace(in));
|
||||
seqdata->seqname = pstrdup(pq_getmsgstring(in));
|
||||
|
||||
seqdata->transactional = pq_getmsgint(in, 1);
|
||||
seqdata->last_value = pq_getmsgint64(in);
|
||||
seqdata->log_cnt = pq_getmsgint64(in);
|
||||
seqdata->is_called = pq_getmsgint(in, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Write relation description to the output stream.
|
||||
*/
|
||||
@@ -1286,8 +1236,6 @@ logicalrep_message_type(LogicalRepMsgType action)
|
||||
return "STREAM ABORT";
|
||||
case LOGICAL_REP_MSG_STREAM_PREPARE:
|
||||
return "STREAM PREPARE";
|
||||
case LOGICAL_REP_MSG_SEQUENCE:
|
||||
return "SEQUENCE";
|
||||
}
|
||||
|
||||
elog(ERROR, "invalid logical replication message type \"%c\"", action);
|
||||
|
||||
Reference in New Issue
Block a user