forked from huawei/openGauss-server
!1629 修复逻辑复制core问题,同步master分支的修改
Merge pull request !1629 from pengjiong/relmap4k
This commit is contained in:
commit
34ad8af43f
|
|
@ -440,6 +440,11 @@ static void DecodeHeap3Op(LogicalDecodingContext *ctx, XLogRecordBuffer *buf)
|
|||
|
||||
switch (info) {
|
||||
case XLOG_HEAP3_NEW_CID: {
|
||||
xl_heap_new_cid *xlrec = NULL;
|
||||
int bucket_id = 0;
|
||||
xlrec = (xl_heap_new_cid *)buf->record_data;
|
||||
bucket_id = XLogRecGetBucketId(buf->record);
|
||||
SnapBuildProcessNewCid(builder, xid, buf->origptr, xlrec, bucket_id);
|
||||
break;
|
||||
}
|
||||
case XLOG_HEAP3_REWRITE:
|
||||
|
|
|
|||
|
|
@ -1308,6 +1308,7 @@ void ReorderBufferCommit(ReorderBuffer *rb, TransactionId xid, XLogRecPtr commit
|
|||
Relation relation = NULL;
|
||||
Oid reloid;
|
||||
Oid partitionReltoastrelid = InvalidOid;
|
||||
bool stopDecoding = false;
|
||||
|
||||
switch (change->action) {
|
||||
case REORDER_BUFFER_CHANGE_INSERT:
|
||||
|
|
@ -1408,7 +1409,10 @@ void ReorderBufferCommit(ReorderBuffer *rb, TransactionId xid, XLogRecPtr commit
|
|||
|
||||
case REORDER_BUFFER_CHANGE_INTERNAL_COMMAND_ID:
|
||||
Assert(change->data.command_id != InvalidCommandId);
|
||||
|
||||
if (change->data.command_id != FirstCommandId) {
|
||||
stopDecoding = true;
|
||||
break;
|
||||
}
|
||||
if (command_id < change->data.command_id) {
|
||||
command_id = change->data.command_id;
|
||||
|
||||
|
|
@ -1436,6 +1440,9 @@ void ReorderBufferCommit(ReorderBuffer *rb, TransactionId xid, XLogRecPtr commit
|
|||
ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("tuplecid value in changequeue")));
|
||||
break;
|
||||
}
|
||||
if (stopDecoding) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
ReorderBufferIterTXNFinish(rb, iterstate);
|
||||
|
|
|
|||
Loading…
Reference in New Issue