1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-14 18:42:34 +03:00

Fix latent bug in ExecSeqRestrPos: it leaves the plan node's result slot

in an inconsistent state.  (This is only latent because in reality
ExecSeqRestrPos is dead code at the moment ... but someday maybe it won't
be.)  Add some comments about what the API for plan node mark/restore
actually is, because it's not immediately obvious.
This commit is contained in:
Tom Lane
2005-05-15 21:19:55 +00:00
parent eb0d00a9be
commit 2ef172a2a4
4 changed files with 35 additions and 10 deletions

View File

@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/executor/nodeMergejoin.c,v 1.73 2005/05/14 21:29:23 tgl Exp $
* $PostgreSQL: pgsql/src/backend/executor/nodeMergejoin.c,v 1.74 2005/05/15 21:19:55 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -1134,8 +1134,10 @@ ExecMergeJoin(MergeJoinState *node)
ExecRestrPos(innerPlan);
/*
* ExecRestrPos really should give us back a new Slot,
* but since it doesn't, use the marked slot.
* ExecRestrPos probably should give us back a new Slot,
* but since it doesn't, use the marked slot. (The
* previously returned mj_InnerTupleSlot cannot be
* assumed to hold the required tuple.)
*/
node->mj_InnerTupleSlot = innerTupleSlot;
/* we need not do MJEvalInnerValues again */