On Fri, 31 Dec 2021 at 00:14, Yura Sokolov <y.sokolov@postgrespro.ru> wrote:
> Problem:
> - Append path is created with explicitely parallel_aware = true
> - It has two child, one is trivial, other is parallel_aware = false .
> Trivial child is dropped.
> - Gather/GatherMerge path takes Append path as a child and thinks
> its child is parallel_aware = true.
> - But Append path is removed at the last since it has only one child.
> - Now Gather/GatherMerge thinks its child is parallel_aware, but it
> is not.
> Gather/GatherMerge runs its child twice: in a worker and in a leader,
> and gathers same rows twice.
Thanks for the report. I can confirm that I can recreate the problem
with your script.
I will look into this further later next week.
David