Commit 9be7ea08 authored by Tom Lane's avatar Tom Lane

Remove unneeded indxqual field in IndexScanState, and the useless work

spent initializing it during indexscan startup.
parent 303f4649
...@@ -8,7 +8,7 @@ ...@@ -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) ...@@ -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) ...@@ -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 @@ ...@@ -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; ...@@ -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; ...@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment