Simplify show_incremental_sort_info a bit
authorTomas Vondra <tomas.vondra@postgresql.org>
Sat, 9 May 2020 17:41:42 +0000 (19:41 +0200)
committerTomas Vondra <tomas.vondra@postgresql.org>
Sat, 9 May 2020 17:41:42 +0000 (19:41 +0200)
Incremental sort always processes at least one full group group before
switching to prefix groups, so it's enough to check just the number of
full groups. There was no risk of division by zero due to the extra
condition, but it made the code harder to understand.

Reported-by: Ranier Vilela
Discussion: https://postgr.es/m/CAEudQAp+7qoS92-4V1vLChpdY3vEkLCbf+gye6P-4cirE-0z0A@mail.gmail.com

src/backend/commands/explain.c

index 1275bec673209589b983ab884c44b30f7faaa5aa..5695802081ddc6e187ce69f929bae52a216d9b45 100644 (file)
@@ -2922,7 +2922,6 @@ show_incremental_sort_info(IncrementalSortState *incrsortstate,
             * contribute anything meaningful.
             */
            fullsortGroupInfo = &incsort_info->fullsortGroupInfo;
-           prefixsortGroupInfo = &incsort_info->prefixsortGroupInfo;
 
            /*
             * Since we never have any prefix groups unless we've first sorted
@@ -2930,8 +2929,7 @@ show_incremental_sort_info(IncrementalSortState *incrsortstate,
             * prefix group), we don't need to do anything if there were 0 full
             * groups.
             */
-           if (fullsortGroupInfo->groupCount == 0 &&
-               prefixsortGroupInfo->groupCount == 0)
+           if (fullsortGroupInfo->groupCount == 0)
                continue;
 
            if (es->workers_state)
@@ -2940,6 +2938,7 @@ show_incremental_sort_info(IncrementalSortState *incrsortstate,
            indent_first_line = es->workers_state == NULL || es->verbose;
            show_incremental_sort_group_info(fullsortGroupInfo, "Full-sort",
                                             indent_first_line, es);
+           prefixsortGroupInfo = &incsort_info->prefixsortGroupInfo;
            if (prefixsortGroupInfo->groupCount > 0)
            {
                if (es->format == EXPLAIN_FORMAT_TEXT)