From c8c4691e66d72c847d24ab547afa96f30fec1870 Mon Sep 17 00:00:00 2001 From: Justin Pryzby Date: Sat, 18 Apr 2020 21:02:59 -0500 Subject: [PATCH v1 2/3] Put Pre-sorted groups on a separate line --- src/backend/commands/explain.c | 10 ++++++++-- src/test/regress/expected/incremental_sort.out | 9 +++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c index 9257c52707..2ec5d5b810 100644 --- a/src/backend/commands/explain.c +++ b/src/backend/commands/explain.c @@ -2895,7 +2895,10 @@ show_incremental_sort_info(IncrementalSortState *incrsortstate, if (prefixsortGroupInfo->groupCount > 0) { if (es->format == EXPLAIN_FORMAT_TEXT) - appendStringInfo(es->str, " "); + { + appendStringInfo(es->str, "\n"); + ExplainIndentText(es); + } show_incremental_sort_group_info(prefixsortGroupInfo, "Presorted", false, es); } if (es->format == EXPLAIN_FORMAT_TEXT) @@ -2939,7 +2942,10 @@ show_incremental_sort_info(IncrementalSortState *incrsortstate, if (prefixsortGroupInfo->groupCount > 0) { if (es->format == EXPLAIN_FORMAT_TEXT) - appendStringInfo(es->str, " "); + { + appendStringInfo(es->str, "\n"); + ExplainIndentText(es); + } show_incremental_sort_group_info(prefixsortGroupInfo, "Presorted", false, es); } if (es->format == EXPLAIN_FORMAT_TEXT) diff --git a/src/test/regress/expected/incremental_sort.out b/src/test/regress/expected/incremental_sort.out index cf157a7aa1..3460d2bd6f 100644 --- a/src/test/regress/expected/incremental_sort.out +++ b/src/test/regress/expected/incremental_sort.out @@ -708,18 +708,19 @@ select * from t left join (select * from (select * from t order by a) v order by rollback; -- Test EXPLAIN ANALYZE with both fullsort and presorted groups. select explain_analyze_without_memory('select * from (select * from t order by a) s order by a, b limit 70'); - explain_analyze_without_memory ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ + explain_analyze_without_memory +--------------------------------------------------------------------------------------------------------------- Limit (actual rows=70 loops=1) -> Incremental Sort (actual rows=70 loops=1) Sort Key: t.a, t.b Presorted Key: t.a - Full-sort Groups: 1 Sort Method: quicksort Average Memory: NNkB Peak Memory: NNkB Presorted Groups: 5 Sort Methods: top-N heapsort, quicksort Average Memory: NNkB Peak Memory: NNkB + Full-sort Groups: 1 Sort Method: quicksort Average Memory: NNkB Peak Memory: NNkB + Presorted Groups: 5 Sort Methods: top-N heapsort, quicksort Average Memory: NNkB Peak Memory: NNkB -> Sort (actual rows=1000 loops=1) Sort Key: t.a Sort Method: quicksort Memory: NNkB -> Seq Scan on t (actual rows=1000 loops=1) -(9 rows) +(10 rows) select jsonb_pretty(explain_analyze_inc_sort_nodes_without_memory('select * from (select * from t order by a) s order by a, b limit 70')); jsonb_pretty -- 2.17.0