mirror of
https://github.com/postgres/postgres.git
synced 2025-09-03 15:22:11 +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:
@@ -35,6 +35,7 @@ typedef struct ExplainState
|
||||
bool buffers; /* print buffer usage */
|
||||
bool timing; /* print detailed node timing */
|
||||
bool summary; /* print total planning and execution timing */
|
||||
bool settings; /* print modified settings */
|
||||
ExplainFormat format; /* output format */
|
||||
/* state for output formatting --- not reset for each new plan tree */
|
||||
int indent; /* current indentation level */
|
||||
|
@@ -227,6 +227,8 @@ typedef enum
|
||||
#define GUC_UNIT_MIN 0x30000 /* value is in minutes */
|
||||
#define GUC_UNIT_TIME 0xF0000 /* mask for time-related units */
|
||||
|
||||
#define GUC_EXPLAIN 0x100000 /* include in explain */
|
||||
|
||||
#define GUC_UNIT (GUC_UNIT_MEMORY | GUC_UNIT_TIME)
|
||||
|
||||
|
||||
|
@@ -267,5 +267,6 @@ extern void build_guc_variables(void);
|
||||
extern const char *config_enum_lookup_by_value(struct config_enum *record, int val);
|
||||
extern bool config_enum_lookup_by_name(struct config_enum *record,
|
||||
const char *value, int *retval);
|
||||
extern struct config_generic **get_explain_guc_options(int *num);
|
||||
|
||||
#endif /* GUC_TABLES_H */
|
||||
|
Reference in New Issue
Block a user