Header And Logo

PostgreSQL
| The world's most advanced open source database.

pg_type.h

Go to the documentation of this file.
00001 /*-------------------------------------------------------------------------
00002  *
00003  * pg_type.h
00004  *    definition of the system "type" relation (pg_type)
00005  *    along with the relation's initial contents.
00006  *
00007  *
00008  * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group
00009  * Portions Copyright (c) 1994, Regents of the University of California
00010  *
00011  * src/include/catalog/pg_type.h
00012  *
00013  * NOTES
00014  *    the genbki.pl script reads this file and generates .bki
00015  *    information from the DATA() statements.
00016  *
00017  *-------------------------------------------------------------------------
00018  */
00019 #ifndef PG_TYPE_H
00020 #define PG_TYPE_H
00021 
00022 #include "catalog/genbki.h"
00023 
00024 /* ----------------
00025  *      pg_type definition.  cpp turns this into
00026  *      typedef struct FormData_pg_type
00027  *
00028  *      Some of the values in a pg_type instance are copied into
00029  *      pg_attribute instances.  Some parts of Postgres use the pg_type copy,
00030  *      while others use the pg_attribute copy, so they must match.
00031  *      See struct FormData_pg_attribute for details.
00032  * ----------------
00033  */
00034 #define TypeRelationId  1247
00035 #define TypeRelation_Rowtype_Id  71
00036 
00037 CATALOG(pg_type,1247) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71) BKI_SCHEMA_MACRO
00038 {
00039     NameData    typname;        /* type name */
00040     Oid         typnamespace;   /* OID of namespace containing this type */
00041     Oid         typowner;       /* type owner */
00042 
00043     /*
00044      * For a fixed-size type, typlen is the number of bytes we use to
00045      * represent a value of this type, e.g. 4 for an int4.  But for a
00046      * variable-length type, typlen is negative.  We use -1 to indicate a
00047      * "varlena" type (one that has a length word), -2 to indicate a
00048      * null-terminated C string.
00049      */
00050     int16       typlen;
00051 
00052     /*
00053      * typbyval determines whether internal Postgres routines pass a value of
00054      * this type by value or by reference.  typbyval had better be FALSE if
00055      * the length is not 1, 2, or 4 (or 8 on 8-byte-Datum machines).
00056      * Variable-length types are always passed by reference. Note that
00057      * typbyval can be false even if the length would allow pass-by-value;
00058      * this is currently true for type float4, for example.
00059      */
00060     bool        typbyval;
00061 
00062     /*
00063      * typtype is 'b' for a base type, 'c' for a composite type (e.g., a
00064      * table's rowtype), 'd' for a domain, 'e' for an enum type, 'p' for a
00065      * pseudo-type, or 'r' for a range type. (Use the TYPTYPE macros below.)
00066      *
00067      * If typtype is 'c', typrelid is the OID of the class' entry in pg_class.
00068      */
00069     char        typtype;
00070 
00071     /*
00072      * typcategory and typispreferred help the parser distinguish preferred
00073      * and non-preferred coercions.  The category can be any single ASCII
00074      * character (but not \0).  The categories used for built-in types are
00075      * identified by the TYPCATEGORY macros below.
00076      */
00077     char        typcategory;    /* arbitrary type classification */
00078 
00079     bool        typispreferred; /* is type "preferred" within its category? */
00080 
00081     /*
00082      * If typisdefined is false, the entry is only a placeholder (forward
00083      * reference).  We know the type name, but not yet anything else about it.
00084      */
00085     bool        typisdefined;
00086 
00087     char        typdelim;       /* delimiter for arrays of this type */
00088 
00089     Oid         typrelid;       /* 0 if not a composite type */
00090 
00091     /*
00092      * If typelem is not 0 then it identifies another row in pg_type. The
00093      * current type can then be subscripted like an array yielding values of
00094      * type typelem. A non-zero typelem does not guarantee this type to be a
00095      * "real" array type; some ordinary fixed-length types can also be
00096      * subscripted (e.g., name, point). Variable-length types can *not* be
00097      * turned into pseudo-arrays like that. Hence, the way to determine
00098      * whether a type is a "true" array type is if:
00099      *
00100      * typelem != 0 and typlen == -1.
00101      */
00102     Oid         typelem;
00103 
00104     /*
00105      * If there is a "true" array type having this type as element type,
00106      * typarray links to it.  Zero if no associated "true" array type.
00107      */
00108     Oid         typarray;
00109 
00110     /*
00111      * I/O conversion procedures for the datatype.
00112      */
00113     regproc     typinput;       /* text format (required) */
00114     regproc     typoutput;
00115     regproc     typreceive;     /* binary format (optional) */
00116     regproc     typsend;
00117 
00118     /*
00119      * I/O functions for optional type modifiers.
00120      */
00121     regproc     typmodin;
00122     regproc     typmodout;
00123 
00124     /*
00125      * Custom ANALYZE procedure for the datatype (0 selects the default).
00126      */
00127     regproc     typanalyze;
00128 
00129     /* ----------------
00130      * typalign is the alignment required when storing a value of this
00131      * type.  It applies to storage on disk as well as most
00132      * representations of the value inside Postgres.  When multiple values
00133      * are stored consecutively, such as in the representation of a
00134      * complete row on disk, padding is inserted before a datum of this
00135      * type so that it begins on the specified boundary.  The alignment
00136      * reference is the beginning of the first datum in the sequence.
00137      *
00138      * 'c' = CHAR alignment, ie no alignment needed.
00139      * 's' = SHORT alignment (2 bytes on most machines).
00140      * 'i' = INT alignment (4 bytes on most machines).
00141      * 'd' = DOUBLE alignment (8 bytes on many machines, but by no means all).
00142      *
00143      * See include/access/tupmacs.h for the macros that compute these
00144      * alignment requirements.  Note also that we allow the nominal alignment
00145      * to be violated when storing "packed" varlenas; the TOAST mechanism
00146      * takes care of hiding that from most code.
00147      *
00148      * NOTE: for types used in system tables, it is critical that the
00149      * size and alignment defined in pg_type agree with the way that the
00150      * compiler will lay out the field in a struct representing a table row.
00151      * ----------------
00152      */
00153     char        typalign;
00154 
00155     /* ----------------
00156      * typstorage tells if the type is prepared for toasting and what
00157      * the default strategy for attributes of this type should be.
00158      *
00159      * 'p' PLAIN      type not prepared for toasting
00160      * 'e' EXTERNAL   external storage possible, don't try to compress
00161      * 'x' EXTENDED   try to compress and store external if required
00162      * 'm' MAIN       like 'x' but try to keep in main tuple
00163      * ----------------
00164      */
00165     char        typstorage;
00166 
00167     /*
00168      * This flag represents a "NOT NULL" constraint against this datatype.
00169      *
00170      * If true, the attnotnull column for a corresponding table column using
00171      * this datatype will always enforce the NOT NULL constraint.
00172      *
00173      * Used primarily for domain types.
00174      */
00175     bool        typnotnull;
00176 
00177     /*
00178      * Domains use typbasetype to show the base (or domain) type that the
00179      * domain is based on.  Zero if the type is not a domain.
00180      */
00181     Oid         typbasetype;
00182 
00183     /*
00184      * Domains use typtypmod to record the typmod to be applied to their base
00185      * type (-1 if base type does not use a typmod).  -1 if this type is not a
00186      * domain.
00187      */
00188     int32       typtypmod;
00189 
00190     /*
00191      * typndims is the declared number of dimensions for an array domain type
00192      * (i.e., typbasetype is an array type).  Otherwise zero.
00193      */
00194     int32       typndims;
00195 
00196     /*
00197      * Collation: 0 if type cannot use collations, DEFAULT_COLLATION_OID for
00198      * collatable base types, possibly other OID for domains
00199      */
00200     Oid         typcollation;
00201 
00202 #ifdef CATALOG_VARLEN           /* variable-length fields start here */
00203 
00204     /*
00205      * If typdefaultbin is not NULL, it is the nodeToString representation of
00206      * a default expression for the type.  Currently this is only used for
00207      * domains.
00208      */
00209     pg_node_tree typdefaultbin;
00210 
00211     /*
00212      * typdefault is NULL if the type has no associated default value. If
00213      * typdefaultbin is not NULL, typdefault must contain a human-readable
00214      * version of the default expression represented by typdefaultbin. If
00215      * typdefaultbin is NULL and typdefault is not, then typdefault is the
00216      * external representation of the type's default value, which may be fed
00217      * to the type's input converter to produce a constant.
00218      */
00219     text        typdefault;
00220 
00221     /*
00222      * Access permissions
00223      */
00224     aclitem     typacl[1];
00225 #endif
00226 } FormData_pg_type;
00227 
00228 /* ----------------
00229  *      Form_pg_type corresponds to a pointer to a row with
00230  *      the format of pg_type relation.
00231  * ----------------
00232  */
00233 typedef FormData_pg_type *Form_pg_type;
00234 
00235 /* ----------------
00236  *      compiler constants for pg_type
00237  * ----------------
00238  */
00239 #define Natts_pg_type                   30
00240 #define Anum_pg_type_typname            1
00241 #define Anum_pg_type_typnamespace       2
00242 #define Anum_pg_type_typowner           3
00243 #define Anum_pg_type_typlen             4
00244 #define Anum_pg_type_typbyval           5
00245 #define Anum_pg_type_typtype            6
00246 #define Anum_pg_type_typcategory        7
00247 #define Anum_pg_type_typispreferred     8
00248 #define Anum_pg_type_typisdefined       9
00249 #define Anum_pg_type_typdelim           10
00250 #define Anum_pg_type_typrelid           11
00251 #define Anum_pg_type_typelem            12
00252 #define Anum_pg_type_typarray           13
00253 #define Anum_pg_type_typinput           14
00254 #define Anum_pg_type_typoutput          15
00255 #define Anum_pg_type_typreceive         16
00256 #define Anum_pg_type_typsend            17
00257 #define Anum_pg_type_typmodin           18
00258 #define Anum_pg_type_typmodout          19
00259 #define Anum_pg_type_typanalyze         20
00260 #define Anum_pg_type_typalign           21
00261 #define Anum_pg_type_typstorage         22
00262 #define Anum_pg_type_typnotnull         23
00263 #define Anum_pg_type_typbasetype        24
00264 #define Anum_pg_type_typtypmod          25
00265 #define Anum_pg_type_typndims           26
00266 #define Anum_pg_type_typcollation       27
00267 #define Anum_pg_type_typdefaultbin      28
00268 #define Anum_pg_type_typdefault         29
00269 #define Anum_pg_type_typacl             30
00270 
00271 
00272 /* ----------------
00273  *      initial contents of pg_type
00274  * ----------------
00275  */
00276 
00277 /*
00278  * Keep the following ordered by OID so that later changes can be made more
00279  * easily.
00280  *
00281  * For types used in the system catalogs, make sure the values here match
00282  * TypInfo[] in bootstrap.c.
00283  */
00284 
00285 /* OIDS 1 - 99 */
00286 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_ ));
00287 DESCR("boolean, 'true'/'false'");
00288 #define BOOLOID         16
00289 
00290 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_ ));
00291 DESCR("variable-length string, binary values escaped");
00292 #define BYTEAOID        17
00293 
00294 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_ ));
00295 DESCR("single character");
00296 #define CHAROID         18
00297 
00298 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_ ));
00299 DESCR("63-byte type for storing system identifiers");
00300 #define NAMEOID         19
00301 
00302 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_ ));
00303 DESCR("~18 digit integer, 8-byte storage");
00304 #define INT8OID         20
00305 
00306 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_ ));
00307 DESCR("-32 thousand to 32 thousand, 2-byte storage");
00308 #define INT2OID         21
00309 
00310 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_ ));
00311 DESCR("array of int2, used in system tables");
00312 #define INT2VECTOROID   22
00313 
00314 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_ ));
00315 DESCR("-2 billion to 2 billion integer, 4-byte storage");
00316 #define INT4OID         23
00317 
00318 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_ ));
00319 DESCR("registered procedure");
00320 #define REGPROCOID      24
00321 
00322 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_ ));
00323 DESCR("variable-length string, no limit specified");
00324 #define TEXTOID         25
00325 
00326 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_ ));
00327 DESCR("object identifier(oid), maximum 4 billion");
00328 #define OIDOID          26
00329 
00330 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_ ));
00331 DESCR("(block, offset), physical location of tuple");
00332 #define TIDOID      27
00333 
00334 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_ ));
00335 DESCR("transaction id");
00336 #define XIDOID 28
00337 
00338 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_ ));
00339 DESCR("command identifier type, sequence in transaction id");
00340 #define CIDOID 29
00341 
00342 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_ ));
00343 DESCR("array of oids, used in system tables");
00344 #define OIDVECTOROID    30
00345 
00346 /* hand-built rowtype entries for bootstrapped catalogs */
00347 /* NB: OIDs assigned here must match the BKI_ROWTYPE_OID declarations */
00348 
00349 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_ ));
00350 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_ ));
00351 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_ ));
00352 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_ ));
00353 
00354 /* OIDS 100 - 199 */
00355 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_ ));
00356 #define JSONOID 114
00357 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_ ));
00358 DESCR("XML content");
00359 #define XMLOID 142
00360 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_ ));
00361 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_ ));
00362 
00363 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_ ));
00364 DESCR("string representing an internal node tree");
00365 #define PGNODETREEOID   194
00366 
00367 /* OIDS 200 - 299 */
00368 
00369 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_ ));
00370 DESCR("storage manager");
00371 
00372 /* OIDS 300 - 399 */
00373 
00374 /* OIDS 400 - 499 */
00375 
00376 /* OIDS 500 - 599 */
00377 
00378 /* OIDS 600 - 699 */
00379 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_ ));
00380 DESCR("geometric point '(x, y)'");
00381 #define POINTOID        600
00382 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_ ));
00383 DESCR("geometric line segment '(pt1,pt2)'");
00384 #define LSEGOID         601
00385 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_ ));
00386 DESCR("geometric path '(pt1,...)'");
00387 #define PATHOID         602
00388 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_ ));
00389 DESCR("geometric box '(lower left,upper right)'");
00390 #define BOXOID          603
00391 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_ ));
00392 DESCR("geometric polygon '(pt1,...)'");
00393 #define POLYGONOID      604
00394 
00395 DATA(insert OID = 628 (  line      PGNSP PGUID 32 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_ ));
00396 DESCR("geometric line (not implemented)");
00397 #define LINEOID         628
00398 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_ ));
00399 DESCR("");
00400 
00401 /* OIDS 700 - 799 */
00402 
00403 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_ ));
00404 DESCR("single-precision floating point number, 4-byte storage");
00405 #define FLOAT4OID 700
00406 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_ ));
00407 DESCR("double-precision floating point number, 8-byte storage");
00408 #define FLOAT8OID 701
00409 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_ ));
00410 DESCR("absolute, limited-range date and time (Unix system time)");
00411 #define ABSTIMEOID      702
00412 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_ ));
00413 DESCR("relative, limited-range time interval (Unix delta time)");
00414 #define RELTIMEOID      703
00415 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_ ));
00416 DESCR("(abstime,abstime), time interval");
00417 #define TINTERVALOID    704
00418 DATA(insert OID = 705 (  unknown   PGNSP PGUID -2 f b X f t \054 0   0 0 unknownin unknownout unknownrecv unknownsend - - - c p f 0 -1 0 0 _null_ _null_ _null_ ));
00419 DESCR("");
00420 #define UNKNOWNOID      705
00421 
00422 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_ ));
00423 DESCR("geometric circle '(center,radius)'");
00424 #define CIRCLEOID       718
00425 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_ ));
00426 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_ ));
00427 DESCR("monetary amounts, $d,ddd.cc");
00428 #define CASHOID 790
00429 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_ ));
00430 
00431 /* OIDS 800 - 899 */
00432 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_ ));
00433 DESCR("XX:XX:XX:XX:XX:XX, MAC address");
00434 #define MACADDROID 829
00435 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_ ));
00436 DESCR("IP address/netmask, host address, netmask optional");
00437 #define INETOID 869
00438 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_ ));
00439 DESCR("network IP address/netmask, network address");
00440 #define CIDROID 650
00441 
00442 /* OIDS 900 - 999 */
00443 
00444 /* OIDS 1000 - 1099 */
00445 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_ ));
00446 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_ ));
00447 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_ ));
00448 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_ ));
00449 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_ ));
00450 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_ ));
00451 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_ ));
00452 #define INT4ARRAYOID        1007
00453 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_ ));
00454 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_ ));
00455 #define TEXTARRAYOID        1009
00456 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_ ));
00457 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_ ));
00458 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_ ));
00459 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_ ));
00460 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_ ));
00461 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_ ));
00462 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_ ));
00463 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_ ));
00464 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_ ));
00465 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_ ));
00466 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_ ));
00467 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_ ));
00468 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_ ));
00469 #define FLOAT4ARRAYOID 1021
00470 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_ ));
00471 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_ ));
00472 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_ ));
00473 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_ ));
00474 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_ ));
00475 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_ ));
00476 DESCR("access control list");
00477 #define ACLITEMOID      1033
00478 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_ ));
00479 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_ ));
00480 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_ ));
00481 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_ ));
00482 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_ ));
00483 #define CSTRINGARRAYOID     1263
00484 
00485 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_ ));
00486 DESCR("char(length), blank-padded string, fixed storage length");
00487 #define BPCHAROID       1042
00488 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_ ));
00489 DESCR("varchar(length), non-blank-padded string, variable storage length");
00490 #define VARCHAROID      1043
00491 
00492 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_ ));
00493 DESCR("date");
00494 #define DATEOID         1082
00495 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_ ));
00496 DESCR("time of day");
00497 #define TIMEOID         1083
00498 
00499 /* OIDS 1100 - 1199 */
00500 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_ ));
00501 DESCR("date and time");
00502 #define TIMESTAMPOID    1114
00503 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_ ));
00504 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_ ));
00505 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_ ));
00506 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_ ));
00507 DESCR("date and time with time zone");
00508 #define TIMESTAMPTZOID  1184
00509 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_ ));
00510 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_ ));
00511 DESCR("@ <number> <units>, time interval");
00512 #define INTERVALOID     1186
00513 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_ ));
00514 
00515 /* OIDS 1200 - 1299 */
00516 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_ ));
00517 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_ ));
00518 DESCR("time of day with time zone");
00519 #define TIMETZOID       1266
00520 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_ ));
00521 
00522 /* OIDS 1500 - 1599 */
00523 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_ ));
00524 DESCR("fixed-length bit string");
00525 #define BITOID   1560
00526 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_ ));
00527 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_ ));
00528 DESCR("variable-length bit string");
00529 #define VARBITOID     1562
00530 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_ ));
00531 
00532 /* OIDS 1600 - 1699 */
00533 
00534 /* OIDS 1700 - 1799 */
00535 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_ ));
00536 DESCR("numeric(precision, decimal), arbitrary precision number");
00537 #define NUMERICOID      1700
00538 
00539 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_ ));
00540 DESCR("reference to cursor (portal name)");
00541 #define REFCURSOROID    1790
00542 
00543 /* OIDS 2200 - 2299 */
00544 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_ ));
00545 
00546 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_ ));
00547 DESCR("registered procedure (with args)");
00548 #define REGPROCEDUREOID 2202
00549 
00550 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_ ));
00551 DESCR("registered operator");
00552 #define REGOPEROID      2203
00553 
00554 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_ ));
00555 DESCR("registered operator (with args)");
00556 #define REGOPERATOROID  2204
00557 
00558 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_ ));
00559 DESCR("registered class");
00560 #define REGCLASSOID     2205
00561 
00562 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_ ));
00563 DESCR("registered type");
00564 #define REGTYPEOID      2206
00565 
00566 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_ ));
00567 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_ ));
00568 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_ ));
00569 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_ ));
00570 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_ ));
00571 #define REGTYPEARRAYOID 2211
00572 
00573 /* uuid */
00574 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_ ));
00575 DESCR("UUID datatype");
00576 #define UUIDOID 2950
00577 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_ ));
00578 
00579 /* text search */
00580 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_ ));
00581 DESCR("text representation for text search");
00582 #define TSVECTOROID     3614
00583 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_ ));
00584 DESCR("GiST index internal text representation for text search");
00585 #define GTSVECTOROID    3642
00586 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_ ));
00587 DESCR("query representation for text search");
00588 #define TSQUERYOID      3615
00589 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_ ));
00590 DESCR("registered text search configuration");
00591 #define REGCONFIGOID    3734
00592 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_ ));
00593 DESCR("registered text search dictionary");
00594 #define REGDICTIONARYOID    3769
00595 
00596 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_ ));
00597 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_ ));
00598 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_ ));
00599 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_ ));
00600 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_ ));
00601 
00602 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_ ));
00603 DESCR("txid snapshot");
00604 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_ ));
00605 
00606 /* range types */
00607 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_ ));
00608 DESCR("range of integers");
00609 #define INT4RANGEOID        3904
00610 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_ ));
00611 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_ ));
00612 DESCR("range of numerics");
00613 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_ ));
00614 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_ ));
00615 DESCR("range of timestamps without time zone");
00616 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_ ));
00617 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_ ));
00618 DESCR("range of timestamps with time zone");
00619 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_ ));
00620 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_ ));
00621 DESCR("range of dates");
00622 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_ ));
00623 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_ ));
00624 DESCR("range of bigints");
00625 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_ ));
00626 
00627 /*
00628  * pseudo-types
00629  *
00630  * types with typtype='p' represent various special cases in the type system.
00631  *
00632  * These cannot be used to define table columns, but are valid as function
00633  * argument and result types (if supported by the function's implementation
00634  * language).
00635  *
00636  * Note: cstring is a borderline case; it is still considered a pseudo-type,
00637  * but there is now support for it in records and arrays.  Perhaps we should
00638  * just treat it as a regular base type?
00639  */
00640 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_ ));
00641 #define RECORDOID       2249
00642 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_ ));
00643 #define RECORDARRAYOID  2287
00644 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_ ));
00645 #define CSTRINGOID      2275
00646 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_ ));
00647 #define ANYOID          2276
00648 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_ ));
00649 #define ANYARRAYOID     2277
00650 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_ ));
00651 #define VOIDOID         2278
00652 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_ ));
00653 #define TRIGGEROID      2279
00654 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_ ));
00655 #define EVTTRIGGEROID       3838
00656 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_ ));
00657 #define LANGUAGE_HANDLEROID     2280
00658 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_ ));
00659 #define INTERNALOID     2281
00660 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_ ));
00661 #define OPAQUEOID       2282
00662 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_ ));
00663 #define ANYELEMENTOID   2283
00664 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_ ));
00665 #define ANYNONARRAYOID  2776
00666 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_ ));
00667 #define ANYENUMOID      3500
00668 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_ ));
00669 #define FDW_HANDLEROID  3115
00670 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_ ));
00671 #define ANYRANGEOID     3831
00672 
00673 
00674 /*
00675  * macros
00676  */
00677 #define  TYPTYPE_BASE       'b' /* base type (ordinary scalar type) */
00678 #define  TYPTYPE_COMPOSITE  'c' /* composite (e.g., table's rowtype) */
00679 #define  TYPTYPE_DOMAIN     'd' /* domain over another type */
00680 #define  TYPTYPE_ENUM       'e' /* enumerated type */
00681 #define  TYPTYPE_PSEUDO     'p' /* pseudo-type */
00682 #define  TYPTYPE_RANGE      'r' /* range type */
00683 
00684 #define  TYPCATEGORY_INVALID    '\0'    /* not an allowed category */
00685 #define  TYPCATEGORY_ARRAY      'A'
00686 #define  TYPCATEGORY_BOOLEAN    'B'
00687 #define  TYPCATEGORY_COMPOSITE  'C'
00688 #define  TYPCATEGORY_DATETIME   'D'
00689 #define  TYPCATEGORY_ENUM       'E'
00690 #define  TYPCATEGORY_GEOMETRIC  'G'
00691 #define  TYPCATEGORY_NETWORK    'I'     /* think INET */
00692 #define  TYPCATEGORY_NUMERIC    'N'
00693 #define  TYPCATEGORY_PSEUDOTYPE 'P'
00694 #define  TYPCATEGORY_RANGE      'R'
00695 #define  TYPCATEGORY_STRING     'S'
00696 #define  TYPCATEGORY_TIMESPAN   'T'
00697 #define  TYPCATEGORY_USER       'U'
00698 #define  TYPCATEGORY_BITSTRING  'V'     /* er ... "varbit"? */
00699 #define  TYPCATEGORY_UNKNOWN    'X'
00700 
00701 /* Is a type OID a polymorphic pseudotype?  (Beware of multiple evaluation) */
00702 #define IsPolymorphicType(typid)  \
00703     ((typid) == ANYELEMENTOID || \
00704      (typid) == ANYARRAYOID || \
00705      (typid) == ANYNONARRAYOID || \
00706      (typid) == ANYENUMOID || \
00707      (typid) == ANYRANGEOID)
00708 
00709 #endif   /* PG_TYPE_H */