/*-------------------------------------------------------------------------
 *
 * pg_operator.h
 *	  definition of the system "operator" relation (pg_operator)
 *	  along with the relation's initial contents.
 *
 *
 * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
 * Portions Copyright (c) 1994, Regents of the University of California
 *
 * $PostgreSQL: pgsql/src/include/catalog/pg_operator.h,v 1.146 2006/10/04 00:30:07 momjian Exp $
 *
 * NOTES
 *	  the genbki.sh script reads this file and generates .bki
 *	  information from the DATA() statements.
 *
 *	  XXX do NOT break up DATA() statements into multiple lines!
 *		  the scripts are not as smart as you might think...
 *
 *-------------------------------------------------------------------------
 */
#ifndef PG_OPERATOR_H
#define PG_OPERATOR_H

#include "catalog/genbki.h"
#include "nodes/pg_list.h"

/* TIDYCAT_BEGINFAKEDEF

   CREATE TABLE pg_operator
   with (camelcase=Operator, shared=false, relid=2617)
   (
   oprname       name    ,
   oprnamespace  oid     ,
   oprowner      oid     ,
   oprkind       "char"  ,
   oprcanhash    boolean ,
   oprleft       oid     ,
   oprright      oid     ,
   oprresult     oid     ,
   oprcom        oid     ,
   oprnegate     oid     ,
   oprlsortop    oid     ,
   oprrsortop    oid     ,
   oprltcmpop    oid     ,
   oprgtcmpop    oid     ,
   oprcode       regproc ,
   oprrest       regproc ,
   oprjoin       regproc 
   );

   create unique index on pg_operator(oid) with (indexid=2688, CamelCase=OperatorOid, syscacheid=OPEROID, syscache_nbuckets=1024);

   create unique index on pg_operator(oprname, oprleft, oprright, oprnamespace) with (indexid=2689, CamelCase=OperatorNameNsp, syscacheid=OPERNAMENSP, syscache_nbuckets=1024);

   alter table pg_operator add fk oprnamespace on pg_namespace(oid);
   alter table pg_operator add fk oprowner on pg_authid(oid);
   alter table pg_operator add fk oprleft on pg_type(oid);
   alter table pg_operator add fk oprright on pg_type(oid);
   alter table pg_operator add fk oprresult on pg_type(oid);
   alter table pg_operator add fk oprcom on pg_operator(oid);
   alter table pg_operator add fk oprnegate on pg_operator(oid);
   alter table pg_operator add fk oprlsortop on pg_operator(oid);
   alter table pg_operator add fk oprrsortop on pg_operator(oid);
   alter table pg_operator add fk oprltcmpop on pg_operator(oid);
   alter table pg_operator add fk oprgtcmpop on pg_operator(oid);
   alter table pg_operator add fk oprcode on pg_proc(oid);
   alter table pg_operator add fk oprrest on pg_proc(oid);
   alter table pg_operator add fk oprjoin on pg_proc(oid);


   TIDYCAT_ENDFAKEDEF
*/

/* ----------------
 *		pg_operator definition.  cpp turns this into
 *		typedef struct FormData_pg_operator
 * ----------------
 */
#define OperatorRelationId	2617

CATALOG(pg_operator,2617)
{
	NameData	oprname;		/* name of operator */
	Oid			oprnamespace;	/* OID of namespace containing this oper */
	Oid			oprowner;		/* operator owner */
	char		oprkind;		/* 'l', 'r', or 'b' */
	bool		oprcanhash;		/* can be used in hash join? */
	Oid			oprleft;		/* left arg type, or 0 if 'l' oprkind */
	Oid			oprright;		/* right arg type, or 0 if 'r' oprkind */
	Oid			oprresult;		/* result datatype */
	Oid			oprcom;			/* OID of commutator oper, or 0 if none */
	Oid			oprnegate;		/* OID of negator oper, or 0 if none */
	Oid			oprlsortop;		/* OID of left sortop, if mergejoinable */
	Oid			oprrsortop;		/* OID of right sortop, if mergejoinable */
	Oid			oprltcmpop;		/* OID of "l<r" oper, if mergejoinable */
	Oid			oprgtcmpop;		/* OID of "l>r" oper, if mergejoinable */
	regproc		oprcode;		/* OID of underlying function */
	regproc		oprrest;		/* OID of restriction estimator, or 0 */
	regproc		oprjoin;		/* OID of join estimator, or 0 */
} FormData_pg_operator;

/* ----------------
 *		Form_pg_operator corresponds to a pointer to a tuple with
 *		the format of pg_operator relation.
 * ----------------
 */
typedef FormData_pg_operator *Form_pg_operator;

/* ----------------
 *		compiler constants for pg_operator
 * ----------------
 */

#define Natts_pg_operator				17
#define Anum_pg_operator_oprname		1
#define Anum_pg_operator_oprnamespace	2
#define Anum_pg_operator_oprowner		3
#define Anum_pg_operator_oprkind		4
#define Anum_pg_operator_oprcanhash		5
#define Anum_pg_operator_oprleft		6
#define Anum_pg_operator_oprright		7
#define Anum_pg_operator_oprresult		8
#define Anum_pg_operator_oprcom			9
#define Anum_pg_operator_oprnegate		10
#define Anum_pg_operator_oprlsortop		11
#define Anum_pg_operator_oprrsortop		12
#define Anum_pg_operator_oprltcmpop		13
#define Anum_pg_operator_oprgtcmpop		14
#define Anum_pg_operator_oprcode		15
#define Anum_pg_operator_oprrest		16
#define Anum_pg_operator_oprjoin		17

/* ----------------
 *		initial contents of pg_operator
 * ----------------
 */

DATA(insert OID =  15 ( "="		   PGNSP PGUID b f	23	20	16 416	36	97 412	37	76 int48eq eqsel eqjoinsel ));
#define Int48EqualOperator 15
DATA(insert OID =  36 ( "<>"	   PGNSP PGUID b f	23	20	16 417	15	 0	 0	 0	 0 int48ne neqsel neqjoinsel ));
DATA(insert OID =  37 ( "<"		   PGNSP PGUID b f	23	20	16 419	82	 0	 0	 0	 0 int48lt scalarltsel scalarltjoinsel ));
DATA(insert OID =  76 ( ">"		   PGNSP PGUID b f	23	20	16 418	80	 0	 0	 0	 0 int48gt scalargtsel scalargtjoinsel ));
DATA(insert OID =  80 ( "<="	   PGNSP PGUID b f	23	20	16 430	76	 0	 0	 0	 0 int48le scalarltsel scalarltjoinsel ));
DATA(insert OID =  82 ( ">="	   PGNSP PGUID b f	23	20	16 420	37	 0	 0	 0	 0 int48ge scalargtsel scalargtjoinsel ));

DATA(insert OID =  58 ( "<"		   PGNSP PGUID b f	16	16	16	59	 1695	0	0	0	0 boollt scalarltsel scalarltjoinsel ));
DATA(insert OID =  59 ( ">"		   PGNSP PGUID b f	16	16	16	58	 1694	0	0	0	0 boolgt scalargtsel scalargtjoinsel ));
DATA(insert OID =  85 ( "<>"	   PGNSP PGUID b f	16	16	16	85	91	 0	 0	 0	 0 boolne neqsel neqjoinsel ));
DATA(insert OID =  91 ( "="		   PGNSP PGUID b t	16	16	16	91	85	58	58	58	59 booleq eqsel eqjoinsel ));
#define BooleanEqualOperator   91
DATA(insert OID = 1694 (  "<="	   PGNSP PGUID b f	16	16	16 1695 59	0  0   0   0 boolle scalarltsel scalarltjoinsel ));
DATA(insert OID = 1695 (  ">="	   PGNSP PGUID b f	16	16	16 1694 58	0  0   0   0 boolge scalargtsel scalargtjoinsel ));

DATA(insert OID =  92 ( "="		   PGNSP PGUID b t	18	18	16	92 630 631 631 631 633 chareq eqsel eqjoinsel ));
#define CharEqualOperator 92
DATA(insert OID =  93 ( "="		   PGNSP PGUID b t	19	19	16	93 643 660 660 660 662 nameeq eqsel eqjoinsel ));
#define NameEqualOperator 93
DATA(insert OID =  94 ( "="		   PGNSP PGUID b t	21	21	16	94 519	95	95	95 520 int2eq eqsel eqjoinsel ));
#define Int2EqualOperator 94
DATA(insert OID =  95 ( "<"		   PGNSP PGUID b f	21	21	16 520 524	 0	 0	 0	 0 int2lt scalarltsel scalarltjoinsel ));
DATA(insert OID =  96 ( "="		   PGNSP PGUID b t	23	23	16	96 518	97	97	97 521 int4eq eqsel eqjoinsel ));
#define Int4EqualOperator 96
DATA(insert OID =  97 ( "<"		   PGNSP PGUID b f	23	23	16 521 525	 0	 0	 0	 0 int4lt scalarltsel scalarltjoinsel ));
DATA(insert OID =  98 ( "="		   PGNSP PGUID b t	25	25	16	98 531 664 664 664 666 texteq eqsel eqjoinsel ));
#define TextEqualOperator 98
DATA(insert OID = 349 (  "||"	   PGNSP PGUID b f 2277 2283 2277	0 0 0 0 0 0 array_append   -	   -	 ));
DATA(insert OID = 374 (  "||"	   PGNSP PGUID b f 2283 2277 2277	0 0 0 0 0 0 array_prepend  -	   -	 ));
DATA(insert OID = 375 (  "||"	   PGNSP PGUID b f 2277 2277 2277	0 0 0 0 0 0 array_cat	   -	   -	 ));

DATA(insert OID = 352 (  "="	   PGNSP PGUID b t	28	28	16 352	 0	 0	 0	 0	 0 xideq eqsel eqjoinsel ));
#define XidEqualOperator 352

DATA(insert OID = 353 (  "="	   PGNSP PGUID b f	28	23	16	 0	 0	 0	 0	 0	 0 xideqint4 eqsel eqjoinsel ));
DATA(insert OID = 388 (  "!"	   PGNSP PGUID r f	20	 0	1700   0   0   0   0  0   0 numeric_fac - - ));
DATA(insert OID = 389 (  "!!"	   PGNSP PGUID l f	 0	20	1700   0   0   0   0  0   0 numeric_fac - - ));
DATA(insert OID = 385 (  "="	   PGNSP PGUID b t	29	29	16 385	 0	 0	 0	 0	 0 cideq eqsel eqjoinsel ));
#define CidEqualOperator 385
DATA(insert OID = 386 (  "="	   PGNSP PGUID b t	22	22	16 386	 0	 0	 0	 0	 0 int2vectoreq eqsel eqjoinsel ));

DATA(insert OID = 387 (  "="	   PGNSP PGUID b f	27	27	16 387 402 2799 2799 2799 2800 tideq eqsel eqjoinsel ));
#define TIDEqualOperator   387
DATA(insert OID = 402 (  "<>"	   PGNSP PGUID b f	27	27	16 402 387 0 0 0 0 tidne neqsel neqjoinsel ));
DATA(insert OID = 2799 (  "<"	   PGNSP PGUID b f	27	27	16 2800 2802 0 0 0 0 tidlt scalarltsel scalarltjoinsel ));
#define TIDLessOperator    2799
DATA(insert OID = 2800 (  ">"	   PGNSP PGUID b f	27	27	16 2799 2801 0 0 0 0 tidgt scalargtsel scalargtjoinsel ));
DATA(insert OID = 2801 (  "<="	   PGNSP PGUID b f	27	27	16 2802 2800 0 0 0 0 tidle scalarltsel scalarltjoinsel ));
DATA(insert OID = 2802 (  ">="	   PGNSP PGUID b f	27	27	16 2801 2799 0 0 0 0 tidge scalargtsel scalargtjoinsel ));

