aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2025-03-10 17:49:27 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2025-03-10 17:49:27 -0400
commit29d6808edebb3eced76e2acbbcf453dd693ac6bf (patch)
tree165ce3671dfd55a37b95973029686da470d9d182 /src
parentf7c566a1a276c5f228891c7599df1c0b8878eb35 (diff)
downloadpostgresql-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.c12
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