• Robert Haas's avatar
    Fix parallel query so it doesn't spoil row estimates above Gather. · 7d8f6986
    Robert Haas authored
    Commit 45be99f8 removed GatherPath's
    num_workers field, but this is entirely bogus.  Normally, a path's
    parallel_workers flag is supposed to indicate the number of workers
    that it wants, and should be 0 for a non-partial path.  In that
    commit, I mistakenly thought that GatherPath could also use that field
    to indicate the number of workers that it would try to start, but
    that's disastrous, because then it can propagate up to higher nodes in
    the plan tree, which will then get incorrect rowcounts because the
    parallel_workers flag is involved in computing those values.  Repair
    by putting the separate field back.
    
    Report by Tomas Vondra.  Patch by me, reviewed by Amit Kapila.
    
    Discussion: http://postgr.es/m/f91b4a44-f739-04bd-c4b6-f135bd643669@2ndquadrant.com
    7d8f6986
outfuncs.c 96.7 KB