Hello There is weired peace of code in reorderbuffer.c:
``` /* 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); } ``` As you see `if` an `else` branches are exactly the same. I wonder whether this is a bug or code just requires a bit of cleaning. In the latter case here is a patch. According to `git log` both branches were introduced in one commit b89e1510. I added author and committer of this code to CC since they have much better understanding of it than I do. -- Best regards, Aleksander Alekseev http://eax.me/
diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c index 9d78c8c..454b309 100644 --- a/src/backend/replication/logical/reorderbuffer.c +++ b/src/backend/replication/logical/reorderbuffer.c @@ -1097,16 +1097,7 @@ ReorderBufferCleanupTXN(ReorderBuffer *rb, ReorderBufferTXN *txn) } /* 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); - } + dlist_delete(&txn->node); /* now remove reference from buffer */ hash_search(rb->by_txn,
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers