Re: Fix --missing-stats-only false positive for partitioned expression indexes
Corey Huinker <corey.huinker@gmail.com>
From: Corey Huinker <corey.huinker@gmail.com>
To: Nathan Bossart <nathandbossart@gmail.com>
Cc: Baji Shaik <baji.pgdev@gmail.com>, PostgreSQL-development <pgsql-hackers@lists.postgresql.org>
Date: 2026-06-16T18:28:20Z
Lists: pgsql-hackers
On Tue, Jun 16, 2026 at 1:54 PM Nathan Bossart <nathandbossart@gmail.com> wrote: > On Tue, Jun 16, 2026 at 12:51:28PM -0500, Nathan Bossart wrote: > > On Tue, Jun 16, 2026 at 01:25:27PM -0400, Corey Huinker wrote: > >> I know this is a corner-case of a corner-case, but if " AND > s.stainherit > >> OPERATOR(pg_catalog.=) p.inherited", we might then get a false negative > >> from a situation like this: > >> > >> t2 inherits t1 > >> t1 has ineritance stats but somehow not regular stats > >> t2 dis-inherits from t1, t1 is no longer p.inherited = true, but > inherited > >> stats remain > >> > >> vacuumdb goes looking for matches, sees that t1 is p.inherited = false, > >> find the old inherited stat row, not realizing it should have been > looking > >> for a non-inherits row. > > > > Since p.inherited is set based on the relkind, it could only change if > the > > table was converted from partitioned to not partitioned. IIRC that's not > > currently possible. > > (Also, expression index stats are documented as always having stainherit = > false...) Oh good. I like it when things are not problems.
Commits
-
vacuumdb: Fix --missing-stats-only for partitioned indexes.
- d2cea63065b3 19 (unreleased) landed
- 7e085aabd575 18 (unreleased) landed