aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/analyze.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2016-06-06 17:44:17 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2016-06-06 17:44:17 -0400
commitf64340e7436d0f848a99620196cede947bd61418 (patch)
tree27a444bdae7e3d76c9dc52df3026b9e5024fd959 /src/backend/commands/analyze.c
parentc6dbf1fe79287291bc260cbc06b0de419d2a198c (diff)
downloadpostgresql-f64340e7436d0f848a99620196cede947bd61418.tar.gz
postgresql-f64340e7436d0f848a99620196cede947bd61418.zip
Don't reset changes_since_analyze after a selective-columns ANALYZE.
If we ANALYZE only selected columns of a table, we should not postpone auto-analyze because of that; other columns may well still need stats updates. As committed, the counter is left alone if a column list is given, whether or not it includes all analyzable columns of the table. Per complaint from Tomasz Ostrowski. It's been like this a long time, so back-patch to all supported branches. Report: <ef99c1bd-ff60-5f32-2733-c7b504eb960c@ato.waw.pl>
Diffstat (limited to 'src/backend/commands/analyze.c')
-rw-r--r--src/backend/commands/analyze.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/backend/commands/analyze.c b/src/backend/commands/analyze.c
index cf8c8164b7e..97059e59c82 100644
--- a/src/backend/commands/analyze.c
+++ b/src/backend/commands/analyze.c
@@ -611,10 +611,13 @@ do_analyze_rel(Relation onerel, int options, VacuumParams *params,
/*
* Report ANALYZE to the stats collector, too. However, if doing
* inherited stats we shouldn't report, because the stats collector only
- * tracks per-table stats.
+ * tracks per-table stats. Reset the changes_since_analyze counter only
+ * if we analyzed all columns; otherwise, there is still work for
+ * auto-analyze to do.
*/
if (!inh)
- pgstat_report_analyze(onerel, totalrows, totaldeadrows);
+ pgstat_report_analyze(onerel, totalrows, totaldeadrows,
+ (va_cols == NIL));
/* If this isn't part of VACUUM ANALYZE, let index AMs do cleanup */
if (!(options & VACOPT_VACUUM))