From: Tom Lane Date: Mon, 5 Sep 2016 00:49:44 +0000 (-0400) Subject: Remove duplicate code from ReorderBufferCleanupTXN(). X-Git-Tag: REL_10_BETA1~1777 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b6182081be4a795d70b966be2542ad32d1ffbc20;p=postgresql Remove duplicate code from ReorderBufferCleanupTXN(). Andres is apparently the only hacker who thinks this code is better as-is. I (tgl) follow some of his logic, but the fact that it's setting off warnings from static code analyzers seems like a sufficient reason to put the complexity into a comment rather than the code. Aleksander Alekseev Discussion: <20160404190345.54d84ee8@fujitsu> --- diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c index 43b584cf7e..9b430b9acb 100644 --- a/src/backend/replication/logical/reorderbuffer.c +++ b/src/backend/replication/logical/reorderbuffer.c @@ -1158,17 +1158,15 @@ ReorderBufferCleanupTXN(ReorderBuffer *rb, ReorderBufferTXN *txn) txn->base_snapshot_lsn = InvalidXLogRecPtr; } - /* delete from list of known subxacts */ - if (txn->is_known_as_subxact) - { - /* NB: nsubxacts count of parent will be too high now */ - dlist_delete(&txn->node); - } - /* delete from LSN ordered list of toplevel TXNs */ - else - { - dlist_delete(&txn->node); - } + /* + * Remove TXN from its containing list. + * + * Note: if txn->is_known_as_subxact, we are deleting the TXN from its + * parent's list of known subxacts; this leaves the parent's nsubxacts + * count too high, but we don't care. Otherwise, we are deleting the TXN + * from the LSN-ordered list of toplevel TXNs. + */ + dlist_delete(&txn->node); /* now remove reference from buffer */ hash_search(rb->by_txn,