diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2000-03-14 23:52:01 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2000-03-14 23:52:01 +0000 |
commit | 34235a295b307d3c50b2a74b20936f01b4ba76be (patch) | |
tree | 4accf8dd3e60c2cde3d3da5948e583c6d5cf921c /src/backend/access/index/genam.c | |
parent | 64568100787a5d03d036e70b32147385a35245e2 (diff) | |
download | postgresql-34235a295b307d3c50b2a74b20936f01b4ba76be.tar.gz postgresql-34235a295b307d3c50b2a74b20936f01b4ba76be.zip |
Cache fmgr lookup data for index's getnext() function in IndexScanDesc,
so that the fmgr lookup only has to happen once per index scan and not
once per tuple. Seems to save 5% or so of CPU time for an indexscan.
Diffstat (limited to 'src/backend/access/index/genam.c')
-rw-r--r-- | src/backend/access/index/genam.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/backend/access/index/genam.c b/src/backend/access/index/genam.c index 103f02ecc0c..1bd02f839ad 100644 --- a/src/backend/access/index/genam.c +++ b/src/backend/access/index/genam.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/index/genam.c,v 1.23 2000/01/26 05:55:57 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/index/genam.c,v 1.24 2000/03/14 23:52:01 tgl Exp $ * * NOTES * many of the old access method routines have been turned into @@ -114,6 +114,9 @@ RelationGetIndexScan(Relation relation, ItemPointerSetInvalid(&scan->currentMarkData); ItemPointerSetInvalid(&scan->nextMarkData); + /* mark cached function lookup data invalid; it will be set on first use */ + scan->fn_getnext.fn_oid = InvalidOid; + if (numberOfKeys > 0) scan->keyData = (ScanKey) palloc(sizeof(ScanKeyData) * numberOfKeys); else |