From 16d47947002357cc37fdc3debcdf8c376e370188 Mon Sep 17 00:00:00 2001 From: Dilip Kumar Date: Mon, 26 Apr 2021 18:19:27 +0530 Subject: [PATCH v1] Don't select the transaction without base snapshot for streaming While selecting the largest top transaction, currently we don't check whether the transaction has the base snapshot or not, but if the transaction doesn't have the base snapshot then we can not stream that so skip such transactions. --- src/backend/replication/logical/reorderbuffer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c index 5cb484f..981619f 100644 --- a/src/backend/replication/logical/reorderbuffer.c +++ b/src/backend/replication/logical/reorderbuffer.c @@ -3388,7 +3388,8 @@ ReorderBufferLargestTopTXN(ReorderBuffer *rb) txn = dlist_container(ReorderBufferTXN, node, iter.cur); if ((largest != NULL || txn->total_size > largest_size) && - (txn->total_size > 0) && !(rbtxn_has_incomplete_tuple(txn))) + (txn->base_snapshot != NULL) && (txn->total_size > 0) && + !(rbtxn_has_incomplete_tuple(txn))) { largest = txn; largest_size = txn->total_size; -- 1.8.3.1