Re: BUG #15324: Non-deterministic behaviour from parallelised sub-query
Pavel Stehule <pavel.stehule@gmail.com>
From: Pavel Stehule <pavel.stehule@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Marko Tiikkaja <marko@joh.to>, Andres Freund <andres@anarazel.de>,
andy@prestigedigital.com, pgsql-bugs@lists.postgresql.org
Date: 2018-08-13T17:47:37Z
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
2018-08-13 19:26 GMT+02:00 Tom Lane <tgl@sss.pgh.pa.us>: > Marko Tiikkaja <marko@joh.to> writes: > > On Mon, Aug 13, 2018 at 7:35 PM, Andres Freund <andres@anarazel.de> > wrote: > >> Well, the subselect with thelimit going to return different results from > >> run to run. Unless you add an ORDER BY there's no guaranteed order in > >> which tuples are returned. So I don't think it's surprising that you're > >> getting results that differ between runs. > > > While this is true, that's missing the point. > > Yeah, I agree. I think probably what's happening is that the sub-select > is getting pushed down to the parallel workers and they are not all > computing the same set of sub-select results, leading to inconsistent > answers at the top level. > > 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? If we don't need to solve order of rows, then parallel unsafe is not necessary. Regards Pavel > regards, tom lane > >