-
- Downloads
Improve division of labor between execParallel.c and nodeGather[Merge].c.
Move the responsibility for creating/destroying TupleQueueReaders into execParallel.c, to avoid duplicative coding in nodeGather.c and nodeGatherMerge.c. Also, instead of having DestroyTupleQueueReader do shm_mq_detach, do it in the caller (which is now only ExecParallelFinish). This means execParallel.c does both the attaching and detaching of the tuple-queue-reader shm_mqs, which seems less weird than the previous arrangement. These changes also eliminate a vestigial memory leak (of the pei->tqueue array). It's now demonstrable that rescans of Gather or GatherMerge don't leak memory. Discussion: https://postgr.es/m/8670.1504192177@sss.pgh.pa.us
Showing
- src/backend/executor/execParallel.c 68 additions, 4 deletionssrc/backend/executor/execParallel.c
- src/backend/executor/nodeGather.c 22 additions, 42 deletionssrc/backend/executor/nodeGather.c
- src/backend/executor/nodeGatherMerge.c 15 additions, 35 deletionssrc/backend/executor/nodeGatherMerge.c
- src/backend/executor/tqueue.c 3 additions, 1 deletionsrc/backend/executor/tqueue.c
- src/include/executor/execParallel.h 11 additions, 7 deletionssrc/include/executor/execParallel.h
Loading
Please register or sign in to comment