mirror of
https://github.com/postgres/postgres.git
synced 2025-11-16 15:02:33 +03:00
Make further use of new bitmapset code: executor's chgParam, extParam,
locParam lists can be converted to bitmapsets to speed updating. Also, replace 'locParam' with 'allParam', which contains all the paramIDs relevant to the node (i.e., the union of extParam and locParam); this saves a step during SetChangedParamList() without costing anything elsewhere.
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: primnodes.h,v 1.78 2003/02/03 21:15:44 tgl Exp $
|
||||
* $Id: primnodes.h,v 1.79 2003/02/09 00:30:40 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -435,9 +435,11 @@ typedef struct SubLink
|
||||
* expressions to be evaluated in the outer-query context (currently these
|
||||
* args are always just Vars, but in principle they could be any expression).
|
||||
* The values are assigned to the global PARAM_EXEC params indexed by parParam
|
||||
* (the parParam and args lists must have the same length). setParam is a
|
||||
* (the parParam and args lists must have the same ordering). setParam is a
|
||||
* list of the PARAM_EXEC params that are computed by the sub-select, if it
|
||||
* is an initplan.
|
||||
* is an initplan; they are listed in order by sub-select output column
|
||||
* position. (parParam and setParam are integer Lists, not Bitmapsets,
|
||||
* because their ordering is significant.)
|
||||
*/
|
||||
typedef struct SubPlan
|
||||
{
|
||||
@@ -449,6 +451,7 @@ typedef struct SubPlan
|
||||
/* The combining operators, transformed to executable expressions: */
|
||||
List *exprs; /* list of OpExpr expression trees */
|
||||
List *paramIds; /* IDs of Params embedded in the above */
|
||||
/* Note: paramIds has a one-to-one correspondence to the exprs list */
|
||||
/* The subselect, transformed to a Plan: */
|
||||
struct Plan *plan; /* subselect plan itself */
|
||||
int plan_id; /* dummy thing because of we haven't equal
|
||||
|
||||
Reference in New Issue
Block a user