Re: BUG #15324: Non-deterministic behaviour from parallelised sub-query
Amit Kapila <amit.kapila16@gmail.com>
From: Amit Kapila <amit.kapila16@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Marko Tiikkaja <marko@joh.to>, Andres Freund <andres@anarazel.de>,
andy@prestigedigital.com, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2018-08-14T07:36:07Z
Lists: pgsql-bugs
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Don't allow LIMIT/OFFSET clause within sub-selects to be pushed to workers.
- 568b4e1fdeb3 9.6.11 landed
- 1ceb103e7d1e 10.6 landed
- 830d7565902f 11.0 landed
- 75f9c4ca5a80 12.0 landed
-
Back-patch "Fix parallel hash join path search."
- 271b678436ce 9.6.11 landed
-
Prohibit pushing subqueries containing window function calculation to
- f658235a448a 9.6.11 landed
- bf61873ae3b6 10.6 landed
- 14e9b2a752ef 12.0 landed
- 2ce253cf57b1 11.0 landed
-
Fix parallel hash join path search.
- 655393a022bd 10.0 cited
Attachments
- prohibit_parallel_limit_subselect_v1.patch (application/octet-stream) patch v1
On Tue, Aug 14, 2018 at 9:40 AM, Amit Kapila <amit.kapila16@gmail.com> wrote: > On Mon, Aug 13, 2018 at 10:56 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > > As Tom said, it is evident from the plan that the Limit clause is > pushed in the inner-side of the parallel plan and not all the workers > compute the same result set for the inner side. > >> Likely, we need to treat the presence of a LIMIT/OFFSET in a sub-select >> as making it parallel-unsafe, for exactly the reason that that makes >> its results non-deterministic. >> > > Yeah, one idea could be that we detect this in > max_parallel_hazard_walker during the very first pass it performs on > query-tree. > I have written a patch along those lines. This is still a WIP patch and it is mainly to demonstrate what I have in mind. There is one test in select_parallel.sql failing after this patch, but I think that is expected and we need to adjust that test. Let me know if you see a flaw in this approach? -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com