summaryrefslogtreecommitdiff
path: root/src/include/utils/rel.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/utils/rel.h')
-rw-r--r--src/include/utils/rel.h29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/include/utils/rel.h b/src/include/utils/rel.h
index b6a1712efa..e3f636b83d 100644
--- a/src/include/utils/rel.h
+++ b/src/include/utils/rel.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/utils/rel.h,v 1.83 2005/03/29 00:17:18 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/rel.h,v 1.84 2005/05/27 23:31:21 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -18,6 +18,7 @@
#include "catalog/pg_am.h"
#include "catalog/pg_class.h"
#include "catalog/pg_index.h"
+#include "fmgr.h"
#include "rewrite/prs2lock.h"
#include "storage/block.h"
#include "storage/relfilenode.h"
@@ -100,6 +101,27 @@ typedef struct PgStat_Info
/*
+ * Cached lookup information for the index access method functions defined
+ * by the pg_am row associated with an index relation.
+ */
+typedef struct RelationAmInfo
+{
+ FmgrInfo aminsert;
+ FmgrInfo ambeginscan;
+ FmgrInfo amgettuple;
+ FmgrInfo amgetmulti;
+ FmgrInfo amrescan;
+ FmgrInfo amendscan;
+ FmgrInfo ammarkpos;
+ FmgrInfo amrestrpos;
+ FmgrInfo ambuild;
+ FmgrInfo ambulkdelete;
+ FmgrInfo amvacuumcleanup;
+ FmgrInfo amcostestimate;
+} RelationAmInfo;
+
+
+/*
* Here are the contents of a relation cache entry.
*/
@@ -150,11 +172,10 @@ typedef struct RelationData
* that restriction.
*/
MemoryContext rd_indexcxt; /* private memory cxt for this stuff */
+ RelationAmInfo *rd_aminfo; /* lookup info for funcs found in pg_am */
Oid *rd_operator; /* OIDs of index operators */
RegProcedure *rd_support; /* OIDs of support procedures */
- struct FmgrInfo *rd_supportinfo; /* lookup info for support
- * procedures */
- /* "struct FmgrInfo" avoids need to include fmgr.h here */
+ FmgrInfo *rd_supportinfo; /* lookup info for support procedures */
List *rd_indexprs; /* index expression trees, if any */
List *rd_indpred; /* index predicate tree, if any */