Tom Lane <[email protected]> 于2026年3月1日周日 11:53写道: > > Tender Wang <[email protected]> writes: > > In my previous email, I worried rel->tuples may be zero for an empty > > relation. > > But here it's safe, because an empty relation has no tuples in pg_statistic. > > Not sure about that --- it seems possible that after a mass delete, > VACUUM could update pg_class.reltuples to zero without touching > pg_statistic.
Yeah, Possibly. >And I also don't remember whether the planner clamps > rel->tuples to be at least 1. As far as I know, the planner only clamps rel->rows to be at least 1, not clamps rel->tuples. >But it doesn't matter. If rel->tuples > is zero, the if-test will prevent us from dividing by zero, and then > we'll leave *mcv_freq as zero meaning "unknown", which seems fine. > It's the same thing that would have happened before bd3e3e9e5. In my first email, I only replaced rel->rows in : *mcv_freq = 1.0 / vardata.rel->rows; I forgot to replace the rel->rows in the if-test, so I have a concern. My mistake. -- Thanks, Tender Wang
