diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2016-06-06 17:44:17 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2016-06-06 17:44:17 -0400 |
commit | 5acc58c5e5336d16a1e238e8f1d599e8bfa4183b (patch) | |
tree | 4bd2a422d57d670411779dd9acb51683150b991a /src/backend/commands | |
parent | a7aa61ffe7ed12cf8d5cbdfc887900549f9ed354 (diff) |
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')
-rw-r--r-- | src/backend/commands/analyze.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/backend/commands/analyze.c b/src/backend/commands/analyze.c index ddb68abf6b4..04b08b6377d 100644 --- a/src/backend/commands/analyze.c +++ b/src/backend/commands/analyze.c @@ -605,10 +605,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)) |