On Tue, 25 Oct 2022 at 22:46, Heikki Linnakangas <hlinn...@iki.fi> wrote: > On 25/10/2022 12:02, Japin Li wrote: >> However, the code marks the main transaction and subtransactions directly >> to the committed. > > Hmm, yeah, step 2 in this example doesn't match reality. We actually > set t and t1 directly as committed. The explanation above that comment > is correct, but the example is not. It used to work the way the > example says, but that was changed in commit > 06da3c570f21394003fc392d80f54862f7dec19f. Ironically, that commit also > added the outdated comment. > > The correct example would be: > > TransactionId t commits and has subxids t1, t2, t3, t4 t is on page > p1, t1 is also on p1, t2 and t3 are on p2, t4 is on p3 > 1. update pages2-3: > page2: set t2,t3 as sub-committed > page3: set t4 as sub-committed > 2. update page1: > page1: set t,t1 as committed, > 3. update pages2-3: > page2: set t2,t3 as committed > page3: set t4 as committed >
Thanks for your explanation. Attach a patch to remove the outdated comment. -- Regrads, Japin Li. ChengDu WenWu Information Technology Co.,Ltd.
>From c079d8f33a0eb65b8ee9fc1f53c6c358e7ea1516 Mon Sep 17 00:00:00 2001 From: Japin Li <japi...@hotmail.com> Date: Tue, 25 Oct 2022 23:00:22 +0800 Subject: [PATCH v1 1/1] Remove outdated comment for TransactionIdSetTreeStatus Commit 06da3c570f eliminates the marking of subtransactions as SUBCOMMITTED in pg_clog during their commit, however, it introduces an outdated comment. --- src/backend/access/transam/clog.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/backend/access/transam/clog.c b/src/backend/access/transam/clog.c index a7dfcfb4da..77d9894dab 100644 --- a/src/backend/access/transam/clog.c +++ b/src/backend/access/transam/clog.c @@ -146,9 +146,7 @@ static void TransactionIdSetPageStatusInternal(TransactionId xid, int nsubxids, * page2: set t2,t3 as sub-committed * page3: set t4 as sub-committed * 2. update page1: - * set t1 as sub-committed, - * then set t as committed, - then set t1 as committed + * page1: set t,t1 as committed * 3. update pages2-3: * page2: set t2,t3 as committed * page3: set t4 as committed -- 2.25.1