Re: BUG #15324: Non-deterministic behaviour from parallelised sub-query
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Marko Tiikkaja <marko@joh.to>
Cc: Amit Kapila <amit.kapila16@gmail.com>, Andres Freund <andres@anarazel.de>,
Andrew Fletcher <andy@prestigedigital.com>,
PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2018-08-14T15:44:10Z
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
Marko Tiikkaja <marko@joh.to> writes: > Marking the function parallel safe doesn't seem wrong to me. The > non-parallel-safe part is that the input gets fed to it in different order > in different workers. And I don't really think that to be the function's > fault. So that basically opens the question of whether *any* window function calculation can safely be pushed down to parallel workers. Somewhat like the LIMIT/OFFSET case, it seems to me that we could only expect to do this safely if the row ordering induced by the WINDOW clause can be proven to be fully deterministic. The planner has no such smarts at the moment AFAIR. In principle you could do it if there were partitioning/ordering by a primary key, but I'm not excited about the prospects of that being true often enough in practice to justify making the check. regards, tom lane