.shared_size = sizeof(PgStatShared_Function),
.shared_data_off = offsetof(PgStatShared_Function, stats),
.shared_data_len = sizeof(((PgStatShared_Function *) 0)->stats),
- .pending_size = sizeof(PgStat_BackendFunctionEntry),
+ .pending_size = sizeof(PgStat_FunctionCounts),
.flush_pending_cb = pgstat_function_flush_cb,
},
PgStat_FunctionCallUsage *fcu)
{
PgStat_EntryRef *entry_ref;
- PgStat_BackendFunctionEntry *pending;
+ PgStat_FunctionCounts *pending;
bool created_entry;
if (pgstat_track_functions <= fcinfo->flinfo->fn_stats)
pending = entry_ref->pending;
- fcu->fs = &pending->f_counts;
+ fcu->fs = pending;
/* save stats for this function, later used to compensate for recursion */
- fcu->save_f_total_time = pending->f_counts.f_total_time;
+ fcu->save_f_total_time = pending->f_total_time;
/* save current backend-wide total time */
fcu->save_total = total_func_time;
bool
pgstat_function_flush_cb(PgStat_EntryRef *entry_ref, bool nowait)
{
- PgStat_BackendFunctionEntry *localent;
+ PgStat_FunctionCounts *localent;
PgStatShared_Function *shfuncent;
- localent = (PgStat_BackendFunctionEntry *) entry_ref->pending;
+ localent = (PgStat_FunctionCounts *) entry_ref->pending;
shfuncent = (PgStatShared_Function *) entry_ref->shared_stats;
/* localent always has non-zero content */
if (!pgstat_lock_entry(entry_ref, nowait))
return false;
- shfuncent->stats.f_numcalls += localent->f_counts.f_numcalls;
+ shfuncent->stats.f_numcalls += localent->f_numcalls;
shfuncent->stats.f_total_time +=
- INSTR_TIME_GET_MICROSEC(localent->f_counts.f_total_time);
+ INSTR_TIME_GET_MICROSEC(localent->f_total_time);
shfuncent->stats.f_self_time +=
- INSTR_TIME_GET_MICROSEC(localent->f_counts.f_self_time);
+ INSTR_TIME_GET_MICROSEC(localent->f_self_time);
pgstat_unlock_entry(entry_ref);
}
/*
- * find any existing PgStat_BackendFunctionEntry entry for specified function
+ * find any existing PgStat_FunctionCounts entry for specified function
*
* If no entry, return NULL, don't create a new one
*/
-PgStat_BackendFunctionEntry *
+PgStat_FunctionCounts *
find_funcstat_entry(Oid func_id)
{
PgStat_EntryRef *entry_ref;
pg_stat_get_xact_function_calls(PG_FUNCTION_ARGS)
{
Oid funcid = PG_GETARG_OID(0);
- PgStat_BackendFunctionEntry *funcentry;
+ PgStat_FunctionCounts *funcentry;
if ((funcentry = find_funcstat_entry(funcid)) == NULL)
PG_RETURN_NULL();
- PG_RETURN_INT64(funcentry->f_counts.f_numcalls);
+ PG_RETURN_INT64(funcentry->f_numcalls);
}
Datum
pg_stat_get_xact_function_total_time(PG_FUNCTION_ARGS)
{
Oid funcid = PG_GETARG_OID(0);
- PgStat_BackendFunctionEntry *funcentry;
+ PgStat_FunctionCounts *funcentry;
if ((funcentry = find_funcstat_entry(funcid)) == NULL)
PG_RETURN_NULL();
- PG_RETURN_FLOAT8(INSTR_TIME_GET_MILLISEC(funcentry->f_counts.f_total_time));
+ PG_RETURN_FLOAT8(INSTR_TIME_GET_MILLISEC(funcentry->f_total_time));
}
Datum
pg_stat_get_xact_function_self_time(PG_FUNCTION_ARGS)
{
Oid funcid = PG_GETARG_OID(0);
- PgStat_BackendFunctionEntry *funcentry;
+ PgStat_FunctionCounts *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_RETURN_FLOAT8(INSTR_TIME_GET_MILLISEC(funcentry->f_self_time));
}
instr_time f_self_time;
} PgStat_FunctionCounts;
-/* ----------
- * PgStat_BackendFunctionEntry Non-flushed function stats.
- * ----------
- */
-typedef struct PgStat_BackendFunctionEntry
-{
- PgStat_FunctionCounts f_counts;
-} PgStat_BackendFunctionEntry;
-
/*
* Working state needed to accumulate per-function-call timing statistics.
*/
bool finalize);
extern PgStat_StatFuncEntry *pgstat_fetch_stat_funcentry(Oid func_id);
-extern PgStat_BackendFunctionEntry *find_funcstat_entry(Oid func_id);
+extern PgStat_FunctionCounts *find_funcstat_entry(Oid func_id);
/*