diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2005-05-05 03:37:23 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2005-05-05 03:37:23 +0000 |
commit | db70a312941d7e20d9fff6bbe7d6e9ccf59294e0 (patch) | |
tree | ee82db47b021168c44124d4aa02f1c157d1b6062 /src/include/nodes/execnodes.h | |
parent | e6e7e64345e882835017e0bbc7e14e72abf00f69 (diff) |
Adjust nodeBitmapIndexscan to keep the target index opened from plan
startup to end, rather than re-opening it in each MultiExecBitmapIndexScan
call. I had foolishly thought that opening/closing wouldn't be much
more expensive than a rescan call, but that was sheer brain fade.
This seems to fix about half of the performance lossage reported by
Sergey Koposov. I'm still not sure where the other half went.
Diffstat (limited to 'src/include/nodes/execnodes.h')
-rw-r--r-- | src/include/nodes/execnodes.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h index 1280aff0ca0..2d74d25a361 100644 --- a/src/include/nodes/execnodes.h +++ b/src/include/nodes/execnodes.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/nodes/execnodes.h,v 1.130 2005/04/28 21:47:17 tgl Exp $ + * $PostgreSQL: pgsql/src/include/nodes/execnodes.h,v 1.131 2005/05/05 03:37:23 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -897,6 +897,8 @@ typedef struct IndexScanState * that will be evaluated at runtime * RuntimeContext expr context for evaling runtime Skeys * RuntimeKeysReady true if runtime Skeys have been computed + * RelationDesc index relation descriptor + * ScanDesc index scan descriptor * ---------------- */ typedef struct BitmapIndexScanState @@ -908,6 +910,8 @@ typedef struct BitmapIndexScanState ExprState **biss_RuntimeKeyInfo; ExprContext *biss_RuntimeContext; bool biss_RuntimeKeysReady; + Relation biss_RelationDesc; + IndexScanDesc biss_ScanDesc; } BitmapIndexScanState; /* ---------------- |