From: | Pengfei Wang <pengfei(dot)wang(at)gmail(dot)com> |
---|---|
To: | Heikki Linnakangas <hlinnaka(at)iki(dot)fi> |
Cc: | pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: issue: nbtpage.c,_bt_pagedel may get wrong result |
Date: | 2024-05-27 13:51:22 |
Message-ID: | CALsf3S0uAtkY8kAVkqxjA6-Z3e3vGJpTm7sBO1a__Gw-quc_gg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Yes, you are right. I've checked _bt_leftsib_splitflag, it checks if the
right sibling of 'leftisb' is till leafbuf.
Thank you for your explanation.
On Thu, May 23, 2024 at 7:13 PM Heikki Linnakangas <hlinnaka(at)iki(dot)fi> wrote:
> On 23/05/2024 13:06, Pengfei Wang wrote:
> > # issue
> >
> https://github.com/postgres/postgres/blob/da32f5c4bca7f3447b869de2afbbfa0b74443d45/src/backend/access/nbtree/nbtpage.c#L1943
> <
> https://github.com/postgres/postgres/blob/da32f5c4bca7f3447b869de2afbbfa0b74443d45/src/backend/access/nbtree/nbtpage.c#L1943
> >
> >
> > /*
> > * To avoid deadlocks, we'd better drop the leaf page lock
> > * before going further.
> > */
> > _bt_unlockbuf(rel, leafbuf);
> >
> > /*
> > * Check that the left sibling of leafbuf (if any) is not
> > * marked with INCOMPLETE_SPLIT flag before proceeding
> > */
> > Assert(leafblkno == scanblkno);
> > if (_bt_leftsib_splitflag(rel, leftsib, leafblkno))
> > {
> > ReleaseBuffer(leafbuf);
> > return;
> > }
> >
> > After unlocking leaf, but before call _bt_leftsib_splitflag, leftsib may
> > be already split, and leafbuf's current left sibling is in
> > INCOMPLETE_SPLIT status.
>
> In that case, there should be a downlink for 'leafbuf' in the parent,
> and we're good to proceed, right? See the comments in
> _bt_leftsib_splitflag().
>
> --
> Heikki Linnakangas
> Neon (https://neon.tech)
>
>
--
Regards
Wang Pengfei
From | Date | Subject | |
---|---|---|---|
Next Message | Guillaume Lelarge | 2024-05-27 16:24:17 | Re: BUG #18481: BIGINT Out of Range Error When Selecting Data |
Previous Message | PG Bug reporting form | 2024-05-27 11:23:03 | BUG #18481: BIGINT Out of Range Error When Selecting Data |