pgsql: Consider parallel awareness when removing single-child Appends

Поиск
Список
Период
Сортировка
От David Rowley
Тема pgsql: Consider parallel awareness when removing single-child Appends
Дата
Msg-id E1nCGz7-0005qN-2X@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Consider parallel awareness when removing single-child Appends

8edd0e794 added some code to remove Append and MergeAppend nodes when they
contained a single child node.  As it turned out, this was unsafe to do
when the Append/MergeAppend was parallel_aware and the child node was not.
Removing the Append/MergeAppend, in this case, could lead to the child plan
being called multiple times by parallel workers when it was unsafe to do
so.

Here we fix this by just not removing the Append/MergeAppend when the
parallel_aware flag of the parent and child node don't match.

Reported-by: Yura Sokolov
Bug: #17335
Discussion: https://postgr.es/m/b59605fecb20ba9ea94e70ab60098c237c870628.camel%40postgrespro.ru
Backpatch-through: 12, where 8edd0e794 was first introduced

Branch
------
REL_13_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/f8807e7742e5ce058b6fe05d797852e082e6d2c8

Modified Files
--------------
src/backend/optimizer/plan/setrefs.c | 24 ++++++++++++++++++++----
1 file changed, 20 insertions(+), 4 deletions(-)


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

Предыдущее
От: David Rowley
Дата:
Сообщение: pgsql: Consider parallel awareness when removing single-child Appends
Следующее
От: David Rowley
Дата:
Сообщение: pgsql: Consider parallel awareness when removing single-child Appends