Eneboo - Documentación para desarrolladores
src/libpq/include/catalog/pg_type.h
Ir a la documentación de este archivo.
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-2005, PostgreSQL Global Development Group
00009  * Portions Copyright (c) 1994, Regents of the University of California
00010  *
00011  * $PostgreSQL: pgsql/src/include/catalog/pg_type.h,v 1.166.2.1 2005/11/22 18:23:27 momjian Exp $
00012  *
00013  * NOTES
00014  *        the genbki.sh 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 "nodes/nodes.h"
00023 
00024 /* ----------------
00025  *              postgres.h contains the system type definitions and the
00026  *              CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
00027  *              can be read by both genbki.sh and the C compiler.
00028  * ----------------
00029  */
00030 
00031 /* ----------------
00032  *              pg_type definition.  cpp turns this into
00033  *              typedef struct FormData_pg_type
00034  *
00035  *              Some of the values in a pg_type instance are copied into
00036  *              pg_attribute instances.  Some parts of Postgres use the pg_type copy,
00037  *              while others use the pg_attribute copy, so they must match.
00038  *              See struct FormData_pg_attribute for details.
00039  * ----------------
00040  */
00041 #define TypeRelationId  1247
00042 
00043 CATALOG(pg_type,1247) BKI_BOOTSTRAP
00044 {
00045         NameData        typname;                /* type name */
00046         Oid                     typnamespace;   /* OID of namespace containing this type */
00047         Oid                     typowner;               /* type owner */
00048 
00049         /*
00050          * For a fixed-size type, typlen is the number of bytes we use to
00051          * represent a value of this type, e.g. 4 for an int4.  But for a
00052          * variable-length type, typlen is negative.  We use -1 to indicate a
00053          * "varlena" type (one that has a length word), -2 to indicate a
00054          * null-terminated C string.
00055          */
00056         int2            typlen;
00057 
00058         /*
00059          * typbyval determines whether internal Postgres routines pass a value of
00060          * this type by value or by reference.  typbyval had better be FALSE if
00061          * the length is not 1, 2, or 4 (or 8 on 8-byte-Datum machines).
00062          * Variable-length types are always passed by reference. Note that
00063          * typbyval can be false even if the length would allow pass-by-value;
00064          * this is currently true for type float4, for example.
00065          */
00066         bool            typbyval;
00067 
00068         /*
00069          * typtype is 'b' for a basic type, 'c' for a complex type (ie a table's
00070          * rowtype), 'd' for a domain type, or 'p' for a pseudo type.
00071          *
00072          * If typtype is 'c', typrelid is the OID of the class' entry in pg_class.
00073          */
00074         char            typtype;
00075 
00076         /*
00077          * If typisdefined is false, the entry is only a placeholder (forward
00078          * reference).  We know the type name, but not yet anything else about it.
00079          */
00080         bool            typisdefined;
00081 
00082         char            typdelim;               /* delimiter for arrays of this type */
00083 
00084         Oid                     typrelid;               /* 0 if not a complex type */
00085 
00086         /*
00087          * If typelem is not 0 then it identifies another row in pg_type. The
00088          * current type can then be subscripted like an array yielding values of
00089          * type typelem. A non-zero typelem does not guarantee this type to be a
00090          * "real" array type; some ordinary fixed-length types can also be
00091          * subscripted (e.g., name, point). Variable-length types can *not* be
00092          * turned into pseudo-arrays like that. Hence, the way to determine
00093          * whether a type is a "true" array type is if:
00094          *
00095          * typelem != 0 and typlen == -1.
00096          */
00097         Oid                     typelem;
00098 
00099         /*
00100          * I/O conversion procedures for the datatype.
00101          */
00102         regproc         typinput;               /* text format (required) */
00103         regproc         typoutput;
00104         regproc         typreceive;             /* binary format (optional) */
00105         regproc         typsend;
00106 
00107         /*
00108          * Custom ANALYZE procedure for the datatype (0 selects the default).
00109          */
00110         regproc         typanalyze;
00111 
00112         /* ----------------
00113          * typalign is the alignment required when storing a value of this
00114          * type.  It applies to storage on disk as well as most
00115          * representations of the value inside Postgres.  When multiple values
00116          * are stored consecutively, such as in the representation of a
00117          * complete row on disk, padding is inserted before a datum of this
00118          * type so that it begins on the specified boundary.  The alignment
00119          * reference is the beginning of the first datum in the sequence.
00120          *
00121          * 'c' = CHAR alignment, ie no alignment needed.
00122          * 's' = SHORT alignment (2 bytes on most machines).
00123          * 'i' = INT alignment (4 bytes on most machines).
00124          * 'd' = DOUBLE alignment (8 bytes on many machines, but by no means all).
00125          *
00126          * See include/utils/memutils.h for the macros that compute these
00127          * alignment requirements.
00128          *
00129          * NOTE: for types used in system tables, it is critical that the
00130          * size and alignment defined in pg_type agree with the way that the
00131          * compiler will lay out the field in a struct representing a table row.
00132          * ----------------
00133          */
00134         char            typalign;
00135 
00136         /* ----------------
00137          * typstorage tells if the type is prepared for toasting and what
00138          * the default strategy for attributes of this type should be.
00139          *
00140          * 'p' PLAIN      type not prepared for toasting
00141          * 'e' EXTERNAL   external storage possible, don't try to compress
00142          * 'x' EXTENDED   try to compress and store external if required
00143          * 'm' MAIN               like 'x' but try to keep in main tuple
00144          * ----------------
00145          */
00146         char            typstorage;
00147 
00148         /*
00149          * This flag represents a "NOT NULL" constraint against this datatype.
00150          *
00151          * If true, the attnotnull column for a corresponding table column using
00152          * this datatype will always enforce the NOT NULL constraint.
00153          *
00154          * Used primarily for domain types.
00155          */
00156         bool            typnotnull;
00157 
00158         /*
00159          * Domains use typbasetype to show the base (or complex) type that the
00160          * domain is based on.  Zero if the type is not a domain.
00161          */
00162         Oid                     typbasetype;
00163 
00164         /*
00165          * Domains use typtypmod to record the typmod to be applied to their base
00166          * type (-1 if base type does not use a typmod).  -1 if this type is not a
00167          * domain.
00168          */
00169         int4            typtypmod;
00170 
00171         /*
00172          * typndims is the declared number of dimensions for an array domain type
00173          * (i.e., typbasetype is an array type; the domain's typelem will match
00174          * the base type's typelem).  Otherwise zero.
00175          */
00176         int4            typndims;
00177 
00178         /*
00179          * If typdefaultbin is not NULL, it is the nodeToString representation of
00180          * a default expression for the type.  Currently this is only used for
00181          * domains.
00182          */
00183         text            typdefaultbin;  /* VARIABLE LENGTH FIELD */
00184 
00185         /*
00186          * typdefault is NULL if the type has no associated default value. If
00187          * typdefaultbin is not NULL, typdefault must contain a human-readable
00188          * version of the default expression represented by typdefaultbin. If
00189          * typdefaultbin is NULL and typdefault is not, then typdefault is the
00190          * external representation of the type's default value, which may be fed
00191          * to the type's input converter to produce a constant.
00192          */
00193         text            typdefault;             /* VARIABLE LENGTH FIELD */
00194 
00195 } FormData_pg_type;
00196 
00197 /* ----------------
00198  *              Form_pg_type corresponds to a pointer to a row with
00199  *              the format of pg_type relation.
00200  * ----------------
00201  */
00202 typedef FormData_pg_type *Form_pg_type;
00203 
00204 /* ----------------
00205  *              compiler constants for pg_type
00206  * ----------------
00207  */
00208 #define Natts_pg_type                                   23
00209 #define Anum_pg_type_typname                    1
00210 #define Anum_pg_type_typnamespace               2
00211 #define Anum_pg_type_typowner                   3
00212 #define Anum_pg_type_typlen                             4
00213 #define Anum_pg_type_typbyval                   5
00214 #define Anum_pg_type_typtype                    6
00215 #define Anum_pg_type_typisdefined               7
00216 #define Anum_pg_type_typdelim                   8
00217 #define Anum_pg_type_typrelid                   9
00218 #define Anum_pg_type_typelem                    10
00219 #define Anum_pg_type_typinput                   11
00220 #define Anum_pg_type_typoutput                  12
00221 #define Anum_pg_type_typreceive                 13
00222 #define Anum_pg_type_typsend                    14
00223 #define Anum_pg_type_typanalyze                 15
00224 #define Anum_pg_type_typalign                   16
00225 #define Anum_pg_type_typstorage                 17
00226 #define Anum_pg_type_typnotnull                 18
00227 #define Anum_pg_type_typbasetype                19
00228 #define Anum_pg_type_typtypmod                  20
00229 #define Anum_pg_type_typndims                   21
00230 #define Anum_pg_type_typdefaultbin              22
00231 #define Anum_pg_type_typdefault                 23
00232 
00233 
00234 /* ----------------
00235  *              initial contents of pg_type
00236  * ----------------
00237  */
00238 
00239 /* keep the following ordered by OID so that later changes can be made easier*/
00240 
00241 /* Make sure the typlen, typbyval, and typalign values here match the initial
00242    values for attlen, attbyval, and attalign in both places in pg_attribute.h
00243    for every instance.
00244 */
00245 
00246 /* OIDS 1 - 99 */
00247 DATA(insert OID = 16 (  bool       PGNSP PGUID  1 t b t \054 0   0 boolin boolout boolrecv boolsend - c p f 0 -1 0 _null_ _null_ ));
00248 DESCR("boolean, 'true'/'false'");
00249 #define BOOLOID                 16
00250 
00251 DATA(insert OID = 17 (  bytea      PGNSP PGUID -1 f b t \054 0  0 byteain byteaout bytearecv byteasend - i x f 0 -1 0 _null_ _null_ ));
00252 DESCR("variable-length string, binary values escaped");
00253 #define BYTEAOID                17
00254 
00255 DATA(insert OID = 18 (  char       PGNSP PGUID  1 t b t \054 0   0 charin charout charrecv charsend - c p f 0 -1 0 _null_ _null_ ));
00256 DESCR("single character");
00257 #define CHAROID                 18
00258 
00259 DATA(insert OID = 19 (  name       PGNSP PGUID NAMEDATALEN f b t \054 0 18 namein nameout namerecv namesend - i p f 0 -1 0 _null_ _null_ ));
00260 DESCR("63-character type for storing system identifiers");
00261 #define NAMEOID                 19
00262 
00263 DATA(insert OID = 20 (  int8       PGNSP PGUID  8 f b t \054 0   0 int8in int8out int8recv int8send - d p f 0 -1 0 _null_ _null_ ));
00264 DESCR("~18 digit integer, 8-byte storage");
00265 #define INT8OID                 20
00266 
00267 DATA(insert OID = 21 (  int2       PGNSP PGUID  2 t b t \054 0   0 int2in int2out int2recv int2send - s p f 0 -1 0 _null_ _null_ ));
00268 DESCR("-32 thousand to 32 thousand, 2-byte storage");
00269 #define INT2OID                 21
00270 
00271 DATA(insert OID = 22 (  int2vector PGNSP PGUID -1 f b t \054 0  21 int2vectorin int2vectorout int2vectorrecv int2vectorsend - i p f 0 -1 0 _null_ _null_ ));
00272 DESCR("array of int2, used in system tables");
00273 #define INT2VECTOROID   22
00274 
00275 DATA(insert OID = 23 (  int4       PGNSP PGUID  4 t b t \054 0   0 int4in int4out int4recv int4send - i p f 0 -1 0 _null_ _null_ ));
00276 DESCR("-2 billion to 2 billion integer, 4-byte storage");
00277 #define INT4OID                 23
00278 
00279 DATA(insert OID = 24 (  regproc    PGNSP PGUID  4 t b t \054 0   0 regprocin regprocout regprocrecv regprocsend - i p f 0 -1 0 _null_ _null_ ));
00280 DESCR("registered procedure");
00281 #define REGPROCOID              24
00282 
00283 DATA(insert OID = 25 (  text       PGNSP PGUID -1 f b t \054 0  0 textin textout textrecv textsend - i x f 0 -1 0 _null_ _null_ ));
00284 DESCR("variable-length string, no limit specified");
00285 #define TEXTOID                 25
00286 
00287 DATA(insert OID = 26 (  oid                PGNSP PGUID  4 t b t \054 0   0 oidin oidout oidrecv oidsend - i p f 0 -1 0 _null_ _null_ ));
00288 DESCR("object identifier(oid), maximum 4 billion");
00289 #define OIDOID                  26
00290 
00291 DATA(insert OID = 27 (  tid                PGNSP PGUID  6 f b t \054 0   0 tidin tidout tidrecv tidsend - s p f 0 -1 0 _null_ _null_ ));
00292 DESCR("(Block, offset), physical location of tuple");
00293 #define TIDOID          27
00294 
00295 DATA(insert OID = 28 (  xid                PGNSP PGUID  4 t b t \054 0   0 xidin xidout xidrecv xidsend - i p f 0 -1 0 _null_ _null_ ));
00296 DESCR("transaction id");
00297 #define XIDOID 28
00298 
00299 DATA(insert OID = 29 (  cid                PGNSP PGUID  4 t b t \054 0   0 cidin cidout cidrecv cidsend - i p f 0 -1 0 _null_ _null_ ));
00300 DESCR("command identifier type, sequence in transaction id");
00301 #define CIDOID 29
00302 
00303 DATA(insert OID = 30 (  oidvector  PGNSP PGUID -1 f b t \054 0  26 oidvectorin oidvectorout oidvectorrecv oidvectorsend - i p f 0 -1 0 _null_ _null_ ));
00304 DESCR("array of oids, used in system tables");
00305 #define OIDVECTOROID    30
00306 
00307 /* hand-built rowtype entries for bootstrapped catalogs: */
00308 
00309 DATA(insert OID = 71 (  pg_type                 PGNSP PGUID -1 f c t \054 1247 0 record_in record_out record_recv record_send - d x f 0 -1 0 _null_ _null_ ));
00310 #define PG_TYPE_RELTYPE_OID 71
00311 DATA(insert OID = 75 (  pg_attribute    PGNSP PGUID -1 f c t \054 1249 0 record_in record_out record_recv record_send - d x f 0 -1 0 _null_ _null_ ));
00312 #define PG_ATTRIBUTE_RELTYPE_OID 75
00313 DATA(insert OID = 81 (  pg_proc                 PGNSP PGUID -1 f c t \054 1255 0 record_in record_out record_recv record_send - d x f 0 -1 0 _null_ _null_ ));
00314 #define PG_PROC_RELTYPE_OID 81
00315 DATA(insert OID = 83 (  pg_class                PGNSP PGUID -1 f c t \054 1259 0 record_in record_out record_recv record_send - d x f 0 -1 0 _null_ _null_ ));
00316 #define PG_CLASS_RELTYPE_OID 83
00317 
00318 /* OIDS 100 - 199 */
00319 
00320 /* OIDS 200 - 299 */
00321 
00322 DATA(insert OID = 210 (  smgr      PGNSP PGUID 2 t b t \054 0 0 smgrin smgrout - - - s p f 0 -1 0 _null_ _null_ ));
00323 DESCR("storage manager");
00324 
00325 /* OIDS 300 - 399 */
00326 
00327 /* OIDS 400 - 499 */
00328 
00329 /* OIDS 500 - 599 */
00330 
00331 /* OIDS 600 - 699 */
00332 DATA(insert OID = 600 (  point     PGNSP PGUID 16 f b t \054 0 701 point_in point_out point_recv point_send - d p f 0 -1 0 _null_ _null_ ));
00333 DESCR("geometric point '(x, y)'");
00334 #define POINTOID                600
00335 DATA(insert OID = 601 (  lseg      PGNSP PGUID 32 f b t \054 0 600 lseg_in lseg_out lseg_recv lseg_send - d p f 0 -1 0 _null_ _null_ ));
00336 DESCR("geometric line segment '(pt1,pt2)'");
00337 #define LSEGOID                 601
00338 DATA(insert OID = 602 (  path      PGNSP PGUID -1 f b t \054 0 0 path_in path_out path_recv path_send - d x f 0 -1 0 _null_ _null_ ));
00339 DESCR("geometric path '(pt1,...)'");
00340 #define PATHOID                 602
00341 DATA(insert OID = 603 (  box       PGNSP PGUID 32 f b t \073 0 600 box_in box_out box_recv box_send - d p f 0 -1 0 _null_ _null_ ));
00342 DESCR("geometric box '(lower left,upper right)'");
00343 #define BOXOID                  603
00344 DATA(insert OID = 604 (  polygon   PGNSP PGUID -1 f b t \054 0   0 poly_in poly_out poly_recv poly_send - d x f 0 -1 0 _null_ _null_ ));
00345 DESCR("geometric polygon '(pt1,...)'");
00346 #define POLYGONOID              604
00347 
00348 DATA(insert OID = 628 (  line      PGNSP PGUID 32 f b t \054 0 701 line_in line_out line_recv line_send - d p f 0 -1 0 _null_ _null_ ));
00349 DESCR("geometric line (not implemented)'");
00350 #define LINEOID                 628
00351 DATA(insert OID = 629 (  _line     PGNSP PGUID  -1 f b t \054 0 628 array_in array_out array_recv array_send - d x f 0 -1 0 _null_ _null_ ));
00352 DESCR("");
00353 
00354 /* OIDS 700 - 799 */
00355 
00356 DATA(insert OID = 700 (  float4    PGNSP PGUID  4 f b t \054 0   0 float4in float4out float4recv float4send - i p f 0 -1 0 _null_ _null_ ));
00357 DESCR("single-precision floating point number, 4-byte storage");
00358 #define FLOAT4OID 700
00359 DATA(insert OID = 701 (  float8    PGNSP PGUID  8 f b t \054 0   0 float8in float8out float8recv float8send - d p f 0 -1 0 _null_ _null_ ));
00360 DESCR("double-precision floating point number, 8-byte storage");
00361 #define FLOAT8OID 701
00362 DATA(insert OID = 702 (  abstime   PGNSP PGUID  4 t b t \054 0   0 abstimein abstimeout abstimerecv abstimesend - i p f 0 -1 0 _null_ _null_ ));
00363 DESCR("absolute, limited-range date and time (Unix system time)");
00364 #define ABSTIMEOID              702
00365 DATA(insert OID = 703 (  reltime   PGNSP PGUID  4 t b t \054 0   0 reltimein reltimeout reltimerecv reltimesend - i p f 0 -1 0 _null_ _null_ ));
00366 DESCR("relative, limited-range time interval (Unix delta time)");
00367 #define RELTIMEOID              703
00368 DATA(insert OID = 704 (  tinterval PGNSP PGUID 12 f b t \054 0   0 tintervalin tintervalout tintervalrecv tintervalsend - i p f 0 -1 0 _null_ _null_ ));
00369 DESCR("(abstime,abstime), time interval");
00370 #define TINTERVALOID    704
00371 DATA(insert OID = 705 (  unknown   PGNSP PGUID -2 f b t \054 0   0 unknownin unknownout unknownrecv unknownsend - c p f 0 -1 0 _null_ _null_ ));
00372 DESCR("");
00373 #define UNKNOWNOID              705
00374 
00375 DATA(insert OID = 718 (  circle    PGNSP PGUID  24 f b t \054 0 0 circle_in circle_out circle_recv circle_send - d p f 0 -1 0 _null_ _null_ ));
00376 DESCR("geometric circle '(center,radius)'");
00377 #define CIRCLEOID               718
00378 DATA(insert OID = 719 (  _circle   PGNSP PGUID  -1 f b t \054 0  718 array_in array_out array_recv array_send - d x f 0 -1 0 _null_ _null_ ));
00379 DATA(insert OID = 790 (  money     PGNSP PGUID   4 f b t \054 0 0 cash_in cash_out cash_recv cash_send - i p f 0 -1 0 _null_ _null_ ));
00380 DESCR("monetary amounts, $d,ddd.cc");
00381 #define CASHOID 790
00382 DATA(insert OID = 791 (  _money    PGNSP PGUID  -1 f b t \054 0  790 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00383 
00384 /* OIDS 800 - 899 */
00385 DATA(insert OID = 829 ( macaddr    PGNSP PGUID  6 f b t \054 0 0 macaddr_in macaddr_out macaddr_recv macaddr_send - i p f 0 -1 0 _null_ _null_ ));
00386 DESCR("XX:XX:XX:XX:XX:XX, MAC address");
00387 #define MACADDROID 829
00388 DATA(insert OID = 869 ( inet       PGNSP PGUID  -1 f b t \054 0 0 inet_in inet_out inet_recv inet_send - i p f 0 -1 0 _null_ _null_ ));
00389 DESCR("IP address/netmask, host address, netmask optional");
00390 #define INETOID 869
00391 DATA(insert OID = 650 ( cidr       PGNSP PGUID  -1 f b t \054 0 0 cidr_in cidr_out cidr_recv cidr_send - i p f 0 -1 0 _null_ _null_ ));
00392 DESCR("network IP address/netmask, network address");
00393 #define CIDROID 650
00394 
00395 /* OIDS 900 - 999 */
00396 
00397 /* OIDS 1000 - 1099 */
00398 DATA(insert OID = 1000 (  _bool          PGNSP PGUID -1 f b t \054 0    16 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00399 DATA(insert OID = 1001 (  _bytea         PGNSP PGUID -1 f b t \054 0    17 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00400 DATA(insert OID = 1002 (  _char          PGNSP PGUID -1 f b t \054 0    18 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00401 DATA(insert OID = 1003 (  _name          PGNSP PGUID -1 f b t \054 0    19 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00402 DATA(insert OID = 1005 (  _int2          PGNSP PGUID -1 f b t \054 0    21 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00403 DATA(insert OID = 1006 (  _int2vector PGNSP PGUID -1 f b t \054 0       22 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00404 DATA(insert OID = 1007 (  _int4          PGNSP PGUID -1 f b t \054 0    23 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00405 #define INT4ARRAYOID            1007
00406 DATA(insert OID = 1008 (  _regproc       PGNSP PGUID -1 f b t \054 0    24 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00407 DATA(insert OID = 1009 (  _text          PGNSP PGUID -1 f b t \054 0    25 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00408 DATA(insert OID = 1028 (  _oid           PGNSP PGUID -1 f b t \054 0    26 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00409 DATA(insert OID = 1010 (  _tid           PGNSP PGUID -1 f b t \054 0    27 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00410 DATA(insert OID = 1011 (  _xid           PGNSP PGUID -1 f b t \054 0    28 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00411 DATA(insert OID = 1012 (  _cid           PGNSP PGUID -1 f b t \054 0    29 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00412 DATA(insert OID = 1013 (  _oidvector PGNSP PGUID -1 f b t \054 0        30 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00413 DATA(insert OID = 1014 (  _bpchar        PGNSP PGUID -1 f b t \054 0 1042 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00414 DATA(insert OID = 1015 (  _varchar       PGNSP PGUID -1 f b t \054 0 1043 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00415 DATA(insert OID = 1016 (  _int8          PGNSP PGUID -1 f b t \054 0    20 array_in array_out array_recv array_send - d x f 0 -1 0 _null_ _null_ ));
00416 DATA(insert OID = 1017 (  _point         PGNSP PGUID -1 f b t \054 0 600 array_in array_out array_recv array_send - d x f 0 -1 0 _null_ _null_ ));
00417 DATA(insert OID = 1018 (  _lseg          PGNSP PGUID -1 f b t \054 0 601 array_in array_out array_recv array_send - d x f 0 -1 0 _null_ _null_ ));
00418 DATA(insert OID = 1019 (  _path          PGNSP PGUID -1 f b t \054 0 602 array_in array_out array_recv array_send - d x f 0 -1 0 _null_ _null_ ));
00419 DATA(insert OID = 1020 (  _box           PGNSP PGUID -1 f b t \073 0 603 array_in array_out array_recv array_send - d x f 0 -1 0 _null_ _null_ ));
00420 DATA(insert OID = 1021 (  _float4        PGNSP PGUID -1 f b t \054 0 700 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00421 DATA(insert OID = 1022 (  _float8        PGNSP PGUID -1 f b t \054 0 701 array_in array_out array_recv array_send - d x f 0 -1 0 _null_ _null_ ));
00422 DATA(insert OID = 1023 (  _abstime       PGNSP PGUID -1 f b t \054 0 702 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00423 DATA(insert OID = 1024 (  _reltime       PGNSP PGUID -1 f b t \054 0 703 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00424 DATA(insert OID = 1025 (  _tinterval PGNSP PGUID -1 f b t \054 0 704 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00425 DATA(insert OID = 1027 (  _polygon       PGNSP PGUID -1 f b t \054 0 604 array_in array_out array_recv array_send - d x f 0 -1 0 _null_ _null_ ));
00426 DATA(insert OID = 1033 (  aclitem        PGNSP PGUID 12 f b t \054 0 0 aclitemin aclitemout - - - i p f 0 -1 0 _null_ _null_ ));
00427 DESCR("access control list");
00428 #define ACLITEMOID              1033
00429 DATA(insert OID = 1034 (  _aclitem       PGNSP PGUID -1 f b t \054 0 1033 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00430 DATA(insert OID = 1040 (  _macaddr       PGNSP PGUID -1 f b t \054 0  829 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00431 DATA(insert OID = 1041 (  _inet    PGNSP PGUID -1 f b t \054 0  869 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00432 DATA(insert OID = 651  (  _cidr    PGNSP PGUID -1 f b t \054 0  650 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00433 DATA(insert OID = 1042 ( bpchar          PGNSP PGUID -1 f b t \054 0    0 bpcharin bpcharout bpcharrecv bpcharsend - i x f 0 -1 0 _null_ _null_ ));
00434 DESCR("char(length), blank-padded string, fixed storage length");
00435 #define BPCHAROID               1042
00436 DATA(insert OID = 1043 ( varchar         PGNSP PGUID -1 f b t \054 0    0 varcharin varcharout varcharrecv varcharsend - i x f 0 -1 0 _null_ _null_ ));
00437 DESCR("varchar(length), non-blank-padded string, variable storage length");
00438 #define VARCHAROID              1043
00439 
00440 DATA(insert OID = 1082 ( date            PGNSP PGUID    4 t b t \054 0  0 date_in date_out date_recv date_send - i p f 0 -1 0 _null_ _null_ ));
00441 DESCR("ANSI SQL date");
00442 #define DATEOID                 1082
00443 DATA(insert OID = 1083 ( time            PGNSP PGUID    8 f b t \054 0  0 time_in time_out time_recv time_send - d p f 0 -1 0 _null_ _null_ ));
00444 DESCR("hh:mm:ss, ANSI SQL time");
00445 #define TIMEOID                 1083
00446 
00447 /* OIDS 1100 - 1199 */
00448 DATA(insert OID = 1114 ( timestamp       PGNSP PGUID    8 f b t \054 0  0 timestamp_in timestamp_out timestamp_recv timestamp_send - d p f 0 -1 0 _null_ _null_ ));
00449 DESCR("date and time");
00450 #define TIMESTAMPOID    1114
00451 DATA(insert OID = 1115 ( _timestamp  PGNSP PGUID        -1 f b t \054 0 1114 array_in array_out array_recv array_send - d x f 0 -1 0 _null_ _null_ ));
00452 DATA(insert OID = 1182 ( _date           PGNSP PGUID    -1 f b t \054 0 1082 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00453 DATA(insert OID = 1183 ( _time           PGNSP PGUID    -1 f b t \054 0 1083 array_in array_out array_recv array_send - d x f 0 -1 0 _null_ _null_ ));
00454 DATA(insert OID = 1184 ( timestamptz PGNSP PGUID        8 f b t \054 0  0 timestamptz_in timestamptz_out timestamptz_recv timestamptz_send - d p f 0 -1 0 _null_ _null_ ));
00455 DESCR("date and time with time zone");
00456 #define TIMESTAMPTZOID  1184
00457 DATA(insert OID = 1185 ( _timestamptz PGNSP PGUID -1 f b t \054 0       1184 array_in array_out array_recv array_send - d x f 0 -1 0 _null_ _null_ ));
00458 DATA(insert OID = 1186 ( interval        PGNSP PGUID 16 f b t \054 0    0 interval_in interval_out interval_recv interval_send - d p f 0 -1 0 _null_ _null_ ));
00459 DESCR("@ <number> <units>, time interval");
00460 #define INTERVALOID             1186
00461 DATA(insert OID = 1187 ( _interval       PGNSP PGUID    -1 f b t \054 0 1186 array_in array_out array_recv array_send - d x f 0 -1 0 _null_ _null_ ));
00462 
00463 /* OIDS 1200 - 1299 */
00464 DATA(insert OID = 1231 (  _numeric       PGNSP PGUID -1 f b t \054 0    1700 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00465 DATA(insert OID = 1266 ( timetz          PGNSP PGUID 12 f b t \054 0    0 timetz_in timetz_out timetz_recv timetz_send - d p f 0 -1 0 _null_ _null_ ));
00466 DESCR("hh:mm:ss, ANSI SQL time");
00467 #define TIMETZOID               1266
00468 DATA(insert OID = 1270 ( _timetz         PGNSP PGUID -1 f b t \054 0    1266 array_in array_out array_recv array_send - d x f 0 -1 0 _null_ _null_ ));
00469 
00470 /* OIDS 1500 - 1599 */
00471 DATA(insert OID = 1560 ( bit             PGNSP PGUID -1 f b t \054 0    0 bit_in bit_out bit_recv bit_send - i x f 0 -1 0 _null_ _null_ ));
00472 DESCR("fixed-length bit string");
00473 #define BITOID   1560
00474 DATA(insert OID = 1561 ( _bit            PGNSP PGUID -1 f b t \054 0    1560 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00475 DATA(insert OID = 1562 ( varbit          PGNSP PGUID -1 f b t \054 0    0 varbit_in varbit_out varbit_recv varbit_send - i x f 0 -1 0 _null_ _null_ ));
00476 DESCR("variable-length bit string");
00477 #define VARBITOID         1562
00478 DATA(insert OID = 1563 ( _varbit         PGNSP PGUID -1 f b t \054 0    1562 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00479 
00480 /* OIDS 1600 - 1699 */
00481 
00482 /* OIDS 1700 - 1799 */
00483 DATA(insert OID = 1700 ( numeric           PGNSP PGUID -1 f b t \054 0  0 numeric_in numeric_out numeric_recv numeric_send - i m f 0 -1 0 _null_ _null_ ));
00484 DESCR("numeric(precision, decimal), arbitrary precision number");
00485 #define NUMERICOID              1700
00486 
00487 DATA(insert OID = 1790 ( refcursor         PGNSP PGUID -1 f b t \054 0  0 textin textout textrecv textsend - i x f 0 -1 0 _null_ _null_ ));
00488 DESCR("reference cursor (portal name)");
00489 #define REFCURSOROID    1790
00490 
00491 /* OIDS 2200 - 2299 */
00492 DATA(insert OID = 2201 ( _refcursor    PGNSP PGUID -1 f b t \054 0 1790 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00493 
00494 DATA(insert OID = 2202 ( regprocedure  PGNSP PGUID      4 t b t \054 0   0 regprocedurein regprocedureout regprocedurerecv regproceduresend - i p f 0 -1 0 _null_ _null_ ));
00495 DESCR("registered procedure (with args)");
00496 #define REGPROCEDUREOID 2202
00497 
00498 DATA(insert OID = 2203 ( regoper           PGNSP PGUID  4 t b t \054 0   0 regoperin regoperout regoperrecv regopersend - i p f 0 -1 0 _null_ _null_ ));
00499 DESCR("registered operator");
00500 #define REGOPEROID              2203
00501 
00502 DATA(insert OID = 2204 ( regoperator   PGNSP PGUID      4 t b t \054 0   0 regoperatorin regoperatorout regoperatorrecv regoperatorsend - i p f 0 -1 0 _null_ _null_ ));
00503 DESCR("registered operator (with args)");
00504 #define REGOPERATOROID  2204
00505 
00506 DATA(insert OID = 2205 ( regclass          PGNSP PGUID  4 t b t \054 0   0 regclassin regclassout regclassrecv regclasssend - i p f 0 -1 0 _null_ _null_ ));
00507 DESCR("registered class");
00508 #define REGCLASSOID             2205
00509 
00510 DATA(insert OID = 2206 ( regtype           PGNSP PGUID  4 t b t \054 0   0 regtypein regtypeout regtyperecv regtypesend - i p f 0 -1 0 _null_ _null_ ));
00511 DESCR("registered type");
00512 #define REGTYPEOID              2206
00513 
00514 DATA(insert OID = 2207 ( _regprocedure PGNSP PGUID -1 f b t \054 0 2202 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00515 DATA(insert OID = 2208 ( _regoper          PGNSP PGUID -1 f b t \054 0 2203 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00516 DATA(insert OID = 2209 ( _regoperator  PGNSP PGUID -1 f b t \054 0 2204 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00517 DATA(insert OID = 2210 ( _regclass         PGNSP PGUID -1 f b t \054 0 2205 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00518 DATA(insert OID = 2211 ( _regtype          PGNSP PGUID -1 f b t \054 0 2206 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
00519 
00520 /*
00521  * pseudo-types
00522  *
00523  * types with typtype='p' represent various special cases in the type system.
00524  *
00525  * These cannot be used to define table columns, but are valid as function
00526  * argument and result types (if supported by the function's implementation
00527  * language).
00528  */
00529 DATA(insert OID = 2249 ( record                 PGNSP PGUID -1 f p t \054 0 0 record_in record_out record_recv record_send - d x f 0 -1 0 _null_ _null_ ));
00530 #define RECORDOID               2249
00531 DATA(insert OID = 2275 ( cstring                PGNSP PGUID -2 f p t \054 0 0 cstring_in cstring_out cstring_recv cstring_send - c p f 0 -1 0 _null_ _null_ ));
00532 #define CSTRINGOID              2275
00533 DATA(insert OID = 2276 ( any                    PGNSP PGUID  4 t p t \054 0 0 any_in any_out - - - i p f 0 -1 0 _null_ _null_ ));
00534 #define ANYOID                  2276
00535 DATA(insert OID = 2277 ( anyarray               PGNSP PGUID -1 f p t \054 0 0 anyarray_in anyarray_out anyarray_recv anyarray_send - d x f 0 -1 0 _null_ _null_ ));
00536 #define ANYARRAYOID             2277
00537 DATA(insert OID = 2278 ( void                   PGNSP PGUID  4 t p t \054 0 0 void_in void_out - - - i p f 0 -1 0 _null_ _null_ ));
00538 #define VOIDOID                 2278
00539 DATA(insert OID = 2279 ( trigger                PGNSP PGUID  4 t p t \054 0 0 trigger_in trigger_out - - - i p f 0 -1 0 _null_ _null_ ));
00540 #define TRIGGEROID              2279
00541 DATA(insert OID = 2280 ( language_handler       PGNSP PGUID  4 t p t \054 0 0 language_handler_in language_handler_out - - - i p f 0 -1 0 _null_ _null_ ));
00542 #define LANGUAGE_HANDLEROID             2280
00543 DATA(insert OID = 2281 ( internal               PGNSP PGUID  4 t p t \054 0 0 internal_in internal_out - - - i p f 0 -1 0 _null_ _null_ ));
00544 #define INTERNALOID             2281
00545 DATA(insert OID = 2282 ( opaque                 PGNSP PGUID  4 t p t \054 0 0 opaque_in opaque_out - - - i p f 0 -1 0 _null_ _null_ ));
00546 #define OPAQUEOID               2282
00547 DATA(insert OID = 2283 ( anyelement             PGNSP PGUID  4 t p t \054 0 0 anyelement_in anyelement_out - - - i p f 0 -1 0 _null_ _null_ ));
00548 #define ANYELEMENTOID   2283
00549 
00550 /*
00551  * prototypes for functions in pg_type.c
00552  */
00553 extern Oid      TypeShellMake(const char *typeName, Oid typeNamespace);
00554 
00555 extern Oid TypeCreate(const char *typeName,
00556                    Oid typeNamespace,
00557                    Oid relationOid,
00558                    char relationKind,
00559                    int16 internalSize,
00560                    char typeType,
00561                    char typDelim,
00562                    Oid inputProcedure,
00563                    Oid outputProcedure,
00564                    Oid receiveProcedure,
00565                    Oid sendProcedure,
00566                    Oid analyzeProcedure,
00567                    Oid elementType,
00568                    Oid baseType,
00569                    const char *defaultTypeValue,
00570                    char *defaultTypeBin,
00571                    bool passedByValue,
00572                    char alignment,
00573                    char storage,
00574                    int32 typeMod,
00575                    int32 typNDims,
00576                    bool typeNotNull);
00577 
00578 extern void GenerateTypeDependencies(Oid typeNamespace,
00579                                                  Oid typeObjectId,
00580                                                  Oid relationOid,
00581                                                  char relationKind,
00582                                                  Oid owner,
00583                                                  Oid inputProcedure,
00584                                                  Oid outputProcedure,
00585                                                  Oid receiveProcedure,
00586                                                  Oid sendProcedure,
00587                                                  Oid analyzeProcedure,
00588                                                  Oid elementType,
00589                                                  Oid baseType,
00590                                                  Node *defaultExpr,
00591                                                  bool rebuild);
00592 
00593 extern void TypeRename(const char *oldTypeName, Oid typeNamespace,
00594                    const char *newTypeName);
00595 
00596 extern char *makeArrayTypeName(const char *typeName);
00597 
00598 #endif   /* PG_TYPE_H */
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Enumeraciones Valores de enumeraciones Propiedades Amigas 'defines'