Teach relation_needs_vacanalyze() to always compute scores.
Nathan Bossart <nathan@postgresql.org>
Teach relation_needs_vacanalyze() to always compute scores. Presently, this function only computes component scores when the corresponding threshold is reached. A follow-up commit will add a view that shows tables' autovacuum scores, and we anticipate that users will want to use this view to discover tables that are nearing autovacuum eligibility. This commit teaches this function to always compute autovacuum scores, even when a threshold has not been reached or autovacuum is disabled. The restructuring in this commit revealed an interesting edge case. If the table needs vacuuming for wraparound prevention and autovacuum is disabled for it, we might still choose to analyze it. It's not clear if this is intentional, but it has been this way for nearly 20 years, so it seems best to avoid changing it without further discussion. Author: Sami Imseih <samimseih@gmail.com> Reviewed-by: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com> Discussion: https://postgr.es/m/CAA5RZ0s4xjMrB-VAnLccC7kY8d0-4806-Lsac-czJsdA1LXtAw%40mail.gmail.com
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/postmaster/autovacuum.c | modified | +67 −69 |
Discussion
- Add pg_stat_autovacuum_priority 61 messages · 2026-03-27 → 2026-04-09