Skip to content
Snippets Groups Projects
Commit 77c75076 authored by Tom Lane's avatar Tom Lane
Browse files

Fix oversight in new EvalPlanQual logic: the second loop over the ExecRowMark

list in ExecLockRows() forgot to allow for the possibility that some of the
rowmarks are for child tables that aren't relevant to the current row.
Per report from Kenichiro Tanaka.
parent 2dbbda02
No related branches found
No related tags found
No related merge requests found
......@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/executor/nodeLockRows.c,v 1.5 2010/07/12 17:01:05 tgl Exp $
* $PostgreSQL: pgsql/src/backend/executor/nodeLockRows.c,v 1.6 2010/07/28 17:21:56 tgl Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -195,6 +195,13 @@ lnext:
HeapTupleData tuple;
Buffer buffer;
/* ignore non-active child tables */
if (!ItemPointerIsValid(&(erm->curCtid)))
{
Assert(erm->rti != erm->prti); /* check it's child table */
continue;
}
if (EvalPlanQualGetTuple(&node->lr_epqstate, erm->rti) != NULL)
continue; /* it was updated and fetched above */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment