1 /*-------------------------------------------------------------------------
2  *
3  * pg_am.h
4  *	  definition of the "access method" system catalog (pg_am)
5  *
6  *
7  * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
8  * Portions Copyright (c) 1994, Regents of the University of California
9  *
10  * src/include/catalog/pg_am.h
11  *
12  * NOTES
13  *	  The Catalog.pm module reads this file and derives schema
14  *	  information.
15  *
16  *-------------------------------------------------------------------------
17  */
18 #ifndef PG_AM_H
19 #define PG_AM_H
20 
21 #include "catalog/genbki.h"
22 #include "catalog/pg_am_d.h"
23 
24 /* ----------------
25  *		pg_am definition.  cpp turns this into
26  *		typedef struct FormData_pg_am
27  * ----------------
28  */
29 CATALOG(pg_am,2601,AccessMethodRelationId)
30 {
31 	Oid			oid;			/* oid */
32 
33 	/* access method name */
34 	NameData	amname;
35 
36 	/* handler function */
37 	regproc		amhandler BKI_LOOKUP(pg_proc);
38 
39 	/* see AMTYPE_xxx constants below */
40 	char		amtype;
41 } FormData_pg_am;
42 
43 /* ----------------
44  *		Form_pg_am corresponds to a pointer to a tuple with
45  *		the format of pg_am relation.
46  * ----------------
47  */
48 typedef FormData_pg_am *Form_pg_am;
49 
50 DECLARE_UNIQUE_INDEX(pg_am_name_index, 2651, on pg_am using btree(amname name_ops));
51 #define AmNameIndexId  2651
52 DECLARE_UNIQUE_INDEX_PKEY(pg_am_oid_index, 2652, on pg_am using btree(oid oid_ops));
53 #define AmOidIndexId  2652
54 
55 #ifdef EXPOSE_TO_CLIENT_CODE
56 
57 /*
58  * Allowed values for amtype
59  */
60 #define AMTYPE_INDEX					'i' /* index access method */
61 #define AMTYPE_TABLE					't' /* table access method */
62 
63 #endif							/* EXPOSE_TO_CLIENT_CODE */
64 
65 #endif							/* PG_AM_H */
66