diff --git a/guc.c b/guc.c index 88105fa..53f3906 100644 --- a/guc.c +++ b/guc.c @@ -38,12 +38,12 @@ init_guc(void) .guc_restart = true }; conf[i++] = (GucVariable) { - .guc_name = "pg_stat_monitor.pgsm_track", - .guc_desc = "Selects which statements are tracked by pg_stat_monitor.", - .guc_default = 0, + .guc_name = "pg_stat_monitor.pgsm_enable", + .guc_desc = "Enable/Disable stistics collector.", + .guc_default = 1, .guc_min = 0, .guc_max = 0, - .guc_restart = false + .guc_restart = true }; conf[i++] = (GucVariable) { .guc_name = "pg_stat_monitor.pgsm_track_utility", @@ -138,7 +138,7 @@ init_guc(void) NULL); DefineCustomIntVariable("pg_stat_monitor.pgsm_query_max_len", - "Sets the maximum length of query", + "Sets the maximum length of query.", NULL, &PGSM_QUERY_MAX_LEN, 1024, @@ -150,12 +150,11 @@ init_guc(void) NULL, NULL); - DefineCustomEnumVariable("pg_stat_monitor.pgsm_track", - "Selects which statements are tracked by pg_stat_monitor.", + DefineCustomBoolVariable("pg_stat_monitor.pgsm_enable", + "Enable/Disable the statis collector.", NULL, - &PGSM_TRACK, - PGSM_TRACK_TOP, - track_options, + (bool*)&PGSM_ENABLED, + true, PGC_SUSET, 0, NULL, @@ -167,7 +166,7 @@ init_guc(void) NULL, (bool*)&PGSM_TRACK_UTILITY, true, - PGC_SUSET, + PGC_USERSET, 0, NULL, NULL, @@ -178,7 +177,7 @@ init_guc(void) NULL, (bool*)&PGSM_NORMALIZED_QUERY, true, - PGC_SUSET, + PGC_USERSET, 0, NULL, NULL, diff --git a/pg_stat_monitor.c b/pg_stat_monitor.c index a9cf05b..9033095 100644 --- a/pg_stat_monitor.c +++ b/pg_stat_monitor.c @@ -481,7 +481,7 @@ pgss_ExecutorStart(QueryDesc *queryDesc, int eflags) * counting of optimizable statements that are directly contained in * utility statements. */ - if (PGSS_ENABLED() && queryDesc->plannedstmt->queryId != UINT64CONST(0)) + if (PGSM_ENABLED && queryDesc->plannedstmt->queryId != UINT64CONST(0)) { /* * Set up to track total elapsed time in ExecutorRun. Make sure the @@ -556,7 +556,7 @@ pgss_ExecutorEnd(QueryDesc *queryDesc) float stime; uint64 queryId = queryDesc->plannedstmt->queryId; - if (queryId != UINT64CONST(0) && queryDesc->totaltime && PGSS_ENABLED()) + if (queryId != UINT64CONST(0) && queryDesc->totaltime && PGSM_ENABLED) { /* * Make sure stats accumulation is done. (Note: it's okay if several diff --git a/pg_stat_monitor.h b/pg_stat_monitor.h index 85f1fd7..a0e33ba 100644 --- a/pg_stat_monitor.h +++ b/pg_stat_monitor.h @@ -325,32 +325,13 @@ typedef struct pgssJumbleState int highest_extern_param_id; } pgssJumbleState; -typedef enum -{ - PGSM_TRACK_NONE, /* track no statements */ - PGSM_TRACK_TOP, /* only top level statements */ - PGSM_TRACK_ALL /* all statements, including nested ones */ -} PGSSTRACKlEVEL; - -static const struct config_enum_entry track_options[] = -{ - {"none", PGSM_TRACK_NONE, false}, - {"top", PGSM_TRACK_TOP, false}, - {"all", PGSM_TRACK_ALL, false}, - {NULL, 0, false} -}; - -#define PGSS_ENABLED() \ - (PGSM_TRACK == PGSM_TRACK_ALL || \ - (PGSM_TRACK == PGSM_TRACK_TOP && nested_level == 0)) - /* guc.c */ void init_guc(void); /*---- GUC variables ----*/ #define PGSM_MAX conf[0].guc_variable #define PGSM_QUERY_MAX_LEN conf[1].guc_variable -#define PGSM_TRACK conf[2].guc_variable +#define PGSM_ENABLED conf[2].guc_variable #define PGSM_TRACK_UTILITY conf[3].guc_variable #define PGSM_NORMALIZED_QUERY conf[4].guc_variable #define PGSM_MAX_BUCKETS conf[5].guc_variable