diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2004-02-28 19:46:06 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2004-02-28 19:46:06 +0000 |
commit | 9be7ea088ce155301264f3fe9b0a95673a7b2566 (patch) | |
tree | 1b1efe9ce4bb012f4b9c141bc54f37ea9f93e080 /src | |
parent | 303f4649a2c962c1879cf54ec932f5684765597d (diff) | |
download | postgresql-9be7ea088ce155301264f3fe9b0a95673a7b2566.tar.gz postgresql-9be7ea088ce155301264f3fe9b0a95673a7b2566.zip |
Remove unneeded indxqual field in IndexScanState, and the useless work
spent initializing it during indexscan startup.
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/executor/nodeIndexscan.c | 11 | ||||
-rw-r--r-- | src/include/nodes/execnodes.h | 5 |
2 files changed, 10 insertions, 6 deletions
diff --git a/src/backend/executor/nodeIndexscan.c b/src/backend/executor/nodeIndexscan.c index b6d6e5ac21e..347096a20eb 100644 --- a/src/backend/executor/nodeIndexscan.c +++ b/src/backend/executor/nodeIndexscan.c @@ -8,7 +8,7 @@ * * * 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 + * + * 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 *) ExecInitExpr((Expr *) node->scan.plan.targetlist, @@ -676,9 +682,6 @@ ExecInitIndexScan(IndexScan *node, EState *estate) indexstate->ss.ps.qual = (List *) ExecInitExpr((Expr *) node->scan.plan.qual, (PlanState *) indexstate); - indexstate->indxqual = (List *) - ExecInitExpr((Expr *) node->indxqual, - (PlanState *) indexstate); indexstate->indxqualorig = (List *) ExecInitExpr((Expr *) node->indxqualorig, (PlanState *) indexstate); diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h index 50db072f41a..c919dccea9a 100644 --- a/src/include/nodes/execnodes.h +++ b/src/include/nodes/execnodes.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group * 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 * + * indxqualorig execution state for indxqualorig expressions * NumIndices number of indices in this scan * IndexPtr current index in use + * MarkIndexPtr IndexPtr for marked scan point * ScanKeys Skey structures to scan index rels * NumScanKeys array of no of keys in each Skey struct * RuntimeKeyInfo array of array of exprstates for Skeys @@ -783,7 +785,6 @@ typedef ScanState SeqScanState; typedef struct IndexScanState { ScanState ss; /* its first field is NodeTag */ - List *indxqual; List *indxqualorig; int iss_NumIndices; int iss_IndexPtr; |