Fix pg_statio_all_tables view for multiple TOAST indexes.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: ce95c543763b6fade641a67fa0c70649d8527243
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2022-03-24T20:33:13Z
Releases: 15.0
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

Files

Discussion