1 /*-------------------------------------------------------------------------
4 * definition of the "access method" system catalog (pg_am)
7 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
10 * src/include/catalog/pg_am.h
13 * The Catalog.pm module reads this file and derives schema
16 *-------------------------------------------------------------------------
21 #include "catalog/genbki.h"
22 #include "catalog/pg_am_d.h" /* IWYU pragma: export */
25 * pg_am definition. cpp turns this into
26 * typedef struct FormData_pg_am
29 CATALOG(pg_am
,2601,AccessMethodRelationId
)
33 /* access method name */
36 /* handler function */
37 regproc amhandler
BKI_LOOKUP(pg_proc
);
39 /* see AMTYPE_xxx constants below */
44 * Form_pg_am corresponds to a pointer to a tuple with
45 * the format of pg_am relation.
48 typedef FormData_pg_am
*Form_pg_am
;
50 DECLARE_UNIQUE_INDEX(pg_am_name_index
, 2651, AmNameIndexId
, pg_am
, btree(amname name_ops
));
51 DECLARE_UNIQUE_INDEX_PKEY(pg_am_oid_index
, 2652, AmOidIndexId
, pg_am
, btree(oid oid_ops
));
53 MAKE_SYSCACHE(AMNAME
, pg_am_name_index
, 4);
54 MAKE_SYSCACHE(AMOID
, pg_am_oid_index
, 4);
56 #ifdef EXPOSE_TO_CLIENT_CODE
59 * Allowed values for amtype
61 #define AMTYPE_INDEX 'i' /* index access method */
62 #define AMTYPE_TABLE 't' /* table access method */
64 #endif /* EXPOSE_TO_CLIENT_CODE */