!1629 修复逻辑复制core问题,同步master分支的修改

Merge pull request !1629 from pengjiong/relmap4k
This commit is contained in:
opengauss-bot 2022-03-26 02:51:34 +00:00 committed by Gitee
commit 34ad8af43f
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
2 changed files with 13 additions and 1 deletions

View File

@ -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:

View File

@ -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);