Re: AW: AW: BUG #18147: ERROR: invalid perminfoindex 0 in RTE with relid xxxxx
Peter Geoghegan <pg@bowt.ie>
From: Peter Geoghegan <pg@bowt.ie>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Hans Buschmann <buschmann@nidsa.net>,
Amit Langote <amitlangote09@gmail.com>, "David G. Johnston" <david.g.johnston@gmail.com>, "pgsql-bugs@lists.postgresql.org" <pgsql-bugs@lists.postgresql.org>
Date: 2023-10-24T01:23:51Z
Lists: pgsql-bugs
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Prevent duplicate RTEPermissionInfo for plain-inheritance parents
- 01575ad788e3 17.0 landed
- 178ee1d858d8 16.1 landed
-
Fix problems when a plain-inheritance parent table is excluded.
- b1444a09dcb5 16.1 landed
- 8f4a6b9e4f5b 14.10 landed
- 1268e7378123 15.5 landed
- 387f9ed0a083 17.0 landed
-
Doc: indexUnchanged is strictly a hint.
- 74e5ea1e002f 17.0 landed
- cf89d3052d62 16.1 landed
- be2502947f29 15.5 landed
- df73ca35144a 14.10 landed
On Mon, Oct 23, 2023 at 6:06 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > > Well, in practice "indexUnchanged = true" means "do bottom-up deletion > > if it's the only way to avoid a page split". The justification is that > > the incoming tuple is "logically unchanged" (actually it's more > > complicated than that, but that's our starting point). > > But doesn't the need for a non-HOT update show that the tuple *was* > changed --- in index-relevant columns, even? Maybe I'm still not > understanding exactly what condition we're detecting. Not necessarily. For one thing you might need to do a non-HOT update purely because there isn't enough free space to fit the successor version on the original heap page. In general, even a 100% HOT-safe UPDATE statement might not be able to perform HOT updates. As I said earlier, the way that we deal with partial indexes doesn't really make too much sense if you try to shoehorn it into an abstract definition. It makes a lot more sense when seen in the context of a workload with a partial index, and shown by a test case from Marko Tiikkaja: https://www.postgresql.org/message-id/flat/CAL9smLC%3DSxYiN7yZ4HDyk0RnZyXoP2vaHD-Vg1JskOEHyhMXug%40mail.gmail.com#e79eca5922789de828314e296fdcb82d I freely admit that this general approach is non-modular, even ugly. -- Peter Geoghegan