PostgreSQL Source Code  git master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
pg_range.h
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * pg_range.h
4  * definition of the system "range" relation (pg_range)
5  * along with the relation's initial contents.
6  *
7  *
8  * Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group
9  * Portions Copyright (c) 1994, Regents of the University of California
10  *
11  * src/include/catalog/pg_range.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_RANGE_H
23 #define PG_RANGE_H
24 
25 #include "catalog/genbki.h"
26 
27 /* ----------------
28  * pg_range definition. cpp turns this into
29  * typedef struct FormData_pg_range
30  * ----------------
31  */
32 #define RangeRelationId 3541
33 
34 CATALOG(pg_range,3541) BKI_WITHOUT_OIDS
35 {
36  Oid rngtypid; /* OID of owning range type */
37  Oid rngsubtype; /* OID of range's element type (subtype) */
38  Oid rngcollation; /* collation for this range type, or 0 */
39  Oid rngsubopc; /* subtype's btree opclass */
40  regproc rngcanonical; /* canonicalize range, or 0 */
41  regproc rngsubdiff; /* subtype difference as a float8, or 0 */
43 
44 /* ----------------
45  * Form_pg_range corresponds to a pointer to a tuple with
46  * the format of pg_range relation.
47  * ----------------
48  */
50 
51 /* ----------------
52  * compiler constants for pg_range
53  * ----------------
54  */
55 #define Natts_pg_range 6
56 #define Anum_pg_range_rngtypid 1
57 #define Anum_pg_range_rngsubtype 2
58 #define Anum_pg_range_rngcollation 3
59 #define Anum_pg_range_rngsubopc 4
60 #define Anum_pg_range_rngcanonical 5
61 #define Anum_pg_range_rngsubdiff 6
62 
63 
64 /* ----------------
65  * initial contents of pg_range
66  * ----------------
67  */
68 DATA(insert ( 3904 23 0 1978 int4range_canonical int4range_subdiff));
69 DATA(insert ( 3906 1700 0 3125 - numrange_subdiff));
70 DATA(insert ( 3908 1114 0 3128 - tsrange_subdiff));
71 DATA(insert ( 3910 1184 0 3127 - tstzrange_subdiff));
72 DATA(insert ( 3912 1082 0 3122 daterange_canonical daterange_subdiff));
73 DATA(insert ( 3926 20 0 3124 int8range_canonical int8range_subdiff));
74 
75 
76 /*
77  * prototypes for functions in pg_range.c
78  */
79 
80 extern void RangeCreate(Oid rangeTypeOid, Oid rangeSubType, Oid rangeCollation,
81  Oid rangeSubOpclass, RegProcedure rangeCanonical,
82  RegProcedure rangeSubDiff);
83 extern void RangeDelete(Oid rangeTypeOid);
84 
85 #endif /* PG_RANGE_H */
Datum tsrange_subdiff(PG_FUNCTION_ARGS)
Definition: rangetypes.c:1504
FormData_pg_range * Form_pg_range
Definition: pg_range.h:49
Datum int4range_subdiff(PG_FUNCTION_ARGS)
Definition: rangetypes.c:1461
FormData_pg_range
Definition: pg_range.h:42
Datum tstzrange_subdiff(PG_FUNCTION_ARGS)
Definition: rangetypes.c:1515
regproc RegProcedure
Definition: c.h:389
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
Datum int8range_canonical(PG_FUNCTION_ARGS)
Definition: rangetypes.c:1387
Datum daterange_canonical(PG_FUNCTION_ARGS)
Definition: rangetypes.c:1418
#define BKI_WITHOUT_OIDS
Definition: genbki.h:28
Datum int4range_canonical(PG_FUNCTION_ARGS)
Definition: rangetypes.c:1356
Datum int8range_subdiff(PG_FUNCTION_ARGS)
Definition: rangetypes.c:1470
CATALOG(pg_range, 3541) BKI_WITHOUT_OIDS
Definition: pg_range.h:34
Oid regproc
Definition: c.h:388
DATA(insert(3904 23 0 1978 int4range_canonical int4range_subdiff))
void RangeDelete(Oid rangeTypeOid)
Definition: pg_range.c:113
Datum daterange_subdiff(PG_FUNCTION_ARGS)
Definition: rangetypes.c:1495
Datum numrange_subdiff(PG_FUNCTION_ARGS)
Definition: rangetypes.c:1479