diff options
author | Michael Paquier <michael@paquier.xyz> | 2023-08-21 13:32:14 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2023-08-21 13:32:14 +0900 |
commit | 6fde2d9a005a5bc04aa059d3faeb865c8dd322ce (patch) | |
tree | 1a45bd7f7ba73e45b582c42370b384f1441fb640 /src/backend/utils/adt/pgstatfuncs.c | |
parent | 1951d21b29939ddcb0e30a018cf413b949e40d97 (diff) | |
download | postgresql-6fde2d9a005a5bc04aa059d3faeb865c8dd322ce.tar.gz postgresql-6fde2d9a005a5bc04aa059d3faeb865c8dd322ce.zip |
Fix pg_stat_reset_single_table_counters() for shared relations
This commit fixes the function of $subject for shared relations. This
feature has been added by e042678. Unfortunately, this new behavior got
removed by 5891c7a when moving statistics to shared memory.
Reported-by: Mitsuru Hinata
Author: Masahiro Ikeda
Reviewed-by: Kyotaro Horiguchi, Masahiko Sawada
Discussion: https://postgr.es/m/7cc69f863d9b1bc677544e3accd0e4b4@oss.nttdata.com
Backpatch-through: 15
Diffstat (limited to 'src/backend/utils/adt/pgstatfuncs.c')
-rw-r--r-- | src/backend/utils/adt/pgstatfuncs.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c index 2a4c8ef87ff..2b9742ad21b 100644 --- a/src/backend/utils/adt/pgstatfuncs.c +++ b/src/backend/utils/adt/pgstatfuncs.c @@ -17,6 +17,7 @@ #include "access/htup_details.h" #include "access/xlog.h" #include "access/xlogprefetcher.h" +#include "catalog/catalog.h" #include "catalog/pg_authid.h" #include "catalog/pg_type.h" #include "common/ip.h" @@ -1776,13 +1777,17 @@ pg_stat_reset_shared(PG_FUNCTION_ARGS) PG_RETURN_VOID(); } -/* Reset a single counter in the current database */ +/* + * Reset a statistics for a single object, which may be of current + * database or shared across all databases in the cluster. + */ Datum pg_stat_reset_single_table_counters(PG_FUNCTION_ARGS) { Oid taboid = PG_GETARG_OID(0); + Oid dboid = (IsSharedRelation(taboid) ? InvalidOid : MyDatabaseId); - pgstat_reset(PGSTAT_KIND_RELATION, MyDatabaseId, taboid); + pgstat_reset(PGSTAT_KIND_RELATION, dboid, taboid); PG_RETURN_VOID(); } |