On Tue, Jun 16, 2026 at 1:54 PM Nathan Bossart <[email protected]>
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.

Reply via email to