Hi, On Thu, Mar 24, 2022 at 07:50:11AM +0000, Jian Guo wrote: > For a simple demo, with this explain statement: > > -- Test sort stats summary > set force_parallel_mode=on; > select explain_filter('explain (analyze, summary off, timing off, costs off, > format json) select * from tenk1 order by unique1'); > > Before this patch, we got plan like this: > > > "Node Type": "Sort", + > "Parent Relationship": "Outer", + > "Parallel Aware": false, + > "Async Capable": false, + > "Actual Rows": 10000, + > "Actual Loops": 1, + > "Sort Key": ["unique1"], + > "Workers": [ + > { + > "Worker Number": 0, + > "Sort Method": "external merge",+ > "Sort Space Used": 2496, + > "Sort Space Type": "Disk" + > } + > ], +
> After this patch, the effected plan is this: > > "Node Type": "Sort", + > "Parent Relationship": "Outer", + > "Parallel Aware": false, + > "Async Capable": false, + > "Actual Rows": N, + > "Actual Loops": N, + > "Sort Key": ["unique1"], + > "Workers planned": N, + > "Sort Method": "external merge", + > "Average Sort Space Used": N, + > "Peak Sort Space Used": N, + > "Sort Space Type": "Disk", + I think the idea is interesting, however there are a few problems in the patch. First, I think that it should only be done in the VERBOSE OFF mode. If you ask for a VERBOSE output you don't need both the details and the summarized version. Other minor problems: - why (only) emitting the number of workers planned and not the number of workers launched? - the textual format is missing details about what the numbers are, which is particularly obvious since avgSpaceUsed and peakSpaceUsed don't have any unit or even space between them: + "Sort Method: %s %s: " INT64_FORMAT INT64_FORMAT "kB\n", + sortMethod, spaceType, avgSpaceUsed, peakSpaceUsed);