postgres.git / summary / log / commit / refs

commit    6a787c83c48a4d87d5aaa57776015ab77934d0ce
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Fri Aug 27 23:42:42 2021 +0000
First released in: 15.0, 9.6.24, 10.19, 11.14, 12.9, 13.5, 14.0

    Count SP-GiST index scans in pg_stat statistics.
    
    Somehow, spgist overlooked the need to call pgstat_count_index_scan().
    Hence, pg_stat_all_indexes.idx_scan and equivalent columns never
    became nonzero for an SP-GiST index, although the related per-tuple
    counters worked fine.
    
    This fix works a bit differently from other index AMs, in that the
    counter increment occurs in spgrescan not spggettuple/spggetbitmap.
    It looks like this won't make the user-visible semantics noticeably
    different, so I won't go to the trouble of introducing an is-this-
    the-first-call flag just to make the counter bumps happen in the
    same places.
    
    Per bug #17163 from Christian Quest.  Back-patch to all supported
    versions.
    
    Discussion: https://postgr.es/m/17163-b8c5cc88322a5e92@postgresql.org


src/backend/access/spgist/spgscan.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/backend/access/spgist/spgscan.c b/src/backend/access/spgist/spgscan.c index 9ae2c8efb61..308bdbddce4 100644 --- a/src/backend/access/spgist/spgscan.c +++ b/src/backend/access/spgist/spgscan.c @@ -18,6 +18,7 @@ #include "access/relscan.h" #include "access/spgist_private.h" #include "miscadmin.h" +#include "pgstat.h" #include "storage/bufmgr.h" #include "utils/datum.h" #include "utils/memutils.h" @@ -231,6 +232,9 @@ spgrescan(IndexScanDesc scan, ScanKey scankey, int nscankeys, /* set up starting stack entries */ resetSpGistScanOpaque(so); + + /* count an indexscan for stats */ + pgstat_count_index_scan(scan->indexRelation); } void [parent: 7c8f2c77108d]