autovacuum: handle analyze for partitioned tables
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Thu, 8 Apr 2021 05:19:36 +0000 (01:19 -0400)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Thu, 8 Apr 2021 05:19:36 +0000 (01:19 -0400)
commit0827e8af70f4653ba17ed773f123a60eadd9f9c9
treea8b820c5e6773dfad60f20a8a3ad0c46efdbf9d4
parentb3ee4c503872f3d0a5d6a7cbde48815f555af15b
autovacuum: handle analyze for partitioned tables

Previously, autovacuum would completely ignore partitioned tables, which
is not good regarding analyze -- failing to analyze those tables means
poor plans may be chosen.  Make autovacuum aware of those tables by
propagating "changes since analyze" counts from the leaf partitions up
the partitioning hierarchy.

This also introduces necessary reloptions support for partitioned tables
(autovacuum_enabled, autovacuum_analyze_scale_factor,
autovacuum_analyze_threshold).  It's unclear how best to document this
aspect.

Author: Yuzuko Hosoya <yuzukohosoya@gmail.com>
Reviewed-by: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Reviewed-by: Tomas Vondra <tomas.vondra@enterprisedb.com>
Reviewed-by: Álvaro Herrera <alvherre@alvh.no-ip.org>
Discussion: https://postgr.es/m/CAKkQ508_PwVgwJyBY=0Lmkz90j8CmWNPUxgHvCUwGhMrouz6UA@mail.gmail.com
src/backend/access/common/reloptions.c
src/backend/catalog/system_views.sql
src/backend/commands/analyze.c
src/backend/postmaster/autovacuum.c
src/backend/postmaster/pgstat.c
src/include/pgstat.h
src/test/regress/expected/rules.out