From 5d3f7c57ab9c9e2f074ad29d619056570fc5c51e Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 12 Mar 2017 15:52:50 -0400 Subject: [PATCH] Remove dead code in nodeGatherMerge.c. Coverity noted that the last line of gather_merge_getnext() was unreachable, since each arm of the preceding "if" ends in a "return". Drop it as an oversight. In passing, improve some nearby comments. --- src/backend/executor/nodeGatherMerge.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/executor/nodeGatherMerge.c b/src/backend/executor/nodeGatherMerge.c index 62a6b1866d..72f30ab4e6 100644 --- a/src/backend/executor/nodeGatherMerge.c +++ b/src/backend/executor/nodeGatherMerge.c @@ -423,8 +423,8 @@ reread: } /* - * Clear out a slot in the tuple table for each gather merge - * slot and return the clear cleared slot. + * Clear out the tuple table slots for each gather merge input, + * and return a cleared slot. */ static TupleTableSlot * gather_merge_clear_slots(GatherMergeState *gm_state) @@ -456,19 +456,21 @@ gather_merge_getnext(GatherMergeState *gm_state) { int i; - /* - * First time through: pull the first tuple from each participate, and set - * up the heap. - */ - if (gm_state->gm_initialized == false) + if (!gm_state->gm_initialized) + { + /* + * First time through: pull the first tuple from each participant, and + * set up the heap. + */ gather_merge_init(gm_state); + } else { /* * Otherwise, pull the next tuple from whichever participant we - * returned from last time, and reinsert the index into the heap, - * because it might now compare differently against the existing - * elements of the heap. + * returned from last time, and reinsert that participant's index into + * the heap, because it might now compare differently against the + * other elements of the heap. */ i = DatumGetInt32(binaryheap_first(gm_state->gm_heap)); @@ -485,11 +487,10 @@ gather_merge_getnext(GatherMergeState *gm_state) } else { + /* Return next tuple from whichever participant has the leading one */ i = DatumGetInt32(binaryheap_first(gm_state->gm_heap)); return gm_state->gm_slots[i]; } - - return gather_merge_clear_slots(gm_state); } /*