From e3481edfd1b6b0a64fef8f43cfa3b48e94c01682 Mon Sep 17 00:00:00 2001 From: Nathan Bossart Date: Mon, 6 Apr 2026 11:28:46 -0500 Subject: [PATCH] Remove autoanalyze corner case. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The restructuring in commit 53b8ca6881 revealed an interesting corner case: if a table needs vacuuming for wraparound prevention and autovacuum is disabled for it, we might still choose to analyze it. Research seems to indicate this was an accidental addition by commit 48188e1621, and further discussion indicates there is consensus that it is unnecessary and can be removed. Reviewed-by: Robert Treat Reviewed-by: Álvaro Herrera Reviewed-by: Sami Imseih Reviewed-by: Shinya Kato Discussion: https://postgr.es/m/adB9nSsm_S0D9708%40nathan --- src/backend/postmaster/autovacuum.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c index 250c43b85e5..c4d6b8811bf 100644 --- a/src/backend/postmaster/autovacuum.c +++ b/src/backend/postmaster/autovacuum.c @@ -3338,15 +3338,6 @@ relation_needs_vacanalyze(Oid relid, scores->max = Max(scores->max, scores->anl); if (av_enabled && anltuples > anlthresh) *doanalyze = true; - - /* - * For historical reasons, we analyze even when autovacuum is disabled - * for the table if at risk of wraparound. It's not clear if this is - * intentional, but it has been this way for a very long time, so it - * seems best to avoid changing it without further discussion. - */ - if (force_vacuum && AutoVacuumingActive() && anltuples > anlthresh) - *doanalyze = true; } if (vac_ins_base_thresh >= 0)