From: | Gurjeet Singh <gurjeet(at)singh(dot)im> |
---|---|
To: | Nathan Bossart <nathandbossart(at)gmail(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Michael Paquier <michael(at)paquier(dot)xyz>, Richard Veselý <richard(dot)vesely(at)softea(dot)sk>, pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Fwd: BUG #18016: REINDEX TABLE failure |
Date: | 2023-07-27 01:43:18 |
Message-ID: | CABwTF4XHEfL9rc25z+w9o2_Nmo+2_TAVm+LwB1tdtzu1+w12gA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs pgsql-hackers |
(Re-sending with -hackers list removed, to avoid message getting held
for moderation)
---------- Forwarded message ---------
From: Gurjeet Singh <gurjeet(at)singh(dot)im>
Date: Wed, Jul 26, 2023 at 4:01 PM
On Wed, Jul 26, 2023 at 2:53 PM Gurjeet Singh <gurjeet(at)singh(dot)im> wrote:
>
> On Wed, Jul 26, 2023 at 10:50 AM Nathan Bossart
> <nathandbossart(at)gmail(dot)com> wrote:
> >
> > On Mon, Jul 10, 2023 at 09:35:05AM -0700, Gurjeet Singh wrote:
>
> > + * This should be done after the suppression of the use of indexes (above),
> > + * because the recursive call to reindex_relation() below will invoke
> > + * CommandCounterIncrement(), which may prevent enumeration of the indexes
> > + * on the table.
> >
> > I'm not following this. We've already obtained the list of index OIDs
> > before this point. Does this create problems when we try to open and lock
> > the relations? And if so, how?
>
> This comment is calling out the fact that there's a recursive call to
> reindex_relation() inside the 'if' code block, and that that
> reindex_relation() calls CCI. Hence this 'if' code block should _not_
> be placed before the the calls to RelationGetIndexList() and
> SetReindexPending(). Because if we do, then the CCI done by
> reindex_relation() will impact what RelationGetIndexList() sees.
>
> This is to match the expectation set for the
> REINDEX_REL_SUPPRESS_INDEX_USE flag.
Given that the issue is already explained by the flag's comments above
the function, this comment paragraph in the patch may be considered
extraneous. Feel free to remove it, if you think so.
I felt the need for that paragraph, because it doesn't feel obvious to
me as to why we can't simply reindex the toast table as the first
thing in this function; the toast table reindex will trigger CCI, and
that'd be bad if done before RelationGetIndexList().
Best regards,
Gurjeet
http://Gurje.et
From | Date | Subject | |
---|---|---|---|
Next Message | PG Bug reporting form | 2023-07-27 06:29:32 | BUG #18038: Aliases removed from view definitions |
Previous Message | Gurjeet Singh | 2023-07-27 01:42:14 | Fwd: BUG #18016: REINDEX TABLE failure |
From | Date | Subject | |
---|---|---|---|
Next Message | Zhang Mingli | 2023-07-27 01:48:10 | Re: [PATCH] Check more invariants during syscache initialization |
Previous Message | Gurjeet Singh | 2023-07-27 01:42:14 | Fwd: BUG #18016: REINDEX TABLE failure |