Re: BUG #15324: Non-deterministic behaviour from parallelised sub-query

David G. Johnston <david.g.johnston@gmail.com>

From: "David G. Johnston" <david.g.johnston@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Pavel Stehule <pavel.stehule@gmail.com>, Marko Tiikkaja <marko@joh.to>, Andres Freund <andres@anarazel.de>, "andy@prestigedigital.com" <andy@prestigedigital.com>, "pgsql-bugs@lists.postgresql.org" <pgsql-bugs@lists.postgresql.org>
Date: 2018-08-13T20:25:09Z
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 →
  1. Don't allow LIMIT/OFFSET clause within sub-selects to be pushed to workers.

  2. Back-patch "Fix parallel hash join path search."

  3. Prohibit pushing subqueries containing window function calculation to

  4. Fix parallel hash join path search.

On Monday, August 13, 2018, Tom Lane <tgl@sss.pgh.pa.us> wrote:

> Pavel Stehule <pavel.stehule@gmail.com> writes:
> > 2018-08-13 19:26 GMT+02:00 Tom Lane <tgl@sss.pgh.pa.us>:
> >> 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.
>
> > Isn't it default behave of LIMIT/OFFSET without ORDER BY clause?
>
> In principle, the planner could prove in some cases that the results
> were deterministic even with LIMIT/OFFSET.  BuT I doubt it's worth
> the trouble.  I certainly wouldn't advocate for such logic to be
> part of a back-patched bug fix.
>
>
Could the planner stick a materialize node there that feeds the same set of
originally selected records to any parallel executors that end up pulling
from it?

David J.