Re: Stack overflow issue

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: Stack overflow issue
Дата
Msg-id 20240415224834.w6piwtefskoh32mv@awork3.anarazel.de
обсуждение исходный текст
Ответ на Re: Stack overflow issue  (Alexander Korotkov <aekorotkov@gmail.com>)
Ответы Re: Stack overflow issue  (Alexander Korotkov <aekorotkov@gmail.com>)
Список pgsql-hackers
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



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Michael Paquier
Дата:
Сообщение: Re: Removing GlobalVisTestNonRemovableHorizon
Следующее
От: Andres Freund
Дата:
Сообщение: Re: Differential code coverage between 16 and HEAD