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

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: BUG #15324: Non-deterministic behaviour from parallelised sub-query
Дата
Msg-id 15775.1535982557@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: BUG #15324: Non-deterministic behaviour from parallelised sub-query  (Amit Kapila <amit.kapila16@gmail.com>)
Ответы Re: BUG #15324: Non-deterministic behaviour from parallelised sub-query
Список pgsql-bugs
Amit Kapila <amit.kapila16@gmail.com> writes:
> You haven't mentioned anything about backpatching, but I don't see any
> problem with backpatching this fix.

Yeah, we definitely need to back-patch, and that's another reason not
to touch the catalog contents.

> I will commit the attached patches in a day or so unless somebody sees
> any problem.

Looking more closely at the patch:

* The general design in max_parallel_hazard_walker appears to be that
after the initial check_functions_in_node test, the rest of it should be
an if ... else if ... else if ... else if ... chain of mutually-exclusive
IsA tests.  Whoever stuck in the NextValueExpr test (possibly me?) did so
with a tin ear, and you've duplicated that mistake here.  Please make it
"else if", and fix the NextValueExpr test to be "else if" while at it.
(Or else get rid of all the "else"s, but that would be a shade less
efficient unless the compiler is very very smart.)

* The plan tree for the added test case is hard to read because it's
unclear which tenk1 scan is which.  I'd suggest adding aliases to
clarify that, eg

+explain (costs off, verbose)
+  select count(*) from tenk1 a where (unique1, two) in
+    (select unique1, row_number() over() from tenk1 b);

HEAD patch is OK otherwise.  I didn't look at the back-branch patches.

            regards, tom lane


В списке pgsql-bugs по дате отправления:

Предыдущее
От: Amit Kapila
Дата:
Сообщение: Re: BUG #15324: Non-deterministic behaviour from parallelised sub-query
Следующее
От: Sébastien DELOBEL
Дата:
Сообщение: example of json_to_record(json) not working