diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2005-03-27 23:53:05 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2005-03-27 23:53:05 +0000 |
| commit | bf3dbb5881e9b886ee9fe84bca2153c698eea885 (patch) | |
| tree | eaaf385364adebc2489c72f30e533f5fe60748ec /src/include/access/relscan.h | |
| parent | 351519affcffb636de68c4872521c9ac22faa228 (diff) | |
| download | postgresql-bf3dbb5881e9b886ee9fe84bca2153c698eea885.tar.gz | |
First steps towards index scans with heap access decoupled from index
access: define new index access method functions 'amgetmulti' that can
fetch multiple TIDs per call. (The functions exist but are totally
untested as yet.) Since I was modifying pg_am anyway, remove the
no-longer-needed 'rel' parameter from amcostestimate functions, and
also remove the vestigial amowner column that was creating useless
work for Alvaro's shared-object-dependencies project.
Initdb forced due to changes in pg_am.
Diffstat (limited to 'src/include/access/relscan.h')
| -rw-r--r-- | src/include/access/relscan.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/include/access/relscan.h b/src/include/access/relscan.h index a4ad6e3135..1cb40445ea 100644 --- a/src/include/access/relscan.h +++ b/src/include/access/relscan.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/access/relscan.h,v 1.37 2004/12/31 22:03:21 pgsql Exp $ + * $PostgreSQL: pgsql/src/include/access/relscan.h,v 1.38 2005/03/27 23:53:04 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -38,7 +38,12 @@ typedef struct HeapScanDescData typedef HeapScanDescData *HeapScanDesc; - +/* + * We use the same IndexScanDescData structure for both amgettuple-based + * and amgetmulti-based index scans. Which one is being used can be told + * by looking at fn_getnext and fn_getmulti, only one of which will be + * initialized. Some fields are only relevant in amgettuple-based scans. + */ typedef struct IndexScanDescData { /* scan parameters */ @@ -71,6 +76,7 @@ typedef struct IndexScanDescData /* NB: if xs_cbuf is not InvalidBuffer, we hold a pin on that buffer */ FmgrInfo fn_getnext; /* cached lookup info for AM's getnext fn */ + FmgrInfo fn_getmulti; /* cached lookup info for AM's getmulti fn */ /* * If keys_are_unique and got_tuple are both true, we stop calling the |
