Re: [PATCH] Incremental sort (was: PoC: Partial sort)
James Coleman <jtc331@gmail.com>
On Mon, Apr 6, 2020 at 5:40 PM Tomas Vondra <tomas.vondra@2ndquadrant.com> wrote: > > On Mon, Apr 06, 2020 at 11:12:32PM +0200, Tomas Vondra wrote: > >On Mon, Apr 06, 2020 at 04:54:38PM -0400, Alvaro Herrera wrote: > >>On 2020-Apr-06, Tom Lane wrote: > >> > >>>Locally, things pass without force_parallel_mode, but turning it on > >>>produces failures that look similar to rhinoceros's (didn't examine > >>>other BF members). > >> > >>FWIW I looked at the eight failures there were about fifteen minutes ago > >>and they were all identical. I can confirm that, in my laptop, the > >>tests work without that GUC, and fail in exactly that way with it. > >> > > > >Yes, there's a thinko in show_incremental_sort_info() and it returns too > >soon. I'll push a fix in a minute. > > > > OK, I've pushed a fix - this should make the buildfarm happy again. > > It however seems to me a bit more needs to be done. The fix makes > show_incremental_sort_info closer to show_sort_info, but not entirely > because IncrementalSortState does not have sort_Done flag so it still > depends on (fullsortGroupInfo->groupCount > 0). I haven't noticed that > before, but not having that flag seems a bit weird to me. > > It also seems possibly incorrect - we may end up with > > fullsortGroupInfo->groupCount == 0 > prefixsortGroupInfo->groupCount > 0 > > but we won't print anything. This shouldn't ever be possible, because the only way we get any prefix groups at all is if we've already sorted a full sort group during the mode transition. > James, any opinion on this? I'd say we should restore the sort_Done flag > and make it work as in plain Sort. Or some comment explaining why > depending on the counts is OK (assuming it is). There's previous email traffic on this thread about that (I can look it up later this evening), but the short of it is that I believe that relying on the group count is actually more correct than a sort_Done flag in the case of incremental sort (in contrast to regular sort). James
Commits
-
Further adjustments to Hashagg EXPLAIN ANALYZE output
- 40efbf8706cd 14.0 cited
-
Rework EXPLAIN format for incremental sort
- 6a918c3ac8a6 13.0 landed
-
Fix typos and improve incremental sort comments
- 1a40d37a9faf 13.0 landed
-
Stabilize incremental_sort tests
- cea09246e578 13.0 landed
-
Minor improvements in Incremental Sort explain
- d22782a5392f 13.0 landed
-
Consider Incremental Sort paths at additional places
- ba3e76cc571e 13.0 landed
-
Fix representation of SORT_TYPE_STILL_IN_PROGRESS.
- c7654f6a3779 13.0 landed
-
Fix failures in incremental_sort due to number of workers
- 23ba3b5ee278 13.0 landed
-
Fix show_incremental_sort_info with force_parallel_mode
- 7d6d82a52493 13.0 landed
-
Implement Incremental Sort
- d2d8a229bc58 13.0 landed
-
Fix handling of "Subplans Removed" field in EXPLAIN output.
- 7d91b604d9b5 13.0 cited
-
Fix EXPLAIN (SETTINGS) to follow policy about when to print empty fields.
- 3ec20c7091e9 13.0 cited
-
Ensure plpgsql result tuples have the right composite type marking.
- 5683b34956b4 13.0 cited
-
Propagate sort instrumentation from workers back to leader.
- bf11e7ee2e36 11.0 cited
-
Make new regression test case parallel-safe, and improve its output.
- 1177ab1dabf7 11.0 cited
-
Push limit through subqueries to underlying sort, where possible.
- 1f6d515a67ec 11.0 cited
-
Fix inappropriate printing of never-measured times in EXPLAIN.
- 4b234fd8bf21 9.6.0 cited
-
Fix some infelicities in EXPLAIN output for parallel query plans.
- 8ebb69f85445 9.6.0 cited