Hi hackers,
Please find attached a patch proposal to $SUBJECT.
This is the same kind of work that has been done in 83a1a1b566 and 8018ffbf58
but this time for the
pg_stat_get_xact*() functions (as suggested by Andres in [1]).
The function names remain the same, but some fields have to be renamed.
While at it, I also took the opportunity to create the macros for
pg_stat_get_xact_function_total_time(),
pg_stat_get_xact_function_self_time() and pg_stat_get_function_total_time(),
pg_stat_get_function_self_time()
(even if the same code pattern is only repeated two 2 times).
Now that this patch renames some fields, I think that, for consistency, those
ones should be renamed too (aka remove the f_ and t_ prefixes):
PgStat_FunctionCounts.f_numcalls
PgStat_StatFuncEntry.f_numcalls
PgStat_TableCounts.t_truncdropped
PgStat_TableCounts.t_delta_live_tuples
PgStat_TableCounts.t_delta_dead_tuples
PgStat_TableCounts.t_changed_tuples
But I think it would be better to do it in a follow-up patch (once this one get
committed).
[1]:
https://www.postgresql.org/message-id/20230105002733.ealhzubjaiqis6ua%40awork3.anarazel.de
Looking forward to your feedback,
Regards,
--
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
diff --git a/src/backend/utils/activity/pgstat_function.c
b/src/backend/utils/activity/pgstat_function.c
index 6139a27fee..77af8541e0 100644
--- a/src/backend/utils/activity/pgstat_function.c
+++ b/src/backend/utils/activity/pgstat_function.c
@@ -124,7 +124,7 @@ pgstat_init_function_usage(FunctionCallInfo fcinfo,
fcu->fs = &pending->f_counts;
/* save stats for this function, later used to compensate for recursion
*/
- fcu->save_f_total_time = pending->f_counts.f_total_time;
+ fcu->save_total_time = pending->f_counts.total_time;
/* save current backend-wide total time */
fcu->save_total = total_func_time;
@@ -168,19 +168,19 @@ pgstat_end_function_usage(PgStat_FunctionCallUsage *fcu,
bool finalize)
INSTR_TIME_ADD(total_func_time, f_self);
/*
- * Compute the new f_total_time as the total elapsed time added to the
- * pre-call value of f_total_time. This is necessary to avoid
+ * Compute the new total_time as the total elapsed time added to the
+ * pre-call value of total_time. This is necessary to avoid
* double-counting any time taken by recursive calls of myself. (We do
* not need any similar kluge for self time, since that already excludes
* any recursive calls.)
*/
- INSTR_TIME_ADD(f_total, fcu->save_f_total_time);
+ INSTR_TIME_ADD(f_total, fcu->save_total_time);
/* update counters in function stats table */
if (finalize)
fs->f_numcalls++;
- fs->f_total_time = f_total;
- INSTR_TIME_ADD(fs->f_self_time, f_self);
+ fs->total_time = f_total;
+ INSTR_TIME_ADD(fs->self_time, f_self);
}
/*
@@ -204,10 +204,10 @@ pgstat_function_flush_cb(PgStat_EntryRef *entry_ref, bool
nowait)
return false;
shfuncent->stats.f_numcalls += localent->f_counts.f_numcalls;
- shfuncent->stats.f_total_time +=
- INSTR_TIME_GET_MICROSEC(localent->f_counts.f_total_time);
- shfuncent->stats.f_self_time +=
- INSTR_TIME_GET_MICROSEC(localent->f_counts.f_self_time);
+ shfuncent->stats.total_time +=
+ INSTR_TIME_GET_MICROSEC(localent->f_counts.total_time);
+ shfuncent->stats.self_time +=
+ INSTR_TIME_GET_MICROSEC(localent->f_counts.self_time);
pgstat_unlock_entry(entry_ref);
diff --git a/src/backend/utils/activity/pgstat_relation.c
b/src/backend/utils/activity/pgstat_relation.c
index 1730425de1..625cd2a96f 100644
--- a/src/backend/utils/activity/pgstat_relation.c
+++ b/src/backend/utils/activity/pgstat_relation.c
@@ -371,9 +371,9 @@ pgstat_count_heap_update(Relation rel, bool hot)
ensure_tabstat_xact_level(pgstat_info);
pgstat_info->trans->tuples_updated++;
- /* t_tuples_hot_updated is nontransactional, so just advance it
*/
+ /* tuples_hot_updated is nontransactional, so just advance it */
if (hot)
- pgstat_info->t_counts.t_tuples_hot_updated++;
+ pgstat_info->t_counts.tuples_hot_updated++;
}
}
@@ -501,9 +501,9 @@ AtEOXact_PgStat_Relations(PgStat_SubXactStatus *xact_state,
bool isCommit)
if (!isCommit)
restore_truncdrop_counters(trans);
/* count attempted actions regardless of commit/abort */
- tabstat->t_counts.t_tuples_inserted += trans->tuples_inserted;
- tabstat->t_counts.t_tuples_updated += trans->tuples_updated;
- tabstat->t_counts.t_tuples_deleted += trans->tuples_deleted;
+ tabstat->t_counts.tuples_inserted += trans->tuples_inserted;
+ tabstat->t_counts.tuples_updated += trans->tuples_updated;
+ tabstat->t_counts.tuples_deleted += trans->tuples_deleted;
if (isCommit)
{
tabstat->t_counts.t_truncdropped = trans->truncdropped;
@@ -607,9 +607,9 @@ AtEOSubXact_PgStat_Relations(PgStat_SubXactStatus
*xact_state, bool isCommit, in
/* first restore values obliterated by truncate/drop */
restore_truncdrop_counters(trans);
/* count attempted actions regardless of commit/abort */
- tabstat->t_counts.t_tuples_inserted +=
trans->tuples_inserted;
- tabstat->t_counts.t_tuples_updated +=
trans->tuples_updated;
- tabstat->t_counts.t_tuples_deleted +=
trans->tuples_deleted;
+ tabstat->t_counts.tuples_inserted +=
trans->tuples_inserted;
+ tabstat->t_counts.tuples_updated +=
trans->tuples_updated;
+ tabstat->t_counts.tuples_deleted +=
trans->tuples_deleted;
/* inserted tuples are dead, deleted tuples are
unaffected */
tabstat->t_counts.t_delta_dead_tuples +=
trans->tuples_inserted + trans->tuples_updated;
@@ -691,9 +691,9 @@ pgstat_twophase_postcommit(TransactionId xid, uint16 info,
pgstat_info = pgstat_prep_relation_pending(rec->t_id, rec->t_shared);
/* Same math as in AtEOXact_PgStat, commit case */
- pgstat_info->t_counts.t_tuples_inserted += rec->tuples_inserted;
- pgstat_info->t_counts.t_tuples_updated += rec->tuples_updated;
- pgstat_info->t_counts.t_tuples_deleted += rec->tuples_deleted;
+ pgstat_info->t_counts.tuples_inserted += rec->tuples_inserted;
+ pgstat_info->t_counts.tuples_updated += rec->tuples_updated;
+ pgstat_info->t_counts.tuples_deleted += rec->tuples_deleted;
pgstat_info->t_counts.t_truncdropped = rec->t_truncdropped;
if (rec->t_truncdropped)
{
@@ -733,9 +733,9 @@ pgstat_twophase_postabort(TransactionId xid, uint16 info,
rec->tuples_updated = rec->updated_pre_truncdrop;
rec->tuples_deleted = rec->deleted_pre_truncdrop;
}
- pgstat_info->t_counts.t_tuples_inserted += rec->tuples_inserted;
- pgstat_info->t_counts.t_tuples_updated += rec->tuples_updated;
- pgstat_info->t_counts.t_tuples_deleted += rec->tuples_deleted;
+ pgstat_info->t_counts.tuples_inserted += rec->tuples_inserted;
+ pgstat_info->t_counts.tuples_updated += rec->tuples_updated;
+ pgstat_info->t_counts.tuples_deleted += rec->tuples_deleted;
pgstat_info->t_counts.t_delta_dead_tuples +=
rec->tuples_inserted + rec->tuples_updated;
}
@@ -779,19 +779,19 @@ pgstat_relation_flush_cb(PgStat_EntryRef *entry_ref, bool
nowait)
/* add the values to the shared entry. */
tabentry = &shtabstats->stats;
- tabentry->numscans += lstats->t_counts.t_numscans;
- if (lstats->t_counts.t_numscans)
+ tabentry->numscans += lstats->t_counts.numscans;
+ if (lstats->t_counts.numscans)
{
TimestampTz t = GetCurrentTransactionStopTimestamp();
if (t > tabentry->lastscan)
tabentry->lastscan = t;
}
- tabentry->tuples_returned += lstats->t_counts.t_tuples_returned;
- tabentry->tuples_fetched += lstats->t_counts.t_tuples_fetched;
- tabentry->tuples_inserted += lstats->t_counts.t_tuples_inserted;
- tabentry->tuples_updated += lstats->t_counts.t_tuples_updated;
- tabentry->tuples_deleted += lstats->t_counts.t_tuples_deleted;
- tabentry->tuples_hot_updated += lstats->t_counts.t_tuples_hot_updated;
+ tabentry->tuples_returned += lstats->t_counts.tuples_returned;
+ tabentry->tuples_fetched += lstats->t_counts.tuples_fetched;
+ tabentry->tuples_inserted += lstats->t_counts.tuples_inserted;
+ tabentry->tuples_updated += lstats->t_counts.tuples_updated;
+ tabentry->tuples_deleted += lstats->t_counts.tuples_deleted;
+ tabentry->tuples_hot_updated += lstats->t_counts.tuples_hot_updated;
/*
* If table was truncated/dropped, first reset the live/dead counters.
@@ -806,9 +806,9 @@ pgstat_relation_flush_cb(PgStat_EntryRef *entry_ref, bool
nowait)
tabentry->live_tuples += lstats->t_counts.t_delta_live_tuples;
tabentry->dead_tuples += lstats->t_counts.t_delta_dead_tuples;
tabentry->mod_since_analyze += lstats->t_counts.t_changed_tuples;
- tabentry->ins_since_vacuum += lstats->t_counts.t_tuples_inserted;
- tabentry->blocks_fetched += lstats->t_counts.t_blocks_fetched;
- tabentry->blocks_hit += lstats->t_counts.t_blocks_hit;
+ tabentry->ins_since_vacuum += lstats->t_counts.tuples_inserted;
+ tabentry->blocks_fetched += lstats->t_counts.blocks_fetched;
+ tabentry->blocks_hit += lstats->t_counts.blocks_hit;
/* Clamp live_tuples in case of negative delta_live_tuples */
tabentry->live_tuples = Max(tabentry->live_tuples, 0);
@@ -819,13 +819,13 @@ pgstat_relation_flush_cb(PgStat_EntryRef *entry_ref, bool
nowait)
/* The entry was successfully flushed, add the same to database stats */
dbentry = pgstat_prep_database_pending(dboid);
- dbentry->tuples_returned += lstats->t_counts.t_tuples_returned;
- dbentry->tuples_fetched += lstats->t_counts.t_tuples_fetched;
- dbentry->tuples_inserted += lstats->t_counts.t_tuples_inserted;
- dbentry->tuples_updated += lstats->t_counts.t_tuples_updated;
- dbentry->tuples_deleted += lstats->t_counts.t_tuples_deleted;
- dbentry->blocks_fetched += lstats->t_counts.t_blocks_fetched;
- dbentry->blocks_hit += lstats->t_counts.t_blocks_hit;
+ dbentry->tuples_returned += lstats->t_counts.tuples_returned;
+ dbentry->tuples_fetched += lstats->t_counts.tuples_fetched;
+ dbentry->tuples_inserted += lstats->t_counts.tuples_inserted;
+ dbentry->tuples_updated += lstats->t_counts.tuples_updated;
+ dbentry->tuples_deleted += lstats->t_counts.tuples_deleted;
+ dbentry->blocks_fetched += lstats->t_counts.blocks_fetched;
+ dbentry->blocks_hit += lstats->t_counts.blocks_hit;
return true;
}
diff --git a/src/backend/utils/adt/pgstatfuncs.c
b/src/backend/utils/adt/pgstatfuncs.c
index 6cddd74aa7..27bb928db4 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -148,29 +148,24 @@ pg_stat_get_function_calls(PG_FUNCTION_ARGS)
PG_RETURN_INT64(funcentry->f_numcalls);
}
-Datum
-pg_stat_get_function_total_time(PG_FUNCTION_ARGS)
-{
- Oid funcid = PG_GETARG_OID(0);
- PgStat_StatFuncEntry *funcentry;
-
- if ((funcentry = pgstat_fetch_stat_funcentry(funcid)) == NULL)
- PG_RETURN_NULL();
- /* convert counter from microsec to millisec for display */
- PG_RETURN_FLOAT8(((double) funcentry->f_total_time) / 1000.0);
+#define PG_STAT_GET_FUNCENTRY_FLOAT8(stat)
\
+Datum
\
+CppConcat(pg_stat_get_function_,stat)(PG_FUNCTION_ARGS)
\
+{
\
+ Oid funcid = PG_GETARG_OID(0);
\
+ PgStat_StatFuncEntry *funcentry;
\
+
\
+ if ((funcentry = pgstat_fetch_stat_funcentry(funcid)) == NULL) \
+ PG_RETURN_NULL();
\
+ /* convert counter from microsec to millisec for display */
\
+ PG_RETURN_FLOAT8(((double) funcentry->stat) / 1000.0);
\
}
-Datum
-pg_stat_get_function_self_time(PG_FUNCTION_ARGS)
-{
- Oid funcid = PG_GETARG_OID(0);
- PgStat_StatFuncEntry *funcentry;
+/* pg_stat_get_function_total_time */
+PG_STAT_GET_FUNCENTRY_FLOAT8(total_time)
- if ((funcentry = pgstat_fetch_stat_funcentry(funcid)) == NULL)
- PG_RETURN_NULL();
- /* convert counter from microsec to millisec for display */
- PG_RETURN_FLOAT8(((double) funcentry->f_self_time) / 1000.0);
-}
+/* pg_stat_get_function_self_time */
+PG_STAT_GET_FUNCENTRY_FLOAT8(self_time)
Datum
pg_stat_get_backend_idset(PG_FUNCTION_ARGS)
@@ -1345,158 +1340,70 @@ 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->t_counts.t_numscans);
-
- 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;
-
- if ((tabentry = find_tabstat_entry(relid)) == NULL)
- result = 0;
- else
- result = (int64) (tabentry->t_counts.t_tuples_returned);
-
- PG_RETURN_INT64(result);
-}
-
-Datum
-pg_stat_get_xact_tuples_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->t_counts.t_tuples_fetched);
-
- PG_RETURN_INT64(result);
-}
-
-Datum
-pg_stat_get_xact_tuples_inserted(PG_FUNCTION_ARGS)
-{
- Oid relid = PG_GETARG_OID(0);
- int64 result;
- PgStat_TableStatus *tabentry;
- PgStat_TableXactStatus *trans;
-
- if ((tabentry = find_tabstat_entry(relid)) == NULL)
- result = 0;
- else
- {
- result = tabentry->t_counts.t_tuples_inserted;
- /* live subtransactions' counts aren't in t_tuples_inserted yet
*/
- for (trans = tabentry->trans; trans != NULL; trans =
trans->upper)
- result += trans->tuples_inserted;
- }
-
- PG_RETURN_INT64(result);
-}
-
-Datum
-pg_stat_get_xact_tuples_updated(PG_FUNCTION_ARGS)
-{
- Oid relid = PG_GETARG_OID(0);
- int64 result;
- PgStat_TableStatus *tabentry;
- PgStat_TableXactStatus *trans;
-
- if ((tabentry = find_tabstat_entry(relid)) == NULL)
- result = 0;
- else
- {
- result = tabentry->t_counts.t_tuples_updated;
- /* live subtransactions' counts aren't in t_tuples_updated yet
*/
- for (trans = tabentry->trans; trans != NULL; trans =
trans->upper)
- result += trans->tuples_updated;
- }
-
- PG_RETURN_INT64(result);
-}
-
-Datum
-pg_stat_get_xact_tuples_deleted(PG_FUNCTION_ARGS)
-{
- Oid relid = PG_GETARG_OID(0);
- int64 result;
- PgStat_TableStatus *tabentry;
- PgStat_TableXactStatus *trans;
-
- if ((tabentry = find_tabstat_entry(relid)) == NULL)
- result = 0;
- else
- {
- result = tabentry->t_counts.t_tuples_deleted;
- /* live subtransactions' counts aren't in t_tuples_deleted yet
*/
- for (trans = tabentry->trans; trans != NULL; trans =
trans->upper)
- result += trans->tuples_deleted;
- }
-
- 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->t_counts.t_tuples_hot_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->t_counts.t_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->t_counts.t_blocks_hit);
-
- 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->t_counts.stat);
\
+
\
+ PG_RETURN_INT64(result);
\
+}
+
+/* pg_stat_get_xact_numscans */
+PG_STAT_GET_XACT_RELENTRY_INT64(numscans)
+
+/* pg_stat_get_xact_tuples_returned */
+PG_STAT_GET_XACT_RELENTRY_INT64(tuples_returned)
+
+/* pg_stat_get_xact_tuples_fetched */
+PG_STAT_GET_XACT_RELENTRY_INT64(tuples_fetched)
+
+/* pg_stat_get_xact_tuples_hot_updated */
+PG_STAT_GET_XACT_RELENTRY_INT64(tuples_hot_updated)
+
+/* 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)
+
+#define PG_STAT_GET_XACT_WITH_SUBTRANS_RELENTRY_INT64(stat)
\
+Datum
\
+CppConcat(pg_stat_get_xact_,stat)(PG_FUNCTION_ARGS)
\
+{
\
+ Oid relid = PG_GETARG_OID(0);
\
+ int64 result;
\
+ PgStat_TableStatus *tabentry;
\
+ PgStat_TableXactStatus *trans;
\
+
\
+ if ((tabentry = find_tabstat_entry(relid)) == NULL)
\
+ result = 0;
\
+ else
\
+ {
\
+ result = tabentry->t_counts.stat;
\
+ /* live subtransactions' counts aren't in the stat yet */
\
+ for (trans = tabentry->trans; trans != NULL; trans =
trans->upper) \
+ result += trans->stat;
\
+ }
\
+
\
+ PG_RETURN_INT64(result);
\
+}
+
+/* pg_stat_get_xact_tuples_inserted */
+PG_STAT_GET_XACT_WITH_SUBTRANS_RELENTRY_INT64(tuples_inserted)
+
+/* pg_stat_get_xact_tuples_updated */
+PG_STAT_GET_XACT_WITH_SUBTRANS_RELENTRY_INT64(tuples_updated)
+
+/* pg_stat_get_xact_tuples_deleted */
+PG_STAT_GET_XACT_WITH_SUBTRANS_RELENTRY_INT64(tuples_deleted)
Datum
pg_stat_get_xact_function_calls(PG_FUNCTION_ARGS)
@@ -1509,28 +1416,23 @@ pg_stat_get_xact_function_calls(PG_FUNCTION_ARGS)
PG_RETURN_INT64(funcentry->f_counts.f_numcalls);
}
-Datum
-pg_stat_get_xact_function_total_time(PG_FUNCTION_ARGS)
-{
- Oid funcid = PG_GETARG_OID(0);
- PgStat_BackendFunctionEntry *funcentry;
-
- if ((funcentry = find_funcstat_entry(funcid)) == NULL)
- PG_RETURN_NULL();
-
PG_RETURN_FLOAT8(INSTR_TIME_GET_MILLISEC(funcentry->f_counts.f_total_time));
+#define PG_STAT_GET_XACT_FUNCENTRY_FLOAT8(stat)
\
+Datum
\
+CppConcat(pg_stat_get_xact_function_,stat)(PG_FUNCTION_ARGS)
\
+{
\
+ Oid funcid = PG_GETARG_OID(0);
\
+ PgStat_BackendFunctionEntry *funcentry;
\
+
\
+ if ((funcentry = find_funcstat_entry(funcid)) == NULL)
\
+ PG_RETURN_NULL();
\
+ PG_RETURN_FLOAT8(INSTR_TIME_GET_MILLISEC(funcentry->f_counts.stat));
\
}
-Datum
-pg_stat_get_xact_function_self_time(PG_FUNCTION_ARGS)
-{
- Oid funcid = PG_GETARG_OID(0);
- PgStat_BackendFunctionEntry *funcentry;
-
- if ((funcentry = find_funcstat_entry(funcid)) == NULL)
- PG_RETURN_NULL();
-
PG_RETURN_FLOAT8(INSTR_TIME_GET_MILLISEC(funcentry->f_counts.f_self_time));
-}
+/* pg_stat_get_xact_function_total_time */
+PG_STAT_GET_XACT_FUNCENTRY_FLOAT8(total_time)
+/* pg_stat_get_xact_function_self_time */
+PG_STAT_GET_XACT_FUNCENTRY_FLOAT8(self_time)
/* Get the timestamp of the current statistics snapshot */
Datum
diff --git a/src/include/pgstat.h b/src/include/pgstat.h
index d3e965d744..d26d0d8324 100644
--- a/src/include/pgstat.h
+++ b/src/include/pgstat.h
@@ -106,8 +106,8 @@ typedef int64 PgStat_Counter;
typedef struct PgStat_FunctionCounts
{
PgStat_Counter f_numcalls;
- instr_time f_total_time;
- instr_time f_self_time;
+ instr_time total_time;
+ instr_time self_time;
} PgStat_FunctionCounts;
/* ----------
@@ -128,7 +128,7 @@ typedef struct PgStat_FunctionCallUsage
/* NULL means we are not tracking the current function call */
PgStat_FunctionCounts *fs;
/* Total time previously charged to function, as of function start */
- instr_time save_f_total_time;
+ instr_time save_total_time;
/* Backend-wide total time as of function start */
instr_time save_total;
/* system clock as of function start */
@@ -167,23 +167,23 @@ typedef struct PgStat_BackendSubEntry
*/
typedef struct PgStat_TableCounts
{
- PgStat_Counter t_numscans;
+ PgStat_Counter numscans;
- PgStat_Counter t_tuples_returned;
- PgStat_Counter t_tuples_fetched;
+ PgStat_Counter tuples_returned;
+ PgStat_Counter tuples_fetched;
- PgStat_Counter t_tuples_inserted;
- PgStat_Counter t_tuples_updated;
- PgStat_Counter t_tuples_deleted;
- PgStat_Counter t_tuples_hot_updated;
+ PgStat_Counter tuples_inserted;
+ PgStat_Counter tuples_updated;
+ PgStat_Counter tuples_deleted;
+ PgStat_Counter tuples_hot_updated;
bool t_truncdropped;
PgStat_Counter t_delta_live_tuples;
PgStat_Counter t_delta_dead_tuples;
PgStat_Counter t_changed_tuples;
- PgStat_Counter t_blocks_fetched;
- PgStat_Counter t_blocks_hit;
+ PgStat_Counter blocks_fetched;
+ PgStat_Counter blocks_hit;
} PgStat_TableCounts;
/* ----------
@@ -315,8 +315,8 @@ typedef struct PgStat_StatFuncEntry
{
PgStat_Counter f_numcalls;
- PgStat_Counter f_total_time; /* times in microseconds */
- PgStat_Counter f_self_time;
+ PgStat_Counter total_time; /* times in microseconds */
+ PgStat_Counter self_time;
} PgStat_StatFuncEntry;
typedef struct PgStat_StatReplSlotEntry
@@ -525,37 +525,37 @@ extern void pgstat_report_analyze(Relation rel,
#define pgstat_count_heap_scan(rel)
\
do {
\
if (pgstat_should_count_relation(rel))
\
- (rel)->pgstat_info->t_counts.t_numscans++;
\
+ (rel)->pgstat_info->t_counts.numscans++;
\
} while (0)
#define pgstat_count_heap_getnext(rel)
\
do {
\
if (pgstat_should_count_relation(rel))
\
- (rel)->pgstat_info->t_counts.t_tuples_returned++;
\
+ (rel)->pgstat_info->t_counts.tuples_returned++;
\
} while (0)
#define pgstat_count_heap_fetch(rel)
\
do {
\
if (pgstat_should_count_relation(rel))
\
- (rel)->pgstat_info->t_counts.t_tuples_fetched++;
\
+ (rel)->pgstat_info->t_counts.tuples_fetched++;
\
} while (0)
#define pgstat_count_index_scan(rel)
\
do {
\
if (pgstat_should_count_relation(rel))
\
- (rel)->pgstat_info->t_counts.t_numscans++;
\
+ (rel)->pgstat_info->t_counts.numscans++;
\
} while (0)
#define pgstat_count_index_tuples(rel, n)
\
do {
\
if (pgstat_should_count_relation(rel))
\
- (rel)->pgstat_info->t_counts.t_tuples_returned += (n);
\
+ (rel)->pgstat_info->t_counts.tuples_returned += (n);
\
} while (0)
#define pgstat_count_buffer_read(rel)
\
do {
\
if (pgstat_should_count_relation(rel))
\
- (rel)->pgstat_info->t_counts.t_blocks_fetched++;
\
+ (rel)->pgstat_info->t_counts.blocks_fetched++;
\
} while (0)
#define pgstat_count_buffer_hit(rel)
\
do {
\
if (pgstat_should_count_relation(rel))
\
- (rel)->pgstat_info->t_counts.t_blocks_hit++;
\
+ (rel)->pgstat_info->t_counts.blocks_hit++;
\
} while (0)
extern void pgstat_count_heap_insert(Relation rel, PgStat_Counter n);