mirror of
https://github.com/postgres/postgres.git
synced 2025-06-13 07:41:39 +03:00
Use outerPlanState macro instead of referring to leffttree.
This makes the executor code more consistent. It also removes an apparently superfluous NULL test in nodeGroup.c. Qingqing Zhou, reviewed by Tom Lane, and further revised by me.
This commit is contained in:
@ -317,6 +317,8 @@ ExecMaterialRestrPos(MaterialState *node)
|
||||
void
|
||||
ExecReScanMaterial(MaterialState *node)
|
||||
{
|
||||
PlanState *outerPlan = outerPlanState(node);
|
||||
|
||||
ExecClearTuple(node->ss.ps.ps_ResultTupleSlot);
|
||||
|
||||
if (node->eflags != 0)
|
||||
@ -339,13 +341,13 @@ ExecReScanMaterial(MaterialState *node)
|
||||
* Otherwise we can just rewind and rescan the stored output. The
|
||||
* state of the subnode does not change.
|
||||
*/
|
||||
if (node->ss.ps.lefttree->chgParam != NULL ||
|
||||
if (outerPlan->chgParam != NULL ||
|
||||
(node->eflags & EXEC_FLAG_REWIND) == 0)
|
||||
{
|
||||
tuplestore_end(node->tuplestorestate);
|
||||
node->tuplestorestate = NULL;
|
||||
if (node->ss.ps.lefttree->chgParam == NULL)
|
||||
ExecReScan(node->ss.ps.lefttree);
|
||||
if (outerPlan->chgParam == NULL)
|
||||
ExecReScan(outerPlan);
|
||||
node->eof_underlying = false;
|
||||
}
|
||||
else
|
||||
@ -359,8 +361,8 @@ ExecReScanMaterial(MaterialState *node)
|
||||
* if chgParam of subnode is not null then plan will be re-scanned by
|
||||
* first ExecProcNode.
|
||||
*/
|
||||
if (node->ss.ps.lefttree->chgParam == NULL)
|
||||
ExecReScan(node->ss.ps.lefttree);
|
||||
if (outerPlan->chgParam == NULL)
|
||||
ExecReScan(outerPlan);
|
||||
node->eof_underlying = false;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user