mirror of
https://github.com/postgres/postgres.git
synced 2025-07-08 11:42:09 +03:00
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>
This commit is contained in:
@ -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))
|
||||
|
Reference in New Issue
Block a user