PostgreSQL Source Code  git master
pg_opfamily.h
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * pg_opfamily.h
4  * definition of the "operator family" system catalog (pg_opfamily)
5  *
6  *
7  * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
8  * Portions Copyright (c) 1994, Regents of the University of California
9  *
10  * src/include/catalog/pg_opfamily.h
11  *
12  * NOTES
13  * The Catalog.pm module reads this file and derives schema
14  * information.
15  *
16  *-------------------------------------------------------------------------
17  */
18 #ifndef PG_OPFAMILY_H
19 #define PG_OPFAMILY_H
20 
21 #include "catalog/genbki.h"
22 #include "catalog/pg_opfamily_d.h"
23 
24 /* ----------------
25  * pg_opfamily definition. cpp turns this into
26  * typedef struct FormData_pg_opfamily
27  * ----------------
28  */
29 CATALOG(pg_opfamily,2753,OperatorFamilyRelationId)
30 {
31  Oid oid; /* oid */
32 
33  /* index access method opfamily is for */
34  Oid opfmethod BKI_LOOKUP(pg_am);
35 
36  /* name of this opfamily */
37  NameData opfname;
38 
39  /* namespace of this opfamily */
40  Oid opfnamespace BKI_DEFAULT(pg_catalog) BKI_LOOKUP(pg_namespace);
41 
42  /* opfamily owner */
43  Oid opfowner BKI_DEFAULT(POSTGRES) BKI_LOOKUP(pg_authid);
45 
46 /* ----------------
47  * Form_pg_opfamily corresponds to a pointer to a tuple with
48  * the format of pg_opfamily relation.
49  * ----------------
50  */
52 
53 DECLARE_UNIQUE_INDEX(pg_opfamily_am_name_nsp_index, 2754, OpfamilyAmNameNspIndexId, pg_opfamily, btree(opfmethod oid_ops, opfname name_ops, opfnamespace oid_ops));
54 DECLARE_UNIQUE_INDEX_PKEY(pg_opfamily_oid_index, 2755, OpfamilyOidIndexId, pg_opfamily, btree(oid oid_ops));
55 
56 MAKE_SYSCACHE(OPFAMILYAMNAMENSP, pg_opfamily_am_name_nsp_index, 8);
57 MAKE_SYSCACHE(OPFAMILYOID, pg_opfamily_oid_index, 8);
58 
59 #ifdef EXPOSE_TO_CLIENT_CODE
60 
61 /* This does not account for non-core opfamilies that might accept boolean */
62 #define IsBuiltinBooleanOpfamily(opfamily) \
63  ((opfamily) == BOOL_BTREE_FAM_OID || (opfamily) == BOOL_HASH_FAM_OID)
64 
65 #endif /* EXPOSE_TO_CLIENT_CODE */
66 
67 #endif /* PG_OPFAMILY_H */
#define BKI_LOOKUP(catalog)
Definition: genbki.h:46
#define BKI_DEFAULT(value)
Definition: genbki.h:35
DECLARE_UNIQUE_INDEX(pg_opfamily_am_name_nsp_index, 2754, OpfamilyAmNameNspIndexId, pg_opfamily, btree(opfmethod oid_ops, opfname name_ops, opfnamespace oid_ops))
CATALOG(pg_opfamily, 2753, OperatorFamilyRelationId)
Definition: pg_opfamily.h:29
FormData_pg_opfamily
Definition: pg_opfamily.h:44
FormData_pg_opfamily * Form_pg_opfamily
Definition: pg_opfamily.h:51
DECLARE_UNIQUE_INDEX_PKEY(pg_opfamily_oid_index, 2755, OpfamilyOidIndexId, pg_opfamily, btree(oid oid_ops))
MAKE_SYSCACHE(OPFAMILYAMNAMENSP, pg_opfamily_am_name_nsp_index, 8)
unsigned int Oid
Definition: postgres_ext.h:31
Definition: c.h:728