mirror of
https://github.com/postgres/postgres.git
synced 2025-06-30 21:42:05 +03:00
Phase 3 of read-only-plans project: ExecInitExpr now builds expression
execution state trees, and ExecEvalExpr takes an expression state tree not an expression plan tree. The plan tree is now read-only as far as the executor is concerned. Next step is to begin actually exploiting this property.
This commit is contained in:
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.91 2002/12/05 15:50:32 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.92 2002/12/13 19:45:52 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -321,9 +321,9 @@ ExecAssignResultTypeFromTL(PlanState *planstate)
|
||||
}
|
||||
|
||||
/*
|
||||
* XXX Some plan nodes don't bother to set up planstate->targetlist,
|
||||
* so use the underlying plan's targetlist instead. This will probably
|
||||
* need to be fixed later.
|
||||
* ExecTypeFromTL needs the parse-time representation of the tlist, not
|
||||
* a list of ExprStates. This is good because some plan nodes don't
|
||||
* bother to set up planstate->targetlist ...
|
||||
*/
|
||||
tupDesc = ExecTypeFromTL(planstate->plan->targetlist, hasoid);
|
||||
ExecAssignResultType(planstate, tupDesc, true);
|
||||
@ -681,7 +681,7 @@ ExecInsertIndexTuples(TupleTableSlot *slot,
|
||||
continue;
|
||||
|
||||
indexInfo = indexInfoArray[i];
|
||||
predicate = indexInfo->ii_Predicate;
|
||||
predicate = indexInfo->ii_PredicateState;
|
||||
if (predicate != NIL)
|
||||
{
|
||||
/* Skip this index-update if the predicate isn't satisfied */
|
||||
|
Reference in New Issue
Block a user