1 /*-------------------------------------------------------------------------
2  *
3  * pg_type_d.h
4  *    Macro definitions for pg_type
5  *
6  * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
7  * Portions Copyright (c) 1994, Regents of the University of California
8  *
9  * NOTES
10  *  ******************************
11  *  *** DO NOT EDIT THIS FILE! ***
12  *  ******************************
13  *
14  *  It has been GENERATED by src/backend/catalog/genbki.pl
15  *
16  *-------------------------------------------------------------------------
17  */
18 #ifndef PG_TYPE_D_H
19 #define PG_TYPE_D_H
20 
21 #define TypeRelationId 1247
22 #define TypeRelation_Rowtype_Id 71
23 
24 #define Anum_pg_type_oid 1
25 #define Anum_pg_type_typname 2
26 #define Anum_pg_type_typnamespace 3
27 #define Anum_pg_type_typowner 4
28 #define Anum_pg_type_typlen 5
29 #define Anum_pg_type_typbyval 6
30 #define Anum_pg_type_typtype 7
31 #define Anum_pg_type_typcategory 8
32 #define Anum_pg_type_typispreferred 9
33 #define Anum_pg_type_typisdefined 10
34 #define Anum_pg_type_typdelim 11
35 #define Anum_pg_type_typrelid 12
36 #define Anum_pg_type_typsubscript 13
37 #define Anum_pg_type_typelem 14
38 #define Anum_pg_type_typarray 15
39 #define Anum_pg_type_typinput 16
40 #define Anum_pg_type_typoutput 17
41 #define Anum_pg_type_typreceive 18
42 #define Anum_pg_type_typsend 19
43 #define Anum_pg_type_typmodin 20
44 #define Anum_pg_type_typmodout 21
45 #define Anum_pg_type_typanalyze 22
46 #define Anum_pg_type_typalign 23
47 #define Anum_pg_type_typstorage 24
48 #define Anum_pg_type_typnotnull 25
49 #define Anum_pg_type_typbasetype 26
50 #define Anum_pg_type_typtypmod 27
51 #define Anum_pg_type_typndims 28
52 #define Anum_pg_type_typcollation 29
53 #define Anum_pg_type_typdefaultbin 30
54 #define Anum_pg_type_typdefault 31
55 #define Anum_pg_type_typacl 32
56 
57 #define Natts_pg_type 32
58 
59 
60 /*
61  * macros for values of poor-mans-enumerated-type columns
62  */
63 #define  TYPTYPE_BASE		'b' /* base type (ordinary scalar type) */
64 #define  TYPTYPE_COMPOSITE	'c' /* composite (e.g., table's rowtype) */
65 #define  TYPTYPE_DOMAIN		'd' /* domain over another type */
66 #define  TYPTYPE_ENUM		'e' /* enumerated type */
67 #define  TYPTYPE_MULTIRANGE	'm' /* multirange type */
68 #define  TYPTYPE_PSEUDO		'p' /* pseudo-type */
69 #define  TYPTYPE_RANGE		'r' /* range type */
70 
71 #define  TYPCATEGORY_INVALID	'\0'	/* not an allowed category */
72 #define  TYPCATEGORY_ARRAY		'A'
73 #define  TYPCATEGORY_BOOLEAN	'B'
74 #define  TYPCATEGORY_COMPOSITE	'C'
75 #define  TYPCATEGORY_DATETIME	'D'
76 #define  TYPCATEGORY_ENUM		'E'
77 #define  TYPCATEGORY_GEOMETRIC	'G'
78 #define  TYPCATEGORY_NETWORK	'I' /* think INET */
79 #define  TYPCATEGORY_NUMERIC	'N'
80 #define  TYPCATEGORY_PSEUDOTYPE 'P'
81 #define  TYPCATEGORY_RANGE		'R'
82 #define  TYPCATEGORY_STRING		'S'
83 #define  TYPCATEGORY_TIMESPAN	'T'
84 #define  TYPCATEGORY_USER		'U'
85 #define  TYPCATEGORY_BITSTRING	'V' /* er ... "varbit"? */
86 #define  TYPCATEGORY_UNKNOWN	'X'
87 
88 #define  TYPALIGN_CHAR			'c' /* char alignment (i.e. unaligned) */
89 #define  TYPALIGN_SHORT			's' /* short alignment (typically 2 bytes) */
90 #define  TYPALIGN_INT			'i' /* int alignment (typically 4 bytes) */
91 #define  TYPALIGN_DOUBLE		'd' /* double alignment (often 8 bytes) */
92 
93 #define  TYPSTORAGE_PLAIN		'p' /* type not prepared for toasting */
94 #define  TYPSTORAGE_EXTERNAL	'e' /* toastable, don't try to compress */
95 #define  TYPSTORAGE_EXTENDED	'x' /* fully toastable */
96 #define  TYPSTORAGE_MAIN		'm' /* like 'x' but try to store inline */
97 
98 /* Is a type OID a polymorphic pseudotype?	(Beware of multiple evaluation) */
99 #define IsPolymorphicType(typid)  \
100 	(IsPolymorphicTypeFamily1(typid) || \
101 	 IsPolymorphicTypeFamily2(typid))
102 
103 /* Code not part of polymorphic type resolution should not use these macros: */
104 #define IsPolymorphicTypeFamily1(typid)  \
105 	((typid) == ANYELEMENTOID || \
106 	 (typid) == ANYARRAYOID || \
107 	 (typid) == ANYNONARRAYOID || \
108 	 (typid) == ANYENUMOID || \
109 	 (typid) == ANYRANGEOID || \
110 	 (typid) == ANYMULTIRANGEOID)
111 
112 #define IsPolymorphicTypeFamily2(typid)  \
113 	((typid) == ANYCOMPATIBLEOID || \
114 	 (typid) == ANYCOMPATIBLEARRAYOID || \
115 	 (typid) == ANYCOMPATIBLENONARRAYOID || \
116 	 (typid) == ANYCOMPATIBLERANGEOID || \
117 	 (typid) == ANYCOMPATIBLEMULTIRANGEOID)
118 
119 /* Is this a "true" array type?  (Requires fmgroids.h) */
120 #define IsTrueArrayType(typeForm)  \
121 	(OidIsValid((typeForm)->typelem) && \
122 	 (typeForm)->typsubscript == F_ARRAY_SUBSCRIPT_HANDLER)
123 
124 /*
125  * Backwards compatibility for ancient random spellings of pg_type OID macros.
126  * Don't use these names in new code.
127  */
128 #define CASHOID	MONEYOID
129 #define LSNOID	PG_LSNOID
130 
131 #define BOOLOID 16
132 #define BYTEAOID 17
133 #define CHAROID 18
134 #define NAMEOID 19
135 #define INT8OID 20
136 #define INT2OID 21
137 #define INT2VECTOROID 22
138 #define INT4OID 23
139 #define REGPROCOID 24
140 #define TEXTOID 25
141 #define OIDOID 26
142 #define TIDOID 27
143 #define XIDOID 28
144 #define CIDOID 29
145 #define OIDVECTOROID 30
146 #define JSONOID 114
147 #define XMLOID 142
148 #define PG_NODE_TREEOID 194
149 #define PG_NDISTINCTOID 3361
150 #define PG_DEPENDENCIESOID 3402
151 #define PG_MCV_LISTOID 5017
152 #define PG_DDL_COMMANDOID 32
153 #define XID8OID 5069
154 #define POINTOID 600
155 #define LSEGOID 601
156 #define PATHOID 602
157 #define BOXOID 603
158 #define POLYGONOID 604
159 #define LINEOID 628
160 #define FLOAT4OID 700
161 #define FLOAT8OID 701
162 #define UNKNOWNOID 705
163 #define CIRCLEOID 718
164 #define MONEYOID 790
165 #define MACADDROID 829
166 #define INETOID 869
167 #define CIDROID 650
168 #define MACADDR8OID 774
169 #define ACLITEMOID 1033
170 #define BPCHAROID 1042
171 #define VARCHAROID 1043
172 #define DATEOID 1082
173 #define TIMEOID 1083
174 #define TIMESTAMPOID 1114
175 #define TIMESTAMPTZOID 1184
176 #define INTERVALOID 1186
177 #define TIMETZOID 1266
178 #define BITOID 1560
179 #define VARBITOID 1562
180 #define NUMERICOID 1700
181 #define REFCURSOROID 1790
182 #define REGPROCEDUREOID 2202
183 #define REGOPEROID 2203
184 #define REGOPERATOROID 2204
185 #define REGCLASSOID 2205
186 #define REGCOLLATIONOID 4191
187 #define REGTYPEOID 2206
188 #define REGROLEOID 4096
189 #define REGNAMESPACEOID 4089
190 #define UUIDOID 2950
191 #define PG_LSNOID 3220
192 #define TSVECTOROID 3614
193 #define GTSVECTOROID 3642
194 #define TSQUERYOID 3615
195 #define REGCONFIGOID 3734
196 #define REGDICTIONARYOID 3769
197 #define JSONBOID 3802
198 #define JSONPATHOID 4072
199 #define TXID_SNAPSHOTOID 2970
200 #define PG_SNAPSHOTOID 5038
201 #define INT4RANGEOID 3904
202 #define NUMRANGEOID 3906
203 #define TSRANGEOID 3908
204 #define TSTZRANGEOID 3910
205 #define DATERANGEOID 3912
206 #define INT8RANGEOID 3926
207 #define INT4MULTIRANGEOID 4451
208 #define NUMMULTIRANGEOID 4532
209 #define TSMULTIRANGEOID 4533
210 #define TSTZMULTIRANGEOID 4534
211 #define DATEMULTIRANGEOID 4535
212 #define INT8MULTIRANGEOID 4536
213 #define RECORDOID 2249
214 #define RECORDARRAYOID 2287
215 #define CSTRINGOID 2275
216 #define ANYOID 2276
217 #define ANYARRAYOID 2277
218 #define VOIDOID 2278
219 #define TRIGGEROID 2279
220 #define EVENT_TRIGGEROID 3838
221 #define LANGUAGE_HANDLEROID 2280
222 #define INTERNALOID 2281
223 #define ANYELEMENTOID 2283
224 #define ANYNONARRAYOID 2776
225 #define ANYENUMOID 3500
226 #define FDW_HANDLEROID 3115
227 #define INDEX_AM_HANDLEROID 325
228 #define TSM_HANDLEROID 3310
229 #define TABLE_AM_HANDLEROID 269
230 #define ANYRANGEOID 3831
231 #define ANYCOMPATIBLEOID 5077
232 #define ANYCOMPATIBLEARRAYOID 5078
233 #define ANYCOMPATIBLENONARRAYOID 5079
234 #define ANYCOMPATIBLERANGEOID 5080
235 #define ANYMULTIRANGEOID 4537
236 #define ANYCOMPATIBLEMULTIRANGEOID 4538
237 #define PG_BRIN_BLOOM_SUMMARYOID 4600
238 #define PG_BRIN_MINMAX_MULTI_SUMMARYOID 4601
239 #define BOOLARRAYOID 1000
240 #define BYTEAARRAYOID 1001
241 #define CHARARRAYOID 1002
242 #define NAMEARRAYOID 1003
243 #define INT8ARRAYOID 1016
244 #define INT2ARRAYOID 1005
245 #define INT2VECTORARRAYOID 1006
246 #define INT4ARRAYOID 1007
247 #define REGPROCARRAYOID 1008
248 #define TEXTARRAYOID 1009
249 #define OIDARRAYOID 1028
250 #define TIDARRAYOID 1010
251 #define XIDARRAYOID 1011
252 #define CIDARRAYOID 1012
253 #define OIDVECTORARRAYOID 1013
254 #define PG_TYPEARRAYOID 210
255 #define PG_ATTRIBUTEARRAYOID 270
256 #define PG_PROCARRAYOID 272
257 #define PG_CLASSARRAYOID 273
258 #define JSONARRAYOID 199
259 #define XMLARRAYOID 143
260 #define XID8ARRAYOID 271
261 #define POINTARRAYOID 1017
262 #define LSEGARRAYOID 1018
263 #define PATHARRAYOID 1019
264 #define BOXARRAYOID 1020
265 #define POLYGONARRAYOID 1027
266 #define LINEARRAYOID 629
267 #define FLOAT4ARRAYOID 1021
268 #define FLOAT8ARRAYOID 1022
269 #define CIRCLEARRAYOID 719
270 #define MONEYARRAYOID 791
271 #define MACADDRARRAYOID 1040
272 #define INETARRAYOID 1041
273 #define CIDRARRAYOID 651
274 #define MACADDR8ARRAYOID 775
275 #define ACLITEMARRAYOID 1034
276 #define BPCHARARRAYOID 1014
277 #define VARCHARARRAYOID 1015
278 #define DATEARRAYOID 1182
279 #define TIMEARRAYOID 1183
280 #define TIMESTAMPARRAYOID 1115
281 #define TIMESTAMPTZARRAYOID 1185
282 #define INTERVALARRAYOID 1187
283 #define TIMETZARRAYOID 1270
284 #define BITARRAYOID 1561
285 #define VARBITARRAYOID 1563
286 #define NUMERICARRAYOID 1231
287 #define REFCURSORARRAYOID 2201
288 #define REGPROCEDUREARRAYOID 2207
289 #define REGOPERARRAYOID 2208
290 #define REGOPERATORARRAYOID 2209
291 #define REGCLASSARRAYOID 2210
292 #define REGCOLLATIONARRAYOID 4192
293 #define REGTYPEARRAYOID 2211
294 #define REGROLEARRAYOID 4097
295 #define REGNAMESPACEARRAYOID 4090
296 #define UUIDARRAYOID 2951
297 #define PG_LSNARRAYOID 3221
298 #define TSVECTORARRAYOID 3643
299 #define GTSVECTORARRAYOID 3644
300 #define TSQUERYARRAYOID 3645
301 #define REGCONFIGARRAYOID 3735
302 #define REGDICTIONARYARRAYOID 3770
303 #define JSONBARRAYOID 3807
304 #define JSONPATHARRAYOID 4073
305 #define TXID_SNAPSHOTARRAYOID 2949
306 #define PG_SNAPSHOTARRAYOID 5039
307 #define INT4RANGEARRAYOID 3905
308 #define NUMRANGEARRAYOID 3907
309 #define TSRANGEARRAYOID 3909
310 #define TSTZRANGEARRAYOID 3911
311 #define DATERANGEARRAYOID 3913
312 #define INT8RANGEARRAYOID 3927
313 #define INT4MULTIRANGEARRAYOID 6150
314 #define NUMMULTIRANGEARRAYOID 6151
315 #define TSMULTIRANGEARRAYOID 6152
316 #define TSTZMULTIRANGEARRAYOID 6153
317 #define DATEMULTIRANGEARRAYOID 6155
318 #define INT8MULTIRANGEARRAYOID 6157
319 #define CSTRINGARRAYOID 1263
320 
321 #endif							/* PG_TYPE_D_H */
322