Header And Logo

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

pg_operator.h

Go to the documentation of this file.
00001 /*-------------------------------------------------------------------------
00002  *
00003  * pg_operator.h
00004  *    definition of the system "operator" relation (pg_operator)
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_operator.h
00012  *
00013  * NOTES
00014  *    the genbki.pl script reads this file and generates .bki
00015  *    information from the DATA() statements.
00016  *
00017  *    XXX do NOT break up DATA() statements into multiple lines!
00018  *        the scripts are not as smart as you might think...
00019  *
00020  *-------------------------------------------------------------------------
00021  */
00022 #ifndef PG_OPERATOR_H
00023 #define PG_OPERATOR_H
00024 
00025 #include "catalog/genbki.h"
00026 #include "nodes/pg_list.h"
00027 
00028 /* ----------------
00029  *      pg_operator definition.  cpp turns this into
00030  *      typedef struct FormData_pg_operator
00031  * ----------------
00032  */
00033 #define OperatorRelationId  2617
00034 
00035 CATALOG(pg_operator,2617)
00036 {
00037     NameData    oprname;        /* name of operator */
00038     Oid         oprnamespace;   /* OID of namespace containing this oper */
00039     Oid         oprowner;       /* operator owner */
00040     char        oprkind;        /* 'l', 'r', or 'b' */
00041     bool        oprcanmerge;    /* can be used in merge join? */
00042     bool        oprcanhash;     /* can be used in hash join? */
00043     Oid         oprleft;        /* left arg type, or 0 if 'l' oprkind */
00044     Oid         oprright;       /* right arg type, or 0 if 'r' oprkind */
00045     Oid         oprresult;      /* result datatype */
00046     Oid         oprcom;         /* OID of commutator oper, or 0 if none */
00047     Oid         oprnegate;      /* OID of negator oper, or 0 if none */
00048     regproc     oprcode;        /* OID of underlying function */
00049     regproc     oprrest;        /* OID of restriction estimator, or 0 */
00050     regproc     oprjoin;        /* OID of join estimator, or 0 */
00051 } FormData_pg_operator;
00052 
00053 /* ----------------
00054  *      Form_pg_operator corresponds to a pointer to a tuple with
00055  *      the format of pg_operator relation.
00056  * ----------------
00057  */
00058 typedef FormData_pg_operator *Form_pg_operator;
00059 
00060 /* ----------------
00061  *      compiler constants for pg_operator
00062  * ----------------
00063  */
00064 
00065 #define Natts_pg_operator               14
00066 #define Anum_pg_operator_oprname        1
00067 #define Anum_pg_operator_oprnamespace   2
00068 #define Anum_pg_operator_oprowner       3
00069 #define Anum_pg_operator_oprkind        4
00070 #define Anum_pg_operator_oprcanmerge    5
00071 #define Anum_pg_operator_oprcanhash     6
00072 #define Anum_pg_operator_oprleft        7
00073 #define Anum_pg_operator_oprright       8
00074 #define Anum_pg_operator_oprresult      9
00075 #define Anum_pg_operator_oprcom         10
00076 #define Anum_pg_operator_oprnegate      11
00077 #define Anum_pg_operator_oprcode        12
00078 #define Anum_pg_operator_oprrest        13
00079 #define Anum_pg_operator_oprjoin        14
00080 
00081 /* ----------------
00082  *      initial contents of pg_operator
00083  * ----------------
00084  */
00085 
00086 /*
00087  * Note: every entry in pg_operator.h is expected to have a DESCR() comment.
00088  * If the operator is a deprecated equivalent of some other entry, be sure
00089  * to comment it as such so that initdb doesn't think it's a preferred name
00090  * for the underlying function.
00091  */
00092 
00093 DATA(insert OID =  15 ( "="        PGNSP PGUID b t t    23  20  16 416  36 int48eq eqsel eqjoinsel ));
00094 DESCR("equal");
00095 DATA(insert OID =  36 ( "<>"       PGNSP PGUID b f f    23  20  16 417  15 int48ne neqsel neqjoinsel ));
00096 DESCR("not equal");
00097 DATA(insert OID =  37 ( "<"        PGNSP PGUID b f f    23  20  16 419  82 int48lt scalarltsel scalarltjoinsel ));
00098 DESCR("less than");
00099 DATA(insert OID =  76 ( ">"        PGNSP PGUID b f f    23  20  16 418  80 int48gt scalargtsel scalargtjoinsel ));
00100 DESCR("greater than");
00101 DATA(insert OID =  80 ( "<="       PGNSP PGUID b f f    23  20  16 430  76 int48le scalarltsel scalarltjoinsel ));
00102 DESCR("less than or equal");
00103 DATA(insert OID =  82 ( ">="       PGNSP PGUID b f f    23  20  16 420  37 int48ge scalargtsel scalargtjoinsel ));
00104 DESCR("greater than or equal");
00105 
00106 DATA(insert OID =  58 ( "<"        PGNSP PGUID b f f    16  16  16  59  1695 boollt scalarltsel scalarltjoinsel ));
00107 DESCR("less than");
00108 DATA(insert OID =  59 ( ">"        PGNSP PGUID b f f    16  16  16  58  1694 boolgt scalargtsel scalargtjoinsel ));
00109 DESCR("greater than");
00110 DATA(insert OID =  85 ( "<>"       PGNSP PGUID b f f    16  16  16  85  91 boolne neqsel neqjoinsel ));
00111 DESCR("not equal");
00112 #define BooleanNotEqualOperator   85
00113 DATA(insert OID =  91 ( "="        PGNSP PGUID b t t    16  16  16  91  85 booleq eqsel eqjoinsel ));
00114 DESCR("equal");
00115 #define BooleanEqualOperator   91
00116 DATA(insert OID = 1694 (  "<="     PGNSP PGUID b f f    16  16  16 1695 59 boolle scalarltsel scalarltjoinsel ));
00117 DESCR("less than or equal");
00118 DATA(insert OID = 1695 (  ">="     PGNSP PGUID b f f    16  16  16 1694 58 boolge scalargtsel scalargtjoinsel ));
00119 DESCR("greater than or equal");
00120 
00121 DATA(insert OID =  92 ( "="        PGNSP PGUID b t t    18  18  16  92 630 chareq eqsel eqjoinsel ));
00122 DESCR("equal");
00123 DATA(insert OID =  93 ( "="        PGNSP PGUID b t t    19  19  16  93 643 nameeq eqsel eqjoinsel ));
00124 DESCR("equal");
00125 DATA(insert OID =  94 ( "="        PGNSP PGUID b t t    21  21  16  94 519 int2eq eqsel eqjoinsel ));
00126 DESCR("equal");
00127 DATA(insert OID =  95 ( "<"        PGNSP PGUID b f f    21  21  16 520 524 int2lt scalarltsel scalarltjoinsel ));
00128 DESCR("less than");
00129 DATA(insert OID =  96 ( "="        PGNSP PGUID b t t    23  23  16  96 518 int4eq eqsel eqjoinsel ));
00130 DESCR("equal");
00131 DATA(insert OID =  97 ( "<"        PGNSP PGUID b f f    23  23  16 521 525 int4lt scalarltsel scalarltjoinsel ));
00132 DESCR("less than");
00133 DATA(insert OID =  98 ( "="        PGNSP PGUID b t t    25  25  16  98 531 texteq eqsel eqjoinsel ));
00134 DESCR("equal");
00135 #define TextEqualOperator   98
00136 
00137 DATA(insert OID = 349 (  "||"      PGNSP PGUID b f f 2277 2283 2277 0 0 array_append   -       -     ));
00138 DESCR("append element onto end of array");
00139 DATA(insert OID = 374 (  "||"      PGNSP PGUID b f f 2283 2277 2277 0 0 array_prepend  -       -     ));
00140 DESCR("prepend element onto front of array");
00141 DATA(insert OID = 375 (  "||"      PGNSP PGUID b f f 2277 2277 2277 0 0 array_cat      -       -     ));
00142 DESCR("concatenate");
00143 
00144 DATA(insert OID = 352 (  "="       PGNSP PGUID b f t    28  28  16 352   0 xideq eqsel eqjoinsel ));
00145 DESCR("equal");
00146 DATA(insert OID = 353 (  "="       PGNSP PGUID b f f    28  23  16   0   0 xideqint4 eqsel eqjoinsel ));
00147 DESCR("equal");
00148 DATA(insert OID = 388 (  "!"       PGNSP PGUID r f f    20   0  1700  0  0 numeric_fac - - ));
00149 DESCR("factorial");
00150 DATA(insert OID = 389 (  "!!"      PGNSP PGUID l f f     0  20  1700  0  0 numeric_fac - - ));
00151 DESCR("deprecated, use ! instead");
00152 DATA(insert OID = 385 (  "="       PGNSP PGUID b f t    29  29  16 385   0 cideq eqsel eqjoinsel ));
00153 DESCR("equal");
00154 DATA(insert OID = 386 (  "="       PGNSP PGUID b f t    22  22  16 386   0 int2vectoreq eqsel eqjoinsel ));
00155 DESCR("equal");
00156 
00157 DATA(insert OID = 387 (  "="       PGNSP PGUID b t f    27  27  16 387 402 tideq eqsel eqjoinsel ));
00158 DESCR("equal");
00159 #define TIDEqualOperator   387
00160 DATA(insert OID = 402 (  "<>"      PGNSP PGUID b f f    27  27  16 402 387 tidne neqsel neqjoinsel ));
00161 DESCR("not equal");
00162 DATA(insert OID = 2799 (  "<"      PGNSP PGUID b f f    27  27  16 2800 2802 tidlt scalarltsel scalarltjoinsel ));
00163 DESCR("less than");
00164 #define TIDLessOperator    2799
00165 DATA(insert OID = 2800 (  ">"      PGNSP PGUID b f f    27  27  16 2799 2801 tidgt scalargtsel scalargtjoinsel ));
00166 DESCR("greater than");
00167 DATA(insert OID = 2801 (  "<="     PGNSP PGUID b f f    27  27  16 2802 2800 tidle scalarltsel scalarltjoinsel ));
00168 DESCR("less than or equal");
00169 DATA(insert OID = 2802 (  ">="     PGNSP PGUID b f f    27  27  16 2801 2799 tidge scalargtsel scalargtjoinsel ));
00170 DESCR("greater than or equal");
00171 
00172 DATA(insert OID = 410 ( "="        PGNSP PGUID b t t    20  20  16 410 411 int8eq eqsel eqjoinsel ));
00173 DESCR("equal");
00174 DATA(insert OID = 411 ( "<>"       PGNSP PGUID b f f    20  20  16 411 410 int8ne neqsel neqjoinsel ));
00175 DESCR("not equal");
00176 DATA(insert OID = 412 ( "<"        PGNSP PGUID b f f    20  20  16 413 415 int8lt scalarltsel scalarltjoinsel ));
00177 DESCR("less than");
00178 DATA(insert OID = 413 ( ">"        PGNSP PGUID b f f    20  20  16 412 414 int8gt scalargtsel scalargtjoinsel ));
00179 DESCR("greater than");
00180 DATA(insert OID = 414 ( "<="       PGNSP PGUID b f f    20  20  16 415 413 int8le scalarltsel scalarltjoinsel ));
00181 DESCR("less than or equal");
00182 DATA(insert OID = 415 ( ">="       PGNSP PGUID b f f    20  20  16 414 412 int8ge scalargtsel scalargtjoinsel ));
00183 DESCR("greater than or equal");
00184 
00185 DATA(insert OID = 416 ( "="        PGNSP PGUID b t t    20  23  16  15 417 int84eq eqsel eqjoinsel ));
00186 DESCR("equal");
00187 DATA(insert OID = 417 ( "<>"       PGNSP PGUID b f f    20  23  16  36 416 int84ne neqsel neqjoinsel ));
00188 DESCR("not equal");
00189 DATA(insert OID = 418 ( "<"        PGNSP PGUID b f f    20  23  16  76 430 int84lt scalarltsel scalarltjoinsel ));
00190 DESCR("less than");
00191 DATA(insert OID = 419 ( ">"        PGNSP PGUID b f f    20  23  16  37 420 int84gt scalargtsel scalargtjoinsel ));
00192 DESCR("greater than");
00193 DATA(insert OID = 420 ( "<="       PGNSP PGUID b f f    20  23  16  82 419 int84le scalarltsel scalarltjoinsel ));
00194 DESCR("less than or equal");
00195 DATA(insert OID = 430 ( ">="       PGNSP PGUID b f f    20  23  16  80 418 int84ge scalargtsel scalargtjoinsel ));
00196 DESCR("greater than or equal");
00197 DATA(insert OID = 439 (  "%"       PGNSP PGUID b f f    20  20  20   0   0 int8mod - - ));
00198 DESCR("modulus");
00199 DATA(insert OID = 473 (  "@"       PGNSP PGUID l f f     0  20  20   0   0 int8abs - - ));
00200 DESCR("absolute value");
00201 
00202 DATA(insert OID = 484 (  "-"       PGNSP PGUID l f f     0  20  20   0   0 int8um - - ));
00203 DESCR("negate");
00204 DATA(insert OID = 485 (  "<<"      PGNSP PGUID b f f 604 604    16   0   0 poly_left positionsel positionjoinsel ));
00205 DESCR("is left of");
00206 DATA(insert OID = 486 (  "&<"      PGNSP PGUID b f f 604 604    16   0   0 poly_overleft positionsel positionjoinsel ));
00207 DESCR("overlaps or is left of");
00208 DATA(insert OID = 487 (  "&>"      PGNSP PGUID b f f 604 604    16   0   0 poly_overright positionsel positionjoinsel ));
00209 DESCR("overlaps or is right of");
00210 DATA(insert OID = 488 (  ">>"      PGNSP PGUID b f f 604 604    16   0   0 poly_right positionsel positionjoinsel ));
00211 DESCR("is right of");
00212 DATA(insert OID = 489 (  "<@"      PGNSP PGUID b f f 604 604    16 490   0 poly_contained contsel contjoinsel ));
00213 DESCR("is contained by");
00214 DATA(insert OID = 490 (  "@>"      PGNSP PGUID b f f 604 604    16 489   0 poly_contain contsel contjoinsel ));
00215 DESCR("contains");
00216 DATA(insert OID = 491 (  "~="      PGNSP PGUID b f f 604 604    16 491   0 poly_same eqsel eqjoinsel ));
00217 DESCR("same as");
00218 DATA(insert OID = 492 (  "&&"      PGNSP PGUID b f f 604 604    16 492   0 poly_overlap areasel areajoinsel ));
00219 DESCR("overlaps");
00220 DATA(insert OID = 493 (  "<<"      PGNSP PGUID b f f 603 603    16   0   0 box_left positionsel positionjoinsel ));
00221 DESCR("is left of");
00222 DATA(insert OID = 494 (  "&<"      PGNSP PGUID b f f 603 603    16   0   0 box_overleft positionsel positionjoinsel ));
00223 DESCR("overlaps or is left of");
00224 DATA(insert OID = 495 (  "&>"      PGNSP PGUID b f f 603 603    16   0   0 box_overright positionsel positionjoinsel ));
00225 DESCR("overlaps or is right of");
00226 DATA(insert OID = 496 (  ">>"      PGNSP PGUID b f f 603 603    16   0   0 box_right positionsel positionjoinsel ));
00227 DESCR("is right of");
00228 DATA(insert OID = 497 (  "<@"      PGNSP PGUID b f f 603 603    16 498   0 box_contained contsel contjoinsel ));
00229 DESCR("is contained by");
00230 DATA(insert OID = 498 (  "@>"      PGNSP PGUID b f f 603 603    16 497   0 box_contain contsel contjoinsel ));
00231 DESCR("contains");
00232 DATA(insert OID = 499 (  "~="      PGNSP PGUID b f f 603 603    16 499   0 box_same eqsel eqjoinsel ));
00233 DESCR("same as");
00234 DATA(insert OID = 500 (  "&&"      PGNSP PGUID b f f 603 603    16 500   0 box_overlap areasel areajoinsel ));
00235 DESCR("overlaps");
00236 DATA(insert OID = 501 (  ">="      PGNSP PGUID b f f 603 603    16 505 504 box_ge areasel areajoinsel ));
00237 DESCR("greater than or equal by area");
00238 DATA(insert OID = 502 (  ">"       PGNSP PGUID b f f 603 603    16 504 505 box_gt areasel areajoinsel ));
00239 DESCR("greater than by area");
00240 DATA(insert OID = 503 (  "="       PGNSP PGUID b f f 603 603    16 503   0 box_eq eqsel eqjoinsel ));
00241 DESCR("equal by area");
00242 DATA(insert OID = 504 (  "<"       PGNSP PGUID b f f 603 603    16 502 501 box_lt areasel areajoinsel ));
00243 DESCR("less than by area");
00244 DATA(insert OID = 505 (  "<="      PGNSP PGUID b f f 603 603    16 501 502 box_le areasel areajoinsel ));
00245 DESCR("less than or equal by area");
00246 DATA(insert OID = 506 (  ">^"      PGNSP PGUID b f f 600 600    16   0   0 point_above positionsel positionjoinsel ));
00247 DESCR("is above");
00248 DATA(insert OID = 507 (  "<<"      PGNSP PGUID b f f 600 600    16   0   0 point_left positionsel positionjoinsel ));
00249 DESCR("is left of");
00250 DATA(insert OID = 508 (  ">>"      PGNSP PGUID b f f 600 600    16   0   0 point_right positionsel positionjoinsel ));
00251 DESCR("is right of");
00252 DATA(insert OID = 509 (  "<^"      PGNSP PGUID b f f 600 600    16   0   0 point_below positionsel positionjoinsel ));
00253 DESCR("is below");
00254 DATA(insert OID = 510 (  "~="      PGNSP PGUID b f f 600 600    16 510 713 point_eq eqsel eqjoinsel ));
00255 DESCR("same as");
00256 DATA(insert OID = 511 (  "<@"      PGNSP PGUID b f f 600 603    16 433   0 on_pb contsel contjoinsel ));
00257 DESCR("point inside box");
00258 DATA(insert OID = 433 (  "@>"      PGNSP PGUID b f f 603 600    16 511   0 box_contain_pt contsel contjoinsel ));
00259 DESCR("contains");
00260 DATA(insert OID = 512 (  "<@"      PGNSP PGUID b f f 600 602    16 755   0 on_ppath - - ));
00261 DESCR("point within closed path, or point on open path");
00262 DATA(insert OID = 513 (  "@@"      PGNSP PGUID l f f     0 603 600   0   0 box_center - - ));
00263 DESCR("center of");
00264 DATA(insert OID = 514 (  "*"       PGNSP PGUID b f f    23  23  23 514   0 int4mul - - ));
00265 DESCR("multiply");
00266 DATA(insert OID = 517 (  "<->"     PGNSP PGUID b f f 600 600 701 517     0 point_distance - - ));
00267 DESCR("distance between");
00268 DATA(insert OID = 518 (  "<>"      PGNSP PGUID b f f    23  23  16 518  96 int4ne neqsel neqjoinsel ));
00269 DESCR("not equal");
00270 DATA(insert OID = 519 (  "<>"      PGNSP PGUID b f f    21  21  16 519  94 int2ne neqsel neqjoinsel ));
00271 DESCR("not equal");
00272 DATA(insert OID = 520 (  ">"       PGNSP PGUID b f f    21  21  16  95 522 int2gt scalargtsel scalargtjoinsel ));
00273 DESCR("greater than");
00274 DATA(insert OID = 521 (  ">"       PGNSP PGUID b f f    23  23  16  97 523 int4gt scalargtsel scalargtjoinsel ));
00275 DESCR("greater than");
00276 DATA(insert OID = 522 (  "<="      PGNSP PGUID b f f    21  21  16 524 520 int2le scalarltsel scalarltjoinsel ));
00277 DESCR("less than or equal");
00278 DATA(insert OID = 523 (  "<="      PGNSP PGUID b f f    23  23  16 525 521 int4le scalarltsel scalarltjoinsel ));
00279 DESCR("less than or equal");
00280 DATA(insert OID = 524 (  ">="      PGNSP PGUID b f f    21  21  16 522  95 int2ge scalargtsel scalargtjoinsel ));
00281 DESCR("greater than or equal");
00282 DATA(insert OID = 525 (  ">="      PGNSP PGUID b f f    23  23  16 523  97 int4ge scalargtsel scalargtjoinsel ));
00283 DESCR("greater than or equal");
00284 DATA(insert OID = 526 (  "*"       PGNSP PGUID b f f    21  21  21 526   0 int2mul - - ));
00285 DESCR("multiply");
00286 DATA(insert OID = 527 (  "/"       PGNSP PGUID b f f    21  21  21   0   0 int2div - - ));
00287 DESCR("divide");
00288 DATA(insert OID = 528 (  "/"       PGNSP PGUID b f f    23  23  23   0   0 int4div - - ));
00289 DESCR("divide");
00290 DATA(insert OID = 529 (  "%"       PGNSP PGUID b f f    21  21  21   0   0 int2mod - - ));
00291 DESCR("modulus");
00292 DATA(insert OID = 530 (  "%"       PGNSP PGUID b f f    23  23  23   0   0 int4mod - - ));
00293 DESCR("modulus");
00294 DATA(insert OID = 531 (  "<>"      PGNSP PGUID b f f    25  25  16 531  98 textne neqsel neqjoinsel ));
00295 DESCR("not equal");
00296 DATA(insert OID = 532 (  "="       PGNSP PGUID b t t    21  23  16 533 538 int24eq eqsel eqjoinsel ));
00297 DESCR("equal");
00298 DATA(insert OID = 533 (  "="       PGNSP PGUID b t t    23  21  16 532 539 int42eq eqsel eqjoinsel ));
00299 DESCR("equal");
00300 DATA(insert OID = 534 (  "<"       PGNSP PGUID b f f    21  23  16 537 542 int24lt scalarltsel scalarltjoinsel ));
00301 DESCR("less than");
00302 DATA(insert OID = 535 (  "<"       PGNSP PGUID b f f    23  21  16 536 543 int42lt scalarltsel scalarltjoinsel ));
00303 DESCR("less than");
00304 DATA(insert OID = 536 (  ">"       PGNSP PGUID b f f    21  23  16 535 540 int24gt scalargtsel scalargtjoinsel ));
00305 DESCR("greater than");
00306 DATA(insert OID = 537 (  ">"       PGNSP PGUID b f f    23  21  16 534 541 int42gt scalargtsel scalargtjoinsel ));
00307 DESCR("greater than");
00308 DATA(insert OID = 538 (  "<>"      PGNSP PGUID b f f    21  23  16 539 532 int24ne neqsel neqjoinsel ));
00309 DESCR("not equal");
00310 DATA(insert OID = 539 (  "<>"      PGNSP PGUID b f f    23  21  16 538 533 int42ne neqsel neqjoinsel ));
00311 DESCR("not equal");
00312 DATA(insert OID = 540 (  "<="      PGNSP PGUID b f f    21  23  16 543 536 int24le scalarltsel scalarltjoinsel ));
00313 DESCR("less than or equal");
00314 DATA(insert OID = 541 (  "<="      PGNSP PGUID b f f    23  21  16 542 537 int42le scalarltsel scalarltjoinsel ));
00315 DESCR("less than or equal");
00316 DATA(insert OID = 542 (  ">="      PGNSP PGUID b f f    21  23  16 541 534 int24ge scalargtsel scalargtjoinsel ));
00317 DESCR("greater than or equal");
00318 DATA(insert OID = 543 (  ">="      PGNSP PGUID b f f    23  21  16 540 535 int42ge scalargtsel scalargtjoinsel ));
00319 DESCR("greater than or equal");
00320 DATA(insert OID = 544 (  "*"       PGNSP PGUID b f f    21  23  23 545   0 int24mul - - ));
00321 DESCR("multiply");
00322 DATA(insert OID = 545 (  "*"       PGNSP PGUID b f f    23  21  23 544   0 int42mul - - ));
00323 DESCR("multiply");
00324 DATA(insert OID = 546 (  "/"       PGNSP PGUID b f f    21  23  23   0   0 int24div - - ));
00325 DESCR("divide");
00326 DATA(insert OID = 547 (  "/"       PGNSP PGUID b f f    23  21  23   0   0 int42div - - ));
00327 DESCR("divide");
00328 DATA(insert OID = 550 (  "+"       PGNSP PGUID b f f    21  21  21 550   0 int2pl - - ));
00329 DESCR("add");
00330 DATA(insert OID = 551 (  "+"       PGNSP PGUID b f f    23  23  23 551   0 int4pl - - ));
00331 DESCR("add");
00332 DATA(insert OID = 552 (  "+"       PGNSP PGUID b f f    21  23  23 553   0 int24pl - - ));
00333 DESCR("add");
00334 DATA(insert OID = 553 (  "+"       PGNSP PGUID b f f    23  21  23 552   0 int42pl - - ));
00335 DESCR("add");
00336 DATA(insert OID = 554 (  "-"       PGNSP PGUID b f f    21  21  21   0   0 int2mi - - ));
00337 DESCR("subtract");
00338 DATA(insert OID = 555 (  "-"       PGNSP PGUID b f f    23  23  23   0   0 int4mi - - ));
00339 DESCR("subtract");
00340 DATA(insert OID = 556 (  "-"       PGNSP PGUID b f f    21  23  23   0   0 int24mi - - ));
00341 DESCR("subtract");
00342 DATA(insert OID = 557 (  "-"       PGNSP PGUID b f f    23  21  23   0   0 int42mi - - ));
00343 DESCR("subtract");
00344 DATA(insert OID = 558 (  "-"       PGNSP PGUID l f f     0  23  23   0   0 int4um - - ));
00345 DESCR("negate");
00346 DATA(insert OID = 559 (  "-"       PGNSP PGUID l f f     0  21  21   0   0 int2um - - ));
00347 DESCR("negate");
00348 DATA(insert OID = 560 (  "="       PGNSP PGUID b t t 702 702    16 560 561 abstimeeq eqsel eqjoinsel ));
00349 DESCR("equal");
00350 DATA(insert OID = 561 (  "<>"      PGNSP PGUID b f f 702 702    16 561 560 abstimene neqsel neqjoinsel ));
00351 DESCR("not equal");
00352 DATA(insert OID = 562 (  "<"       PGNSP PGUID b f f 702 702    16 563 565 abstimelt scalarltsel scalarltjoinsel ));
00353 DESCR("less than");
00354 DATA(insert OID = 563 (  ">"       PGNSP PGUID b f f 702 702    16 562 564 abstimegt scalargtsel scalargtjoinsel ));
00355 DESCR("greater than");
00356 DATA(insert OID = 564 (  "<="      PGNSP PGUID b f f 702 702    16 565 563 abstimele scalarltsel scalarltjoinsel ));
00357 DESCR("less than or equal");
00358 DATA(insert OID = 565 (  ">="      PGNSP PGUID b f f 702 702    16 564 562 abstimege scalargtsel scalargtjoinsel ));
00359 DESCR("greater than or equal");
00360 DATA(insert OID = 566 (  "="       PGNSP PGUID b t t 703 703    16 566 567 reltimeeq eqsel eqjoinsel ));
00361 DESCR("equal");
00362 DATA(insert OID = 567 (  "<>"      PGNSP PGUID b f f 703 703    16 567 566 reltimene neqsel neqjoinsel ));
00363 DESCR("not equal");
00364 DATA(insert OID = 568 (  "<"       PGNSP PGUID b f f 703 703    16 569 571 reltimelt scalarltsel scalarltjoinsel ));
00365 DESCR("less than");
00366 DATA(insert OID = 569 (  ">"       PGNSP PGUID b f f 703 703    16 568 570 reltimegt scalargtsel scalargtjoinsel ));
00367 DESCR("greater than");
00368 DATA(insert OID = 570 (  "<="      PGNSP PGUID b f f 703 703    16 571 569 reltimele scalarltsel scalarltjoinsel ));
00369 DESCR("less than or equal");
00370 DATA(insert OID = 571 (  ">="      PGNSP PGUID b f f 703 703    16 570 568 reltimege scalargtsel scalargtjoinsel ));
00371 DESCR("greater than or equal");
00372 DATA(insert OID = 572 (  "~="      PGNSP PGUID b f f 704 704    16 572   0 tintervalsame eqsel eqjoinsel ));
00373 DESCR("same as");
00374 DATA(insert OID = 573 (  "<<"      PGNSP PGUID b f f 704 704    16   0   0 tintervalct - - ));
00375 DESCR("contains");
00376 DATA(insert OID = 574 (  "&&"      PGNSP PGUID b f f 704 704    16 574   0 tintervalov - - ));
00377 DESCR("overlaps");
00378 DATA(insert OID = 575 (  "#="      PGNSP PGUID b f f 704 703    16   0 576 tintervalleneq - - ));
00379 DESCR("equal by length");
00380 DATA(insert OID = 576 (  "#<>"     PGNSP PGUID b f f 704 703    16   0 575 tintervallenne - - ));
00381 DESCR("not equal by length");
00382 DATA(insert OID = 577 (  "#<"      PGNSP PGUID b f f 704 703    16   0 580 tintervallenlt - - ));
00383 DESCR("less than by length");
00384 DATA(insert OID = 578 (  "#>"      PGNSP PGUID b f f 704 703    16   0 579 tintervallengt - - ));
00385 DESCR("greater than by length");
00386 DATA(insert OID = 579 (  "#<="     PGNSP PGUID b f f 704 703    16   0 578 tintervallenle - - ));
00387 DESCR("less than or equal by length");
00388 DATA(insert OID = 580 (  "#>="     PGNSP PGUID b f f 704 703    16   0 577 tintervallenge - - ));
00389 DESCR("greater than or equal by length");
00390 DATA(insert OID = 581 (  "+"       PGNSP PGUID b f f 702 703 702     0   0 timepl - - ));
00391 DESCR("add");
00392 DATA(insert OID = 582 (  "-"       PGNSP PGUID b f f 702 703 702     0   0 timemi - - ));
00393 DESCR("subtract");
00394 DATA(insert OID = 583 (  "<?>"     PGNSP PGUID b f f 702 704    16   0   0 intinterval - - ));
00395 DESCR("is contained by");
00396 DATA(insert OID = 584 (  "-"       PGNSP PGUID l f f     0 700 700   0   0 float4um - - ));
00397 DESCR("negate");
00398 DATA(insert OID = 585 (  "-"       PGNSP PGUID l f f     0 701 701   0   0 float8um - - ));
00399 DESCR("negate");
00400 DATA(insert OID = 586 (  "+"       PGNSP PGUID b f f 700 700 700 586     0 float4pl - - ));
00401 DESCR("add");
00402 DATA(insert OID = 587 (  "-"       PGNSP PGUID b f f 700 700 700     0   0 float4mi - - ));
00403 DESCR("subtract");
00404 DATA(insert OID = 588 (  "/"       PGNSP PGUID b f f 700 700 700     0   0 float4div - - ));
00405 DESCR("divide");
00406 DATA(insert OID = 589 (  "*"       PGNSP PGUID b f f 700 700 700 589     0 float4mul - - ));
00407 DESCR("multiply");
00408 DATA(insert OID = 590 (  "@"       PGNSP PGUID l f f     0 700 700   0   0 float4abs - - ));
00409 DESCR("absolute value");
00410 DATA(insert OID = 591 (  "+"       PGNSP PGUID b f f 701 701 701 591     0 float8pl - - ));
00411 DESCR("add");
00412 DATA(insert OID = 592 (  "-"       PGNSP PGUID b f f 701 701 701     0   0 float8mi - - ));
00413 DESCR("subtract");
00414 DATA(insert OID = 593 (  "/"       PGNSP PGUID b f f 701 701 701     0   0 float8div - - ));
00415 DESCR("divide");
00416 DATA(insert OID = 594 (  "*"       PGNSP PGUID b f f 701 701 701 594     0 float8mul - - ));
00417 DESCR("multiply");
00418 DATA(insert OID = 595 (  "@"       PGNSP PGUID l f f     0 701 701   0   0 float8abs - - ));
00419 DESCR("absolute value");
00420 DATA(insert OID = 596 (  "|/"      PGNSP PGUID l f f     0 701 701   0   0 dsqrt - - ));
00421 DESCR("square root");
00422 DATA(insert OID = 597 (  "||/"     PGNSP PGUID l f f     0 701 701   0   0 dcbrt - - ));
00423 DESCR("cube root");
00424 DATA(insert OID = 1284 (  "|"      PGNSP PGUID l f f     0 704 702   0   0 tintervalstart - - ));
00425 DESCR("start of interval");
00426 DATA(insert OID = 606 (  "<#>"     PGNSP PGUID b f f 702 702 704     0   0 mktinterval - - ));
00427 DESCR("convert to tinterval");
00428 
00429 DATA(insert OID = 607 (  "="       PGNSP PGUID b t t    26  26  16 607 608 oideq eqsel eqjoinsel ));
00430 DESCR("equal");
00431 DATA(insert OID = 608 (  "<>"      PGNSP PGUID b f f    26  26  16 608 607 oidne neqsel neqjoinsel ));
00432 DESCR("not equal");
00433 DATA(insert OID = 609 (  "<"       PGNSP PGUID b f f    26  26  16 610 612 oidlt scalarltsel scalarltjoinsel ));
00434 DESCR("less than");
00435 DATA(insert OID = 610 (  ">"       PGNSP PGUID b f f    26  26  16 609 611 oidgt scalargtsel scalargtjoinsel ));
00436 DESCR("greater than");
00437 DATA(insert OID = 611 (  "<="      PGNSP PGUID b f f    26  26  16 612 610 oidle scalarltsel scalarltjoinsel ));
00438 DESCR("less than or equal");
00439 DATA(insert OID = 612 (  ">="      PGNSP PGUID b f f    26  26  16 611 609 oidge scalargtsel scalargtjoinsel ));
00440 DESCR("greater than or equal");
00441 
00442 DATA(insert OID = 644 (  "<>"      PGNSP PGUID b f f    30  30  16 644 649 oidvectorne neqsel neqjoinsel ));
00443 DESCR("not equal");
00444 DATA(insert OID = 645 (  "<"       PGNSP PGUID b f f    30  30  16 646 648 oidvectorlt scalarltsel scalarltjoinsel ));
00445 DESCR("less than");
00446 DATA(insert OID = 646 (  ">"       PGNSP PGUID b f f    30  30  16 645 647 oidvectorgt scalargtsel scalargtjoinsel ));
00447 DESCR("greater than");
00448 DATA(insert OID = 647 (  "<="      PGNSP PGUID b f f    30  30  16 648 646 oidvectorle scalarltsel scalarltjoinsel ));
00449 DESCR("less than or equal");
00450 DATA(insert OID = 648 (  ">="      PGNSP PGUID b f f    30  30  16 647 645 oidvectorge scalargtsel scalargtjoinsel ));
00451 DESCR("greater than or equal");
00452 DATA(insert OID = 649 (  "="       PGNSP PGUID b t t    30  30  16 649 644 oidvectoreq eqsel eqjoinsel ));
00453 DESCR("equal");
00454 
00455 DATA(insert OID = 613 (  "<->"     PGNSP PGUID b f f 600 628 701     0   0 dist_pl - - ));
00456 DESCR("distance between");
00457 DATA(insert OID = 614 (  "<->"     PGNSP PGUID b f f 600 601 701     0   0 dist_ps - - ));
00458 DESCR("distance between");
00459 DATA(insert OID = 615 (  "<->"     PGNSP PGUID b f f 600 603 701     0   0 dist_pb - - ));
00460 DESCR("distance between");
00461 DATA(insert OID = 616 (  "<->"     PGNSP PGUID b f f 601 628 701     0   0 dist_sl - - ));
00462 DESCR("distance between");
00463 DATA(insert OID = 617 (  "<->"     PGNSP PGUID b f f 601 603 701     0   0 dist_sb - - ));
00464 DESCR("distance between");
00465 DATA(insert OID = 618 (  "<->"     PGNSP PGUID b f f 600 602 701     0   0 dist_ppath - - ));
00466 DESCR("distance between");
00467 
00468 DATA(insert OID = 620 (  "="       PGNSP PGUID b t t    700  700    16 620 621 float4eq eqsel eqjoinsel ));
00469 DESCR("equal");
00470 DATA(insert OID = 621 (  "<>"      PGNSP PGUID b f f    700  700    16 621 620 float4ne neqsel neqjoinsel ));
00471 DESCR("not equal");
00472 DATA(insert OID = 622 (  "<"       PGNSP PGUID b f f    700  700    16 623 625 float4lt scalarltsel scalarltjoinsel ));
00473 DESCR("less than");
00474 DATA(insert OID = 623 (  ">"       PGNSP PGUID b f f    700  700    16 622 624 float4gt scalargtsel scalargtjoinsel ));
00475 DESCR("greater than");
00476 DATA(insert OID = 624 (  "<="      PGNSP PGUID b f f    700  700    16 625 623 float4le scalarltsel scalarltjoinsel ));
00477 DESCR("less than or equal");
00478 DATA(insert OID = 625 (  ">="      PGNSP PGUID b f f    700  700    16 624 622 float4ge scalargtsel scalargtjoinsel ));
00479 DESCR("greater than or equal");
00480 DATA(insert OID = 630 (  "<>"      PGNSP PGUID b f f    18  18      16 630  92  charne neqsel neqjoinsel ));
00481 DESCR("not equal");
00482 
00483 DATA(insert OID = 631 (  "<"       PGNSP PGUID b f f    18  18  16 633 634 charlt scalarltsel scalarltjoinsel ));
00484 DESCR("less than");
00485 DATA(insert OID = 632 (  "<="      PGNSP PGUID b f f    18  18  16 634 633 charle scalarltsel scalarltjoinsel ));
00486 DESCR("less than or equal");
00487 DATA(insert OID = 633 (  ">"       PGNSP PGUID b f f    18  18  16 631 632 chargt scalargtsel scalargtjoinsel ));
00488 DESCR("greater than");
00489 DATA(insert OID = 634 (  ">="      PGNSP PGUID b f f    18  18  16 632 631 charge scalargtsel scalargtjoinsel ));
00490 DESCR("greater than or equal");
00491 
00492 DATA(insert OID = 639 (  "~"       PGNSP PGUID b f f    19  25  16 0 640 nameregexeq regexeqsel regexeqjoinsel ));
00493 DESCR("matches regular expression, case-sensitive");
00494 #define OID_NAME_REGEXEQ_OP     639
00495 DATA(insert OID = 640 (  "!~"      PGNSP PGUID b f f    19  25  16 0 639 nameregexne regexnesel regexnejoinsel ));
00496 DESCR("does not match regular expression, case-sensitive");
00497 DATA(insert OID = 641 (  "~"       PGNSP PGUID b f f    25  25  16 0 642 textregexeq regexeqsel regexeqjoinsel ));
00498 DESCR("matches regular expression, case-sensitive");
00499 #define OID_TEXT_REGEXEQ_OP     641
00500 DATA(insert OID = 642 (  "!~"      PGNSP PGUID b f f    25  25  16 0 641 textregexne regexnesel regexnejoinsel ));
00501 DESCR("does not match regular expression, case-sensitive");
00502 DATA(insert OID = 643 (  "<>"      PGNSP PGUID b f f    19  19  16 643 93 namene neqsel neqjoinsel ));
00503 DESCR("not equal");
00504 DATA(insert OID = 654 (  "||"      PGNSP PGUID b f f    25  25  25   0 0 textcat - - ));
00505 DESCR("concatenate");
00506 
00507 DATA(insert OID = 660 (  "<"       PGNSP PGUID b f f    19  19  16 662 663 namelt scalarltsel scalarltjoinsel ));
00508 DESCR("less than");
00509 DATA(insert OID = 661 (  "<="      PGNSP PGUID b f f    19  19  16 663 662 namele scalarltsel scalarltjoinsel ));
00510 DESCR("less than or equal");
00511 DATA(insert OID = 662 (  ">"       PGNSP PGUID b f f    19  19  16 660 661 namegt scalargtsel scalargtjoinsel ));
00512 DESCR("greater than");
00513 DATA(insert OID = 663 (  ">="      PGNSP PGUID b f f    19  19  16 661 660 namege scalargtsel scalargtjoinsel ));
00514 DESCR("greater than or equal");
00515 DATA(insert OID = 664 (  "<"       PGNSP PGUID b f f    25  25  16 666 667 text_lt scalarltsel scalarltjoinsel ));
00516 DESCR("less than");
00517 DATA(insert OID = 665 (  "<="      PGNSP PGUID b f f    25  25  16 667 666 text_le scalarltsel scalarltjoinsel ));
00518 DESCR("less than or equal");
00519 DATA(insert OID = 666 (  ">"       PGNSP PGUID b f f    25  25  16 664 665 text_gt scalargtsel scalargtjoinsel ));
00520 DESCR("greater than");
00521 DATA(insert OID = 667 (  ">="      PGNSP PGUID b f f    25  25  16 665 664 text_ge scalargtsel scalargtjoinsel ));
00522 DESCR("greater than or equal");
00523 
00524 DATA(insert OID = 670 (  "="       PGNSP PGUID b t t    701  701    16 670 671 float8eq eqsel eqjoinsel ));
00525 DESCR("equal");
00526 DATA(insert OID = 671 (  "<>"      PGNSP PGUID b f f    701  701    16 671 670 float8ne neqsel neqjoinsel ));
00527 DESCR("not equal");
00528 DATA(insert OID = 672 (  "<"       PGNSP PGUID b f f    701  701    16 674 675 float8lt scalarltsel scalarltjoinsel ));
00529 DESCR("less than");
00530 #define Float8LessOperator  672
00531 DATA(insert OID = 673 (  "<="      PGNSP PGUID b f f    701  701    16 675 674 float8le scalarltsel scalarltjoinsel ));
00532 DESCR("less than or equal");
00533 DATA(insert OID = 674 (  ">"       PGNSP PGUID b f f    701  701    16 672 673 float8gt scalargtsel scalargtjoinsel ));
00534 DESCR("greater than");
00535 DATA(insert OID = 675 (  ">="      PGNSP PGUID b f f    701  701    16 673 672 float8ge scalargtsel scalargtjoinsel ));
00536 DESCR("greater than or equal");
00537 
00538 DATA(insert OID = 682 (  "@"       PGNSP PGUID l f f     0  21  21   0   0 int2abs - - ));
00539 DESCR("absolute value");
00540 DATA(insert OID = 684 (  "+"       PGNSP PGUID b f f    20  20  20 684   0 int8pl - - ));
00541 DESCR("add");
00542 DATA(insert OID = 685 (  "-"       PGNSP PGUID b f f    20  20  20   0   0 int8mi - - ));
00543 DESCR("subtract");
00544 DATA(insert OID = 686 (  "*"       PGNSP PGUID b f f    20  20  20 686   0 int8mul - - ));
00545 DESCR("multiply");
00546 DATA(insert OID = 687 (  "/"       PGNSP PGUID b f f    20  20  20   0   0 int8div - - ));
00547 DESCR("divide");
00548 
00549 DATA(insert OID = 688 (  "+"       PGNSP PGUID b f f    20  23  20 692   0 int84pl - - ));
00550 DESCR("add");
00551 DATA(insert OID = 689 (  "-"       PGNSP PGUID b f f    20  23  20   0   0 int84mi - - ));
00552 DESCR("subtract");
00553 DATA(insert OID = 690 (  "*"       PGNSP PGUID b f f    20  23  20 694   0 int84mul - - ));
00554 DESCR("multiply");
00555 DATA(insert OID = 691 (  "/"       PGNSP PGUID b f f    20  23  20   0   0 int84div - - ));
00556 DESCR("divide");
00557 DATA(insert OID = 692 (  "+"       PGNSP PGUID b f f    23  20  20 688   0 int48pl - - ));
00558 DESCR("add");
00559 DATA(insert OID = 693 (  "-"       PGNSP PGUID b f f    23  20  20   0   0 int48mi - - ));
00560 DESCR("subtract");
00561 DATA(insert OID = 694 (  "*"       PGNSP PGUID b f f    23  20  20 690   0 int48mul - - ));
00562 DESCR("multiply");
00563 DATA(insert OID = 695 (  "/"       PGNSP PGUID b f f    23  20  20   0   0 int48div - - ));
00564 DESCR("divide");
00565 
00566 DATA(insert OID = 818 (  "+"       PGNSP PGUID b f f    20  21  20 822   0 int82pl - - ));
00567 DESCR("add");
00568 DATA(insert OID = 819 (  "-"       PGNSP PGUID b f f    20  21  20   0   0 int82mi - - ));
00569 DESCR("subtract");
00570 DATA(insert OID = 820 (  "*"       PGNSP PGUID b f f    20  21  20 824   0 int82mul - - ));
00571 DESCR("multiply");
00572 DATA(insert OID = 821 (  "/"       PGNSP PGUID b f f    20  21  20   0   0 int82div - - ));
00573 DESCR("divide");
00574 DATA(insert OID = 822 (  "+"       PGNSP PGUID b f f    21  20  20 818   0 int28pl - - ));
00575 DESCR("add");
00576 DATA(insert OID = 823 (  "-"       PGNSP PGUID b f f    21  20  20   0   0 int28mi - - ));
00577 DESCR("subtract");
00578 DATA(insert OID = 824 (  "*"       PGNSP PGUID b f f    21  20  20 820   0 int28mul - - ));
00579 DESCR("multiply");
00580 DATA(insert OID = 825 (  "/"       PGNSP PGUID b f f    21  20  20   0   0 int28div - - ));
00581 DESCR("divide");
00582 
00583 DATA(insert OID = 706 (  "<->"     PGNSP PGUID b f f 603 603 701 706     0 box_distance - - ));
00584 DESCR("distance between");
00585 DATA(insert OID = 707 (  "<->"     PGNSP PGUID b f f 602 602 701 707     0 path_distance - - ));
00586 DESCR("distance between");
00587 DATA(insert OID = 708 (  "<->"     PGNSP PGUID b f f 628 628 701 708     0 line_distance - - ));
00588 DESCR("distance between");
00589 DATA(insert OID = 709 (  "<->"     PGNSP PGUID b f f 601 601 701 709     0 lseg_distance - - ));
00590 DESCR("distance between");
00591 DATA(insert OID = 712 (  "<->"     PGNSP PGUID b f f 604 604 701 712     0 poly_distance - - ));
00592 DESCR("distance between");
00593 
00594 DATA(insert OID = 713 (  "<>"      PGNSP PGUID b f f 600 600    16 713 510 point_ne neqsel neqjoinsel ));
00595 DESCR("not equal");
00596 
00597 /* add translation/rotation/scaling operators for geometric types. - thomas 97/05/10 */
00598 DATA(insert OID = 731 (  "+"       PGNSP PGUID b f f    600  600    600  731  0 point_add - - ));
00599 DESCR("add points (translate)");
00600 DATA(insert OID = 732 (  "-"       PGNSP PGUID b f f    600  600    600    0  0 point_sub - - ));
00601 DESCR("subtract points (translate)");
00602 DATA(insert OID = 733 (  "*"       PGNSP PGUID b f f    600  600    600  733  0 point_mul - - ));
00603 DESCR("multiply points (scale/rotate)");
00604 DATA(insert OID = 734 (  "/"       PGNSP PGUID b f f    600  600    600    0  0 point_div - - ));
00605 DESCR("divide points (scale/rotate)");
00606 DATA(insert OID = 735 (  "+"       PGNSP PGUID b f f    602  602    602  735  0 path_add - - ));
00607 DESCR("concatenate");
00608 DATA(insert OID = 736 (  "+"       PGNSP PGUID b f f    602  600    602    0  0 path_add_pt - - ));
00609 DESCR("add (translate path)");
00610 DATA(insert OID = 737 (  "-"       PGNSP PGUID b f f    602  600    602    0  0 path_sub_pt - - ));
00611 DESCR("subtract (translate path)");
00612 DATA(insert OID = 738 (  "*"       PGNSP PGUID b f f    602  600    602    0  0 path_mul_pt - - ));
00613 DESCR("multiply (rotate/scale path)");
00614 DATA(insert OID = 739 (  "/"       PGNSP PGUID b f f    602  600    602    0  0 path_div_pt - - ));
00615 DESCR("divide (rotate/scale path)");
00616 DATA(insert OID = 755 (  "@>"      PGNSP PGUID b f f    602  600     16  512  0 path_contain_pt - - ));
00617 DESCR("contains");
00618 DATA(insert OID = 756 (  "<@"      PGNSP PGUID b f f    600  604     16  757  0 pt_contained_poly contsel contjoinsel ));
00619 DESCR("is contained by");
00620 DATA(insert OID = 757 (  "@>"      PGNSP PGUID b f f    604  600     16  756  0 poly_contain_pt contsel contjoinsel ));
00621 DESCR("contains");
00622 DATA(insert OID = 758 (  "<@"      PGNSP PGUID b f f    600  718     16  759  0 pt_contained_circle contsel contjoinsel ));
00623 DESCR("is contained by");
00624 DATA(insert OID = 759 (  "@>"      PGNSP PGUID b f f    718  600     16  758  0 circle_contain_pt contsel contjoinsel ));
00625 DESCR("contains");
00626 
00627 DATA(insert OID = 773 (  "@"       PGNSP PGUID l f f     0  23  23   0   0 int4abs - - ));
00628 DESCR("absolute value");
00629 
00630 /* additional operators for geometric types - thomas 1997-07-09 */
00631 DATA(insert OID =  792 (  "="      PGNSP PGUID b f f    602  602     16  792  0 path_n_eq eqsel eqjoinsel ));
00632 DESCR("equal");
00633 DATA(insert OID =  793 (  "<"      PGNSP PGUID b f f    602  602     16  794  0 path_n_lt - - ));
00634 DESCR("less than");
00635 DATA(insert OID =  794 (  ">"      PGNSP PGUID b f f    602  602     16  793  0 path_n_gt - - ));
00636 DESCR("greater than");
00637 DATA(insert OID =  795 (  "<="     PGNSP PGUID b f f    602  602     16  796  0 path_n_le - - ));
00638 DESCR("less than or equal");
00639 DATA(insert OID =  796 (  ">="     PGNSP PGUID b f f    602  602     16  795  0 path_n_ge - - ));
00640 DESCR("greater than or equal");
00641 DATA(insert OID =  797 (  "#"      PGNSP PGUID l f f    0    602     23    0  0 path_npoints - - ));
00642 DESCR("number of points");
00643 DATA(insert OID =  798 (  "?#"     PGNSP PGUID b f f    602  602     16    0  0 path_inter - - ));
00644 DESCR("intersect");
00645 DATA(insert OID =  799 (  "@-@"    PGNSP PGUID l f f    0    602    701    0  0 path_length - - ));
00646 DESCR("sum of path segment lengths");
00647 DATA(insert OID =  800 (  ">^"     PGNSP PGUID b f f    603  603     16    0  0 box_above_eq positionsel positionjoinsel ));
00648 DESCR("is above (allows touching)");
00649 DATA(insert OID =  801 (  "<^"     PGNSP PGUID b f f    603  603     16    0  0 box_below_eq positionsel positionjoinsel ));
00650 DESCR("is below (allows touching)");
00651 DATA(insert OID =  802 (  "?#"     PGNSP PGUID b f f    603  603     16    0  0 box_overlap areasel areajoinsel ));
00652 DESCR("deprecated, use && instead");
00653 DATA(insert OID =  803 (  "#"      PGNSP PGUID b f f    603  603    603    0  0 box_intersect - - ));
00654 DESCR("box intersection");
00655 DATA(insert OID =  804 (  "+"      PGNSP PGUID b f f    603  600    603    0  0 box_add - - ));
00656 DESCR("add point to box (translate)");
00657 DATA(insert OID =  805 (  "-"      PGNSP PGUID b f f    603  600    603    0  0 box_sub - - ));
00658 DESCR("subtract point from box (translate)");
00659 DATA(insert OID =  806 (  "*"      PGNSP PGUID b f f    603  600    603    0  0 box_mul - - ));
00660 DESCR("multiply box by point (scale)");
00661 DATA(insert OID =  807 (  "/"      PGNSP PGUID b f f    603  600    603    0  0 box_div - - ));
00662 DESCR("divide box by point (scale)");
00663 DATA(insert OID =  808 (  "?-"     PGNSP PGUID b f f    600  600     16  808  0 point_horiz - - ));
00664 DESCR("horizontally aligned");
00665 DATA(insert OID =  809 (  "?|"     PGNSP PGUID b f f    600  600     16  809  0 point_vert - - ));
00666 DESCR("vertically aligned");
00667 
00668 DATA(insert OID = 811 (  "="       PGNSP PGUID b t f 704 704    16 811 812 tintervaleq eqsel eqjoinsel ));
00669 DESCR("equal");
00670 DATA(insert OID = 812 (  "<>"      PGNSP PGUID b f f 704 704    16 812 811 tintervalne neqsel neqjoinsel ));
00671 DESCR("not equal");
00672 DATA(insert OID = 813 (  "<"       PGNSP PGUID b f f 704 704    16 814 816 tintervallt scalarltsel scalarltjoinsel ));
00673 DESCR("less than");
00674 DATA(insert OID = 814 (  ">"       PGNSP PGUID b f f 704 704    16 813 815 tintervalgt scalargtsel scalargtjoinsel ));
00675 DESCR("greater than");
00676 DATA(insert OID = 815 (  "<="      PGNSP PGUID b f f 704 704    16 816 814 tintervalle scalarltsel scalarltjoinsel ));
00677 DESCR("less than or equal");
00678 DATA(insert OID = 816 (  ">="      PGNSP PGUID b f f 704 704    16 815 813 tintervalge scalargtsel scalargtjoinsel ));
00679 DESCR("greater than or equal");
00680 
00681 DATA(insert OID = 843 (  "*"       PGNSP PGUID b f f    790  700    790 845   0 cash_mul_flt4 - - ));
00682 DESCR("multiply");
00683 DATA(insert OID = 844 (  "/"       PGNSP PGUID b f f    790  700    790   0   0 cash_div_flt4 - - ));
00684 DESCR("divide");
00685 DATA(insert OID = 845 (  "*"       PGNSP PGUID b f f    700  790    790 843   0 flt4_mul_cash - - ));
00686 DESCR("multiply");
00687 
00688 DATA(insert OID = 900 (  "="       PGNSP PGUID b t f    790  790    16 900 901 cash_eq eqsel eqjoinsel ));
00689 DESCR("equal");
00690 DATA(insert OID = 901 (  "<>"      PGNSP PGUID b f f    790  790    16 901 900 cash_ne neqsel neqjoinsel ));
00691 DESCR("not equal");
00692 DATA(insert OID = 902 (  "<"       PGNSP PGUID b f f    790  790    16 903 905 cash_lt scalarltsel scalarltjoinsel ));
00693 DESCR("less than");
00694 DATA(insert OID = 903 (  ">"       PGNSP PGUID b f f    790  790    16 902 904 cash_gt scalargtsel scalargtjoinsel ));
00695 DESCR("greater than");
00696 DATA(insert OID = 904 (  "<="      PGNSP PGUID b f f    790  790    16 905 903 cash_le scalarltsel scalarltjoinsel ));
00697 DESCR("less than or equal");
00698 DATA(insert OID = 905 (  ">="      PGNSP PGUID b f f    790  790    16 904 902 cash_ge scalargtsel scalargtjoinsel ));
00699 DESCR("greater than or equal");
00700 DATA(insert OID = 906 (  "+"       PGNSP PGUID b f f    790  790    790 906   0 cash_pl - - ));
00701 DESCR("add");
00702 DATA(insert OID = 907 (  "-"       PGNSP PGUID b f f    790  790    790   0   0 cash_mi - - ));
00703 DESCR("subtract");
00704 DATA(insert OID = 908 (  "*"       PGNSP PGUID b f f    790  701    790 916   0 cash_mul_flt8 - - ));
00705 DESCR("multiply");
00706 DATA(insert OID = 909 (  "/"       PGNSP PGUID b f f    790  701    790   0   0 cash_div_flt8 - - ));
00707 DESCR("divide");
00708 DATA(insert OID = 912 (  "*"       PGNSP PGUID b f f    790  23     790 917   0 cash_mul_int4 - - ));
00709 DESCR("multiply");
00710 DATA(insert OID = 913 (  "/"       PGNSP PGUID b f f    790  23     790   0   0 cash_div_int4 - - ));
00711 DESCR("divide");
00712 DATA(insert OID = 914 (  "*"       PGNSP PGUID b f f    790  21     790 918   0 cash_mul_int2 - - ));
00713 DESCR("multiply");
00714 DATA(insert OID = 915 (  "/"       PGNSP PGUID b f f    790  21     790   0   0 cash_div_int2 - - ));
00715 DESCR("divide");
00716 DATA(insert OID = 916 (  "*"       PGNSP PGUID b f f    701  790    790 908   0 flt8_mul_cash - - ));
00717 DESCR("multiply");
00718 DATA(insert OID = 917 (  "*"       PGNSP PGUID b f f    23  790     790 912   0 int4_mul_cash - - ));
00719 DESCR("multiply");
00720 DATA(insert OID = 918 (  "*"       PGNSP PGUID b f f    21  790     790 914   0 int2_mul_cash - - ));
00721 DESCR("multiply");
00722 DATA(insert OID = 3825 ( "/"       PGNSP PGUID b f f    790 790     701   0   0 cash_div_cash - - ));
00723 DESCR("divide");
00724 
00725 DATA(insert OID = 965 (  "^"       PGNSP PGUID b f f    701  701    701 0 0 dpow - - ));
00726 DESCR("exponentiation");
00727 DATA(insert OID = 966 (  "+"       PGNSP PGUID b f f 1034 1033 1034 0 0 aclinsert - - ));
00728 DESCR("add/update ACL item");
00729 DATA(insert OID = 967 (  "-"       PGNSP PGUID b f f 1034 1033 1034 0 0 aclremove - - ));
00730 DESCR("remove ACL item");
00731 DATA(insert OID = 968 (  "@>"      PGNSP PGUID b f f 1034 1033   16 0 0 aclcontains - - ));
00732 DESCR("contains");
00733 DATA(insert OID = 974 (  "="       PGNSP PGUID b f t 1033 1033   16 974 0 aclitemeq eqsel eqjoinsel ));
00734 DESCR("equal");
00735 
00736 /* additional geometric operators - thomas 1997-07-09 */
00737 DATA(insert OID =  969 (  "@@"     PGNSP PGUID l f f    0  601  600    0  0 lseg_center - - ));
00738 DESCR("center of");
00739 DATA(insert OID =  970 (  "@@"     PGNSP PGUID l f f    0  602  600    0  0 path_center - - ));
00740 DESCR("center of");
00741 DATA(insert OID =  971 (  "@@"     PGNSP PGUID l f f    0  604  600    0  0 poly_center - - ));
00742 DESCR("center of");
00743 
00744 DATA(insert OID = 1054 ( "="       PGNSP PGUID b t t 1042 1042   16 1054 1057 bpchareq eqsel eqjoinsel ));
00745 DESCR("equal");
00746 
00747 DATA(insert OID = 1055 ( "~"       PGNSP PGUID b f f 1042 25     16    0 1056 bpcharregexeq regexeqsel regexeqjoinsel ));
00748 DESCR("matches regular expression, case-sensitive");
00749 #define OID_BPCHAR_REGEXEQ_OP       1055
00750 DATA(insert OID = 1056 ( "!~"      PGNSP PGUID b f f 1042 25     16    0 1055 bpcharregexne regexnesel regexnejoinsel ));
00751 DESCR("does not match regular expression, case-sensitive");
00752 DATA(insert OID = 1057 ( "<>"      PGNSP PGUID b f f 1042 1042   16 1057 1054 bpcharne neqsel neqjoinsel ));
00753 DESCR("not equal");
00754 DATA(insert OID = 1058 ( "<"       PGNSP PGUID b f f 1042 1042   16 1060 1061 bpcharlt scalarltsel scalarltjoinsel ));
00755 DESCR("less than");
00756 DATA(insert OID = 1059 ( "<="      PGNSP PGUID b f f 1042 1042   16 1061 1060 bpcharle scalarltsel scalarltjoinsel ));
00757 DESCR("less than or equal");
00758 DATA(insert OID = 1060 ( ">"       PGNSP PGUID b f f 1042 1042   16 1058 1059 bpchargt scalargtsel scalargtjoinsel ));
00759 DESCR("greater than");
00760 DATA(insert OID = 1061 ( ">="      PGNSP PGUID b f f 1042 1042   16 1059 1058 bpcharge scalargtsel scalargtjoinsel ));
00761 DESCR("greater than or equal");
00762 
00763 /* generic array comparison operators */
00764 DATA(insert OID = 1070 (  "="      PGNSP PGUID b t t 2277 2277 16 1070 1071 array_eq eqsel eqjoinsel ));
00765 DESCR("equal");
00766 #define ARRAY_EQ_OP 1070
00767 DATA(insert OID = 1071 (  "<>"     PGNSP PGUID b f f 2277 2277 16 1071 1070 array_ne neqsel neqjoinsel ));
00768 DESCR("not equal");
00769 DATA(insert OID = 1072 (  "<"      PGNSP PGUID b f f 2277 2277 16 1073 1075 array_lt scalarltsel scalarltjoinsel ));
00770 DESCR("less than");
00771 #define ARRAY_LT_OP 1072
00772 DATA(insert OID = 1073 (  ">"      PGNSP PGUID b f f 2277 2277 16 1072 1074 array_gt scalargtsel scalargtjoinsel ));
00773 DESCR("greater than");
00774 #define ARRAY_GT_OP 1073
00775 DATA(insert OID = 1074 (  "<="     PGNSP PGUID b f f 2277 2277 16 1075 1073 array_le scalarltsel scalarltjoinsel ));
00776 DESCR("less than or equal");
00777 DATA(insert OID = 1075 (  ">="     PGNSP PGUID b f f 2277 2277 16 1074 1072 array_ge scalargtsel scalargtjoinsel ));
00778 DESCR("greater than or equal");
00779 
00780 /* date operators */
00781 DATA(insert OID = 1076 ( "+"       PGNSP PGUID b f f    1082    1186 1114 2551 0 date_pl_interval - - ));
00782 DESCR("add");
00783 DATA(insert OID = 1077 ( "-"       PGNSP PGUID b f f    1082    1186 1114 0 0 date_mi_interval - - ));
00784 DESCR("subtract");
00785 DATA(insert OID = 1093 ( "="       PGNSP PGUID b t t    1082    1082   16 1093 1094 date_eq eqsel eqjoinsel ));
00786 DESCR("equal");
00787 DATA(insert OID = 1094 ( "<>"      PGNSP PGUID b f f    1082    1082   16 1094 1093 date_ne neqsel neqjoinsel ));
00788 DESCR("not equal");
00789 DATA(insert OID = 1095 ( "<"       PGNSP PGUID b f f    1082    1082   16 1097 1098 date_lt scalarltsel scalarltjoinsel ));
00790 DESCR("less than");
00791 DATA(insert OID = 1096 ( "<="      PGNSP PGUID b f f    1082    1082   16 1098 1097 date_le scalarltsel scalarltjoinsel ));
00792 DESCR("less than or equal");
00793 DATA(insert OID = 1097 ( ">"       PGNSP PGUID b f f    1082    1082   16 1095 1096 date_gt scalargtsel scalargtjoinsel ));
00794 DESCR("greater than");
00795 DATA(insert OID = 1098 ( ">="      PGNSP PGUID b f f    1082    1082   16 1096 1095 date_ge scalargtsel scalargtjoinsel ));
00796 DESCR("greater than or equal");
00797 DATA(insert OID = 1099 ( "-"       PGNSP PGUID b f f    1082    1082   23 0 0 date_mi - - ));
00798 DESCR("subtract");
00799 DATA(insert OID = 1100 ( "+"       PGNSP PGUID b f f    1082      23 1082 2555 0 date_pli - - ));
00800 DESCR("add");
00801 DATA(insert OID = 1101 ( "-"       PGNSP PGUID b f f    1082      23 1082 0 0 date_mii - - ));
00802 DESCR("subtract");
00803 
00804 /* time operators */
00805 DATA(insert OID = 1108 ( "="       PGNSP PGUID b t t    1083    1083  16 1108 1109 time_eq eqsel eqjoinsel ));
00806 DESCR("equal");
00807 DATA(insert OID = 1109 ( "<>"      PGNSP PGUID b f f    1083    1083  16 1109 1108 time_ne neqsel neqjoinsel ));
00808 DESCR("not equal");
00809 DATA(insert OID = 1110 ( "<"       PGNSP PGUID b f f    1083    1083  16 1112 1113 time_lt scalarltsel scalarltjoinsel ));
00810 DESCR("less than");
00811 DATA(insert OID = 1111 ( "<="      PGNSP PGUID b f f    1083    1083  16 1113 1112 time_le scalarltsel scalarltjoinsel ));
00812 DESCR("less than or equal");
00813 DATA(insert OID = 1112 ( ">"       PGNSP PGUID b f f    1083    1083  16 1110 1111 time_gt scalargtsel scalargtjoinsel ));
00814 DESCR("greater than");
00815 DATA(insert OID = 1113 ( ">="      PGNSP PGUID b f f    1083    1083  16 1111 1110 time_ge scalargtsel scalargtjoinsel ));
00816 DESCR("greater than or equal");
00817 
00818 /* timetz operators */
00819 DATA(insert OID = 1550 ( "="       PGNSP PGUID b t t    1266 1266   16 1550 1551 timetz_eq eqsel eqjoinsel ));
00820 DESCR("equal");
00821 DATA(insert OID = 1551 ( "<>"      PGNSP PGUID b f f    1266 1266   16 1551 1550 timetz_ne neqsel neqjoinsel ));
00822 DESCR("not equal");
00823 DATA(insert OID = 1552 ( "<"       PGNSP PGUID b f f    1266 1266   16 1554 1555 timetz_lt scalarltsel scalarltjoinsel ));
00824 DESCR("less than");
00825 DATA(insert OID = 1553 ( "<="      PGNSP PGUID b f f    1266 1266   16 1555 1554 timetz_le scalarltsel scalarltjoinsel ));
00826 DESCR("less than or equal");
00827 DATA(insert OID = 1554 ( ">"       PGNSP PGUID b f f    1266 1266   16 1552 1553 timetz_gt scalargtsel scalargtjoinsel ));
00828 DESCR("greater than");
00829 DATA(insert OID = 1555 ( ">="      PGNSP PGUID b f f    1266 1266   16 1553 1552 timetz_ge scalargtsel scalargtjoinsel ));
00830 DESCR("greater than or equal");
00831 
00832 /* float48 operators */
00833 DATA(insert OID = 1116 (  "+"       PGNSP PGUID b f f 700 701 701 1126   0 float48pl - - ));
00834 DESCR("add");
00835 DATA(insert OID = 1117 (  "-"       PGNSP PGUID b f f 700 701 701  0     0 float48mi - - ));
00836 DESCR("subtract");
00837 DATA(insert OID = 1118 (  "/"       PGNSP PGUID b f f 700 701 701  0     0 float48div - - ));
00838 DESCR("divide");
00839 DATA(insert OID = 1119 (  "*"       PGNSP PGUID b f f 700 701 701 1129   0 float48mul - - ));
00840 DESCR("multiply");
00841 DATA(insert OID = 1120 (  "="       PGNSP PGUID b t t  700  701  16 1130 1121 float48eq eqsel eqjoinsel ));
00842 DESCR("equal");
00843 DATA(insert OID = 1121 (  "<>"      PGNSP PGUID b f f  700  701  16 1131 1120 float48ne neqsel neqjoinsel ));
00844 DESCR("not equal");
00845 DATA(insert OID = 1122 (  "<"       PGNSP PGUID b f f  700  701  16 1133 1125 float48lt scalarltsel scalarltjoinsel ));
00846 DESCR("less than");
00847 DATA(insert OID = 1123 (  ">"       PGNSP PGUID b f f  700  701  16 1132 1124 float48gt scalargtsel scalargtjoinsel ));
00848 DESCR("greater than");
00849 DATA(insert OID = 1124 (  "<="      PGNSP PGUID b f f  700  701  16 1135 1123 float48le scalarltsel scalarltjoinsel ));
00850 DESCR("less than or equal");
00851 DATA(insert OID = 1125 (  ">="      PGNSP PGUID b f f  700  701  16 1134 1122 float48ge scalargtsel scalargtjoinsel ));
00852 DESCR("greater than or equal");
00853 
00854 /* float84 operators */
00855 DATA(insert OID = 1126 (  "+"       PGNSP PGUID b f f 701 700 701 1116   0 float84pl - - ));
00856 DESCR("add");
00857 DATA(insert OID = 1127 (  "-"       PGNSP PGUID b f f 701 700 701  0     0 float84mi - - ));
00858 DESCR("subtract");
00859 DATA(insert OID = 1128 (  "/"       PGNSP PGUID b f f 701 700 701  0     0 float84div - - ));
00860 DESCR("divide");
00861 DATA(insert OID = 1129 (  "*"       PGNSP PGUID b f f 701 700 701 1119   0 float84mul - - ));
00862 DESCR("multiply");
00863 DATA(insert OID = 1130 (  "="       PGNSP PGUID b t t  701  700  16 1120 1131 float84eq eqsel eqjoinsel ));
00864 DESCR("equal");
00865 DATA(insert OID = 1131 (  "<>"      PGNSP PGUID b f f  701  700  16 1121 1130 float84ne neqsel neqjoinsel ));
00866 DESCR("not equal");
00867 DATA(insert OID = 1132 (  "<"       PGNSP PGUID b f f  701  700  16 1123 1135 float84lt scalarltsel scalarltjoinsel ));
00868 DESCR("less than");
00869 DATA(insert OID = 1133 (  ">"       PGNSP PGUID b f f  701  700  16 1122 1134 float84gt scalargtsel scalargtjoinsel ));
00870 DESCR("greater than");
00871 DATA(insert OID = 1134 (  "<="      PGNSP PGUID b f f  701  700  16 1125 1133 float84le scalarltsel scalarltjoinsel ));
00872 DESCR("less than or equal");
00873 DATA(insert OID = 1135 (  ">="      PGNSP PGUID b f f  701  700  16 1124 1132 float84ge scalargtsel scalargtjoinsel ));
00874 DESCR("greater than or equal");
00875 
00876 
00877 /* LIKE hacks by Keith Parks. */
00878 DATA(insert OID = 1207 (  "~~"    PGNSP PGUID b f f  19 25  16 0 1208 namelike likesel likejoinsel ));
00879 DESCR("matches LIKE expression");
00880 #define OID_NAME_LIKE_OP        1207
00881 DATA(insert OID = 1208 (  "!~~"   PGNSP PGUID b f f  19 25  16 0 1207 namenlike nlikesel nlikejoinsel ));
00882 DESCR("does not match LIKE expression");
00883 DATA(insert OID = 1209 (  "~~"    PGNSP PGUID b f f  25 25  16 0 1210 textlike likesel likejoinsel ));
00884 DESCR("matches LIKE expression");
00885 #define OID_TEXT_LIKE_OP        1209
00886 DATA(insert OID = 1210 (  "!~~"   PGNSP PGUID b f f  25 25  16 0 1209 textnlike nlikesel nlikejoinsel ));
00887 DESCR("does not match LIKE expression");
00888 DATA(insert OID = 1211 (  "~~"    PGNSP PGUID b f f  1042 25    16 0 1212 bpcharlike likesel likejoinsel ));
00889 DESCR("matches LIKE expression");
00890 #define OID_BPCHAR_LIKE_OP      1211
00891 DATA(insert OID = 1212 (  "!~~"   PGNSP PGUID b f f  1042 25    16 0 1211 bpcharnlike nlikesel nlikejoinsel ));
00892 DESCR("does not match LIKE expression");
00893 
00894 /* case-insensitive regex hacks */
00895 DATA(insert OID = 1226 (  "~*"       PGNSP PGUID b f f  19  25  16 0 1227 nameicregexeq icregexeqsel icregexeqjoinsel ));
00896 DESCR("matches regular expression, case-insensitive");
00897 #define OID_NAME_ICREGEXEQ_OP       1226
00898 DATA(insert OID = 1227 (  "!~*"      PGNSP PGUID b f f  19  25  16 0 1226 nameicregexne icregexnesel icregexnejoinsel ));
00899 DESCR("does not match regular expression, case-insensitive");
00900 DATA(insert OID = 1228 (  "~*"       PGNSP PGUID b f f  25  25  16 0 1229 texticregexeq icregexeqsel icregexeqjoinsel ));
00901 DESCR("matches regular expression, case-insensitive");
00902 #define OID_TEXT_ICREGEXEQ_OP       1228
00903 DATA(insert OID = 1229 (  "!~*"      PGNSP PGUID b f f  25  25  16 0 1228 texticregexne icregexnesel icregexnejoinsel ));
00904 DESCR("does not match regular expression, case-insensitive");
00905 DATA(insert OID = 1234 (  "~*"      PGNSP PGUID b f f  1042  25  16 0 1235 bpcharicregexeq icregexeqsel icregexeqjoinsel ));
00906 DESCR("matches regular expression, case-insensitive");
00907 #define OID_BPCHAR_ICREGEXEQ_OP     1234
00908 DATA(insert OID = 1235 ( "!~*"      PGNSP PGUID b f f  1042  25  16 0 1234 bpcharicregexne icregexnesel icregexnejoinsel ));
00909 DESCR("does not match regular expression, case-insensitive");
00910 
00911 /* timestamptz operators */
00912 DATA(insert OID = 1320 (  "="      PGNSP PGUID b t t 1184 1184   16 1320 1321 timestamptz_eq eqsel eqjoinsel ));
00913 DESCR("equal");
00914 DATA(insert OID = 1321 (  "<>"     PGNSP PGUID b f f 1184 1184   16 1321 1320 timestamptz_ne neqsel neqjoinsel ));
00915 DESCR("not equal");
00916 DATA(insert OID = 1322 (  "<"      PGNSP PGUID b f f 1184 1184   16 1324 1325 timestamptz_lt scalarltsel scalarltjoinsel ));
00917 DESCR("less than");
00918 DATA(insert OID = 1323 (  "<="     PGNSP PGUID b f f 1184 1184   16 1325 1324 timestamptz_le scalarltsel scalarltjoinsel ));
00919 DESCR("less than or equal");
00920 DATA(insert OID = 1324 (  ">"      PGNSP PGUID b f f 1184 1184   16 1322 1323 timestamptz_gt scalargtsel scalargtjoinsel ));
00921 DESCR("greater than");
00922 DATA(insert OID = 1325 (  ">="     PGNSP PGUID b f f 1184 1184   16 1323 1322 timestamptz_ge scalargtsel scalargtjoinsel ));
00923 DESCR("greater than or equal");
00924 DATA(insert OID = 1327 (  "+"      PGNSP PGUID b f f 1184 1186 1184  2554 0 timestamptz_pl_interval - - ));
00925 DESCR("add");
00926 DATA(insert OID = 1328 (  "-"      PGNSP PGUID b f f 1184 1184 1186  0  0 timestamptz_mi - - ));
00927 DESCR("subtract");
00928 DATA(insert OID = 1329 (  "-"      PGNSP PGUID b f f 1184 1186 1184  0  0 timestamptz_mi_interval - - ));
00929 DESCR("subtract");
00930 
00931 /* interval operators */
00932 DATA(insert OID = 1330 (  "="      PGNSP PGUID b t t 1186 1186   16 1330 1331 interval_eq eqsel eqjoinsel ));
00933 DESCR("equal");
00934 DATA(insert OID = 1331 (  "<>"     PGNSP PGUID b f f 1186 1186   16 1331 1330 interval_ne neqsel neqjoinsel ));
00935 DESCR("not equal");
00936 DATA(insert OID = 1332 (  "<"      PGNSP PGUID b f f 1186 1186   16 1334 1335 interval_lt scalarltsel scalarltjoinsel ));
00937 DESCR("less than");
00938 DATA(insert OID = 1333 (  "<="     PGNSP PGUID b f f 1186 1186   16 1335 1334 interval_le scalarltsel scalarltjoinsel ));
00939 DESCR("less than or equal");
00940 DATA(insert OID = 1334 (  ">"      PGNSP PGUID b f f 1186 1186   16 1332 1333 interval_gt scalargtsel scalargtjoinsel ));
00941 DESCR("greater than");
00942 DATA(insert OID = 1335 (  ">="     PGNSP PGUID b f f 1186 1186   16 1333 1332 interval_ge scalargtsel scalargtjoinsel ));
00943 DESCR("greater than or equal");
00944 
00945 DATA(insert OID = 1336 (  "-"      PGNSP PGUID l f f    0 1186 1186    0    0 interval_um - - ));
00946 DESCR("negate");
00947 DATA(insert OID = 1337 (  "+"      PGNSP PGUID b f f 1186 1186 1186 1337    0 interval_pl - - ));
00948 DESCR("add");
00949 DATA(insert OID = 1338 (  "-"      PGNSP PGUID b f f 1186 1186 1186    0    0 interval_mi - - ));
00950 DESCR("subtract");
00951 
00952 DATA(insert OID = 1360 (  "+"      PGNSP PGUID b f f 1082 1083 1114 1363 0 datetime_pl - - ));
00953 DESCR("convert date and time to timestamp");
00954 DATA(insert OID = 1361 (  "+"      PGNSP PGUID b f f 1082 1266 1184 1366 0 datetimetz_pl - - ));
00955 DESCR("convert date and time with time zone to timestamp with time zone");
00956 DATA(insert OID = 1363 (  "+"      PGNSP PGUID b f f 1083 1082 1114 1360 0 timedate_pl - - ));
00957 DESCR("convert time and date to timestamp");
00958 DATA(insert OID = 1366 (  "+"      PGNSP PGUID b f f 1266 1082 1184 1361 0 timetzdate_pl - - ));
00959 DESCR("convert time with time zone and date to timestamp with time zone");
00960 
00961 DATA(insert OID = 1399 (  "-"      PGNSP PGUID b f f 1083 1083 1186  0  0 time_mi_time - - ));
00962 DESCR("subtract");
00963 
00964 /* additional geometric operators - thomas 97/04/18 */
00965 DATA(insert OID = 1420 (  "@@"    PGNSP PGUID l f f  0  718 600   0    0 circle_center - - ));
00966 DESCR("center of");
00967 DATA(insert OID = 1500 (  "="     PGNSP PGUID b f f  718    718 16 1500 1501 circle_eq eqsel eqjoinsel ));
00968 DESCR("equal by area");
00969 DATA(insert OID = 1501 (  "<>"    PGNSP PGUID b f f  718    718 16 1501 1500 circle_ne neqsel neqjoinsel ));
00970 DESCR("not equal by area");
00971 DATA(insert OID = 1502 (  "<"     PGNSP PGUID b f f  718    718 16 1503 1505 circle_lt areasel areajoinsel ));
00972 DESCR("less than by area");
00973 DATA(insert OID = 1503 (  ">"     PGNSP PGUID b f f  718    718 16 1502 1504 circle_gt areasel areajoinsel ));
00974 DESCR("greater than by area");
00975 DATA(insert OID = 1504 (  "<="    PGNSP PGUID b f f  718    718 16 1505 1503 circle_le areasel areajoinsel ));
00976 DESCR("less than or equal by area");
00977 DATA(insert OID = 1505 (  ">="    PGNSP PGUID b f f  718    718 16 1504 1502 circle_ge areasel areajoinsel ));
00978 DESCR("greater than or equal by area");
00979 
00980 DATA(insert OID = 1506 (  "<<"    PGNSP PGUID b f f  718    718 16    0    0 circle_left positionsel positionjoinsel ));
00981 DESCR("is left of");
00982 DATA(insert OID = 1507 (  "&<"    PGNSP PGUID b f f  718    718 16    0    0 circle_overleft positionsel positionjoinsel ));
00983 DESCR("overlaps or is left of");
00984 DATA(insert OID = 1508 (  "&>"    PGNSP PGUID b f f  718    718 16    0    0 circle_overright positionsel positionjoinsel ));
00985 DESCR("overlaps or is right of");
00986 DATA(insert OID = 1509 (  ">>"    PGNSP PGUID b f f  718    718 16    0    0 circle_right positionsel positionjoinsel ));
00987 DESCR("is right of");
00988 DATA(insert OID = 1510 (  "<@"    PGNSP PGUID b f f  718    718 16 1511    0 circle_contained contsel contjoinsel ));
00989 DESCR("is contained by");
00990 DATA(insert OID = 1511 (  "@>"    PGNSP PGUID b f f  718    718 16 1510    0 circle_contain contsel contjoinsel ));
00991 DESCR("contains");
00992 DATA(insert OID = 1512 (  "~="    PGNSP PGUID b f f  718    718 16 1512    0 circle_same eqsel eqjoinsel ));
00993 DESCR("same as");
00994 DATA(insert OID = 1513 (  "&&"    PGNSP PGUID b f f  718    718 16 1513    0 circle_overlap areasel areajoinsel ));
00995 DESCR("overlaps");
00996 DATA(insert OID = 1514 (  "|>>"   PGNSP PGUID b f f  718    718 16    0    0 circle_above positionsel positionjoinsel ));
00997 DESCR("is above");
00998 DATA(insert OID = 1515 (  "<<|"   PGNSP PGUID b f f  718    718 16    0    0 circle_below positionsel positionjoinsel ));
00999 DESCR("is below");
01000 
01001 DATA(insert OID = 1516 (  "+"     PGNSP PGUID b f f  718    600  718      0    0 circle_add_pt - - ));
01002 DESCR("add");
01003 DATA(insert OID = 1517 (  "-"     PGNSP PGUID b f f  718    600  718      0    0 circle_sub_pt - - ));
01004 DESCR("subtract");
01005 DATA(insert OID = 1518 (  "*"     PGNSP PGUID b f f  718    600  718      0    0 circle_mul_pt - - ));
01006 DESCR("multiply");
01007 DATA(insert OID = 1519 (  "/"     PGNSP PGUID b f f  718    600  718      0    0 circle_div_pt - - ));
01008 DESCR("divide");
01009 
01010 DATA(insert OID = 1520 (  "<->"   PGNSP PGUID b f f  718    718  701   1520    0 circle_distance - - ));
01011 DESCR("distance between");
01012 DATA(insert OID = 1521 (  "#"     PGNSP PGUID l f f  0      604   23      0    0 poly_npoints - - ));
01013 DESCR("number of points");
01014 DATA(insert OID = 1522 (  "<->"   PGNSP PGUID b f f  600    718  701      0    0 dist_pc - - ));
01015 DESCR("distance between");
01016 DATA(insert OID = 1523 (  "<->"   PGNSP PGUID b f f  718    604  701      0    0 dist_cpoly - - ));
01017 DESCR("distance between");
01018 
01019 /* additional geometric operators - thomas 1997-07-09 */
01020 DATA(insert OID = 1524 (  "<->"   PGNSP PGUID b f f  628    603  701      0  0 dist_lb - - ));
01021 DESCR("distance between");
01022 
01023 DATA(insert OID = 1525 (  "?#"    PGNSP PGUID b f f  601    601 16 1525  0 lseg_intersect - - ));
01024 DESCR("intersect");
01025 DATA(insert OID = 1526 (  "?||"   PGNSP PGUID b f f  601    601 16 1526  0 lseg_parallel - - ));
01026 DESCR("parallel");
01027 DATA(insert OID = 1527 (  "?-|"   PGNSP PGUID b f f  601    601 16 1527  0 lseg_perp - - ));
01028 DESCR("perpendicular");
01029 DATA(insert OID = 1528 (  "?-"    PGNSP PGUID l f f  0  601 16    0  0 lseg_horizontal - - ));
01030 DESCR("horizontal");
01031 DATA(insert OID = 1529 (  "?|"    PGNSP PGUID l f f  0  601 16    0  0 lseg_vertical - - ));
01032 DESCR("vertical");
01033 DATA(insert OID = 1535 (  "="     PGNSP PGUID b f f  601    601 16 1535 1586 lseg_eq eqsel eqjoinsel ));
01034 DESCR("equal");
01035 DATA(insert OID = 1536 (  "#"     PGNSP PGUID b f f  601    601  600 1536  0 lseg_interpt - - ));
01036 DESCR("intersection point");
01037 DATA(insert OID = 1537 (  "?#"    PGNSP PGUID b f f  601    628 16    0  0 inter_sl - - ));
01038 DESCR("intersect");
01039 DATA(insert OID = 1538 (  "?#"    PGNSP PGUID b f f  601    603 16    0  0 inter_sb - - ));
01040 DESCR("intersect");
01041 DATA(insert OID = 1539 (  "?#"    PGNSP PGUID b f f  628    603 16    0  0 inter_lb - - ));
01042 DESCR("intersect");
01043 
01044 DATA(insert OID = 1546 (  "<@"    PGNSP PGUID b f f  600    628 16    0  0 on_pl - - ));
01045 DESCR("point on line");
01046 DATA(insert OID = 1547 (  "<@"    PGNSP PGUID b f f  600    601 16    0  0 on_ps - - ));
01047 DESCR("is contained by");
01048 DATA(insert OID = 1548 (  "<@"    PGNSP PGUID b f f  601    628 16    0  0 on_sl - - ));
01049 DESCR("lseg on line");
01050 DATA(insert OID = 1549 (  "<@"    PGNSP PGUID b f f  601    603 16    0  0 on_sb - - ));
01051 DESCR("is contained by");
01052 
01053 DATA(insert OID = 1557 (  "##"    PGNSP PGUID b f f  600    628  600      0  0 close_pl - - ));
01054 DESCR("closest point to A on B");
01055 DATA(insert OID = 1558 (  "##"    PGNSP PGUID b f f  600    601  600      0  0 close_ps - - ));
01056 DESCR("closest point to A on B");
01057 DATA(insert OID = 1559 (  "##"    PGNSP PGUID b f f  600    603  600      0  0 close_pb - - ));
01058 DESCR("closest point to A on B");
01059 
01060 DATA(insert OID = 1566 (  "##"    PGNSP PGUID b f f  601    628  600      0  0 close_sl - - ));
01061 DESCR("closest point to A on B");
01062 DATA(insert OID = 1567 (  "##"    PGNSP PGUID b f f  601    603  600      0  0 close_sb - - ));
01063 DESCR("closest point to A on B");
01064 DATA(insert OID = 1568 (  "##"    PGNSP PGUID b f f  628    603  600      0  0 close_lb - - ));
01065 DESCR("closest point to A on B");
01066 DATA(insert OID = 1577 (  "##"    PGNSP PGUID b f f  628    601  600      0  0 close_ls - - ));
01067 DESCR("closest point to A on B");
01068 DATA(insert OID = 1578 (  "##"    PGNSP PGUID b f f  601    601  600      0  0 close_lseg - - ));
01069 DESCR("closest point to A on B");
01070 DATA(insert OID = 1583 (  "*"     PGNSP PGUID b f f 1186    701 1186    1584 0 interval_mul - - ));
01071 DESCR("multiply");
01072 DATA(insert OID = 1584 (  "*"     PGNSP PGUID b f f  701 1186 1186  1583 0 mul_d_interval - - ));
01073 DESCR("multiply");
01074 DATA(insert OID = 1585 (  "/"     PGNSP PGUID b f f 1186    701 1186      0  0 interval_div - - ));
01075 DESCR("divide");
01076 
01077 DATA(insert OID = 1586 (  "<>"    PGNSP PGUID b f f  601    601 16 1586 1535 lseg_ne neqsel neqjoinsel ));
01078 DESCR("not equal");
01079 DATA(insert OID = 1587 (  "<"     PGNSP PGUID b f f  601    601 16 1589 1590 lseg_lt - - ));
01080 DESCR("less than by length");
01081 DATA(insert OID = 1588 (  "<="    PGNSP PGUID b f f  601    601 16 1590 1589 lseg_le - - ));
01082 DESCR("less than or equal by length");
01083 DATA(insert OID = 1589 (  ">"     PGNSP PGUID b f f  601    601 16 1587 1588 lseg_gt - - ));
01084 DESCR("greater than by length");
01085 DATA(insert OID = 1590 (  ">="    PGNSP PGUID b f f  601    601 16 1588 1587 lseg_ge - - ));
01086 DESCR("greater than or equal by length");
01087 
01088 DATA(insert OID = 1591 (  "@-@"   PGNSP PGUID l f f 0  601  701    0  0 lseg_length - - ));
01089 DESCR("distance between endpoints");
01090 
01091 DATA(insert OID = 1611 (  "?#"    PGNSP PGUID b f f  628    628 16 1611  0 line_intersect - - ));
01092 DESCR("intersect");
01093 DATA(insert OID = 1612 (  "?||"   PGNSP PGUID b f f  628    628 16 1612  0 line_parallel - - ));
01094 DESCR("parallel");
01095 DATA(insert OID = 1613 (  "?-|"   PGNSP PGUID b f f  628    628 16 1613  0 line_perp - - ));
01096 DESCR("perpendicular");
01097 DATA(insert OID = 1614 (  "?-"    PGNSP PGUID l f f  0  628 16    0  0 line_horizontal - - ));
01098 DESCR("horizontal");
01099 DATA(insert OID = 1615 (  "?|"    PGNSP PGUID l f f  0  628 16    0  0 line_vertical - - ));
01100 DESCR("vertical");
01101 DATA(insert OID = 1616 (  "="     PGNSP PGUID b f f  628    628 16 1616  0 line_eq eqsel eqjoinsel ));
01102 DESCR("equal");
01103 DATA(insert OID = 1617 (  "#"     PGNSP PGUID b f f  628    628  600 1617  0 line_interpt - - ));
01104 DESCR("intersection point");
01105 
01106 /* MAC type */
01107 DATA(insert OID = 1220 (  "="      PGNSP PGUID b t t 829 829     16 1220 1221 macaddr_eq eqsel eqjoinsel ));
01108 DESCR("equal");
01109 DATA(insert OID = 1221 (  "<>"     PGNSP PGUID b f f 829 829     16 1221 1220 macaddr_ne neqsel neqjoinsel ));
01110 DESCR("not equal");
01111 DATA(insert OID = 1222 (  "<"      PGNSP PGUID b f f 829 829     16 1224 1225 macaddr_lt scalarltsel scalarltjoinsel ));
01112 DESCR("less than");
01113 DATA(insert OID = 1223 (  "<="     PGNSP PGUID b f f 829 829     16 1225 1224 macaddr_le scalarltsel scalarltjoinsel ));
01114 DESCR("less than or equal");
01115 DATA(insert OID = 1224 (  ">"      PGNSP PGUID b f f 829 829     16 1222 1223 macaddr_gt scalargtsel scalargtjoinsel ));
01116 DESCR("greater than");
01117 DATA(insert OID = 1225 (  ">="     PGNSP PGUID b f f 829 829     16 1223 1222 macaddr_ge scalargtsel scalargtjoinsel ));
01118 DESCR("greater than or equal");
01119 
01120 DATA(insert OID = 3147 (  "~"      PGNSP PGUID l f f      0 829 829 0 0 macaddr_not - - ));
01121 DESCR("bitwise not");
01122 DATA(insert OID = 3148 (  "&"      PGNSP PGUID b f f    829 829 829 0 0 macaddr_and - - ));
01123 DESCR("bitwise and");
01124 DATA(insert OID = 3149 (  "|"      PGNSP PGUID b f f    829 829 829 0 0 macaddr_or - - ));
01125 DESCR("bitwise or");
01126 
01127 /* INET type (these also support CIDR via implicit cast) */
01128 DATA(insert OID = 1201 (  "="      PGNSP PGUID b t t 869 869     16 1201 1202 network_eq eqsel eqjoinsel ));
01129 DESCR("equal");
01130 DATA(insert OID = 1202 (  "<>"     PGNSP PGUID b f f 869 869     16 1202 1201 network_ne neqsel neqjoinsel ));
01131 DESCR("not equal");
01132 DATA(insert OID = 1203 (  "<"      PGNSP PGUID b f f 869 869     16 1205 1206 network_lt scalarltsel scalarltjoinsel ));
01133 DESCR("less than");
01134 DATA(insert OID = 1204 (  "<="     PGNSP PGUID b f f 869 869     16 1206 1205 network_le scalarltsel scalarltjoinsel ));
01135 DESCR("less than or equal");
01136 DATA(insert OID = 1205 (  ">"      PGNSP PGUID b f f 869 869     16 1203 1204 network_gt scalargtsel scalargtjoinsel ));
01137 DESCR("greater than");
01138 DATA(insert OID = 1206 (  ">="     PGNSP PGUID b f f 869 869     16 1204 1203 network_ge scalargtsel scalargtjoinsel ));
01139 DESCR("greater than or equal");
01140 DATA(insert OID = 931  (  "<<"     PGNSP PGUID b f f 869 869     16 933     0 network_sub - - ));
01141 DESCR("is subnet");
01142 #define OID_INET_SUB_OP               931
01143 DATA(insert OID = 932  (  "<<="    PGNSP PGUID b f f 869 869     16 934     0 network_subeq - - ));
01144 DESCR("is subnet or equal");
01145 #define OID_INET_SUBEQ_OP               932
01146 DATA(insert OID = 933  (  ">>"     PGNSP PGUID b f f 869 869     16 931     0 network_sup - - ));
01147 DESCR("is supernet");
01148 #define OID_INET_SUP_OP               933
01149 DATA(insert OID = 934  (  ">>="    PGNSP PGUID b f f 869 869     16 932     0 network_supeq - - ));
01150 DESCR("is supernet or equal");
01151 #define OID_INET_SUPEQ_OP               934
01152 
01153 DATA(insert OID = 2634 (  "~"      PGNSP PGUID l f f      0 869 869 0 0 inetnot - - ));
01154 DESCR("bitwise not");
01155 DATA(insert OID = 2635 (  "&"      PGNSP PGUID b f f    869 869 869 0 0 inetand - - ));
01156 DESCR("bitwise and");
01157 DATA(insert OID = 2636 (  "|"      PGNSP PGUID b f f    869 869 869 0 0 inetor - - ));
01158 DESCR("bitwise or");
01159 DATA(insert OID = 2637 (  "+"      PGNSP PGUID b f f    869  20 869 2638 0 inetpl - - ));
01160 DESCR("add");
01161 DATA(insert OID = 2638 (  "+"      PGNSP PGUID b f f     20 869 869 2637 0 int8pl_inet - - ));
01162 DESCR("add");
01163 DATA(insert OID = 2639 (  "-"      PGNSP PGUID b f f    869  20 869 0 0 inetmi_int8 - - ));
01164 DESCR("subtract");
01165 DATA(insert OID = 2640 (  "-"      PGNSP PGUID b f f    869 869  20 0 0 inetmi - - ));
01166 DESCR("subtract");
01167 
01168 /* case-insensitive LIKE hacks */
01169 DATA(insert OID = 1625 (  "~~*"   PGNSP PGUID b f f  19 25  16 0 1626 nameiclike iclikesel iclikejoinsel ));
01170 DESCR("matches LIKE expression, case-insensitive");
01171 #define OID_NAME_ICLIKE_OP      1625
01172 DATA(insert OID = 1626 (  "!~~*"  PGNSP PGUID b f f  19 25  16 0 1625 nameicnlike icnlikesel icnlikejoinsel ));
01173 DESCR("does not match LIKE expression, case-insensitive");
01174 DATA(insert OID = 1627 (  "~~*"   PGNSP PGUID b f f  25 25  16 0 1628 texticlike iclikesel iclikejoinsel ));
01175 DESCR("matches LIKE expression, case-insensitive");
01176 #define OID_TEXT_ICLIKE_OP      1627
01177 DATA(insert OID = 1628 (  "!~~*"  PGNSP PGUID b f f  25 25  16 0 1627 texticnlike icnlikesel icnlikejoinsel ));
01178 DESCR("does not match LIKE expression, case-insensitive");
01179 DATA(insert OID = 1629 (  "~~*"   PGNSP PGUID b f f  1042 25    16 0 1630 bpchariclike iclikesel iclikejoinsel ));
01180 DESCR("matches LIKE expression, case-insensitive");
01181 #define OID_BPCHAR_ICLIKE_OP    1629
01182 DATA(insert OID = 1630 (  "!~~*"  PGNSP PGUID b f f  1042 25    16 0 1629 bpcharicnlike icnlikesel icnlikejoinsel ));
01183 DESCR("does not match LIKE expression, case-insensitive");
01184 
01185 /* NUMERIC type - OID's 1700-1799 */
01186 DATA(insert OID = 1751 (  "-"      PGNSP PGUID l f f    0 1700 1700    0    0 numeric_uminus - - ));
01187 DESCR("negate");
01188 DATA(insert OID = 1752 (  "="      PGNSP PGUID b t t 1700 1700   16 1752 1753 numeric_eq eqsel eqjoinsel ));
01189 DESCR("equal");
01190 DATA(insert OID = 1753 (  "<>"     PGNSP PGUID b f f 1700 1700   16 1753 1752 numeric_ne neqsel neqjoinsel ));
01191 DESCR("not equal");
01192 DATA(insert OID = 1754 (  "<"      PGNSP PGUID b f f 1700 1700   16 1756 1757 numeric_lt scalarltsel scalarltjoinsel ));
01193 DESCR("less than");
01194 DATA(insert OID = 1755 (  "<="     PGNSP PGUID b f f 1700 1700   16 1757 1756 numeric_le scalarltsel scalarltjoinsel ));
01195 DESCR("less than or equal");
01196 DATA(insert OID = 1756 (  ">"      PGNSP PGUID b f f 1700 1700   16 1754 1755 numeric_gt scalargtsel scalargtjoinsel ));
01197 DESCR("greater than");
01198 DATA(insert OID = 1757 (  ">="     PGNSP PGUID b f f 1700 1700   16 1755 1754 numeric_ge scalargtsel scalargtjoinsel ));
01199 DESCR("greater than or equal");
01200 DATA(insert OID = 1758 (  "+"      PGNSP PGUID b f f 1700 1700 1700 1758    0 numeric_add - - ));
01201 DESCR("add");
01202 DATA(insert OID = 1759 (  "-"      PGNSP PGUID b f f 1700 1700 1700    0    0 numeric_sub - - ));
01203 DESCR("subtract");
01204 DATA(insert OID = 1760 (  "*"      PGNSP PGUID b f f 1700 1700 1700 1760    0 numeric_mul - - ));
01205 DESCR("multiply");
01206 DATA(insert OID = 1761 (  "/"      PGNSP PGUID b f f 1700 1700 1700    0    0 numeric_div - - ));
01207 DESCR("divide");
01208 DATA(insert OID = 1762 (  "%"      PGNSP PGUID b f f 1700 1700 1700    0    0 numeric_mod - - ));
01209 DESCR("modulus");
01210 DATA(insert OID = 1038 (  "^"      PGNSP PGUID b f f 1700 1700 1700    0    0 numeric_power - - ));
01211 DESCR("exponentiation");
01212 DATA(insert OID = 1763 (  "@"      PGNSP PGUID l f f    0 1700 1700    0    0 numeric_abs - - ));
01213 DESCR("absolute value");
01214 
01215 DATA(insert OID = 1784 (  "="     PGNSP PGUID b t f 1560 1560 16 1784 1785 biteq eqsel eqjoinsel ));
01216 DESCR("equal");
01217 DATA(insert OID = 1785 (  "<>"    PGNSP PGUID b f f 1560 1560 16 1785 1784 bitne neqsel neqjoinsel ));
01218 DESCR("not equal");
01219 DATA(insert OID = 1786 (  "<"     PGNSP PGUID b f f 1560 1560 16 1787 1789 bitlt scalarltsel scalarltjoinsel ));
01220 DESCR("less than");
01221 DATA(insert OID = 1787 (  ">"     PGNSP PGUID b f f 1560 1560 16 1786 1788 bitgt scalargtsel scalargtjoinsel ));
01222 DESCR("greater than");
01223 DATA(insert OID = 1788 (  "<="    PGNSP PGUID b f f 1560 1560 16 1789 1787 bitle scalarltsel scalarltjoinsel ));
01224 DESCR("less than or equal");
01225 DATA(insert OID = 1789 (  ">="    PGNSP PGUID b f f 1560 1560 16 1788 1786 bitge scalargtsel scalargtjoinsel ));
01226 DESCR("greater than or equal");
01227 DATA(insert OID = 1791 (  "&"     PGNSP PGUID b f f 1560 1560 1560 1791  0 bitand - - ));
01228 DESCR("bitwise and");
01229 DATA(insert OID = 1792 (  "|"     PGNSP PGUID b f f 1560 1560 1560 1792  0 bitor - - ));
01230 DESCR("bitwise or");
01231 DATA(insert OID = 1793 (  "#"     PGNSP PGUID b f f 1560 1560 1560 1793  0 bitxor - - ));
01232 DESCR("bitwise exclusive or");
01233 DATA(insert OID = 1794 (  "~"     PGNSP PGUID l f f    0 1560 1560    0  0 bitnot - - ));
01234 DESCR("bitwise not");
01235 DATA(insert OID = 1795 (  "<<"    PGNSP PGUID b f f 1560   23 1560    0  0 bitshiftleft - - ));
01236 DESCR("bitwise shift left");
01237 DATA(insert OID = 1796 (  ">>"    PGNSP PGUID b f f 1560   23 1560    0  0 bitshiftright - - ));
01238 DESCR("bitwise shift right");
01239 DATA(insert OID = 1797 (  "||"    PGNSP PGUID b f f 1562 1562 1562    0  0 bitcat - - ));
01240 DESCR("concatenate");
01241 
01242 DATA(insert OID = 1800 (  "+"      PGNSP PGUID b f f 1083 1186 1083  1849 0 time_pl_interval - - ));
01243 DESCR("add");
01244 DATA(insert OID = 1801 (  "-"      PGNSP PGUID b f f 1083 1186 1083  0  0 time_mi_interval - - ));
01245 DESCR("subtract");
01246 DATA(insert OID = 1802 (  "+"      PGNSP PGUID b f f 1266 1186 1266  2552 0 timetz_pl_interval - - ));
01247 DESCR("add");
01248 DATA(insert OID = 1803 (  "-"      PGNSP PGUID b f f 1266 1186 1266  0  0 timetz_mi_interval - - ));
01249 DESCR("subtract");
01250 
01251 DATA(insert OID = 1804 (  "="     PGNSP PGUID b t f 1562 1562 16 1804 1805 varbiteq eqsel eqjoinsel ));
01252 DESCR("equal");
01253 DATA(insert OID = 1805 (  "<>"    PGNSP PGUID b f f 1562 1562 16 1805 1804 varbitne neqsel neqjoinsel ));
01254 DESCR("not equal");
01255 DATA(insert OID = 1806 (  "<"     PGNSP PGUID b f f 1562 1562 16 1807 1809 varbitlt scalarltsel scalarltjoinsel ));
01256 DESCR("less than");
01257 DATA(insert OID = 1807 (  ">"     PGNSP PGUID b f f 1562 1562 16 1806 1808 varbitgt scalargtsel scalargtjoinsel ));
01258 DESCR("greater than");
01259 DATA(insert OID = 1808 (  "<="    PGNSP PGUID b f f 1562 1562 16 1809 1807 varbitle scalarltsel scalarltjoinsel ));
01260 DESCR("less than or equal");
01261 DATA(insert OID = 1809 (  ">="    PGNSP PGUID b f f 1562 1562 16 1808 1806 varbitge scalargtsel scalargtjoinsel ));
01262 DESCR("greater than or equal");
01263 
01264 DATA(insert OID = 1849 (  "+"      PGNSP PGUID b f f 1186 1083 1083  1800 0 interval_pl_time - - ));
01265 DESCR("add");
01266 
01267 DATA(insert OID = 1862 ( "="       PGNSP PGUID b t t    21  20  16 1868  1863 int28eq eqsel eqjoinsel ));
01268 DESCR("equal");
01269 DATA(insert OID = 1863 ( "<>"      PGNSP PGUID b f f    21  20  16 1869  1862 int28ne neqsel neqjoinsel ));
01270 DESCR("not equal");
01271 DATA(insert OID = 1864 ( "<"       PGNSP PGUID b f f    21  20  16 1871  1867 int28lt scalarltsel scalarltjoinsel ));
01272 DESCR("less than");
01273 DATA(insert OID = 1865 ( ">"       PGNSP PGUID b f f    21  20  16 1870  1866 int28gt scalargtsel scalargtjoinsel ));
01274 DESCR("greater than");
01275 DATA(insert OID = 1866 ( "<="      PGNSP PGUID b f f    21  20  16 1873  1865 int28le scalarltsel scalarltjoinsel ));
01276 DESCR("less than or equal");
01277 DATA(insert OID = 1867 ( ">="      PGNSP PGUID b f f    21  20  16 1872  1864 int28ge scalargtsel scalargtjoinsel ));
01278 DESCR("greater than or equal");
01279 
01280 DATA(insert OID = 1868 ( "="       PGNSP PGUID b t t    20  21  16  1862 1869 int82eq eqsel eqjoinsel ));
01281 DESCR("equal");
01282 DATA(insert OID = 1869 ( "<>"      PGNSP PGUID b f f    20  21  16  1863 1868 int82ne neqsel neqjoinsel ));
01283 DESCR("not equal");
01284 DATA(insert OID = 1870 ( "<"       PGNSP PGUID b f f    20  21  16  1865 1873 int82lt scalarltsel scalarltjoinsel ));
01285 DESCR("less than");
01286 DATA(insert OID = 1871 ( ">"       PGNSP PGUID b f f    20  21  16  1864 1872 int82gt scalargtsel scalargtjoinsel ));
01287 DESCR("greater than");
01288 DATA(insert OID = 1872 ( "<="      PGNSP PGUID b f f    20  21  16  1867 1871 int82le scalarltsel scalarltjoinsel ));
01289 DESCR("less than or equal");
01290 DATA(insert OID = 1873 ( ">="      PGNSP PGUID b f f    20  21  16  1866 1870 int82ge scalargtsel scalargtjoinsel ));
01291 DESCR("greater than or equal");
01292 
01293 DATA(insert OID = 1874 ( "&"       PGNSP PGUID b f f    21  21  21  1874  0 int2and - - ));
01294 DESCR("bitwise and");
01295 DATA(insert OID = 1875 ( "|"       PGNSP PGUID b f f    21  21  21  1875  0 int2or - - ));
01296 DESCR("bitwise or");
01297 DATA(insert OID = 1876 ( "#"       PGNSP PGUID b f f    21  21  21  1876  0 int2xor - - ));
01298 DESCR("bitwise exclusive or");
01299 DATA(insert OID = 1877 ( "~"       PGNSP PGUID l f f     0  21  21   0    0 int2not - - ));
01300 DESCR("bitwise not");
01301 DATA(insert OID = 1878 ( "<<"      PGNSP PGUID b f f    21  23  21   0    0 int2shl - - ));
01302 DESCR("bitwise shift left");
01303 DATA(insert OID = 1879 ( ">>"      PGNSP PGUID b f f    21  23  21   0    0 int2shr - - ));
01304 DESCR("bitwise shift right");
01305 
01306 DATA(insert OID = 1880 ( "&"       PGNSP PGUID b f f    23  23  23  1880  0 int4and - - ));
01307 DESCR("bitwise and");
01308 DATA(insert OID = 1881 ( "|"       PGNSP PGUID b f f    23  23  23  1881  0 int4or - - ));
01309 DESCR("bitwise or");
01310 DATA(insert OID = 1882 ( "#"       PGNSP PGUID b f f    23  23  23  1882  0 int4xor - - ));
01311 DESCR("bitwise exclusive or");
01312 DATA(insert OID = 1883 ( "~"       PGNSP PGUID l f f     0  23  23   0    0 int4not - - ));
01313 DESCR("bitwise not");
01314 DATA(insert OID = 1884 ( "<<"      PGNSP PGUID b f f    23  23  23   0    0 int4shl - - ));
01315 DESCR("bitwise shift left");
01316 DATA(insert OID = 1885 ( ">>"      PGNSP PGUID b f f    23  23  23   0    0 int4shr - - ));
01317 DESCR("bitwise shift right");
01318 
01319 DATA(insert OID = 1886 ( "&"       PGNSP PGUID b f f    20  20  20  1886  0 int8and - - ));
01320 DESCR("bitwise and");
01321 DATA(insert OID = 1887 ( "|"       PGNSP PGUID b f f    20  20  20  1887  0 int8or - - ));
01322 DESCR("bitwise or");
01323 DATA(insert OID = 1888 ( "#"       PGNSP PGUID b f f    20  20  20  1888  0 int8xor - - ));
01324 DESCR("bitwise exclusive or");
01325 DATA(insert OID = 1889 ( "~"       PGNSP PGUID l f f     0  20  20   0    0 int8not - - ));
01326 DESCR("bitwise not");
01327 DATA(insert OID = 1890 ( "<<"      PGNSP PGUID b f f    20  23  20   0    0 int8shl - - ));
01328 DESCR("bitwise shift left");
01329 DATA(insert OID = 1891 ( ">>"      PGNSP PGUID b f f    20  23  20   0    0 int8shr - - ));
01330 DESCR("bitwise shift right");
01331 
01332 DATA(insert OID = 1916 (  "+"      PGNSP PGUID l f f     0  20  20  0   0 int8up - - ));
01333 DESCR("unary plus");
01334 DATA(insert OID = 1917 (  "+"      PGNSP PGUID l f f     0  21  21  0   0 int2up - - ));
01335 DESCR("unary plus");
01336 DATA(insert OID = 1918 (  "+"      PGNSP PGUID l f f     0  23  23  0   0 int4up - - ));
01337 DESCR("unary plus");
01338 DATA(insert OID = 1919 (  "+"      PGNSP PGUID l f f     0  700 700 0   0 float4up - - ));
01339 DESCR("unary plus");
01340 DATA(insert OID = 1920 (  "+"      PGNSP PGUID l f f     0  701 701 0   0 float8up - - ));
01341 DESCR("unary plus");
01342 DATA(insert OID = 1921 (  "+"      PGNSP PGUID l f f     0 1700 1700    0   0 numeric_uplus - - ));
01343 DESCR("unary plus");
01344 
01345 /* bytea operators */
01346 DATA(insert OID = 1955 ( "="       PGNSP PGUID b t t 17 17  16 1955 1956 byteaeq eqsel eqjoinsel ));
01347 DESCR("equal");
01348 DATA(insert OID = 1956 ( "<>"      PGNSP PGUID b f f 17 17  16 1956 1955 byteane neqsel neqjoinsel ));
01349 DESCR("not equal");
01350 DATA(insert OID = 1957 ( "<"       PGNSP PGUID b f f 17 17  16 1959 1960 bytealt scalarltsel scalarltjoinsel ));
01351 DESCR("less than");
01352 DATA(insert OID = 1958 ( "<="      PGNSP PGUID b f f 17 17  16 1960 1959 byteale scalarltsel scalarltjoinsel ));
01353 DESCR("less than or equal");
01354 DATA(insert OID = 1959 ( ">"       PGNSP PGUID b f f 17 17  16 1957 1958 byteagt scalargtsel scalargtjoinsel ));
01355 DESCR("greater than");
01356 DATA(insert OID = 1960 ( ">="      PGNSP PGUID b f f 17 17  16 1958 1957 byteage scalargtsel scalargtjoinsel ));
01357 DESCR("greater than or equal");
01358 
01359 DATA(insert OID = 2016 (  "~~"     PGNSP PGUID b f f 17 17  16 0    2017 bytealike likesel likejoinsel ));
01360 DESCR("matches LIKE expression");
01361 #define OID_BYTEA_LIKE_OP       2016
01362 DATA(insert OID = 2017 (  "!~~"    PGNSP PGUID b f f 17 17  16 0    2016 byteanlike nlikesel nlikejoinsel ));
01363 DESCR("does not match LIKE expression");
01364 DATA(insert OID = 2018 (  "||"     PGNSP PGUID b f f 17 17  17 0    0    byteacat - - ));
01365 DESCR("concatenate");
01366 
01367 /* timestamp operators */
01368 DATA(insert OID = 2060 (  "="      PGNSP PGUID b t t 1114 1114   16 2060 2061 timestamp_eq eqsel eqjoinsel ));
01369 DESCR("equal");
01370 DATA(insert OID = 2061 (  "<>"     PGNSP PGUID b f f 1114 1114   16 2061 2060 timestamp_ne neqsel neqjoinsel ));
01371 DESCR("not equal");
01372 DATA(insert OID = 2062 (  "<"      PGNSP PGUID b f f 1114 1114   16 2064 2065 timestamp_lt scalarltsel scalarltjoinsel ));
01373 DESCR("less than");
01374 DATA(insert OID = 2063 (  "<="     PGNSP PGUID b f f 1114 1114   16 2065 2064 timestamp_le scalarltsel scalarltjoinsel ));
01375 DESCR("less than or equal");
01376 DATA(insert OID = 2064 (  ">"      PGNSP PGUID b f f 1114 1114   16 2062 2063 timestamp_gt scalargtsel scalargtjoinsel ));
01377 DESCR("greater than");
01378 DATA(insert OID = 2065 (  ">="     PGNSP PGUID b f f 1114 1114   16 2063 2062 timestamp_ge scalargtsel scalargtjoinsel ));
01379 DESCR("greater than or equal");
01380 DATA(insert OID = 2066 (  "+"      PGNSP PGUID b f f 1114 1186 1114  2553 0 timestamp_pl_interval - - ));
01381 DESCR("add");
01382 DATA(insert OID = 2067 (  "-"      PGNSP PGUID b f f 1114 1114 1186  0  0 timestamp_mi - - ));
01383 DESCR("subtract");
01384 DATA(insert OID = 2068 (  "-"      PGNSP PGUID b f f 1114 1186 1114  0  0 timestamp_mi_interval - - ));
01385 DESCR("subtract");
01386 
01387 /* character-by-character (not collation order) comparison operators for character types */
01388 
01389 DATA(insert OID = 2314 ( "~<~"  PGNSP PGUID b f f 25 25 16 2318 2317 text_pattern_lt scalarltsel scalarltjoinsel ));
01390 DESCR("less than");
01391 DATA(insert OID = 2315 ( "~<=~" PGNSP PGUID b f f 25 25 16 2317 2318 text_pattern_le scalarltsel scalarltjoinsel ));
01392 DESCR("less than or equal");
01393 DATA(insert OID = 2317 ( "~>=~" PGNSP PGUID b f f 25 25 16 2315 2314 text_pattern_ge scalargtsel scalargtjoinsel ));
01394 DESCR("greater than or equal");
01395 DATA(insert OID = 2318 ( "~>~"  PGNSP PGUID b f f 25 25 16 2314 2315 text_pattern_gt scalargtsel scalargtjoinsel ));
01396 DESCR("greater than");
01397 
01398 DATA(insert OID = 2326 ( "~<~"  PGNSP PGUID b f f 1042 1042 16 2330 2329 bpchar_pattern_lt scalarltsel scalarltjoinsel ));
01399 DESCR("less than");
01400 DATA(insert OID = 2327 ( "~<=~" PGNSP PGUID b f f 1042 1042 16 2329 2330 bpchar_pattern_le scalarltsel scalarltjoinsel ));
01401 DESCR("less than or equal");
01402 DATA(insert OID = 2329 ( "~>=~" PGNSP PGUID b f f 1042 1042 16 2327 2326 bpchar_pattern_ge scalargtsel scalargtjoinsel ));
01403 DESCR("greater than or equal");
01404 DATA(insert OID = 2330 ( "~>~"  PGNSP PGUID b f f 1042 1042 16 2326 2327 bpchar_pattern_gt scalargtsel scalargtjoinsel ));
01405 DESCR("greater than");
01406 
01407 /* crosstype operations for date vs. timestamp and timestamptz */
01408 
01409 DATA(insert OID = 2345 ( "<"       PGNSP PGUID b f f    1082    1114   16 2375 2348 date_lt_timestamp scalarltsel scalarltjoinsel ));
01410 DESCR("less than");
01411 DATA(insert OID = 2346 ( "<="      PGNSP PGUID b f f    1082    1114   16 2374 2349 date_le_timestamp scalarltsel scalarltjoinsel ));
01412 DESCR("less than or equal");
01413 DATA(insert OID = 2347 ( "="       PGNSP PGUID b t f    1082    1114   16 2373 2350 date_eq_timestamp eqsel eqjoinsel ));
01414 DESCR("equal");
01415 DATA(insert OID = 2348 ( ">="      PGNSP PGUID b f f    1082    1114   16 2372 2345 date_ge_timestamp scalargtsel scalargtjoinsel ));
01416 DESCR("greater than or equal");
01417 DATA(insert OID = 2349 ( ">"       PGNSP PGUID b f f    1082    1114   16 2371 2346 date_gt_timestamp scalargtsel scalargtjoinsel ));
01418 DESCR("greater than");
01419 DATA(insert OID = 2350 ( "<>"      PGNSP PGUID b f f    1082    1114   16 2376 2347 date_ne_timestamp neqsel neqjoinsel ));
01420 DESCR("not equal");
01421 
01422 DATA(insert OID = 2358 ( "<"       PGNSP PGUID b f f    1082    1184   16 2388 2361 date_lt_timestamptz scalarltsel scalarltjoinsel ));
01423 DESCR("less than");
01424 DATA(insert OID = 2359 ( "<="      PGNSP PGUID b f f    1082    1184   16 2387 2362 date_le_timestamptz scalarltsel scalarltjoinsel ));
01425 DESCR("less than or equal");
01426 DATA(insert OID = 2360 ( "="       PGNSP PGUID b t f    1082    1184   16 2386 2363 date_eq_timestamptz eqsel eqjoinsel ));
01427 DESCR("equal");
01428 DATA(insert OID = 2361 ( ">="      PGNSP PGUID b f f    1082    1184   16 2385 2358 date_ge_timestamptz scalargtsel scalargtjoinsel ));
01429 DESCR("greater than or equal");
01430 DATA(insert OID = 2362 ( ">"       PGNSP PGUID b f f    1082    1184   16 2384 2359 date_gt_timestamptz scalargtsel scalargtjoinsel ));
01431 DESCR("greater than");
01432 DATA(insert OID = 2363 ( "<>"      PGNSP PGUID b f f    1082    1184   16 2389 2360 date_ne_timestamptz neqsel neqjoinsel ));
01433 DESCR("not equal");
01434 
01435 DATA(insert OID = 2371 ( "<"       PGNSP PGUID b f f    1114    1082   16 2349 2374 timestamp_lt_date scalarltsel scalarltjoinsel ));
01436 DESCR("less than");
01437 DATA(insert OID = 2372 ( "<="      PGNSP PGUID b f f    1114    1082   16 2348 2375 timestamp_le_date scalarltsel scalarltjoinsel ));
01438 DESCR("less than or equal");
01439 DATA(insert OID = 2373 ( "="       PGNSP PGUID b t f    1114    1082   16 2347 2376 timestamp_eq_date eqsel eqjoinsel ));
01440 DESCR("equal");
01441 DATA(insert OID = 2374 ( ">="      PGNSP PGUID b f f    1114    1082   16 2346 2371 timestamp_ge_date scalargtsel scalargtjoinsel ));
01442 DESCR("greater than or equal");
01443 DATA(insert OID = 2375 ( ">"       PGNSP PGUID b f f    1114    1082   16 2345 2372 timestamp_gt_date scalargtsel scalargtjoinsel ));
01444 DESCR("greater than");
01445 DATA(insert OID = 2376 ( "<>"      PGNSP PGUID b f f    1114    1082   16 2350 2373 timestamp_ne_date neqsel neqjoinsel ));
01446 DESCR("not equal");
01447 
01448 DATA(insert OID = 2384 ( "<"       PGNSP PGUID b f f    1184    1082   16 2362 2387 timestamptz_lt_date scalarltsel scalarltjoinsel ));
01449 DESCR("less than");
01450 DATA(insert OID = 2385 ( "<="      PGNSP PGUID b f f    1184    1082   16 2361 2388 timestamptz_le_date scalarltsel scalarltjoinsel ));
01451 DESCR("less than or equal");
01452 DATA(insert OID = 2386 ( "="       PGNSP PGUID b t f    1184    1082   16 2360 2389 timestamptz_eq_date eqsel eqjoinsel ));
01453 DESCR("equal");
01454 DATA(insert OID = 2387 ( ">="      PGNSP PGUID b f f    1184    1082   16 2359 2384 timestamptz_ge_date scalargtsel scalargtjoinsel ));
01455 DESCR("greater than or equal");
01456 DATA(insert OID = 2388 ( ">"       PGNSP PGUID b f f    1184    1082   16 2358 2385 timestamptz_gt_date scalargtsel scalargtjoinsel ));
01457 DESCR("greater than");
01458 DATA(insert OID = 2389 ( "<>"      PGNSP PGUID b f f    1184    1082   16 2363 2386 timestamptz_ne_date neqsel neqjoinsel ));
01459 DESCR("not equal");
01460 
01461 /* crosstype operations for timestamp vs. timestamptz */
01462 
01463 DATA(insert OID = 2534 ( "<"       PGNSP PGUID b f f    1114    1184   16 2544 2537 timestamp_lt_timestamptz scalarltsel scalarltjoinsel ));
01464 DESCR("less than");
01465 DATA(insert OID = 2535 ( "<="      PGNSP PGUID b f f    1114    1184   16 2543 2538 timestamp_le_timestamptz scalarltsel scalarltjoinsel ));
01466 DESCR("less than or equal");
01467 DATA(insert OID = 2536 ( "="       PGNSP PGUID b t f    1114    1184   16 2542 2539 timestamp_eq_timestamptz eqsel eqjoinsel ));
01468 DESCR("equal");
01469 DATA(insert OID = 2537 ( ">="      PGNSP PGUID b f f    1114    1184   16 2541 2534 timestamp_ge_timestamptz scalargtsel scalargtjoinsel ));
01470 DESCR("greater than or equal");
01471 DATA(insert OID = 2538 ( ">"       PGNSP PGUID b f f    1114    1184   16 2540 2535 timestamp_gt_timestamptz scalargtsel scalargtjoinsel ));
01472 DESCR("greater than");
01473 DATA(insert OID = 2539 ( "<>"      PGNSP PGUID b f f    1114    1184   16 2545 2536 timestamp_ne_timestamptz neqsel neqjoinsel ));
01474 DESCR("not equal");
01475 
01476 DATA(insert OID = 2540 ( "<"       PGNSP PGUID b f f    1184    1114   16 2538 2543 timestamptz_lt_timestamp scalarltsel scalarltjoinsel ));
01477 DESCR("less than");
01478 DATA(insert OID = 2541 ( "<="      PGNSP PGUID b f f    1184    1114   16 2537 2544 timestamptz_le_timestamp scalarltsel scalarltjoinsel ));
01479 DESCR("less than or equal");
01480 DATA(insert OID = 2542 ( "="       PGNSP PGUID b t f    1184    1114   16 2536 2545 timestamptz_eq_timestamp eqsel eqjoinsel ));
01481 DESCR("equal");
01482 DATA(insert OID = 2543 ( ">="      PGNSP PGUID b f f    1184    1114   16 2535 2540 timestamptz_ge_timestamp scalargtsel scalargtjoinsel ));
01483 DESCR("greater than or equal");
01484 DATA(insert OID = 2544 ( ">"       PGNSP PGUID b f f    1184    1114   16 2534 2541 timestamptz_gt_timestamp scalargtsel scalargtjoinsel ));
01485 DESCR("greater than");
01486 DATA(insert OID = 2545 ( "<>"      PGNSP PGUID b f f    1184    1114   16 2539 2542 timestamptz_ne_timestamp neqsel neqjoinsel ));
01487 DESCR("not equal");
01488 
01489 /* formerly-missing interval + datetime operators */
01490 DATA(insert OID = 2551 (  "+"      PGNSP PGUID b f f    1186 1082 1114 1076 0 interval_pl_date - - ));
01491 DESCR("add");
01492 DATA(insert OID = 2552 (  "+"      PGNSP PGUID b f f    1186 1266 1266 1802 0 interval_pl_timetz - - ));
01493 DESCR("add");
01494 DATA(insert OID = 2553 (  "+"      PGNSP PGUID b f f    1186 1114 1114 2066 0 interval_pl_timestamp - - ));
01495 DESCR("add");
01496 DATA(insert OID = 2554 (  "+"      PGNSP PGUID b f f    1186 1184 1184 1327 0 interval_pl_timestamptz - - ));
01497 DESCR("add");
01498 DATA(insert OID = 2555 (  "+"      PGNSP PGUID b f f    23   1082 1082 1100 0 integer_pl_date - - ));
01499 DESCR("add");
01500 
01501 /* new operators for Y-direction rtree opfamilies */
01502 DATA(insert OID = 2570 (  "<<|"    PGNSP PGUID b f f 603 603    16   0   0 box_below positionsel positionjoinsel ));
01503 DESCR("is below");
01504 DATA(insert OID = 2571 (  "&<|"    PGNSP PGUID b f f 603 603    16   0   0 box_overbelow positionsel positionjoinsel ));
01505 DESCR("overlaps or is below");
01506 DATA(insert OID = 2572 (  "|&>"    PGNSP PGUID b f f 603 603    16   0   0 box_overabove positionsel positionjoinsel ));
01507 DESCR("overlaps or is above");
01508 DATA(insert OID = 2573 (  "|>>"    PGNSP PGUID b f f 603 603    16   0   0 box_above positionsel positionjoinsel ));
01509 DESCR("is above");
01510 DATA(insert OID = 2574 (  "<<|"    PGNSP PGUID b f f 604 604    16   0   0 poly_below positionsel positionjoinsel ));
01511 DESCR("is below");
01512 DATA(insert OID = 2575 (  "&<|"    PGNSP PGUID b f f 604 604    16   0   0 poly_overbelow positionsel positionjoinsel ));
01513 DESCR("overlaps or is below");
01514 DATA(insert OID = 2576 (  "|&>"    PGNSP PGUID b f f 604 604    16   0   0 poly_overabove positionsel positionjoinsel ));
01515 DESCR("overlaps or is above");
01516 DATA(insert OID = 2577 (  "|>>"    PGNSP PGUID b f f 604 604    16   0   0 poly_above positionsel positionjoinsel ));
01517 DESCR("is above");
01518 DATA(insert OID = 2589 (  "&<|"    PGNSP PGUID b f f 718 718    16   0   0 circle_overbelow positionsel positionjoinsel ));
01519 DESCR("overlaps or is below");
01520 DATA(insert OID = 2590 (  "|&>"    PGNSP PGUID b f f 718 718    16   0   0 circle_overabove positionsel positionjoinsel ));
01521 DESCR("overlaps or is above");
01522 
01523 /* overlap/contains/contained for arrays */
01524 DATA(insert OID = 2750 (  "&&"     PGNSP PGUID b f f 2277 2277  16 2750  0 arrayoverlap arraycontsel arraycontjoinsel ));
01525 DESCR("overlaps");
01526 #define OID_ARRAY_OVERLAP_OP    2750
01527 DATA(insert OID = 2751 (  "@>"     PGNSP PGUID b f f 2277 2277  16 2752  0 arraycontains arraycontsel arraycontjoinsel ));
01528 DESCR("contains");
01529 #define OID_ARRAY_CONTAINS_OP   2751
01530 DATA(insert OID = 2752 (  "<@"     PGNSP PGUID b f f 2277 2277  16 2751  0 arraycontained arraycontsel arraycontjoinsel ));
01531 DESCR("is contained by");
01532 #define OID_ARRAY_CONTAINED_OP  2752
01533 
01534 /* capturing operators to preserve pre-8.3 behavior of text concatenation */
01535 DATA(insert OID = 2779 (  "||"     PGNSP PGUID b f f 25 2776    25   0 0 textanycat - - ));
01536 DESCR("concatenate");
01537 DATA(insert OID = 2780 (  "||"     PGNSP PGUID b f f 2776 25    25   0 0 anytextcat - - ));
01538 DESCR("concatenate");
01539 
01540 /* obsolete names for contains/contained-by operators; remove these someday */
01541 DATA(insert OID = 2860 (  "@"      PGNSP PGUID b f f 604 604    16 2861  0 poly_contained contsel contjoinsel ));
01542 DESCR("deprecated, use <@ instead");
01543 DATA(insert OID = 2861 (  "~"      PGNSP PGUID b f f 604 604    16 2860  0 poly_contain contsel contjoinsel ));
01544 DESCR("deprecated, use @> instead");
01545 DATA(insert OID = 2862 (  "@"      PGNSP PGUID b f f 603 603    16 2863  0 box_contained contsel contjoinsel ));
01546 DESCR("deprecated, use <@ instead");
01547 DATA(insert OID = 2863 (  "~"      PGNSP PGUID b f f 603 603    16 2862  0 box_contain contsel contjoinsel ));
01548 DESCR("deprecated, use @> instead");
01549 DATA(insert OID = 2864 (  "@"      PGNSP PGUID b f f 718 718    16 2865  0 circle_contained contsel contjoinsel ));
01550 DESCR("deprecated, use <@ instead");
01551 DATA(insert OID = 2865 (  "~"      PGNSP PGUID b f f 718 718    16 2864  0 circle_contain contsel contjoinsel ));
01552 DESCR("deprecated, use @> instead");
01553 DATA(insert OID = 2866 (  "@"      PGNSP PGUID b f f 600 603    16   0   0 on_pb - - ));
01554 DESCR("deprecated, use <@ instead");
01555 DATA(insert OID = 2867 (  "@"      PGNSP PGUID b f f 600 602    16 2868  0 on_ppath - - ));
01556 DESCR("deprecated, use <@ instead");
01557 DATA(insert OID = 2868 (  "~"      PGNSP PGUID b f f 602 600     16  2867  0 path_contain_pt - - ));
01558 DESCR("deprecated, use @> instead");
01559 DATA(insert OID = 2869 (  "@"      PGNSP PGUID b f f 600 604     16  2870  0 pt_contained_poly - - ));
01560 DESCR("deprecated, use <@ instead");
01561 DATA(insert OID = 2870 (  "~"      PGNSP PGUID b f f 604 600     16  2869  0 poly_contain_pt - - ));
01562 DESCR("deprecated, use @> instead");
01563 DATA(insert OID = 2871 (  "@"      PGNSP PGUID b f f 600 718     16  2872  0 pt_contained_circle - - ));
01564 DESCR("deprecated, use <@ instead");
01565 DATA(insert OID = 2872 (  "~"      PGNSP PGUID b f f 718 600     16  2871  0 circle_contain_pt - - ));
01566 DESCR("deprecated, use @> instead");
01567 DATA(insert OID = 2873 (  "@"      PGNSP PGUID b f f 600 628 16   0  0 on_pl - - ));
01568 DESCR("deprecated, use <@ instead");
01569 DATA(insert OID = 2874 (  "@"      PGNSP PGUID b f f 600 601 16   0  0 on_ps - - ));
01570 DESCR("deprecated, use <@ instead");
01571 DATA(insert OID = 2875 (  "@"      PGNSP PGUID b f f 601 628 16   0  0 on_sl - - ));
01572 DESCR("deprecated, use <@ instead");
01573 DATA(insert OID = 2876 (  "@"      PGNSP PGUID b f f 601 603 16   0  0 on_sb - - ));
01574 DESCR("deprecated, use <@ instead");
01575 DATA(insert OID = 2877 (  "~"      PGNSP PGUID b f f 1034 1033   16 0 0 aclcontains - - ));
01576 DESCR("deprecated, use @> instead");
01577 
01578 /* uuid operators */
01579 DATA(insert OID = 2972 (  "="      PGNSP PGUID b t t 2950 2950 16 2972 2973 uuid_eq eqsel eqjoinsel ));
01580 DESCR("equal");
01581 DATA(insert OID = 2973 (  "<>"     PGNSP PGUID b f f 2950 2950 16 2973 2972 uuid_ne neqsel neqjoinsel ));
01582 DESCR("not equal");
01583 DATA(insert OID = 2974 (  "<"      PGNSP PGUID b f f 2950 2950 16 2975 2977 uuid_lt scalarltsel scalarltjoinsel ));
01584 DESCR("less than");
01585 DATA(insert OID = 2975 (  ">"      PGNSP PGUID b f f 2950 2950 16 2974 2976 uuid_gt scalargtsel scalargtjoinsel ));
01586 DESCR("greater than");
01587 DATA(insert OID = 2976 (  "<="     PGNSP PGUID b f f 2950 2950 16 2977 2975 uuid_le scalarltsel scalarltjoinsel ));
01588 DESCR("less than or equal");
01589 DATA(insert OID = 2977 (  ">="     PGNSP PGUID b f f 2950 2950 16 2976 2974 uuid_ge scalargtsel scalargtjoinsel ));
01590 DESCR("greater than or equal");
01591 
01592 /* enum operators */
01593 DATA(insert OID = 3516 (  "="      PGNSP PGUID b t t 3500 3500 16 3516 3517 enum_eq eqsel eqjoinsel ));
01594 DESCR("equal");
01595 DATA(insert OID = 3517 (  "<>"     PGNSP PGUID b f f 3500 3500 16 3517 3516 enum_ne neqsel neqjoinsel ));
01596 DESCR("not equal");
01597 DATA(insert OID = 3518 (  "<"      PGNSP PGUID b f f 3500 3500 16 3519 3521 enum_lt scalarltsel scalarltjoinsel ));
01598 DESCR("less than");
01599 DATA(insert OID = 3519 (  ">"      PGNSP PGUID b f f 3500 3500 16 3518 3520 enum_gt scalargtsel scalargtjoinsel ));
01600 DESCR("greater than");
01601 DATA(insert OID = 3520 (  "<="     PGNSP PGUID b f f 3500 3500 16 3521 3519 enum_le scalarltsel scalarltjoinsel ));
01602 DESCR("less than or equal");
01603 DATA(insert OID = 3521 (  ">="     PGNSP PGUID b f f 3500 3500 16 3520 3518 enum_ge scalargtsel scalargtjoinsel ));
01604 DESCR("greater than or equal");
01605 
01606 /*
01607  * tsearch operations
01608  */
01609 DATA(insert OID = 3627 (  "<"      PGNSP PGUID b f f 3614    3614    16 3632 3631    tsvector_lt scalarltsel scalarltjoinsel ));
01610 DESCR("less than");
01611 DATA(insert OID = 3628 (  "<="     PGNSP PGUID b f f 3614    3614    16 3631 3632    tsvector_le scalarltsel scalarltjoinsel ));
01612 DESCR("less than or equal");
01613 DATA(insert OID = 3629 (  "="      PGNSP PGUID b t f 3614    3614    16 3629 3630    tsvector_eq eqsel eqjoinsel ));
01614 DESCR("equal");
01615 DATA(insert OID = 3630 (  "<>"     PGNSP PGUID b f f 3614    3614    16 3630 3629    tsvector_ne neqsel neqjoinsel ));
01616 DESCR("not equal");
01617 DATA(insert OID = 3631 (  ">="     PGNSP PGUID b f f 3614    3614    16 3628 3627    tsvector_ge scalargtsel scalargtjoinsel ));
01618 DESCR("greater than or equal");
01619 DATA(insert OID = 3632 (  ">"      PGNSP PGUID b f f 3614    3614    16 3627 3628    tsvector_gt scalargtsel scalargtjoinsel ));
01620 DESCR("greater than");
01621 DATA(insert OID = 3633 (  "||"     PGNSP PGUID b f f 3614    3614    3614  0    0    tsvector_concat   -    -     ));
01622 DESCR("concatenate");
01623 DATA(insert OID = 3636 (  "@@"     PGNSP PGUID b f f 3614    3615    16 3637    0    ts_match_vq   tsmatchsel tsmatchjoinsel ));
01624 DESCR("text search match");
01625 DATA(insert OID = 3637 (  "@@"     PGNSP PGUID b f f 3615    3614    16 3636    0    ts_match_qv   tsmatchsel tsmatchjoinsel ));
01626 DESCR("text search match");
01627 DATA(insert OID = 3660 (  "@@@"    PGNSP PGUID b f f 3614    3615    16 3661    0    ts_match_vq   tsmatchsel tsmatchjoinsel ));
01628 DESCR("deprecated, use @@ instead");
01629 DATA(insert OID = 3661 (  "@@@"    PGNSP PGUID b f f 3615    3614    16 3660    0    ts_match_qv   tsmatchsel tsmatchjoinsel ));
01630 DESCR("deprecated, use @@ instead");
01631 DATA(insert OID = 3674 (  "<"      PGNSP PGUID b f f 3615    3615    16 3679 3678    tsquery_lt scalarltsel scalarltjoinsel ));
01632 DESCR("less than");
01633 DATA(insert OID = 3675 (  "<="     PGNSP PGUID b f f 3615    3615    16 3678 3679    tsquery_le scalarltsel scalarltjoinsel ));
01634 DESCR("less than or equal");
01635 DATA(insert OID = 3676 (  "="      PGNSP PGUID b t f 3615    3615    16 3676 3677    tsquery_eq eqsel eqjoinsel ));
01636 DESCR("equal");
01637 DATA(insert OID = 3677 (  "<>"     PGNSP PGUID b f f 3615    3615    16 3677 3676    tsquery_ne neqsel neqjoinsel ));
01638 DESCR("not equal");
01639 DATA(insert OID = 3678 (  ">="     PGNSP PGUID b f f 3615    3615    16 3675 3674    tsquery_ge scalargtsel scalargtjoinsel ));
01640 DESCR("greater than or equal");
01641 DATA(insert OID = 3679 (  ">"      PGNSP PGUID b f f 3615    3615    16 3674 3675    tsquery_gt scalargtsel scalargtjoinsel ));
01642 DESCR("greater than");
01643 DATA(insert OID = 3680 (  "&&"     PGNSP PGUID b f f 3615    3615    3615  0    0    tsquery_and   -    -     ));
01644 DESCR("AND-concatenate");
01645 DATA(insert OID = 3681 (  "||"     PGNSP PGUID b f f 3615    3615    3615  0    0    tsquery_or   -     -     ));
01646 DESCR("OR-concatenate");
01647 DATA(insert OID = 3682 (  "!!"     PGNSP PGUID l f f 0       3615    3615  0    0    tsquery_not   -    -     ));
01648 DESCR("NOT tsquery");
01649 DATA(insert OID = 3693 (  "@>"     PGNSP PGUID b f f 3615    3615    16 3694    0    tsq_mcontains  contsel    contjoinsel   ));
01650 DESCR("contains");
01651 DATA(insert OID = 3694 (  "<@"     PGNSP PGUID b f f 3615    3615    16 3693    0    tsq_mcontained contsel    contjoinsel   ));
01652 DESCR("is contained by");
01653 DATA(insert OID = 3762 (  "@@"     PGNSP PGUID b f f 25      25      16    0    0    ts_match_tt    contsel    contjoinsel   ));
01654 DESCR("text search match");
01655 DATA(insert OID = 3763 (  "@@"     PGNSP PGUID b f f 25      3615    16    0    0    ts_match_tq    contsel    contjoinsel   ));
01656 DESCR("text search match");
01657 
01658 /* generic record comparison operators */
01659 DATA(insert OID = 2988 (  "="      PGNSP PGUID b t f 2249 2249 16 2988 2989 record_eq eqsel eqjoinsel ));
01660 DESCR("equal");
01661 #define RECORD_EQ_OP 2988
01662 DATA(insert OID = 2989 (  "<>"     PGNSP PGUID b f f 2249 2249 16 2989 2988 record_ne neqsel neqjoinsel ));
01663 DESCR("not equal");
01664 DATA(insert OID = 2990 (  "<"      PGNSP PGUID b f f 2249 2249 16 2991 2993 record_lt scalarltsel scalarltjoinsel ));
01665 DESCR("less than");
01666 #define RECORD_LT_OP 2990
01667 DATA(insert OID = 2991 (  ">"      PGNSP PGUID b f f 2249 2249 16 2990 2992 record_gt scalargtsel scalargtjoinsel ));
01668 DESCR("greater than");
01669 #define RECORD_GT_OP 2991
01670 DATA(insert OID = 2992 (  "<="     PGNSP PGUID b f f 2249 2249 16 2993 2991 record_le scalarltsel scalarltjoinsel ));
01671 DESCR("less than or equal");
01672 DATA(insert OID = 2993 (  ">="     PGNSP PGUID b f f 2249 2249 16 2992 2990 record_ge scalargtsel scalargtjoinsel ));
01673 DESCR("greater than or equal");
01674 
01675 /* generic range type operators */
01676 DATA(insert OID = 3882 (  "="      PGNSP PGUID b t t 3831 3831 16 3882 3883 range_eq eqsel eqjoinsel ));
01677 DESCR("equal");
01678 DATA(insert OID = 3883 (  "<>"     PGNSP PGUID b f f 3831 3831 16 3883 3882 range_ne neqsel neqjoinsel ));
01679 DESCR("not equal");
01680 DATA(insert OID = 3884 (  "<"      PGNSP PGUID b f f 3831 3831 16 3887 3886 range_lt rangesel scalarltjoinsel ));
01681 DESCR("less than");
01682 #define OID_RANGE_LESS_OP 3884
01683 DATA(insert OID = 3885 (  "<="     PGNSP PGUID b f f 3831 3831 16 3886 3887 range_le rangesel scalarltjoinsel ));
01684 DESCR("less than or equal");
01685 #define OID_RANGE_LESS_EQUAL_OP 3885
01686 DATA(insert OID = 3886 (  ">="     PGNSP PGUID b f f 3831 3831 16 3885 3884 range_ge rangesel scalargtjoinsel ));
01687 DESCR("greater than or equal");
01688 #define OID_RANGE_GREATER_OP 3886
01689 DATA(insert OID = 3887 (  ">"      PGNSP PGUID b f f 3831 3831 16 3884 3885 range_gt rangesel scalargtjoinsel ));
01690 DESCR("greater than");
01691 #define OID_RANGE_GREATER_EQUAL_OP 3887
01692 DATA(insert OID = 3888 (  "&&"     PGNSP PGUID b f f 3831 3831 16 3888 0 range_overlaps rangesel areajoinsel ));
01693 DESCR("overlaps");
01694 #define OID_RANGE_OVERLAP_OP 3888
01695 DATA(insert OID = 3889 (  "@>"     PGNSP PGUID b f f 3831 2283 16 3891 0 range_contains_elem rangesel contjoinsel ));
01696 DESCR("contains");
01697 #define OID_RANGE_CONTAINS_ELEM_OP 3889
01698 DATA(insert OID = 3890 (  "@>"     PGNSP PGUID b f f 3831 3831 16 3892 0 range_contains rangesel contjoinsel ));
01699 DESCR("contains");
01700 #define OID_RANGE_CONTAINS_OP 3890
01701 DATA(insert OID = 3891 (  "<@"     PGNSP PGUID b f f 2283 3831 16 3889 0 elem_contained_by_range rangesel contjoinsel ));
01702 DESCR("is contained by");
01703 #define OID_RANGE_ELEM_CONTAINED_OP 3891
01704 DATA(insert OID = 3892 (  "<@"     PGNSP PGUID b f f 3831 3831 16 3890 0 range_contained_by rangesel contjoinsel ));
01705 DESCR("is contained by");
01706 #define OID_RANGE_CONTAINED_OP 3892
01707 DATA(insert OID = 3893 (  "<<"     PGNSP PGUID b f f 3831 3831 16 3894 0 range_before rangesel scalarltjoinsel ));
01708 DESCR("is left of");
01709 #define OID_RANGE_LEFT_OP 3893
01710 DATA(insert OID = 3894 (  ">>"     PGNSP PGUID b f f 3831 3831 16 3893 0 range_after rangesel scalargtjoinsel ));
01711 DESCR("is right of");
01712 #define OID_RANGE_RIGHT_OP 3894
01713 DATA(insert OID = 3895 (  "&<"     PGNSP PGUID b f f 3831 3831 16 0 0 range_overleft rangesel scalarltjoinsel ));
01714 DESCR("overlaps or is left of");
01715 #define OID_RANGE_OVERLAPS_LEFT_OP 3895
01716 DATA(insert OID = 3896 (  "&>"     PGNSP PGUID b f f 3831 3831 16 0 0 range_overright rangesel scalargtjoinsel ));
01717 DESCR("overlaps or is right of");
01718 #define OID_RANGE_OVERLAPS_RIGHT_OP 3896
01719 DATA(insert OID = 3897 (  "-|-"    PGNSP PGUID b f f 3831 3831 16 3897 0 range_adjacent contsel contjoinsel ));
01720 DESCR("is adjacent to");
01721 DATA(insert OID = 3898 (  "+"      PGNSP PGUID b f f 3831 3831 3831 3898 0 range_union - - ));
01722 DESCR("range union");
01723 DATA(insert OID = 3899 (  "-"      PGNSP PGUID b f f 3831 3831 3831 0 0 range_minus - - ));
01724 DESCR("range difference");
01725 DATA(insert OID = 3900 (  "*"      PGNSP PGUID b f f 3831 3831 3831 3900 0 range_intersect - - ));
01726 DESCR("range intersection");
01727 DATA(insert OID = 3962 (  "->"     PGNSP PGUID b f f 114 25 114 0 0 json_object_field - - ));
01728 DESCR("get json object field");
01729 DATA(insert OID = 3963 (  "->>"    PGNSP PGUID b f f 114 25 25 0 0 json_object_field_text - - ));
01730 DESCR("get json object field as text");
01731 DATA(insert OID = 3964 (  "->"     PGNSP PGUID b f f 114 23 114 0 0 json_array_element - - ));
01732 DESCR("get json array element");
01733 DATA(insert OID = 3965 (  "->>"    PGNSP PGUID b f f 114 23 25 0 0 json_array_element_text - - ));
01734 DESCR("get json array element as text");
01735 DATA(insert OID = 3966 (  "#>"     PGNSP PGUID b f f 114 1009 114 0 0 json_extract_path_op - - ));
01736 DESCR("get value from json with path elements");
01737 DATA(insert OID = 3967 (  "#>>"    PGNSP PGUID b f f 114 1009 25 0 0 json_extract_path_text_op - - ));
01738 DESCR("get value from json as text with path elements");
01739 
01740 
01741 
01742 /*
01743  * function prototypes
01744  */
01745 extern Oid OperatorCreate(const char *operatorName,
01746                Oid operatorNamespace,
01747                Oid leftTypeId,
01748                Oid rightTypeId,
01749                Oid procedureId,
01750                List *commutatorName,
01751                List *negatorName,
01752                Oid restrictionId,
01753                Oid joinId,
01754                bool canMerge,
01755                bool canHash);
01756 
01757 #endif   /* PG_OPERATOR_H */