postgres.git / summary / log / commit / refs
commit dbb239d518eef791ec6e8f2180e71078e7f89e38
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 93e3ec9e7eb..3e73dacb9a5 100644
--- a/src/backend/access/spgist/spgscan.c
+++ b/src/backend/access/spgist/spgscan.c
@@ -19,6 +19,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/float.h"
@@ -405,6 +406,9 @@ spgrescan(IndexScanDesc scan, ScanKey scankey, int nscankeys,
/* set up starting queue entries */
resetSpGistScanOpaque(so);
+
+ /* count an indexscan for stats */
+ pgstat_count_index_scan(scan->indexRelation);
}
void
[parent: 53597fd6c3cc]