Commit 9c64ddd4 authored by Robert Haas's avatar Robert Haas

Fix Parallel Append crash.

Reported by Tom Lane and the buildfarm.

Amul Sul and Amit Khandekar

Discussion: http://postgr.es/m/17868.1512519318@sss.pgh.pa.us
Discussion: http://postgr.es/m/CAJ3gD9cJQ4d-XhmZ6BqM9rMM2KDBfpkdgOAb4+psz56uBuMQ_A@mail.gmail.com
parent 979a36c3
......@@ -506,8 +506,16 @@ choose_next_subplan_for_worker(AppendState *node)
node->as_whichplan = pstate->pa_next_plan++;
if (pstate->pa_next_plan >= node->as_nplans)
{
Assert(append->first_partial_plan < node->as_nplans);
pstate->pa_next_plan = append->first_partial_plan;
if (append->first_partial_plan < node->as_nplans)
pstate->pa_next_plan = append->first_partial_plan;
else
{
/*
* We have only non-partial plans, and we already chose the last
* one; so arrange for the other workers to immediately bail out.
*/
pstate->pa_next_plan = INVALID_SUBPLAN_INDEX;
}
}
/* If non-partial, immediately mark as finished. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment