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

Reply via email to