Remove unneeded indxqual field in IndexScanState, and the useless work
spent initializing it during indexscan startup.
This commit is contained in:
parent
303f4649a2
commit
9be7ea088c
|
@ -8,7 +8,7 @@
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/executor/nodeIndexscan.c,v 1.91 2004/02/03 17:34:02 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/executor/nodeIndexscan.c,v 1.92 2004/02/28 19:46:05 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
@ -669,6 +669,12 @@ ExecInitIndexScan(IndexScan *node, EState *estate)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* initialize child expressions
|
* initialize child expressions
|
||||||
|
*
|
||||||
|
* Note: we don't initialize all of the indxqual expression, only the
|
||||||
|
* sub-parts corresponding to runtime keys (see below). The indxqualorig
|
||||||
|
* expression is always initialized even though it will only be used in
|
||||||
|
* some uncommon cases --- would be nice to improve that. (Problem is
|
||||||
|
* that any SubPlans present in the expression must be found now...)
|
||||||
*/
|
*/
|
||||||
indexstate->ss.ps.targetlist = (List *)
|
indexstate->ss.ps.targetlist = (List *)
|
||||||
ExecInitExpr((Expr *) node->scan.plan.targetlist,
|
ExecInitExpr((Expr *) node->scan.plan.targetlist,
|
||||||
|
@ -676,9 +682,6 @@ ExecInitIndexScan(IndexScan *node, EState *estate)
|
||||||
indexstate->ss.ps.qual = (List *)
|
indexstate->ss.ps.qual = (List *)
|
||||||
ExecInitExpr((Expr *) node->scan.plan.qual,
|
ExecInitExpr((Expr *) node->scan.plan.qual,
|
||||||
(PlanState *) indexstate);
|
(PlanState *) indexstate);
|
||||||
indexstate->indxqual = (List *)
|
|
||||||
ExecInitExpr((Expr *) node->indxqual,
|
|
||||||
(PlanState *) indexstate);
|
|
||||||
indexstate->indxqualorig = (List *)
|
indexstate->indxqualorig = (List *)
|
||||||
ExecInitExpr((Expr *) node->indxqualorig,
|
ExecInitExpr((Expr *) node->indxqualorig,
|
||||||
(PlanState *) indexstate);
|
(PlanState *) indexstate);
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/include/nodes/execnodes.h,v 1.111 2004/01/22 02:23:21 tgl Exp $
|
* $PostgreSQL: pgsql/src/include/nodes/execnodes.h,v 1.112 2004/02/28 19:46:06 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
@ -765,8 +765,10 @@ typedef ScanState SeqScanState;
|
||||||
/* ----------------
|
/* ----------------
|
||||||
* IndexScanState information
|
* IndexScanState information
|
||||||
*
|
*
|
||||||
|
* indxqualorig execution state for indxqualorig expressions
|
||||||
* NumIndices number of indices in this scan
|
* NumIndices number of indices in this scan
|
||||||
* IndexPtr current index in use
|
* IndexPtr current index in use
|
||||||
|
* MarkIndexPtr IndexPtr for marked scan point
|
||||||
* ScanKeys Skey structures to scan index rels
|
* ScanKeys Skey structures to scan index rels
|
||||||
* NumScanKeys array of no of keys in each Skey struct
|
* NumScanKeys array of no of keys in each Skey struct
|
||||||
* RuntimeKeyInfo array of array of exprstates for Skeys
|
* RuntimeKeyInfo array of array of exprstates for Skeys
|
||||||
|
@ -783,7 +785,6 @@ typedef ScanState SeqScanState;
|
||||||
typedef struct IndexScanState
|
typedef struct IndexScanState
|
||||||
{
|
{
|
||||||
ScanState ss; /* its first field is NodeTag */
|
ScanState ss; /* its first field is NodeTag */
|
||||||
List *indxqual;
|
|
||||||
List *indxqualorig;
|
List *indxqualorig;
|
||||||
int iss_NumIndices;
|
int iss_NumIndices;
|
||||||
int iss_IndexPtr;
|
int iss_IndexPtr;
|
||||||
|
|
Loading…
Reference in New Issue