Hi, On 2024-03-06 14:17:23 +0200, Alexander Korotkov wrote: > 0001 Turn tail recursion into iteration in CommitTransactionCommand() > I did minor revision of comments and code blocks order to improve the > readability.
After sending https://www.postgresql.org/message-id/20240414223305.m3i5eju6zylabvln%40awork3.anarazel.de I looked some more at important areas where changes didn't have code coverage. One thing I noticed was that the "non-internal" part of AbortCurrentTransaction() is uncovered: https://anarazel.de/postgres/cov/16-vs-HEAD-2024-04-14/src/backend/access/transam/xact.c.gcov.html#L3403 Which made me try to understand fefd9a3fed2. I'm a bit confused about why some parts are handled in CommitCurrentTransaction()/AbortCurrentTransaction() and others are in the *Internal functions. I understand that fefd9a3fed2 needed to remove the recursion in CommitTransactionCommand()/AbortCurrentTransaction(). But I don't understand why that means having some code in in the non-internal and some in the internal functions? Wouldn't it be easier to just have all the state handling code in the Internal() function and just break after the CleanupSubTransaction() calls? That's of course largely unrelated to the coverage aspects. I just got curious. Greetings, Andres Freund