mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-23 19:39:53 +08:00
Trying to fix bad merging...
This commit is contained in:
parent
e3a1ab764e
commit
1d41e88568
@ -26,7 +26,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.66 1999/01/29 09:22:57 vadim Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.67 1999/01/29 10:15:09 vadim Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -65,7 +65,7 @@ static TupleDesc InitPlan(CmdType operation, Query *parseTree,
|
||||
static void EndPlan(Plan *plan, EState *estate);
|
||||
static TupleTableSlot *ExecutePlan(EState *estate, Plan *plan,
|
||||
CmdType operation, int numberTuples, ScanDirection direction,
|
||||
void (*printfunc) ());
|
||||
DestReceiver *destfunc);
|
||||
static void ExecRetrieve(TupleTableSlot *slot,
|
||||
DestReceiver *destfunc,
|
||||
EState *estate);
|
||||
@ -756,7 +756,7 @@ ExecutePlan(EState *estate,
|
||||
CmdType operation,
|
||||
int numberTuples,
|
||||
ScanDirection direction,
|
||||
void (*printfunc) ())
|
||||
DestReceiver *destfunc)
|
||||
{
|
||||
JunkFilter *junkfilter;
|
||||
|
||||
@ -941,7 +941,7 @@ lmark:;
|
||||
{
|
||||
case CMD_SELECT:
|
||||
ExecRetrieve(slot, /* slot containing tuple */
|
||||
printfunc, /* print function */
|
||||
destfunc, /* print function */
|
||||
estate); /* */
|
||||
result = slot;
|
||||
break;
|
||||
@ -997,7 +997,7 @@ lmark:;
|
||||
*/
|
||||
static void
|
||||
ExecRetrieve(TupleTableSlot *slot,
|
||||
void (*printfunc) (),
|
||||
DestReceiver *destfunc,
|
||||
EState *estate)
|
||||
{
|
||||
HeapTuple tuple;
|
||||
@ -1139,8 +1139,7 @@ ExecDelete(TupleTableSlot *slot,
|
||||
{
|
||||
RelationInfo *resultRelationInfo;
|
||||
Relation resultRelationDesc;
|
||||
ItemPointerData ctid,
|
||||
oldtid;
|
||||
ItemPointerData ctid;
|
||||
int result;
|
||||
|
||||
/******************
|
||||
@ -1180,12 +1179,11 @@ ldelete:;
|
||||
elog(ERROR, "Can't serialize access due to concurrent update");
|
||||
else if (!(ItemPointerEquals(tupleid, &ctid)))
|
||||
{
|
||||
TupleTableSlot *slot = EvalPlanQual(estate,
|
||||
TupleTableSlot *epqslot = EvalPlanQual(estate,
|
||||
resultRelationInfo->ri_RangeTableIndex, &ctid);
|
||||
|
||||
if (!TupIsNull(slot))
|
||||
if (!TupIsNull(epqslot))
|
||||
{
|
||||
tupleid = &oldtid;
|
||||
*tupleid = ctid;
|
||||
goto ldelete;
|
||||
}
|
||||
@ -1238,8 +1236,7 @@ ExecReplace(TupleTableSlot *slot,
|
||||
HeapTuple tuple;
|
||||
RelationInfo *resultRelationInfo;
|
||||
Relation resultRelationDesc;
|
||||
ItemPointerData ctid,
|
||||
oldtid;
|
||||
ItemPointerData ctid;
|
||||
int result;
|
||||
int numIndices;
|
||||
|
||||
@ -1321,13 +1318,14 @@ lreplace:;
|
||||
elog(ERROR, "Can't serialize access due to concurrent update");
|
||||
else if (!(ItemPointerEquals(tupleid, &ctid)))
|
||||
{
|
||||
TupleTableSlot *slot = EvalPlanQual(estate,
|
||||
TupleTableSlot *epqslot = EvalPlanQual(estate,
|
||||
resultRelationInfo->ri_RangeTableIndex, &ctid);
|
||||
|
||||
if (!TupIsNull(slot))
|
||||
if (!TupIsNull(epqslot))
|
||||
{
|
||||
tupleid = &oldtid;
|
||||
*tupleid = ctid;
|
||||
tuple = ExecRemoveJunk(estate->es_junkFilter, epqslot);
|
||||
slot = ExecStoreTuple(tuple, slot, InvalidBuffer, true);
|
||||
goto lreplace;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user