Thread: pgsql: Fix pg_statio_all_tables view for multiple TOAST indexes.

pgsql: Fix pg_statio_all_tables view for multiple TOAST indexes.

From
Tom Lane
Date:
Fix pg_statio_all_tables view for multiple TOAST indexes.

A TOAST table can normally have only one index, but there are corner
cases where it has more; for example, transiently during REINDEX
CONCURRENTLY.  In such a case, the pg_statio_all_tables view produced
multiple rows for the owning table, one per TOAST index.  Refactor the
view to avoid that, instead summing the stats across all the indexes,
as we do for regular table indexes.

While this has been wrong for a long time, back-patching seems unwise
due to the difficulty of putting a system view change into back
branches.

Andrei Zubkov, tweaked a bit by me

Discussion: https://postgr.es/m/acefef4189706971fc475f912c1afdab1c48d627.camel@moonset.ru

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/ce95c543763b6fade641a67fa0c70649d8527243

Modified Files
--------------
src/backend/catalog/system_views.sql | 31 ++++++++++++++++++++-----------
src/include/catalog/catversion.h     |  2 +-
src/test/regress/expected/rules.out  | 21 +++++++++++++--------
3 files changed, 34 insertions(+), 20 deletions(-)