pgstattuple: Fix failure with pgstathashindex() for partitioned indexes
Michael Paquier <michael@paquier.xyz>
pgstattuple: Fix failure with pgstathashindex() for partitioned indexes As coded, the function relied on index_open() when opening an index relation, allowing partitioned indexes to be processed by pgstathashindex(). This was leading to a "could not open file" error because partitioned indexes have no physical files, or to a crash with an assertion failure (like on HEAD). This issue is fixed by applying the same checks as the other stat functions for indexes, with a lookup at both RELKIND_INDEX and the index AM expected. Author: Alexander Lakhin Discussion: https://postgr.es/m/18246-f4d9ff7cb3af77e6@postgresql.org Backpatch-through: 12
Files
| Path | Change | +/− |
|---|---|---|
| contrib/pgstattuple/expected/pgstattuple.out | modified | +7 −4 |
| contrib/pgstattuple/pgstatindex.c | modified | +2 −3 |
| contrib/pgstattuple/sql/pgstattuple.sql | modified | +2 −0 |
Discussion
- BUG #18246: pgstathashindex() attempts to read invalid file for hash index attached to partitioned table 5 messages · 2023-12-13 → 2023-12-19