From: | Heikki Linnakangas <hlinnaka(at)iki(dot)fi> |
---|---|
To: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Fix GIST readme on LSN vs NSN |
Date: | 2023-09-18 11:09:43 |
Message-ID: | 4cb46e18-e688-524a-0f73-b1f03ed5d6ee@iki.fi |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
The GiST README says:
> If the F_FOLLOW_RIGHT flag is not set, a scan compares the NSN on the
> child and the LSN it saw in the parent. If NSN < LSN, the scan looked
> at the parent page before the downlink was inserted, so it should
> follow the rightlink. Otherwise the scan saw the downlink in the
> parent page, and will/did follow that as usual.
While the code does this (in gistget.c):
> if (!XLogRecPtrIsInvalid(pageItem->data.parentlsn) &&
> (GistFollowRight(page) ||
> pageItem->data.parentlsn < GistPageGetNSN(page)) &&
> opaque->rightlink != InvalidBlockNumber /* sanity check */ )
> {
> /* There was a page split, follow right link to add pages */
Note the comparison on LSN and NSN. The code seems correct, but the
README got it backwards.
The narrow fix would be to change the "NSN < LSN" to "LSN < NSN" in the
README. But I propose the attached patch to reword the sentence a little
more.
--
Heikki Linnakangas
Neon (https://neon.tech)
Attachment | Content-Type | Size |
---|---|---|
fix-gist-readme-nsn-lsn.patch | text/x-patch | 1.2 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Erik Rijkers | 2023-09-18 11:14:52 | Re: remaining sql/json patches |
Previous Message | Andy Fan | 2023-09-18 10:55:46 | Re: make add_paths_to_append_rel aware of startup cost |