public inbox for [email protected]
help / color / mirror / Atom feedFrom: David Rowley <[email protected]>
To: Tom Lane <[email protected]>
Cc: Yura Sokolov <[email protected]>
Cc: PostgreSQL Developers <[email protected]>
Subject: Re: Fix BUG #17335: Duplicate result rows in Gather node
Date: Wed, 26 Jan 2022 10:30:59 +1300
Message-ID: <CAApHDvqC3-s1OWQfGj11ahRD3YqRNKGr+U8KS033YNXZM50V2g@mail.gmail.com> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
<CAApHDvqMUshyci-F2CZ-jkSbmuhzCudhF5t5_z0shFxd9D_hVg@mail.gmail.com>
<[email protected]>
<[email protected]>
<[email protected]>
<CAApHDvrxnqQdqXQ1BxTRP5V+8pxBF+GMMhuJ0Qq8J2bT=Uwi+A@mail.gmail.com>
<CAApHDvqEnKn_Y4nNPqCPRLkwxZWS3tNPU6VxB9P1QtiN8y3onw@mail.gmail.com>
<[email protected]>
<[email protected]>
On Wed, 26 Jan 2022 at 05:32, Tom Lane <[email protected]> wrote:
> Therefore, what I think could be useful is some very-late-stage
> assertion check (probably in createplan.c) verifying that the
> child of a Gather is parallel-aware. Or maybe the condition
> needs to be more general than that, but anyway the idea is for
> the back end of the planner to verify that we didn't build a
> silly plan.
Yeah, it would be nice to have something like this. I think to do it,
we might need to invent some sort of path traversal function that can
take a custom callback function. The problem is that the parallel
aware path does not need to be directly below the gather/gathermerge.
For example (from select_distinct.out)
Unique
-> Sort
Sort Key: four
-> Gather
Workers Planned: 2
-> HashAggregate
Group Key: four
-> Parallel Seq Scan on tenk1
For this case, the custom callback would check that there's at least 1
parallel_aware subpath below the Gather/GatherMerge.
There's probably some other rules that we could Assert are true. I
think any parallel_aware paths (unless they're scans) must contain
only parallel_aware subpaths. For example, parallel hash join must
have a parallel aware inner and outer.
David
view thread (15+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected]
Subject: Re: Fix BUG #17335: Duplicate result rows in Gather node
In-Reply-To: <CAApHDvqC3-s1OWQfGj11ahRD3YqRNKGr+U8KS033YNXZM50V2g@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox