hi.
all the newly added GUC progressive_explain; progressive_explain_verbose; progressive_explain_settings; progressive_explain_interval; progressive_explain_output_size; progressive_explain_format; progressive_explain_sample_rate; also need to add to postgresql.conf.sample? in doc/src/sgml/monitoring.sgml, we also need add view pg_stat_progress_explain to the section <table id="monitoring-stats-dynamic-views-table"> <title>Dynamic Statistics Views</title> (Table 27.1. Dynamic Statistics Views) pg_stat_progress_explain.explain will be truncated after 4096 byte. (default value of progressive_explain_output_size) so if the progressive_explain_format is json, and the plan is bigger (imagine two partitioned tables joined together, each having many partitions) the column "explain" text may not be a valid json. Should we be concerned about this? I don't really understand the actual usage of pg_stat_progress_explain.explain_count. Other column usage makes sense to me. Can you share your idea why we need this column? select name, category from pg_settings where category = 'Query Tuning / Planner Method Configuration'; you will see that in config_group as QUERY_TUNING_METHOD all the GUC names generally begin with "enable". all the GUC names begin with "progressive" set the config_group as QUERY_TUNING_METHOD may not be appropriate? also it is not related to query tuning. #include "utils/backend_status.h" #include "storage/procarray.h" #include "executor/spi.h" #include "utils/guc.h" src/backend/commands/explain.c the header generally should be sorted in alphabetical ascending order. apply the order to ipci.c, execMain.c, execProcnode.c else /* Node in progress */ if (es->progressive && planstate == planstate->state->progressive_explain_current_node) appendStringInfo(es->str, " (actual rows=%.0f loops=%.0f) (current)", rows, nloops); else appendStringInfo(es->str, " (actual rows=%.0f loops=%.0f)", rows, nloops); the above part in src/backend/commands/explain.c ExplainNode, the indentation looks wrong to me.