PostgreSQL Source Code  git master
pg_type.h
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * pg_type.h
4  * definition of the system "type" relation (pg_type)
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_type.h
12  *
13  * NOTES
14  * the genbki.pl script reads this file and generates .bki
15  * information from the DATA() statements.
16  *
17  *-------------------------------------------------------------------------
18  */
19 #ifndef PG_TYPE_H
20 #define PG_TYPE_H
21 
22 #include "catalog/genbki.h"
23 
24 /* ----------------
25  * pg_type definition. cpp turns this into
26  * typedef struct FormData_pg_type
27  *
28  * Some of the values in a pg_type instance are copied into
29  * pg_attribute instances. Some parts of Postgres use the pg_type copy,
30  * while others use the pg_attribute copy, so they must match.
31  * See struct FormData_pg_attribute for details.
32  * ----------------
33  */
34 #define TypeRelationId 1247
35 #define TypeRelation_Rowtype_Id 71
36 
38 {
39  NameData typname; /* type name */
40  Oid typnamespace; /* OID of namespace containing this type */
41  Oid typowner; /* type owner */
42 
43  /*
44  * For a fixed-size type, typlen is the number of bytes we use to
45  * represent a value of this type, e.g. 4 for an int4. But for a
46  * variable-length type, typlen is negative. We use -1 to indicate a
47  * "varlena" type (one that has a length word), -2 to indicate a
48  * null-terminated C string.
49  */
50  int16 typlen;
51 
52  /*
53  * typbyval determines whether internal Postgres routines pass a value of
54  * this type by value or by reference. typbyval had better be false if
55  * the length is not 1, 2, or 4 (or 8 on 8-byte-Datum machines).
56  * Variable-length types are always passed by reference. Note that
57  * typbyval can be false even if the length would allow pass-by-value;
58  * this is currently true for type float4, for example.
59  */
60  bool typbyval;
61 
62  /*
63  * typtype is 'b' for a base type, 'c' for a composite type (e.g., a
64  * table's rowtype), 'd' for a domain, 'e' for an enum type, 'p' for a
65  * pseudo-type, or 'r' for a range type. (Use the TYPTYPE macros below.)
66  *
67  * If typtype is 'c', typrelid is the OID of the class' entry in pg_class.
68  */
69  char typtype;
70 
71  /*
72  * typcategory and typispreferred help the parser distinguish preferred
73  * and non-preferred coercions. The category can be any single ASCII
74  * character (but not \0). The categories used for built-in types are
75  * identified by the TYPCATEGORY macros below.
76  */
77  char typcategory; /* arbitrary type classification */
78 
79  bool typispreferred; /* is type "preferred" within its category? */
80 
81  /*
82  * If typisdefined is false, the entry is only a placeholder (forward
83  * reference). We know the type name, but not yet anything else about it.
84  */
85  bool typisdefined;
86 
87  char typdelim; /* delimiter for arrays of this type */
88 
89  Oid typrelid; /* 0 if not a composite type */
90 
91  /*
92  * If typelem is not 0 then it identifies another row in pg_type. The
93  * current type can then be subscripted like an array yielding values of
94  * type typelem. A non-zero typelem does not guarantee this type to be a
95  * "real" array type; some ordinary fixed-length types can also be
96  * subscripted (e.g., name, point). Variable-length types can *not* be
97  * turned into pseudo-arrays like that. Hence, the way to determine
98  * whether a type is a "true" array type is if:
99  *
100  * typelem != 0 and typlen == -1.
101  */
102  Oid typelem;
103 
104  /*
105  * If there is a "true" array type having this type as element type,
106  * typarray links to it. Zero if no associated "true" array type.
107  */
108  Oid typarray;
109 
110  /*
111  * I/O conversion procedures for the datatype.
112  */
113  regproc typinput; /* text format (required) */
114  regproc typoutput;
115  regproc typreceive; /* binary format (optional) */
116  regproc typsend;
117 
118  /*
119  * I/O functions for optional type modifiers.
120  */
121  regproc typmodin;
122  regproc typmodout;
123 
124  /*
125  * Custom ANALYZE procedure for the datatype (0 selects the default).
126  */
127  regproc typanalyze;
128 
129  /* ----------------
130  * typalign is the alignment required when storing a value of this
131  * type. It applies to storage on disk as well as most
132  * representations of the value inside Postgres. When multiple values
133  * are stored consecutively, such as in the representation of a
134  * complete row on disk, padding is inserted before a datum of this
135  * type so that it begins on the specified boundary. The alignment
136  * reference is the beginning of the first datum in the sequence.
137  *
138  * 'c' = CHAR alignment, ie no alignment needed.
139  * 's' = SHORT alignment (2 bytes on most machines).
140  * 'i' = INT alignment (4 bytes on most machines).
141  * 'd' = DOUBLE alignment (8 bytes on many machines, but by no means all).
142  *
143  * See include/access/tupmacs.h for the macros that compute these
144  * alignment requirements. Note also that we allow the nominal alignment
145  * to be violated when storing "packed" varlenas; the TOAST mechanism
146  * takes care of hiding that from most code.
147  *
148  * NOTE: for types used in system tables, it is critical that the
149  * size and alignment defined in pg_type agree with the way that the
150  * compiler will lay out the field in a struct representing a table row.
151  * ----------------
152  */
153  char typalign;
154 
155  /* ----------------
156  * typstorage tells if the type is prepared for toasting and what
157  * the default strategy for attributes of this type should be.
158  *
159  * 'p' PLAIN type not prepared for toasting
160  * 'e' EXTERNAL external storage possible, don't try to compress
161  * 'x' EXTENDED try to compress and store external if required
162  * 'm' MAIN like 'x' but try to keep in main tuple
163  * ----------------
164  */
165  char typstorage;
166 
167  /*
168  * This flag represents a "NOT NULL" constraint against this datatype.
169  *
170  * If true, the attnotnull column for a corresponding table column using
171  * this datatype will always enforce the NOT NULL constraint.
172  *
173  * Used primarily for domain types.
174  */
175  bool typnotnull;
176 
177  /*
178  * Domains use typbasetype to show the base (or domain) type that the
179  * domain is based on. Zero if the type is not a domain.
180  */
181  Oid typbasetype;
182 
183  /*
184  * Domains use typtypmod to record the typmod to be applied to their base
185  * type (-1 if base type does not use a typmod). -1 if this type is not a
186  * domain.
187  */
188  int32 typtypmod;
189 
190  /*
191  * typndims is the declared number of dimensions for an array domain type
192  * (i.e., typbasetype is an array type). Otherwise zero.
193  */
194  int32 typndims;
195 
196  /*
197  * Collation: 0 if type cannot use collations, DEFAULT_COLLATION_OID for
198  * collatable base types, possibly other OID for domains
199  */
200  Oid typcollation;
201 
202 #ifdef CATALOG_VARLEN /* variable-length fields start here */
203 
204  /*
205  * If typdefaultbin is not NULL, it is the nodeToString representation of
206  * a default expression for the type. Currently this is only used for
207  * domains.
208  */
209  pg_node_tree typdefaultbin;
210 
211  /*
212  * typdefault is NULL if the type has no associated default value. If
213  * typdefaultbin is not NULL, typdefault must contain a human-readable
214  * version of the default expression represented by typdefaultbin. If
215  * typdefaultbin is NULL and typdefault is not, then typdefault is the
216  * external representation of the type's default value, which may be fed
217  * to the type's input converter to produce a constant.
218  */
219  text typdefault;
220 
221  /*
222  * Access permissions
223  */
224  aclitem typacl[1];
225 #endif
227 
228 /* ----------------
229  * Form_pg_type corresponds to a pointer to a row with
230  * the format of pg_type relation.
231  * ----------------
232  */
234 
235 /* ----------------
236  * compiler constants for pg_type
237  * ----------------
238  */
239 #define Natts_pg_type 30
240 #define Anum_pg_type_typname 1
241 #define Anum_pg_type_typnamespace 2
242 #define Anum_pg_type_typowner 3
243 #define Anum_pg_type_typlen 4
244 #define Anum_pg_type_typbyval 5
245 #define Anum_pg_type_typtype 6
246 #define Anum_pg_type_typcategory 7
247 #define Anum_pg_type_typispreferred 8
248 #define Anum_pg_type_typisdefined 9
249 #define Anum_pg_type_typdelim 10
250 #define Anum_pg_type_typrelid 11
251 #define Anum_pg_type_typelem 12
252 #define Anum_pg_type_typarray 13
253 #define Anum_pg_type_typinput 14
254 #define Anum_pg_type_typoutput 15
255 #define Anum_pg_type_typreceive 16
256 #define Anum_pg_type_typsend 17
257 #define Anum_pg_type_typmodin 18
258 #define Anum_pg_type_typmodout 19
259 #define Anum_pg_type_typanalyze 20
260 #define Anum_pg_type_typalign 21
261 #define Anum_pg_type_typstorage 22
262 #define Anum_pg_type_typnotnull 23
263 #define Anum_pg_type_typbasetype 24
264 #define Anum_pg_type_typtypmod 25
265 #define Anum_pg_type_typndims 26
266 #define Anum_pg_type_typcollation 27
267 #define Anum_pg_type_typdefaultbin 28
268 #define Anum_pg_type_typdefault 29
269 #define Anum_pg_type_typacl 30
270 
271 
272 /* ----------------
273  * initial contents of pg_type
274  * ----------------
275  */
276 
277 /*
278  * Keep the following ordered by OID so that later changes can be made more
279  * easily.
280  *
281  * For types used in the system catalogs, make sure the values here match
282  * TypInfo[] in bootstrap.c.
283  */
284 
285 /* OIDS 1 - 99 */
286 DATA(insert OID = 16 ( bool PGNSP PGUID 1 t b B t t \054 0 0 1000 boolin boolout boolrecv boolsend - - - c p f 0 -1 0 0 _null_ _null_ _null_ ));
287 DESCR("boolean, 'true'/'false'");
288 #define BOOLOID 16
289 
290 DATA(insert OID = 17 ( bytea PGNSP PGUID -1 f b U f t \054 0 0 1001 byteain byteaout bytearecv byteasend - - - i x f 0 -1 0 0 _null_ _null_ _null_ ));
291 DESCR("variable-length string, binary values escaped");
292 #define BYTEAOID 17
293 
294 DATA(insert OID = 18 ( char PGNSP PGUID 1 t b S f t \054 0 0 1002 charin charout charrecv charsend - - - c p f 0 -1 0 0 _null_ _null_ _null_ ));
295 DESCR("single character");
296 #define CHAROID 18
297 
298 DATA(insert OID = 19 ( name PGNSP PGUID NAMEDATALEN f b S f t \054 0 18 1003 namein nameout namerecv namesend - - - c p f 0 -1 0 0 _null_ _null_ _null_ ));
299 DESCR("63-byte type for storing system identifiers");
300 #define NAMEOID 19
301 
302 DATA(insert OID = 20 ( int8 PGNSP PGUID 8 FLOAT8PASSBYVAL b N f t \054 0 0 1016 int8in int8out int8recv int8send - - - d p f 0 -1 0 0 _null_ _null_ _null_ ));
303 DESCR("~18 digit integer, 8-byte storage");
304 #define INT8OID 20
305 
306 DATA(insert OID = 21 ( int2 PGNSP PGUID 2 t b N f t \054 0 0 1005 int2in int2out int2recv int2send - - - s p f 0 -1 0 0 _null_ _null_ _null_ ));
307 DESCR("-32 thousand to 32 thousand, 2-byte storage");
308 #define INT2OID 21
309 
310 DATA(insert OID = 22 ( int2vector PGNSP PGUID -1 f b A f t \054 0 21 1006 int2vectorin int2vectorout int2vectorrecv int2vectorsend - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
311 DESCR("array of int2, used in system tables");
312 #define INT2VECTOROID 22
313 
314 DATA(insert OID = 23 ( int4 PGNSP PGUID 4 t b N f t \054 0 0 1007 int4in int4out int4recv int4send - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
315 DESCR("-2 billion to 2 billion integer, 4-byte storage");
316 #define INT4OID 23
317 
318 DATA(insert OID = 24 ( regproc PGNSP PGUID 4 t b N f t \054 0 0 1008 regprocin regprocout regprocrecv regprocsend - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
319 DESCR("registered procedure");
320 #define REGPROCOID 24
321 
322 DATA(insert OID = 25 ( text PGNSP PGUID -1 f b S t t \054 0 0 1009 textin textout textrecv textsend - - - i x f 0 -1 0 100 _null_ _null_ _null_ ));
323 DESCR("variable-length string, no limit specified");
324 #define TEXTOID 25
325 
326 DATA(insert OID = 26 ( oid PGNSP PGUID 4 t b N t t \054 0 0 1028 oidin oidout oidrecv oidsend - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
327 DESCR("object identifier(oid), maximum 4 billion");
328 #define OIDOID 26
329 
330 DATA(insert OID = 27 ( tid PGNSP PGUID 6 f b U f t \054 0 0 1010 tidin tidout tidrecv tidsend - - - s p f 0 -1 0 0 _null_ _null_ _null_ ));
331 DESCR("(block, offset), physical location of tuple");
332 #define TIDOID 27
333 
334 DATA(insert OID = 28 ( xid PGNSP PGUID 4 t b U f t \054 0 0 1011 xidin xidout xidrecv xidsend - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
335 DESCR("transaction id");
336 #define XIDOID 28
337 
338 DATA(insert OID = 29 ( cid PGNSP PGUID 4 t b U f t \054 0 0 1012 cidin cidout cidrecv cidsend - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
339 DESCR("command identifier type, sequence in transaction id");
340 #define CIDOID 29
341 
342 DATA(insert OID = 30 ( oidvector PGNSP PGUID -1 f b A f t \054 0 26 1013 oidvectorin oidvectorout oidvectorrecv oidvectorsend - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
343 DESCR("array of oids, used in system tables");
344 #define OIDVECTOROID 30
345 
346 /* hand-built rowtype entries for bootstrapped catalogs */
347 /* NB: OIDs assigned here must match the BKI_ROWTYPE_OID declarations */
348 
349 DATA(insert OID = 71 ( pg_type PGNSP PGUID -1 f c C f t \054 1247 0 0 record_in record_out record_recv record_send - - - d x f 0 -1 0 0 _null_ _null_ _null_ ));
350 DATA(insert OID = 75 ( pg_attribute PGNSP PGUID -1 f c C f t \054 1249 0 0 record_in record_out record_recv record_send - - - d x f 0 -1 0 0 _null_ _null_ _null_ ));
351 DATA(insert OID = 81 ( pg_proc PGNSP PGUID -1 f c C f t \054 1255 0 0 record_in record_out record_recv record_send - - - d x f 0 -1 0 0 _null_ _null_ _null_ ));
352 DATA(insert OID = 83 ( pg_class PGNSP PGUID -1 f c C f t \054 1259 0 0 record_in record_out record_recv record_send - - - d x f 0 -1 0 0 _null_ _null_ _null_ ));
353 
354 /* OIDS 100 - 199 */
355 DATA(insert OID = 114 ( json PGNSP PGUID -1 f b U f t \054 0 0 199 json_in json_out json_recv json_send - - - i x f 0 -1 0 0 _null_ _null_ _null_ ));
356 #define JSONOID 114
357 DATA(insert OID = 142 ( xml PGNSP PGUID -1 f b U f t \054 0 0 143 xml_in xml_out xml_recv xml_send - - - i x f 0 -1 0 0 _null_ _null_ _null_ ));
358 DESCR("XML content");
359 #define XMLOID 142
360 DATA(insert OID = 143 ( _xml PGNSP PGUID -1 f b A f t \054 0 142 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
361 DATA(insert OID = 199 ( _json PGNSP PGUID -1 f b A f t \054 0 114 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
362 
363 DATA(insert OID = 194 ( pg_node_tree PGNSP PGUID -1 f b S f t \054 0 0 0 pg_node_tree_in pg_node_tree_out pg_node_tree_recv pg_node_tree_send - - - i x f 0 -1 0 100 _null_ _null_ _null_ ));
364 DESCR("string representing an internal node tree");
365 #define PGNODETREEOID 194
366 
367 DATA(insert OID = 3361 ( pg_ndistinct PGNSP PGUID -1 f b S f t \054 0 0 0 pg_ndistinct_in pg_ndistinct_out pg_ndistinct_recv pg_ndistinct_send - - - i x f 0 -1 0 100 _null_ _null_ _null_ ));
368 DESCR("multivariate ndistinct coefficients");
369 #define PGNDISTINCTOID 3361
370 
371 DATA(insert OID = 3402 ( pg_dependencies PGNSP PGUID -1 f b S f t \054 0 0 0 pg_dependencies_in pg_dependencies_out pg_dependencies_recv pg_dependencies_send - - - i x f 0 -1 0 100 _null_ _null_ _null_ ));
372 DESCR("multivariate dependencies");
373 #define PGDEPENDENCIESOID 3402
374 
375 DATA(insert OID = 32 ( pg_ddl_command PGNSP PGUID SIZEOF_POINTER t p P f t \054 0 0 0 pg_ddl_command_in pg_ddl_command_out pg_ddl_command_recv pg_ddl_command_send - - - ALIGNOF_POINTER p f 0 -1 0 0 _null_ _null_ _null_ ));
376 DESCR("internal type for passing CollectedCommand");
377 #define PGDDLCOMMANDOID 32
378 
379 /* OIDS 200 - 299 */
380 
381 DATA(insert OID = 210 ( smgr PGNSP PGUID 2 t b U f t \054 0 0 0 smgrin smgrout - - - - - s p f 0 -1 0 0 _null_ _null_ _null_ ));
382 DESCR("storage manager");
383 
384 /* OIDS 300 - 399 */
385 
386 /* OIDS 400 - 499 */
387 
388 /* OIDS 500 - 599 */
389 
390 /* OIDS 600 - 699 */
391 DATA(insert OID = 600 ( point PGNSP PGUID 16 f b G f t \054 0 701 1017 point_in point_out point_recv point_send - - - d p f 0 -1 0 0 _null_ _null_ _null_ ));
392 DESCR("geometric point '(x, y)'");
393 #define POINTOID 600
394 DATA(insert OID = 601 ( lseg PGNSP PGUID 32 f b G f t \054 0 600 1018 lseg_in lseg_out lseg_recv lseg_send - - - d p f 0 -1 0 0 _null_ _null_ _null_ ));
395 DESCR("geometric line segment '(pt1,pt2)'");
396 #define LSEGOID 601
397 DATA(insert OID = 602 ( path PGNSP PGUID -1 f b G f t \054 0 0 1019 path_in path_out path_recv path_send - - - d x f 0 -1 0 0 _null_ _null_ _null_ ));
398 DESCR("geometric path '(pt1,...)'");
399 #define PATHOID 602
400 DATA(insert OID = 603 ( box PGNSP PGUID 32 f b G f t \073 0 600 1020 box_in box_out box_recv box_send - - - d p f 0 -1 0 0 _null_ _null_ _null_ ));
401 DESCR("geometric box '(lower left,upper right)'");
402 #define BOXOID 603
403 DATA(insert OID = 604 ( polygon PGNSP PGUID -1 f b G f t \054 0 0 1027 poly_in poly_out poly_recv poly_send - - - d x f 0 -1 0 0 _null_ _null_ _null_ ));
404 DESCR("geometric polygon '(pt1,...)'");
405 #define POLYGONOID 604
406 
407 DATA(insert OID = 628 ( line PGNSP PGUID 24 f b G f t \054 0 701 629 line_in line_out line_recv line_send - - - d p f 0 -1 0 0 _null_ _null_ _null_ ));
408 DESCR("geometric line");
409 #define LINEOID 628
410 DATA(insert OID = 629 ( _line PGNSP PGUID -1 f b A f t \054 0 628 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
411 
412 /* OIDS 700 - 799 */
413 
414 DATA(insert OID = 700 ( float4 PGNSP PGUID 4 FLOAT4PASSBYVAL b N f t \054 0 0 1021 float4in float4out float4recv float4send - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
415 DESCR("single-precision floating point number, 4-byte storage");
416 #define FLOAT4OID 700
417 DATA(insert OID = 701 ( float8 PGNSP PGUID 8 FLOAT8PASSBYVAL b N t t \054 0 0 1022 float8in float8out float8recv float8send - - - d p f 0 -1 0 0 _null_ _null_ _null_ ));
418 DESCR("double-precision floating point number, 8-byte storage");
419 #define FLOAT8OID 701
420 DATA(insert OID = 702 ( abstime PGNSP PGUID 4 t b D f t \054 0 0 1023 abstimein abstimeout abstimerecv abstimesend - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
421 DESCR("absolute, limited-range date and time (Unix system time)");
422 #define ABSTIMEOID 702
423 DATA(insert OID = 703 ( reltime PGNSP PGUID 4 t b T f t \054 0 0 1024 reltimein reltimeout reltimerecv reltimesend - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
424 DESCR("relative, limited-range time interval (Unix delta time)");
425 #define RELTIMEOID 703
426 DATA(insert OID = 704 ( tinterval PGNSP PGUID 12 f b T f t \054 0 0 1025 tintervalin tintervalout tintervalrecv tintervalsend - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
427 DESCR("(abstime,abstime), time interval");
428 #define TINTERVALOID 704
429 DATA(insert OID = 705 ( unknown PGNSP PGUID -2 f p X f t \054 0 0 0 unknownin unknownout unknownrecv unknownsend - - - c p f 0 -1 0 0 _null_ _null_ _null_ ));
430 DESCR("");
431 #define UNKNOWNOID 705
432 
433 DATA(insert OID = 718 ( circle PGNSP PGUID 24 f b G f t \054 0 0 719 circle_in circle_out circle_recv circle_send - - - d p f 0 -1 0 0 _null_ _null_ _null_ ));
434 DESCR("geometric circle '(center,radius)'");
435 #define CIRCLEOID 718
436 DATA(insert OID = 719 ( _circle PGNSP PGUID -1 f b A f t \054 0 718 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
437 DATA(insert OID = 790 ( money PGNSP PGUID 8 FLOAT8PASSBYVAL b N f t \054 0 0 791 cash_in cash_out cash_recv cash_send - - - d p f 0 -1 0 0 _null_ _null_ _null_ ));
438 DESCR("monetary amounts, $d,ddd.cc");
439 #define CASHOID 790
440 DATA(insert OID = 791 ( _money PGNSP PGUID -1 f b A f t \054 0 790 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
441 
442 /* OIDS 800 - 899 */
443 DATA(insert OID = 829 ( macaddr PGNSP PGUID 6 f b U f t \054 0 0 1040 macaddr_in macaddr_out macaddr_recv macaddr_send - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
444 DESCR("XX:XX:XX:XX:XX:XX, MAC address");
445 #define MACADDROID 829
446 DATA(insert OID = 869 ( inet PGNSP PGUID -1 f b I t t \054 0 0 1041 inet_in inet_out inet_recv inet_send - - - i m f 0 -1 0 0 _null_ _null_ _null_ ));
447 DESCR("IP address/netmask, host address, netmask optional");
448 #define INETOID 869
449 DATA(insert OID = 650 ( cidr PGNSP PGUID -1 f b I f t \054 0 0 651 cidr_in cidr_out cidr_recv cidr_send - - - i m f 0 -1 0 0 _null_ _null_ _null_ ));
450 DESCR("network IP address/netmask, network address");
451 #define CIDROID 650
452 DATA(insert OID = 774 ( macaddr8 PGNSP PGUID 8 f b U f t \054 0 0 775 macaddr8_in macaddr8_out macaddr8_recv macaddr8_send - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
453 DESCR("XX:XX:XX:XX:XX:XX:XX:XX, MAC address");
454 #define MACADDR8OID 774
455 
456 /* OIDS 900 - 999 */
457 
458 /* OIDS 1000 - 1099 */
459 DATA(insert OID = 1000 ( _bool PGNSP PGUID -1 f b A f t \054 0 16 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
460 DATA(insert OID = 1001 ( _bytea PGNSP PGUID -1 f b A f t \054 0 17 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
461 DATA(insert OID = 1002 ( _char PGNSP PGUID -1 f b A f t \054 0 18 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
462 DATA(insert OID = 1003 ( _name PGNSP PGUID -1 f b A f t \054 0 19 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
463 DATA(insert OID = 1005 ( _int2 PGNSP PGUID -1 f b A f t \054 0 21 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
464 #define INT2ARRAYOID 1005
465 DATA(insert OID = 1006 ( _int2vector PGNSP PGUID -1 f b A f t \054 0 22 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
466 DATA(insert OID = 1007 ( _int4 PGNSP PGUID -1 f b A f t \054 0 23 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
467 #define INT4ARRAYOID 1007
468 DATA(insert OID = 1008 ( _regproc PGNSP PGUID -1 f b A f t \054 0 24 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
469 DATA(insert OID = 1009 ( _text PGNSP PGUID -1 f b A f t \054 0 25 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 100 _null_ _null_ _null_ ));
470 #define TEXTARRAYOID 1009
471 DATA(insert OID = 1028 ( _oid PGNSP PGUID -1 f b A f t \054 0 26 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
472 #define OIDARRAYOID 1028
473 DATA(insert OID = 1010 ( _tid PGNSP PGUID -1 f b A f t \054 0 27 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
474 DATA(insert OID = 1011 ( _xid PGNSP PGUID -1 f b A f t \054 0 28 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
475 DATA(insert OID = 1012 ( _cid PGNSP PGUID -1 f b A f t \054 0 29 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
476 DATA(insert OID = 1013 ( _oidvector PGNSP PGUID -1 f b A f t \054 0 30 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
477 DATA(insert OID = 1014 ( _bpchar PGNSP PGUID -1 f b A f t \054 0 1042 0 array_in array_out array_recv array_send bpchartypmodin bpchartypmodout array_typanalyze i x f 0 -1 0 100 _null_ _null_ _null_ ));
478 DATA(insert OID = 1015 ( _varchar PGNSP PGUID -1 f b A f t \054 0 1043 0 array_in array_out array_recv array_send varchartypmodin varchartypmodout array_typanalyze i x f 0 -1 0 100 _null_ _null_ _null_ ));
479 DATA(insert OID = 1016 ( _int8 PGNSP PGUID -1 f b A f t \054 0 20 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
480 DATA(insert OID = 1017 ( _point PGNSP PGUID -1 f b A f t \054 0 600 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
481 DATA(insert OID = 1018 ( _lseg PGNSP PGUID -1 f b A f t \054 0 601 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
482 DATA(insert OID = 1019 ( _path PGNSP PGUID -1 f b A f t \054 0 602 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
483 DATA(insert OID = 1020 ( _box PGNSP PGUID -1 f b A f t \073 0 603 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
484 DATA(insert OID = 1021 ( _float4 PGNSP PGUID -1 f b A f t \054 0 700 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
485 #define FLOAT4ARRAYOID 1021
486 DATA(insert OID = 1022 ( _float8 PGNSP PGUID -1 f b A f t \054 0 701 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
487 DATA(insert OID = 1023 ( _abstime PGNSP PGUID -1 f b A f t \054 0 702 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
488 DATA(insert OID = 1024 ( _reltime PGNSP PGUID -1 f b A f t \054 0 703 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
489 DATA(insert OID = 1025 ( _tinterval PGNSP PGUID -1 f b A f t \054 0 704 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
490 DATA(insert OID = 1027 ( _polygon PGNSP PGUID -1 f b A f t \054 0 604 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
491 DATA(insert OID = 1033 ( aclitem PGNSP PGUID 12 f b U f t \054 0 0 1034 aclitemin aclitemout - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
492 DESCR("access control list");
493 #define ACLITEMOID 1033
494 DATA(insert OID = 1034 ( _aclitem PGNSP PGUID -1 f b A f t \054 0 1033 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
495 DATA(insert OID = 1040 ( _macaddr PGNSP PGUID -1 f b A f t \054 0 829 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
496 DATA(insert OID = 775 ( _macaddr8 PGNSP PGUID -1 f b A f t \054 0 774 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
497 DATA(insert OID = 1041 ( _inet PGNSP PGUID -1 f b A f t \054 0 869 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
498 DATA(insert OID = 651 ( _cidr PGNSP PGUID -1 f b A f t \054 0 650 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
499 DATA(insert OID = 1263 ( _cstring PGNSP PGUID -1 f b A f t \054 0 2275 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
500 #define CSTRINGARRAYOID 1263
501 
502 DATA(insert OID = 1042 ( bpchar PGNSP PGUID -1 f b S f t \054 0 0 1014 bpcharin bpcharout bpcharrecv bpcharsend bpchartypmodin bpchartypmodout - i x f 0 -1 0 100 _null_ _null_ _null_ ));
503 DESCR("char(length), blank-padded string, fixed storage length");
504 #define BPCHAROID 1042
505 DATA(insert OID = 1043 ( varchar PGNSP PGUID -1 f b S f t \054 0 0 1015 varcharin varcharout varcharrecv varcharsend varchartypmodin varchartypmodout - i x f 0 -1 0 100 _null_ _null_ _null_ ));
506 DESCR("varchar(length), non-blank-padded string, variable storage length");
507 #define VARCHAROID 1043
508 
509 DATA(insert OID = 1082 ( date PGNSP PGUID 4 t b D f t \054 0 0 1182 date_in date_out date_recv date_send - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
510 DESCR("date");
511 #define DATEOID 1082
512 DATA(insert OID = 1083 ( time PGNSP PGUID 8 FLOAT8PASSBYVAL b D f t \054 0 0 1183 time_in time_out time_recv time_send timetypmodin timetypmodout - d p f 0 -1 0 0 _null_ _null_ _null_ ));
513 DESCR("time of day");
514 #define TIMEOID 1083
515 
516 /* OIDS 1100 - 1199 */
517 DATA(insert OID = 1114 ( timestamp PGNSP PGUID 8 FLOAT8PASSBYVAL b D f t \054 0 0 1115 timestamp_in timestamp_out timestamp_recv timestamp_send timestamptypmodin timestamptypmodout - d p f 0 -1 0 0 _null_ _null_ _null_ ));
518 DESCR("date and time");
519 #define TIMESTAMPOID 1114
520 DATA(insert OID = 1115 ( _timestamp PGNSP PGUID -1 f b A f t \054 0 1114 0 array_in array_out array_recv array_send timestamptypmodin timestamptypmodout array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
521 DATA(insert OID = 1182 ( _date PGNSP PGUID -1 f b A f t \054 0 1082 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
522 DATA(insert OID = 1183 ( _time PGNSP PGUID -1 f b A f t \054 0 1083 0 array_in array_out array_recv array_send timetypmodin timetypmodout array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
523 DATA(insert OID = 1184 ( timestamptz PGNSP PGUID 8 FLOAT8PASSBYVAL b D t t \054 0 0 1185 timestamptz_in timestamptz_out timestamptz_recv timestamptz_send timestamptztypmodin timestamptztypmodout - d p f 0 -1 0 0 _null_ _null_ _null_ ));
524 DESCR("date and time with time zone");
525 #define TIMESTAMPTZOID 1184
526 DATA(insert OID = 1185 ( _timestamptz PGNSP PGUID -1 f b A f t \054 0 1184 0 array_in array_out array_recv array_send timestamptztypmodin timestamptztypmodout array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
527 DATA(insert OID = 1186 ( interval PGNSP PGUID 16 f b T t t \054 0 0 1187 interval_in interval_out interval_recv interval_send intervaltypmodin intervaltypmodout - d p f 0 -1 0 0 _null_ _null_ _null_ ));
528 DESCR("@ <number> <units>, time interval");
529 #define INTERVALOID 1186
530 DATA(insert OID = 1187 ( _interval PGNSP PGUID -1 f b A f t \054 0 1186 0 array_in array_out array_recv array_send intervaltypmodin intervaltypmodout array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
531 
532 /* OIDS 1200 - 1299 */
533 DATA(insert OID = 1231 ( _numeric PGNSP PGUID -1 f b A f t \054 0 1700 0 array_in array_out array_recv array_send numerictypmodin numerictypmodout array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
534 DATA(insert OID = 1266 ( timetz PGNSP PGUID 12 f b D f t \054 0 0 1270 timetz_in timetz_out timetz_recv timetz_send timetztypmodin timetztypmodout - d p f 0 -1 0 0 _null_ _null_ _null_ ));
535 DESCR("time of day with time zone");
536 #define TIMETZOID 1266
537 DATA(insert OID = 1270 ( _timetz PGNSP PGUID -1 f b A f t \054 0 1266 0 array_in array_out array_recv array_send timetztypmodin timetztypmodout array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
538 
539 /* OIDS 1500 - 1599 */
540 DATA(insert OID = 1560 ( bit PGNSP PGUID -1 f b V f t \054 0 0 1561 bit_in bit_out bit_recv bit_send bittypmodin bittypmodout - i x f 0 -1 0 0 _null_ _null_ _null_ ));
541 DESCR("fixed-length bit string");
542 #define BITOID 1560
543 DATA(insert OID = 1561 ( _bit PGNSP PGUID -1 f b A f t \054 0 1560 0 array_in array_out array_recv array_send bittypmodin bittypmodout array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
544 DATA(insert OID = 1562 ( varbit PGNSP PGUID -1 f b V t t \054 0 0 1563 varbit_in varbit_out varbit_recv varbit_send varbittypmodin varbittypmodout - i x f 0 -1 0 0 _null_ _null_ _null_ ));
545 DESCR("variable-length bit string");
546 #define VARBITOID 1562
547 DATA(insert OID = 1563 ( _varbit PGNSP PGUID -1 f b A f t \054 0 1562 0 array_in array_out array_recv array_send varbittypmodin varbittypmodout array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
548 
549 /* OIDS 1600 - 1699 */
550 
551 /* OIDS 1700 - 1799 */
552 DATA(insert OID = 1700 ( numeric PGNSP PGUID -1 f b N f t \054 0 0 1231 numeric_in numeric_out numeric_recv numeric_send numerictypmodin numerictypmodout - i m f 0 -1 0 0 _null_ _null_ _null_ ));
553 DESCR("numeric(precision, decimal), arbitrary precision number");
554 #define NUMERICOID 1700
555 
556 DATA(insert OID = 1790 ( refcursor PGNSP PGUID -1 f b U f t \054 0 0 2201 textin textout textrecv textsend - - - i x f 0 -1 0 0 _null_ _null_ _null_ ));
557 DESCR("reference to cursor (portal name)");
558 #define REFCURSOROID 1790
559 
560 /* OIDS 2200 - 2299 */
561 DATA(insert OID = 2201 ( _refcursor PGNSP PGUID -1 f b A f t \054 0 1790 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
562 
563 DATA(insert OID = 2202 ( regprocedure PGNSP PGUID 4 t b N f t \054 0 0 2207 regprocedurein regprocedureout regprocedurerecv regproceduresend - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
564 DESCR("registered procedure (with args)");
565 #define REGPROCEDUREOID 2202
566 
567 DATA(insert OID = 2203 ( regoper PGNSP PGUID 4 t b N f t \054 0 0 2208 regoperin regoperout regoperrecv regopersend - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
568 DESCR("registered operator");
569 #define REGOPEROID 2203
570 
571 DATA(insert OID = 2204 ( regoperator PGNSP PGUID 4 t b N f t \054 0 0 2209 regoperatorin regoperatorout regoperatorrecv regoperatorsend - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
572 DESCR("registered operator (with args)");
573 #define REGOPERATOROID 2204
574 
575 DATA(insert OID = 2205 ( regclass PGNSP PGUID 4 t b N f t \054 0 0 2210 regclassin regclassout regclassrecv regclasssend - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
576 DESCR("registered class");
577 #define REGCLASSOID 2205
578 
579 DATA(insert OID = 2206 ( regtype PGNSP PGUID 4 t b N f t \054 0 0 2211 regtypein regtypeout regtyperecv regtypesend - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
580 DESCR("registered type");
581 #define REGTYPEOID 2206
582 
583 DATA(insert OID = 4096 ( regrole PGNSP PGUID 4 t b N f t \054 0 0 4097 regrolein regroleout regrolerecv regrolesend - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
584 DESCR("registered role");
585 #define REGROLEOID 4096
586 
587 DATA(insert OID = 4089 ( regnamespace PGNSP PGUID 4 t b N f t \054 0 0 4090 regnamespacein regnamespaceout regnamespacerecv regnamespacesend - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
588 DESCR("registered namespace");
589 #define REGNAMESPACEOID 4089
590 
591 DATA(insert OID = 2207 ( _regprocedure PGNSP PGUID -1 f b A f t \054 0 2202 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
592 DATA(insert OID = 2208 ( _regoper PGNSP PGUID -1 f b A f t \054 0 2203 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
593 DATA(insert OID = 2209 ( _regoperator PGNSP PGUID -1 f b A f t \054 0 2204 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
594 DATA(insert OID = 2210 ( _regclass PGNSP PGUID -1 f b A f t \054 0 2205 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
595 DATA(insert OID = 2211 ( _regtype PGNSP PGUID -1 f b A f t \054 0 2206 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
596 #define REGTYPEARRAYOID 2211
597 DATA(insert OID = 4097 ( _regrole PGNSP PGUID -1 f b A f t \054 0 4096 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
598 DATA(insert OID = 4090 ( _regnamespace PGNSP PGUID -1 f b A f t \054 0 4089 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
599 
600 /* uuid */
601 DATA(insert OID = 2950 ( uuid PGNSP PGUID 16 f b U f t \054 0 0 2951 uuid_in uuid_out uuid_recv uuid_send - - - c p f 0 -1 0 0 _null_ _null_ _null_ ));
602 DESCR("UUID datatype");
603 #define UUIDOID 2950
604 DATA(insert OID = 2951 ( _uuid PGNSP PGUID -1 f b A f t \054 0 2950 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
605 
606 /* pg_lsn */
607 DATA(insert OID = 3220 ( pg_lsn PGNSP PGUID 8 FLOAT8PASSBYVAL b U f t \054 0 0 3221 pg_lsn_in pg_lsn_out pg_lsn_recv pg_lsn_send - - - d p f 0 -1 0 0 _null_ _null_ _null_ ));
608 DESCR("PostgreSQL LSN datatype");
609 #define LSNOID 3220
610 DATA(insert OID = 3221 ( _pg_lsn PGNSP PGUID -1 f b A f t \054 0 3220 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
611 
612 /* text search */
613 DATA(insert OID = 3614 ( tsvector PGNSP PGUID -1 f b U f t \054 0 0 3643 tsvectorin tsvectorout tsvectorrecv tsvectorsend - - ts_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
614 DESCR("text representation for text search");
615 #define TSVECTOROID 3614
616 DATA(insert OID = 3642 ( gtsvector PGNSP PGUID -1 f b U f t \054 0 0 3644 gtsvectorin gtsvectorout - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
617 DESCR("GiST index internal text representation for text search");
618 #define GTSVECTOROID 3642
619 DATA(insert OID = 3615 ( tsquery PGNSP PGUID -1 f b U f t \054 0 0 3645 tsqueryin tsqueryout tsqueryrecv tsquerysend - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
620 DESCR("query representation for text search");
621 #define TSQUERYOID 3615
622 DATA(insert OID = 3734 ( regconfig PGNSP PGUID 4 t b N f t \054 0 0 3735 regconfigin regconfigout regconfigrecv regconfigsend - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
623 DESCR("registered text search configuration");
624 #define REGCONFIGOID 3734
625 DATA(insert OID = 3769 ( regdictionary PGNSP PGUID 4 t b N f t \054 0 0 3770 regdictionaryin regdictionaryout regdictionaryrecv regdictionarysend - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
626 DESCR("registered text search dictionary");
627 #define REGDICTIONARYOID 3769
628 
629 DATA(insert OID = 3643 ( _tsvector PGNSP PGUID -1 f b A f t \054 0 3614 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
630 DATA(insert OID = 3644 ( _gtsvector PGNSP PGUID -1 f b A f t \054 0 3642 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
631 DATA(insert OID = 3645 ( _tsquery PGNSP PGUID -1 f b A f t \054 0 3615 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
632 DATA(insert OID = 3735 ( _regconfig PGNSP PGUID -1 f b A f t \054 0 3734 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
633 DATA(insert OID = 3770 ( _regdictionary PGNSP PGUID -1 f b A f t \054 0 3769 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
634 
635 /* jsonb */
636 DATA(insert OID = 3802 ( jsonb PGNSP PGUID -1 f b U f t \054 0 0 3807 jsonb_in jsonb_out jsonb_recv jsonb_send - - - i x f 0 -1 0 0 _null_ _null_ _null_ ));
637 DESCR("Binary JSON");
638 #define JSONBOID 3802
639 DATA(insert OID = 3807 ( _jsonb PGNSP PGUID -1 f b A f t \054 0 3802 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
640 
641 DATA(insert OID = 2970 ( txid_snapshot PGNSP PGUID -1 f b U f t \054 0 0 2949 txid_snapshot_in txid_snapshot_out txid_snapshot_recv txid_snapshot_send - - - d x f 0 -1 0 0 _null_ _null_ _null_ ));
642 DESCR("txid snapshot");
643 DATA(insert OID = 2949 ( _txid_snapshot PGNSP PGUID -1 f b A f t \054 0 2970 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
644 
645 /* range types */
646 DATA(insert OID = 3904 ( int4range PGNSP PGUID -1 f r R f t \054 0 0 3905 range_in range_out range_recv range_send - - range_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
647 DESCR("range of integers");
648 #define INT4RANGEOID 3904
649 DATA(insert OID = 3905 ( _int4range PGNSP PGUID -1 f b A f t \054 0 3904 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
650 DATA(insert OID = 3906 ( numrange PGNSP PGUID -1 f r R f t \054 0 0 3907 range_in range_out range_recv range_send - - range_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
651 DESCR("range of numerics");
652 DATA(insert OID = 3907 ( _numrange PGNSP PGUID -1 f b A f t \054 0 3906 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
653 DATA(insert OID = 3908 ( tsrange PGNSP PGUID -1 f r R f t \054 0 0 3909 range_in range_out range_recv range_send - - range_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
654 DESCR("range of timestamps without time zone");
655 DATA(insert OID = 3909 ( _tsrange PGNSP PGUID -1 f b A f t \054 0 3908 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
656 DATA(insert OID = 3910 ( tstzrange PGNSP PGUID -1 f r R f t \054 0 0 3911 range_in range_out range_recv range_send - - range_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
657 DESCR("range of timestamps with time zone");
658 DATA(insert OID = 3911 ( _tstzrange PGNSP PGUID -1 f b A f t \054 0 3910 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
659 DATA(insert OID = 3912 ( daterange PGNSP PGUID -1 f r R f t \054 0 0 3913 range_in range_out range_recv range_send - - range_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
660 DESCR("range of dates");
661 DATA(insert OID = 3913 ( _daterange PGNSP PGUID -1 f b A f t \054 0 3912 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 0 0 _null_ _null_ _null_ ));
662 DATA(insert OID = 3926 ( int8range PGNSP PGUID -1 f r R f t \054 0 0 3927 range_in range_out range_recv range_send - - range_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
663 DESCR("range of bigints");
664 DATA(insert OID = 3927 ( _int8range PGNSP PGUID -1 f b A f t \054 0 3926 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
665 
666 /*
667  * pseudo-types
668  *
669  * types with typtype='p' represent various special cases in the type system.
670  *
671  * These cannot be used to define table columns, but are valid as function
672  * argument and result types (if supported by the function's implementation
673  * language).
674  *
675  * Note: cstring is a borderline case; it is still considered a pseudo-type,
676  * but there is now support for it in records and arrays. Perhaps we should
677  * just treat it as a regular base type?
678  */
679 DATA(insert OID = 2249 ( record PGNSP PGUID -1 f p P f t \054 0 0 2287 record_in record_out record_recv record_send - - - d x f 0 -1 0 0 _null_ _null_ _null_ ));
680 #define RECORDOID 2249
681 DATA(insert OID = 2287 ( _record PGNSP PGUID -1 f p P f t \054 0 2249 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0 0 _null_ _null_ _null_ ));
682 #define RECORDARRAYOID 2287
683 DATA(insert OID = 2275 ( cstring PGNSP PGUID -2 f p P f t \054 0 0 1263 cstring_in cstring_out cstring_recv cstring_send - - - c p f 0 -1 0 0 _null_ _null_ _null_ ));
684 #define CSTRINGOID 2275
685 DATA(insert OID = 2276 ( any PGNSP PGUID 4 t p P f t \054 0 0 0 any_in any_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
686 #define ANYOID 2276
687 DATA(insert OID = 2277 ( anyarray PGNSP PGUID -1 f p P f t \054 0 0 0 anyarray_in anyarray_out anyarray_recv anyarray_send - - - d x f 0 -1 0 0 _null_ _null_ _null_ ));
688 #define ANYARRAYOID 2277
689 DATA(insert OID = 2278 ( void PGNSP PGUID 4 t p P f t \054 0 0 0 void_in void_out void_recv void_send - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
690 #define VOIDOID 2278
691 DATA(insert OID = 2279 ( trigger PGNSP PGUID 4 t p P f t \054 0 0 0 trigger_in trigger_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
692 #define TRIGGEROID 2279
693 DATA(insert OID = 3838 ( event_trigger PGNSP PGUID 4 t p P f t \054 0 0 0 event_trigger_in event_trigger_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
694 #define EVTTRIGGEROID 3838
695 DATA(insert OID = 2280 ( language_handler PGNSP PGUID 4 t p P f t \054 0 0 0 language_handler_in language_handler_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
696 #define LANGUAGE_HANDLEROID 2280
697 DATA(insert OID = 2281 ( internal PGNSP PGUID SIZEOF_POINTER t p P f t \054 0 0 0 internal_in internal_out - - - - - ALIGNOF_POINTER p f 0 -1 0 0 _null_ _null_ _null_ ));
698 #define INTERNALOID 2281
699 DATA(insert OID = 2282 ( opaque PGNSP PGUID 4 t p P f t \054 0 0 0 opaque_in opaque_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
700 #define OPAQUEOID 2282
701 DATA(insert OID = 2283 ( anyelement PGNSP PGUID 4 t p P f t \054 0 0 0 anyelement_in anyelement_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
702 #define ANYELEMENTOID 2283
703 DATA(insert OID = 2776 ( anynonarray PGNSP PGUID 4 t p P f t \054 0 0 0 anynonarray_in anynonarray_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
704 #define ANYNONARRAYOID 2776
705 DATA(insert OID = 3500 ( anyenum PGNSP PGUID 4 t p P f t \054 0 0 0 anyenum_in anyenum_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
706 #define ANYENUMOID 3500
707 DATA(insert OID = 3115 ( fdw_handler PGNSP PGUID 4 t p P f t \054 0 0 0 fdw_handler_in fdw_handler_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
708 #define FDW_HANDLEROID 3115
709 DATA(insert OID = 325 ( index_am_handler PGNSP PGUID 4 t p P f t \054 0 0 0 index_am_handler_in index_am_handler_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
710 #define INDEX_AM_HANDLEROID 325
711 DATA(insert OID = 3310 ( tsm_handler PGNSP PGUID 4 t p P f t \054 0 0 0 tsm_handler_in tsm_handler_out - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));
712 #define TSM_HANDLEROID 3310
713 DATA(insert OID = 3831 ( anyrange PGNSP PGUID -1 f p P f t \054 0 0 0 anyrange_in anyrange_out - - - - - d x f 0 -1 0 0 _null_ _null_ _null_ ));
714 #define ANYRANGEOID 3831
715 
716 
717 /*
718  * macros
719  */
720 #define TYPTYPE_BASE 'b' /* base type (ordinary scalar type) */
721 #define TYPTYPE_COMPOSITE 'c' /* composite (e.g., table's rowtype) */
722 #define TYPTYPE_DOMAIN 'd' /* domain over another type */
723 #define TYPTYPE_ENUM 'e' /* enumerated type */
724 #define TYPTYPE_PSEUDO 'p' /* pseudo-type */
725 #define TYPTYPE_RANGE 'r' /* range type */
726 
727 #define TYPCATEGORY_INVALID '\0' /* not an allowed category */
728 #define TYPCATEGORY_ARRAY 'A'
729 #define TYPCATEGORY_BOOLEAN 'B'
730 #define TYPCATEGORY_COMPOSITE 'C'
731 #define TYPCATEGORY_DATETIME 'D'
732 #define TYPCATEGORY_ENUM 'E'
733 #define TYPCATEGORY_GEOMETRIC 'G'
734 #define TYPCATEGORY_NETWORK 'I' /* think INET */
735 #define TYPCATEGORY_NUMERIC 'N'
736 #define TYPCATEGORY_PSEUDOTYPE 'P'
737 #define TYPCATEGORY_RANGE 'R'
738 #define TYPCATEGORY_STRING 'S'
739 #define TYPCATEGORY_TIMESPAN 'T'
740 #define TYPCATEGORY_USER 'U'
741 #define TYPCATEGORY_BITSTRING 'V' /* er ... "varbit"? */
742 #define TYPCATEGORY_UNKNOWN 'X'
743 
744 /* Is a type OID a polymorphic pseudotype? (Beware of multiple evaluation) */
745 #define IsPolymorphicType(typid) \
746  ((typid) == ANYELEMENTOID || \
747  (typid) == ANYARRAYOID || \
748  (typid) == ANYNONARRAYOID || \
749  (typid) == ANYENUMOID || \
750  (typid) == ANYRANGEOID)
751 
752 #endif /* PG_TYPE_H */
#define BKI_SCHEMA_MACRO
Definition: genbki.h:30
#define pg_lsn
Datum bittypmodin(PG_FUNCTION_ARGS)
Definition: varbit.c:406
#define BKI_BOOTSTRAP
Definition: genbki.h:26
Datum range_in(PG_FUNCTION_ARGS)
Definition: rangetypes.c:80
signed short int16
Definition: c.h:283
Datum cidin(PG_FUNCTION_ARGS)
Definition: xid.c:158
Datum poly_out(PG_FUNCTION_ARGS)
Definition: geo_ops.c:3459
Datum timetypmodin(PG_FUNCTION_ARGS)
Definition: date.c:1323
Datum byteaout(PG_FUNCTION_ARGS)
Definition: varlena.c:351
Datum tintervalsend(PG_FUNCTION_ARGS)
Definition: nabstime.c:791
Datum regoperatorrecv(PG_FUNCTION_ARGS)
Definition: regproc.c:877
Datum regnamespaceout(PG_FUNCTION_ARGS)
Definition: regproc.c:1612
Definition: c.h:526
Datum path_send(PG_FUNCTION_ARGS)
Definition: geo_ops.c:1428
Datum regoperatorin(PG_FUNCTION_ARGS)
Definition: regproc.c:655
Datum poly_send(PG_FUNCTION_ARGS)
Definition: geo_ops.c:3510
Datum box_in(PG_FUNCTION_ARGS)
Definition: geo_ops.c:352
#define R(b, x)
Definition: sha2.c:121
Datum pg_ddl_command_send(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:372
Datum regconfigsend(PG_FUNCTION_ARGS)
Definition: regproc.c:1292
Datum macaddr8_send(PG_FUNCTION_ARGS)
Definition: mac8.c:295
Datum xidsend(PG_FUNCTION_ARGS)
Definition: xid.c:65
Datum circle_in(PG_FUNCTION_ARGS)
Definition: geo_ops.c:4533
Datum bpchartypmodout(PG_FUNCTION_ARGS)
Definition: varchar.c:421
Datum array_send(PG_FUNCTION_ARGS)
Definition: arrayfuncs.c:1535
Datum varbit_in(PG_FUNCTION_ARGS)
Definition: varbit.c:429
DESCR("boolean, 'true'/'false'")
Datum namein(PG_FUNCTION_ARGS)
Definition: name.c:46
Datum timestamptz_send(PG_FUNCTION_ARGS)
Definition: timestamp.c:823
Datum lseg_out(PG_FUNCTION_ARGS)
Definition: geo_ops.c:1962
Datum cstring_send(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:76
Datum tintervalout(PG_FUNCTION_ARGS)
Definition: nabstime.c:731
Datum boolsend(PG_FUNCTION_ARGS)
Definition: bool.c:194
Datum point_out(PG_FUNCTION_ARGS)
Definition: geo_ops.c:1746
Datum regclassin(PG_FUNCTION_ARGS)
Definition: regproc.c:903
Datum pg_ndistinct_in(PG_FUNCTION_ARGS)
Definition: mvdistinct.c:334
Datum anyarray_send(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:133
Datum int2vectorout(PG_FUNCTION_ARGS)
Definition: int.c:178
Datum charsend(PG_FUNCTION_ARGS)
Definition: char.c:77
Datum uuid_in(PG_FUNCTION_ARGS)
Definition: uuid.c:42
Datum pg_ndistinct_recv(PG_FUNCTION_ARGS)
Definition: mvdistinct.c:387
Datum abstimeout(PG_FUNCTION_ARGS)
Definition: nabstime.c:260
Datum smgrout(PG_FUNCTION_ARGS)
Definition: smgrtype.c:52
Datum pg_node_tree_in(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:274
Datum float8in(PG_FUNCTION_ARGS)
Definition: float.c:418
Datum bit_recv(PG_FUNCTION_ARGS)
Definition: varbit.c:294
Datum point_in(PG_FUNCTION_ARGS)
Definition: geo_ops.c:1736
Datum cidr_recv(PG_FUNCTION_ARGS)
Definition: network.c:217
Datum numeric_send(PG_FUNCTION_ARGS)
Definition: numeric.c:868
int64 timestamp
Datum lseg_send(PG_FUNCTION_ARGS)
Definition: geo_ops.c:1992
Datum varcharin(PG_FUNCTION_ARGS)
Definition: varchar.c:486
Datum regroleout(PG_FUNCTION_ARGS)
Definition: regproc.c:1487
Datum varbit_out(PG_FUNCTION_ARGS)
Definition: varbit.c:564
Datum reltimesend(PG_FUNCTION_ARGS)
Definition: nabstime.c:671
Datum macaddr8_in(PG_FUNCTION_ARGS)
Definition: mac8.c:104
Datum regrolesend(PG_FUNCTION_ARGS)
Definition: regproc.c:1529
Datum textrecv(PG_FUNCTION_ARGS)
Definition: varlena.c:530
Datum anyenum_out(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:158
Datum charout(PG_FUNCTION_ARGS)
Definition: char.c:48
Datum regoperout(PG_FUNCTION_ARGS)
Definition: regproc.c:561
Datum interval_in(PG_FUNCTION_ARGS)
Definition: timestamp.c:876
DATA(insert OID=16(bool PGNSP PGUID 1 t b B t t \054 0 0 1000 boolin boolout boolrecv boolsend - - - c p f 0 -1 0 0 _null_ _null_ _null_))
Datum regdictionaryout(PG_FUNCTION_ARGS)
Definition: regproc.c:1347
Datum boolin(PG_FUNCTION_ARGS)
Definition: bool.c:130
Datum anyrange_in(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:167
Datum intervaltypmodin(PG_FUNCTION_ARGS)
Definition: timestamp.c:1030
Datum timestamptypmodin(PG_FUNCTION_ARGS)
Definition: timestamp.c:284
Datum textout(PG_FUNCTION_ARGS)
Definition: varlena.c:519
Datum int4in(PG_FUNCTION_ARGS)
Definition: int.c:266
Datum json_in(PG_FUNCTION_ARGS)
Definition: json.c:228
Datum pg_lsn_send(PG_FUNCTION_ARGS)
Definition: pg_lsn.c:90
Datum timetypmodout(PG_FUNCTION_ARGS)
Definition: date.c:1331
Datum xidout(PG_FUNCTION_ARGS)
Definition: xid.c:41
Datum numeric_out(PG_FUNCTION_ARGS)
Definition: numeric.c:651
Datum uuid_send(PG_FUNCTION_ARGS)
Definition: uuid.c:152
Datum regoperin(PG_FUNCTION_ARGS)
Definition: regproc.c:483
Datum cidr_send(PG_FUNCTION_ARGS)
Definition: network.c:259
Datum box_out(PG_FUNCTION_ARGS)
Definition: geo_ops.c:382
Datum numerictypmodout(PG_FUNCTION_ARGS)
Definition: numeric.c:1065
Datum intervaltypmodout(PG_FUNCTION_ARGS)
Definition: timestamp.c:1109
Datum pg_node_tree_send(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:316
Datum cidr_out(PG_FUNCTION_ARGS)
Definition: network.c:132
Datum regrolerecv(PG_FUNCTION_ARGS)
Definition: regproc.c:1519
Datum varchar(PG_FUNCTION_ARGS)
Definition: varchar.c:593
Datum inet_out(PG_FUNCTION_ARGS)
Definition: network.c:124
Datum path_recv(PG_FUNCTION_ARGS)
Definition: geo_ops.c:1390
Datum pg_ddl_command_out(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:346
Datum reltimeout(PG_FUNCTION_ARGS)
Definition: nabstime.c:641
Datum aclitemin(PG_FUNCTION_ARGS)
Definition: acl.c:565
long date
Definition: pgtypes_date.h:8
Datum timestamptypmodout(PG_FUNCTION_ARGS)
Definition: timestamp.c:292
Datum pg_dependencies_out(PG_FUNCTION_ARGS)
Definition: dependencies.c:674
Datum interval_out(PG_FUNCTION_ARGS)
Definition: timestamp.c:958
Datum int2vectorsend(PG_FUNCTION_ARGS)
Definition: int.c:252
Datum pg_dependencies_recv(PG_FUNCTION_ARGS)
Definition: dependencies.c:714
Datum array_recv(PG_FUNCTION_ARGS)
Definition: arrayfuncs.c:1255
Datum regtypeout(PG_FUNCTION_ARGS)
Definition: regproc.c:1123
FormData_pg_type * Form_pg_type
Definition: pg_type.h:233
Datum void_in(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:195
unsigned int Oid
Definition: postgres_ext.h:31
FormData_pg_type
Definition: pg_type.h:226
Datum bpcharin(PG_FUNCTION_ARGS)
Definition: varchar.c:192
Datum oidout(PG_FUNCTION_ARGS)
Definition: oid.c:127
Datum regopersend(PG_FUNCTION_ARGS)
Definition: regproc.c:639
#define G(X, Y, Z)
Definition: md5.c:43
Datum bpcharsend(PG_FUNCTION_ARGS)
Definition: varchar.c:247
Datum array_out(PG_FUNCTION_ARGS)
Definition: arrayfuncs.c:1012
Datum date_send(PG_FUNCTION_ARGS)
Definition: date.c:236
Datum anyarray_out(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:105
Datum pg_lsn_in(PG_FUNCTION_ARGS)
Definition: pg_lsn.c:30
Datum regtyperecv(PG_FUNCTION_ARGS)
Definition: regproc.c:1171
Datum lseg_recv(PG_FUNCTION_ARGS)
Definition: geo_ops.c:1973
Datum regprocin(PG_FUNCTION_ARGS)
Definition: regproc.c:62
Datum int4send(PG_FUNCTION_ARGS)
Definition: int.c:301
Datum record_out(PG_FUNCTION_ARGS)
Definition: rowtypes.c:301
signed int int32
Definition: c.h:284
Datum namesend(PG_FUNCTION_ARGS)
Definition: name.c:104
Datum oidsend(PG_FUNCTION_ARGS)
Definition: oid.c:151
Datum macaddr8_out(PG_FUNCTION_ARGS)
Definition: mac8.c:242
Datum float8send(PG_FUNCTION_ARGS)
Definition: float.c:640
Datum circle_recv(PG_FUNCTION_ARGS)
Definition: geo_ops.c:4617
Datum regconfigout(PG_FUNCTION_ARGS)
Definition: regproc.c:1236
Datum record_send(PG_FUNCTION_ARGS)
Definition: rowtypes.c:648
#define NAMEDATALEN
Datum tsquerysend(PG_FUNCTION_ARGS)
Definition: tsquery.c:946
Datum regprocedureout(PG_FUNCTION_ARGS)
Definition: regproc.c:440
Datum oidrecv(PG_FUNCTION_ARGS)
Definition: oid.c:140
Datum txid_snapshot_recv(PG_FUNCTION_ARGS)
Definition: txid.c:575
Datum cash_recv(PG_FUNCTION_ARGS)
Definition: cash.c:514
Datum tidsend(PG_FUNCTION_ARGS)
Definition: tid.c:146
Datum cidrecv(PG_FUNCTION_ARGS)
Definition: xid.c:182
Datum line_in(PG_FUNCTION_ARGS)
Definition: geo_ops.c:919
Datum reltimein(PG_FUNCTION_ARGS)
Definition: nabstime.c:588
Datum macaddr8_recv(PG_FUNCTION_ARGS)
Definition: mac8.c:262
Datum jsonb_send(PG_FUNCTION_ARGS)
Definition: jsonb.c:148
Datum interval_send(PG_FUNCTION_ARGS)
Definition: timestamp.c:1005
Datum varchartypmodin(PG_FUNCTION_ARGS)
Definition: varchar.c:632
double float8
Definition: c.h:429
Datum regprocedurein(PG_FUNCTION_ARGS)
Definition: regproc.c:231
Datum int2vectorrecv(PG_FUNCTION_ARGS)
Definition: int.c:204
Datum numerictypmodin(PG_FUNCTION_ARGS)
Definition: numeric.c:1020
Datum cash_out(PG_FUNCTION_ARGS)
Definition: cash.c:311
Definition: inet.h:107
Datum date_in(PG_FUNCTION_ARGS)
Definition: date.c:116
Datum bit_in(PG_FUNCTION_ARGS)
Definition: varbit.c:113
Datum xml_out(PG_FUNCTION_ARGS)
Definition: xml.c:334
Datum int2send(PG_FUNCTION_ARGS)
Definition: int.c:96
Datum xidin(PG_FUNCTION_ARGS)
Definition: xid.c:33
Datum anyrange_out(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:182
Datum time_out(PG_FUNCTION_ARGS)
Definition: date.c:1266
Datum timetztypmodin(PG_FUNCTION_ARGS)
Definition: date.c:2057
Datum regproceduresend(PG_FUNCTION_ARGS)
Definition: regproc.c:467
Datum varbit(PG_FUNCTION_ARGS)
Definition: varbit.c:714
Datum pg_lsn_recv(PG_FUNCTION_ARGS)
Definition: pg_lsn.c:80
Datum charrecv(PG_FUNCTION_ARGS)
Definition: char.c:66
Datum byteain(PG_FUNCTION_ARGS)
Definition: varlena.c:255
Datum timetz_send(PG_FUNCTION_ARGS)
Definition: date.c:2045
Datum macaddr_in(PG_FUNCTION_ARGS)
Definition: mac.c:56
Datum unknownrecv(PG_FUNCTION_ARGS)
Definition: varlena.c:587
Datum regprocout(PG_FUNCTION_ARGS)
Definition: regproc.c:143
static const uint32 T[65]
Definition: md5.c:101
Definition: c.h:541
Datum varcharrecv(PG_FUNCTION_ARGS)
Definition: varchar.c:519
Datum regtypesend(PG_FUNCTION_ARGS)
Definition: regproc.c:1181
Datum circle_out(PG_FUNCTION_ARGS)
Definition: geo_ops.c:4595
char * c
Datum cstring_in(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:37
Datum tidrecv(PG_FUNCTION_ARGS)
Definition: tid.c:125
Datum varbittypmodin(PG_FUNCTION_ARGS)
Definition: varbit.c:753
Datum bittypmodout(PG_FUNCTION_ARGS)
Definition: varbit.c:414
Datum path_out(PG_FUNCTION_ARGS)
Definition: geo_ops.c:1376
Datum xml_in(PG_FUNCTION_ARGS)
Definition: xml.c:256
Datum regclasssend(PG_FUNCTION_ARGS)
Definition: regproc.c:1039
Datum timetztypmodout(PG_FUNCTION_ARGS)
Definition: date.c:2065
#define BKI_ROWTYPE_OID(oid)
Definition: genbki.h:29
Definition: inet.h:52
Datum bit_out(PG_FUNCTION_ARGS)
Definition: varbit.c:246
Datum cidsend(PG_FUNCTION_ARGS)
Definition: xid.c:193
Datum regrolein(PG_FUNCTION_ARGS)
Definition: regproc.c:1419
Datum anyarray_in(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:90
Datum lseg_in(PG_FUNCTION_ARGS)
Definition: geo_ops.c:1950
Datum regprocrecv(PG_FUNCTION_ARGS)
Definition: regproc.c:205
Datum pg_node_tree_recv(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:303
Datum xidrecv(PG_FUNCTION_ARGS)
Definition: xid.c:54
Datum abstimein(PG_FUNCTION_ARGS)
Definition: nabstime.c:196
Datum numeric_in(PG_FUNCTION_ARGS)
Definition: numeric.c:569
Datum range_typanalyze(PG_FUNCTION_ARGS)
Datum regdictionarysend(PG_FUNCTION_ARGS)
Definition: regproc.c:1404
Datum line_out(PG_FUNCTION_ARGS)
Definition: geo_ops.c:957
Datum int4out(PG_FUNCTION_ARGS)
Definition: int.c:277
Datum jsonb_recv(PG_FUNCTION_ARGS)
Definition: jsonb.c:113
Datum regprocsend(PG_FUNCTION_ARGS)
Definition: regproc.c:215
Datum timestamp_send(PG_FUNCTION_ARGS)
Definition: timestamp.c:273
#define S(n, x)
Definition: sha1.c:55
Datum int2vectorin(PG_FUNCTION_ARGS)
Definition: int.c:139
Datum macaddr_send(PG_FUNCTION_ARGS)
Definition: mac.c:161
Datum line_send(PG_FUNCTION_ARGS)
Definition: geo_ops.c:989
Datum xml_send(PG_FUNCTION_ARGS)
Definition: xml.c:416
Datum poly_recv(PG_FUNCTION_ARGS)
Definition: geo_ops.c:3475
Datum interval_recv(PG_FUNCTION_ARGS)
Definition: timestamp.c:980
Datum float4in(PG_FUNCTION_ARGS)
Definition: float.c:219
Datum reltimerecv(PG_FUNCTION_ARGS)
Definition: nabstime.c:660
Datum poly_in(PG_FUNCTION_ARGS)
Definition: geo_ops.c:3418
Datum aclitemout(PG_FUNCTION_ARGS)
Definition: acl.c:591
Datum time_recv(PG_FUNCTION_ARGS)
Definition: date.c:1286
Datum array_typanalyze(PG_FUNCTION_ARGS)
#define I(X, Y, Z)
Definition: md5.c:45
Datum ts_typanalyze(PG_FUNCTION_ARGS)
Definition: ts_typanalyze.c:54
Datum float4recv(PG_FUNCTION_ARGS)
Definition: float.c:393
Datum byteasend(PG_FUNCTION_ARGS)
Definition: varlena.c:442
Datum float4out(PG_FUNCTION_ARGS)
Definition: float.c:359
signed char int8
Definition: c.h:282
float float4
Definition: c.h:428
Datum path_in(PG_FUNCTION_ARGS)
Definition: geo_ops.c:1307
Datum float8recv(PG_FUNCTION_ARGS)
Definition: float.c:629
Datum cash_send(PG_FUNCTION_ARGS)
Definition: cash.c:525
Datum range_recv(PG_FUNCTION_ARGS)
Definition: rangetypes.c:162
Definition: c.h:515
Datum regtypein(PG_FUNCTION_ARGS)
Definition: regproc.c:1061
Datum uuid_recv(PG_FUNCTION_ARGS)
Definition: uuid.c:141
Datum xml_recv(PG_FUNCTION_ARGS)
Definition: xml.c:349
Datum varbittypmodout(PG_FUNCTION_ARGS)
Definition: varbit.c:761
Datum tsvectorsend(PG_FUNCTION_ARGS)
Definition: tsvector.c:403
Datum pg_lsn_out(PG_FUNCTION_ARGS)
Definition: pg_lsn.c:62
Datum timestamp_out(PG_FUNCTION_ARGS)
Definition: timestamp.c:214
Datum tintervalin(PG_FUNCTION_ARGS)
Definition: nabstime.c:700
Datum cidout(PG_FUNCTION_ARGS)
Definition: xid.c:169
Datum range_out(PG_FUNCTION_ARGS)
Definition: rangetypes.c:122
Datum cstring_out(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:51
Datum pg_ndistinct_send(PG_FUNCTION_ARGS)
Definition: mvdistinct.c:403
Datum namerecv(PG_FUNCTION_ARGS)
Definition: name.c:80
Datum box_send(PG_FUNCTION_ARGS)
Definition: geo_ops.c:428
Datum json_out(PG_FUNCTION_ARGS)
Definition: json.c:246
Datum varcharout(PG_FUNCTION_ARGS)
Definition: varchar.c:508
Datum time_send(PG_FUNCTION_ARGS)
Definition: date.c:1312
Datum oidvectorrecv(PG_FUNCTION_ARGS)
Definition: oid.c:257
Datum void_send(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:230
Datum inet_send(PG_FUNCTION_ARGS)
Definition: network.c:251
Datum tsvectorout(PG_FUNCTION_ARGS)
Definition: tsvector.c:310
Datum txid_snapshot_out(PG_FUNCTION_ARGS)
Definition: txid.c:546
Datum date_out(PG_FUNCTION_ARGS)
Definition: date.c:189
Datum boolout(PG_FUNCTION_ARGS)
Definition: bool.c:164
Datum abstimerecv(PG_FUNCTION_ARGS)
Definition: nabstime.c:301
Datum varchartypmodout(PG_FUNCTION_ARGS)
Definition: varchar.c:640
Datum timestamptz_recv(PG_FUNCTION_ARGS)
Definition: timestamp.c:789
Datum int2out(PG_FUNCTION_ARGS)
Definition: int.c:72
Datum macaddr_out(PG_FUNCTION_ARGS)
Definition: mac.c:121
Datum record_recv(PG_FUNCTION_ARGS)
Definition: rowtypes.c:452
Datum timestamp_in(PG_FUNCTION_ARGS)
Definition: timestamp.c:143
Datum unknownsend(PG_FUNCTION_ARGS)
Definition: varlena.c:602
Datum varbit_recv(PG_FUNCTION_ARGS)
Definition: varbit.c:610
Datum tidin(PG_FUNCTION_ARGS)
Definition: tid.c:53
Datum timestamp_recv(PG_FUNCTION_ARGS)
Definition: timestamp.c:240
Datum bit(PG_FUNCTION_ARGS)
Definition: varbit.c:361
Datum pg_ddl_command_recv(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:359
Datum timetz_recv(PG_FUNCTION_ARGS)
Definition: date.c:2009
Datum regclassout(PG_FUNCTION_ARGS)
Definition: regproc.c:972
Datum jsonb_out(PG_FUNCTION_ARGS)
Definition: jsonb.c:132
Datum pg_dependencies_in(PG_FUNCTION_ARGS)
Definition: dependencies.c:657
Datum inet_in(PG_FUNCTION_ARGS)
Definition: network.c:80
Datum macaddr_recv(PG_FUNCTION_ARGS)
Definition: mac.c:140
Datum unknownin(PG_FUNCTION_ARGS)
Definition: varlena.c:563
Datum tsqueryrecv(PG_FUNCTION_ARGS)
Definition: tsquery.c:984
Datum int8recv(PG_FUNCTION_ARGS)
Definition: int8.c:173
Datum textsend(PG_FUNCTION_ARGS)
Definition: varlena.c:548
Datum int8send(PG_FUNCTION_ARGS)
Definition: int8.c:184
Datum bit_send(PG_FUNCTION_ARGS)
Definition: varbit.c:346
Datum regnamespacesend(PG_FUNCTION_ARGS)
Definition: regproc.c:1654
Datum varcharsend(PG_FUNCTION_ARGS)
Definition: varchar.c:541
Datum point_recv(PG_FUNCTION_ARGS)
Definition: geo_ops.c:1757
Definition: inet.h:94
Datum inet_recv(PG_FUNCTION_ARGS)
Definition: network.c:209
Datum json_recv(PG_FUNCTION_ARGS)
Definition: json.c:272
Datum cidr_in(PG_FUNCTION_ARGS)
Definition: network.c:88
Datum textin(PG_FUNCTION_ARGS)
Definition: varlena.c:508
Datum gtsvectorout(PG_FUNCTION_ARGS)
Definition: tsgistidx.c:111
Datum int8in(PG_FUNCTION_ARGS)
Definition: int8.c:145
#define timestamptz
Definition: pg_authid.h:34
Datum int2in(PG_FUNCTION_ARGS)
Definition: int.c:61
Datum regprocedurerecv(PG_FUNCTION_ARGS)
Definition: regproc.c:457
const char * name
Definition: encode.c:521
Datum anyarray_recv(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:118
Oid regproc
Definition: c.h:442
Datum numeric_recv(PG_FUNCTION_ARGS)
Definition: numeric.c:801
Datum tsqueryout(PG_FUNCTION_ARGS)
Definition: tsquery.c:904
Datum int2recv(PG_FUNCTION_ARGS)
Definition: int.c:85
Datum timestamptztypmodin(PG_FUNCTION_ARGS)
Definition: timestamp.c:834
Datum smgrin(PG_FUNCTION_ARGS)
Definition: smgrtype.c:37
Datum timestamptz_out(PG_FUNCTION_ARGS)
Definition: timestamp.c:761
Datum varbit_send(PG_FUNCTION_ARGS)
Definition: varbit.c:662
Datum timetz_in(PG_FUNCTION_ARGS)
Definition: date.c:1953
Datum unknownout(PG_FUNCTION_ARGS)
Definition: varlena.c:575
Datum timestamptztypmodout(PG_FUNCTION_ARGS)
Definition: timestamp.c:842
Datum void_out(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:206
Datum timestamptz_in(PG_FUNCTION_ARGS)
Definition: timestamp.c:383
Datum regdictionaryin(PG_FUNCTION_ARGS)
Definition: regproc.c:1308
Datum regnamespacerecv(PG_FUNCTION_ARGS)
Definition: regproc.c:1644
Datum jsonb_in(PG_FUNCTION_ARGS)
Definition: jsonb.c:97
Datum box_recv(PG_FUNCTION_ARGS)
Definition: geo_ops.c:393
Datum txid_snapshot_send(PG_FUNCTION_ARGS)
Definition: txid.c:636
Datum bytearecv(PG_FUNCTION_ARGS)
Definition: varlena.c:423
Datum cstring_recv(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:62
Datum bpcharrecv(PG_FUNCTION_ARGS)
Definition: varchar.c:225
Datum date_recv(PG_FUNCTION_ARGS)
Definition: date.c:214
Datum float4send(PG_FUNCTION_ARGS)
Definition: float.c:404
Datum time_in(PG_FUNCTION_ARGS)
Definition: date.c:1201
Datum regoperatorout(PG_FUNCTION_ARGS)
Definition: regproc.c:860
int i
Datum abstimesend(PG_FUNCTION_ARGS)
Definition: nabstime.c:312
Datum anyenum_in(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:143
Datum float8out(PG_FUNCTION_ARGS)
Definition: float.c:581
Datum void_recv(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:218
Datum charin(PG_FUNCTION_ARGS)
Definition: char.c:33
Datum boolrecv(PG_FUNCTION_ARGS)
Definition: bool.c:181
Definition: c.h:487
Datum oidin(PG_FUNCTION_ARGS)
Definition: oid.c:117
Datum cash_in(PG_FUNCTION_ARGS)
Definition: cash.c:96
Datum regconfigrecv(PG_FUNCTION_ARGS)
Definition: regproc.c:1282
Datum regdictionaryrecv(PG_FUNCTION_ARGS)
Definition: regproc.c:1394
Datum regoperrecv(PG_FUNCTION_ARGS)
Definition: regproc.c:629
Datum oidvectorsend(PG_FUNCTION_ARGS)
Definition: oid.c:305
Datum nameout(PG_FUNCTION_ARGS)
Definition: name.c:69
Datum circle_send(PG_FUNCTION_ARGS)
Definition: geo_ops.c:4640
Datum point_send(PG_FUNCTION_ARGS)
Definition: geo_ops.c:1772
Datum range_send(PG_FUNCTION_ARGS)
Definition: rangetypes.c:245
Datum tsvectorrecv(PG_FUNCTION_ARGS)
Definition: tsvector.c:442
Datum bpchar(PG_FUNCTION_ARGS)
Definition: varchar.c:267
Datum regnamespacein(PG_FUNCTION_ARGS)
Definition: regproc.c:1544
Datum pg_ndistinct_out(PG_FUNCTION_ARGS)
Definition: mvdistinct.c:350
Datum regconfigin(PG_FUNCTION_ARGS)
Definition: regproc.c:1197
Datum oidvectorin(PG_FUNCTION_ARGS)
Definition: oid.c:194
Datum bpcharout(PG_FUNCTION_ARGS)
Definition: varchar.c:214
Datum tsvectorin(PG_FUNCTION_ARGS)
Definition: tsvector.c:177
Datum bpchartypmodin(PG_FUNCTION_ARGS)
Definition: varchar.c:413
CATALOG(pg_type, 1247) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71) BKI_SCHEMA_MACRO
Definition: pg_type.h:37
Datum uuid_out(PG_FUNCTION_ARGS)
Definition: uuid.c:53
Datum regoperatorsend(PG_FUNCTION_ARGS)
Definition: regproc.c:887
Datum line_recv(PG_FUNCTION_ARGS)
Definition: geo_ops.c:971
Datum pg_dependencies_send(PG_FUNCTION_ARGS)
Definition: dependencies.c:730
Datum tidout(PG_FUNCTION_ARGS)
Definition: tid.c:105
Datum pg_ddl_command_in(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:328
Datum oidvectorout(PG_FUNCTION_ARGS)
Definition: oid.c:231
Datum int8out(PG_FUNCTION_ARGS)
Definition: int8.c:158
Datum array_in(PG_FUNCTION_ARGS)
Definition: arrayfuncs.c:172
Datum record_in(PG_FUNCTION_ARGS)
Definition: rowtypes.c:73
Datum timetz_out(PG_FUNCTION_ARGS)
Definition: date.c:1988
Datum txid_snapshot_in(PG_FUNCTION_ARGS)
Definition: txid.c:530
Datum gtsvectorin(PG_FUNCTION_ARGS)
Definition: tsgistidx.c:96
Datum json_send(PG_FUNCTION_ARGS)
Definition: json.c:258
Datum regclassrecv(PG_FUNCTION_ARGS)
Definition: regproc.c:1029
Datum tintervalrecv(PG_FUNCTION_ARGS)
Definition: nabstime.c:761
Datum pg_node_tree_out(PG_FUNCTION_ARGS)
Definition: pseudotypes.c:294
Datum tsqueryin(PG_FUNCTION_ARGS)
Definition: tsquery.c:715
Datum int4recv(PG_FUNCTION_ARGS)
Definition: int.c:290