Re: PATCH: Add REINDEX tag to event triggers
Alexander Law <exclusion@gmail.com>
From: Alexander Lakhin <exclusion@gmail.com>
To: Michael Paquier <michael@paquier.xyz>,
jian he <jian.universality@gmail.com>
Cc: Ajin Cherian <itsajin@gmail.com>, Jim Jones <jim.jones@uni-muenster.de>,
Garrett Thornburg <film42@gmail.com>, pgsql-hackers@lists.postgresql.org
Date: 2023-12-06T07:00:01Z
Lists: pgsql-hackers
Hi Michael, 05.12.2023 02:45, Michael Paquier wrote: > Popping a snapshot at this stage when there are no indexes has been a > decision taken by the original commit in 5dc92b844e68 because we had > no need for it yet, but we may do now depending on the function > triggered. I have been looking at the whole stack and something like > the attached to make a pop conditional seems to be sufficient to > satisfy all the cases I've been able to come up with, including the > one reported here. > > Alexander, do you see any hole in that? Perhaps the snapshot push > should be more aggressive at the end of ReindexRelationConcurrently() > as well (in the last transaction when rebuilds happen)? Thank you for the fix proposed! I agree with it. I had worried a bit about ReindexRelationConcurrently() becoming twofold for callers (it can leave the snapshot or pop it), but I couldn't find a way to hide this twofoldness inside without adding more complexity. On the other hand, ReindexRelationConcurrently() now satisfies EnsurePortalSnapshotExists() in all cases. Best regards, Alexander
Commits
-
Fix assertion failure with REINDEX and event triggers
- c426f7c2b36a 17.0 landed
-
Add support for REINDEX in event triggers
- f21848de2013 17.0 landed
-
Doc: Improve documentation for creating custom scan paths.
- 7ef5f5fb3240 17.0 cited
-
Add const decorations
- 11af63fb48d2 17.0 cited