diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2025-03-10 17:49:27 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2025-03-10 17:49:27 -0400 |
commit | 29d6808edebb3eced76e2acbbcf453dd693ac6bf (patch) | |
tree | 165ce3671dfd55a37b95973029686da470d9d182 /src | |
parent | f7c566a1a276c5f228891c7599df1c0b8878eb35 (diff) | |
download | postgresql-29d6808edebb3eced76e2acbbcf453dd693ac6bf.tar.gz postgresql-29d6808edebb3eced76e2acbbcf453dd693ac6bf.zip |
CREATE INDEX: do update index stats if autovacuum=off.
This fixes a thinko from commit d611f8b15. The intent was to prevent
updating the stats of the pre-existing heap if autovacuum is off,
but it also disabled updating the stats of the just-created index.
There is AFAICS no good reason to do the latter, since there could not
be any pre-existing stats to refrain from overwriting, and the zeroed
stats that are there to begin with are very unlikely to be useful.
Moreover, the change broke our cross-version upgrade tests again.
Author: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/1116282.1741374848@sss.pgh.pa.us
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/catalog/index.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 022b9b99b13..739a92bdcc1 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -2847,20 +2847,20 @@ index_update_stats(Relation rel, * statistics, as the table statistics may be restored before the index is * created, and we want to preserve the restored table statistics. */ - if (AutoVacuumingActive()) + if (rel->rd_rel->relkind == RELKIND_RELATION || + rel->rd_rel->relkind == RELKIND_TOASTVALUE || + rel->rd_rel->relkind == RELKIND_MATVIEW) { - if (rel->rd_rel->relkind == RELKIND_RELATION || - rel->rd_rel->relkind == RELKIND_TOASTVALUE || - rel->rd_rel->relkind == RELKIND_MATVIEW) + if (AutoVacuumingActive()) { StdRdOptions *options = (StdRdOptions *) rel->rd_options; if (options != NULL && !options->autovacuum.enabled) update_stats = false; } + else + update_stats = false; } - else - update_stats = false; /* * Finish I/O and visibility map buffer locks before |