PostgreSQL Source Code  git master
pg_range.h
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * pg_range.h
4  * definition of the "range type" system catalog (pg_range)
5  *
6  *
7  * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group
8  * Portions Copyright (c) 1994, Regents of the University of California
9  *
10  * src/include/catalog/pg_range.h
11  *
12  * NOTES
13  * The Catalog.pm module reads this file and derives schema
14  * information.
15  *
16  *-------------------------------------------------------------------------
17  */
18 #ifndef PG_RANGE_H
19 #define PG_RANGE_H
20 
21 #include "catalog/genbki.h"
22 #include "catalog/pg_range_d.h"
23 
24 /* ----------------
25  * pg_range definition. cpp turns this into
26  * typedef struct FormData_pg_range
27  * ----------------
28  */
29 CATALOG(pg_range,3541,RangeRelationId) BKI_WITHOUT_OIDS
30 {
31  /* OID of owning range type */
32  Oid rngtypid BKI_LOOKUP(pg_type);
33 
34  /* OID of range's element type (subtype) */
35  Oid rngsubtype BKI_LOOKUP(pg_type);
36 
37  /* collation for this range type, or 0 */
38  Oid rngcollation BKI_DEFAULT(0);
39 
40  /* subtype's btree opclass */
41  Oid rngsubopc BKI_LOOKUP(pg_opclass);
42 
43  /* canonicalize range, or 0 */
44  regproc rngcanonical BKI_LOOKUP(pg_proc);
45 
46  /* subtype difference as a float8, or 0 */
47  regproc rngsubdiff BKI_LOOKUP(pg_proc);
49 
50 /* ----------------
51  * Form_pg_range corresponds to a pointer to a tuple with
52  * the format of pg_range relation.
53  * ----------------
54  */
56 
57 /*
58  * prototypes for functions in pg_range.c
59  */
60 
61 extern void RangeCreate(Oid rangeTypeOid, Oid rangeSubType, Oid rangeCollation,
62  Oid rangeSubOpclass, RegProcedure rangeCanonical,
63  RegProcedure rangeSubDiff);
64 extern void RangeDelete(Oid rangeTypeOid);
65 
66 #endif /* PG_RANGE_H */
FormData_pg_range * Form_pg_range
Definition: pg_range.h:55
FormData_pg_range
Definition: pg_range.h:48
regproc RegProcedure
Definition: c.h:472
void RangeCreate(Oid rangeTypeOid, Oid rangeSubType, Oid rangeCollation, Oid rangeSubOpclass, RegProcedure rangeCanonical, RegProcedure rangeSubDiff)
Definition: pg_range.c:37
unsigned int Oid
Definition: postgres_ext.h:31
#define BKI_DEFAULT(value)
Definition: genbki.h:36
#define BKI_WITHOUT_OIDS
Definition: genbki.h:28
CATALOG(pg_range, 3541, RangeRelationId) BKI_WITHOUT_OIDS
Definition: pg_range.h:29
#define BKI_LOOKUP(catalog)
Definition: genbki.h:38
Oid regproc
Definition: c.h:471
void RangeDelete(Oid rangeTypeOid)
Definition: pg_range.c:113