Re: BUG #15324: Non-deterministic behaviour from parallelised sub-query
Andrew Fletcher <andy@prestigedigital.com>
From: Andrew Fletcher <andy@prestigedigital.com>
To: Andres Freund <andres@anarazel.de>
Cc: pgsql-bugs@lists.postgresql.org
Date: 2018-08-13T16:40:49Z
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
Sorry the bug report was unclear. Its not just that its returning different accounts from the subquery. In the first repro you can see account 304873 appears twice in the correct result but only once in the incorrect one. Even though its the same data, same query etc. If account 304873 is selected within the limit of the subquery then all the results for it should be returned in the outer query. In the second repro you can see more than 3 accounts in the outer query, even though the inner one is limited to 3. Hope that makes it clearer. Cheers, Andy On Mon, Aug 13, 2018 at 5:35 PM, Andres Freund <andres@anarazel.de> wrote: > Hi, > > On 2018-08-13 16:14:03 +0000, PG Bug reporting form wrote: > > Execute this query (multiple times!) > > > > select * from events where account in (select account from events where > > data->>'page' = 'success.html' limit 3); > > 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. > > Greetings, > > Andres Freund >