DATA(insert OID = 410 ( "="		   PGNSP PGUID b t	20	20	16 410 411 412 412 412 413 int8eq eqsel eqjoinsel ));
#define Int8EqualOperator 410
DATA(insert OID = 411 ( "<>"	   PGNSP PGUID b f	20	20	16 411 410 0 0 0 0 int8ne neqsel neqjoinsel ));
DATA(insert OID = 412 ( "<"		   PGNSP PGUID b f	20	20	16 413 415 0 0 0 0 int8lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 413 ( ">"		   PGNSP PGUID b f	20	20	16 412 414 0 0 0 0 int8gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 414 ( "<="	   PGNSP PGUID b f	20	20	16 415 413 0 0 0 0 int8le scalarltsel scalarltjoinsel ));
DATA(insert OID = 415 ( ">="	   PGNSP PGUID b f	20	20	16 414 412 0 0 0 0 int8ge scalargtsel scalargtjoinsel ));

DATA(insert OID = 416 ( "="		   PGNSP PGUID b f	20	23	16	15 417 412 97 418 419 int84eq eqsel eqjoinsel ));
#define Int84EqualOperator 416
DATA(insert OID = 417 ( "<>"	   PGNSP PGUID b f	20	23	16	36 416 0 0 0 0 int84ne neqsel neqjoinsel ));
DATA(insert OID = 418 ( "<"		   PGNSP PGUID b f	20	23	16	76 430 0 0 0 0 int84lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 419 ( ">"		   PGNSP PGUID b f	20	23	16	37 420 0 0 0 0 int84gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 420 ( "<="	   PGNSP PGUID b f	20	23	16	82 419 0 0 0 0 int84le scalarltsel scalarltjoinsel ));
DATA(insert OID = 430 ( ">="	   PGNSP PGUID b f	20	23	16	80 418 0 0 0 0 int84ge scalargtsel scalargtjoinsel ));
DATA(insert OID = 439 (  "%"	   PGNSP PGUID b f	20	20	20	 0	 0 0 0 0 0 int8mod - - ));
DATA(insert OID = 473 (  "@"	   PGNSP PGUID l f	 0	20	20	 0	 0 0 0 0 0 int8abs - - ));

DATA(insert OID = 484 (  "-"	   PGNSP PGUID l f	 0	20	20	 0	 0	 0	 0	 0	 0 int8um - - ));
DATA(insert OID = 485 (  "<<"	   PGNSP PGUID b f 604 604	16	 0	 0	 0	 0	 0	 0 poly_left positionsel positionjoinsel ));
DATA(insert OID = 486 (  "&<"	   PGNSP PGUID b f 604 604	16	 0	 0	 0	 0	 0	 0 poly_overleft positionsel positionjoinsel ));
DATA(insert OID = 487 (  "&>"	   PGNSP PGUID b f 604 604	16	 0	 0	 0	 0	 0	 0 poly_overright positionsel positionjoinsel ));
DATA(insert OID = 488 (  ">>"	   PGNSP PGUID b f 604 604	16	 0	 0	 0	 0	 0	 0 poly_right positionsel positionjoinsel ));
DATA(insert OID = 489 (  "<@"	   PGNSP PGUID b f 604 604	16 490	 0	 0	 0	 0	 0 poly_contained contsel contjoinsel ));
DATA(insert OID = 490 (  "@>"	   PGNSP PGUID b f 604 604	16 489	 0	 0	 0	 0	 0 poly_contain contsel contjoinsel ));
DATA(insert OID = 491 (  "~="	   PGNSP PGUID b f 604 604	16 491	 0	 0	 0	 0	 0 poly_same eqsel eqjoinsel ));
DATA(insert OID = 492 (  "&&"	   PGNSP PGUID b f 604 604	16 492	 0	 0	 0	 0	 0 poly_overlap areasel areajoinsel ));
DATA(insert OID = 493 (  "<<"	   PGNSP PGUID b f 603 603	16	 0	 0	 0	 0	 0	 0 box_left positionsel positionjoinsel ));
DATA(insert OID = 494 (  "&<"	   PGNSP PGUID b f 603 603	16	 0	 0	 0	 0	 0	 0 box_overleft positionsel positionjoinsel ));
DATA(insert OID = 495 (  "&>"	   PGNSP PGUID b f 603 603	16	 0	 0	 0	 0	 0	 0 box_overright positionsel positionjoinsel ));
DATA(insert OID = 496 (  ">>"	   PGNSP PGUID b f 603 603	16	 0	 0	 0	 0	 0	 0 box_right positionsel positionjoinsel ));
DATA(insert OID = 497 (  "<@"	   PGNSP PGUID b f 603 603	16 498	 0	 0	 0	 0	 0 box_contained contsel contjoinsel ));
DATA(insert OID = 498 (  "@>"	   PGNSP PGUID b f 603 603	16 497	 0	 0	 0	 0	 0 box_contain contsel contjoinsel ));
DATA(insert OID = 499 (  "~="	   PGNSP PGUID b f 603 603	16 499	 0	 0	 0	 0	 0 box_same eqsel eqjoinsel ));
DATA(insert OID = 500 (  "&&"	   PGNSP PGUID b f 603 603	16 500	 0	 0	 0	 0	 0 box_overlap areasel areajoinsel ));
DATA(insert OID = 501 (  ">="	   PGNSP PGUID b f 603 603	16 505 504	 0	 0	 0	 0 box_ge areasel areajoinsel ));
DATA(insert OID = 502 (  ">"	   PGNSP PGUID b f 603 603	16 504 505	 0	 0	 0	 0 box_gt areasel areajoinsel ));
DATA(insert OID = 503 (  "="	   PGNSP PGUID b f 603 603	16 503	 0 504 504 504 502 box_eq eqsel eqjoinsel ));
DATA(insert OID = 504 (  "<"	   PGNSP PGUID b f 603 603	16 502 501	 0	 0	 0	 0 box_lt areasel areajoinsel ));
DATA(insert OID = 505 (  "<="	   PGNSP PGUID b f 603 603	16 501 502	 0	 0	 0	 0 box_le areasel areajoinsel ));
DATA(insert OID = 506 (  ">^"	   PGNSP PGUID b f 600 600	16	 0	 0	 0	 0	 0	 0 point_above positionsel positionjoinsel ));
DATA(insert OID = 507 (  "<<"	   PGNSP PGUID b f 600 600	16	 0	 0	 0	 0	 0	 0 point_left positionsel positionjoinsel ));
DATA(insert OID = 508 (  ">>"	   PGNSP PGUID b f 600 600	16	 0	 0	 0	 0	 0	 0 point_right positionsel positionjoinsel ));
DATA(insert OID = 509 (  "<^"	   PGNSP PGUID b f 600 600	16	 0	 0	 0	 0	 0	 0 point_below positionsel positionjoinsel ));
DATA(insert OID = 510 (  "~="	   PGNSP PGUID b f 600 600	16 510 713	 0	 0	 0	 0 point_eq eqsel eqjoinsel ));
DATA(insert OID = 511 (  "<@"	   PGNSP PGUID b f 600 603	16	 0	 0	 0	 0	 0	 0 on_pb - - ));
DATA(insert OID = 512 (  "<@"	   PGNSP PGUID b f 600 602	16 755	 0	 0	 0	 0	 0 on_ppath - - ));
DATA(insert OID = 513 (  "@@"	   PGNSP PGUID l f	 0 603 600	 0	 0	 0	 0	 0	 0 box_center - - ));
DATA(insert OID = 514 (  "*"	   PGNSP PGUID b f	23	23	23 514	 0	 0	 0	 0	 0 int4mul - - ));
DATA(insert OID = 517 (  "<->"	   PGNSP PGUID b f 600 600 701 517	 0	 0	 0	 0	 0 point_distance - - ));
DATA(insert OID = 518 (  "<>"	   PGNSP PGUID b f	23	23	16 518	96	0  0   0   0 int4ne neqsel neqjoinsel ));
DATA(insert OID = 519 (  "<>"	   PGNSP PGUID b f	21	21	16 519	94	0  0   0   0 int2ne neqsel neqjoinsel ));
DATA(insert OID = 520 (  ">"	   PGNSP PGUID b f	21	21	16	95 522	0  0   0   0 int2gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 521 (  ">"	   PGNSP PGUID b f	23	23	16	97 523	0  0   0   0 int4gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 522 (  "<="	   PGNSP PGUID b f	21	21	16 524 520	0  0   0   0 int2le scalarltsel scalarltjoinsel ));
DATA(insert OID = 523 (  "<="	   PGNSP PGUID b f	23	23	16 525 521	0  0   0   0 int4le scalarltsel scalarltjoinsel ));
DATA(insert OID = 524 (  ">="	   PGNSP PGUID b f	21	21	16 522	95	0  0   0   0 int2ge scalargtsel scalargtjoinsel ));
DATA(insert OID = 525 (  ">="	   PGNSP PGUID b f	23	23	16 523	97	0  0   0   0 int4ge scalargtsel scalargtjoinsel ));
DATA(insert OID = 526 (  "*"	   PGNSP PGUID b f	21	21	21 526	 0	0  0   0   0 int2mul - - ));
DATA(insert OID = 527 (  "/"	   PGNSP PGUID b f	21	21	21	 0	 0	0  0   0   0 int2div - - ));
DATA(insert OID = 528 (  "/"	   PGNSP PGUID b f	23	23	23	 0	 0	0  0   0   0 int4div - - ));
DATA(insert OID = 529 (  "%"	   PGNSP PGUID b f	21	21	21	 0	 0	0  0   0   0 int2mod - - ));
DATA(insert OID = 530 (  "%"	   PGNSP PGUID b f	23	23	23	 0	 0	0  0   0   0 int4mod - - ));
DATA(insert OID = 531 (  "<>"	   PGNSP PGUID b f	25	25	16 531	98	0	0	0	0 textne neqsel neqjoinsel ));
DATA(insert OID = 532 (  "="	   PGNSP PGUID b f	21	23	16 533 538	 95  97 534 536 int24eq eqsel eqjoinsel ));
#define Int24EqualOperator 532

DATA(insert OID = 533 (  "="	   PGNSP PGUID b f	23	21	16 532 539	 97  95 535 537 int42eq eqsel eqjoinsel ));
#define Int42EqualOperator 533

DATA(insert OID = 534 (  "<"	   PGNSP PGUID b f	21	23	16 537 542	0  0   0   0 int24lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 535 (  "<"	   PGNSP PGUID b f	23	21	16 536 543	0  0   0   0 int42lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 536 (  ">"	   PGNSP PGUID b f	21	23	16 535 540	0  0   0   0 int24gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 537 (  ">"	   PGNSP PGUID b f	23	21	16 534 541	0  0   0   0 int42gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 538 (  "<>"	   PGNSP PGUID b f	21	23	16 539 532	0  0   0   0 int24ne neqsel neqjoinsel ));
DATA(insert OID = 539 (  "<>"	   PGNSP PGUID b f	23	21	16 538 533	0  0   0   0 int42ne neqsel neqjoinsel ));
DATA(insert OID = 540 (  "<="	   PGNSP PGUID b f	21	23	16 543 536	0  0   0   0 int24le scalarltsel scalarltjoinsel ));
DATA(insert OID = 541 (  "<="	   PGNSP PGUID b f	23	21	16 542 537	0  0   0   0 int42le scalarltsel scalarltjoinsel ));
DATA(insert OID = 542 (  ">="	   PGNSP PGUID b f	21	23	16 541 534	0  0   0   0 int24ge scalargtsel scalargtjoinsel ));
DATA(insert OID = 543 (  ">="	   PGNSP PGUID b f	23	21	16 540 535	0  0   0   0 int42ge scalargtsel scalargtjoinsel ));
DATA(insert OID = 544 (  "*"	   PGNSP PGUID b f	21	23	23 545	 0	 0	 0	 0	 0 int24mul - - ));
DATA(insert OID = 545 (  "*"	   PGNSP PGUID b f	23	21	23 544	 0	 0	 0	 0	 0 int42mul - - ));
DATA(insert OID = 546 (  "/"	   PGNSP PGUID b f	21	23	23	 0	 0	 0	 0	 0	 0 int24div - - ));
DATA(insert OID = 547 (  "/"	   PGNSP PGUID b f	23	21	23	 0	 0	 0	 0	 0	 0 int42div - - ));
DATA(insert OID = 548 (  "%"	   PGNSP PGUID b f	21	23	23	 0	 0	 0	 0	 0	 0 int24mod - - ));
DATA(insert OID = 549 (  "%"	   PGNSP PGUID b f	23	21	23	 0	 0	 0	 0	 0	 0 int42mod - - ));
DATA(insert OID = 550 (  "+"	   PGNSP PGUID b f	21	21	21 550	 0	 0	 0	 0	 0 int2pl - - ));
DATA(insert OID = 551 (  "+"	   PGNSP PGUID b f	23	23	23 551	 0	 0	 0	 0	 0 int4pl - - ));
DATA(insert OID = 552 (  "+"	   PGNSP PGUID b f	21	23	23 553	 0	 0	 0	 0	 0 int24pl - - ));
DATA(insert OID = 553 (  "+"	   PGNSP PGUID b f	23	21	23 552	 0	 0	 0	 0	 0 int42pl - - ));
DATA(insert OID = 554 (  "-"	   PGNSP PGUID b f	21	21	21	 0	 0	 0	 0	 0	 0 int2mi - - ));
DATA(insert OID = 555 (  "-"	   PGNSP PGUID b f	23	23	23	 0	 0	 0	 0	 0	 0 int4mi - - ));
DATA(insert OID = 556 (  "-"	   PGNSP PGUID b f	21	23	23	 0	 0	 0	 0	 0	 0 int24mi - - ));
DATA(insert OID = 557 (  "-"	   PGNSP PGUID b f	23	21	23	 0	 0	 0	 0	 0	 0 int42mi - - ));
DATA(insert OID = 558 (  "-"	   PGNSP PGUID l f	 0	23	23	 0	 0	 0	 0	 0	 0 int4um - - ));
DATA(insert OID = 559 (  "-"	   PGNSP PGUID l f	 0	21	21	 0	 0	 0	 0	 0	 0 int2um - - ));
DATA(insert OID = 560 (  "="	   PGNSP PGUID b t 702 702	16 560 561 562 562 562 563 abstimeeq eqsel eqjoinsel ));
#define AbsTimeEqualOperator 560
DATA(insert OID = 561 (  "<>"	   PGNSP PGUID b f 702 702	16 561 560 0 0 0 0 abstimene neqsel neqjoinsel ));
DATA(insert OID = 562 (  "<"	   PGNSP PGUID b f 702 702	16 563 565 0 0 0 0 abstimelt scalarltsel scalarltjoinsel ));
DATA(insert OID = 563 (  ">"	   PGNSP PGUID b f 702 702	16 562 564 0 0 0 0 abstimegt scalargtsel scalargtjoinsel ));
DATA(insert OID = 564 (  "<="	   PGNSP PGUID b f 702 702	16 565 563 0 0 0 0 abstimele scalarltsel scalarltjoinsel ));
DATA(insert OID = 565 (  ">="	   PGNSP PGUID b f 702 702	16 564 562 0 0 0 0 abstimege scalargtsel scalargtjoinsel ));
DATA(insert OID = 566 (  "="	   PGNSP PGUID b t 703 703	16 566 567 568 568 568 569 reltimeeq eqsel eqjoinsel ));
#define RelTimeEqualOperator 566
DATA(insert OID = 567 (  "<>"	   PGNSP PGUID b f 703 703	16 567 566 0 0 0 0 reltimene neqsel neqjoinsel ));
DATA(insert OID = 568 (  "<"	   PGNSP PGUID b f 703 703	16 569 571 0 0 0 0 reltimelt scalarltsel scalarltjoinsel ));
DATA(insert OID = 569 (  ">"	   PGNSP PGUID b f 703 703	16 568 570 0 0 0 0 reltimegt scalargtsel scalargtjoinsel ));
DATA(insert OID = 570 (  "<="	   PGNSP PGUID b f 703 703	16 571 569 0 0 0 0 reltimele scalarltsel scalarltjoinsel ));
DATA(insert OID = 571 (  ">="	   PGNSP PGUID b f 703 703	16 570 568 0 0 0 0 reltimege scalargtsel scalargtjoinsel ));
DATA(insert OID = 572 (  "~="	   PGNSP PGUID b f 704 704	16 572	 0	 0	 0	 0	 0 tintervalsame eqsel eqjoinsel ));
DATA(insert OID = 573 (  "<<"	   PGNSP PGUID b f 704 704	16	 0	 0	 0	 0	 0	 0 tintervalct - - ));
DATA(insert OID = 574 (  "&&"	   PGNSP PGUID b f 704 704	16 574	 0	 0	 0	 0	 0 tintervalov - - ));
DATA(insert OID = 575 (  "#="	   PGNSP PGUID b f 704 703	16	 0 576	 0	 0	 0	 0 tintervalleneq - - ));
DATA(insert OID = 576 (  "#<>"	   PGNSP PGUID b f 704 703	16	 0 575	 0	 0	 0	 0 tintervallenne - - ));
DATA(insert OID = 577 (  "#<"	   PGNSP PGUID b f 704 703	16	 0 580	 0	 0	 0	 0 tintervallenlt - - ));
DATA(insert OID = 578 (  "#>"	   PGNSP PGUID b f 704 703	16	 0 579	 0	 0	 0	 0 tintervallengt - - ));
DATA(insert OID = 579 (  "#<="	   PGNSP PGUID b f 704 703	16	 0 578	 0	 0	 0	 0 tintervallenle - - ));
DATA(insert OID = 580 (  "#>="	   PGNSP PGUID b f 704 703	16	 0 577	 0	 0	 0	 0 tintervallenge - - ));
DATA(insert OID = 581 (  "+"	   PGNSP PGUID b f 702 703 702	 0	 0 0 0 0 0 timepl - - ));
DATA(insert OID = 582 (  "-"	   PGNSP PGUID b f 702 703 702	 0	 0 0 0 0 0 timemi - - ));
DATA(insert OID = 583 (  "<?>"	   PGNSP PGUID b f 702 704	16	 0	 0	 0	 0	 0	 0 intinterval - - ));
DATA(insert OID = 584 (  "-"	   PGNSP PGUID l f	 0 700 700	 0	 0	 0	 0	 0	 0 float4um - - ));
DATA(insert OID = 585 (  "-"	   PGNSP PGUID l f	 0 701 701	 0	 0	 0	 0	 0	 0 float8um - - ));
DATA(insert OID = 586 (  "+"	   PGNSP PGUID b f 700 700 700 586	 0	 0	 0	 0	 0 float4pl - - ));
DATA(insert OID = 587 (  "-"	   PGNSP PGUID b f 700 700 700	 0	 0	 0	 0	 0	 0 float4mi - - ));
DATA(insert OID = 588 (  "/"	   PGNSP PGUID b f 700 700 700	 0	 0	 0	 0	 0	 0 float4div - - ));
DATA(insert OID = 589 (  "*"	   PGNSP PGUID b f 700 700 700 589	 0	 0	 0	 0	 0 float4mul - - ));
DATA(insert OID = 590 (  "@"	   PGNSP PGUID l f	 0 700 700	 0	 0	 0	 0	 0	 0 float4abs - - ));
DATA(insert OID = 591 (  "+"	   PGNSP PGUID b f 701 701 701 591	 0	 0	 0	 0	 0 float8pl - - ));
DATA(insert OID = 592 (  "-"	   PGNSP PGUID b f 701 701 701	 0	 0	 0	 0	 0	 0 float8mi - - ));
DATA(insert OID = 593 (  "/"	   PGNSP PGUID b f 701 701 701	 0	 0	 0	 0	 0	 0 float8div - - ));
DATA(insert OID = 594 (  "*"	   PGNSP PGUID b f 701 701 701 594	 0	 0	 0	 0	 0 float8mul - - ));
DATA(insert OID = 595 (  "@"	   PGNSP PGUID l f	 0 701 701	 0	 0	 0	 0	 0	 0 float8abs - - ));
DATA(insert OID = 596 (  "|/"	   PGNSP PGUID l f	 0 701 701	 0	 0	 0	 0	 0	 0 dsqrt - - ));
DATA(insert OID = 597 (  "||/"	   PGNSP PGUID l f	 0 701 701	 0	 0	 0	 0	 0	 0 dcbrt - - ));
DATA(insert OID = 1284 (  "|"	   PGNSP PGUID l f	 0 704 702	0  0   0   0   0   0 tintervalstart - - ));
DATA(insert OID = 606 (  "<#>"	   PGNSP PGUID b f 702 702 704	0  0   0   0   0   0 mktinterval - - ));

DATA(insert OID = 607 (  "="	   PGNSP PGUID b t	26	26	16 607 608 609 609 609 610 oideq eqsel eqjoinsel ));
#define OidEqualOperator 607
#define MIN_OIDCMP 607			/* used by cache code */
DATA(insert OID = 608 (  "<>"	   PGNSP PGUID b f	26	26	16 608 607	0  0   0   0 oidne neqsel neqjoinsel ));
DATA(insert OID = 609 (  "<"	   PGNSP PGUID b f	26	26	16 610 612	0  0   0   0 oidlt scalarltsel scalarltjoinsel ));
DATA(insert OID = 610 (  ">"	   PGNSP PGUID b f	26	26	16 609 611	0  0   0   0 oidgt scalargtsel scalargtjoinsel ));
DATA(insert OID = 611 (  "<="	   PGNSP PGUID b f	26	26	16 612 610	0  0   0   0 oidle scalarltsel scalarltjoinsel ));
DATA(insert OID = 612 (  ">="	   PGNSP PGUID b f	26	26	16 611 609	0  0   0   0 oidge scalargtsel scalargtjoinsel ));
#define MAX_OIDCMP 612			/* used by cache code */

DATA(insert OID = 644 (  "<>"	   PGNSP PGUID b f	30	30	16 644 649	 0	 0	 0	 0 oidvectorne neqsel neqjoinsel ));
DATA(insert OID = 645 (  "<"	   PGNSP PGUID b f	30	30	16 646 648	 0	 0	 0	 0 oidvectorlt scalarltsel scalarltjoinsel ));
DATA(insert OID = 646 (  ">"	   PGNSP PGUID b f	30	30	16 645 647	 0	 0	 0	 0 oidvectorgt scalargtsel scalargtjoinsel ));
DATA(insert OID = 647 (  "<="	   PGNSP PGUID b f	30	30	16 648 646	 0	 0	 0	 0 oidvectorle scalarltsel scalarltjoinsel ));
DATA(insert OID = 648 (  ">="	   PGNSP PGUID b f	30	30	16 647 645	 0	 0	 0	 0 oidvectorge scalargtsel scalargtjoinsel ));
DATA(insert OID = 649 (  "="	   PGNSP PGUID b t	30	30	16 649 644 645 645 645 646 oidvectoreq eqsel eqjoinsel ));

DATA(insert OID = 613 (  "<->"	   PGNSP PGUID b f 600 628 701	 0	 0	0  0   0   0 dist_pl - - ));
DATA(insert OID = 614 (  "<->"	   PGNSP PGUID b f 600 601 701	 0	 0	0  0   0   0 dist_ps - - ));
DATA(insert OID = 615 (  "<->"	   PGNSP PGUID b f 600 603 701	 0	 0	0  0   0   0 dist_pb - - ));
DATA(insert OID = 616 (  "<->"	   PGNSP PGUID b f 601 628 701	 0	 0	0  0   0   0 dist_sl - - ));
DATA(insert OID = 617 (  "<->"	   PGNSP PGUID b f 601 603 701	 0	 0	0  0   0   0 dist_sb - - ));
DATA(insert OID = 618 (  "<->"	   PGNSP PGUID b f 600 602 701	 0	 0	0  0   0   0 dist_ppath - - ));

DATA(insert OID = 620 (  "="	   PGNSP PGUID b t	700  700	16 620 621	622 622 622 623 float4eq eqsel eqjoinsel ));
#define Float4EqualOperator 620
DATA(insert OID = 621 (  "<>"	   PGNSP PGUID b f	700  700	16 621 620	0 0   0   0 float4ne neqsel neqjoinsel ));
DATA(insert OID = 622 (  "<"	   PGNSP PGUID b f	700  700	16 623 625	0 0   0   0 float4lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 623 (  ">"	   PGNSP PGUID b f	700  700	16 622 624	0 0   0   0 float4gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 624 (  "<="	   PGNSP PGUID b f	700  700	16 625 623	0 0   0   0 float4le scalarltsel scalarltjoinsel ));
DATA(insert OID = 625 (  ">="	   PGNSP PGUID b f	700  700	16 624 622	0 0   0   0 float4ge scalargtsel scalargtjoinsel ));
DATA(insert OID = 626 (  "!!="	   PGNSP PGUID b f	23	 25 16 0   0	0	0	0	0	int4notin - - ));
DATA(insert OID = 627 (  "!!="	   PGNSP PGUID b f	26	 25 16 0   0	0	0	0	0	oidnotin - - ));
DATA(insert OID = 630 (  "<>"	   PGNSP PGUID b f	18	18	16 630	92	0 0 0 0 charne neqsel neqjoinsel ));

DATA(insert OID = 631 (  "<"	   PGNSP PGUID b f	18	18	16 633 634	0 0 0 0 charlt scalarltsel scalarltjoinsel ));
DATA(insert OID = 632 (  "<="	   PGNSP PGUID b f	18	18	16 634 633	0 0 0 0 charle scalarltsel scalarltjoinsel ));
DATA(insert OID = 633 (  ">"	   PGNSP PGUID b f	18	18	16 631 632	0 0 0 0 chargt scalargtsel scalargtjoinsel ));
DATA(insert OID = 634 (  ">="	   PGNSP PGUID b f	18	18	16 632 631	0 0 0 0 charge scalargtsel scalargtjoinsel ));

DATA(insert OID = 639 (  "~"	   PGNSP PGUID b f	19	25	16 0 640	0 0   0   0 nameregexeq regexeqsel regexeqjoinsel ));
#define OID_NAME_REGEXEQ_OP		639
DATA(insert OID = 640 (  "!~"	   PGNSP PGUID b f	19	25	16 0 639	0 0   0   0 nameregexne regexnesel regexnejoinsel ));
DATA(insert OID = 641 (  "~"	   PGNSP PGUID b f	25	25	16 0 642	0 0   0   0 textregexeq regexeqsel regexeqjoinsel ));
#define OID_TEXT_REGEXEQ_OP		641
DATA(insert OID = 642 (  "!~"	   PGNSP PGUID b f	25	25	16 0 641	0 0   0   0 textregexne regexnesel regexnejoinsel ));
DATA(insert OID = 643 (  "<>"	   PGNSP PGUID b f	19	19	16 643 93 0 0 0 0 namene neqsel neqjoinsel ));
DATA(insert OID = 654 (  "||"	   PGNSP PGUID b f	25	25	25	 0 0	0 0   0   0 textcat - - ));

DATA(insert OID = 660 (  "<"	   PGNSP PGUID b f	19	19	16 662 663	0 0 0 0 namelt scalarltsel scalarltjoinsel ));
DATA(insert OID = 661 (  "<="	   PGNSP PGUID b f	19	19	16 663 662	0 0 0 0 namele scalarltsel scalarltjoinsel ));
DATA(insert OID = 662 (  ">"	   PGNSP PGUID b f	19	19	16 660 661	0 0 0 0 namegt scalargtsel scalargtjoinsel ));
DATA(insert OID = 663 (  ">="	   PGNSP PGUID b f	19	19	16 661 660	0 0 0 0 namege scalargtsel scalargtjoinsel ));
DATA(insert OID = 664 (  "<"	   PGNSP PGUID b f	25	25	16 666 667	0 0 0 0 text_lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 665 (  "<="	   PGNSP PGUID b f	25	25	16 667 666	0 0 0 0 text_le scalarltsel scalarltjoinsel ));
DATA(insert OID = 666 (  ">"	   PGNSP PGUID b f	25	25	16 664 665	0 0 0 0 text_gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 667 (  ">="	   PGNSP PGUID b f	25	25	16 665 664	0 0 0 0 text_ge scalargtsel scalargtjoinsel ));

DATA(insert OID = 670 (  "="	   PGNSP PGUID b t	701  701	16 670 671 672 672 672 674 float8eq eqsel eqjoinsel ));
#define Float8EqualOperator 670
DATA(insert OID = 671 (  "<>"	   PGNSP PGUID b f	701  701	16 671 670	0 0   0   0 float8ne neqsel neqjoinsel ));
DATA(insert OID = 672 (  "<"	   PGNSP PGUID b f	701  701	16 674 675	0 0   0   0 float8lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 673 (  "<="	   PGNSP PGUID b f	701  701	16 675 674	0 0   0   0 float8le scalarltsel scalarltjoinsel ));
DATA(insert OID = 674 (  ">"	   PGNSP PGUID b f	701  701	16 672 673	0 0   0   0 float8gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 675 (  ">="	   PGNSP PGUID b f	701  701	16 673 672	0 0   0   0 float8ge scalargtsel scalargtjoinsel ));

DATA(insert OID = 682 (  "@"	   PGNSP PGUID l f	 0	21	21	 0	 0	 0	 0	 0	 0 int2abs - - ));
DATA(insert OID = 684 (  "+"	   PGNSP PGUID b f	20	20	20 684	 0	 0	 0	 0	 0 int8pl - - ));
DATA(insert OID = 685 (  "-"	   PGNSP PGUID b f	20	20	20	 0	 0	 0	 0	 0	 0 int8mi - - ));
DATA(insert OID = 686 (  "*"	   PGNSP PGUID b f	20	20	20 686	 0	 0	 0	 0	 0 int8mul - - ));
DATA(insert OID = 687 (  "/"	   PGNSP PGUID b f	20	20	20	 0	 0	 0	 0	 0	 0 int8div - - ));
DATA(insert OID = 688 (  "+"	   PGNSP PGUID b f	20	23	20 692	 0	 0	 0	 0	 0 int84pl - - ));
DATA(insert OID = 689 (  "-"	   PGNSP PGUID b f	20	23	20	 0	 0	 0	 0	 0	 0 int84mi - - ));
DATA(insert OID = 690 (  "*"	   PGNSP PGUID b f	20	23	20 694	 0	 0	 0	 0	 0 int84mul - - ));
DATA(insert OID = 691 (  "/"	   PGNSP PGUID b f	20	23	20	 0	 0	 0	 0	 0	 0 int84div - - ));
DATA(insert OID = 692 (  "+"	   PGNSP PGUID b f	23	20	20 688	 0	 0	 0	 0	 0 int48pl - - ));
DATA(insert OID = 693 (  "-"	   PGNSP PGUID b f	23	20	20	 0	 0	 0	 0	 0	 0 int48mi - - ));
DATA(insert OID = 694 (  "*"	   PGNSP PGUID b f	23	20	20 690	 0	 0	 0	 0	 0 int48mul - - ));
DATA(insert OID = 695 (  "/"	   PGNSP PGUID b f	23	20	20	 0	 0	 0	 0	 0	 0 int48div - - ));

DATA(insert OID = 706 (  "<->"	   PGNSP PGUID b f 603 603 701 706	 0	0  0   0   0 box_distance - - ));
DATA(insert OID = 707 (  "<->"	   PGNSP PGUID b f 602 602 701 707	 0	0  0   0   0 path_distance - - ));
DATA(insert OID = 708 (  "<->"	   PGNSP PGUID b f 628 628 701 708	 0	0  0   0   0 line_distance - - ));
DATA(insert OID = 709 (  "<->"	   PGNSP PGUID b f 601 601 701 709	 0	0  0   0   0 lseg_distance - - ));
DATA(insert OID = 712 (  "<->"	   PGNSP PGUID b f 604 604 701 712	 0	0  0   0   0 poly_distance - - ));

DATA(insert OID = 713 (  "<>"	   PGNSP PGUID b f 600 600	16 713 510	0  0   0   0 point_ne neqsel neqjoinsel ));

/* add translation/rotation/scaling operators for geometric types. - thomas 97/05/10 */
DATA(insert OID = 731 (  "+"	   PGNSP PGUID b f	600  600	600  731  0 0 0 0 0 point_add - - ));
DATA(insert OID = 732 (  "-"	   PGNSP PGUID b f	600  600	600    0  0 0 0 0 0 point_sub - - ));
DATA(insert OID = 733 (  "*"	   PGNSP PGUID b f	600  600	600  733  0 0 0 0 0 point_mul - - ));
DATA(insert OID = 734 (  "/"	   PGNSP PGUID b f	600  600	600    0  0 0 0 0 0 point_div - - ));
DATA(insert OID = 735 (  "+"	   PGNSP PGUID b f	602  602	602  735  0 0 0 0 0 path_add - - ));
DATA(insert OID = 736 (  "+"	   PGNSP PGUID b f	602  600	602    0  0 0 0 0 0 path_add_pt - - ));
DATA(insert OID = 737 (  "-"	   PGNSP PGUID b f	602  600	602    0  0 0 0 0 0 path_sub_pt - - ));
DATA(insert OID = 738 (  "*"	   PGNSP PGUID b f	602  600	602    0  0 0 0 0 0 path_mul_pt - - ));
DATA(insert OID = 739 (  "/"	   PGNSP PGUID b f	602  600	602    0  0 0 0 0 0 path_div_pt - - ));
DATA(insert OID = 755 (  "@>"	   PGNSP PGUID b f	602  600	 16  512  0 0 0 0 0 path_contain_pt - - ));
DATA(insert OID = 756 (  "<@"	   PGNSP PGUID b f	600  604	 16  757  0 0 0 0 0 pt_contained_poly - - ));
DATA(insert OID = 757 (  "@>"	   PGNSP PGUID b f	604  600	 16  756  0 0 0 0 0 poly_contain_pt - - ));
DATA(insert OID = 758 (  "<@"	   PGNSP PGUID b f	600  718	 16  759  0 0 0 0 0 pt_contained_circle - - ));
DATA(insert OID = 759 (  "@>"	   PGNSP PGUID b f	718  600	 16  758  0 0 0 0 0 circle_contain_pt - - ));

DATA(insert OID = 773 (  "@"	   PGNSP PGUID l f	 0	23	23	 0	 0	 0	 0	 0	 0 int4abs - - ));

/* additional operators for geometric types - thomas 1997-07-09 */
DATA(insert OID =  792 (  "="	   PGNSP PGUID b f	602  602	 16  792  0 0 0 0 0 path_n_eq eqsel eqjoinsel ));
DATA(insert OID =  793 (  "<"	   PGNSP PGUID b f	602  602	 16  794  0 0 0 0 0 path_n_lt - - ));
DATA(insert OID =  794 (  ">"	   PGNSP PGUID b f	602  602	 16  793  0 0 0 0 0 path_n_gt - - ));
DATA(insert OID =  795 (  "<="	   PGNSP PGUID b f	602  602	 16  796  0 0 0 0 0 path_n_le - - ));
DATA(insert OID =  796 (  ">="	   PGNSP PGUID b f	602  602	 16  795  0 0 0 0 0 path_n_ge - - ));
DATA(insert OID =  797 (  "#"	   PGNSP PGUID l f	0  602	 23    0  0 0 0 0 0 path_npoints - - ));
DATA(insert OID =  798 (  "?#"	   PGNSP PGUID b f	602  602	 16    0  0 0 0 0 0 path_inter - - ));
DATA(insert OID =  799 (  "@-@"    PGNSP PGUID l f	0  602	701    0  0 0 0 0 0 path_length - - ));
DATA(insert OID =  800 (  ">^"	   PGNSP PGUID b f	603  603	 16    0  0 0 0 0 0 box_above_eq positionsel positionjoinsel ));
DATA(insert OID =  801 (  "<^"	   PGNSP PGUID b f	603  603	 16    0  0 0 0 0 0 box_below_eq positionsel positionjoinsel ));
DATA(insert OID =  802 (  "?#"	   PGNSP PGUID b f	603  603	 16    0  0 0 0 0 0 box_overlap areasel areajoinsel ));
DATA(insert OID =  803 (  "#"	   PGNSP PGUID b f	603  603	603    0  0 0 0 0 0 box_intersect - - ));
DATA(insert OID =  804 (  "+"	   PGNSP PGUID b f	603  600	603    0  0 0 0 0 0 box_add - - ));
DATA(insert OID =  805 (  "-"	   PGNSP PGUID b f	603  600	603    0  0 0 0 0 0 box_sub - - ));
DATA(insert OID =  806 (  "*"	   PGNSP PGUID b f	603  600	603    0  0 0 0 0 0 box_mul - - ));
DATA(insert OID =  807 (  "/"	   PGNSP PGUID b f	603  600	603    0  0 0 0 0 0 box_div - - ));
DATA(insert OID =  808 (  "?-"	   PGNSP PGUID b f	600  600	 16  808  0 0 0 0 0 point_horiz - - ));
DATA(insert OID =  809 (  "?|"	   PGNSP PGUID b f	600  600	 16  809  0 0 0 0 0 point_vert - - ));

DATA(insert OID = 811 (  "="	   PGNSP PGUID b f 704 704	16 811 812	 0	 0	 0	 0 tintervaleq eqsel eqjoinsel ));
#define TIntervalEqualOperator 811
DATA(insert OID = 812 (  "<>"	   PGNSP PGUID b f 704 704	16 812 811	 0	 0	 0	 0 tintervalne neqsel neqjoinsel ));
DATA(insert OID = 813 (  "<"	   PGNSP PGUID b f 704 704	16 814 816	 0	 0	 0	 0 tintervallt scalarltsel scalarltjoinsel ));
DATA(insert OID = 814 (  ">"	   PGNSP PGUID b f 704 704	16 813 815	 0	 0	 0	 0 tintervalgt scalargtsel scalargtjoinsel ));
DATA(insert OID = 815 (  "<="	   PGNSP PGUID b f 704 704	16 816 814	 0	 0	 0	 0 tintervalle scalarltsel scalarltjoinsel ));
DATA(insert OID = 816 (  ">="	   PGNSP PGUID b f 704 704	16 815 813	 0	 0	 0	 0 tintervalge scalargtsel scalargtjoinsel ));

DATA(insert OID = 843 (  "*"	   PGNSP PGUID b f	790  700	790 845   0   0   0   0   0 cash_mul_flt4 - - ));
DATA(insert OID = 844 (  "/"	   PGNSP PGUID b f	790  700	790   0   0   0   0   0   0 cash_div_flt4 - - ));
DATA(insert OID = 845 (  "*"	   PGNSP PGUID b f	700  790	790 843   0   0   0   0   0 flt4_mul_cash - - ));

DATA(insert OID = 900 (  "="	   PGNSP PGUID b f	790  790	16 900 901	902 902 902 903 cash_eq eqsel eqjoinsel ));
#define CashEqualOperator 900
DATA(insert OID = 901 (  "<>"	   PGNSP PGUID b f	790  790	16 901 900	0 0   0   0 cash_ne neqsel neqjoinsel ));
DATA(insert OID = 902 (  "<"	   PGNSP PGUID b f	790  790	16 903 905	0 0   0   0 cash_lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 903 (  ">"	   PGNSP PGUID b f	790  790	16 902 904	0 0   0   0 cash_gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 904 (  "<="	   PGNSP PGUID b f	790  790	16 905 903	0 0   0   0 cash_le scalarltsel scalarltjoinsel ));
DATA(insert OID = 905 (  ">="	   PGNSP PGUID b f	790  790	16 904 902	0 0   0   0 cash_ge scalargtsel scalargtjoinsel ));
DATA(insert OID = 906 (  "+"	   PGNSP PGUID b f	790  790	790 906   0   0   0   0   0 cash_pl - - ));
DATA(insert OID = 907 (  "-"	   PGNSP PGUID b f	790  790	790   0   0   0   0   0   0 cash_mi - - ));
DATA(insert OID = 908 (  "*"	   PGNSP PGUID b f	790  701	790 916   0   0   0   0   0 cash_mul_flt8 - - ));
DATA(insert OID = 909 (  "/"	   PGNSP PGUID b f	790  701	790   0   0   0   0   0   0 cash_div_flt8 - - ));
DATA(insert OID = 912 (  "*"	   PGNSP PGUID b f	790  23 790 917   0   0   0   0   0 cash_mul_int4 - - ));
DATA(insert OID = 913 (  "/"	   PGNSP PGUID b f	790  23 790   0   0   0   0   0   0 cash_div_int4 - - ));
DATA(insert OID = 914 (  "*"	   PGNSP PGUID b f	790  21 790 918   0   0   0   0   0 cash_mul_int2 - - ));
DATA(insert OID = 915 (  "/"	   PGNSP PGUID b f	790  21 790   0   0   0   0   0   0 cash_div_int2 - - ));
DATA(insert OID = 916 (  "*"	   PGNSP PGUID b f	701  790	790 908   0   0   0   0   0 flt8_mul_cash - - ));
DATA(insert OID = 917 (  "*"	   PGNSP PGUID b f	23	790 790 912   0   0   0   0   0 int4_mul_cash - - ));
DATA(insert OID = 918 (  "*"	   PGNSP PGUID b f	21	790 790 914   0   0   0   0   0 int2_mul_cash - - ));
DATA(insert OID = 8101 (  "*"	   PGNSP PGUID b f	790  20 790 8103   0   0   0   0   0 cash_mul_int8 - - ));
DATA(insert OID = 8102 (  "/"	   PGNSP PGUID b f	790  20 790   0   0   0   0   0   0 cash_div_int8 - - ));
DATA(insert OID = 8103 (  "*"	   PGNSP PGUID b f	20	790 790 8101 0   0   0   0   0 int8_mul_cash - - ));

DATA(insert OID = 965 (  "^"	   PGNSP PGUID b f	701  701	701 0 0 0 0 0 0 dpow - - ));
DATA(insert OID = 966 (  "+"	   PGNSP PGUID b f 1034 1033 1034 0 0 0 0 0 0 aclinsert - - ));
DATA(insert OID = 967 (  "-"	   PGNSP PGUID b f 1034 1033 1034 0 0 0 0 0 0 aclremove - - ));
DATA(insert OID = 968 (  "@>"	   PGNSP PGUID b f 1034 1033	 16 0 0 0 0 0 0 aclcontains - - ));
DATA(insert OID = 974 (  "="	   PGNSP PGUID b t 1033 1033	 16 974 0 0 0 0 0 aclitemeq eqsel eqjoinsel ));

/* additional geometric operators - thomas 1997-07-09 */
DATA(insert OID =  969 (  "@@"	   PGNSP PGUID l f	0  601	600    0  0 0 0 0 0 lseg_center - - ));
DATA(insert OID =  970 (  "@@"	   PGNSP PGUID l f	0  602	600    0  0 0 0 0 0 path_center - - ));
DATA(insert OID =  971 (  "@@"	   PGNSP PGUID l f	0  604	600    0  0 0 0 0 0 poly_center - - ));

DATA(insert OID = 1054 ( "="	   PGNSP PGUID b t 1042 1042	 16 1054 1057 1058 1058 1058 1060 bpchareq eqsel eqjoinsel ));
#define BPCharEqualOperator 1054
DATA(insert OID = 1055 ( "~"	   PGNSP PGUID b f 1042 25	 16    0 1056  0 0 0 0 bpcharregexeq regexeqsel regexeqjoinsel ));
#define OID_BPCHAR_REGEXEQ_OP		1055
DATA(insert OID = 1056 ( "!~"	   PGNSP PGUID b f 1042 25	 16    0 1055  0 0 0 0 bpcharregexne regexnesel regexnejoinsel ));
DATA(insert OID = 1057 ( "<>"	   PGNSP PGUID b f 1042 1042	 16 1057 1054  0 0 0 0 bpcharne neqsel neqjoinsel ));
DATA(insert OID = 1058 ( "<"	   PGNSP PGUID b f 1042 1042	 16 1060 1061  0 0 0 0 bpcharlt scalarltsel scalarltjoinsel ));
DATA(insert OID = 1059 ( "<="	   PGNSP PGUID b f 1042 1042	 16 1061 1060  0 0 0 0 bpcharle scalarltsel scalarltjoinsel ));
DATA(insert OID = 1060 ( ">"	   PGNSP PGUID b f 1042 1042	 16 1058 1059  0 0 0 0 bpchargt scalargtsel scalargtjoinsel ));
DATA(insert OID = 1061 ( ">="	   PGNSP PGUID b f 1042 1042	 16 1059 1058  0 0 0 0 bpcharge scalargtsel scalargtjoinsel ));

/* generic array comparison operators */
DATA(insert OID = 1070 (  "="	   PGNSP PGUID b f 2277 2277 16 1070 1071  1072 1072 1072 1073 array_eq eqsel eqjoinsel ));
#define ARRAY_EQ_OP 1070
DATA(insert OID = 1071 (  "<>"	   PGNSP PGUID b f 2277 2277 16 1071 1070  0 0 0 0 array_ne neqsel neqjoinsel ));
DATA(insert OID = 1072 (  "<"	   PGNSP PGUID b f 2277 2277 16 1073 1075  0 0 0 0 array_lt scalarltsel scalarltjoinsel ));
#define ARRAY_LT_OP 1072
DATA(insert OID = 1073 (  ">"	   PGNSP PGUID b f 2277 2277 16 1072 1074  0 0 0 0 array_gt scalargtsel scalargtjoinsel ));
#define ARRAY_GT_OP 1073
DATA(insert OID = 1074 (  "<="	   PGNSP PGUID b f 2277 2277 16 1075 1073  0 0 0 0 array_le scalarltsel scalarltjoinsel ));
DATA(insert OID = 1075 (  ">="	   PGNSP PGUID b f 2277 2277 16 1074 1072  0 0 0 0 array_ge scalargtsel scalargtjoinsel ));

/* date operators */
DATA(insert OID = 1076 ( "+"	   PGNSP PGUID b f	1082	1186 1114 2551 0 0 0 0 0 date_pl_interval - - ));
DATA(insert OID = 1077 ( "-"	   PGNSP PGUID b f	1082	1186 1114 0 0 0 0 0 0 date_mi_interval - - ));
DATA(insert OID = 1093 ( "="	   PGNSP PGUID b t	1082	1082   16 1093 1094 1095 1095 1095 1097 date_eq eqsel eqjoinsel ));
#define DateEqualOperator 1093
DATA(insert OID = 1094 ( "<>"	   PGNSP PGUID b f	1082	1082   16 1094 1093  0 0 0 0 date_ne neqsel neqjoinsel ));
DATA(insert OID = 1095 ( "<"	   PGNSP PGUID b f	1082	1082   16 1097 1098  0 0 0 0 date_lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 1096 ( "<="	   PGNSP PGUID b f	1082	1082   16 1098 1097  0 0 0 0 date_le scalarltsel scalarltjoinsel ));
DATA(insert OID = 1097 ( ">"	   PGNSP PGUID b f	1082	1082   16 1095 1096  0 0 0 0 date_gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 1098 ( ">="	   PGNSP PGUID b f	1082	1082   16 1096 1095  0 0 0 0 date_ge scalargtsel scalargtjoinsel ));
DATA(insert OID = 1099 ( "-"	   PGNSP PGUID b f	1082	1082   23 0 0 0 0 0 0 date_mi - - ));
DATA(insert OID = 1100 ( "+"	   PGNSP PGUID b f	1082	  23 1082 2555 0 0 0 0 0 date_pli - - ));
DATA(insert OID = 1101 ( "-"	   PGNSP PGUID b f	1082	  23 1082 0 0 0 0 0 0 date_mii - - ));

/* time operators */
DATA(insert OID = 1108 ( "="	   PGNSP PGUID b t	1083	1083  16 1108 1109 1110 1110 1110 1112 time_eq eqsel eqjoinsel ));
#define TimeEqualOperator 1108

DATA(insert OID = 1109 ( "<>"	   PGNSP PGUID b f	1083	1083  16 1109 1108	0 0   0   0 time_ne neqsel neqjoinsel ));
DATA(insert OID = 1110 ( "<"	   PGNSP PGUID b f	1083	1083  16 1112 1113	0 0   0   0 time_lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 1111 ( "<="	   PGNSP PGUID b f	1083	1083  16 1113 1112	0 0   0   0 time_le scalarltsel scalarltjoinsel ));
DATA(insert OID = 1112 ( ">"	   PGNSP PGUID b f	1083	1083  16 1110 1111	0 0   0   0 time_gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 1113 ( ">="	   PGNSP PGUID b f	1083	1083  16 1111 1110	0 0   0   0 time_ge scalargtsel scalargtjoinsel ));

/* timetz operators */
DATA(insert OID = 1550 ( "="	   PGNSP PGUID b t	1266 1266	16 1550 1551 1552 1552 1552 1554 timetz_eq eqsel eqjoinsel ));
#define TimeTZEqualOperator 1550
DATA(insert OID = 1551 ( "<>"	   PGNSP PGUID b f	1266 1266	16 1551 1550	0 0   0   0 timetz_ne neqsel neqjoinsel ));
DATA(insert OID = 1552 ( "<"	   PGNSP PGUID b f	1266 1266	16 1554 1555	0 0   0   0 timetz_lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 1553 ( "<="	   PGNSP PGUID b f	1266 1266	16 1555 1554	0 0   0   0 timetz_le scalarltsel scalarltjoinsel ));
DATA(insert OID = 1554 ( ">"	   PGNSP PGUID b f	1266 1266	16 1552 1553	0 0   0   0 timetz_gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 1555 ( ">="	   PGNSP PGUID b f	1266 1266	16 1553 1552	0 0   0   0 timetz_ge scalargtsel scalargtjoinsel ));

/* float48 operators */
DATA(insert OID = 1116 (  "+"		PGNSP PGUID b f 700 701 701 1126	 0	 0	 0	 0	 0 float48pl - - ));
DATA(insert OID = 1117 (  "-"		PGNSP PGUID b f 700 701 701  0	 0	 0	 0	 0	 0 float48mi - - ));
DATA(insert OID = 1118 (  "/"		PGNSP PGUID b f 700 701 701  0	 0	 0	 0	 0	 0 float48div - - ));
DATA(insert OID = 1119 (  "*"		PGNSP PGUID b f 700 701 701 1129	 0	 0	 0	 0	 0 float48mul - - ));
DATA(insert OID = 1120 (  "="		PGNSP PGUID b f  700	701  16 1130 1121  622	672 1122 1123 float48eq eqsel eqjoinsel ));
DATA(insert OID = 1121 (  "<>"		PGNSP PGUID b f  700	701  16 1131 1120  0 0 0 0 float48ne neqsel neqjoinsel ));
DATA(insert OID = 1122 (  "<"		PGNSP PGUID b f  700	701  16 1133 1125  0 0 0 0 float48lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 1123 (  ">"		PGNSP PGUID b f  700	701  16 1132 1124  0 0 0 0 float48gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 1124 (  "<="		PGNSP PGUID b f  700	701  16 1135 1123  0 0 0 0 float48le scalarltsel scalarltjoinsel ));
DATA(insert OID = 1125 (  ">="		PGNSP PGUID b f  700	701  16 1134 1122  0 0 0 0 float48ge scalargtsel scalargtjoinsel ));

/* float84 operators */
DATA(insert OID = 1126 (  "+"		PGNSP PGUID b f 701 700 701 1116	 0	 0	 0	 0	 0 float84pl - - ));
DATA(insert OID = 1127 (  "-"		PGNSP PGUID b f 701 700 701  0	 0	 0	 0	 0	 0 float84mi - - ));
DATA(insert OID = 1128 (  "/"		PGNSP PGUID b f 701 700 701  0	 0	 0	 0	 0	 0 float84div - - ));
DATA(insert OID = 1129 (  "*"		PGNSP PGUID b f 701 700 701 1119	 0	 0	 0	 0	 0 float84mul - - ));
DATA(insert OID = 1130 (  "="		PGNSP PGUID b f  701	700  16 1120 1131  672 622 1132 1133 float84eq eqsel eqjoinsel ));
DATA(insert OID = 1131 (  "<>"		PGNSP PGUID b f  701	700  16 1121 1130  0 0 0 0 float84ne neqsel neqjoinsel ));
DATA(insert OID = 1132 (  "<"		PGNSP PGUID b f  701	700  16 1123 1135  0 0 0 0 float84lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 1133 (  ">"		PGNSP PGUID b f  701	700  16 1122 1134  0 0 0 0 float84gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 1134 (  "<="		PGNSP PGUID b f  701	700  16 1125 1133  0 0 0 0 float84le scalarltsel scalarltjoinsel ));
DATA(insert OID = 1135 (  ">="		PGNSP PGUID b f  701	700  16 1124 1132  0 0 0 0 float84ge scalargtsel scalargtjoinsel ));


/* LIKE hacks by Keith Parks. */
DATA(insert OID = 1207 (  "~~"	  PGNSP PGUID b f  19	25	16 0 1208 0 0 0 0 namelike likesel likejoinsel ));
#define OID_NAME_LIKE_OP		1207
DATA(insert OID = 1208 (  "!~~"   PGNSP PGUID b f  19	25	16 0 1207 0 0 0 0 namenlike nlikesel nlikejoinsel ));
DATA(insert OID = 1209 (  "~~"	  PGNSP PGUID b f  25	25	16 0 1210 0 0 0 0 textlike likesel likejoinsel ));
#define OID_TEXT_LIKE_OP		1209
DATA(insert OID = 1210 (  "!~~"   PGNSP PGUID b f  25	25	16 0 1209 0 0 0 0 textnlike nlikesel nlikejoinsel ));
DATA(insert OID = 1211 (  "~~"	  PGNSP PGUID b f  1042 25	16 0 1212 0 0 0 0 bpcharlike likesel likejoinsel ));
#define OID_BPCHAR_LIKE_OP		1211
DATA(insert OID = 1212 (  "!~~"   PGNSP PGUID b f  1042 25	16 0 1211 0 0 0 0 bpcharnlike nlikesel nlikejoinsel ));

/* case-insensitive regex hacks */
DATA(insert OID = 1226 (  "~*"		 PGNSP PGUID b f	19	25	16 0 1227  0 0 0 0 nameicregexeq icregexeqsel icregexeqjoinsel ));
#define OID_NAME_ICREGEXEQ_OP		1226
DATA(insert OID = 1227 (  "!~*"		 PGNSP PGUID b f	19	25	16 0 1226  0 0 0 0 nameicregexne icregexnesel icregexnejoinsel ));
DATA(insert OID = 1228 (  "~*"		 PGNSP PGUID b f	25	25	16 0 1229  0 0 0 0 texticregexeq icregexeqsel icregexeqjoinsel ));
#define OID_TEXT_ICREGEXEQ_OP		1228
DATA(insert OID = 1229 (  "!~*"		 PGNSP PGUID b f	25	25	16 0 1228  0 0 0 0 texticregexne icregexnesel icregexnejoinsel ));
DATA(insert OID = 1234 (  "~*"		PGNSP PGUID b f  1042  25  16 0 1235	0 0   0   0 bpcharicregexeq icregexeqsel icregexeqjoinsel ));
#define OID_BPCHAR_ICREGEXEQ_OP		1234
DATA(insert OID = 1235 ( "!~*"		PGNSP PGUID b f  1042  25  16 0 1234	0 0   0   0 bpcharicregexne icregexnesel icregexnejoinsel ));

/* timestamptz operators */
DATA(insert OID = 1320 (  "="	   PGNSP PGUID b t 1184 1184	 16 1320 1321 1322 1322 1322 1324 timestamptz_eq eqsel eqjoinsel ));
#define TimestampTZEqualOperator 1320
DATA(insert OID = 1321 (  "<>"	   PGNSP PGUID b f 1184 1184	 16 1321 1320 0 0 0 0 timestamptz_ne neqsel neqjoinsel ));
DATA(insert OID = 1322 (  "<"	   PGNSP PGUID b f 1184 1184	 16 1324 1325 0 0 0 0 timestamptz_lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 1323 (  "<="	   PGNSP PGUID b f 1184 1184	 16 1325 1324 0 0 0 0 timestamptz_le scalarltsel scalarltjoinsel ));
DATA(insert OID = 1324 (  ">"	   PGNSP PGUID b f 1184 1184	 16 1322 1323 0 0 0 0 timestamptz_gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 1325 (  ">="	   PGNSP PGUID b f 1184 1184	 16 1323 1322 0 0 0 0 timestamptz_ge scalargtsel scalargtjoinsel ));
DATA(insert OID = 1327 (  "+"	   PGNSP PGUID b f 1184 1186 1184	 2554 0 0 0 0 0 timestamptz_pl_interval - - ));
DATA(insert OID = 1328 (  "-"	   PGNSP PGUID b f 1184 1184 1186	 0	0 0 0 0 0 timestamptz_mi - - ));
DATA(insert OID = 1329 (  "-"	   PGNSP PGUID b f 1184 1186 1184	 0	0 0 0 0 0 timestamptz_mi_interval - - ));

/* interval operators */
DATA(insert OID = 1330 (  "="	   PGNSP PGUID b t 1186 1186	 16 1330 1331 1332 1332 1332 1334 interval_eq eqsel eqjoinsel ));
#define IntervalEqualOperator 1330
DATA(insert OID = 1331 (  "<>"	   PGNSP PGUID b f 1186 1186	 16 1331 1330 0 0 0 0 interval_ne neqsel neqjoinsel ));
DATA(insert OID = 1332 (  "<"	   PGNSP PGUID b f 1186 1186	 16 1334 1335 0 0 0 0 interval_lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 1333 (  "<="	   PGNSP PGUID b f 1186 1186	 16 1335 1334 0 0 0 0 interval_le scalarltsel scalarltjoinsel ));
DATA(insert OID = 1334 (  ">"	   PGNSP PGUID b f 1186 1186	 16 1332 1333 0 0 0 0 interval_gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 1335 (  ">="	   PGNSP PGUID b f 1186 1186	 16 1333 1332 0 0 0 0 interval_ge scalargtsel scalargtjoinsel ));

DATA(insert OID = 1336 (  "-"	   PGNSP PGUID l f	0 1186 1186    0	0 0 0 0 0 interval_um - - ));
DATA(insert OID = 1337 (  "+"	   PGNSP PGUID b f 1186 1186 1186 1337	0 0 0 0 0 interval_pl - - ));
DATA(insert OID = 1338 (  "-"	   PGNSP PGUID b f 1186 1186 1186	 0	0 0 0 0 0 interval_mi - - ));

DATA(insert OID = 1360 (  "+"	   PGNSP PGUID b f 1082 1083 1114	1363 0 0 0 0 0 datetime_pl - - ));
DATA(insert OID = 1361 (  "+"	   PGNSP PGUID b f 1082 1266 1184	1366 0 0 0 0 0 datetimetz_pl - - ));
DATA(insert OID = 1363 (  "+"	   PGNSP PGUID b f 1083 1082 1114	1360 0 0 0 0 0 timedate_pl - - ));
DATA(insert OID = 1366 (  "+"	   PGNSP PGUID b f 1266 1082 1184	1361 0 0 0 0 0 timetzdate_pl - - ));

DATA(insert OID = 1399 (  "-"	   PGNSP PGUID b f 1083 1083 1186	 0	0 0 0 0 0 time_mi_time - - ));

/* gpxlogloc operators */
DATA(insert OID = 3325 (  "="	   PGNSP PGUID b f	3310 3310	16 3325 3326 3327 3327 3327 3328 gpxlogloceq eqsel eqjoinsel ));
DATA(insert OID = 3326 (  "<>"	   PGNSP PGUID b f	3310 3310	16 3326 3325 0 0 0 0 gpxloglocne neqsel neqjoinsel ));
DATA(insert OID = 3327 (  "<"	   PGNSP PGUID b f	3310 3310	16 3328 3330 0 0 0 0 gpxlogloclt scalarltsel scalarltjoinsel ));
DATA(insert OID = 3328 (  ">"	   PGNSP PGUID b f	3310 3310	16 3327 3329 0 0 0 0 gpxloglocgt scalargtsel scalargtjoinsel ));
DATA(insert OID = 3329 (  "<="	   PGNSP PGUID b f	3310 3310	16 3330 3328 0 0 0 0 gpxloglocle scalarltsel scalarltjoinsel ));
DATA(insert OID = 3330 (  ">="	   PGNSP PGUID b f	3310 3310	16 3329 3327 0 0 0 0 gpxloglocge scalargtsel scalargtjoinsel ));

/* additional geometric operators - thomas 97/04/18 */
DATA(insert OID = 1420 (  "@@"	  PGNSP PGUID l f	 0	718 600   0    0	0	 0	 0	 0 circle_center - - ));
DATA(insert OID = 1500 (  "="	  PGNSP PGUID b f  718	718 16 1500 1501 1502 1502 1502 1503 circle_eq eqsel eqjoinsel ));
DATA(insert OID = 1501 (  "<>"	  PGNSP PGUID b f  718	718 16 1501 1500	0	 0	 0	 0 circle_ne neqsel neqjoinsel ));
DATA(insert OID = 1502 (  "<"	  PGNSP PGUID b f  718	718 16 1503 1505	0	 0	 0	 0 circle_lt areasel areajoinsel ));
DATA(insert OID = 1503 (  ">"	  PGNSP PGUID b f  718	718 16 1502 1504	0	 0	 0	 0 circle_gt areasel areajoinsel ));
DATA(insert OID = 1504 (  "<="	  PGNSP PGUID b f  718	718 16 1505 1503	0	 0	 0	 0 circle_le areasel areajoinsel ));
DATA(insert OID = 1505 (  ">="	  PGNSP PGUID b f  718	718 16 1504 1502	0	 0	 0	 0 circle_ge areasel areajoinsel ));

DATA(insert OID = 1506 (  "<<"	  PGNSP PGUID b f  718	718 16	  0    0	0	 0	 0	 0 circle_left positionsel positionjoinsel ));
DATA(insert OID = 1507 (  "&<"	  PGNSP PGUID b f  718	718 16	  0    0	0	 0	 0	 0 circle_overleft positionsel positionjoinsel ));
DATA(insert OID = 1508 (  "&>"	  PGNSP PGUID b f  718	718 16	  0    0	0	 0	 0	 0 circle_overright positionsel positionjoinsel ));
DATA(insert OID = 1509 (  ">>"	  PGNSP PGUID b f  718	718 16	  0    0	0	 0	 0	 0 circle_right positionsel positionjoinsel ));
DATA(insert OID = 1510 (  "<@"	  PGNSP PGUID b f  718	718 16 1511    0	0	 0	 0	 0 circle_contained contsel contjoinsel ));
DATA(insert OID = 1511 (  "@>"	  PGNSP PGUID b f  718	718 16 1510    0	0	 0	 0	 0 circle_contain contsel contjoinsel ));
DATA(insert OID = 1512 (  "~="	  PGNSP PGUID b f  718	718 16 1512    0	0	 0	 0	 0 circle_same eqsel eqjoinsel ));
DATA(insert OID = 1513 (  "&&"	  PGNSP PGUID b f  718	718 16 1513    0	0	 0	 0	 0 circle_overlap areasel areajoinsel ));
DATA(insert OID = 1514 (  "|>>"   PGNSP PGUID b f  718	718 16	  0    0	0	 0	 0	 0 circle_above positionsel positionjoinsel ));
DATA(insert OID = 1515 (  "<<|"   PGNSP PGUID b f  718	718 16	  0    0	0	 0	 0	 0 circle_below positionsel positionjoinsel ));

DATA(insert OID = 1516 (  "+"	  PGNSP PGUID b f  718	600  718	  0    0	0	 0	 0	 0 circle_add_pt - - ));
DATA(insert OID = 1517 (  "-"	  PGNSP PGUID b f  718	600  718	  0    0	0	 0	 0	 0 circle_sub_pt - - ));
DATA(insert OID = 1518 (  "*"	  PGNSP PGUID b f  718	600  718	  0    0	0	 0	 0	 0 circle_mul_pt - - ));
DATA(insert OID = 1519 (  "/"	  PGNSP PGUID b f  718	600  718	  0    0	0	 0	 0	 0 circle_div_pt - - ));

DATA(insert OID = 1520 (  "<->"   PGNSP PGUID b f  718	718  701 1520	 0	0	 0	 0	 0 circle_distance - - ));
DATA(insert OID = 1521 (  "#"	  PGNSP PGUID l f	 0	604 23	  0    0	0	 0	 0	 0 poly_npoints - - ));
DATA(insert OID = 1522 (  "<->"   PGNSP PGUID b f  600	718  701	  0    0	0	 0	 0	 0 dist_pc - - ));
DATA(insert OID = 1523 (  "<->"   PGNSP PGUID b f  718	604  701	  0    0	0	 0	 0	 0 dist_cpoly - - ));

/* additional geometric operators - thomas 1997-07-09 */
DATA(insert OID = 1524 (  "<->"   PGNSP PGUID b f  628	603  701	  0  0 0 0 0 0 dist_lb - - ));

DATA(insert OID = 1525 (  "?#"	  PGNSP PGUID b f  601	601 16 1525  0 0 0 0 0 lseg_intersect - - ));
DATA(insert OID = 1526 (  "?||"   PGNSP PGUID b f  601	601 16 1526  0 0 0 0 0 lseg_parallel - - ));
DATA(insert OID = 1527 (  "?-|"   PGNSP PGUID b f  601	601 16 1527  0 0 0 0 0 lseg_perp - - ));
DATA(insert OID = 1528 (  "?-"	  PGNSP PGUID l f	 0	601 16	  0  0 0 0 0 0 lseg_horizontal - - ));
DATA(insert OID = 1529 (  "?|"	  PGNSP PGUID l f	 0	601 16	  0  0 0 0 0 0 lseg_vertical - - ));
DATA(insert OID = 1535 (  "="	  PGNSP PGUID b f  601	601 16 1535 1586 0 0 0 0 lseg_eq eqsel eqjoinsel ));
DATA(insert OID = 1536 (  "#"	  PGNSP PGUID b f  601	601  600 1536  0 0 0 0 0 lseg_interpt - - ));
DATA(insert OID = 1537 (  "?#"	  PGNSP PGUID b f  601	628 16	  0  0 0 0 0 0 inter_sl - - ));
DATA(insert OID = 1538 (  "?#"	  PGNSP PGUID b f  601	603 16	  0  0 0 0 0 0 inter_sb - - ));
DATA(insert OID = 1539 (  "?#"	  PGNSP PGUID b f  628	603 16	  0  0 0 0 0 0 inter_lb - - ));

DATA(insert OID = 1546 (  "<@"	  PGNSP PGUID b f  600	628 16	  0  0 0 0 0 0 on_pl - - ));
DATA(insert OID = 1547 (  "<@"	  PGNSP PGUID b f  600	601 16	  0  0 0 0 0 0 on_ps - - ));
DATA(insert OID = 1548 (  "<@"	  PGNSP PGUID b f  601	628 16	  0  0 0 0 0 0 on_sl - - ));
DATA(insert OID = 1549 (  "<@"	  PGNSP PGUID b f  601	603 16	  0  0 0 0 0 0 on_sb - - ));

DATA(insert OID = 1557 (  "##"	  PGNSP PGUID b f  600	628  600	  0  0 0 0 0 0 close_pl - - ));
DATA(insert OID = 1558 (  "##"	  PGNSP PGUID b f  600	601  600	  0  0 0 0 0 0 close_ps - - ));
DATA(insert OID = 1559 (  "##"	  PGNSP PGUID b f  600	603  600	  0  0 0 0 0 0 close_pb - - ));

DATA(insert OID = 1566 (  "##"	  PGNSP PGUID b f  601	628  600	  0  0 0 0 0 0 close_sl - - ));
DATA(insert OID = 1567 (  "##"	  PGNSP PGUID b f  601	603  600	  0  0 0 0 0 0 close_sb - - ));
DATA(insert OID = 1568 (  "##"	  PGNSP PGUID b f  628	603  600	  0  0 0 0 0 0 close_lb - - ));
DATA(insert OID = 1577 (  "##"	  PGNSP PGUID b f  628	601  600	  0  0 0 0 0 0 close_ls - - ));
DATA(insert OID = 1578 (  "##"	  PGNSP PGUID b f  601	601  600	  0  0 0 0 0 0 close_lseg - - ));
DATA(insert OID = 1583 (  "*"	  PGNSP PGUID b f 1186	701 1186	1584 0 0 0 0 0 interval_mul - - ));
DATA(insert OID = 1584 (  "*"	  PGNSP PGUID b f  701 1186 1186	1583 0 0 0 0 0 mul_d_interval - - ));
DATA(insert OID = 1585 (  "/"	  PGNSP PGUID b f 1186	701 1186	  0  0 0 0 0 0 interval_div - - ));

DATA(insert OID = 1586 (  "<>"	  PGNSP PGUID b f  601	601 16 1586 1535 0 0 0 0 lseg_ne neqsel neqjoinsel ));
DATA(insert OID = 1587 (  "<"	  PGNSP PGUID b f  601	601 16 1589 1590 0 0 0 0 lseg_lt - - ));
DATA(insert OID = 1588 (  "<="	  PGNSP PGUID b f  601	601 16 1590 1589 0 0 0 0 lseg_le - - ));
DATA(insert OID = 1589 (  ">"	  PGNSP PGUID b f  601	601 16 1587 1588 0 0 0 0 lseg_gt - - ));
DATA(insert OID = 1590 (  ">="	  PGNSP PGUID b f  601	601 16 1588 1587 0 0 0 0 lseg_ge - - ));

DATA(insert OID = 1591 (  "@-@"   PGNSP PGUID l f 0  601	701    0  0 0 0 0 0 lseg_length - - ));

DATA(insert OID = 1611 (  "?#"	  PGNSP PGUID b f  628	628 16 1611  0 0 0 0 0 line_intersect - - ));
DATA(insert OID = 1612 (  "?||"   PGNSP PGUID b f  628	628 16 1612  0 0 0 0 0 line_parallel - - ));
DATA(insert OID = 1613 (  "?-|"   PGNSP PGUID b f  628	628 16 1613  0 0 0 0 0 line_perp - - ));
DATA(insert OID = 1614 (  "?-"	  PGNSP PGUID l f	 0	628 16	  0  0 0 0 0 0 line_horizontal - - ));
DATA(insert OID = 1615 (  "?|"	  PGNSP PGUID l f	 0	628 16	  0  0 0 0 0 0 line_vertical - - ));
DATA(insert OID = 1616 (  "="	  PGNSP PGUID b f  628	628 16 1616  0 0 0 0 0 line_eq eqsel eqjoinsel ));
DATA(insert OID = 1617 (  "#"	  PGNSP PGUID b f  628	628  600 1617  0 0 0 0 0 line_interpt - - ));

/* MAC type */
DATA(insert OID = 1220 (  "="	   PGNSP PGUID b t 829 829	 16 1220 1221 1222 1222 1222 1224 macaddr_eq eqsel eqjoinsel ));
#define MacAddrEqualOperator 1220
DATA(insert OID = 1221 (  "<>"	   PGNSP PGUID b f 829 829	 16 1221 1220	 0	  0   0   0 macaddr_ne neqsel neqjoinsel ));
DATA(insert OID = 1222 (  "<"	   PGNSP PGUID b f 829 829	 16 1224 1225	 0	  0   0   0 macaddr_lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 1223 (  "<="	   PGNSP PGUID b f 829 829	 16 1225 1224	 0	  0   0   0 macaddr_le scalarltsel scalarltjoinsel ));
DATA(insert OID = 1224 (  ">"	   PGNSP PGUID b f 829 829	 16 1222 1223	 0	  0   0   0 macaddr_gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 1225 (  ">="	   PGNSP PGUID b f 829 829	 16 1223 1222	 0	  0   0   0 macaddr_ge scalargtsel scalargtjoinsel ));

/* INET type (these also support CIDR via implicit cast) */
DATA(insert OID = 1201 (  "="	   PGNSP PGUID b t 869 869	 16 1201 1202 1203 1203 1203 1205 network_eq eqsel eqjoinsel ));
#define InetEqualOperator (1201)
DATA(insert OID = 1202 (  "<>"	   PGNSP PGUID b f 869 869	 16 1202 1201	 0	  0   0   0 network_ne neqsel neqjoinsel ));
DATA(insert OID = 1203 (  "<"	   PGNSP PGUID b f 869 869	 16 1205 1206	 0	  0   0   0 network_lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 1204 (  "<="	   PGNSP PGUID b f 869 869	 16 1206 1205	 0	  0   0   0 network_le scalarltsel scalarltjoinsel ));
DATA(insert OID = 1205 (  ">"	   PGNSP PGUID b f 869 869	 16 1203 1204	 0	  0   0   0 network_gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 1206 (  ">="	   PGNSP PGUID b f 869 869	 16 1204 1203	 0	  0   0   0 network_ge scalargtsel scalargtjoinsel ));
DATA(insert OID = 931  (  "<<"	   PGNSP PGUID b f 869 869	 16 933		0	 0	  0   0   0 network_sub - - ));
#define OID_INET_SUB_OP				  931
DATA(insert OID = 932  (  "<<="    PGNSP PGUID b f 869 869	 16 934		0	 0	  0   0   0 network_subeq - - ));
#define OID_INET_SUBEQ_OP				932
DATA(insert OID = 933  (  ">>"	   PGNSP PGUID b f 869 869	 16 931		0	 0	  0   0   0 network_sup - - ));
#define OID_INET_SUP_OP				  933
DATA(insert OID = 934  (  ">>="    PGNSP PGUID b f 869 869	 16 932		0	 0	  0   0   0 network_supeq - - ));
#define OID_INET_SUPEQ_OP				934

DATA(insert OID = 2634 (  "~"	   PGNSP PGUID l f	0 869 869 0 0 0 0 0 0 inetnot - - ));
DATA(insert OID = 2635 (  "&"	   PGNSP PGUID b f	869 869 869 0 0 0 0 0 0 inetand - - ));
DATA(insert OID = 2636 (  "|"	   PGNSP PGUID b f	869 869 869 0 0 0 0 0 0 inetor - - ));
DATA(insert OID = 2637 (  "+"	   PGNSP PGUID b f	869 20 869 2638 0 0 0 0 0 inetpl - - ));
DATA(insert OID = 2638 (  "+"	   PGNSP PGUID b f	20 869 869 2637 0 0 0 0 0 int8pl_inet - - ));
DATA(insert OID = 2639 (  "-"	   PGNSP PGUID b f	869 20 869 0 0 0 0 0 0 inetmi_int8 - - ));
DATA(insert OID = 2640 (  "-"	   PGNSP PGUID b f	869 869 20 0 0 0 0 0 0 inetmi - - ));


/* case-insensitive LIKE hacks */
DATA(insert OID = 1625 (  "~~*"   PGNSP PGUID b f  19	25	16 0 1626 0 0 0 0 nameiclike iclikesel iclikejoinsel ));
#define OID_NAME_ICLIKE_OP		1625
DATA(insert OID = 1626 (  "!~~*"  PGNSP PGUID b f  19	25	16 0 1625 0 0 0 0 nameicnlike icnlikesel icnlikejoinsel ));
DATA(insert OID = 1627 (  "~~*"   PGNSP PGUID b f  25	25	16 0 1628 0 0 0 0 texticlike iclikesel iclikejoinsel ));
#define OID_TEXT_ICLIKE_OP		1627
DATA(insert OID = 1628 (  "!~~*"  PGNSP PGUID b f  25	25	16 0 1627 0 0 0 0 texticnlike icnlikesel icnlikejoinsel ));
DATA(insert OID = 1629 (  "~~*"   PGNSP PGUID b f  1042 25	16 0 1630 0 0 0 0 bpchariclike iclikesel iclikejoinsel ));
#define OID_BPCHAR_ICLIKE_OP	1629
DATA(insert OID = 1630 (  "!~~*"  PGNSP PGUID b f  1042 25	16 0 1629 0 0 0 0 bpcharicnlike icnlikesel icnlikejoinsel ));

/* NUMERIC type - OID's 1700-1799 */
DATA(insert OID = 1751 (  "-"	   PGNSP PGUID l f	0 1700 1700    0	0 0 0 0 0 numeric_uminus - - ));
DATA(insert OID = 1752 (  "="	   PGNSP PGUID b t 1700 1700	 16 1752 1753 1754 1754 1754 1756 numeric_eq eqsel eqjoinsel ));
#define NumericEqualOperator 1752
DATA(insert OID = 1753 (  "<>"	   PGNSP PGUID b f 1700 1700	 16 1753 1752 0 0 0 0 numeric_ne neqsel neqjoinsel ));
DATA(insert OID = 1754 (  "<"	   PGNSP PGUID b f 1700 1700	 16 1756 1757 0 0 0 0 numeric_lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 1755 (  "<="	   PGNSP PGUID b f 1700 1700	 16 1757 1756 0 0 0 0 numeric_le scalarltsel scalarltjoinsel ));
DATA(insert OID = 1756 (  ">"	   PGNSP PGUID b f 1700 1700	 16 1754 1755 0 0 0 0 numeric_gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 1757 (  ">="	   PGNSP PGUID b f 1700 1700	 16 1755 1754 0 0 0 0 numeric_ge scalargtsel scalargtjoinsel ));
DATA(insert OID = 1758 (  "+"	   PGNSP PGUID b f 1700 1700 1700 1758	0 0 0 0 0 numeric_add - - ));
DATA(insert OID = 1759 (  "-"	   PGNSP PGUID b f 1700 1700 1700	 0	0 0 0 0 0 numeric_sub - - ));
DATA(insert OID = 1760 (  "*"	   PGNSP PGUID b f 1700 1700 1700 1760	0 0 0 0 0 numeric_mul - - ));
DATA(insert OID = 1761 (  "/"	   PGNSP PGUID b f 1700 1700 1700	 0	0 0 0 0 0 numeric_div - - ));
DATA(insert OID = 1762 (  "%"	   PGNSP PGUID b f 1700 1700 1700	 0	0 0 0 0 0 numeric_mod - - ));
DATA(insert OID = 1038 (  "^"	   PGNSP PGUID b f 1700 1700 1700	 0	0 0 0 0 0 numeric_power - - ));
DATA(insert OID = 1763 (  "@"	   PGNSP PGUID l f	0 1700 1700    0	0 0 0 0 0 numeric_abs - - ));

DATA(insert OID = 1784 (  "="	  PGNSP PGUID b f 1560 1560 16 1784 1785 1786 1786 1786 1787 biteq eqsel eqjoinsel ));
#define BitEqualOperator 1784
DATA(insert OID = 1785 (  "<>"	  PGNSP PGUID b f 1560 1560 16 1785 1784	0	 0	 0	 0 bitne neqsel neqjoinsel ));
DATA(insert OID = 1786 (  "<"	  PGNSP PGUID b f 1560 1560 16 1787 1789	0	 0	 0	 0 bitlt scalarltsel scalarltjoinsel ));
DATA(insert OID = 1787 (  ">"	  PGNSP PGUID b f 1560 1560 16 1786 1788	0	 0	 0	 0 bitgt scalargtsel scalargtjoinsel ));
DATA(insert OID = 1788 (  "<="	  PGNSP PGUID b f 1560 1560 16 1789 1787	0	 0	 0	 0 bitle scalarltsel scalarltjoinsel ));
DATA(insert OID = 1789 (  ">="	  PGNSP PGUID b f 1560 1560 16 1788 1786	0	 0	 0	 0 bitge scalargtsel scalargtjoinsel ));
DATA(insert OID = 1791 (  "&"	  PGNSP PGUID b f 1560 1560 1560 1791	 0	0	 0	 0	 0 bitand - - ));
DATA(insert OID = 1792 (  "|"	  PGNSP PGUID b f 1560 1560 1560 1792	 0	0	 0	 0	 0 bitor - - ));
DATA(insert OID = 1793 (  "#"	  PGNSP PGUID b f 1560 1560 1560 1793	 0	0	 0	 0	 0 bitxor - - ));
DATA(insert OID = 1794 (  "~"	  PGNSP PGUID l f	 0 1560 1560	  0    0	0	 0	 0	 0 bitnot - - ));
DATA(insert OID = 1795 (  "<<"	  PGNSP PGUID b f 1560	 23 1560	  0    0	0	 0	 0	 0 bitshiftleft - - ));
DATA(insert OID = 1796 (  ">>"	  PGNSP PGUID b f 1560	 23 1560	  0    0	0	 0	 0	 0 bitshiftright - - ));
DATA(insert OID = 1797 (  "||"	  PGNSP PGUID b f 1560 1560 1560	  0    0	0	 0	 0	 0 bitcat - - ));

DATA(insert OID = 1800 (  "+"	   PGNSP PGUID b f 1083 1186 1083	 1849 0 0 0 0 0 time_pl_interval - - ));
DATA(insert OID = 1801 (  "-"	   PGNSP PGUID b f 1083 1186 1083	 0	0 0 0 0 0 time_mi_interval - - ));
DATA(insert OID = 1802 (  "+"	   PGNSP PGUID b f 1266 1186 1266	 2552 0 0 0 0 0 timetz_pl_interval - - ));
DATA(insert OID = 1803 (  "-"	   PGNSP PGUID b f 1266 1186 1266	 0	0 0 0 0 0 timetz_mi_interval - - ));

DATA(insert OID = 1804 (  "="	  PGNSP PGUID b f 1562 1562 16 1804 1805 1806 1806 1806 1807 varbiteq eqsel eqjoinsel ));
#define VarbitEqualOperator 1804
DATA(insert OID = 1805 (  "<>"	  PGNSP PGUID b f 1562 1562 16 1805 1804	0	 0	 0	 0 varbitne neqsel neqjoinsel ));
DATA(insert OID = 1806 (  "<"	  PGNSP PGUID b f 1562 1562 16 1807 1809	0	 0	 0	 0 varbitlt scalarltsel scalarltjoinsel ));
DATA(insert OID = 1807 (  ">"	  PGNSP PGUID b f 1562 1562 16 1806 1808	0	 0	 0	 0 varbitgt scalargtsel scalargtjoinsel ));
DATA(insert OID = 1808 (  "<="	  PGNSP PGUID b f 1562 1562 16 1809 1807	0	 0	 0	 0 varbitle scalarltsel scalarltjoinsel ));
DATA(insert OID = 1809 (  ">="	  PGNSP PGUID b f 1562 1562 16 1808 1806	0	 0	 0	 0 varbitge scalargtsel scalargtjoinsel ));

DATA(insert OID = 1849 (  "+"	   PGNSP PGUID b f 1186 1083 1083	 1800 0 0 0 0 0 interval_pl_time - - ));

DATA(insert OID = 1862 ( "="	   PGNSP PGUID b f	21	20	16 1868  1863  95 412 1864 1865 int28eq eqsel eqjoinsel ));
#define Int28EqualOperator 1862

DATA(insert OID = 1863 ( "<>"	   PGNSP PGUID b f	21	20	16 1869  1862	0	0	0	0 int28ne neqsel neqjoinsel ));

DATA(insert OID = 1864 ( "<"	   PGNSP PGUID b f	21	20	16 1871  1867	0	0	0	0 int28lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 1865 ( ">"	   PGNSP PGUID b f	21	20	16 1870  1866	0	0	0	0 int28gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 1866 ( "<="	   PGNSP PGUID b f	21	20	16 1873  1865	0	0	0	0 int28le scalarltsel scalarltjoinsel ));
DATA(insert OID = 1867 ( ">="	   PGNSP PGUID b f	21	20	16 1872  1864	0	0	0	0 int28ge scalargtsel scalargtjoinsel ));

DATA(insert OID = 1868 ( "="	   PGNSP PGUID b f	20	21	16	1862 1869 412 95 1870 1871 int82eq eqsel eqjoinsel ));
#define Int82EqualOperator 1868

DATA(insert OID = 1869 ( "<>"	   PGNSP PGUID b f	20	21	16	1863 1868	0  0   0   0 int82ne neqsel neqjoinsel ));
DATA(insert OID = 1870 ( "<"	   PGNSP PGUID b f	20	21	16	1865 1873	0  0   0   0 int82lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 1871 ( ">"	   PGNSP PGUID b f	20	21	16	1864 1872	0  0   0   0 int82gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 1872 ( "<="	   PGNSP PGUID b f	20	21	16	1867 1871	0  0   0   0 int82le scalarltsel scalarltjoinsel ));
DATA(insert OID = 1873 ( ">="	   PGNSP PGUID b f	20	21	16	1866 1870	0  0   0   0 int82ge scalargtsel scalargtjoinsel ));

DATA(insert OID = 1874 ( "&"	   PGNSP PGUID b f	21	21	21	1874	  0   0  0	 0	 0 int2and - - ));
DATA(insert OID = 1875 ( "|"	   PGNSP PGUID b f	21	21	21	1875	  0   0  0	 0	 0 int2or - - ));
DATA(insert OID = 1876 ( "#"	   PGNSP PGUID b f	21	21	21	1876	  0   0  0	 0	 0 int2xor - - ));
DATA(insert OID = 1877 ( "~"	   PGNSP PGUID l f	 0	21	21	 0	  0   0  0	 0	 0 int2not - - ));
DATA(insert OID = 1878 ( "<<"	   PGNSP PGUID b f	21	23	21	 0	  0   0  0	 0	 0 int2shl - - ));
DATA(insert OID = 1879 ( ">>"	   PGNSP PGUID b f	21	23	21	 0	  0   0  0	 0	 0 int2shr - - ));

DATA(insert OID = 1880 ( "&"	   PGNSP PGUID b f	23	23	23	1880	  0   0  0	 0	 0 int4and - - ));
DATA(insert OID = 1881 ( "|"	   PGNSP PGUID b f	23	23	23	1881	  0   0  0	 0	 0 int4or - - ));
DATA(insert OID = 1882 ( "#"	   PGNSP PGUID b f	23	23	23	1882	  0   0  0	 0	 0 int4xor - - ));
DATA(insert OID = 1883 ( "~"	   PGNSP PGUID l f	 0	23	23	 0	  0   0  0	 0	 0 int4not - - ));
DATA(insert OID = 1884 ( "<<"	   PGNSP PGUID b f	23	23	23	 0	  0   0  0	 0	 0 int4shl - - ));
DATA(insert OID = 1885 ( ">>"	   PGNSP PGUID b f	23	23	23	 0	  0   0  0	 0	 0 int4shr - - ));

DATA(insert OID = 1886 ( "&"	   PGNSP PGUID b f	20	20	20	1886	  0   0  0	 0	 0 int8and - - ));
DATA(insert OID = 1887 ( "|"	   PGNSP PGUID b f	20	20	20	1887	  0   0  0	 0	 0 int8or - - ));
DATA(insert OID = 1888 ( "#"	   PGNSP PGUID b f	20	20	20	1888	  0   0  0	 0	 0 int8xor - - ));
DATA(insert OID = 1889 ( "~"	   PGNSP PGUID l f	 0	20	20	 0	  0   0  0	 0	 0 int8not - - ));
DATA(insert OID = 1890 ( "<<"	   PGNSP PGUID b f	20	23	20	 0	  0   0  0	 0	 0 int8shl - - ));
DATA(insert OID = 1891 ( ">>"	   PGNSP PGUID b f	20	23	20	 0	  0   0  0	 0	 0 int8shr - - ));

DATA(insert OID = 1916 (  "+"	   PGNSP PGUID l f	 0	20	20	0	0	0	0	0	0 int8up - - ));
DATA(insert OID = 1917 (  "+"	   PGNSP PGUID l f	 0	21	21	0	0	0	0	0	0 int2up - - ));
DATA(insert OID = 1918 (  "+"	   PGNSP PGUID l f	 0	23	23	0	0	0	0	0	0 int4up - - ));
DATA(insert OID = 1919 (  "+"	   PGNSP PGUID l f	 0	700 700 0	0	0	0	0	0 float4up - - ));
DATA(insert OID = 1920 (  "+"	   PGNSP PGUID l f	 0	701 701 0	0	0	0	0	0 float8up - - ));
DATA(insert OID = 1921 (  "+"	   PGNSP PGUID l f	 0 1700 1700	0	0	0	0	0	0 numeric_uplus - - ));

/* bytea operators */
DATA(insert OID = 1955 ( "="	   PGNSP PGUID b t 17 17	16 1955 1956 1957 1957 1957 1959 byteaeq eqsel eqjoinsel ));
#define ByteaEqualOperator 1955
DATA(insert OID = 1956 ( "<>"	   PGNSP PGUID b f 17 17	16 1956 1955 0	  0   0   0 byteane neqsel neqjoinsel ));
DATA(insert OID = 1957 ( "<"	   PGNSP PGUID b f 17 17	16 1959 1960 0	  0   0   0 bytealt scalarltsel scalarltjoinsel ));
DATA(insert OID = 1958 ( "<="	   PGNSP PGUID b f 17 17	16 1960 1959 0	  0   0   0 byteale scalarltsel scalarltjoinsel ));
DATA(insert OID = 1959 ( ">"	   PGNSP PGUID b f 17 17	16 1957 1958 0	  0   0   0 byteagt scalargtsel scalargtjoinsel ));
DATA(insert OID = 1960 ( ">="	   PGNSP PGUID b f 17 17	16 1958 1957 0	  0   0   0 byteage scalargtsel scalargtjoinsel ));
DATA(insert OID = 2016 (  "~~"	   PGNSP PGUID b f 17 17	16 0	2017 0	  0   0   0 bytealike likesel likejoinsel ));
#define OID_BYTEA_LIKE_OP		2016
DATA(insert OID = 2017 (  "!~~"    PGNSP PGUID b f 17 17	16 0	2016 0	  0   0   0 byteanlike nlikesel nlikejoinsel ));
DATA(insert OID = 2018 (  "||"	   PGNSP PGUID b f 17 17	17 0	0	 0	  0   0   0 byteacat - - ));

/* timestamp operators */
DATA(insert OID = 2060 (  "="	   PGNSP PGUID b t 1114 1114	 16 2060 2061 2062 2062 2062 2064 timestamp_eq eqsel eqjoinsel ));
#define TimestampEqualOperator 2060
DATA(insert OID = 2061 (  "<>"	   PGNSP PGUID b f 1114 1114	 16 2061 2060 0 0 0 0 timestamp_ne neqsel neqjoinsel ));
DATA(insert OID = 2062 (  "<"	   PGNSP PGUID b f 1114 1114	 16 2064 2065 0 0 0 0 timestamp_lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 2063 (  "<="	   PGNSP PGUID b f 1114 1114	 16 2065 2064 0 0 0 0 timestamp_le scalarltsel scalarltjoinsel ));
DATA(insert OID = 2064 (  ">"	   PGNSP PGUID b f 1114 1114	 16 2062 2063 0 0 0 0 timestamp_gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 2065 (  ">="	   PGNSP PGUID b f 1114 1114	 16 2063 2062 0 0 0 0 timestamp_ge scalargtsel scalargtjoinsel ));
DATA(insert OID = 2066 (  "+"	   PGNSP PGUID b f 1114 1186 1114	 2553 0 0 0 0 0 timestamp_pl_interval - - ));
DATA(insert OID = 2067 (  "-"	   PGNSP PGUID b f 1114 1114 1186	 0	0 0 0 0 0 timestamp_mi - - ));
DATA(insert OID = 2068 (  "-"	   PGNSP PGUID b f 1114 1186 1114	 0	0 0 0 0 0 timestamp_mi_interval - - ));

/* character-by-character (not collation order) comparison operators for character types */

DATA(insert OID = 2314 ( "~<~"	PGNSP PGUID b f 25 25 16 2318 2317 0 0 0 0 text_pattern_lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 2315 ( "~<=~" PGNSP PGUID b f 25 25 16 2317 2318 0 0 0 0 text_pattern_le scalarltsel scalarltjoinsel ));
DATA(insert OID = 2316 ( "~=~"	PGNSP PGUID b t 25 25 16 2316 2319 2314 2314 2314 2318 texteq eqsel eqjoinsel ));
DATA(insert OID = 2317 ( "~>=~" PGNSP PGUID b f 25 25 16 2315 2314 0 0 0 0 text_pattern_ge scalargtsel scalargtjoinsel ));
DATA(insert OID = 2318 ( "~>~"	PGNSP PGUID b f 25 25 16 2314 2315 0 0 0 0 text_pattern_gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 2319 ( "~<>~" PGNSP PGUID b f 25 25 16 2319 2316 0 0 0 0 textne neqsel neqjoinsel ));

DATA(insert OID = 2326 ( "~<~"	PGNSP PGUID b f 1042 1042 16 2330 2329 0 0 0 0 bpchar_pattern_lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 2327 ( "~<=~" PGNSP PGUID b f 1042 1042 16 2329 2330 0 0 0 0 bpchar_pattern_le scalarltsel scalarltjoinsel ));
DATA(insert OID = 2328 ( "~=~"	PGNSP PGUID b t 1042 1042 16 2328 2331 2326 2326 2326 2330 bpchar_pattern_eq eqsel eqjoinsel ));
DATA(insert OID = 2329 ( "~>=~" PGNSP PGUID b f 1042 1042 16 2327 2326 0 0 0 0 bpchar_pattern_ge scalargtsel scalargtjoinsel ));
DATA(insert OID = 2330 ( "~>~"	PGNSP PGUID b f 1042 1042 16 2326 2327 0 0 0 0 bpchar_pattern_gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 2331 ( "~<>~" PGNSP PGUID b f 1042 1042 16 2331 2328 0 0 0 0 bpchar_pattern_ne neqsel neqjoinsel ));

DATA(insert OID = 2332 ( "~<~"	PGNSP PGUID b f 19 19 16 2336 2335 0 0 0 0 name_pattern_lt scalarltsel scalarltjoinsel ));
DATA(insert OID = 2333 ( "~<=~" PGNSP PGUID b f 19 19 16 2335 2336 0 0 0 0 name_pattern_le scalarltsel scalarltjoinsel ));
DATA(insert OID = 2334 ( "~=~"	PGNSP PGUID b t 19 19 16 2334 2337 2332 2332 2332 2336 name_pattern_eq eqsel eqjoinsel ));
DATA(insert OID = 2335 ( "~>=~" PGNSP PGUID b f 19 19 16 2333 2332 0 0 0 0 name_pattern_ge scalargtsel scalargtjoinsel ));
DATA(insert OID = 2336 ( "~>~"	PGNSP PGUID b f 19 19 16 2332 2333 0 0 0 0 name_pattern_gt scalargtsel scalargtjoinsel ));
DATA(insert OID = 2337 ( "~<>~" PGNSP PGUID b f 19 19 16 2337 2334 0 0 0 0 name_pattern_ne neqsel neqjoinsel ));

/* crosstype operations for date vs. timestamp and timestamptz */

DATA(insert OID = 2345 ( "<"	   PGNSP PGUID b f	1082	1114   16 2375 2348  0 0 0 0 date_lt_timestamp scalarltsel scalarltjoinsel ));
DATA(insert OID = 2346 ( "<="	   PGNSP PGUID b f	1082	1114   16 2374 2349  0 0 0 0 date_le_timestamp scalarltsel scalarltjoinsel ));
DATA(insert OID = 2347 ( "="	   PGNSP PGUID b f	1082	1114   16 2373 2350  1095 2062 2345 2349 date_eq_timestamp eqsel eqjoinsel ));
DATA(insert OID = 2348 ( ">="	   PGNSP PGUID b f	1082	1114   16 2372 2345  0 0 0 0 date_ge_timestamp scalargtsel scalargtjoinsel ));
DATA(insert OID = 2349 ( ">"	   PGNSP PGUID b f	1082	1114   16 2371 2346  0 0 0 0 date_gt_timestamp scalargtsel scalargtjoinsel ));
DATA(insert OID = 2350 ( "<>"	   PGNSP PGUID b f	1082	1114   16 2376 2347  0 0 0 0 date_ne_timestamp neqsel neqjoinsel ));

DATA(insert OID = 2358 ( "<"	   PGNSP PGUID b f	1082	1184   16 2388 2361  0 0 0 0 date_lt_timestamptz scalarltsel scalarltjoinsel ));
DATA(insert OID = 2359 ( "<="	   PGNSP PGUID b f	1082	1184   16 2387 2362  0 0 0 0 date_le_timestamptz scalarltsel scalarltjoinsel ));
DATA(insert OID = 2360 ( "="	   PGNSP PGUID b f	1082	1184   16 2386 2363  1095 1322 2358 2362 date_eq_timestamptz eqsel eqjoinsel ));
DATA(insert OID = 2361 ( ">="	   PGNSP PGUID b f	1082	1184   16 2385 2358  0 0 0 0 date_ge_timestamptz scalargtsel scalargtjoinsel ));
DATA(insert OID = 2362 ( ">"	   PGNSP PGUID b f	1082	1184   16 2384 2359  0 0 0 0 date_gt_timestamptz scalargtsel scalargtjoinsel ));
DATA(insert OID = 2363 ( "<>"	   PGNSP PGUID b f	1082	1184   16 2389 2360  0 0 0 0 date_ne_timestamptz neqsel neqjoinsel ));

DATA(insert OID = 2371 ( "<"	   PGNSP PGUID b f	1114	1082   16 2349 2374  0 0 0 0 timestamp_lt_date scalarltsel scalarltjoinsel ));
DATA(insert OID = 2372 ( "<="	   PGNSP PGUID b f	1114	1082   16 2348 2375  0 0 0 0 timestamp_le_date scalarltsel scalarltjoinsel ));
DATA(insert OID = 2373 ( "="	   PGNSP PGUID b f	1114	1082   16 2347 2376  2062 1095 2371 2375 timestamp_eq_date eqsel eqjoinsel ));
DATA(insert OID = 2374 ( ">="	   PGNSP PGUID b f	1114	1082   16 2346 2371  0 0 0 0 timestamp_ge_date scalargtsel scalargtjoinsel ));
DATA(insert OID = 2375 ( ">"	   PGNSP PGUID b f	1114	1082   16 2345 2372  0 0 0 0 timestamp_gt_date scalargtsel scalargtjoinsel ));
DATA(insert OID = 2376 ( "<>"	   PGNSP PGUID b f	1114	1082   16 2350 2373  0 0 0 0 timestamp_ne_date neqsel neqjoinsel ));

DATA(insert OID = 2384 ( "<"	   PGNSP PGUID b f	1184	1082   16 2362 2387  0 0 0 0 timestamptz_lt_date scalarltsel scalarltjoinsel ));
DATA(insert OID = 2385 ( "<="	   PGNSP PGUID b f	1184	1082   16 2361 2388  0 0 0 0 timestamptz_le_date scalarltsel scalarltjoinsel ));
DATA(insert OID = 2386 ( "="	   PGNSP PGUID b f	1184	1082   16 2360 2389  1322 1095 2384 2388 timestamptz_eq_date eqsel eqjoinsel ));
DATA(insert OID = 2387 ( ">="	   PGNSP PGUID b f	1184	1082   16 2359 2384  0 0 0 0 timestamptz_ge_date scalargtsel scalargtjoinsel ));
DATA(insert OID = 2388 ( ">"	   PGNSP PGUID b f	1184	1082   16 2358 2385  0 0 0 0 timestamptz_gt_date scalargtsel scalargtjoinsel ));
DATA(insert OID = 2389 ( "<>"	   PGNSP PGUID b f	1184	1082   16 2363 2386  0 0 0 0 timestamptz_ne_date neqsel neqjoinsel ));

/* crosstype operations for timestamp vs. timestamptz */

DATA(insert OID = 2534 ( "<"	   PGNSP PGUID b f	1114	1184   16 2544 2537  0 0 0 0 timestamp_lt_timestamptz scalarltsel scalarltjoinsel ));
DATA(insert OID = 2535 ( "<="	   PGNSP PGUID b f	1114	1184   16 2543 2538  0 0 0 0 timestamp_le_timestamptz scalarltsel scalarltjoinsel ));
DATA(insert OID = 2536 ( "="	   PGNSP PGUID b f	1114	1184   16 2542 2539  2062 1322 2534 2538 timestamp_eq_timestamptz eqsel eqjoinsel ));
DATA(insert OID = 2537 ( ">="	   PGNSP PGUID b f	1114	1184   16 2541 2534  0 0 0 0 timestamp_ge_timestamptz scalargtsel scalargtjoinsel ));
DATA(insert OID = 2538 ( ">"	   PGNSP PGUID b f	1114	1184   16 2540 2535  0 0 0 0 timestamp_gt_timestamptz scalargtsel scalargtjoinsel ));
DATA(insert OID = 2539 ( "<>"	   PGNSP PGUID b f	1114	1184   16 2545 2536  0 0 0 0 timestamp_ne_timestamptz neqsel neqjoinsel ));

DATA(insert OID = 2540 ( "<"	   PGNSP PGUID b f	1184	1114   16 2538 2543  0 0 0 0 timestamptz_lt_timestamp scalarltsel scalarltjoinsel ));
DATA(insert OID = 2541 ( "<="	   PGNSP PGUID b f	1184	1114   16 2537 2544  0 0 0 0 timestamptz_le_timestamp scalarltsel scalarltjoinsel ));
DATA(insert OID = 2542 ( "="	   PGNSP PGUID b f	1184	1114   16 2536 2545  1322 2062 2540 2544 timestamptz_eq_timestamp eqsel eqjoinsel ));
DATA(insert OID = 2543 ( ">="	   PGNSP PGUID b f	1184	1114   16 2535 2540  0 0 0 0 timestamptz_ge_timestamp scalargtsel scalargtjoinsel ));
DATA(insert OID = 2544 ( ">"	   PGNSP PGUID b f	1184	1114   16 2534 2541  0 0 0 0 timestamptz_gt_timestamp scalargtsel scalargtjoinsel ));
DATA(insert OID = 2545 ( "<>"	   PGNSP PGUID b f	1184	1114   16 2539 2542  0 0 0 0 timestamptz_ne_timestamp neqsel neqjoinsel ));

/* formerly-missing interval + datetime operators */
DATA(insert OID = 2551 (  "+"	   PGNSP PGUID b f	1186 1082 1114 1076 0 0 0 0 0 interval_pl_date - - ));
DATA(insert OID = 2552 (  "+"	   PGNSP PGUID b f	1186 1266 1266 1802 0 0 0 0 0 interval_pl_timetz - - ));
DATA(insert OID = 2553 (  "+"	   PGNSP PGUID b f	1186 1114 1114 2066 0 0 0 0 0 interval_pl_timestamp - - ));
DATA(insert OID = 2554 (  "+"	   PGNSP PGUID b f	1186 1184 1184 1327 0 0 0 0 0 interval_pl_timestamptz - - ));
DATA(insert OID = 2555 (  "+"	   PGNSP PGUID b f	23 1082 1082 1100 0 0 0 0 0 integer_pl_date - - ));

/* new operators for Y-direction rtree opclasses */
DATA(insert OID = 2570 (  "<<|"    PGNSP PGUID b f 603 603	16	 0	 0	 0	 0	 0	 0 box_below positionsel positionjoinsel ));
DATA(insert OID = 2571 (  "&<|"    PGNSP PGUID b f 603 603	16	 0	 0	 0	 0	 0	 0 box_overbelow positionsel positionjoinsel ));
DATA(insert OID = 2572 (  "|&>"    PGNSP PGUID b f 603 603	16	 0	 0	 0	 0	 0	 0 box_overabove positionsel positionjoinsel ));
DATA(insert OID = 2573 (  "|>>"    PGNSP PGUID b f 603 603	16	 0	 0	 0	 0	 0	 0 box_above positionsel positionjoinsel ));
DATA(insert OID = 2574 (  "<<|"    PGNSP PGUID b f 604 604	16	 0	 0	 0	 0	 0	 0 poly_below positionsel positionjoinsel ));
DATA(insert OID = 2575 (  "&<|"    PGNSP PGUID b f 604 604	16	 0	 0	 0	 0	 0	 0 poly_overbelow positionsel positionjoinsel ));
DATA(insert OID = 2576 (  "|&>"    PGNSP PGUID b f 604 604	16	 0	 0	 0	 0	 0	 0 poly_overabove positionsel positionjoinsel ));
DATA(insert OID = 2577 (  "|>>"    PGNSP PGUID b f 604 604	16	 0	 0	 0	 0	 0	 0 poly_above positionsel positionjoinsel ));
DATA(insert OID = 2589 (  "&<|"    PGNSP PGUID b f 718 718	16	 0	 0	 0	 0	 0	 0 circle_overbelow positionsel positionjoinsel ));
DATA(insert OID = 2590 (  "|&>"    PGNSP PGUID b f 718 718	16	 0	 0	 0	 0	 0	 0 circle_overabove positionsel positionjoinsel ));

/* overlap/contains/contained for arrays */
DATA(insert OID = 2750 (  "&&"	   PGNSP PGUID b f 2277 2277	16 2750  0	 0	 0	 0	 0 arrayoverlap areasel areajoinsel ));
DATA(insert OID = 2751 (  "@>"	   PGNSP PGUID b f 2277 2277	16 2752  0	 0	 0	 0	 0 arraycontains contsel contjoinsel ));
DATA(insert OID = 2752 (  "<@"	   PGNSP PGUID b f 2277 2277	16 2751  0	 0	 0	 0	 0 arraycontained contsel contjoinsel ));

/* obsolete names for contains/contained-by operators; remove these someday */
DATA(insert OID = 2860 (  "@"	   PGNSP PGUID b f 604 604	16 2861  0	 0	 0	 0	 0 poly_contained contsel contjoinsel ));
DATA(insert OID = 2861 (  "~"	   PGNSP PGUID b f 604 604	16 2860  0	 0	 0	 0	 0 poly_contain contsel contjoinsel ));
DATA(insert OID = 2862 (  "@"	   PGNSP PGUID b f 603 603	16 2863  0	 0	 0	 0	 0 box_contained contsel contjoinsel ));
DATA(insert OID = 2863 (  "~"	   PGNSP PGUID b f 603 603	16 2862  0	 0	 0	 0	 0 box_contain contsel contjoinsel ));
DATA(insert OID = 2864 (  "@"	   PGNSP PGUID b f 718 718	16 2865  0	 0	 0	 0	 0 circle_contained contsel contjoinsel ));
DATA(insert OID = 2865 (  "~"	   PGNSP PGUID b f 718 718	16 2864  0	 0	 0	 0	 0 circle_contain contsel contjoinsel ));
DATA(insert OID = 2866 (  "@"	   PGNSP PGUID b f 600 603	16	 0	 0	 0	 0	 0	 0 on_pb - - ));
DATA(insert OID = 2867 (  "@"	   PGNSP PGUID b f 600 602	16 2868  0	 0	 0	 0	 0 on_ppath - - ));
DATA(insert OID = 2868 (  "~"	   PGNSP PGUID b f 602 600	 16  2867  0 0 0 0 0 path_contain_pt - - ));
DATA(insert OID = 2869 (  "@"	   PGNSP PGUID b f 600 604	 16  2870  0 0 0 0 0 pt_contained_poly - - ));
DATA(insert OID = 2870 (  "~"	   PGNSP PGUID b f 604 600	 16  2869  0 0 0 0 0 poly_contain_pt - - ));
DATA(insert OID = 2871 (  "@"	   PGNSP PGUID b f 600 718	 16  2872  0 0 0 0 0 pt_contained_circle - - ));
DATA(insert OID = 2872 (  "~"	   PGNSP PGUID b f 718 600	 16  2871  0 0 0 0 0 circle_contain_pt - - ));
DATA(insert OID = 2873 (  "@"	   PGNSP PGUID b f 600 628 16	  0  0 0 0 0 0 on_pl - - ));
DATA(insert OID = 2874 (  "@"	   PGNSP PGUID b f 600 601 16	  0  0 0 0 0 0 on_ps - - ));
DATA(insert OID = 2875 (  "@"	   PGNSP PGUID b f 601 628 16	  0  0 0 0 0 0 on_sl - - ));
DATA(insert OID = 2876 (  "@"	   PGNSP PGUID b f 601 603 16	  0  0 0 0 0 0 on_sb - - ));
DATA(insert OID = 2877 (  "~"	   PGNSP PGUID b f 1034 1033	 16 0 0 0 0 0 0 aclcontains - - ));

DATA(insert OID = 3962 (  "->"     PGNSP PGUID b f 193 25 193 0 0 0 0 0 0 json_object_field - - ));
DESCR("get json object field");
DATA(insert OID = 3963 (  "->>"    PGNSP PGUID b f 193 25 25 0 0 0 0 0 0 json_object_field_text - - ));
DESCR("get json object field as text");
DATA(insert OID = 3964 (  "->"     PGNSP PGUID b f 193 23 193 0 0 0 0 0 0 json_array_element - - ));
DESCR("get json array element");
DATA(insert OID = 3965 (  "->>"    PGNSP PGUID b f 193 23 25 0 0 0 0 0 0 json_array_element_text - - ));
DESCR("get json array element as text");
DATA(insert OID = 3966 (  "#>"     PGNSP PGUID b f 193 1009 193 0 0 0 0 0 0 json_extract_path_op - - ));
DESCR("get value from json with path elements");
DATA(insert OID = 3967 (  "#>>"    PGNSP PGUID b f 193 1009 25 0 0 0 0 0 0 json_extract_path_text_op - - ));
DESCR("get value from json as text with path elements");

DATA(insert OID = 5506 (  "->"     PGNSP PGUID b f 3802 25 3802 0 0 0 0 0 0 jsonb_object_field - - ));
DESCR("get jsonb object field");
DATA(insert OID = 3477 (  "->>"    PGNSP PGUID b f 3802 25 25 0 0 0 0 0 0 jsonb_object_field_text - - ));
DESCR("get jsonb object field as text");
DATA(insert OID = 5507 (  "->"     PGNSP PGUID b f 3802 23 3802 0 0 0 0 0 0 jsonb_array_element - - ));
DESCR("get jsonb array element");
DATA(insert OID = 3481 (  "->>"    PGNSP PGUID b f 3802 23 25 0 0 0 0 0 0 jsonb_array_element_text - - ));
DESCR("get jsonb array element as text");
DATA(insert OID = 5508 (  "#>"     PGNSP PGUID b f 3802 1009 3802 0 0 0 0 0 0 jsonb_extract_path_op - - ));
DESCR("get value from jsonb with path elements");
DATA(insert OID = 5501 (  "#>>"    PGNSP PGUID b f 3802 1009 25 0 0 0 0 0 0 jsonb_extract_path_text_op - - ));
DESCR("get value from jsonb as text with path elements");
DATA(insert OID = 5515 (  "="  PGNSP PGUID b t 3802 3802  16 5515 3241 0 0 0 0 jsonb_eq eqsel eqjoinsel ));
DESCR("equal");
DATA(insert OID = 3241 (  "<>"   PGNSP PGUID b f 3802 3802  16 3241 5515 0 0 0 0 jsonb_ne neqsel neqjoinsel ));
DESCR("not equal");
DATA(insert OID = 3242 (  "<"   PGNSP PGUID b f 3802 3802 16 3243 3245 0 0 0 0 jsonb_lt scalarltsel scalarltjoinsel ));
DESCR("less than");
DATA(insert OID = 3243 (  ">"   PGNSP PGUID b f 3802 3802 16 3242 3244 0 0 0 0 jsonb_gt scalargtsel scalargtjoinsel ));
DESCR("greater than");
DATA(insert OID = 3244 (  "<="  PGNSP PGUID b f 3802 3802 16 3245 3243 0 0 0 0 jsonb_le scalarltsel scalarltjoinsel ));
DESCR("less than or equal to");
DATA(insert OID = 3245 (  ">="  PGNSP PGUID b f 3802 3802 16 3244 3242 0 0 0 0 jsonb_ge scalargtsel scalargtjoinsel ));
DESCR("greater than or equal to");
/* No commutator? */
DATA(insert OID = 3246 (  "@>"     PGNSP PGUID b f 3802 3802 16 0 3250 0 0 0 0 jsonb_contains contsel contjoinsel ));
DESCR("contains");
DATA(insert OID = 3247 (  "?"    PGNSP PGUID b f 3802 25 16 0 0 0 0 0 0 jsonb_exists contsel contjoinsel ));
DESCR("exists");
DATA(insert OID = 3248 (  "?|"     PGNSP PGUID b f 3802 1009 16 0 0 0 0 0 0 jsonb_exists_any contsel contjoinsel ));
DESCR("exists any");
DATA(insert OID = 3249 (  "?&"     PGNSP PGUID b f 3802 1009 16 0 0 0 0 0 0 jsonb_exists_all contsel contjoinsel ));
DESCR("exists all");
DATA(insert OID = 3250 (  "<@"     PGNSP PGUID b f 3802 3802 16 0 3246 0 0 0 0 jsonb_contained contsel contjoinsel ));
DESCR("contained");
DATA(insert OID = 3284 (  "||"     PGNSP PGUID b f 3802 3802 3802 0 0 0 0 0 0 jsonb_concat - - ));
DESCR("concatenate");
DATA(insert OID = 3285 (  "-"    PGNSP PGUID b f 3802 25 3802 0 0 0 0 0 0 5537 - - ));
DESCR("delete object field");
DATA(insert OID = 3286 (  "-"    PGNSP PGUID b f 3802 23 3802 0 0 0 0 0 0 5538 - - ));
DESCR("delete array element");
DATA(insert OID = 3287 (  "#-"     PGNSP PGUID b f 3802 1009 3802 0 0 0 0 0 0 jsonb_delete_path - - ));
DESCR("delete path");
/*
 * function prototypes
 */
extern Oid OperatorCreate(const char *operatorName,
			   Oid operatorNamespace,
			   Oid leftTypeId,
			   Oid rightTypeId,
			   List *procedureName,
			   List *commutatorName,
			   List *negatorName,
			   List *restrictionName,
			   List *joinName,
			   bool canHash,
			   List *leftSortName,
			   List *rightSortName,
			   List *ltCompareName,
			   List *gtCompareName);
			   
extern Oid OperatorCreateWithOid(const char *operatorName,
			   Oid operatorNamespace,
			   Oid leftTypeId,
			   Oid rightTypeId,
			   List *procedureName,
			   List *commutatorName,
			   List *negatorName,
			   List *restrictionName,
			   List *joinName,
			   bool canHash,
			   List *leftSortName,
			   List *rightSortName,
			   List *ltCompareName,
			   List *gtCompareName,
			   Oid newOid);

#endif   /* PG_OPERATOR_H */
