mirror of
https://github.com/postgres/postgres.git
synced 2025-07-27 12:41:57 +03:00
Add SETTINGS option to EXPLAIN, to print modified settings.
Query planning is affected by a number of configuration options, and it may be crucial to know which of those options were set to non-default values. With this patch you can say EXPLAIN (SETTINGS ON) to include that information in the query plan. Only options affecting planning, with values different from the built-in default are printed. This patch also adds auto_explain.log_settings option, providing the same capability in auto_explain module. Author: Tomas Vondra Reviewed-by: Rafia Sabih, John Naylor Discussion: https://postgr.es/m/e1791b4c-df9c-be02-edc5-7c8874944be0@2ndquadrant.com
This commit is contained in:
@ -28,6 +28,7 @@ static bool auto_explain_log_verbose = false;
|
||||
static bool auto_explain_log_buffers = false;
|
||||
static bool auto_explain_log_triggers = false;
|
||||
static bool auto_explain_log_timing = true;
|
||||
static bool auto_explain_log_settings = false;
|
||||
static int auto_explain_log_format = EXPLAIN_FORMAT_TEXT;
|
||||
static int auto_explain_log_level = LOG;
|
||||
static bool auto_explain_log_nested_statements = false;
|
||||
@ -112,6 +113,17 @@ _PG_init(void)
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
DefineCustomBoolVariable("auto_explain.log_settings",
|
||||
"Log modified configuration parameters affecting query planning.",
|
||||
NULL,
|
||||
&auto_explain_log_settings,
|
||||
false,
|
||||
PGC_SUSET,
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
DefineCustomBoolVariable("auto_explain.log_verbose",
|
||||
"Use EXPLAIN VERBOSE for plan logging.",
|
||||
NULL,
|
||||
@ -356,6 +368,7 @@ explain_ExecutorEnd(QueryDesc *queryDesc)
|
||||
es->timing = (es->analyze && auto_explain_log_timing);
|
||||
es->summary = es->analyze;
|
||||
es->format = auto_explain_log_format;
|
||||
es->settings = auto_explain_log_settings;
|
||||
|
||||
ExplainBeginOutput(es);
|
||||
ExplainQueryText(es, queryDesc);
|
||||
|
Reference in New Issue
Block a user