Re: Fix --missing-stats-only false positive for partitioned expression indexes

From: Nathan Bossart <nathandbossart(at)gmail(dot)com>
To: Corey Huinker <corey(dot)huinker(at)gmail(dot)com>
Cc: Baji Shaik <baji(dot)pgdev(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Fix --missing-stats-only false positive for partitioned expression indexes
Date: 2026-06-16 17:51:28
Message-ID: ajGNICYVn0fXdsUD@nathan
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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.

--
nathan

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Nathan Bossart 2026-06-16 17:54:49 Re: Fix --missing-stats-only false positive for partitioned expression indexes
Previous Message Alexander Korotkov 2026-06-16 17:30:26 Re: Vacuum statistics