diff --git a/pg_stat_monitor.c b/pg_stat_monitor.c index 9a4cea9..2876e1b 100644 --- a/pg_stat_monitor.c +++ b/pg_stat_monitor.c @@ -66,7 +66,8 @@ static int plan_nested_level = 0; /* The array to store outer layer query id*/ uint64 *nested_queryids; -FILE *qfile; +static char relations[REL_LST][REL_LEN]; +static int num_relations; /* Number of relation in the query */ static bool system_init = false; static struct rusage rusage_start; static struct rusage rusage_end; @@ -645,7 +646,6 @@ static void pgss_ExecutorEnd(QueryDesc *queryDesc) { uint64 queryId = queryDesc->plannedstmt->queryId; - pgssSharedState *pgss = pgsm_get_ss(); SysInfo sys_info; PlanInfo plan_info; @@ -693,7 +693,7 @@ pgss_ExecutorEnd(QueryDesc *queryDesc) prev_ExecutorEnd(queryDesc); else standard_ExecutorEnd(queryDesc); - pgss->num_relations = 0; + num_relations = 0; } #ifdef BENCHMARK @@ -713,13 +713,11 @@ static bool pgss_ExecutorCheckPerms(List *rt, bool abort) { ListCell *lr = NULL; - pgssSharedState *pgss = pgsm_get_ss(); int i = 0; int j = 0; Oid list_oid[20]; - LWLockAcquire(pgss->lock, LW_EXCLUSIVE); - pgss->num_relations = 0; + num_relations = 0; foreach(lr, rt) { @@ -744,14 +742,13 @@ pgss_ExecutorCheckPerms(List *rt, bool abort) namespace_name = get_namespace_name(get_rel_namespace(rte->relid)); relation_name = get_rel_name(rte->relid); if (rte->relkind == 'v') - snprintf(pgss->relations[i++], REL_LEN, "%s.%s*", namespace_name, relation_name); + snprintf(relations[i++], REL_LEN, "%s.%s*", namespace_name, relation_name); else - snprintf(pgss->relations[i++], REL_LEN, "%s.%s", namespace_name, relation_name); + snprintf(relations[i++], REL_LEN, "%s.%s", namespace_name, relation_name); } } } - pgss->num_relations = i; - LWLockRelease(pgss->lock); + num_relations = i; if (prev_ExecutorCheckPerms_hook) return prev_ExecutorCheckPerms_hook(rt, abort); @@ -1184,7 +1181,6 @@ pgss_update_entry(pgssEntry *entry, int index; char application_name[APPLICATIONNAME_LEN]; int application_name_len = pg_get_application_name(application_name); - pgssSharedState *pgss = pgsm_get_ss(); double old_mean; int message_len = error_info ? strlen (error_info->message) : 0; int comments_len = comments ? strlen (comments) : 0; @@ -1255,8 +1251,8 @@ pgss_update_entry(pgssEntry *entry, _snprintf(e->counters.planinfo.plan_text, plan_info->plan_text, plan_text_len, PLAN_TEXT_LEN); _snprintf(e->counters.info.application_name, application_name, application_name_len, APPLICATIONNAME_LEN); - e->counters.info.num_relations = pgss->num_relations; - _snprintf2(e->counters.info.relations, pgss->relations, pgss->num_relations, REL_LEN); + e->counters.info.num_relations = num_relations; + _snprintf2(e->counters.info.relations, relations, num_relations, REL_LEN); e->counters.info.cmd_type = cmd_type; diff --git a/pg_stat_monitor.h b/pg_stat_monitor.h index 1f9e6d4..62c33b9 100644 --- a/pg_stat_monitor.h +++ b/pg_stat_monitor.h @@ -310,8 +310,6 @@ typedef struct pgssSharedState uint64 prev_bucket_usec; uint64 bucket_entry[MAX_BUCKETS]; int64 query_buf_size_bucket; - char relations[REL_LST][REL_LEN]; - int num_relations; /* Number of relation in the query */ char bucket_start_time[MAX_BUCKETS][60]; /* start time of the bucket */ } pgssSharedState;