1 /*-------------------------------------------------------------------------
2  *
3  * pg_am.h
4  *	  definition of the system "access method" relation (pg_am)
5  *	  along with the relation's initial contents.
6  *
7  *
8  * Portions Copyright (c) 1996-2016, PostgreSQL Global Development Group
9  * Portions Copyright (c) 1994, Regents of the University of California
10  *
11  * src/include/catalog/pg_am.h
12  *
13  * NOTES
14  *		the genbki.pl script reads this file and generates .bki
15  *		information from the DATA() statements.
16  *
17  *		XXX do NOT break up DATA() statements into multiple lines!
18  *			the scripts are not as smart as you might think...
19  *
20  *-------------------------------------------------------------------------
21  */
22 #ifndef PG_AM_H
23 #define PG_AM_H
24 
25 #include "catalog/genbki.h"
26 
27 /* ----------------
28  *		pg_am definition.  cpp turns this into
29  *		typedef struct FormData_pg_am
30  * ----------------
31  */
32 #define AccessMethodRelationId	2601
33 
34 CATALOG(pg_am,2601)
35 {
36 	NameData	amname;			/* access method name */
37 	regproc		amhandler;		/* handler function */
38 	char		amtype;			/* see AMTYPE_xxx constants below */
39 } FormData_pg_am;
40 
41 /* ----------------
42  *		Form_pg_am corresponds to a pointer to a tuple with
43  *		the format of pg_am relation.
44  * ----------------
45  */
46 typedef FormData_pg_am *Form_pg_am;
47 
48 /* ----------------
49  *		compiler constants for pg_am
50  * ----------------
51  */
52 #define Natts_pg_am						3
53 #define Anum_pg_am_amname				1
54 #define Anum_pg_am_amhandler			2
55 #define Anum_pg_am_amtype				3
56 
57 /* ----------------
58  *		compiler constant for amtype
59  * ----------------
60  */
61 #define AMTYPE_INDEX					'i'		/* index access method */
62 
63 /* ----------------
64  *		initial contents of pg_am
65  * ----------------
66  */
67 
68 DATA(insert OID = 403 (  btree		bthandler	i ));
69 DESCR("b-tree index access method");
70 #define BTREE_AM_OID 403
71 DATA(insert OID = 405 (  hash		hashhandler i ));
72 DESCR("hash index access method");
73 #define HASH_AM_OID 405
74 DATA(insert OID = 783 (  gist		gisthandler i ));
75 DESCR("GiST index access method");
76 #define GIST_AM_OID 783
77 DATA(insert OID = 2742 (  gin		ginhandler	i ));
78 DESCR("GIN index access method");
79 #define GIN_AM_OID 2742
80 DATA(insert OID = 4000 (  spgist	spghandler	i ));
81 DESCR("SP-GiST index access method");
82 #define SPGIST_AM_OID 4000
83 DATA(insert OID = 3580 (  brin		brinhandler i ));
84 DESCR("block range index (BRIN) access method");
85 #define BRIN_AM_OID 3580
86 
87 #endif   /* PG_AM_H */
88