From 850f4b4c8cab03a084ccc89245df061639ad1769 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Mon, 27 Mar 2023 09:57:41 +0900 Subject: Generate pg_stat_get_xact*() functions for relations using macros This change replaces seven functions definitions by macros. This is the same idea as 8018ffb or 83a1a1b, taking advantage of the variable rename done in 8089517 for relation entries. Author: Bertrand Drouvot Discussion: https://postgr.es/m/631e3084-c5d9-8463-7540-fcff4674caa5@gmail.com --- src/backend/utils/adt/pgstatfuncs.c | 126 +++++++++--------------------------- 1 file changed, 29 insertions(+), 97 deletions(-) (limited to 'src/backend/utils/adt/pgstatfuncs.c') diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c index c7ba86b3dcc..e1dd1e0ad35 100644 --- a/src/backend/utils/adt/pgstatfuncs.c +++ b/src/backend/utils/adt/pgstatfuncs.c @@ -1498,50 +1498,42 @@ pg_stat_get_slru(PG_FUNCTION_ARGS) return (Datum) 0; } -Datum -pg_stat_get_xact_numscans(PG_FUNCTION_ARGS) -{ - Oid relid = PG_GETARG_OID(0); - int64 result; - PgStat_TableStatus *tabentry; - - if ((tabentry = find_tabstat_entry(relid)) == NULL) - result = 0; - else - result = (int64) (tabentry->counts.numscans); - - PG_RETURN_INT64(result); +#define PG_STAT_GET_XACT_RELENTRY_INT64(stat) \ +Datum \ +CppConcat(pg_stat_get_xact_,stat)(PG_FUNCTION_ARGS) \ +{ \ + Oid relid = PG_GETARG_OID(0); \ + int64 result; \ + PgStat_TableStatus *tabentry; \ + \ + if ((tabentry = find_tabstat_entry(relid)) == NULL) \ + result = 0; \ + else \ + result = (int64) (tabentry->counts.stat); \ + \ + PG_RETURN_INT64(result); \ } -Datum -pg_stat_get_xact_tuples_returned(PG_FUNCTION_ARGS) -{ - Oid relid = PG_GETARG_OID(0); - int64 result; - PgStat_TableStatus *tabentry; +/* pg_stat_get_xact_numscans */ +PG_STAT_GET_XACT_RELENTRY_INT64(numscans) - if ((tabentry = find_tabstat_entry(relid)) == NULL) - result = 0; - else - result = (int64) (tabentry->counts.tuples_returned); +/* pg_stat_get_xact_tuples_returned */ +PG_STAT_GET_XACT_RELENTRY_INT64(tuples_returned) - PG_RETURN_INT64(result); -} +/* pg_stat_get_xact_tuples_fetched */ +PG_STAT_GET_XACT_RELENTRY_INT64(tuples_fetched) -Datum -pg_stat_get_xact_tuples_fetched(PG_FUNCTION_ARGS) -{ - Oid relid = PG_GETARG_OID(0); - int64 result; - PgStat_TableStatus *tabentry; +/* pg_stat_get_xact_tuples_hot_updated */ +PG_STAT_GET_XACT_RELENTRY_INT64(tuples_hot_updated) - if ((tabentry = find_tabstat_entry(relid)) == NULL) - result = 0; - else - result = (int64) (tabentry->counts.tuples_fetched); +/* pg_stat_get_xact_tuples_newpage_updated */ +PG_STAT_GET_XACT_RELENTRY_INT64(tuples_newpage_updated) - PG_RETURN_INT64(result); -} +/* pg_stat_get_xact_blocks_fetched */ +PG_STAT_GET_XACT_RELENTRY_INT64(blocks_fetched) + +/* pg_stat_get_xact_blocks_hit */ +PG_STAT_GET_XACT_RELENTRY_INT64(blocks_hit) Datum pg_stat_get_xact_tuples_inserted(PG_FUNCTION_ARGS) @@ -1606,66 +1598,6 @@ pg_stat_get_xact_tuples_deleted(PG_FUNCTION_ARGS) PG_RETURN_INT64(result); } -Datum -pg_stat_get_xact_tuples_hot_updated(PG_FUNCTION_ARGS) -{ - Oid relid = PG_GETARG_OID(0); - int64 result; - PgStat_TableStatus *tabentry; - - if ((tabentry = find_tabstat_entry(relid)) == NULL) - result = 0; - else - result = (int64) (tabentry->counts.tuples_hot_updated); - - PG_RETURN_INT64(result); -} - -Datum -pg_stat_get_xact_tuples_newpage_updated(PG_FUNCTION_ARGS) -{ - Oid relid = PG_GETARG_OID(0); - int64 result; - PgStat_TableStatus *tabentry; - - if ((tabentry = find_tabstat_entry(relid)) == NULL) - result = 0; - else - result = (int64) (tabentry->counts.tuples_newpage_updated); - - PG_RETURN_INT64(result); -} - -Datum -pg_stat_get_xact_blocks_fetched(PG_FUNCTION_ARGS) -{ - Oid relid = PG_GETARG_OID(0); - int64 result; - PgStat_TableStatus *tabentry; - - if ((tabentry = find_tabstat_entry(relid)) == NULL) - result = 0; - else - result = (int64) (tabentry->counts.blocks_fetched); - - PG_RETURN_INT64(result); -} - -Datum -pg_stat_get_xact_blocks_hit(PG_FUNCTION_ARGS) -{ - Oid relid = PG_GETARG_OID(0); - int64 result; - PgStat_TableStatus *tabentry; - - if ((tabentry = find_tabstat_entry(relid)) == NULL) - result = 0; - else - result = (int64) (tabentry->counts.blocks_hit); - - PG_RETURN_INT64(result); -} - Datum pg_stat_get_xact_function_calls(PG_FUNCTION_ARGS) { -- cgit v1.2.3