On Wed, Jul 29, 2020 at 08:35:08PM -0700, Peter Geoghegan wrote: > AFAICT sort (and IncrSort) don't fail to show a field value if it is > zero. Rather, they consistently show "space used" (in non-text > format), which can be either memory or disk space. Technically they > don't violate the letter of the law that you cite. (Though admittedly > this is a legalistic loophole -- the "space" value presumably has to > be interpreted according to different rules for programs that consume > non-text EXPLAIN output.)
Sort shows this: Sort Method: "external merge" + Sort Space Used: 19520 + Sort Space Type: "Disk" + Incremental sort shows this: Sort Methods Used: + - "external merge" + Sort Space Disk: + Average Sort Space Used: 128+ Peak Sort Space Used: 128 + So my 2ndary suggestion is to conditionalize based on the method rather than value of space used. --- a/src/backend/commands/explain.c +++ b/src/backend/commands/explain.c @@ -2830 +2830 @@ show_incremental_sort_group_info(IncrementalSortGroupInfo *groupInfo, - if (groupInfo->maxMemorySpaceUsed > 0) + if (groupInfo->sortMethods & SORT_TYPE_QUICKSORT) @@ -2847 +2847 @@ show_incremental_sort_group_info(IncrementalSortGroupInfo *groupInfo, - if (groupInfo->maxDiskSpaceUsed > 0) + if (groupInfo->sortMethods & SORT_TYPE_EXTERNAL_SORT) -- Justin