From 71b66171d045878cb9267a268a3bf8ce4f11f333 Mon Sep 17 00:00:00 2001 From: Jeff Davis Date: Wed, 3 Apr 2024 16:12:45 -0700 Subject: [PATCH] CREATE INDEX: do not update stats during binary upgrade. During binary upgrade, indexes are created before the data is moved into place, so it will always be zero. This is not currently a major problem, but will be when we try to preserve statistics during upgrade. Author: Corey Huinker Discussion: https://postgr.es/m/CADkLM=daPdFB8V0tgFxK-dLowFsAEzWRWJHyxij7BG3kBjcouA@mail.gmail.com --- src/backend/catalog/index.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index b6a7c60e23..9b7ef71d6f 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -2874,7 +2874,11 @@ index_update_stats(Relation rel, dirty = true; } - if (reltuples >= 0) + /* + * Avoid updating statistics during binary upgrade, because the indexes + * are created before the data is moved into place. + */ + if (reltuples >= 0 && !IsBinaryUpgrade) { BlockNumber relpages = RelationGetNumberOfBlocks(rel); BlockNumber relallvisible;