From 902a6a0a4bc62d619a5ccd1ef0ff7fb3a5d897f1 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Thu, 11 Apr 2002 20:00:18 +0000
Subject: [PATCH] Restructure representation of aggregate functions so that
 they have pg_proc entries, per pghackers discussion.  This fixes aggregates
 to live in namespaces, and also simplifies/speeds up lookup in parse_func.c.
 Also, add a 'proimplicit' flag to pg_proc that controls whether a type
 coercion function may be invoked implicitly, or only explicitly.  The current
 settings of these flags are more permissive than I would like, but we will
 need to debate and refine the behavior; for now, I avoided breaking
 regression tests as much as I could.

---
 doc/src/sgml/catalogs.sgml                |   77 +-
 doc/src/sgml/ref/create_aggregate.sgml    |    7 +-
 doc/src/sgml/ref/create_function.sgml     |   66 +-
 src/backend/catalog/aclchk.c              |   30 +-
 src/backend/catalog/heap.c                |    4 +-
 src/backend/catalog/indexing.c            |    4 +-
 src/backend/catalog/pg_aggregate.c        |  126 +-
 src/backend/catalog/pg_proc.c             |   69 +-
 src/backend/commands/comment.c            |   25 +-
 src/backend/commands/define.c             |   91 +-
 src/backend/commands/indexcmds.c          |    6 +-
 src/backend/commands/remove.c             |   54 +-
 src/backend/executor/nodeAgg.c            |   97 +-
 src/backend/nodes/copyfuncs.c             |    8 +-
 src/backend/nodes/equalfuncs.c            |    6 +-
 src/backend/nodes/outfuncs.c              |    8 +-
 src/backend/nodes/readfuncs.c             |   12 +-
 src/backend/optimizer/util/var.c          |    6 +-
 src/backend/parser/parse_agg.c            |   80 +-
 src/backend/parser/parse_coerce.c         |   74 +-
 src/backend/parser/parse_expr.c           |    5 +-
 src/backend/parser/parse_func.c           |  357 +--
 src/backend/parser/parse_node.c           |   11 +-
 src/backend/parser/parse_oper.c           |    5 +-
 src/backend/parser/parse_target.c         |   18 +-
 src/backend/rewrite/rewriteHandler.c      |    4 +-
 src/backend/utils/Gen_fmgrtab.sh          |   13 +-
 src/backend/utils/adt/ruleutils.c         |   55 +-
 src/backend/utils/adt/sets.c              |   11 +-
 src/backend/utils/adt/varchar.c           |   15 +-
 src/backend/utils/cache/syscache.c        |   18 +-
 src/bin/pg_dump/pg_dump.c                 |   40 +-
 src/bin/pg_dump/pg_dump.h                 |    3 +-
 src/bin/psql/describe.c                   |   30 +-
 src/bin/psql/tab-complete.c               |    4 +-
 src/include/catalog/catversion.h          |    4 +-
 src/include/catalog/indexing.h            |   10 +-
 src/include/catalog/pg_aggregate.h        |  168 +-
 src/include/catalog/pg_attribute.h        |   60 +-
 src/include/catalog/pg_class.h            |    4 +-
 src/include/catalog/pg_operator.h         |   10 +-
 src/include/catalog/pg_proc.h             | 2639 +++++++++++----------
 src/include/executor/nodeAgg.h            |    5 +-
 src/include/nodes/primnodes.h             |   12 +-
 src/include/parser/parse_agg.h            |    6 +-
 src/include/parser/parse_coerce.h         |    7 +-
 src/include/parser/parse_func.h           |    8 +-
 src/include/parser/parse_target.h         |    5 +-
 src/include/utils/acl.h                   |    3 +-
 src/include/utils/builtins.h              |    3 +-
 src/include/utils/syscache.h              |   63 +-
 src/interfaces/python/tutorial/syscat.py  |    9 +-
 src/test/regress/expected/alter_table.out |   20 +-
 src/test/regress/expected/foreign_key.out |   74 +-
 src/test/regress/expected/oidjoins.out    |   24 +-
 src/test/regress/expected/opr_sanity.out  |  169 +-
 src/test/regress/expected/rules.out       |    8 +-
 src/test/regress/sql/alter_table.sql      |    8 +-
 src/test/regress/sql/foreign_key.sql      |   44 +-
 src/test/regress/sql/oidjoins.sql         |   12 +-
 src/test/regress/sql/opr_sanity.sql       |  139 +-
 src/test/regress/sql/rules.sql            |    2 +-
 src/tutorial/syscat.source                |   11 +-
 63 files changed, 2528 insertions(+), 2438 deletions(-)

diff --git a/doc/src/sgml/catalogs.sgml b/doc/src/sgml/catalogs.sgml
index ba9c9b15e79..03809d69e42 100644
--- a/doc/src/sgml/catalogs.sgml
+++ b/doc/src/sgml/catalogs.sgml
@@ -1,6 +1,6 @@
 <!--
  Documentation of the system catalogs, directed toward PostgreSQL developers
- $Header: /cvsroot/pgsql/doc/src/sgml/catalogs.sgml,v 2.40 2002/04/05 00:31:22 tgl Exp $
+ $Header: /cvsroot/pgsql/doc/src/sgml/catalogs.sgml,v 2.41 2002/04/11 19:59:54 tgl Exp $
  -->
 
 <chapter id="catalogs">
@@ -183,7 +183,11 @@
    that matches a query condition) and returns a single value computed
    from all these values.  Typical aggregate functions are
    <function>sum</function>, <function>count</function>, and
-   <function>max</function>.
+   <function>max</function>.  Each entry in
+   <structname>pg_aggregate</structname> is an extension of an entry
+   in <structname>pg_proc</structname>.  The <structname>pg_proc</structname>
+   entry carries the aggregate's name, input and output datatypes, and
+   other information that is similar to ordinary functions.
   </para>
 
   <table>
@@ -200,47 +204,29 @@
     </thead>
     <tbody>
      <row>
-      <entry>aggname</entry>
-      <entry><type>name</type></entry>
-      <entry></entry>
-      <entry>Name of the aggregate function</entry>
-     </row>
-     <row>
-      <entry>aggowner</entry>
-      <entry><type>int4</type></entry>
-      <entry>pg_shadow.usesysid</entry>
-      <entry>Owner (creator) of the aggregate function</entry>
+      <entry>aggfnoid</entry>
+      <entry><type>regproc</type></entry>
+      <entry>pg_proc.oid</entry>
+      <entry>pg_proc OID of the aggregate function</entry>
      </row>
      <row>
       <entry>aggtransfn</entry>
-      <entry><type>regproc</type> (function)</entry>
+      <entry><type>regproc</type></entry>
       <entry>pg_proc.oid</entry>
       <entry>Transition function</entry>
      </row>
      <row>
       <entry>aggfinalfn</entry>
-      <entry><type>regproc</type> (function)</entry>
+      <entry><type>regproc</type></entry>
       <entry>pg_proc.oid</entry>
       <entry>Final function</entry>
      </row>
-     <row>
-      <entry>aggbasetype</entry>
-      <entry><type>oid</type></entry>
-      <entry>pg_type.oid</entry>
-      <entry>The input data type for this aggregate function</entry>
-     </row>
      <row>
       <entry>aggtranstype</entry>
       <entry><type>oid</type></entry>
       <entry>pg_type.oid</entry>
       <entry>The type of the aggregate function's internal transition (state) data</entry>
      </row>
-     <row>
-      <entry>aggfinaltype</entry>
-      <entry><type>oid</type></entry>
-      <entry>pg_type.oid</entry>
-      <entry>The type of the result</entry>
-     </row>
      <row>
       <entry>agginitval</entry>
       <entry><type>text</type></entry>
@@ -263,12 +249,6 @@
    functions and the meaning of the transition functions, etc.
   </para>
 
-  <para>
-   An aggregate function is identified through name
-   <emphasis>and</emphasis> argument type.  Hence aggname and aggbasetype
-   are the composite primary key.
-  </para>
-
  </sect1>
 
 
@@ -1632,6 +1612,12 @@
    about the meaning of some fields.
   </para>
 
+  <para>
+   The table contains data for aggregate functions as well as plain functions.
+   If <structfield>proisagg</structfield> is true, there should be a matching
+   row in <structname>pg_aggregate</structname>.
+  </para>
+
   <table>
    <title>pg_proc Columns</title>
 
@@ -1677,10 +1663,10 @@
      </row>
 
      <row>
-      <entry>proisinh</entry>
+      <entry>proisagg</entry>
       <entry><type>bool</type></entry>
       <entry></entry>
-      <entry>unused</entry>
+      <entry>Function is an aggregate function</entry>
      </row>
 
      <row>
@@ -1690,6 +1676,13 @@
       <entry>not functional</entry>
      </row>
 
+     <row>
+      <entry>proimplicit</entry>
+      <entry><type>bool</type></entry>
+      <entry></entry>
+      <entry>Function may be invoked as an implicit type coercion</entry>
+     </row>
+
      <row>
       <entry>proisstrict</entry>
       <entry><type>bool</type></entry>
@@ -1702,6 +1695,14 @@
       </entry>
      </row>
 
+     <row>
+      <entry>proretset</entry>
+      <entry><type>bool</type></entry>
+      <entry></entry>
+      <entry>Function returns a set (ie, multiple values of the specified
+      data type)</entry>
+     </row>
+
      <row>
       <entry>provolatile</entry>
       <entry><type>char</type></entry>
@@ -1728,14 +1729,6 @@
       <entry>Number of arguments</entry>
      </row>
 
-     <row>
-      <entry>proretset</entry>
-      <entry><type>bool</type></entry>
-      <entry></entry>
-      <entry>Function returns a set (ie, multiple values of the specified
-      data type)</entry>
-     </row>
-
      <row>
       <entry>prorettype</entry>
       <entry><type>oid</type></entry>
diff --git a/doc/src/sgml/ref/create_aggregate.sgml b/doc/src/sgml/ref/create_aggregate.sgml
index 8c5e3f7f481..6a421c2a5fd 100644
--- a/doc/src/sgml/ref/create_aggregate.sgml
+++ b/doc/src/sgml/ref/create_aggregate.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_aggregate.sgml,v 1.16 2001/12/08 03:24:34 thomas Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_aggregate.sgml,v 1.17 2002/04/11 19:59:55 tgl Exp $
 PostgreSQL documentation
 -->
 
@@ -168,8 +168,9 @@ CREATE
   <para>
    An  aggregate  function is identified by its name and input data type.
    Two aggregates can have the same name if they operate on different
-   input types.  To avoid confusion, do not make an ordinary function
-   of the same name and input data type as an aggregate.
+   input types.  The
+   name and input data type of an aggregate must also be distinct from
+   the name and input data type of every ordinary function.
   </para>
   <para>
    An  aggregate function is made from one or two ordinary
diff --git a/doc/src/sgml/ref/create_function.sgml b/doc/src/sgml/ref/create_function.sgml
index 28c54e1eb89..9c47721dc54 100644
--- a/doc/src/sgml/ref/create_function.sgml
+++ b/doc/src/sgml/ref/create_function.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_function.sgml,v 1.35 2002/04/05 00:31:24 tgl Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_function.sgml,v 1.36 2002/04/11 19:59:55 tgl Exp $
 -->
 
 <refentry id="SQL-CREATEFUNCTION">
@@ -214,6 +214,18 @@ CREATE [ OR REPLACE ] FUNCTION <replaceable class="parameter">name</replaceable>
        </para>
       </listitem>
      </varlistentry>
+
+     <varlistentry>
+      <term>implicitCoercion</term>
+      <listitem>
+       <para>
+	<option>implicitCoercion</option> indicates that the function 
+	may be used for implicit type conversions.
+	See <xref linkend="coercion-functions"
+	endterm="coercion-functions-title"> for more detail.
+       </para>
+      </listitem>
+     </varlistentry>
     </variablelist>
 
     Attribute names are not case-sensitive.
@@ -311,6 +323,54 @@ CREATE [ OR REPLACE ] FUNCTION <replaceable class="parameter">name</replaceable>
   </para>
  </refsect1>
 
+ <refsect1 id="COERCION-FUNCTIONS">
+  <refsect1info>
+   <date>2002-04-11</date>
+  </refsect1info>
+  <title id="coercion-functions-title">
+   Type Coercion Functions
+  </title>
+  <para>
+   A function that has one parameter and is named the same as its output
+   datatype is considered to be a <firstterm>type coercion function</>:
+   it can be invoked to convert a value of its input datatype into a value
+   of its output datatype.  For example,
+<programlisting>
+	SELECT CAST(42 AS text);
+</programlisting>
+   converts the integer constant 42 to text by invoking a function
+   <literal>text(int4)</>, if such a function exists and returns type
+   text.  (If no suitable conversion function can be found, the cast fails.)
+  </para>
+
+  <para>
+   If a potential coercion function is marked <literal>implicitCoercion</>,
+   then it can be invoked in any context where the conversion it defines
+   is required.  Coercion functions not so marked can be invoked only by
+   explicit <literal>CAST</>,
+   <replaceable>x</><literal>::</><replaceable>typename</>,
+   or <replaceable>typename</>(<replaceable>x</>) constructs.
+   For example, supposing that foo.f1 is a column of type text, then
+<programlisting>
+	INSERT INTO foo(f1) VALUES(42);
+</programlisting>
+   will be allowed if <literal>text(int4)</> is marked
+   <literal>implicitCoercion</>, otherwise not.
+  </para>
+
+  <para>
+   It is wise to be conservative about marking coercion functions as
+   implicit coercions.  An overabundance of implicit coercion paths
+   can cause <productname>PostgreSQL</productname> to choose surprising
+   interpretations of commands, 
+   or to be unable to resolve commands at all because there are multiple
+   possible interpretations.  A good rule of thumb is to make coercions
+   implicitly invokable only for information-preserving transformations
+   between types in the same general type category.  For example, int2
+   to int4 coercion can reasonably be implicit, but be wary of marking
+   int4 to text or float8 to int4 as implicit coercions.
+  </para>
+ </refsect1>
   
  <refsect1 id="sql-createfunction-examples">
   <title>Examples</title>
@@ -356,8 +416,8 @@ CREATE TABLE product (
   </para>
 
   <para>
-   This example creates a function that does type conversion between the
-   user-defined type complex, and the internal type point.  The
+   This example creates a function that does type conversion from the
+   user-defined type complex to the built-in type point.  The
    function is implemented by a dynamically loaded object that was
    compiled from C source (we illustrate the now-deprecated alternative
    of specifying the absolute file name to the shared object file).
diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c
index 04f98449bda..e440489a34a 100644
--- a/src/backend/catalog/aclchk.c
+++ b/src/backend/catalog/aclchk.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/catalog/aclchk.c,v 1.63 2002/04/11 05:32:02 petere Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/aclchk.c,v 1.64 2002/04/11 19:59:56 tgl Exp $
  *
  * NOTES
  *	  See acl.h.
@@ -733,7 +733,7 @@ pg_class_aclcheck(Oid table_oid, Oid userid, AclMode mode)
 	Acl		   *acl;
 
 	/*
-	 * Validate userid, find out if he is superuser
+	 * Validate userid, find out if he is superuser, also get usecatupd
 	 */
 	tuple = SearchSysCache(SHADOWSYSID,
 						   ObjectIdGetDatum(userid),
@@ -1035,29 +1035,3 @@ pg_proc_ownercheck(Oid proc_oid, Oid userid)
 
 	return userid == owner_id;
 }
-
-/*
- * Ownership check for an aggregate function (specified by OID).
- */
-bool
-pg_aggr_ownercheck(Oid aggr_oid, Oid userid)
-{
-	HeapTuple	tuple;
-	AclId		owner_id;
-
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(userid))
-		return true;
-
-	tuple = SearchSysCache(AGGOID,
-						   ObjectIdGetDatum(aggr_oid),
-						   0, 0, 0);
-	if (!HeapTupleIsValid(tuple))
-		elog(ERROR, "pg_aggr_ownercheck: aggregate %u not found", aggr_oid);
-
-	owner_id = ((Form_pg_aggregate) GETSTRUCT(tuple))->aggowner;
-
-	ReleaseSysCache(tuple);
-
-	return userid == owner_id;
-}
diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c
index 61688793cf4..1d225cc082b 100644
--- a/src/backend/catalog/heap.c
+++ b/src/backend/catalog/heap.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.194 2002/03/31 06:26:29 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.195 2002/04/11 19:59:56 tgl Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -1791,7 +1791,7 @@ cookDefault(ParseState *pstate,
 		if (type_id != atttypid)
 		{
 			if (CoerceTargetExpr(pstate, expr, type_id,
-								 atttypid, atttypmod) == NULL)
+								 atttypid, atttypmod, false) == NULL)
 				elog(ERROR, "Column \"%s\" is of type %s"
 					 " but default expression is of type %s"
 					 "\n\tYou will need to rewrite or cast the expression",
diff --git a/src/backend/catalog/indexing.c b/src/backend/catalog/indexing.c
index 7ceed7890d3..f0c7ef5a0d0 100644
--- a/src/backend/catalog/indexing.c
+++ b/src/backend/catalog/indexing.c
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/catalog/indexing.c,v 1.87 2002/04/05 00:31:24 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/indexing.c,v 1.88 2002/04/11 19:59:57 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -32,7 +32,7 @@
  */
 
 char	   *Name_pg_aggregate_indices[Num_pg_aggregate_indices] =
-{AggregateNameTypeIndex, AggregateOidIndex};
+{AggregateFnoidIndex};
 char	   *Name_pg_am_indices[Num_pg_am_indices] =
 {AmNameIndex, AmOidIndex};
 char	   *Name_pg_amop_indices[Num_pg_amop_indices] =
diff --git a/src/backend/catalog/pg_aggregate.c b/src/backend/catalog/pg_aggregate.c
index a9f270fccf8..951e45c5ffa 100644
--- a/src/backend/catalog/pg_aggregate.c
+++ b/src/backend/catalog/pg_aggregate.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/catalog/pg_aggregate.c,v 1.43 2002/04/09 20:35:47 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/pg_aggregate.c,v 1.44 2002/04/11 19:59:57 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -19,15 +19,16 @@
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
 #include "catalog/pg_aggregate.h"
+#include "catalog/pg_language.h"
 #include "catalog/pg_proc.h"
-#include "catalog/pg_type.h"
-#include "miscadmin.h"
+#include "optimizer/cost.h"
 #include "parser/parse_coerce.h"
 #include "parser/parse_func.h"
 #include "parser/parse_type.h"
 #include "utils/builtins.h"
 #include "utils/syscache.h"
 
+
 /*
  * AggregateCreate
  */
@@ -50,7 +51,7 @@ AggregateCreate(const char *aggName,
 	Oid			finaltype;
 	Oid			fnArgs[FUNC_MAX_ARGS];
 	int			nargs;
-	NameData	aname;
+	Oid			procOid;
 	TupleDesc	tupDesc;
 	int			i;
 
@@ -61,15 +62,6 @@ AggregateCreate(const char *aggName,
 	if (!aggtransfnName)
 		elog(ERROR, "aggregate must have a transition function");
 
-	/* make sure there is no existing agg of same name and base type */
-	if (SearchSysCacheExists(AGGNAME,
-							 PointerGetDatum(aggName),
-							 ObjectIdGetDatum(aggBaseType),
-							 0, 0))
-		elog(ERROR,
-			 "aggregate function \"%s\" with base type %s already exists",
-			 aggName, typeidTypeName(aggBaseType));
-
 	/* handle transfn */
 	MemSet(fnArgs, 0, FUNC_MAX_ARGS * sizeof(Oid));
 	fnArgs[0] = aggTransType;
@@ -109,8 +101,8 @@ AggregateCreate(const char *aggName,
 	/* handle finalfn, if supplied */
 	if (aggfinalfnName)
 	{
+		MemSet(fnArgs, 0, FUNC_MAX_ARGS * sizeof(Oid));
 		fnArgs[0] = aggTransType;
-		fnArgs[1] = 0;
 		finalfn = LookupFuncName(aggfinalfnName, 1, fnArgs);
 		if (!OidIsValid(finalfn))
 			func_error("AggregateCreate", aggfinalfnName, 1, fnArgs, NULL);
@@ -132,21 +124,47 @@ AggregateCreate(const char *aggName,
 	}
 	Assert(OidIsValid(finaltype));
 
+	/*
+	 * Everything looks okay.  Try to create the pg_proc entry for the
+	 * aggregate.  (This could fail if there's already a conflicting entry.)
+	 */
+	MemSet(fnArgs, 0, FUNC_MAX_ARGS * sizeof(Oid));
+	fnArgs[0] = aggBaseType;
+
+	procOid = ProcedureCreate(aggName,
+							  aggNamespace,
+							  false,		/* no replacement */
+							  false,		/* doesn't return a set */
+							  finaltype,	/* returnType */
+							  INTERNALlanguageId,	/* languageObjectId */
+							  "aggregate_dummy",	/* placeholder proc */
+							  "-",			/* probin */
+							  true,			/* isAgg */
+							  true,			/* (obsolete "trusted") */
+							  false,		/* isImplicit */
+							  false,		/* isStrict (not needed for agg) */
+							  PROVOLATILE_IMMUTABLE,	/* volatility (not needed for agg) */
+							  BYTE_PCT,		/* default cost values */
+							  PERBYTE_CPU,
+							  PERCALL_CPU,
+							  OUTIN_RATIO,
+							  1,			/* parameterCount */
+							  fnArgs);		/* parameterTypes */
+
+	/*
+	 * Okay to create the pg_aggregate entry.
+	 */
+
 	/* initialize nulls and values */
 	for (i = 0; i < Natts_pg_aggregate; i++)
 	{
 		nulls[i] = ' ';
 		values[i] = (Datum) NULL;
 	}
-	namestrcpy(&aname, aggName);
-	values[Anum_pg_aggregate_aggname - 1] = NameGetDatum(&aname);
-	values[Anum_pg_aggregate_aggowner - 1] = Int32GetDatum(GetUserId());
+	values[Anum_pg_aggregate_aggfnoid - 1] = ObjectIdGetDatum(procOid);
 	values[Anum_pg_aggregate_aggtransfn - 1] = ObjectIdGetDatum(transfn);
 	values[Anum_pg_aggregate_aggfinalfn - 1] = ObjectIdGetDatum(finalfn);
-	values[Anum_pg_aggregate_aggbasetype - 1] = ObjectIdGetDatum(aggBaseType);
 	values[Anum_pg_aggregate_aggtranstype - 1] = ObjectIdGetDatum(aggTransType);
-	values[Anum_pg_aggregate_aggfinaltype - 1] = ObjectIdGetDatum(finaltype);
-
 	if (agginitval)
 		values[Anum_pg_aggregate_agginitval - 1] =
 			DirectFunctionCall1(textin, CStringGetDatum(agginitval));
@@ -155,12 +173,9 @@ AggregateCreate(const char *aggName,
 
 	aggdesc = heap_openr(AggregateRelationName, RowExclusiveLock);
 	tupDesc = aggdesc->rd_att;
-	if (!HeapTupleIsValid(tup = heap_formtuple(tupDesc,
-											   values,
-											   nulls)))
-		elog(ERROR, "AggregateCreate: heap_formtuple failed");
-	if (!OidIsValid(heap_insert(aggdesc, tup)))
-		elog(ERROR, "AggregateCreate: heap_insert failed");
+
+	tup = heap_formtuple(tupDesc, values, nulls);
+	heap_insert(aggdesc, tup);
 
 	if (RelationGetForm(aggdesc)->relhasindex)
 	{
@@ -173,62 +188,3 @@ AggregateCreate(const char *aggName,
 
 	heap_close(aggdesc, RowExclusiveLock);
 }
-
-Datum
-AggNameGetInitVal(char *aggName, Oid basetype, bool *isNull)
-{
-	HeapTuple	tup;
-	Oid			transtype,
-				typinput,
-				typelem;
-	Datum		textInitVal;
-	char	   *strInitVal;
-	Datum		initVal;
-
-	Assert(PointerIsValid(aggName));
-	Assert(PointerIsValid(isNull));
-
-	tup = SearchSysCache(AGGNAME,
-						 PointerGetDatum(aggName),
-						 ObjectIdGetDatum(basetype),
-						 0, 0);
-	if (!HeapTupleIsValid(tup))
-		elog(ERROR, "AggNameGetInitVal: cache lookup failed for aggregate '%s'",
-			 aggName);
-	transtype = ((Form_pg_aggregate) GETSTRUCT(tup))->aggtranstype;
-
-	/*
-	 * initval is potentially null, so don't try to access it as a struct
-	 * field. Must do it the hard way with SysCacheGetAttr.
-	 */
-	textInitVal = SysCacheGetAttr(AGGNAME, tup,
-								  Anum_pg_aggregate_agginitval,
-								  isNull);
-	if (*isNull)
-	{
-		ReleaseSysCache(tup);
-		return (Datum) 0;
-	}
-
-	strInitVal = DatumGetCString(DirectFunctionCall1(textout, textInitVal));
-
-	ReleaseSysCache(tup);
-
-	tup = SearchSysCache(TYPEOID,
-						 ObjectIdGetDatum(transtype),
-						 0, 0, 0);
-	if (!HeapTupleIsValid(tup))
-		elog(ERROR, "AggNameGetInitVal: cache lookup failed on aggregate transition function return type %u", transtype);
-
-	typinput = ((Form_pg_type) GETSTRUCT(tup))->typinput;
-	typelem = ((Form_pg_type) GETSTRUCT(tup))->typelem;
-	ReleaseSysCache(tup);
-
-	initVal = OidFunctionCall3(typinput,
-							   CStringGetDatum(strInitVal),
-							   ObjectIdGetDatum(typelem),
-							   Int32GetDatum(-1));
-
-	pfree(strInitVal);
-	return initVal;
-}
diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c
index 8cb89b979cb..e9fcdc5d8e0 100644
--- a/src/backend/catalog/pg_proc.c
+++ b/src/backend/catalog/pg_proc.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.69 2002/04/09 20:35:47 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.70 2002/04/11 19:59:57 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -19,7 +19,6 @@
 #include "catalog/indexing.h"
 #include "catalog/pg_language.h"
 #include "catalog/pg_proc.h"
-#include "catalog/pg_type.h"
 #include "executor/executor.h"
 #include "miscadmin.h"
 #include "parser/parse_coerce.h"
@@ -48,24 +47,25 @@ ProcedureCreate(const char *procedureName,
 				Oid languageObjectId,
 				const char *prosrc,
 				const char *probin,
+				bool isAgg,
 				bool trusted,
+				bool isImplicit,
 				bool isStrict,
 				char volatility,
 				int32 byte_pct,
 				int32 perbyte_cpu,
 				int32 percall_cpu,
 				int32 outin_ratio,
-				List *argList)
+				int parameterCount,
+				const Oid *parameterTypes)
 {
 	int			i;
 	Relation	rel;
 	HeapTuple	tup;
 	HeapTuple	oldtup;
-	uint16		parameterCount;
 	char		nulls[Natts_pg_proc];
 	Datum		values[Natts_pg_proc];
 	char		replaces[Natts_pg_proc];
-	List	   *x;
 	List	   *querytree_list;
 	Oid			typev[FUNC_MAX_ARGS];
 	Oid			relid;
@@ -79,43 +79,14 @@ ProcedureCreate(const char *procedureName,
 	Assert(PointerIsValid(prosrc));
 	Assert(PointerIsValid(probin));
 
-	parameterCount = 0;
-	MemSet(typev, 0, FUNC_MAX_ARGS * sizeof(Oid));
-	foreach(x, argList)
-	{
-		TypeName   *t = (TypeName *) lfirst(x);
-		Oid			toid;
-
-		if (parameterCount >= FUNC_MAX_ARGS)
-			elog(ERROR, "functions cannot have more than %d arguments",
-				 FUNC_MAX_ARGS);
-
-		toid = LookupTypeName(t);
-		if (OidIsValid(toid))
-		{
-			if (!get_typisdefined(toid))
-				elog(WARNING, "Argument type \"%s\" is only a shell",
-					 TypeNameToString(t));
-		}
-		else
-		{
-			char      *typnam = TypeNameToString(t);
-
-			if (strcmp(typnam, "opaque") == 0)
-			{
-				if (languageObjectId == SQLlanguageId)
-					elog(ERROR, "SQL functions cannot have arguments of type \"opaque\"");
-				toid = InvalidOid;
-			}
-			else
-				elog(ERROR, "Type \"%s\" does not exist", typnam);
-		}
+	if (parameterCount < 0 || parameterCount > FUNC_MAX_ARGS)
+		elog(ERROR, "functions cannot have more than %d arguments",
+			 FUNC_MAX_ARGS);
 
-		if (t->setof)
-			elog(ERROR, "functions cannot accept set arguments");
-
-		typev[parameterCount++] = toid;
-	}
+	/* Make sure we have a zero-padded param type array */
+	MemSet(typev, 0, FUNC_MAX_ARGS * sizeof(Oid));
+	if (parameterCount > 0)
+		memcpy(typev, parameterTypes, parameterCount * sizeof(Oid));
 
 	if (languageObjectId == SQLlanguageId)
 	{
@@ -248,12 +219,13 @@ ProcedureCreate(const char *procedureName,
 	values[i++] = ObjectIdGetDatum(procNamespace); /* pronamespace */
 	values[i++] = Int32GetDatum(GetUserId());	/* proowner */
 	values[i++] = ObjectIdGetDatum(languageObjectId); /* prolang */
-	values[i++] = BoolGetDatum(false);			/* proisinh (unused) */
+	values[i++] = BoolGetDatum(isAgg);			/* proisagg */
 	values[i++] = BoolGetDatum(trusted);		/* proistrusted */
+	values[i++] = BoolGetDatum(isImplicit);		/* proimplicit */
 	values[i++] = BoolGetDatum(isStrict);		/* proisstrict */
+	values[i++] = BoolGetDatum(returnsSet);		/* proretset */
 	values[i++] = CharGetDatum(volatility);		/* provolatile */
 	values[i++] = UInt16GetDatum(parameterCount); /* pronargs */
-	values[i++] = BoolGetDatum(returnsSet);		/* proretset */
 	values[i++] = ObjectIdGetDatum(returnType);	/* prorettype */
 	values[i++] = PointerGetDatum(typev);		/* proargtypes */
 	values[i++] = Int32GetDatum(byte_pct);		/* probyte_pct */
@@ -298,6 +270,17 @@ ProcedureCreate(const char *procedureName,
 			elog(ERROR, "ProcedureCreate: cannot change return type of existing function."
 				 "\n\tUse DROP FUNCTION first.");
 
+		/* Can't change aggregate status, either */
+		if (oldproc->proisagg != isAgg)
+		{
+			if (oldproc->proisagg)
+				elog(ERROR, "function %s is an aggregate",
+					 procedureName);
+			else
+				elog(ERROR, "function %s is not an aggregate",
+					 procedureName);
+		}
+
 		/* do not change existing permissions, either */
 		replaces[Anum_pg_proc_proacl-1] = ' ';
 
diff --git a/src/backend/commands/comment.c b/src/backend/commands/comment.c
index b7d57f6cce5..b7de77067db 100644
--- a/src/backend/commands/comment.c
+++ b/src/backend/commands/comment.c
@@ -7,7 +7,7 @@
  * Copyright (c) 1999-2001, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/comment.c,v 1.39 2002/04/09 20:35:47 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/comment.c,v 1.40 2002/04/11 19:59:57 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -25,15 +25,11 @@
 #include "catalog/pg_operator.h"
 #include "catalog/pg_rewrite.h"
 #include "catalog/pg_trigger.h"
-#include "catalog/pg_type.h"
 #include "commands/comment.h"
 #include "miscadmin.h"
-#include "nodes/makefuncs.h"
-#include "parser/parse_agg.h"
 #include "parser/parse_func.h"
 #include "parser/parse_type.h"
 #include "parser/parse.h"
-#include "rewrite/rewriteRemove.h"
 #include "utils/acl.h"
 #include "utils/builtins.h"
 #include "utils/fmgroids.h"
@@ -573,7 +569,6 @@ CommentAggregate(List *aggregate, List *arguments, char *comment)
 	TypeName   *aggtype = (TypeName *) lfirst(arguments);
 	Oid			baseoid,
 				oid;
-	Oid			classoid;
 
 	/* First, attempt to determine the base aggregate oid */
 	if (aggtype)
@@ -581,18 +576,13 @@ CommentAggregate(List *aggregate, List *arguments, char *comment)
 	else
 		baseoid = InvalidOid;
 
-	/* Now, attempt to find the actual tuple in pg_aggregate */
+	/* Now, attempt to find the actual tuple in pg_proc */
 
-	oid = GetSysCacheOid(AGGNAME,
-						 PointerGetDatum(strVal(lfirst(aggregate))), /* XXX */
-						 ObjectIdGetDatum(baseoid),
-						 0, 0);
-	if (!OidIsValid(oid))
-		agg_error("CommentAggregate", aggregate, baseoid);
+	oid = find_aggregate_func("CommentAggregate", aggregate, baseoid);
 
 	/* Next, validate the user's attempt to comment */
 
-	if (!pg_aggr_ownercheck(oid, GetUserId()))
+	if (!pg_proc_ownercheck(oid, GetUserId()))
 	{
 		if (baseoid == InvalidOid)
 			elog(ERROR, "you are not permitted to comment on aggregate %s for all types",
@@ -602,14 +592,9 @@ CommentAggregate(List *aggregate, List *arguments, char *comment)
 				 NameListToString(aggregate), format_type_be(baseoid));
 	}
 
-	/* pg_aggregate doesn't have a hard-coded OID, so must look it up */
-
-	classoid = get_relname_relid(AggregateRelationName, PG_CATALOG_NAMESPACE);
-	Assert(OidIsValid(classoid));
-
 	/* Call CreateComments() to create/drop the comments */
 
-	CreateComments(oid, classoid, 0, comment);
+	CreateComments(oid, RelOid_pg_proc, 0, comment);
 }
 
 /*
diff --git a/src/backend/commands/define.c b/src/backend/commands/define.c
index cccbcdfaa59..692fc9f957c 100644
--- a/src/backend/commands/define.c
+++ b/src/backend/commands/define.c
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/define.c,v 1.74 2002/04/09 20:35:47 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/define.c,v 1.75 2002/04/11 19:59:57 tgl Exp $
  *
  * DESCRIPTION
  *	  The "DefineFoo" routines take the parse tree and pick out the
@@ -141,13 +141,56 @@ compute_return_type(TypeName *returnType, Oid languageOid,
 	*returnsSet_p = returnType->setof;
 }
 
-
-static void
-compute_full_attributes(List *parameters,
-						int32 *byte_pct_p, int32 *perbyte_cpu_p,
-						int32 *percall_cpu_p, int32 *outin_ratio_p,
-						bool *isStrict_p, char *volatility_p)
+/*
+ * Interpret the argument-types list of the CREATE FUNCTION statement.
+ */
+static int
+compute_parameter_types(List *argTypes, Oid languageOid,
+						Oid *parameterTypes)
 {
+	int			parameterCount = 0;
+	List	   *x;
+
+	MemSet(parameterTypes, 0, FUNC_MAX_ARGS * sizeof(Oid));
+	foreach(x, argTypes)
+	{
+		TypeName   *t = (TypeName *) lfirst(x);
+		Oid			toid;
+
+		if (parameterCount >= FUNC_MAX_ARGS)
+			elog(ERROR, "functions cannot have more than %d arguments",
+				 FUNC_MAX_ARGS);
+
+		toid = LookupTypeName(t);
+		if (OidIsValid(toid))
+		{
+			if (!get_typisdefined(toid))
+				elog(WARNING, "Argument type \"%s\" is only a shell",
+					 TypeNameToString(t));
+		}
+		else
+		{
+			char      *typnam = TypeNameToString(t);
+
+			if (strcmp(typnam, "opaque") == 0)
+			{
+				if (languageOid == SQLlanguageId)
+					elog(ERROR, "SQL functions cannot have arguments of type \"opaque\"");
+				toid = InvalidOid;
+			}
+			else
+				elog(ERROR, "Type \"%s\" does not exist", typnam);
+		}
+
+		if (t->setof)
+			elog(ERROR, "functions cannot accept set arguments");
+
+		parameterTypes[parameterCount++] = toid;
+	}
+
+	return parameterCount;
+}
+
 /*-------------
  *	 Interpret the parameters *parameters and return their contents as
  *	 *byte_pct_p, etc.
@@ -155,7 +198,10 @@ compute_full_attributes(List *parameters,
  *	These parameters supply optional information about a function.
  *	All have defaults if not specified.
  *
- *	Note: currently, only two of these parameters actually do anything:
+ *	Note: currently, only three of these parameters actually do anything:
+ *
+ *	 * isImplicit means the function may be used as an implicit type
+ *	   coercion.
  *
  *	 * isStrict means the function should not be called when any NULL
  *	   inputs are present; instead a NULL result value should be assumed.
@@ -168,6 +214,13 @@ compute_full_attributes(List *parameters,
  *	for a long time.
  *------------
  */
+static void
+compute_full_attributes(List *parameters,
+						int32 *byte_pct_p, int32 *perbyte_cpu_p,
+						int32 *percall_cpu_p, int32 *outin_ratio_p,
+						bool *isImplicit_p, bool *isStrict_p,
+						char *volatility_p)
+{
 	List	   *pl;
 
 	/* the defaults */
@@ -175,6 +228,7 @@ compute_full_attributes(List *parameters,
 	*perbyte_cpu_p = PERBYTE_CPU;
 	*percall_cpu_p = PERCALL_CPU;
 	*outin_ratio_p = OUTIN_RATIO;
+	*isImplicit_p = false;
 	*isStrict_p = false;
 	*volatility_p = PROVOLATILE_VOLATILE;
 
@@ -182,7 +236,9 @@ compute_full_attributes(List *parameters,
 	{
 		DefElem    *param = (DefElem *) lfirst(pl);
 
-		if (strcasecmp(param->defname, "isstrict") == 0)
+		if (strcasecmp(param->defname, "implicitcoercion") == 0)
+			*isImplicit_p = true;
+		else if (strcasecmp(param->defname, "isstrict") == 0)
 			*isStrict_p = true;
 		else if (strcasecmp(param->defname, "isimmutable") == 0)
 			*volatility_p = PROVOLATILE_IMMUTABLE;
@@ -276,11 +332,14 @@ CreateFunction(ProcedureStmt *stmt)
 	Oid			languageOid;
 	char	   *funcname;
 	Oid			namespaceId;
+	int			parameterCount;
+	Oid			parameterTypes[FUNC_MAX_ARGS];
 	int32		byte_pct,
 				perbyte_cpu,
 				percall_cpu,
 				outin_ratio;
-	bool		isStrict;
+	bool		isImplicit,
+				isStrict;
 	char		volatility;
 	HeapTuple	languageTuple;
 	Form_pg_language languageStruct;
@@ -316,9 +375,13 @@ CreateFunction(ProcedureStmt *stmt)
 	compute_return_type(stmt->returnType, languageOid,
 						&prorettype, &returnsSet);
 
+	parameterCount = compute_parameter_types(stmt->argTypes, languageOid,
+											 parameterTypes);
+
 	compute_full_attributes(stmt->withClause,
 							&byte_pct, &perbyte_cpu, &percall_cpu,
-							&outin_ratio, &isStrict, &volatility);
+							&outin_ratio, &isImplicit, &isStrict,
+							&volatility);
 
 	interpret_AS_clause(languageOid, languageName, stmt->as,
 						&prosrc_str, &probin_str);
@@ -335,18 +398,20 @@ CreateFunction(ProcedureStmt *stmt)
 					languageOid,
 					prosrc_str, /* converted to text later */
 					probin_str, /* converted to text later */
+					false,		/* not an aggregate */
 					true,		/* (obsolete "trusted") */
+					isImplicit,
 					isStrict,
 					volatility,
 					byte_pct,
 					perbyte_cpu,
 					percall_cpu,
 					outin_ratio,
-					stmt->argTypes);
+					parameterCount,
+					parameterTypes);
 }
 
 
-
 /*
  * DefineOperator
  *		this function extracts all the information from the
diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c
index 43539cd625a..0a8ddc1807c 100644
--- a/src/backend/commands/indexcmds.c
+++ b/src/backend/commands/indexcmds.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/indexcmds.c,v 1.68 2002/04/09 20:35:47 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/indexcmds.c,v 1.69 2002/04/11 19:59:58 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -303,7 +303,9 @@ FuncIndexArgs(IndexInfo *indexInfo,
 							   &true_typeids);
 	if (fdresult != FUNCDETAIL_NORMAL)
 	{
-		if (fdresult == FUNCDETAIL_COERCION)
+		if (fdresult == FUNCDETAIL_AGGREGATE)
+			elog(ERROR, "DefineIndex: functional index may not use an aggregate function");
+		else if (fdresult == FUNCDETAIL_COERCION)
 			elog(ERROR, "DefineIndex: functional index must use a real function, not a type coercion"
 				 "\n\tTry specifying the index opclass you want to use, instead");
 		else
diff --git a/src/backend/commands/remove.c b/src/backend/commands/remove.c
index 8969b9cdc13..c32d2b215c5 100644
--- a/src/backend/commands/remove.c
+++ b/src/backend/commands/remove.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/Attic/remove.c,v 1.73 2002/04/09 20:35:48 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/Attic/remove.c,v 1.74 2002/04/11 19:59:58 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -24,7 +24,6 @@
 #include "commands/defrem.h"
 #include "miscadmin.h"
 #include "parser/parse.h"
-#include "parser/parse_agg.h"
 #include "parser/parse_func.h"
 #include "parser/parse_type.h"
 #include "utils/acl.h"
@@ -381,6 +380,11 @@ RemoveFunction(List *functionName,		/* function name to be removed */
 		elog(ERROR, "RemoveFunction: function '%s': permission denied",
 			 NameListToString(functionName));
 
+	if (((Form_pg_proc) GETSTRUCT(tup))->proisagg)
+		elog(ERROR, "RemoveFunction: function '%s' is an aggregate"
+			 "\n\tUse DROP AGGREGATE to remove it",
+			 NameListToString(functionName));
+
 	if (((Form_pg_proc) GETSTRUCT(tup))->prolang == INTERNALlanguageId)
 	{
 		/* "Helpful" WARNING when removing a builtin function ... */
@@ -404,6 +408,7 @@ RemoveAggregate(List *aggName, TypeName *aggType)
 	Relation	relation;
 	HeapTuple	tup;
 	Oid			basetypeID;
+	Oid			procOid;
 
 	/*
 	 * if a basetype is passed in, then attempt to find an aggregate for
@@ -413,23 +418,16 @@ RemoveAggregate(List *aggName, TypeName *aggType)
 	 * a basetype of zero.	This is valid. It means that the aggregate is
 	 * to apply to all basetypes (eg, COUNT).
 	 */
-
 	if (aggType)
 		basetypeID = typenameTypeId(aggType);
 	else
 		basetypeID = InvalidOid;
 
-	relation = heap_openr(AggregateRelationName, RowExclusiveLock);
+	procOid = find_aggregate_func("RemoveAggregate", aggName, basetypeID);
 
-	tup = SearchSysCache(AGGNAME,
-						 PointerGetDatum(strVal(llast(aggName))),
-						 ObjectIdGetDatum(basetypeID),
-						 0, 0);
+	/* Permission check */
 
-	if (!HeapTupleIsValid(tup))
-		agg_error("RemoveAggregate", aggName, basetypeID);
-
-	if (!pg_aggr_ownercheck(tup->t_data->t_oid, GetUserId()))
+	if (!pg_proc_ownercheck(procOid, GetUserId()))
 	{
 		if (basetypeID == InvalidOid)
 			elog(ERROR, "RemoveAggregate: aggregate %s for all types: permission denied",
@@ -439,8 +437,36 @@ RemoveAggregate(List *aggName, TypeName *aggType)
 				 NameListToString(aggName), format_type_be(basetypeID));
 	}
 
-	/* Remove any comments related to this aggregate */
-	DeleteComments(tup->t_data->t_oid, RelationGetRelid(relation));
+	/* Remove the pg_proc tuple */
+
+	relation = heap_openr(ProcedureRelationName, RowExclusiveLock);
+
+	tup = SearchSysCache(PROCOID,
+						 ObjectIdGetDatum(procOid),
+						 0, 0, 0);
+	if (!HeapTupleIsValid(tup))	/* should not happen */
+		elog(ERROR, "RemoveAggregate: couldn't find pg_proc tuple for %s",
+			 NameListToString(aggName));
+
+	/* Delete any comments associated with this function */
+	DeleteComments(procOid, RelationGetRelid(relation));
+
+	simple_heap_delete(relation, &tup->t_self);
+
+	ReleaseSysCache(tup);
+
+	heap_close(relation, RowExclusiveLock);
+
+	/* Remove the pg_aggregate tuple */
+
+	relation = heap_openr(AggregateRelationName, RowExclusiveLock);
+
+	tup = SearchSysCache(AGGFNOID,
+						 ObjectIdGetDatum(procOid),
+						 0, 0, 0);
+	if (!HeapTupleIsValid(tup))	/* should not happen */
+		elog(ERROR, "RemoveAggregate: couldn't find pg_aggregate tuple for %s",
+			 NameListToString(aggName));
 
 	simple_heap_delete(relation, &tup->t_self);
 
diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c
index e7da9e5af57..3ccbcd8efc8 100644
--- a/src/backend/executor/nodeAgg.c
+++ b/src/backend/executor/nodeAgg.c
@@ -46,7 +46,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/nodeAgg.c,v 1.80 2002/03/20 19:43:54 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/nodeAgg.c,v 1.81 2002/04/11 19:59:58 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -63,11 +63,13 @@
 #include "parser/parse_expr.h"
 #include "parser/parse_oper.h"
 #include "parser/parse_type.h"
+#include "utils/builtins.h"
 #include "utils/lsyscache.h"
 #include "utils/syscache.h"
 #include "utils/tuplesort.h"
 #include "utils/datum.h"
 
+
 /*
  * AggStatePerAggData - per-aggregate working state for the Agg scan
  */
@@ -160,6 +162,7 @@ static void process_sorted_aggregate(AggState *aggstate,
 						 AggStatePerAgg peraggstate);
 static void finalize_aggregate(AggStatePerAgg peraggstate,
 				   Datum *resultVal, bool *resultIsNull);
+static Datum GetAggInitVal(Datum textInitVal, Oid transtype);
 
 
 /*
@@ -244,7 +247,7 @@ advance_transition_function(AggStatePerAgg peraggstate,
 			 * transValue has not been initialized. This is the first
 			 * non-NULL input value. We use it as the initial value for
 			 * transValue. (We already checked that the agg's input type
-			 * is binary- compatible with its transtype, so straight copy
+			 * is binary-compatible with its transtype, so straight copy
 			 * here is OK.)
 			 *
 			 * We had better copy the datum if it is pass-by-ref, since the
@@ -838,11 +841,11 @@ ExecInitAgg(Agg *node, EState *estate, Plan *parent)
 	{
 		Aggref	   *aggref = (Aggref *) lfirst(alist);
 		AggStatePerAgg peraggstate = &peragg[++aggno];
-		char	   *aggname = aggref->aggname;
 		HeapTuple	aggTuple;
 		Form_pg_aggregate aggform;
 		Oid			transfn_oid,
 					finalfn_oid;
+		Datum		textInitVal;
 
 		/* Mark Aggref node with its associated index in the result array */
 		aggref->aggno = aggno;
@@ -850,28 +853,34 @@ ExecInitAgg(Agg *node, EState *estate, Plan *parent)
 		/* Fill in the peraggstate data */
 		peraggstate->aggref = aggref;
 
-		aggTuple = SearchSysCache(AGGNAME,
-								  PointerGetDatum(aggname),
-								  ObjectIdGetDatum(aggref->basetype),
-								  0, 0);
+		aggTuple = SearchSysCache(AGGFNOID,
+								  ObjectIdGetDatum(aggref->aggfnoid),
+								  0, 0, 0);
 		if (!HeapTupleIsValid(aggTuple))
-			elog(ERROR, "ExecAgg: cache lookup failed for aggregate %s(%s)",
-				 aggname,
-				 aggref->basetype ?
-				 typeidTypeName(aggref->basetype) : (char *) "");
+			elog(ERROR, "ExecAgg: cache lookup failed for aggregate %u",
+				 aggref->aggfnoid);
 		aggform = (Form_pg_aggregate) GETSTRUCT(aggTuple);
 
-		get_typlenbyval(aggform->aggfinaltype,
+		get_typlenbyval(aggref->aggtype,
 						&peraggstate->resulttypeLen,
 						&peraggstate->resulttypeByVal);
 		get_typlenbyval(aggform->aggtranstype,
 						&peraggstate->transtypeLen,
 						&peraggstate->transtypeByVal);
 
-		peraggstate->initValue =
-			AggNameGetInitVal(aggname,
-							  aggform->aggbasetype,
-							  &peraggstate->initValueIsNull);
+		/*
+		 * initval is potentially null, so don't try to access it as a struct
+		 * field. Must do it the hard way with SysCacheGetAttr.
+		 */
+		textInitVal = SysCacheGetAttr(AGGFNOID, aggTuple,
+									  Anum_pg_aggregate_agginitval,
+									  &peraggstate->initValueIsNull);
+
+		if (peraggstate->initValueIsNull)
+			peraggstate->initValue = (Datum) 0;
+		else
+			peraggstate->initValue = GetAggInitVal(textInitVal,
+												   aggform->aggtranstype);
 
 		peraggstate->transfn_oid = transfn_oid = aggform->aggtransfn;
 		peraggstate->finalfn_oid = finalfn_oid = aggform->aggfinalfn;
@@ -891,21 +900,21 @@ ExecInitAgg(Agg *node, EState *estate, Plan *parent)
 		{
 			/*
 			 * Note: use the type from the input expression here, not
-			 * aggform->aggbasetype, because the latter might be 0.
+			 * from pg_proc.proargtypes, because the latter might be 0.
 			 * (Consider COUNT(*).)
 			 */
 			Oid			inputType = exprType(aggref->target);
 
 			if (!IsBinaryCompatible(inputType, aggform->aggtranstype))
-				elog(ERROR, "Aggregate %s needs to have compatible input type and transition type",
-					 aggname);
+				elog(ERROR, "Aggregate %u needs to have compatible input type and transition type",
+					 aggref->aggfnoid);
 		}
 
 		if (aggref->aggdistinct)
 		{
 			/*
 			 * Note: use the type from the input expression here, not
-			 * aggform->aggbasetype, because the latter might be 0.
+			 * from pg_proc.proargtypes, because the latter might be 0.
 			 * (Consider COUNT(*).)
 			 */
 			Oid			inputType = exprType(aggref->target);
@@ -932,6 +941,36 @@ ExecInitAgg(Agg *node, EState *estate, Plan *parent)
 	return TRUE;
 }
 
+static Datum
+GetAggInitVal(Datum textInitVal, Oid transtype)
+{
+	char	   *strInitVal;
+	HeapTuple	tup;
+	Oid			typinput,
+				typelem;
+	Datum		initVal;
+
+	strInitVal = DatumGetCString(DirectFunctionCall1(textout, textInitVal));
+
+	tup = SearchSysCache(TYPEOID,
+						 ObjectIdGetDatum(transtype),
+						 0, 0, 0);
+	if (!HeapTupleIsValid(tup))
+		elog(ERROR, "GetAggInitVal: cache lookup failed on aggregate transition function return type %u", transtype);
+
+	typinput = ((Form_pg_type) GETSTRUCT(tup))->typinput;
+	typelem = ((Form_pg_type) GETSTRUCT(tup))->typelem;
+	ReleaseSysCache(tup);
+
+	initVal = OidFunctionCall3(typinput,
+							   CStringGetDatum(strInitVal),
+							   ObjectIdGetDatum(typelem),
+							   Int32GetDatum(-1));
+
+	pfree(strInitVal);
+	return initVal;
+}
+
 int
 ExecCountSlotsAgg(Agg *node)
 {
@@ -985,3 +1024,21 @@ ExecReScanAgg(Agg *node, ExprContext *exprCtxt, Plan *parent)
 	if (((Plan *) node)->lefttree->chgParam == NULL)
 		ExecReScan(((Plan *) node)->lefttree, exprCtxt, (Plan *) node);
 }
+
+/*
+ * aggregate_dummy - dummy execution routine for aggregate functions
+ *
+ * This function is listed as the implementation (prosrc field) of pg_proc
+ * entries for aggregate functions.  Its only purpose is to throw an error
+ * if someone mistakenly executes such a function in the normal way.
+ *
+ * Perhaps someday we could assign real meaning to the prosrc field of
+ * an aggregate?
+ */
+Datum
+aggregate_dummy(PG_FUNCTION_ARGS)
+{
+	elog(ERROR, "Aggregate function %u called as normal function",
+		 fcinfo->flinfo->fn_oid);
+	return (Datum) 0;			/* keep compiler quiet */
+}
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c
index 873658774ca..5eed3a33f51 100644
--- a/src/backend/nodes/copyfuncs.c
+++ b/src/backend/nodes/copyfuncs.c
@@ -15,7 +15,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.176 2002/04/09 20:35:49 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.177 2002/04/11 19:59:59 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -852,11 +852,7 @@ _copyAggref(Aggref *from)
 {
 	Aggref	   *newnode = makeNode(Aggref);
 
-	/*
-	 * copy remainder of node
-	 */
-	newnode->aggname = pstrdup(from->aggname);
-	newnode->basetype = from->basetype;
+	newnode->aggfnoid = from->aggfnoid;
 	newnode->aggtype = from->aggtype;
 	Node_Copy(from, newnode, target);
 	newnode->aggstar = from->aggstar;
diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c
index 9458ebc5b95..cafd77a8220 100644
--- a/src/backend/nodes/equalfuncs.c
+++ b/src/backend/nodes/equalfuncs.c
@@ -20,7 +20,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.124 2002/04/09 20:35:50 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.125 2002/04/11 19:59:59 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -220,9 +220,7 @@ _equalFunc(Func *a, Func *b)
 static bool
 _equalAggref(Aggref *a, Aggref *b)
 {
-	if (strcmp(a->aggname, b->aggname) != 0)
-		return false;
-	if (a->basetype != b->basetype)
+	if (a->aggfnoid != b->aggfnoid)
 		return false;
 	if (a->aggtype != b->aggtype)
 		return false;
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c
index a495f5ed10b..09a3eb767f2 100644
--- a/src/backend/nodes/outfuncs.c
+++ b/src/backend/nodes/outfuncs.c
@@ -5,7 +5,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- *	$Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.153 2002/04/09 20:35:50 tgl Exp $
+ *	$Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.154 2002/04/11 19:59:59 tgl Exp $
  *
  * NOTES
  *	  Every (plan) node in POSTGRES has an associated "out" routine which
@@ -785,10 +785,8 @@ _outConst(StringInfo str, Const *node)
 static void
 _outAggref(StringInfo str, Aggref *node)
 {
-	appendStringInfo(str, " AGGREG :aggname ");
-	_outToken(str, node->aggname);
-	appendStringInfo(str, " :basetype %u :aggtype %u :target ",
-					 node->basetype, node->aggtype);
+	appendStringInfo(str, " AGGREG :aggfnoid %u :aggtype %u :target ",
+					 node->aggfnoid, node->aggtype);
 	_outNode(str, node->target);
 
 	appendStringInfo(str, " :aggstar %s :aggdistinct %s ",
diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c
index 150e98d6e49..f91ba36e5dc 100644
--- a/src/backend/nodes/readfuncs.c
+++ b/src/backend/nodes/readfuncs.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.118 2002/03/22 02:56:32 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.119 2002/04/11 20:00:00 tgl Exp $
  *
  * NOTES
  *	  Most of the read functions for plan nodes are tested. (In fact, they
@@ -1159,13 +1159,9 @@ _readAggref(void)
 
 	local_node = makeNode(Aggref);
 
-	token = pg_strtok(&length); /* eat :aggname */
-	token = pg_strtok(&length); /* get aggname */
-	local_node->aggname = debackslash(token, length);
-
-	token = pg_strtok(&length); /* eat :basetype */
-	token = pg_strtok(&length); /* get basetype */
-	local_node->basetype = atooid(token);
+	token = pg_strtok(&length); /* eat :aggfnoid */
+	token = pg_strtok(&length); /* get aggfnoid */
+	local_node->aggfnoid = atooid(token);
 
 	token = pg_strtok(&length); /* eat :aggtype */
 	token = pg_strtok(&length); /* get aggtype */
diff --git a/src/backend/optimizer/util/var.c b/src/backend/optimizer/util/var.c
index 568e024d20b..81aad81c0f3 100644
--- a/src/backend/optimizer/util/var.c
+++ b/src/backend/optimizer/util/var.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/optimizer/util/var.c,v 1.34 2002/03/12 00:51:51 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/optimizer/util/var.c,v 1.35 2002/04/11 20:00:00 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -485,7 +485,7 @@ flatten_join_alias_var(Var *var, Query *root, int expandRTI)
 				if (subtype != vartype)
 				{
 					l_var = coerce_type(NULL, l_var, subtype,
-										vartype, vartypmod);
+										vartype, vartypmod, false);
 					l_var = coerce_type_typmod(NULL, l_var,
 											   vartype, vartypmod);
 				}
@@ -504,7 +504,7 @@ flatten_join_alias_var(Var *var, Query *root, int expandRTI)
 				if (subtype != vartype)
 				{
 					r_var = coerce_type(NULL, r_var, subtype,
-										vartype, vartypmod);
+										vartype, vartypmod, false);
 					r_var = coerce_type_typmod(NULL, r_var,
 											   vartype, vartypmod);
 				}
diff --git a/src/backend/parser/parse_agg.c b/src/backend/parser/parse_agg.c
index 3812579a4db..114296baf29 100644
--- a/src/backend/parser/parse_agg.c
+++ b/src/backend/parser/parse_agg.c
@@ -8,24 +8,17 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_agg.c,v 1.48 2002/04/09 20:35:52 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_agg.c,v 1.49 2002/04/11 20:00:00 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
-
 #include "postgres.h"
-#include "catalog/namespace.h"
-#include "catalog/pg_aggregate.h"
+
 #include "optimizer/clauses.h"
 #include "optimizer/tlist.h"
 #include "parser/parse_agg.h"
-#include "parser/parse_coerce.h"
-#include "parser/parse_expr.h"
 #include "parser/parsetree.h"
-#include "parser/parse_type.h"
-#include "utils/builtins.h"
-#include "utils/lsyscache.h"
-#include "utils/syscache.h"
+
 
 typedef struct
 {
@@ -185,70 +178,3 @@ parseCheckAggregates(ParseState *pstate, Query *qry, Node *qual)
 	/* Release the list storage (but not the pointed-to expressions!) */
 	freeList(groupClauses);
 }
-
-
-Aggref *
-ParseAgg(ParseState *pstate, List *aggname, Oid basetype,
-		 List *args, bool agg_star, bool agg_distinct)
-{
-	HeapTuple	aggtuple;
-	Form_pg_aggregate aggform;
-	Aggref	   *aggref;
-
-	aggtuple = SearchSysCache(AGGNAME,
-							  PointerGetDatum(strVal(llast(aggname))),
-							  ObjectIdGetDatum(basetype),
-							  0, 0);
-	/* shouldn't happen --- caller should have checked already */
-	if (!HeapTupleIsValid(aggtuple))
-		agg_error("ParseAgg", aggname, basetype);
-	aggform = (Form_pg_aggregate) GETSTRUCT(aggtuple);
-
-	/*
-	 * There used to be a really ugly hack for count(*) here.
-	 *
-	 * It's gone.  Now, the grammar transforms count(*) into count(1), which
-	 * does the right thing.  (It didn't use to do the right thing,
-	 * because the optimizer had the wrong ideas about semantics of
-	 * queries without explicit variables.	Fixed as of Oct 1999 --- tgl.)
-	 */
-
-	/*
-	 * We assume caller has already checked that given args are compatible
-	 * with the agg's basetype.
-	 */
-
-	aggref = makeNode(Aggref);
-	aggref->aggname = pstrdup(strVal(llast(aggname)));
-	aggref->basetype = aggform->aggbasetype;
-	aggref->aggtype = aggform->aggfinaltype;
-	aggref->target = lfirst(args);
-	aggref->aggstar = agg_star;
-	aggref->aggdistinct = agg_distinct;
-
-	ReleaseSysCache(aggtuple);
-
-	pstate->p_hasAggs = true;
-
-	return aggref;
-}
-
-/*
- * Error message when aggregate lookup fails that gives details of the
- * basetype
- */
-void
-agg_error(const char *caller, List *aggname, Oid basetypeID)
-{
-	/*
-	 * basetypeID that is Invalid (zero) means aggregate over all types.
-	 * (count)
-	 */
-
-	if (basetypeID == InvalidOid)
-		elog(ERROR, "%s: aggregate '%s' for all types does not exist",
-			 caller, NameListToString(aggname));
-	else
-		elog(ERROR, "%s: aggregate '%s' for type %s does not exist",
-			 caller, NameListToString(aggname), format_type_be(basetypeID));
-}
diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c
index 4dd5777e1e1..aca5afc1243 100644
--- a/src/backend/parser/parse_coerce.c
+++ b/src/backend/parser/parse_coerce.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.69 2002/04/09 20:35:52 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.70 2002/04/11 20:00:00 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -32,7 +32,7 @@ Oid			PromoteTypeToNext(Oid inType);
 static Oid	PreferredType(CATEGORY category, Oid type);
 static Node *build_func_call(Oid funcid, Oid rettype, List *args);
 static Oid	find_coercion_function(Oid targetTypeId, Oid inputTypeId,
-								   Oid secondArgType);
+								   Oid secondArgType, bool isExplicit);
 
 
 /* coerce_type()
@@ -40,7 +40,7 @@ static Oid	find_coercion_function(Oid targetTypeId, Oid inputTypeId,
  */
 Node *
 coerce_type(ParseState *pstate, Node *node, Oid inputTypeId,
-			Oid targetTypeId, int32 atttypmod)
+			Oid targetTypeId, int32 atttypmod, bool isExplicit)
 {
 	Node	   *result;
 
@@ -131,7 +131,8 @@ coerce_type(ParseState *pstate, Node *node, Oid inputTypeId,
 
 		funcId = find_coercion_function(baseTypeId,
 										getBaseType(inputTypeId),
-										InvalidOid);
+										InvalidOid,
+										isExplicit);
 		if (!OidIsValid(funcId))
 			elog(ERROR, "coerce_type: no conversion function from %s to %s",
 				 format_type_be(inputTypeId), format_type_be(targetTypeId));
@@ -171,13 +172,18 @@ coerce_type(ParseState *pstate, Node *node, Oid inputTypeId,
  *
  * There are a few types which are known apriori to be convertible.
  * We will check for those cases first, and then look for possible
- *	conversion functions.
+ * conversion functions.
+ *
+ * We must be told whether this is an implicit or explicit coercion
+ * (explicit being a CAST construct, explicit function call, etc).
+ * We will accept a wider set of coercion cases for an explicit coercion.
  *
  * Notes:
  * This uses the same mechanism as the CAST() SQL construct in gram.y.
  */
 bool
-can_coerce_type(int nargs, Oid *input_typeids, Oid *func_typeids)
+can_coerce_type(int nargs, Oid *input_typeids, Oid *func_typeids,
+				bool isExplicit)
 {
 	int			i;
 
@@ -230,7 +236,7 @@ can_coerce_type(int nargs, Oid *input_typeids, Oid *func_typeids)
 			return false;
 
 		/*
-		 * Else, try for explicit conversion using functions: look for a
+		 * Else, try for run-time conversion using functions: look for a
 		 * single-argument function named with the target type name and
 		 * accepting the source type.
 		 *
@@ -238,7 +244,8 @@ can_coerce_type(int nargs, Oid *input_typeids, Oid *func_typeids)
 		 */
 		funcId = find_coercion_function(getBaseType(targetTypeId),
 										getBaseType(inputTypeId),
-										InvalidOid);
+										InvalidOid,
+										isExplicit);
 		if (!OidIsValid(funcId))
 			return false;
 	}
@@ -279,7 +286,8 @@ coerce_type_typmod(ParseState *pstate, Node *node,
 	/* If given type is a domain, use base type instead */
 	baseTypeId = getBaseType(targetTypeId);
 
-	funcId = find_coercion_function(baseTypeId, baseTypeId, INT4OID);
+	/* Note this is always implicit coercion */
+	funcId = find_coercion_function(baseTypeId, baseTypeId, INT4OID, false);
 
 	if (OidIsValid(funcId))
 	{
@@ -321,9 +329,10 @@ coerce_to_boolean(ParseState *pstate, Node **pnode)
 	if (inputTypeId == BOOLOID)
 		return true;			/* no work */
 	targetTypeId = BOOLOID;
-	if (!can_coerce_type(1, &inputTypeId, &targetTypeId))
+	if (!can_coerce_type(1, &inputTypeId, &targetTypeId, false))
 		return false;			/* fail, but let caller choose error msg */
-	*pnode = coerce_type(pstate, *pnode, inputTypeId, targetTypeId, -1);
+	*pnode = coerce_type(pstate, *pnode, inputTypeId, targetTypeId, -1,
+						 false);
 	return true;
 }
 
@@ -378,7 +387,7 @@ select_common_type(List *typeids, const char *context)
 			}
 			else if (IsPreferredType(pcategory, ntype)
 					 && !IsPreferredType(pcategory, ptype)
-					 && can_coerce_type(1, &ptype, &ntype))
+					 && can_coerce_type(1, &ptype, &ntype, false))
 			{
 				/*
 				 * new one is preferred and can convert? then take it...
@@ -424,8 +433,9 @@ coerce_to_common_type(ParseState *pstate, Node *node,
 
 	if (inputTypeId == targetTypeId)
 		return node;			/* no work */
-	if (can_coerce_type(1, &inputTypeId, &targetTypeId))
-		node = coerce_type(pstate, node, inputTypeId, targetTypeId, -1);
+	if (can_coerce_type(1, &inputTypeId, &targetTypeId, false))
+		node = coerce_type(pstate, node, inputTypeId, targetTypeId, -1,
+						   false);
 	else
 	{
 		elog(ERROR, "%s unable to convert to type \"%s\"",
@@ -659,6 +669,9 @@ PreferredType(CATEGORY category, Oid type)
  * A coercion function must be named after (the internal name of) its
  * result type, and must accept exactly the specified input type.  We
  * also require it to be defined in the same namespace as its result type.
+ * Furthermore, unless we are doing explicit coercion the function must
+ * be marked as usable for implicit coercion --- this allows coercion
+ * functions to be provided that aren't implicitly invokable.
  *
  * This routine is also used to look for length-coercion functions, which
  * are similar but accept a second argument.  secondArgType is the type
@@ -668,16 +681,16 @@ PreferredType(CATEGORY category, Oid type)
  * If a function is found, return its pg_proc OID; else return InvalidOid.
  */
 static Oid
-find_coercion_function(Oid targetTypeId, Oid inputTypeId, Oid secondArgType)
+find_coercion_function(Oid targetTypeId, Oid inputTypeId, Oid secondArgType,
+					   bool isExplicit)
 {
+	Oid			funcid = InvalidOid;
 	Type		targetType;
 	char	   *typname;
 	Oid			typnamespace;
 	Oid			oid_array[FUNC_MAX_ARGS];
 	int			nargs;
 	HeapTuple	ftup;
-	Form_pg_proc pform;
-	Oid			funcid;
 
 	targetType = typeidType(targetTypeId);
 	typname = NameStr(((Form_pg_type) GETSTRUCT(targetType))->typname);
@@ -698,21 +711,24 @@ find_coercion_function(Oid targetTypeId, Oid inputTypeId, Oid secondArgType)
 						  Int16GetDatum(nargs),
 						  PointerGetDatum(oid_array),
 						  ObjectIdGetDatum(typnamespace));
-	if (!HeapTupleIsValid(ftup))
-	{
-		ReleaseSysCache(targetType);
-		return InvalidOid;
-	}
-	/* Make sure the function's result type is as expected, too */
-	pform = (Form_pg_proc) GETSTRUCT(ftup);
-	if (pform->prorettype != targetTypeId)
+	if (HeapTupleIsValid(ftup))
 	{
+		Form_pg_proc pform = (Form_pg_proc) GETSTRUCT(ftup);
+
+		/* Make sure the function's result type is as expected */
+		if (pform->prorettype == targetTypeId && !pform->proretset &&
+			!pform->proisagg)
+		{
+			/* If needed, make sure it can be invoked implicitly */
+			if (isExplicit || pform->proimplicit)
+			{
+				/* Okay to use it */
+				funcid = ftup->t_data->t_oid;
+			}
+		}
 		ReleaseSysCache(ftup);
-		ReleaseSysCache(targetType);
-		return InvalidOid;
 	}
-	funcid = ftup->t_data->t_oid;
-	ReleaseSysCache(ftup);
+
 	ReleaseSysCache(targetType);
 	return funcid;
 }
diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c
index f8449716061..916c1da4a68 100644
--- a/src/backend/parser/parse_expr.c
+++ b/src/backend/parser/parse_expr.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.113 2002/04/09 20:35:52 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.114 2002/04/11 20:00:00 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1174,7 +1174,8 @@ parser_typecast_expression(ParseState *pstate,
 	if (inputType != targetType)
 	{
 		expr = CoerceTargetExpr(pstate, expr, inputType,
-								targetType, typename->typmod);
+								targetType, typename->typmod,
+								true); /* explicit coercion */
 		if (expr == NULL)
 			elog(ERROR, "Cannot cast type '%s' to '%s'",
 				 format_type_be(inputType),
diff --git a/src/backend/parser/parse_func.c b/src/backend/parser/parse_func.c
index a86195126ff..2ab9c9a6898 100644
--- a/src/backend/parser/parse_func.c
+++ b/src/backend/parser/parse_func.c
@@ -8,23 +8,18 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.125 2002/04/09 20:35:53 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.126 2002/04/11 20:00:01 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "postgres.h"
 
-#include "access/genam.h"
 #include "access/heapam.h"
 #include "catalog/catname.h"
-#include "catalog/indexing.h"
 #include "catalog/namespace.h"
-#include "catalog/pg_aggregate.h"
 #include "catalog/pg_inherits.h"
-#include "catalog/pg_namespace.h"
 #include "catalog/pg_proc.h"
 #include "nodes/makefuncs.h"
-#include "parser/parse_agg.h"
 #include "parser/parse_coerce.h"
 #include "parser/parse_expr.h"
 #include "parser/parse_func.h"
@@ -35,6 +30,7 @@
 #include "utils/lsyscache.h"
 #include "utils/syscache.h"
 
+
 static Node *ParseComplexProjection(ParseState *pstate,
 					   char *funcname,
 					   Node *first_arg);
@@ -54,9 +50,6 @@ static int match_argtypes(int nargs,
 static FieldSelect *setup_field_select(Node *input, char *attname, Oid relid);
 static FuncCandidateList func_select_candidate(int nargs, Oid *input_typeids,
 								  FuncCandidateList candidates);
-static int	agg_get_candidates(List *aggname, Oid typeId,
-							   FuncCandidateList *candidates);
-static Oid	agg_select_candidate(Oid typeid, FuncCandidateList candidates);
 
 
 /*
@@ -89,14 +82,10 @@ ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
 	char	   *refname;
 	int			nargs = length(fargs);
 	int			argn;
-	Func	   *funcnode;
 	Oid			oid_array[FUNC_MAX_ARGS];
 	Oid		   *true_oid_array;
 	Node	   *retval;
 	bool		retset;
-	bool		must_be_agg = agg_star || agg_distinct;
-	bool		could_be_agg;
-	Expr	   *expr;
 	FuncDetailCode fdresult;
 
 	/*
@@ -123,7 +112,7 @@ ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
 	 * then the "function call" could be a projection.  We also check
 	 * that there wasn't any aggregate decoration.
 	 */
-	if (nargs == 1 && !must_be_agg && length(funcname) == 1)
+	if (nargs == 1 && !agg_star && !agg_distinct && length(funcname) == 1)
 	{
 		char	   *cname = strVal(lfirst(funcname));
 
@@ -151,84 +140,6 @@ ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
 		}
 	}
 
-	/*
-	 * See if it's an aggregate.
-	 */
-	if (must_be_agg)
-	{
-		/* We don't presently cope with, eg, foo(DISTINCT x,y) */
-		if (nargs != 1)
-			elog(ERROR, "Aggregate functions may only have one parameter");
-		/* Agg's argument can't be a relation name, either */
-		if (IsA(first_arg, RangeVar))
-			elog(ERROR, "Aggregate functions cannot be applied to relation names");
-		could_be_agg = true;
-	}
-	else
-	{
-		/* Try to parse as an aggregate if above-mentioned checks are OK */
-		could_be_agg = (nargs == 1) && !(IsA(first_arg, RangeVar));
-	}
-
-	if (could_be_agg)
-	{
-		Oid			basetype = exprType(lfirst(fargs));
-		int			ncandidates;
-		FuncCandidateList candidates;
-
-		/* try for exact match first... */
-		if (SearchSysCacheExists(AGGNAME,
-								 PointerGetDatum(strVal(llast(funcname))),
-								 ObjectIdGetDatum(basetype),
-								 0, 0))
-			return (Node *) ParseAgg(pstate, funcname, basetype,
-									 fargs, agg_star, agg_distinct);
-
-		/* check for aggregate-that-accepts-any-type (eg, COUNT) */
-		if (SearchSysCacheExists(AGGNAME,
-								 PointerGetDatum(strVal(llast(funcname))),
-								 ObjectIdGetDatum(0),
-								 0, 0))
-			return (Node *) ParseAgg(pstate, funcname, 0,
-									 fargs, agg_star, agg_distinct);
-
-		/*
-		 * No exact match yet, so see if there is another entry in the
-		 * aggregate table that is compatible. - thomas 1998-12-05
-		 */
-		ncandidates = agg_get_candidates(funcname, basetype, &candidates);
-		if (ncandidates > 0)
-		{
-			Oid			type;
-
-			type = agg_select_candidate(basetype, candidates);
-			if (OidIsValid(type))
-			{
-				lfirst(fargs) = coerce_type(pstate, lfirst(fargs),
-											basetype, type, -1);
-				basetype = type;
-				return (Node *) ParseAgg(pstate, funcname, basetype,
-										 fargs, agg_star, agg_distinct);
-			}
-			else
-			{
-				/* Multiple possible matches --- give up */
-				elog(ERROR, "Unable to select an aggregate function %s(%s)",
-					 NameListToString(funcname), format_type_be(basetype));
-			}
-		}
-
-		if (must_be_agg)
-		{
-			/*
-			 * No matching agg, but we had '*' or DISTINCT, so a plain
-			 * function could not have been meant.
-			 */
-			elog(ERROR, "There is no aggregate function %s(%s)",
-				 NameListToString(funcname), format_type_be(basetype));
-		}
-	}
-
 	/*
 	 * Okay, it's not a column projection, so it must really be a function.
 	 * Extract arg type info and transform RangeVar arguments into varnodes
@@ -321,9 +232,22 @@ ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
 		 * these cases, so why duplicate code...
 		 */
 		return coerce_type(pstate, lfirst(fargs),
-						   oid_array[0], rettype, -1);
+						   oid_array[0], rettype, -1, true);
 	}
-	if (fdresult != FUNCDETAIL_NORMAL)
+	else if (fdresult == FUNCDETAIL_NORMAL)
+	{
+		/*
+		 * Normal function found; was there anything indicating it must be
+		 * an aggregate?
+		 */
+		if (agg_star)
+			elog(ERROR, "%s(*) specified, but %s is not an aggregate function",
+				 NameListToString(funcname), NameListToString(funcname));
+		if (agg_distinct)
+			elog(ERROR, "DISTINCT specified, but %s is not an aggregate function",
+				 NameListToString(funcname));
+	}
+	else if (fdresult != FUNCDETAIL_AGGREGATE)
 	{
 		/*
 		 * Oops.  Time to die.
@@ -341,165 +265,62 @@ ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
 				   "\n\tYou may need to add explicit typecasts");
 	}
 
-	/* got it */
-	funcnode = makeNode(Func);
-	funcnode->funcid = funcid;
-	funcnode->functype = rettype;
-	funcnode->func_fcache = NULL;
-
 	/* perform the necessary typecasting of arguments */
 	make_arguments(pstate, nargs, fargs, oid_array, true_oid_array);
 
-	expr = makeNode(Expr);
-	expr->typeOid = rettype;
-	expr->opType = FUNC_EXPR;
-	expr->oper = (Node *) funcnode;
-	expr->args = fargs;
-	retval = (Node *) expr;
-
-	/*
-	 * if the function returns a set of values, then we need to iterate
-	 * over all the returned values in the executor, so we stick an iter
-	 * node here.  if it returns a singleton, then we don't need the iter
-	 * node.
-	 */
-	if (retset)
+	/* build the appropriate output structure */
+	if (fdresult == FUNCDETAIL_NORMAL)
 	{
-		Iter	   *iter = makeNode(Iter);
-
-		iter->itertype = rettype;
-		iter->iterexpr = retval;
-		retval = (Node *) iter;
-	}
+		Expr	   *expr = makeNode(Expr);
+		Func	   *funcnode = makeNode(Func);
 
-	return retval;
-}
-
-
-static int
-agg_get_candidates(List *aggname,
-				   Oid typeId,
-				   FuncCandidateList *candidates)
-{
-	Relation	pg_aggregate_desc;
-	SysScanDesc	pg_aggregate_scan;
-	HeapTuple	tup;
-	int			ncandidates = 0;
-	ScanKeyData aggKey[1];
+		funcnode->funcid = funcid;
+		funcnode->functype = rettype;
+		funcnode->func_fcache = NULL;
 
-	*candidates = NULL;
+		expr->typeOid = rettype;
+		expr->opType = FUNC_EXPR;
+		expr->oper = (Node *) funcnode;
+		expr->args = fargs;
 
-	ScanKeyEntryInitialize(&aggKey[0], 0,
-						   Anum_pg_aggregate_aggname,
-						   F_NAMEEQ,
-						   NameGetDatum(strVal(llast(aggname))));
-
-	pg_aggregate_desc = heap_openr(AggregateRelationName, AccessShareLock);
-	pg_aggregate_scan = systable_beginscan(pg_aggregate_desc,
-										   AggregateNameTypeIndex, true,
-										   SnapshotNow,
-										   1, aggKey);
-
-	while (HeapTupleIsValid(tup = systable_getnext(pg_aggregate_scan)))
-	{
-		Form_pg_aggregate agg = (Form_pg_aggregate) GETSTRUCT(tup);
-		FuncCandidateList current_candidate;
-
-		current_candidate = (FuncCandidateList)
-			palloc(sizeof(struct _FuncCandidateList));
-		current_candidate->args[0] = agg->aggbasetype;
-		current_candidate->next = *candidates;
-		*candidates = current_candidate;
-		ncandidates++;
-	}
-
-	systable_endscan(pg_aggregate_scan);
-	heap_close(pg_aggregate_desc, AccessShareLock);
-
-	return ncandidates;
-}	/* agg_get_candidates() */
-
-/* agg_select_candidate()
- *
- * Try to choose only one candidate aggregate function from a list of
- * possible matches.  Return value is Oid of input type of aggregate
- * if successful, else InvalidOid.
- */
-static Oid
-agg_select_candidate(Oid typeid, FuncCandidateList candidates)
-{
-	FuncCandidateList current_candidate;
-	FuncCandidateList last_candidate;
-	Oid			current_typeid;
-	int			ncandidates;
-	CATEGORY	category,
-				current_category;
+		retval = (Node *) expr;
 
-	/*
-	 * First look for exact matches or binary compatible matches. (Of
-	 * course exact matches shouldn't even get here, but anyway.)
-	 */
-	ncandidates = 0;
-	last_candidate = NULL;
-	for (current_candidate = candidates;
-		 current_candidate != NULL;
-		 current_candidate = current_candidate->next)
-	{
-		current_typeid = current_candidate->args[0];
-
-		if (IsBinaryCompatible(current_typeid, typeid))
+		/*
+		 * if the function returns a set of values, then we need to iterate
+		 * over all the returned values in the executor, so we stick an iter
+		 * node here.  if it returns a singleton, then we don't need the iter
+		 * node.
+		 */
+		if (retset)
 		{
-			last_candidate = current_candidate;
-			ncandidates++;
+			Iter	   *iter = makeNode(Iter);
+
+			iter->itertype = rettype;
+			iter->iterexpr = retval;
+			retval = (Node *) iter;
 		}
 	}
-	if (ncandidates == 1)
-		return last_candidate->args[0];
-
-	/*
-	 * If no luck that way, look for candidates which allow coercion and
-	 * have a preferred type. Keep all candidates if none match.
-	 */
-	category = TypeCategory(typeid);
-	ncandidates = 0;
-	last_candidate = NULL;
-	for (current_candidate = candidates;
-		 current_candidate != NULL;
-		 current_candidate = current_candidate->next)
+	else
 	{
-		current_typeid = current_candidate->args[0];
-		current_category = TypeCategory(current_typeid);
+		/* aggregate function */
+		Aggref	   *aggref = makeNode(Aggref);
 
-		if (current_category == category
-			&& IsPreferredType(current_category, current_typeid)
-			&& can_coerce_type(1, &typeid, &current_typeid))
-		{
-			/* only one so far? then keep it... */
-			if (last_candidate == NULL)
-			{
-				candidates = current_candidate;
-				last_candidate = current_candidate;
-				ncandidates = 1;
-			}
-			/* otherwise, keep this one too... */
-			else
-			{
-				last_candidate->next = current_candidate;
-				last_candidate = current_candidate;
-				ncandidates++;
-			}
-		}
-		/* otherwise, don't bother keeping this one around... */
-	}
+		aggref->aggfnoid = funcid;
+		aggref->aggtype = rettype;
+		aggref->target = lfirst(fargs);
+		aggref->aggstar = agg_star;
+		aggref->aggdistinct = agg_distinct;
 
-	if (last_candidate)			/* terminate rebuilt list */
-		last_candidate->next = NULL;
+		retval = (Node *) aggref;
 
-	if (ncandidates == 1)
-		return candidates->args[0];
+		if (retset)
+			elog(ERROR, "Aggregates may not return sets");
 
-	return InvalidOid;
-}	/* agg_select_candidate() */
+		pstate->p_hasAggs = true;
+	}
+
+	return retval;
+}
 
 
 /* match_argtypes()
@@ -529,7 +350,8 @@ match_argtypes(int nargs,
 		 current_candidate = next_candidate)
 	{
 		next_candidate = current_candidate->next;
-		if (can_coerce_type(nargs, input_typeids, current_candidate->args))
+		if (can_coerce_type(nargs, input_typeids, current_candidate->args,
+							false))
 		{
 			current_candidate->next = *candidates;
 			*candidates = current_candidate;
@@ -1014,6 +836,7 @@ func_get_detail(List *funcname,
 	{
 		HeapTuple	ftup;
 		Form_pg_proc pform;
+		FuncDetailCode result;
 
 		*funcid = best_candidate->oid;
 		*true_typeids = best_candidate->args;
@@ -1026,8 +849,9 @@ func_get_detail(List *funcname,
 		pform = (Form_pg_proc) GETSTRUCT(ftup);
 		*rettype = pform->prorettype;
 		*retset = pform->proretset;
+		result = pform->proisagg ? FUNCDETAIL_AGGREGATE : FUNCDETAIL_NORMAL;
 		ReleaseSysCache(ftup);
-		return FUNCDETAIL_NORMAL;
+		return result;
 	}
 
 	return FUNCDETAIL_NOTFOUND;
@@ -1294,7 +1118,8 @@ make_arguments(ParseState *pstate,
 			lfirst(current_fargs) = coerce_type(pstate,
 												lfirst(current_fargs),
 												input_typeids[i],
-												function_typeids[i], -1);
+												function_typeids[i], -1,
+												false);
 		}
 	}
 }
@@ -1450,6 +1275,58 @@ func_error(const char *caller, List *funcname,
 	}
 }
 
+/*
+ * find_aggregate_func
+ *		Convenience routine to check that a function exists and is an
+ *		aggregate.
+ *
+ * Note: basetype is InvalidOid if we are looking for an aggregate on
+ * all types.
+ */
+Oid
+find_aggregate_func(const char *caller, List *aggname, Oid basetype)
+{
+	Oid			oid;
+	HeapTuple	ftup;
+	Form_pg_proc pform;
+
+	oid = LookupFuncName(aggname, 1, &basetype);
+
+	if (!OidIsValid(oid))
+	{
+		if (basetype == InvalidOid)
+			elog(ERROR, "%s: aggregate '%s' for all types does not exist",
+				 caller, NameListToString(aggname));
+		else
+			elog(ERROR, "%s: aggregate '%s' for type %s does not exist",
+				 caller, NameListToString(aggname),
+				 format_type_be(basetype));
+	}
+
+	/* Make sure it's an aggregate */
+	ftup = SearchSysCache(PROCOID,
+						  ObjectIdGetDatum(oid),
+						  0, 0, 0);
+	if (!HeapTupleIsValid(ftup)) /* should not happen */
+		elog(ERROR, "function %u not found", oid);
+	pform = (Form_pg_proc) GETSTRUCT(ftup);
+
+	if (!pform->proisagg)
+	{
+		if (basetype == InvalidOid)
+			elog(ERROR, "%s: function %s(*) is not an aggregate",
+				 caller, NameListToString(aggname));
+		else
+			elog(ERROR, "%s: function %s(%s) is not an aggregate",
+				 caller, NameListToString(aggname),
+				 format_type_be(basetype));
+	}
+
+	ReleaseSysCache(ftup);
+
+	return oid;
+}
+
 /*
  * LookupFuncName
  *		Given a possibly-qualified function name and a set of argument types,
diff --git a/src/backend/parser/parse_node.c b/src/backend/parser/parse_node.c
index 8b259e97c1d..0868f3f0bb8 100644
--- a/src/backend/parser/parse_node.c
+++ b/src/backend/parser/parse_node.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_node.c,v 1.60 2002/03/21 16:01:07 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_node.c,v 1.61 2002/04/11 20:00:01 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -73,7 +73,8 @@ make_operand(char *opname,
 	{
 		/* must coerce? */
 		if (target_typeId != orig_typeId)
-			result = coerce_type(NULL, tree, orig_typeId, target_typeId, -1);
+			result = coerce_type(NULL, tree, orig_typeId, target_typeId, -1,
+								 false);
 		else
 			result = tree;
 	}
@@ -288,7 +289,7 @@ transformArraySubscripts(ParseState *pstate,
 				subexpr = transformExpr(pstate, ai->lidx);
 				/* If it's not int4 already, try to coerce */
 				subexpr = CoerceTargetExpr(pstate, subexpr, exprType(subexpr),
-										   INT4OID, -1);
+										   INT4OID, -1, false);
 				if (subexpr == NULL)
 					elog(ERROR, "array index expressions must be integers");
 			}
@@ -308,7 +309,7 @@ transformArraySubscripts(ParseState *pstate,
 		subexpr = transformExpr(pstate, ai->uidx);
 		/* If it's not int4 already, try to coerce */
 		subexpr = CoerceTargetExpr(pstate, subexpr, exprType(subexpr),
-								   INT4OID, -1);
+								   INT4OID, -1, false);
 		if (subexpr == NULL)
 			elog(ERROR, "array index expressions must be integers");
 		upperIndexpr = lappend(upperIndexpr, subexpr);
@@ -329,7 +330,7 @@ transformArraySubscripts(ParseState *pstate,
 				/* XXX fixme: need to get the array's atttypmod? */
 				assignFrom = CoerceTargetExpr(pstate, assignFrom,
 											  typesource, typeneeded,
-											  -1);
+											  -1, false);
 				if (assignFrom == NULL)
 					elog(ERROR, "Array assignment requires type '%s'"
 						 " but expression is of type '%s'"
diff --git a/src/backend/parser/parse_oper.c b/src/backend/parser/parse_oper.c
index 8495f9f9e65..028bfab4319 100644
--- a/src/backend/parser/parse_oper.c
+++ b/src/backend/parser/parse_oper.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_oper.c,v 1.53 2002/03/20 19:44:31 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_oper.c,v 1.54 2002/04/11 20:00:02 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -265,7 +265,8 @@ oper_select_candidate(int nargs,
 		 current_candidate != NULL;
 		 current_candidate = current_candidate->next)
 	{
-		if (can_coerce_type(nargs, input_typeids, current_candidate->args))
+		if (can_coerce_type(nargs, input_typeids, current_candidate->args,
+							false))
 		{
 			if (last_candidate == NULL)
 			{
diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c
index 83c53de5d1d..9f97ab0f4cb 100644
--- a/src/backend/parser/parse_target.c
+++ b/src/backend/parser/parse_target.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.83 2002/04/09 20:35:53 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.84 2002/04/11 20:00:02 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -290,7 +290,8 @@ updateTargetListEntry(ParseState *pstate,
 			if (type_id != attrtype)
 			{
 				tle->expr = CoerceTargetExpr(pstate, tle->expr, type_id,
-											 attrtype, attrtypmod);
+											 attrtype, attrtypmod,
+											 false);
 				if (tle->expr == NULL)
 					elog(ERROR, "column \"%s\" is of type '%s'"
 						 " but expression is of type '%s'"
@@ -327,10 +328,12 @@ CoerceTargetExpr(ParseState *pstate,
 				 Node *expr,
 				 Oid type_id,
 				 Oid attrtype,
-				 int32 attrtypmod)
+				 int32 attrtypmod,
+				 bool isExplicit)
 {
-	if (can_coerce_type(1, &type_id, &attrtype))
-		expr = coerce_type(pstate, expr, type_id, attrtype, attrtypmod);
+	if (can_coerce_type(1, &type_id, &attrtype, isExplicit))
+		expr = coerce_type(pstate, expr, type_id, attrtype, attrtypmod,
+						   isExplicit);
 
 #ifndef DISABLE_STRING_HACKS
 
@@ -345,8 +348,9 @@ CoerceTargetExpr(ParseState *pstate,
 		if (type_id == TEXTOID)
 		{
 		}
-		else if (can_coerce_type(1, &type_id, &text_id))
-			expr = coerce_type(pstate, expr, type_id, text_id, attrtypmod);
+		else if (can_coerce_type(1, &type_id, &text_id, isExplicit))
+			expr = coerce_type(pstate, expr, type_id, text_id, attrtypmod,
+							   isExplicit);
 		else
 			expr = NULL;
 	}
diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c
index 08d93502497..9fe530818ba 100644
--- a/src/backend/rewrite/rewriteHandler.c
+++ b/src/backend/rewrite/rewriteHandler.c
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.101 2002/04/05 05:47:05 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.102 2002/04/11 20:00:02 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -476,7 +476,7 @@ build_column_default(Relation rel, int attrno)
 	if (exprtype != atttype)
 	{
 		expr = CoerceTargetExpr(NULL, expr, exprtype,
-								atttype, atttypmod);
+								atttype, atttypmod, false);
 
 		/*
 		 * This really shouldn't fail; should have checked the
diff --git a/src/backend/utils/Gen_fmgrtab.sh b/src/backend/utils/Gen_fmgrtab.sh
index c5034c1cb8f..7855a65b7a0 100644
--- a/src/backend/utils/Gen_fmgrtab.sh
+++ b/src/backend/utils/Gen_fmgrtab.sh
@@ -9,7 +9,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh,v 1.22 2002/04/05 00:31:28 tgl Exp $
+#    $Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh,v 1.23 2002/04/11 20:00:04 tgl Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -88,6 +88,8 @@ trap 'echo "Caught signal." ; cleanup ; exit 1' 1 2 15
 # deal with preprocessor statements first (before we sort the
 # function table by oid).
 #
+# Note assumption here that prolang == $5 and INTERNALlanguageId == 12.
+#
 $AWK '
 BEGIN		{ raw = 0; }
 /^DATA/		{ print; next; }
@@ -161,6 +163,8 @@ cat > "$$-$OIDSFILE" <<FuNkYfMgRsTuFf
  */
 FuNkYfMgRsTuFf
 
+# Note assumption here that prosrc == $(NF-2).
+
 tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' < $RAWFILE | \
 $AWK '
 BEGIN	{ OFS = ""; }
@@ -209,6 +213,8 @@ cat > "$$-$TABLEFILE" <<FuNkYfMgRtAbStUfF
 
 FuNkYfMgRtAbStUfF
 
+# Note assumption here that prosrc == $(NF-2).
+
 $AWK '{ print "extern Datum", $(NF-2), "(PG_FUNCTION_ARGS);"; }' $RAWFILE >> "$$-$TABLEFILE"
 
 if [ $? -ne 0 ]; then
@@ -226,13 +232,16 @@ FuNkYfMgRtAbStUfF
 # Note: using awk arrays to translate from pg_proc values to fmgrtab values
 # may seem tedious, but avoid the temptation to write a quick x?y:z
 # conditional expression instead.  Not all awks have conditional expressions.
+#
+# Note assumptions here that prosrc == $(NF-2), pronargs == $12,
+# proisstrict == $9, proretset == $10
 
 $AWK 'BEGIN {
     Bool["t"] = "true"
     Bool["f"] = "false"
 }
 { printf ("  { %d, \"%s\", %d, %s, %s, %s },\n"), \
-	$1, $(NF-2), $10, Bool[$8], Bool[$11], $(NF-2)
+	$1, $(NF-2), $12, Bool[$9], Bool[$10], $(NF-2)
 }' $RAWFILE >> "$$-$TABLEFILE"
 
 if [ $? -ne 0 ]; then
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c
index d8340234397..501d5a2095f 100644
--- a/src/backend/utils/adt/ruleutils.c
+++ b/src/backend/utils/adt/ruleutils.c
@@ -3,7 +3,7 @@
  *				back to source text
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.95 2002/03/22 02:56:35 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.96 2002/04/11 20:00:04 tgl Exp $
  *
  *	  This software is copyrighted by Jan Wieck - Hamburg.
  *
@@ -130,6 +130,7 @@ static void get_names_for_var(Var *var, deparse_context *context,
 				  char **refname, char **attname);
 static void get_rule_expr(Node *node, deparse_context *context);
 static void get_func_expr(Expr *expr, deparse_context *context);
+static void get_agg_expr(Aggref *aggref, deparse_context *context);
 static Node *strip_type_coercion(Node *expr, Oid resultType);
 static void get_tle_expr(TargetEntry *tle, deparse_context *context);
 static void get_const_expr(Const *constval, deparse_context *context);
@@ -1694,18 +1695,7 @@ get_rule_expr(Node *node, deparse_context *context)
 			break;
 
 		case T_Aggref:
-			{
-				Aggref	   *aggref = (Aggref *) node;
-
-				appendStringInfo(buf, "%s(%s",
-								 quote_identifier(aggref->aggname),
-								 aggref->aggdistinct ? "DISTINCT " : "");
-				if (aggref->aggstar)
-					appendStringInfo(buf, "*");
-				else
-					get_rule_expr(aggref->target, context);
-				appendStringInfoChar(buf, ')');
-			}
+			get_agg_expr((Aggref *) node, context);
 			break;
 
 		case T_Iter:
@@ -2000,6 +1990,45 @@ get_func_expr(Expr *expr, deparse_context *context)
 	ReleaseSysCache(proctup);
 }
 
+/* ----------
+ * get_agg_expr			- Parse back an Aggref node
+ * ----------
+ */
+static void
+get_agg_expr(Aggref *aggref, deparse_context *context)
+{
+	StringInfo	buf = context->buf;
+	HeapTuple	proctup;
+	Form_pg_proc procStruct;
+	char	   *proname;
+
+	/*
+	 * Get the aggregate's pg_proc tuple
+	 */
+	proctup = SearchSysCache(PROCOID,
+							 ObjectIdGetDatum(aggref->aggfnoid),
+							 0, 0, 0);
+	if (!HeapTupleIsValid(proctup))
+		elog(ERROR, "cache lookup for proc %u failed", aggref->aggfnoid);
+
+	procStruct = (Form_pg_proc) GETSTRUCT(proctup);
+	proname = NameStr(procStruct->proname);
+
+	/*
+	 * Display it
+	 */
+	appendStringInfo(buf, "%s(%s",
+					 quote_identifier(proname),
+					 aggref->aggdistinct ? "DISTINCT " : "");
+	if (aggref->aggstar)
+		appendStringInfo(buf, "*");
+	else
+		get_rule_expr(aggref->target, context);
+	appendStringInfoChar(buf, ')');
+
+	ReleaseSysCache(proctup);
+}
+
 
 /*
  * strip_type_coercion
diff --git a/src/backend/utils/adt/sets.c b/src/backend/utils/adt/sets.c
index 2302928624a..a0403615527 100644
--- a/src/backend/utils/adt/sets.c
+++ b/src/backend/utils/adt/sets.c
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/sets.c,v 1.42 2002/04/05 00:31:29 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/sets.c,v 1.43 2002/04/11 20:00:05 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -58,16 +58,19 @@ SetDefine(char *querystr, Oid elemType)
 							 true,		/* returnsSet */
 							 elemType,	/* returnType */
 							 SQLlanguageId,	/* language */
-							 querystr,	/* sourceCode */
-							 fileName,	/* fileName */
+							 querystr,	/* prosrc */
+							 fileName,	/* probin */
+							 false,		/* not aggregate */
 							 true,		/* trusted */
+							 false,		/* not implicit coercion */
 							 false,		/* isStrict (irrelevant, no args) */
 							 PROVOLATILE_VOLATILE,	/* assume unsafe */
 							 100,		/* byte_pct */
 							 0, /* perbyte_cpu */
 							 0, /* percall_cpu */
 							 100,		/* outin_ratio */
-							 NIL);		/* argList */
+							 0,			/* parameterCount */
+							 NULL);		/* parameterTypes */
 
 	/*
 	 * Since we're still inside this command of the transaction, we can't
diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c
index e384b3f6220..f2d318b820b 100644
--- a/src/backend/utils/adt/varchar.c
+++ b/src/backend/utils/adt/varchar.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.88 2002/03/09 17:35:36 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.89 2002/04/11 20:00:05 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -307,19 +307,6 @@ _bpchar(PG_FUNCTION_ARGS)
 }
 
 
-/* bpchar_char()
- * Convert bpchar(1) to char.
- *
- * If input is multiple chars, only the first is returned.
- */
-Datum
-bpchar_char(PG_FUNCTION_ARGS)
-{
-	BpChar	   *s = PG_GETARG_BPCHAR_P(0);
-
-	PG_RETURN_CHAR(*VARDATA(s));
-}
-
 /* char_bpchar()
  * Convert char to bpchar(1).
  */
diff --git a/src/backend/utils/cache/syscache.c b/src/backend/utils/cache/syscache.c
index 36535bd7fa9..6808c07f4be 100644
--- a/src/backend/utils/cache/syscache.c
+++ b/src/backend/utils/cache/syscache.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/syscache.c,v 1.75 2002/04/09 20:35:54 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/syscache.c,v 1.76 2002/04/11 20:00:06 tgl Exp $
  *
  * NOTES
  *	  These routines allow the parser/planner/executor to perform
@@ -93,22 +93,12 @@ struct cachedesc
 };
 
 static const struct cachedesc cacheinfo[] = {
-	{AggregateRelationName,		/* AGGNAME */
-		AggregateNameTypeIndex,
-		0,
-		2,
-		{
-			Anum_pg_aggregate_aggname,
-			Anum_pg_aggregate_aggbasetype,
-			0,
-			0
-	}},
-	{AggregateRelationName,		/* AGGOID */
-		AggregateOidIndex,
+	{AggregateRelationName,		/* AGGFNOID */
+		AggregateFnoidIndex,
 		0,
 		1,
 		{
-			ObjectIdAttributeNumber,
+			Anum_pg_aggregate_aggfnoid,
 			0,
 			0,
 			0
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 8ebc247dc21..0e54fd80d78 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -22,7 +22,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.246 2002/04/05 11:51:12 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.247 2002/04/11 20:00:06 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1873,7 +1873,7 @@ getAggregates(int *numAggs)
 						  "(select usename from pg_user where aggowner = usesysid) as usename "
 						  "from pg_aggregate");
 	}
-	else
+	else if (g_fout->remoteVersion < 70300)
 	{
 		appendPQExpBuffer(query, "SELECT pg_aggregate.oid, aggname, aggtransfn, "
 						  "aggfinalfn, aggtranstype, aggbasetype, "
@@ -1882,6 +1882,16 @@ getAggregates(int *numAggs)
 						  "(select usename from pg_user where aggowner = usesysid) as usename "
 						  "from pg_aggregate");
 	}
+	else
+	{
+		appendPQExpBuffer(query, "SELECT p.oid, proname as aggname, aggtransfn, "
+						  "aggfinalfn, aggtranstype, proargtypes[0] as aggbasetype, "
+						  "agginitval, "
+						  "'t'::boolean as convertok, "
+						  "(select usename from pg_user where proowner = usesysid) as usename "
+						  "from pg_aggregate a, pg_proc p "
+						  "where a.aggfnoid = p.oid");
+	}
 
 	res = PQexec(g_conn, query->data);
 	if (!res ||
@@ -1960,6 +1970,7 @@ getFuncs(int *numFuncs)
 	int			i_prosrc;
 	int			i_probin;
 	int			i_provolatile;
+	int			i_isimplicit;
 	int			i_isstrict;
 	int			i_usename;
 
@@ -1972,7 +1983,8 @@ getFuncs(int *numFuncs)
 						  "proretset, proargtypes, prosrc, probin, "
 						  "(select usename from pg_user where proowner = usesysid) as usename, "
 						  "case when proiscachable then 'i' else 'v' end as provolatile, "
-"'f'::boolean as proisstrict "
+						  "'f'::boolean as proimplicit, "
+						  "'f'::boolean as proisstrict "
 						  "from pg_proc "
 						  "where pg_proc.oid > '%u'::oid",
 						  g_last_builtin_oid);
@@ -1984,6 +1996,7 @@ getFuncs(int *numFuncs)
 						  "proretset, proargtypes, prosrc, probin, "
 						  "(select usename from pg_user where proowner = usesysid) as usename, "
 						  "case when proiscachable then 'i' else 'v' end as provolatile, "
+						  "'f'::boolean as proimplicit, "
 						  "proisstrict "
 						  "from pg_proc "
 						  "where pg_proc.oid > '%u'::oid",
@@ -1995,9 +2008,9 @@ getFuncs(int *numFuncs)
 		   "SELECT pg_proc.oid, proname, prolang, pronargs, prorettype, "
 						  "proretset, proargtypes, prosrc, probin, "
 						  "(select usename from pg_user where proowner = usesysid) as usename, "
-						  "provolatile, proisstrict "
+						  "provolatile, proimplicit, proisstrict "
 						  "from pg_proc "
-						  "where pg_proc.oid > '%u'::oid",
+						  "where pg_proc.oid > '%u'::oid and not proisagg",
 						  g_last_builtin_oid);
 	}
 
@@ -2028,6 +2041,7 @@ getFuncs(int *numFuncs)
 	i_prosrc = PQfnumber(res, "prosrc");
 	i_probin = PQfnumber(res, "probin");
 	i_provolatile = PQfnumber(res, "provolatile");
+	i_isimplicit = PQfnumber(res, "proimplicit");
 	i_isstrict = PQfnumber(res, "proisstrict");
 	i_usename = PQfnumber(res, "usename");
 
@@ -2045,6 +2059,7 @@ getFuncs(int *numFuncs)
 		finfo[i].lang = atooid(PQgetvalue(res, i, i_prolang));
 		finfo[i].usename = strdup(PQgetvalue(res, i, i_usename));
 		finfo[i].provolatile = (PQgetvalue(res, i, i_provolatile))[0];
+		finfo[i].isimplicit = (strcmp(PQgetvalue(res, i, i_isimplicit), "t") == 0);
 		finfo[i].isstrict = (strcmp(PQgetvalue(res, i, i_isstrict), "t") == 0);
 
 		if (strlen(finfo[i].usename) == 0)
@@ -3670,6 +3685,7 @@ dumpOneFunc(Archive *fout, FuncInfo *finfo, int i,
 	formatStringLiteral(q, func_lang, CONV_ALL);
 
 	if (finfo[i].provolatile != PROVOLATILE_VOLATILE ||
+		finfo[i].isimplicit ||
 		finfo[i].isstrict)		/* OR in new attrs here */
 	{
 		appendPQExpBuffer(q, " WITH (");
@@ -3692,11 +3708,18 @@ dumpOneFunc(Archive *fout, FuncInfo *finfo, int i,
 			exit_nicely();
 		}
 
+		if (finfo[i].isimplicit)
+		{
+			appendPQExpBuffer(q, "%s implicitCoercion", listSep);
+			listSep = listSepComma;
+		}
+
 		if (finfo[i].isstrict)
 		{
 			appendPQExpBuffer(q, "%s isStrict", listSep);
 			listSep = listSepComma;
 		}
+
 		appendPQExpBuffer(q, " )");
 	}
 
@@ -4012,7 +4035,12 @@ dumpAggs(Archive *fout, AggInfo *agginfo, int numAggs,
 
 		resetPQExpBuffer(q);
 		appendPQExpBuffer(q, "AGGREGATE %s", aggSig->data);
-		dumpComment(fout, q->data, agginfo[i].oid, "pg_aggregate", 0, NULL);
+		if (g_fout->remoteVersion < 70300)
+			dumpComment(fout, q->data, agginfo[i].oid, "pg_aggregate",
+						0, NULL);
+		else
+			dumpComment(fout, q->data, agginfo[i].oid, "pg_proc",
+						0, NULL);
 	}
 
 	destroyPQExpBuffer(q);
diff --git a/src/bin/pg_dump/pg_dump.h b/src/bin/pg_dump/pg_dump.h
index 87bef9ba950..dc67a2efbef 100644
--- a/src/bin/pg_dump/pg_dump.h
+++ b/src/bin/pg_dump/pg_dump.h
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_dump.h,v 1.80 2002/04/05 11:51:13 momjian Exp $
+ * $Id: pg_dump.h,v 1.81 2002/04/11 20:00:08 tgl Exp $
  *
  * Modifications - 6/12/96 - dave@bensoft.com - version 1.13.dhb.2
  *
@@ -73,6 +73,7 @@ typedef struct _funcInfo
 	char	   *probin;
 	char	   *usename;
 	char		provolatile;	/* Attr */
+	bool		isimplicit;		/* Attr */
 	bool		isstrict;		/* Attr */
 	int			dumped;			/* 1 if already dumped */
 } FuncInfo;
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index 68bbcfb8026..5c00ba87814 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/describe.c,v 1.48 2002/04/05 11:52:38 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/describe.c,v 1.49 2002/04/11 20:00:08 tgl Exp $
  */
 #include "postgres_fe.h"
 #include "describe.h"
@@ -43,22 +43,23 @@ describeAggregates(const char *name)
 
 	/*
 	 * There are two kinds of aggregates: ones that work on particular
-	 * types ones that work on all
+	 * types and ones that work on all (denoted by input type = 0)
 	 */
 	snprintf(buf, sizeof(buf),
-			 "SELECT a.aggname AS \"%s\",\n"
-			 "  CASE a.aggbasetype\n"
+			 "SELECT p.proname AS \"%s\",\n"
+			 "  CASE p.proargtypes[0]\n"
 			 "    WHEN 0 THEN CAST('%s' AS text)\n"
-			 "    ELSE format_type(a.aggbasetype, NULL)\n"
+			 "    ELSE format_type(p.proargtypes[0], NULL)\n"
 			 "  END AS \"%s\",\n"
-			 "  obj_description(a.oid, 'pg_aggregate') as \"%s\"\n"
-			 "FROM pg_aggregate a\n",
+			 "  obj_description(p.oid, 'pg_proc') as \"%s\"\n"
+			 "FROM pg_proc p\n"
+			 "WHERE p.proisagg\n",
 			 _("Name"), _("(all types)"),
 			 _("Data type"), _("Description"));
 
 	if (name)
 	{
-		strcat(buf, "WHERE a.aggname ~ '^");
+		strcat(buf, "  AND p.proname ~ '^");
 		strncat(buf, name, REGEXP_CUTOFF);
 		strcat(buf, "'\n");
 	}
@@ -112,12 +113,12 @@ describeFunctions(const char *name, bool verbose)
 	if (!verbose)
 		strcat(buf,
 			   "\nFROM pg_proc p\n"
-			   "WHERE p.prorettype <> 0 AND (pronargs = 0 OR oidvectortypes(p.proargtypes) <> '')\n");
+			   "WHERE p.prorettype <> 0 AND (pronargs = 0 OR oidvectortypes(p.proargtypes) <> '') AND NOT p.proisagg\n");
 	else
 		strcat(buf,
 			   "\nFROM pg_proc p,  pg_language l, pg_user u\n"
 			   "WHERE p.prolang = l.oid AND p.proowner = u.usesysid\n"
-			   "  AND p.prorettype <> 0 AND (pronargs = 0 OR oidvectortypes(p.proargtypes) <> '')\n");
+			   "  AND p.prorettype <> 0 AND (pronargs = 0 OR oidvectortypes(p.proargtypes) <> '') AND NOT p.proisagg\n");
 
 	if (name)
 	{
@@ -347,16 +348,17 @@ objectDescription(const char *object)
 			 "FROM (\n"
 
 	/* Aggregate descriptions */
-			 "  SELECT a.oid as oid, a.tableoid as tableoid,\n"
-	  "  CAST(a.aggname AS text) as name, CAST('%s' AS text) as object\n"
-			 "  FROM pg_aggregate a\n"
+			 "  SELECT p.oid as oid, p.tableoid as tableoid,\n"
+	  "  CAST(p.proname AS text) as name, CAST('%s' AS text) as object\n"
+			 "  FROM pg_proc p\n"
+		"  WHERE p.proisagg\n"
 
 	/* Function descriptions (except in/outs for datatypes) */
 			 "UNION ALL\n"
 			 "  SELECT p.oid as oid, p.tableoid as tableoid,\n"
 	  "  CAST(p.proname AS text) as name, CAST('%s' AS text) as object\n"
 			 "  FROM pg_proc p\n"
-		"  WHERE p.pronargs = 0 or oidvectortypes(p.proargtypes) <> ''\n"
+		"  WHERE (p.pronargs = 0 or oidvectortypes(p.proargtypes) <> '') AND NOT p.proisagg\n"
 
 	/* Operator descriptions (must get comment via associated function) */
 			 "UNION ALL\n"
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index f25a45ef622..ce75211bbef 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v 1.47 2002/04/01 03:34:27 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v 1.48 2002/04/11 20:00:09 tgl Exp $
  */
 
 /*----------------------------------------------------------------------
@@ -132,7 +132,7 @@ typedef struct
 } pgsql_thing_t;
 
 pgsql_thing_t words_after_create[] = {
-	{"AGGREGATE", "SELECT distinct aggname FROM pg_aggregate WHERE substr(aggname,1,%d)='%s'"},
+	{"AGGREGATE", "SELECT distinct proname FROM pg_proc WHERE proisagg AND substr(proname,1,%d)='%s'"},
 	{"DATABASE", "SELECT datname FROM pg_database WHERE substr(datname,1,%d)='%s'"},
 	{"FUNCTION", "SELECT distinct proname FROM pg_proc WHERE substr(proname,1,%d)='%s'"},
 	{"GROUP", "SELECT groname FROM pg_group WHERE substr(groname,1,%d)='%s'"},
diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h
index 9d89802c561..457bcd43fb9 100644
--- a/src/include/catalog/catversion.h
+++ b/src/include/catalog/catversion.h
@@ -37,7 +37,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: catversion.h,v 1.113 2002/04/05 00:31:32 tgl Exp $
+ * $Id: catversion.h,v 1.114 2002/04/11 20:00:10 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -53,6 +53,6 @@
  */
 
 /*							yyyymmddN */
-#define CATALOG_VERSION_NO	200204031
+#define CATALOG_VERSION_NO	200204101
 
 #endif
diff --git a/src/include/catalog/indexing.h b/src/include/catalog/indexing.h
index 6b97e882d90..6aa58ec563e 100644
--- a/src/include/catalog/indexing.h
+++ b/src/include/catalog/indexing.h
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: indexing.h,v 1.61 2002/04/05 00:31:32 tgl Exp $
+ * $Id: indexing.h,v 1.62 2002/04/11 20:00:10 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -20,7 +20,7 @@
 /*
  * Number of indices that exist for each system catalog
  */
-#define Num_pg_aggregate_indices	2
+#define Num_pg_aggregate_indices	1
 #define Num_pg_am_indices			2
 #define Num_pg_amop_indices			2
 #define Num_pg_amproc_indices		1
@@ -51,8 +51,7 @@
 #define AccessMethodOperatorIndex	"pg_amop_opc_opr_index"
 #define AccessMethodStrategyIndex	"pg_amop_opc_strategy_index"
 #define AccessMethodProcedureIndex	"pg_amproc_opc_procnum_index"
-#define AggregateNameTypeIndex		"pg_aggregate_name_type_index"
-#define AggregateOidIndex			"pg_aggregate_oid_index"
+#define AggregateFnoidIndex			"pg_aggregate_fnoid_index"
 #define AmNameIndex					"pg_am_name_index"
 #define AmOidIndex					"pg_am_oid_index"
 #define AttrDefaultIndex			"pg_attrdef_adrelid_adnum_index"
@@ -145,8 +144,7 @@ extern void CatalogIndexInsert(Relation *idescs, int nIndices,
  * that is just like in a normal 'create index' SQL command.
  */
 
-DECLARE_UNIQUE_INDEX(pg_aggregate_name_type_index on pg_aggregate using btree(aggname name_ops, aggbasetype oid_ops));
-DECLARE_UNIQUE_INDEX(pg_aggregate_oid_index on pg_aggregate using btree(oid oid_ops));
+DECLARE_UNIQUE_INDEX(pg_aggregate_fnoid_index on pg_aggregate using btree(aggfnoid oid_ops));
 DECLARE_UNIQUE_INDEX(pg_am_name_index on pg_am using btree(amname name_ops));
 DECLARE_UNIQUE_INDEX(pg_am_oid_index on pg_am using btree(oid oid_ops));
 DECLARE_UNIQUE_INDEX(pg_amop_opc_opr_index on pg_amop using btree(amopclaid oid_ops, amopopr oid_ops));
diff --git a/src/include/catalog/pg_aggregate.h b/src/include/catalog/pg_aggregate.h
index 3d44f4c4c0f..252895276e6 100644
--- a/src/include/catalog/pg_aggregate.h
+++ b/src/include/catalog/pg_aggregate.h
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_aggregate.h,v 1.37 2002/04/09 20:35:54 tgl Exp $
+ * $Id: pg_aggregate.h,v 1.38 2002/04/11 20:00:11 tgl Exp $
  *
  * NOTES
  *	  the genbki.sh script reads this file and generates .bki
@@ -31,25 +31,19 @@
  *
  *		cpp turns this into typedef struct FormData_pg_aggregate
  *
- *	aggname				name of the aggregate
- *	aggowner			owner (creator) of the aggregate
+ *	aggfnoid			pg_proc OID of the aggregate itself
  *	aggtransfn			transition function
  *	aggfinalfn			final function
- *	aggbasetype			type of data on which aggregate operates
  *	aggtranstype		type of aggregate's transition (state) data
- *	aggfinaltype		type of aggregate's final result
  *	agginitval			initial value for transition state
  * ----------------------------------------------------------------
  */
-CATALOG(pg_aggregate)
+CATALOG(pg_aggregate) BKI_WITHOUT_OIDS
 {
-	NameData	aggname;
-	int4		aggowner;
+	regproc		aggfnoid;
 	regproc		aggtransfn;
 	regproc		aggfinalfn;
-	Oid			aggbasetype;
 	Oid			aggtranstype;
-	Oid			aggfinaltype;
 	text		agginitval;		/* VARIABLE LENGTH FIELD */
 } FormData_pg_aggregate;
 
@@ -65,15 +59,12 @@ typedef FormData_pg_aggregate *Form_pg_aggregate;
  * ----------------
  */
 
-#define Natts_pg_aggregate				8
-#define Anum_pg_aggregate_aggname		1
-#define Anum_pg_aggregate_aggowner		2
-#define Anum_pg_aggregate_aggtransfn	3
-#define Anum_pg_aggregate_aggfinalfn	4
-#define Anum_pg_aggregate_aggbasetype	5
-#define Anum_pg_aggregate_aggtranstype	6
-#define Anum_pg_aggregate_aggfinaltype	7
-#define Anum_pg_aggregate_agginitval	8
+#define Natts_pg_aggregate				5
+#define Anum_pg_aggregate_aggfnoid		1
+#define Anum_pg_aggregate_aggtransfn	2
+#define Anum_pg_aggregate_aggfinalfn	3
+#define Anum_pg_aggregate_aggtranstype	4
+#define Anum_pg_aggregate_agginitval	5
 
 
 /* ----------------
@@ -81,76 +72,82 @@ typedef FormData_pg_aggregate *Form_pg_aggregate;
  * ---------------
  */
 
-DATA(insert OID = 0 ( avg	PGUID int8_accum	numeric_avg		20	 1231 1700 "{0,0,0}" ));
-DATA(insert OID = 0 ( avg	PGUID int4_avg_accum int8_avg		23	 1016 1700 "{0,0}" ));
-DATA(insert OID = 0 ( avg	PGUID int2_avg_accum int8_avg		21	 1016 1700 "{0,0}" ));
-DATA(insert OID = 0 ( avg	PGUID numeric_accum  numeric_avg	1700 1231 1700 "{0,0,0}" ));
-DATA(insert OID = 0 ( avg	PGUID float4_accum	float8_avg		700  1022 701 "{0,0,0}" ));
-DATA(insert OID = 0 ( avg	PGUID float8_accum	float8_avg		701  1022 701 "{0,0,0}" ));
-DATA(insert OID = 0 ( avg	PGUID interval_accum interval_avg	1186 1187 1186 "{0 second,0 second}" ));
-
-DATA(insert OID = 0 ( sum	PGUID int8_sum			-	20 1700 1700 _null_ ));
-DATA(insert OID = 0 ( sum	PGUID int4_sum			-	23	 20   20 _null_ ));
-DATA(insert OID = 0 ( sum	PGUID int2_sum			-	21	 20   20 _null_ ));
-DATA(insert OID = 0 ( sum	PGUID float4pl			-  700	700  700 _null_ ));
-DATA(insert OID = 0 ( sum	PGUID float8pl			-  701	701  701 _null_ ));
-DATA(insert OID = 0 ( sum	PGUID cash_pl			-  790	790  790 _null_ ));
-DATA(insert OID = 0 ( sum	PGUID interval_pl		- 1186 1186 1186 _null_ ));
-DATA(insert OID = 0 ( sum	PGUID numeric_add		- 1700 1700 1700 _null_ ));
-
-DATA(insert OID = 0 ( max	PGUID int8larger		-	20	 20   20 _null_ ));
-DATA(insert OID = 0 ( max	PGUID int4larger		-	23	 23   23 _null_ ));
-DATA(insert OID = 0 ( max	PGUID int2larger		-	21	 21   21 _null_ ));
-DATA(insert OID = 0 ( max	PGUID oidlarger			-	26	 26   26 _null_ ));
-DATA(insert OID = 0 ( max	PGUID float4larger		-  700	700  700 _null_ ));
-DATA(insert OID = 0 ( max	PGUID float8larger		-  701	701  701 _null_ ));
-DATA(insert OID = 0 ( max	PGUID int4larger		-  702	702  702 _null_ ));
-DATA(insert OID = 0 ( max	PGUID date_larger		- 1082 1082 1082 _null_ ));
-DATA(insert OID = 0 ( max	PGUID time_larger		- 1083 1083 1083 _null_ ));
-DATA(insert OID = 0 ( max	PGUID timetz_larger		- 1266 1266 1266 _null_ ));
-DATA(insert OID = 0 ( max	PGUID cashlarger		-  790	790  790 _null_ ));
-DATA(insert OID = 0 ( max	PGUID timestamp_larger	- 1114 1114 1114 _null_ ));
-DATA(insert OID = 0 ( max	PGUID timestamptz_larger - 1184 1184 1184 _null_ ));
-DATA(insert OID = 0 ( max	PGUID interval_larger	- 1186 1186 1186 _null_ ));
-DATA(insert OID = 0 ( max	PGUID text_larger		-	25	 25   25 _null_ ));
-DATA(insert OID = 0 ( max	PGUID numeric_larger	- 1700 1700 1700 _null_ ));
-
-DATA(insert OID = 0 ( min	PGUID int8smaller		-	20	 20   20 _null_ ));
-DATA(insert OID = 0 ( min	PGUID int4smaller		-	23	 23   23 _null_ ));
-DATA(insert OID = 0 ( min	PGUID int2smaller		-	21	 21   21 _null_ ));
-DATA(insert OID = 0 ( min	PGUID oidsmaller		-	26	 26   26 _null_ ));
-DATA(insert OID = 0 ( min	PGUID float4smaller		-  700	700  700 _null_ ));
-DATA(insert OID = 0 ( min	PGUID float8smaller		-  701	701  701 _null_ ));
-DATA(insert OID = 0 ( min	PGUID int4smaller		-  702	702  702 _null_ ));
-DATA(insert OID = 0 ( min	PGUID date_smaller		- 1082 1082 1082 _null_ ));
-DATA(insert OID = 0 ( min	PGUID time_smaller		- 1083 1083 1083 _null_ ));
-DATA(insert OID = 0 ( min	PGUID timetz_smaller	- 1266 1266 1266 _null_ ));
-DATA(insert OID = 0 ( min	PGUID cashsmaller		-  790	790  790 _null_ ));
-DATA(insert OID = 0 ( min	PGUID timestamp_smaller - 1114 1114 1114 _null_ ));
-DATA(insert OID = 0 ( min	PGUID timestamptz_smaller - 1184 1184 1184 _null_ ));
-DATA(insert OID = 0 ( min	PGUID interval_smaller	- 1186 1186 1186 _null_ ));
-DATA(insert OID = 0 ( min	PGUID text_smaller		-	25	 25   25 _null_ ));
-DATA(insert OID = 0 ( min	PGUID numeric_smaller	- 1700 1700 1700 _null_ ));
+/* avg */
+DATA(insert ( 2100	int8_accum		numeric_avg		1231	"{0,0,0}" ));
+DATA(insert ( 2101	int4_avg_accum	int8_avg		1016	"{0,0}" ));
+DATA(insert ( 2102	int2_avg_accum	int8_avg		1016	"{0,0}" ));
+DATA(insert ( 2103	numeric_accum	numeric_avg		1231	"{0,0,0}" ));
+DATA(insert ( 2104	float4_accum	float8_avg		1022	"{0,0,0}" ));
+DATA(insert ( 2105	float8_accum	float8_avg		1022	"{0,0,0}" ));
+DATA(insert ( 2106	interval_accum	interval_avg	1187	"{0 second,0 second}" ));
+
+/* sum */
+DATA(insert ( 2107	int8_sum		-				1700	_null_ ));
+DATA(insert ( 2108	int4_sum		-				20		_null_ ));
+DATA(insert ( 2109	int2_sum		-				20		_null_ ));
+DATA(insert ( 2110	float4pl		-				700		_null_ ));
+DATA(insert ( 2111	float8pl		-				701		_null_ ));
+DATA(insert ( 2112	cash_pl			-				790		_null_ ));
+DATA(insert ( 2113	interval_pl		-				1186	_null_ ));
+DATA(insert ( 2114	numeric_add		-				1700	_null_ ));
+
+/* max */
+DATA(insert ( 2115	int8larger		-				20		_null_ ));
+DATA(insert ( 2116	int4larger		-				23		_null_ ));
+DATA(insert ( 2117	int2larger		-				21		_null_ ));
+DATA(insert ( 2118	oidlarger		-				26		_null_ ));
+DATA(insert ( 2119	float4larger	-				700		_null_ ));
+DATA(insert ( 2120	float8larger	-				701		_null_ ));
+DATA(insert ( 2121	int4larger		-				702		_null_ ));
+DATA(insert ( 2122	date_larger		-				1082	_null_ ));
+DATA(insert ( 2123	time_larger		-				1083	_null_ ));
+DATA(insert ( 2124	timetz_larger	-				1266	_null_ ));
+DATA(insert ( 2125	cashlarger		-				790		_null_ ));
+DATA(insert ( 2126	timestamp_larger	-			1114	_null_ ));
+DATA(insert ( 2127	timestamptz_larger	-			1184	_null_ ));
+DATA(insert ( 2128	interval_larger	-				1186	_null_ ));
+DATA(insert ( 2129	text_larger		-				25		_null_ ));
+DATA(insert ( 2130	numeric_larger	-				1700	_null_ ));
+
+/* min */
+DATA(insert ( 2131	int8smaller		-				20		_null_ ));
+DATA(insert ( 2132	int4smaller		-				23		_null_ ));
+DATA(insert ( 2133	int2smaller		-				21		_null_ ));
+DATA(insert ( 2134	oidsmaller		-				26		_null_ ));
+DATA(insert ( 2135	float4smaller	-				700		_null_ ));
+DATA(insert ( 2136	float8smaller	-				701		_null_ ));
+DATA(insert ( 2137	int4smaller		-				702		_null_ ));
+DATA(insert ( 2138	date_smaller	-				1082	_null_ ));
+DATA(insert ( 2139	time_smaller	-				1083	_null_ ));
+DATA(insert ( 2140	timetz_smaller	-				1266	_null_ ));
+DATA(insert ( 2141	cashsmaller		-				790		_null_ ));
+DATA(insert ( 2142	timestamp_smaller	-			1114	_null_ ));
+DATA(insert ( 2143	timestamptz_smaller	-			1184	_null_ ));
+DATA(insert ( 2144	interval_smaller	-			1186	_null_ ));
+DATA(insert ( 2145	text_smaller	-				25		_null_ ));
+DATA(insert ( 2146	numeric_smaller	-				1700	_null_ ));
 
 /*
  * Using int8inc for count() is cheating a little, since it really only
  * takes 1 parameter not 2, but nodeAgg.c won't complain ...
  */
-DATA(insert OID = 0 ( count PGUID int8inc			- 0 20 20 0 ));
-
-DATA(insert OID = 0 ( variance	PGUID int8_accum	numeric_variance	20	 1231 1700 "{0,0,0}" ));
-DATA(insert OID = 0 ( variance	PGUID int4_accum	numeric_variance	23	 1231 1700 "{0,0,0}" ));
-DATA(insert OID = 0 ( variance	PGUID int2_accum	numeric_variance	21	 1231 1700 "{0,0,0}" ));
-DATA(insert OID = 0 ( variance	PGUID float4_accum	float8_variance		700  1022 701 "{0,0,0}" ));
-DATA(insert OID = 0 ( variance	PGUID float8_accum	float8_variance		701  1022 701 "{0,0,0}" ));
-DATA(insert OID = 0 ( variance	PGUID numeric_accum  numeric_variance	1700 1231 1700 "{0,0,0}" ));
-
-DATA(insert OID = 0 ( stddev	PGUID int8_accum	numeric_stddev		20	 1231 1700 "{0,0,0}" ));
-DATA(insert OID = 0 ( stddev	PGUID int4_accum	numeric_stddev		23	 1231 1700 "{0,0,0}" ));
-DATA(insert OID = 0 ( stddev	PGUID int2_accum	numeric_stddev		21	 1231 1700 "{0,0,0}" ));
-DATA(insert OID = 0 ( stddev	PGUID float4_accum	float8_stddev		700  1022 701 "{0,0,0}" ));
-DATA(insert OID = 0 ( stddev	PGUID float8_accum	float8_stddev		701  1022 701 "{0,0,0}" ));
-DATA(insert OID = 0 ( stddev	PGUID numeric_accum  numeric_stddev		1700 1231 1700 "{0,0,0}" ));
+DATA(insert ( 2147	int8inc		-					 20		0 ));
+
+/* variance */
+DATA(insert ( 2148	int8_accum	numeric_variance	1231	"{0,0,0}" ));
+DATA(insert ( 2149	int4_accum	numeric_variance	1231	"{0,0,0}" ));
+DATA(insert ( 2150	int2_accum	numeric_variance	1231	"{0,0,0}" ));
+DATA(insert ( 2151	float4_accum	float8_variance	1022	"{0,0,0}" ));
+DATA(insert ( 2152	float8_accum	float8_variance	1022	"{0,0,0}" ));
+DATA(insert ( 2153	numeric_accum	numeric_variance	1231	"{0,0,0}" ));
+
+/* stddev */
+DATA(insert ( 2154	int8_accum	numeric_stddev		1231	"{0,0,0}" ));
+DATA(insert ( 2155	int4_accum	numeric_stddev		1231	"{0,0,0}" ));
+DATA(insert ( 2156	int2_accum	numeric_stddev		1231	"{0,0,0}" ));
+DATA(insert ( 2157	float4_accum	float8_stddev	1022	"{0,0,0}" ));
+DATA(insert ( 2158	float8_accum	float8_stddev	1022	"{0,0,0}" ));
+DATA(insert ( 2159	numeric_accum	numeric_stddev	1231	"{0,0,0}" ));
 
 /*
  * prototypes for functions in pg_aggregate.c
@@ -163,7 +160,4 @@ extern void AggregateCreate(const char *aggName,
 							Oid aggTransType,
 							const char *agginitval);
 
-extern Datum AggNameGetInitVal(char *aggName, Oid basetype,
-				  bool *isNull);
-
 #endif   /* PG_AGGREGATE_H */
diff --git a/src/include/catalog/pg_attribute.h b/src/include/catalog/pg_attribute.h
index b65c3a54e15..b39ab3acd57 100644
--- a/src/include/catalog/pg_attribute.h
+++ b/src/include/catalog/pg_attribute.h
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_attribute.h,v 1.89 2002/04/05 00:31:33 tgl Exp $
+ * $Id: pg_attribute.h,v 1.90 2002/04/11 20:00:11 tgl Exp $
  *
  * NOTES
  *	  the genbki.sh script reads this file and generates .bki
@@ -298,41 +298,43 @@ DATA(insert ( 1262 tableoid			26 0  4  -7 0 -1 -1 t p f i f f));
 { 1255, {"pronamespace"},		26, 0,	4,	2, 0, -1, -1, true, 'p', false, 'i', false, false }, \
 { 1255, {"proowner"},			23, 0,	4,	3, 0, -1, -1, true, 'p', false, 'i', false, false }, \
 { 1255, {"prolang"},			26, 0,	4,	4, 0, -1, -1, true, 'p', false, 'i', false, false }, \
-{ 1255, {"proisinh"},			16, 0,	1,	5, 0, -1, -1, true, 'p', false, 'c', false, false }, \
+{ 1255, {"proisagg"},			16, 0,	1,	5, 0, -1, -1, true, 'p', false, 'c', false, false }, \
 { 1255, {"proistrusted"},		16, 0,	1,	6, 0, -1, -1, true, 'p', false, 'c', false, false }, \
-{ 1255, {"proisstrict"},		16, 0,	1,	7, 0, -1, -1, true, 'p', false, 'c', false, false }, \
-{ 1255, {"provolatile"},		18, 0,	1,	8, 0, -1, -1, true, 'p', false, 'c', false, false }, \
-{ 1255, {"pronargs"},			21, 0,	2,	9, 0, -1, -1, true, 'p', false, 's', false, false }, \
-{ 1255, {"proretset"},			16, 0,	1, 10, 0, -1, -1, true, 'p', false, 'c', false, false }, \
-{ 1255, {"prorettype"},			26, 0,	4, 11, 0, -1, -1, true, 'p', false, 'i', false, false }, \
-{ 1255, {"proargtypes"},		30, 0, INDEX_MAX_KEYS*4, 12, 0, -1, -1, false, 'p', false, 'i', false, false }, \
-{ 1255, {"probyte_pct"},		23, 0,	4, 13, 0, -1, -1, true, 'p', false, 'i', false, false }, \
-{ 1255, {"properbyte_cpu"},		23, 0,	4, 14, 0, -1, -1, true, 'p', false, 'i', false, false }, \
-{ 1255, {"propercall_cpu"},		23, 0,	4, 15, 0, -1, -1, true, 'p', false, 'i', false, false }, \
-{ 1255, {"prooutin_ratio"},		23, 0,	4, 16, 0, -1, -1, true, 'p', false, 'i', false, false }, \
-{ 1255, {"prosrc"},				25, 0, -1, 17, 0, -1, -1, false, 'x', false, 'i', false, false }, \
-{ 1255, {"probin"},				17, 0, -1, 18, 0, -1, -1, false, 'x', false, 'i', false, false }, \
-{ 1255, {"proacl"},			  1034, 0, -1, 19, 0, -1, -1, false, 'x', false, 'i', false, false }
+{ 1255, {"proimplicit"},		16, 0,	1,	7, 0, -1, -1, true, 'p', false, 'c', false, false }, \
+{ 1255, {"proisstrict"},		16, 0,	1,	8, 0, -1, -1, true, 'p', false, 'c', false, false }, \
+{ 1255, {"proretset"},			16, 0,	1,  9, 0, -1, -1, true, 'p', false, 'c', false, false }, \
+{ 1255, {"provolatile"},		18, 0,	1, 10, 0, -1, -1, true, 'p', false, 'c', false, false }, \
+{ 1255, {"pronargs"},			21, 0,	2, 11, 0, -1, -1, true, 'p', false, 's', false, false }, \
+{ 1255, {"prorettype"},			26, 0,	4, 12, 0, -1, -1, true, 'p', false, 'i', false, false }, \
+{ 1255, {"proargtypes"},		30, 0, INDEX_MAX_KEYS*4, 13, 0, -1, -1, false, 'p', false, 'i', false, false }, \
+{ 1255, {"probyte_pct"},		23, 0,	4, 14, 0, -1, -1, true, 'p', false, 'i', false, false }, \
+{ 1255, {"properbyte_cpu"},		23, 0,	4, 15, 0, -1, -1, true, 'p', false, 'i', false, false }, \
+{ 1255, {"propercall_cpu"},		23, 0,	4, 16, 0, -1, -1, true, 'p', false, 'i', false, false }, \
+{ 1255, {"prooutin_ratio"},		23, 0,	4, 17, 0, -1, -1, true, 'p', false, 'i', false, false }, \
+{ 1255, {"prosrc"},				25, 0, -1, 18, 0, -1, -1, false, 'x', false, 'i', false, false }, \
+{ 1255, {"probin"},				17, 0, -1, 19, 0, -1, -1, false, 'x', false, 'i', false, false }, \
+{ 1255, {"proacl"},			  1034, 0, -1, 20, 0, -1, -1, false, 'x', false, 'i', false, false }
 
 DATA(insert ( 1255 proname			19 DEFAULT_ATTSTATTARGET NAMEDATALEN   1 0 -1 -1 f p f i f f));
 DATA(insert ( 1255 pronamespace		26 0  4   2 0 -1 -1 t p f i f f));
 DATA(insert ( 1255 proowner			23 0  4   3 0 -1 -1 t p f i f f));
 DATA(insert ( 1255 prolang			26 0  4   4 0 -1 -1 t p f i f f));
-DATA(insert ( 1255 proisinh			16 0  1   5 0 -1 -1 t p f c f f));
+DATA(insert ( 1255 proisagg			16 0  1   5 0 -1 -1 t p f c f f));
 DATA(insert ( 1255 proistrusted		16 0  1   6 0 -1 -1 t p f c f f));
-DATA(insert ( 1255 proisstrict		16 0  1   7 0 -1 -1 t p f c f f));
-DATA(insert ( 1255 provolatile		18 0  1   8 0 -1 -1 t p f c f f));
-DATA(insert ( 1255 pronargs			21 0  2   9 0 -1 -1 t p f s f f));
-DATA(insert ( 1255 proretset		16 0  1  10 0 -1 -1 t p f c f f));
-DATA(insert ( 1255 prorettype		26 0  4  11 0 -1 -1 t p f i f f));
-DATA(insert ( 1255 proargtypes		30 0 INDEX_MAX_KEYS*4 12 0 -1 -1 f p f i f f));
-DATA(insert ( 1255 probyte_pct		23 0  4  13 0 -1 -1 t p f i f f));
-DATA(insert ( 1255 properbyte_cpu	23 0  4  14 0 -1 -1 t p f i f f));
-DATA(insert ( 1255 propercall_cpu	23 0  4  15 0 -1 -1 t p f i f f));
-DATA(insert ( 1255 prooutin_ratio	23 0  4  16 0 -1 -1 t p f i f f));
-DATA(insert ( 1255 prosrc			25 0 -1  17 0 -1 -1 f x f i f f));
-DATA(insert ( 1255 probin			17 0 -1  18 0 -1 -1 f x f i f f));
-DATA(insert ( 1255 proacl		  1034 0 -1  19 0 -1 -1 f x f i f f));
+DATA(insert ( 1255 proimplicit		16 0  1   7 0 -1 -1 t p f c f f));
+DATA(insert ( 1255 proisstrict		16 0  1   8 0 -1 -1 t p f c f f));
+DATA(insert ( 1255 proretset		16 0  1   9 0 -1 -1 t p f c f f));
+DATA(insert ( 1255 provolatile		18 0  1  10 0 -1 -1 t p f c f f));
+DATA(insert ( 1255 pronargs			21 0  2  11 0 -1 -1 t p f s f f));
+DATA(insert ( 1255 prorettype		26 0  4  12 0 -1 -1 t p f i f f));
+DATA(insert ( 1255 proargtypes		30 0 INDEX_MAX_KEYS*4 13 0 -1 -1 f p f i f f));
+DATA(insert ( 1255 probyte_pct		23 0  4  14 0 -1 -1 t p f i f f));
+DATA(insert ( 1255 properbyte_cpu	23 0  4  15 0 -1 -1 t p f i f f));
+DATA(insert ( 1255 propercall_cpu	23 0  4  16 0 -1 -1 t p f i f f));
+DATA(insert ( 1255 prooutin_ratio	23 0  4  17 0 -1 -1 t p f i f f));
+DATA(insert ( 1255 prosrc			25 0 -1  18 0 -1 -1 f x f i f f));
+DATA(insert ( 1255 probin			17 0 -1  19 0 -1 -1 f x f i f f));
+DATA(insert ( 1255 proacl		  1034 0 -1  20 0 -1 -1 f x f i f f));
 DATA(insert ( 1255 ctid				27 0  6  -1 0 -1 -1 f p f i f f));
 DATA(insert ( 1255 oid				26 0  4  -2 0 -1 -1 t p f i f f));
 DATA(insert ( 1255 xmin				28 0  4  -3 0 -1 -1 t p f i f f));
diff --git a/src/include/catalog/pg_class.h b/src/include/catalog/pg_class.h
index b17197a96da..980c6252f65 100644
--- a/src/include/catalog/pg_class.h
+++ b/src/include/catalog/pg_class.h
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_class.h,v 1.65 2002/04/05 00:31:33 tgl Exp $
+ * $Id: pg_class.h,v 1.66 2002/04/11 20:00:11 tgl Exp $
  *
  * NOTES
  *	  the genbki.sh script reads this file and generates .bki
@@ -138,7 +138,7 @@ DATA(insert OID = 1247 (  pg_type		PGNSP 71 PGUID 0 1247 0 0 0 0 f f r 23 0 0 0
 DESCR("");
 DATA(insert OID = 1249 (  pg_attribute	PGNSP 75 PGUID 0 1249 0 0 0 0 f f r 15 0 0 0 0 0 f f f f _null_ ));
 DESCR("");
-DATA(insert OID = 1255 (  pg_proc		PGNSP 81 PGUID 0 1255 0 0 0 0 f f r 19 0 0 0 0 0 t f f f _null_ ));
+DATA(insert OID = 1255 (  pg_proc		PGNSP 81 PGUID 0 1255 0 0 0 0 f f r 20 0 0 0 0 0 t f f f _null_ ));
 DESCR("");
 DATA(insert OID = 1259 (  pg_class		PGNSP 83 PGUID 0 1259 0 0 0 0 f f r 24 0 0 0 0 0 t f f f _null_ ));
 DESCR("");
diff --git a/src/include/catalog/pg_operator.h b/src/include/catalog/pg_operator.h
index 00ba73cd762..8fcb3b9ed56 100644
--- a/src/include/catalog/pg_operator.h
+++ b/src/include/catalog/pg_operator.h
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_operator.h,v 1.100 2002/03/29 19:06:19 tgl Exp $
+ * $Id: pg_operator.h,v 1.101 2002/04/11 20:00:11 tgl Exp $
  *
  * NOTES
  *	  the genbki.sh script reads this file and generates .bki
@@ -289,10 +289,10 @@ DATA(insert OID = 612 (  ">="	   PGUID 0 b t f  26  26  16 611 609  0  0 oidge s
 #define MAX_OIDCMP 612			/* used by cache code */
 
 DATA(insert OID = 644 (  "<>"	   PGUID 0 b t f  30  30  16 644 649   0   0 oidvectorne neqsel neqjoinsel ));
-DATA(insert OID = 645 (  "<"	   PGUID 0 b t f  30  30  16 646 648   0   0 oidvectorlt - - ));
-DATA(insert OID = 646 (  ">"	   PGUID 0 b t f  30  30  16 645 647   0   0 oidvectorgt - - ));
-DATA(insert OID = 647 (  "<="	   PGUID 0 b t f  30  30  16 648 646   0   0 oidvectorle - - ));
-DATA(insert OID = 648 (  ">="	   PGUID 0 b t f  30  30  16 647 645   0   0 oidvectorge - - ));
+DATA(insert OID = 645 (  "<"	   PGUID 0 b t f  30  30  16 646 648   0   0 oidvectorlt scalarltsel scalarltjoinsel ));
+DATA(insert OID = 646 (  ">"	   PGUID 0 b t f  30  30  16 645 647   0   0 oidvectorgt scalargtsel scalargtjoinsel ));
+DATA(insert OID = 647 (  "<="	   PGUID 0 b t f  30  30  16 648 646   0   0 oidvectorle scalarltsel scalarltjoinsel ));
+DATA(insert OID = 648 (  ">="	   PGUID 0 b t f  30  30  16 647 645   0   0 oidvectorge scalargtsel scalargtjoinsel ));
 DATA(insert OID = 649 (  "="	   PGUID 0 b t t  30  30  16 649 644 645 645 oidvectoreq eqsel eqjoinsel ));
 
 DATA(insert OID = 613 (  "<->"	   PGUID 0 b t f 600 628 701   0   0  0  0 dist_pl - - ));
diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h
index ba310f3384b..a7f77f1f7df 100644
--- a/src/include/catalog/pg_proc.h
+++ b/src/include/catalog/pg_proc.h
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_proc.h,v 1.226 2002/04/05 00:31:34 tgl Exp $
+ * $Id: pg_proc.h,v 1.227 2002/04/11 20:00:12 tgl Exp $
  *
  * NOTES
  *	  The script catalog/genbki.sh reads this file and generates .bki
@@ -43,12 +43,13 @@ CATALOG(pg_proc) BOOTSTRAP
 	Oid			pronamespace;	/* OID of namespace containing this proc */
 	int4		proowner;		/* proc owner */
 	Oid			prolang;		/* OID of pg_language entry */
-	bool		proisinh;		/* is inherited?  (currently unused) */
+	bool		proisagg;		/* is it an aggregate? */
 	bool		proistrusted;	/* is trusted?  (currently unused) */
+	bool		proimplicit;	/* can be invoked as implicit coercion? */
 	bool		proisstrict;	/* strict with respect to NULLs? */
+	bool		proretset;		/* returns a set? */
 	char		provolatile;	/* see PROVOLATILE_ categories below */
 	int2		pronargs;		/* number of arguments */
-	bool		proretset;		/* returns a set? */
 	Oid			prorettype;		/* OID of result type */
 	oidvector	proargtypes;	/* OIDs of argument types */
 	int4		probyte_pct;	/* currently unused */
@@ -71,26 +72,27 @@ typedef FormData_pg_proc *Form_pg_proc;
  *		compiler constants for pg_proc
  * ----------------
  */
-#define Natts_pg_proc					19
+#define Natts_pg_proc					20
 #define Anum_pg_proc_proname			1
 #define Anum_pg_proc_pronamespace		2
 #define Anum_pg_proc_proowner			3
 #define Anum_pg_proc_prolang			4
-#define Anum_pg_proc_proisinh			5
+#define Anum_pg_proc_proisagg			5
 #define Anum_pg_proc_proistrusted		6
-#define Anum_pg_proc_proisstrict		7
-#define Anum_pg_proc_provolatile		8
-#define Anum_pg_proc_pronargs			9
-#define Anum_pg_proc_proretset			10
-#define Anum_pg_proc_prorettype			11
-#define Anum_pg_proc_proargtypes		12
-#define Anum_pg_proc_probyte_pct		13
-#define Anum_pg_proc_properbyte_cpu		14
-#define Anum_pg_proc_propercall_cpu		15
-#define Anum_pg_proc_prooutin_ratio		16
-#define Anum_pg_proc_prosrc				17
-#define Anum_pg_proc_probin				18
-#define Anum_pg_proc_proacl				19
+#define Anum_pg_proc_proimplicit		7
+#define Anum_pg_proc_proisstrict		8
+#define Anum_pg_proc_proretset			9
+#define Anum_pg_proc_provolatile		10
+#define Anum_pg_proc_pronargs			11
+#define Anum_pg_proc_prorettype			12
+#define Anum_pg_proc_proargtypes		13
+#define Anum_pg_proc_probyte_pct		14
+#define Anum_pg_proc_properbyte_cpu		15
+#define Anum_pg_proc_propercall_cpu		16
+#define Anum_pg_proc_prooutin_ratio		17
+#define Anum_pg_proc_prosrc				18
+#define Anum_pg_proc_probin				19
+#define Anum_pg_proc_proacl				20
 
 /* ----------------
  *		initial contents of pg_proc
@@ -101,2778 +103,2818 @@ typedef FormData_pg_proc *Form_pg_proc;
 
 /* OIDS 1 - 99 */
 
-DATA(insert OID = 1242 (  boolin		   PGNSP PGUID 12 f t t i 1 f 16 "0" 100 0 0	100  boolin - _null_ ));
+DATA(insert OID = 1242 (  boolin		   PGNSP PGUID 12 f t f t f i 1 16 "0" 100 0 0	100  boolin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1243 (  boolout		   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	boolout - _null_ ));
+DATA(insert OID = 1243 (  boolout		   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	boolout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1244 (  byteain		   PGNSP PGUID 12 f t t i 1 f 17 "0" 100 0 0 100	byteain - _null_ ));
+DATA(insert OID = 1244 (  byteain		   PGNSP PGUID 12 f t f t f i 1 17 "0" 100 0 0 100	byteain - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  31 (  byteaout		   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	byteaout - _null_ ));
+DATA(insert OID =  31 (  byteaout		   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	byteaout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1245 (  charin		   PGNSP PGUID 12 f t t i 1 f 18 "0" 100 0 0 100	charin - _null_ ));
+DATA(insert OID = 1245 (  charin		   PGNSP PGUID 12 f t f t f i 1 18 "0" 100 0 0 100	charin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  33 (  charout		   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	charout - _null_ ));
+DATA(insert OID =  33 (  charout		   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	charout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  34 (  namein			   PGNSP PGUID 12 f t t i 1 f 19 "0" 100 0 0 100	namein - _null_ ));
+DATA(insert OID =  34 (  namein			   PGNSP PGUID 12 f t f t f i 1 19 "0" 100 0 0 100	namein - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  35 (  nameout		   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	nameout - _null_ ));
+DATA(insert OID =  35 (  nameout		   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	nameout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  38 (  int2in			   PGNSP PGUID 12 f t t i 1 f 21 "0" 100 0 0 100	int2in - _null_ ));
+DATA(insert OID =  38 (  int2in			   PGNSP PGUID 12 f t f t f i 1 21 "0" 100 0 0 100	int2in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  39 (  int2out		   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	int2out - _null_ ));
+DATA(insert OID =  39 (  int2out		   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	int2out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  40 (  int2vectorin	   PGNSP PGUID 12 f t t i 1 f 22 "0" 100 0 0 100	int2vectorin - _null_ ));
+DATA(insert OID =  40 (  int2vectorin	   PGNSP PGUID 12 f t f t f i 1 22 "0" 100 0 0 100	int2vectorin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  41 (  int2vectorout	   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	int2vectorout - _null_ ));
+DATA(insert OID =  41 (  int2vectorout	   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	int2vectorout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  42 (  int4in			   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	int4in - _null_ ));
+DATA(insert OID =  42 (  int4in			   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	int4in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  43 (  int4out		   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	int4out - _null_ ));
+DATA(insert OID =  43 (  int4out		   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	int4out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  44 (  regprocin		   PGNSP PGUID 12 f t t s 1 f 24 "0" 100 0 0 100	regprocin - _null_ ));
+DATA(insert OID =  44 (  regprocin		   PGNSP PGUID 12 f t f t f s 1 24 "0" 100 0 0 100	regprocin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  45 (  regprocout		   PGNSP PGUID 12 f t t s 1 f 23 "0" 100 0 0 100	regprocout - _null_ ));
+DATA(insert OID =  45 (  regprocout		   PGNSP PGUID 12 f t f t f s 1 23 "0" 100 0 0 100	regprocout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  46 (  textin			   PGNSP PGUID 12 f t t i 1 f 25 "0" 100 0 0 100	textin - _null_ ));
+DATA(insert OID =  46 (  textin			   PGNSP PGUID 12 f t f t f i 1 25 "0" 100 0 0 100	textin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  47 (  textout		   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	textout - _null_ ));
+DATA(insert OID =  47 (  textout		   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	textout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  48 (  tidin			   PGNSP PGUID 12 f t t i 1 f 27 "0" 100 0 0 100	tidin - _null_ ));
+DATA(insert OID =  48 (  tidin			   PGNSP PGUID 12 f t f t f i 1 27 "0" 100 0 0 100	tidin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  49 (  tidout			   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	tidout - _null_ ));
+DATA(insert OID =  49 (  tidout			   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	tidout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  50 (  xidin			   PGNSP PGUID 12 f t t i 1 f 28 "0" 100 0 0 100	xidin - _null_ ));
+DATA(insert OID =  50 (  xidin			   PGNSP PGUID 12 f t f t f i 1 28 "0" 100 0 0 100	xidin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  51 (  xidout			   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	xidout - _null_ ));
+DATA(insert OID =  51 (  xidout			   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	xidout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  52 (  cidin			   PGNSP PGUID 12 f t t i 1 f 29 "0" 100 0 0 100	cidin - _null_ ));
+DATA(insert OID =  52 (  cidin			   PGNSP PGUID 12 f t f t f i 1 29 "0" 100 0 0 100	cidin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  53 (  cidout			   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	cidout - _null_ ));
+DATA(insert OID =  53 (  cidout			   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	cidout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  54 (  oidvectorin	   PGNSP PGUID 12 f t t i 1 f 30 "0" 100 0 0 100	oidvectorin - _null_ ));
+DATA(insert OID =  54 (  oidvectorin	   PGNSP PGUID 12 f t f t f i 1 30 "0" 100 0 0 100	oidvectorin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  55 (  oidvectorout	   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	oidvectorout - _null_ ));
+DATA(insert OID =  55 (  oidvectorout	   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	oidvectorout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  56 (  boollt			   PGNSP PGUID 12 f t t i 2 f 16 "16 16" 100 0 0 100	boollt - _null_ ));
+DATA(insert OID =  56 (  boollt			   PGNSP PGUID 12 f t f t f i 2 16 "16 16" 100 0 0 100	boollt - _null_ ));
 DESCR("less-than");
-DATA(insert OID =  57 (  boolgt			   PGNSP PGUID 12 f t t i 2 f 16 "16 16" 100 0 0 100	boolgt - _null_ ));
+DATA(insert OID =  57 (  boolgt			   PGNSP PGUID 12 f t f t f i 2 16 "16 16" 100 0 0 100	boolgt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID =  60 (  booleq			   PGNSP PGUID 12 f t t i 2 f 16 "16 16" 100 0 0 100	booleq - _null_ ));
+DATA(insert OID =  60 (  booleq			   PGNSP PGUID 12 f t f t f i 2 16 "16 16" 100 0 0 100	booleq - _null_ ));
 DESCR("equal");
-DATA(insert OID =  61 (  chareq			   PGNSP PGUID 12 f t t i 2 f 16 "18 18" 100 0 0 100	chareq - _null_ ));
+DATA(insert OID =  61 (  chareq			   PGNSP PGUID 12 f t f t f i 2 16 "18 18" 100 0 0 100	chareq - _null_ ));
 DESCR("equal");
-DATA(insert OID =  62 (  nameeq			   PGNSP PGUID 12 f t t i 2 f 16 "19 19" 100 0 0 100	nameeq - _null_ ));
+DATA(insert OID =  62 (  nameeq			   PGNSP PGUID 12 f t f t f i 2 16 "19 19" 100 0 0 100	nameeq - _null_ ));
 DESCR("equal");
-DATA(insert OID =  63 (  int2eq			   PGNSP PGUID 12 f t t i 2 f 16 "21 21" 100 0 0 100	int2eq - _null_ ));
+DATA(insert OID =  63 (  int2eq			   PGNSP PGUID 12 f t f t f i 2 16 "21 21" 100 0 0 100	int2eq - _null_ ));
 DESCR("equal");
-DATA(insert OID =  64 (  int2lt			   PGNSP PGUID 12 f t t i 2 f 16 "21 21" 100 0 0 100	int2lt - _null_ ));
+DATA(insert OID =  64 (  int2lt			   PGNSP PGUID 12 f t f t f i 2 16 "21 21" 100 0 0 100	int2lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID =  65 (  int4eq			   PGNSP PGUID 12 f t t i 2 f 16 "23 23" 100 0 0 100	int4eq - _null_ ));
+DATA(insert OID =  65 (  int4eq			   PGNSP PGUID 12 f t f t f i 2 16 "23 23" 100 0 0 100	int4eq - _null_ ));
 DESCR("equal");
-DATA(insert OID =  66 (  int4lt			   PGNSP PGUID 12 f t t i 2 f 16 "23 23" 100 0 0 100	int4lt - _null_ ));
+DATA(insert OID =  66 (  int4lt			   PGNSP PGUID 12 f t f t f i 2 16 "23 23" 100 0 0 100	int4lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID =  67 (  texteq			   PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100	texteq - _null_ ));
+DATA(insert OID =  67 (  texteq			   PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100	texteq - _null_ ));
 DESCR("equal");
-DATA(insert OID =  68 (  xideq			   PGNSP PGUID 12 f t t i 2 f 16 "28 28" 100 0 0 100	xideq - _null_ ));
+DATA(insert OID =  68 (  xideq			   PGNSP PGUID 12 f t f t f i 2 16 "28 28" 100 0 0 100	xideq - _null_ ));
 DESCR("equal");
-DATA(insert OID =  69 (  cideq			   PGNSP PGUID 12 f t t i 2 f 16 "29 29" 100 0 0 100	cideq - _null_ ));
+DATA(insert OID =  69 (  cideq			   PGNSP PGUID 12 f t f t f i 2 16 "29 29" 100 0 0 100	cideq - _null_ ));
 DESCR("equal");
-DATA(insert OID =  70 (  charne			   PGNSP PGUID 12 f t t i 2 f 16 "18 18" 100 0 0 100	charne - _null_ ));
+DATA(insert OID =  70 (  charne			   PGNSP PGUID 12 f t f t f i 2 16 "18 18" 100 0 0 100	charne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1246 (  charlt		   PGNSP PGUID 12 f t t i 2 f 16 "18 18" 100 0 0 100	charlt - _null_ ));
+DATA(insert OID = 1246 (  charlt		   PGNSP PGUID 12 f t f t f i 2 16 "18 18" 100 0 0 100	charlt - _null_ ));
 DESCR("less-than");
-DATA(insert OID =  72 (  charle			   PGNSP PGUID 12 f t t i 2 f 16 "18 18" 100 0 0 100	charle - _null_ ));
+DATA(insert OID =  72 (  charle			   PGNSP PGUID 12 f t f t f i 2 16 "18 18" 100 0 0 100	charle - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID =  73 (  chargt			   PGNSP PGUID 12 f t t i 2 f 16 "18 18" 100 0 0 100	chargt - _null_ ));
+DATA(insert OID =  73 (  chargt			   PGNSP PGUID 12 f t f t f i 2 16 "18 18" 100 0 0 100	chargt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID =  74 (  charge			   PGNSP PGUID 12 f t t i 2 f 16 "18 18" 100 0 0 100	charge - _null_ ));
+DATA(insert OID =  74 (  charge			   PGNSP PGUID 12 f t f t f i 2 16 "18 18" 100 0 0 100	charge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1248 (  charpl		   PGNSP PGUID 12 f t t i 2 f 18 "18 18" 100 0 0 100	charpl - _null_ ));
+DATA(insert OID = 1248 (  charpl		   PGNSP PGUID 12 f t f t f i 2 18 "18 18" 100 0 0 100	charpl - _null_ ));
 DESCR("add");
-DATA(insert OID = 1250 (  charmi		   PGNSP PGUID 12 f t t i 2 f 18 "18 18" 100 0 0 100	charmi - _null_ ));
+DATA(insert OID = 1250 (  charmi		   PGNSP PGUID 12 f t f t f i 2 18 "18 18" 100 0 0 100	charmi - _null_ ));
 DESCR("subtract");
-DATA(insert OID =  77 (  charmul		   PGNSP PGUID 12 f t t i 2 f 18 "18 18" 100 0 0 100	charmul - _null_ ));
+DATA(insert OID =  77 (  charmul		   PGNSP PGUID 12 f t f t f i 2 18 "18 18" 100 0 0 100	charmul - _null_ ));
 DESCR("multiply");
-DATA(insert OID =  78 (  chardiv		   PGNSP PGUID 12 f t t i 2 f 18 "18 18" 100 0 0 100	chardiv - _null_ ));
+DATA(insert OID =  78 (  chardiv		   PGNSP PGUID 12 f t f t f i 2 18 "18 18" 100 0 0 100	chardiv - _null_ ));
 DESCR("divide");
 
-DATA(insert OID =  79 (  nameregexeq	   PGNSP PGUID 12 f t t i 2 f 16 "19 25" 100 0 0 100	nameregexeq - _null_ ));
+DATA(insert OID =  79 (  nameregexeq	   PGNSP PGUID 12 f t f t f i 2 16 "19 25" 100 0 0 100	nameregexeq - _null_ ));
 DESCR("matches regex., case-sensitive");
-DATA(insert OID = 1252 (  nameregexne	   PGNSP PGUID 12 f t t i 2 f 16 "19 25" 100 0 0 100	nameregexne - _null_ ));
+DATA(insert OID = 1252 (  nameregexne	   PGNSP PGUID 12 f t f t f i 2 16 "19 25" 100 0 0 100	nameregexne - _null_ ));
 DESCR("does not match regex., case-sensitive");
-DATA(insert OID = 1254 (  textregexeq	   PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100	textregexeq - _null_ ));
+DATA(insert OID = 1254 (  textregexeq	   PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100	textregexeq - _null_ ));
 DESCR("matches regex., case-sensitive");
-DATA(insert OID = 1256 (  textregexne	   PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100	textregexne - _null_ ));
+DATA(insert OID = 1256 (  textregexne	   PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100	textregexne - _null_ ));
 DESCR("does not match regex., case-sensitive");
-DATA(insert OID = 1257 (  textlen		   PGNSP PGUID 12 f t t i 1 f 23 "25" 100 0 0 100  textlen - _null_ ));
+DATA(insert OID = 1257 (  textlen		   PGNSP PGUID 12 f t f t f i 1 23 "25" 100 0 0 100  textlen - _null_ ));
 DESCR("length");
-DATA(insert OID = 1258 (  textcat		   PGNSP PGUID 12 f t t i 2 f 25 "25 25" 100 0 0 100	textcat - _null_ ));
+DATA(insert OID = 1258 (  textcat		   PGNSP PGUID 12 f t f t f i 2 25 "25 25" 100 0 0 100	textcat - _null_ ));
 DESCR("concatenate");
 
-DATA(insert OID =  84 (  boolne			   PGNSP PGUID 12 f t t i 2 f 16 "16 16" 100 0 0 100	boolne - _null_ ));
+DATA(insert OID =  84 (  boolne			   PGNSP PGUID 12 f t f t f i 2 16 "16 16" 100 0 0 100	boolne - _null_ ));
 DESCR("not equal");
-DATA(insert OID =  89 (  version		   PGNSP PGUID 12 f t t s 0 f 25 "" 100 0 0 100 pgsql_version - _null_ ));
+DATA(insert OID =  89 (  version		   PGNSP PGUID 12 f t f t f s 0 25 "" 100 0 0 100 pgsql_version - _null_ ));
 DESCR("PostgreSQL version string");
 
 /* OIDS 100 - 199 */
 
-DATA(insert OID = 100 (  int8fac		   PGNSP PGUID 12 f t t i 1 f 20 "20" 100 0 0 100  int8fac - _null_ ));
+DATA(insert OID = 100 (  int8fac		   PGNSP PGUID 12 f t f t f i 1 20 "20" 100 0 0 100  int8fac - _null_ ));
 DESCR("factorial");
-DATA(insert OID = 101 (  eqsel			   PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100  eqsel - _null_ ));
+DATA(insert OID = 101 (  eqsel			   PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100  eqsel - _null_ ));
 DESCR("restriction selectivity of = and related operators");
-DATA(insert OID = 102 (  neqsel			   PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100  neqsel - _null_ ));
+DATA(insert OID = 102 (  neqsel			   PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100  neqsel - _null_ ));
 DESCR("restriction selectivity of <> and related operators");
-DATA(insert OID = 103 (  scalarltsel	   PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100  scalarltsel - _null_ ));
+DATA(insert OID = 103 (  scalarltsel	   PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100  scalarltsel - _null_ ));
 DESCR("restriction selectivity of < and related operators on scalar datatypes");
-DATA(insert OID = 104 (  scalargtsel	   PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100  scalargtsel - _null_ ));
+DATA(insert OID = 104 (  scalargtsel	   PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100  scalargtsel - _null_ ));
 DESCR("restriction selectivity of > and related operators on scalar datatypes");
-DATA(insert OID = 105 (  eqjoinsel		   PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100  eqjoinsel - _null_ ));
+DATA(insert OID = 105 (  eqjoinsel		   PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100  eqjoinsel - _null_ ));
 DESCR("join selectivity of = and related operators");
-DATA(insert OID = 106 (  neqjoinsel		   PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100  neqjoinsel - _null_ ));
+DATA(insert OID = 106 (  neqjoinsel		   PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100  neqjoinsel - _null_ ));
 DESCR("join selectivity of <> and related operators");
-DATA(insert OID = 107 (  scalarltjoinsel   PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100  scalarltjoinsel - _null_ ));
+DATA(insert OID = 107 (  scalarltjoinsel   PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100  scalarltjoinsel - _null_ ));
 DESCR("join selectivity of < and related operators on scalar datatypes");
-DATA(insert OID = 108 (  scalargtjoinsel   PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100  scalargtjoinsel - _null_ ));
+DATA(insert OID = 108 (  scalargtjoinsel   PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100  scalargtjoinsel - _null_ ));
 DESCR("join selectivity of > and related operators on scalar datatypes");
 
-DATA(insert OID = 112 (  text			   PGNSP PGUID 12 f t t i 1 f  25 "23" 100 0 0 100  int4_text - _null_ ));
+DATA(insert OID = 112 (  text			   PGNSP PGUID 12 f t t t f i 1  25 "23" 100 0 0 100  int4_text - _null_ ));
 DESCR("convert int4 to text");
-DATA(insert OID = 113 (  text			   PGNSP PGUID 12 f t t i 1 f  25 "21" 100 0 0 100  int2_text - _null_ ));
+DATA(insert OID = 113 (  text			   PGNSP PGUID 12 f t t t f i 1  25 "21" 100 0 0 100  int2_text - _null_ ));
 DESCR("convert int2 to text");
-DATA(insert OID = 114 (  text			   PGNSP PGUID 12 f t t i 1 f  25 "26" 100 0 0 100  oid_text - _null_ ));
+DATA(insert OID = 114 (  text			   PGNSP PGUID 12 f t f t f i 1  25 "26" 100 0 0 100  oid_text - _null_ ));
 DESCR("convert oid to text");
 
-DATA(insert OID = 115 (  box_above		   PGNSP PGUID 12 f t t i 2 f  16 "603 603" 100 0 0 100  box_above - _null_ ));
+DATA(insert OID = 115 (  box_above		   PGNSP PGUID 12 f t f t f i 2  16 "603 603" 100 0 0 100  box_above - _null_ ));
 DESCR("is above");
-DATA(insert OID = 116 (  box_below		   PGNSP PGUID 12 f t t i 2 f  16 "603 603" 100 0 0 100  box_below - _null_ ));
+DATA(insert OID = 116 (  box_below		   PGNSP PGUID 12 f t f t f i 2  16 "603 603" 100 0 0 100  box_below - _null_ ));
 DESCR("is below");
 
-DATA(insert OID = 117 (  point_in		   PGNSP PGUID 12 f t t i 1 f 600 "0" 100 0 0 100  point_in - _null_ ));
+DATA(insert OID = 117 (  point_in		   PGNSP PGUID 12 f t f t f i 1 600 "0" 100 0 0 100  point_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 118 (  point_out		   PGNSP PGUID 12 f t t i 1 f 23	"600" 100 0 0 100  point_out - _null_ ));
+DATA(insert OID = 118 (  point_out		   PGNSP PGUID 12 f t f t f i 1 23	"600" 100 0 0 100  point_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 119 (  lseg_in		   PGNSP PGUID 12 f t t i 1 f 601 "0" 100 0 0 100  lseg_in - _null_ ));
+DATA(insert OID = 119 (  lseg_in		   PGNSP PGUID 12 f t f t f i 1 601 "0" 100 0 0 100  lseg_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 120 (  lseg_out		   PGNSP PGUID 12 f t t i 1 f 23	"0" 100 0 0 100  lseg_out - _null_ ));
+DATA(insert OID = 120 (  lseg_out		   PGNSP PGUID 12 f t f t f i 1 23	"0" 100 0 0 100  lseg_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 121 (  path_in		   PGNSP PGUID 12 f t t i 1 f 602 "0" 100 0 0 100  path_in - _null_ ));
+DATA(insert OID = 121 (  path_in		   PGNSP PGUID 12 f t f t f i 1 602 "0" 100 0 0 100  path_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 122 (  path_out		   PGNSP PGUID 12 f t t i 1 f 23	"0" 100 0 0 100  path_out - _null_ ));
+DATA(insert OID = 122 (  path_out		   PGNSP PGUID 12 f t f t f i 1 23	"0" 100 0 0 100  path_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 123 (  box_in			   PGNSP PGUID 12 f t t i 1 f 603 "0" 100 0 0 100  box_in - _null_ ));
+DATA(insert OID = 123 (  box_in			   PGNSP PGUID 12 f t f t f i 1 603 "0" 100 0 0 100  box_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 124 (  box_out		   PGNSP PGUID 12 f t t i 1 f 23	"0" 100 0 0 100  box_out - _null_ ));
+DATA(insert OID = 124 (  box_out		   PGNSP PGUID 12 f t f t f i 1 23	"0" 100 0 0 100  box_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 125 (  box_overlap	   PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100  box_overlap - _null_ ));
+DATA(insert OID = 125 (  box_overlap	   PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100  box_overlap - _null_ ));
 DESCR("overlaps");
-DATA(insert OID = 126 (  box_ge			   PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100  box_ge - _null_ ));
+DATA(insert OID = 126 (  box_ge			   PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100  box_ge - _null_ ));
 DESCR("greater-than-or-equal by area");
-DATA(insert OID = 127 (  box_gt			   PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100  box_gt - _null_ ));
+DATA(insert OID = 127 (  box_gt			   PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100  box_gt - _null_ ));
 DESCR("greater-than by area");
-DATA(insert OID = 128 (  box_eq			   PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100  box_eq - _null_ ));
+DATA(insert OID = 128 (  box_eq			   PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100  box_eq - _null_ ));
 DESCR("equal by area");
-DATA(insert OID = 129 (  box_lt			   PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100  box_lt - _null_ ));
+DATA(insert OID = 129 (  box_lt			   PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100  box_lt - _null_ ));
 DESCR("less-than by area");
-DATA(insert OID = 130 (  box_le			   PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100  box_le - _null_ ));
+DATA(insert OID = 130 (  box_le			   PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100  box_le - _null_ ));
 DESCR("less-than-or-equal by area");
-DATA(insert OID = 131 (  point_above	   PGNSP PGUID 12 f t t i 2 f 16 "600 600" 100 0 0 100  point_above - _null_ ));
+DATA(insert OID = 131 (  point_above	   PGNSP PGUID 12 f t f t f i 2 16 "600 600" 100 0 0 100  point_above - _null_ ));
 DESCR("is above");
-DATA(insert OID = 132 (  point_left		   PGNSP PGUID 12 f t t i 2 f 16 "600 600" 100 0 0 100  point_left - _null_ ));
+DATA(insert OID = 132 (  point_left		   PGNSP PGUID 12 f t f t f i 2 16 "600 600" 100 0 0 100  point_left - _null_ ));
 DESCR("is left of");
-DATA(insert OID = 133 (  point_right	   PGNSP PGUID 12 f t t i 2 f 16 "600 600" 100 0 0 100  point_right - _null_ ));
+DATA(insert OID = 133 (  point_right	   PGNSP PGUID 12 f t f t f i 2 16 "600 600" 100 0 0 100  point_right - _null_ ));
 DESCR("is right of");
-DATA(insert OID = 134 (  point_below	   PGNSP PGUID 12 f t t i 2 f 16 "600 600" 100 0 0 100  point_below - _null_ ));
+DATA(insert OID = 134 (  point_below	   PGNSP PGUID 12 f t f t f i 2 16 "600 600" 100 0 0 100  point_below - _null_ ));
 DESCR("is below");
-DATA(insert OID = 135 (  point_eq		   PGNSP PGUID 12 f t t i 2 f 16 "600 600" 100 0 0 100  point_eq - _null_ ));
+DATA(insert OID = 135 (  point_eq		   PGNSP PGUID 12 f t f t f i 2 16 "600 600" 100 0 0 100  point_eq - _null_ ));
 DESCR("same as");
-DATA(insert OID = 136 (  on_pb			   PGNSP PGUID 12 f t t i 2 f 16 "600 603" 100 0 0 100  on_pb - _null_ ));
+DATA(insert OID = 136 (  on_pb			   PGNSP PGUID 12 f t f t f i 2 16 "600 603" 100 0 0 100  on_pb - _null_ ));
 DESCR("point is inside");
-DATA(insert OID = 137 (  on_ppath		   PGNSP PGUID 12 f t t i 2 f 16 "600 602" 100 0 0 100  on_ppath - _null_ ));
+DATA(insert OID = 137 (  on_ppath		   PGNSP PGUID 12 f t f t f i 2 16 "600 602" 100 0 0 100  on_ppath - _null_ ));
 DESCR("contained in");
-DATA(insert OID = 138 (  box_center		   PGNSP PGUID 12 f t t i 1 f 600 "603" 100 0 0 100  box_center - _null_ ));
+DATA(insert OID = 138 (  box_center		   PGNSP PGUID 12 f t f t f i 1 600 "603" 100 0 0 100  box_center - _null_ ));
 DESCR("center of");
-DATA(insert OID = 139 (  areasel		   PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100  areasel - _null_ ));
+DATA(insert OID = 139 (  areasel		   PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100  areasel - _null_ ));
 DESCR("restriction selectivity for area-comparison operators");
-DATA(insert OID = 140 (  areajoinsel	   PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100  areajoinsel - _null_ ));
+DATA(insert OID = 140 (  areajoinsel	   PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100  areajoinsel - _null_ ));
 DESCR("join selectivity for area-comparison operators");
-DATA(insert OID = 141 (  int4mul		   PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100	int4mul - _null_ ));
+DATA(insert OID = 141 (  int4mul		   PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100	int4mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 142 (  int4fac		   PGNSP PGUID 12 f t t i 1 f 23 "23" 100 0 0 100  int4fac - _null_ ));
+DATA(insert OID = 142 (  int4fac		   PGNSP PGUID 12 f t f t f i 1 23 "23" 100 0 0 100  int4fac - _null_ ));
 DESCR("factorial");
-DATA(insert OID = 144 (  int4ne			   PGNSP PGUID 12 f t t i 2 f 16 "23 23" 100 0 0 100	int4ne - _null_ ));
+DATA(insert OID = 144 (  int4ne			   PGNSP PGUID 12 f t f t f i 2 16 "23 23" 100 0 0 100	int4ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 145 (  int2ne			   PGNSP PGUID 12 f t t i 2 f 16 "21 21" 100 0 0 100	int2ne - _null_ ));
+DATA(insert OID = 145 (  int2ne			   PGNSP PGUID 12 f t f t f i 2 16 "21 21" 100 0 0 100	int2ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 146 (  int2gt			   PGNSP PGUID 12 f t t i 2 f 16 "21 21" 100 0 0 100	int2gt - _null_ ));
+DATA(insert OID = 146 (  int2gt			   PGNSP PGUID 12 f t f t f i 2 16 "21 21" 100 0 0 100	int2gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 147 (  int4gt			   PGNSP PGUID 12 f t t i 2 f 16 "23 23" 100 0 0 100	int4gt - _null_ ));
+DATA(insert OID = 147 (  int4gt			   PGNSP PGUID 12 f t f t f i 2 16 "23 23" 100 0 0 100	int4gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 148 (  int2le			   PGNSP PGUID 12 f t t i 2 f 16 "21 21" 100 0 0 100	int2le - _null_ ));
+DATA(insert OID = 148 (  int2le			   PGNSP PGUID 12 f t f t f i 2 16 "21 21" 100 0 0 100	int2le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 149 (  int4le			   PGNSP PGUID 12 f t t i 2 f 16 "23 23" 100 0 0 100	int4le - _null_ ));
+DATA(insert OID = 149 (  int4le			   PGNSP PGUID 12 f t f t f i 2 16 "23 23" 100 0 0 100	int4le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 150 (  int4ge			   PGNSP PGUID 12 f t t i 2 f 16 "23 23" 100 0 0 100	int4ge - _null_ ));
+DATA(insert OID = 150 (  int4ge			   PGNSP PGUID 12 f t f t f i 2 16 "23 23" 100 0 0 100	int4ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 151 (  int2ge			   PGNSP PGUID 12 f t t i 2 f 16 "21 21" 100 0 0 100	int2ge - _null_ ));
+DATA(insert OID = 151 (  int2ge			   PGNSP PGUID 12 f t f t f i 2 16 "21 21" 100 0 0 100	int2ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 152 (  int2mul		   PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100	int2mul - _null_ ));
+DATA(insert OID = 152 (  int2mul		   PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100	int2mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 153 (  int2div		   PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100	int2div - _null_ ));
+DATA(insert OID = 153 (  int2div		   PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100	int2div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 154 (  int4div		   PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100	int4div - _null_ ));
+DATA(insert OID = 154 (  int4div		   PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100	int4div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 155 (  int2mod		   PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100	int2mod - _null_ ));
+DATA(insert OID = 155 (  int2mod		   PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100	int2mod - _null_ ));
 DESCR("modulus");
-DATA(insert OID = 156 (  int4mod		   PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100	int4mod - _null_ ));
+DATA(insert OID = 156 (  int4mod		   PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100	int4mod - _null_ ));
 DESCR("modulus");
-DATA(insert OID = 157 (  textne			   PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100	textne - _null_ ));
+DATA(insert OID = 157 (  textne			   PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100	textne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 158 (  int24eq		   PGNSP PGUID 12 f t t i 2 f 16 "21 23" 100 0 0 100	int24eq - _null_ ));
+DATA(insert OID = 158 (  int24eq		   PGNSP PGUID 12 f t f t f i 2 16 "21 23" 100 0 0 100	int24eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 159 (  int42eq		   PGNSP PGUID 12 f t t i 2 f 16 "23 21" 100 0 0 100	int42eq - _null_ ));
+DATA(insert OID = 159 (  int42eq		   PGNSP PGUID 12 f t f t f i 2 16 "23 21" 100 0 0 100	int42eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 160 (  int24lt		   PGNSP PGUID 12 f t t i 2 f 16 "21 23" 100 0 0 100	int24lt - _null_ ));
+DATA(insert OID = 160 (  int24lt		   PGNSP PGUID 12 f t f t f i 2 16 "21 23" 100 0 0 100	int24lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 161 (  int42lt		   PGNSP PGUID 12 f t t i 2 f 16 "23 21" 100 0 0 100	int42lt - _null_ ));
+DATA(insert OID = 161 (  int42lt		   PGNSP PGUID 12 f t f t f i 2 16 "23 21" 100 0 0 100	int42lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 162 (  int24gt		   PGNSP PGUID 12 f t t i 2 f 16 "21 23" 100 0 0 100	int24gt - _null_ ));
+DATA(insert OID = 162 (  int24gt		   PGNSP PGUID 12 f t f t f i 2 16 "21 23" 100 0 0 100	int24gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 163 (  int42gt		   PGNSP PGUID 12 f t t i 2 f 16 "23 21" 100 0 0 100	int42gt - _null_ ));
+DATA(insert OID = 163 (  int42gt		   PGNSP PGUID 12 f t f t f i 2 16 "23 21" 100 0 0 100	int42gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 164 (  int24ne		   PGNSP PGUID 12 f t t i 2 f 16 "21 23" 100 0 0 100	int24ne - _null_ ));
+DATA(insert OID = 164 (  int24ne		   PGNSP PGUID 12 f t f t f i 2 16 "21 23" 100 0 0 100	int24ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 165 (  int42ne		   PGNSP PGUID 12 f t t i 2 f 16 "23 21" 100 0 0 100	int42ne - _null_ ));
+DATA(insert OID = 165 (  int42ne		   PGNSP PGUID 12 f t f t f i 2 16 "23 21" 100 0 0 100	int42ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 166 (  int24le		   PGNSP PGUID 12 f t t i 2 f 16 "21 23" 100 0 0 100	int24le - _null_ ));
+DATA(insert OID = 166 (  int24le		   PGNSP PGUID 12 f t f t f i 2 16 "21 23" 100 0 0 100	int24le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 167 (  int42le		   PGNSP PGUID 12 f t t i 2 f 16 "23 21" 100 0 0 100	int42le - _null_ ));
+DATA(insert OID = 167 (  int42le		   PGNSP PGUID 12 f t f t f i 2 16 "23 21" 100 0 0 100	int42le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 168 (  int24ge		   PGNSP PGUID 12 f t t i 2 f 16 "21 23" 100 0 0 100	int24ge - _null_ ));
+DATA(insert OID = 168 (  int24ge		   PGNSP PGUID 12 f t f t f i 2 16 "21 23" 100 0 0 100	int24ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 169 (  int42ge		   PGNSP PGUID 12 f t t i 2 f 16 "23 21" 100 0 0 100	int42ge - _null_ ));
+DATA(insert OID = 169 (  int42ge		   PGNSP PGUID 12 f t f t f i 2 16 "23 21" 100 0 0 100	int42ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 170 (  int24mul		   PGNSP PGUID 12 f t t i 2 f 23 "21 23" 100 0 0 100	int24mul - _null_ ));
+DATA(insert OID = 170 (  int24mul		   PGNSP PGUID 12 f t f t f i 2 23 "21 23" 100 0 0 100	int24mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 171 (  int42mul		   PGNSP PGUID 12 f t t i 2 f 23 "23 21" 100 0 0 100	int42mul - _null_ ));
+DATA(insert OID = 171 (  int42mul		   PGNSP PGUID 12 f t f t f i 2 23 "23 21" 100 0 0 100	int42mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 172 (  int24div		   PGNSP PGUID 12 f t t i 2 f 23 "21 23" 100 0 0 100	int24div - _null_ ));
+DATA(insert OID = 172 (  int24div		   PGNSP PGUID 12 f t f t f i 2 23 "21 23" 100 0 0 100	int24div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 173 (  int42div		   PGNSP PGUID 12 f t t i 2 f 23 "23 21" 100 0 0 100	int42div - _null_ ));
+DATA(insert OID = 173 (  int42div		   PGNSP PGUID 12 f t f t f i 2 23 "23 21" 100 0 0 100	int42div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 174 (  int24mod		   PGNSP PGUID 12 f t t i 2 f 23 "21 23" 100 0 0 100	int24mod - _null_ ));
+DATA(insert OID = 174 (  int24mod		   PGNSP PGUID 12 f t f t f i 2 23 "21 23" 100 0 0 100	int24mod - _null_ ));
 DESCR("modulus");
-DATA(insert OID = 175 (  int42mod		   PGNSP PGUID 12 f t t i 2 f 23 "23 21" 100 0 0 100	int42mod - _null_ ));
+DATA(insert OID = 175 (  int42mod		   PGNSP PGUID 12 f t f t f i 2 23 "23 21" 100 0 0 100	int42mod - _null_ ));
 DESCR("modulus");
-DATA(insert OID = 176 (  int2pl			   PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100	int2pl - _null_ ));
+DATA(insert OID = 176 (  int2pl			   PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100	int2pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 177 (  int4pl			   PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100	int4pl - _null_ ));
+DATA(insert OID = 177 (  int4pl			   PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100	int4pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 178 (  int24pl		   PGNSP PGUID 12 f t t i 2 f 23 "21 23" 100 0 0 100	int24pl - _null_ ));
+DATA(insert OID = 178 (  int24pl		   PGNSP PGUID 12 f t f t f i 2 23 "21 23" 100 0 0 100	int24pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 179 (  int42pl		   PGNSP PGUID 12 f t t i 2 f 23 "23 21" 100 0 0 100	int42pl - _null_ ));
+DATA(insert OID = 179 (  int42pl		   PGNSP PGUID 12 f t f t f i 2 23 "23 21" 100 0 0 100	int42pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 180 (  int2mi			   PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100	int2mi - _null_ ));
+DATA(insert OID = 180 (  int2mi			   PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100	int2mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 181 (  int4mi			   PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100	int4mi - _null_ ));
+DATA(insert OID = 181 (  int4mi			   PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100	int4mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 182 (  int24mi		   PGNSP PGUID 12 f t t i 2 f 23 "21 23" 100 0 0 100	int24mi - _null_ ));
+DATA(insert OID = 182 (  int24mi		   PGNSP PGUID 12 f t f t f i 2 23 "21 23" 100 0 0 100	int24mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 183 (  int42mi		   PGNSP PGUID 12 f t t i 2 f 23 "23 21" 100 0 0 100	int42mi - _null_ ));
+DATA(insert OID = 183 (  int42mi		   PGNSP PGUID 12 f t f t f i 2 23 "23 21" 100 0 0 100	int42mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 184 (  oideq			   PGNSP PGUID 12 f t t i 2 f 16 "26 26" 100 0 0 100	oideq - _null_ ));
+DATA(insert OID = 184 (  oideq			   PGNSP PGUID 12 f t f t f i 2 16 "26 26" 100 0 0 100	oideq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 185 (  oidne			   PGNSP PGUID 12 f t t i 2 f 16 "26 26" 100 0 0 100	oidne - _null_ ));
+DATA(insert OID = 185 (  oidne			   PGNSP PGUID 12 f t f t f i 2 16 "26 26" 100 0 0 100	oidne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 186 (  box_same		   PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100  box_same - _null_ ));
+DATA(insert OID = 186 (  box_same		   PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100  box_same - _null_ ));
 DESCR("same as");
-DATA(insert OID = 187 (  box_contain	   PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100  box_contain - _null_ ));
+DATA(insert OID = 187 (  box_contain	   PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100  box_contain - _null_ ));
 DESCR("contains");
-DATA(insert OID = 188 (  box_left		   PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100  box_left - _null_ ));
+DATA(insert OID = 188 (  box_left		   PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100  box_left - _null_ ));
 DESCR("is left of");
-DATA(insert OID = 189 (  box_overleft	   PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100  box_overleft - _null_ ));
+DATA(insert OID = 189 (  box_overleft	   PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100  box_overleft - _null_ ));
 DESCR("overlaps, but does not extend to right of");
-DATA(insert OID = 190 (  box_overright	   PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100  box_overright - _null_ ));
+DATA(insert OID = 190 (  box_overright	   PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100  box_overright - _null_ ));
 DESCR("overlaps, but does not extend to left of");
-DATA(insert OID = 191 (  box_right		   PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100  box_right - _null_ ));
+DATA(insert OID = 191 (  box_right		   PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100  box_right - _null_ ));
 DESCR("is right of");
-DATA(insert OID = 192 (  box_contained	   PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100  box_contained - _null_ ));
+DATA(insert OID = 192 (  box_contained	   PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100  box_contained - _null_ ));
 DESCR("contained in");
-DATA(insert OID = 193 (  rt_box_union	   PGNSP PGUID 12 f t t i 2 f 603 "603 603" 100 0 0 100  rt_box_union - _null_ ));
+DATA(insert OID = 193 (  rt_box_union	   PGNSP PGUID 12 f t f t f i 2 603 "603 603" 100 0 0 100  rt_box_union - _null_ ));
 DESCR("r-tree");
-DATA(insert OID = 194 (  rt_box_inter	   PGNSP PGUID 12 f t t i 2 f 603 "603 603" 100 0 0 100  rt_box_inter - _null_ ));
+DATA(insert OID = 194 (  rt_box_inter	   PGNSP PGUID 12 f t f t f i 2 603 "603 603" 100 0 0 100  rt_box_inter - _null_ ));
 DESCR("r-tree");
-DATA(insert OID = 195 (  rt_box_size	   PGNSP PGUID 12 f t t i 2 f 700 "603 700" 100 0 0 100  rt_box_size - _null_ ));
+DATA(insert OID = 195 (  rt_box_size	   PGNSP PGUID 12 f t f t f i 2 700 "603 700" 100 0 0 100  rt_box_size - _null_ ));
 DESCR("r-tree");
-DATA(insert OID = 196 (  rt_bigbox_size    PGNSP PGUID 12 f t t i 2 f 700 "603 700" 100 0 0 100  rt_bigbox_size - _null_ ));
+DATA(insert OID = 196 (  rt_bigbox_size    PGNSP PGUID 12 f t f t f i 2 700 "603 700" 100 0 0 100  rt_bigbox_size - _null_ ));
 DESCR("r-tree");
-DATA(insert OID = 197 (  rt_poly_union	   PGNSP PGUID 12 f t t i 2 f 604 "604 604" 100 0 0 100  rt_poly_union - _null_ ));
+DATA(insert OID = 197 (  rt_poly_union	   PGNSP PGUID 12 f t f t f i 2 604 "604 604" 100 0 0 100  rt_poly_union - _null_ ));
 DESCR("r-tree");
-DATA(insert OID = 198 (  rt_poly_inter	   PGNSP PGUID 12 f t t i 2 f 604 "604 604" 100 0 0 100  rt_poly_inter - _null_ ));
+DATA(insert OID = 198 (  rt_poly_inter	   PGNSP PGUID 12 f t f t f i 2 604 "604 604" 100 0 0 100  rt_poly_inter - _null_ ));
 DESCR("r-tree");
-DATA(insert OID = 199 (  rt_poly_size	   PGNSP PGUID 12 f t t i 2 f 23 "604 700" 100 0 0 100  rt_poly_size - _null_ ));
+DATA(insert OID = 199 (  rt_poly_size	   PGNSP PGUID 12 f t f t f i 2 23 "604 700" 100 0 0 100  rt_poly_size - _null_ ));
 DESCR("r-tree");
 
 /* OIDS 200 - 299 */
 
-DATA(insert OID = 200 (  float4in		   PGNSP PGUID 12 f t t i 1 f 700 "0" 100 0 0 100  float4in - _null_ ));
+DATA(insert OID = 200 (  float4in		   PGNSP PGUID 12 f t f t f i 1 700 "0" 100 0 0 100  float4in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 201 (  float4out		   PGNSP PGUID 12 f t t i 1 f 23	"700" 100 0 0 100  float4out - _null_ ));
+DATA(insert OID = 201 (  float4out		   PGNSP PGUID 12 f t f t f i 1 23	"700" 100 0 0 100  float4out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 202 (  float4mul		   PGNSP PGUID 12 f t t i 2 f 700 "700 700" 100 0 0 100  float4mul - _null_ ));
+DATA(insert OID = 202 (  float4mul		   PGNSP PGUID 12 f t f t f i 2 700 "700 700" 100 0 0 100  float4mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 203 (  float4div		   PGNSP PGUID 12 f t t i 2 f 700 "700 700" 100 0 0 100  float4div - _null_ ));
+DATA(insert OID = 203 (  float4div		   PGNSP PGUID 12 f t f t f i 2 700 "700 700" 100 0 0 100  float4div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 204 (  float4pl		   PGNSP PGUID 12 f t t i 2 f 700 "700 700" 100 0 0 100  float4pl - _null_ ));
+DATA(insert OID = 204 (  float4pl		   PGNSP PGUID 12 f t f t f i 2 700 "700 700" 100 0 0 100  float4pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 205 (  float4mi		   PGNSP PGUID 12 f t t i 2 f 700 "700 700" 100 0 0 100  float4mi - _null_ ));
+DATA(insert OID = 205 (  float4mi		   PGNSP PGUID 12 f t f t f i 2 700 "700 700" 100 0 0 100  float4mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 206 (  float4um		   PGNSP PGUID 12 f t t i 1 f 700 "700" 100 0 0 100  float4um - _null_ ));
+DATA(insert OID = 206 (  float4um		   PGNSP PGUID 12 f t f t f i 1 700 "700" 100 0 0 100  float4um - _null_ ));
 DESCR("negate");
-DATA(insert OID = 207 (  float4abs		   PGNSP PGUID 12 f t t i 1 f 700 "700" 100 0 0 100  float4abs - _null_ ));
+DATA(insert OID = 207 (  float4abs		   PGNSP PGUID 12 f t f t f i 1 700 "700" 100 0 0 100  float4abs - _null_ ));
 DESCR("absolute value");
-DATA(insert OID = 208 (  float4_accum	   PGNSP PGUID 12 f t t i 2 f 1022 "1022 700" 100 0 0 100  float4_accum - _null_ ));
+DATA(insert OID = 208 (  float4_accum	   PGNSP PGUID 12 f t f t f i 2 1022 "1022 700" 100 0 0 100  float4_accum - _null_ ));
 DESCR("aggregate transition function");
-DATA(insert OID = 209 (  float4larger	   PGNSP PGUID 12 f t t i 2 f 700 "700 700" 100 0 0 100  float4larger - _null_ ));
+DATA(insert OID = 209 (  float4larger	   PGNSP PGUID 12 f t f t f i 2 700 "700 700" 100 0 0 100  float4larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 211 (  float4smaller	   PGNSP PGUID 12 f t t i 2 f 700 "700 700" 100 0 0 100  float4smaller - _null_ ));
+DATA(insert OID = 211 (  float4smaller	   PGNSP PGUID 12 f t f t f i 2 700 "700 700" 100 0 0 100  float4smaller - _null_ ));
 DESCR("smaller of two");
 
-DATA(insert OID = 212 (  int4um			   PGNSP PGUID 12 f t t i 1 f 23 "23" 100 0 0 100  int4um - _null_ ));
+DATA(insert OID = 212 (  int4um			   PGNSP PGUID 12 f t f t f i 1 23 "23" 100 0 0 100  int4um - _null_ ));
 DESCR("negate");
-DATA(insert OID = 213 (  int2um			   PGNSP PGUID 12 f t t i 1 f 21 "21" 100 0 0 100  int2um - _null_ ));
+DATA(insert OID = 213 (  int2um			   PGNSP PGUID 12 f t f t f i 1 21 "21" 100 0 0 100  int2um - _null_ ));
 DESCR("negate");
 
-DATA(insert OID = 214 (  float8in		   PGNSP PGUID 12 f t t i 1 f 701 "0" 100 0 0 100  float8in - _null_ ));
+DATA(insert OID = 214 (  float8in		   PGNSP PGUID 12 f t f t f i 1 701 "0" 100 0 0 100  float8in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 215 (  float8out		   PGNSP PGUID 12 f t t i 1 f 23	"701" 100 0 0 100  float8out - _null_ ));
+DATA(insert OID = 215 (  float8out		   PGNSP PGUID 12 f t f t f i 1 23	"701" 100 0 0 100  float8out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 216 (  float8mul		   PGNSP PGUID 12 f t t i 2 f 701 "701 701" 100 0 0 100  float8mul - _null_ ));
+DATA(insert OID = 216 (  float8mul		   PGNSP PGUID 12 f t f t f i 2 701 "701 701" 100 0 0 100  float8mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 217 (  float8div		   PGNSP PGUID 12 f t t i 2 f 701 "701 701" 100 0 0 100  float8div - _null_ ));
+DATA(insert OID = 217 (  float8div		   PGNSP PGUID 12 f t f t f i 2 701 "701 701" 100 0 0 100  float8div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 218 (  float8pl		   PGNSP PGUID 12 f t t i 2 f 701 "701 701" 100 0 0 100  float8pl - _null_ ));
+DATA(insert OID = 218 (  float8pl		   PGNSP PGUID 12 f t f t f i 2 701 "701 701" 100 0 0 100  float8pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 219 (  float8mi		   PGNSP PGUID 12 f t t i 2 f 701 "701 701" 100 0 0 100  float8mi - _null_ ));
+DATA(insert OID = 219 (  float8mi		   PGNSP PGUID 12 f t f t f i 2 701 "701 701" 100 0 0 100  float8mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 220 (  float8um		   PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100  float8um - _null_ ));
+DATA(insert OID = 220 (  float8um		   PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100  float8um - _null_ ));
 DESCR("negate");
-DATA(insert OID = 221 (  float8abs		   PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100  float8abs - _null_ ));
+DATA(insert OID = 221 (  float8abs		   PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100  float8abs - _null_ ));
 DESCR("absolute value");
-DATA(insert OID = 222 (  float8_accum	   PGNSP PGUID 12 f t t i 2 f 1022 "1022 701" 100 0 0 100  float8_accum - _null_ ));
+DATA(insert OID = 222 (  float8_accum	   PGNSP PGUID 12 f t f t f i 2 1022 "1022 701" 100 0 0 100  float8_accum - _null_ ));
 DESCR("aggregate transition function");
-DATA(insert OID = 223 (  float8larger	   PGNSP PGUID 12 f t t i 2 f 701 "701 701" 100 0 0 100  float8larger - _null_ ));
+DATA(insert OID = 223 (  float8larger	   PGNSP PGUID 12 f t f t f i 2 701 "701 701" 100 0 0 100  float8larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 224 (  float8smaller	   PGNSP PGUID 12 f t t i 2 f 701 "701 701" 100 0 0 100  float8smaller - _null_ ));
+DATA(insert OID = 224 (  float8smaller	   PGNSP PGUID 12 f t f t f i 2 701 "701 701" 100 0 0 100  float8smaller - _null_ ));
 DESCR("smaller of two");
 
-DATA(insert OID = 225 (  lseg_center	   PGNSP PGUID 12 f t t i 1 f 600 "601" 100 0 0 100  lseg_center - _null_ ));
+DATA(insert OID = 225 (  lseg_center	   PGNSP PGUID 12 f t f t f i 1 600 "601" 100 0 0 100  lseg_center - _null_ ));
 DESCR("center of");
-DATA(insert OID = 226 (  path_center	   PGNSP PGUID 12 f t t i 1 f 600 "602" 100 0 0 100  path_center - _null_ ));
+DATA(insert OID = 226 (  path_center	   PGNSP PGUID 12 f t f t f i 1 600 "602" 100 0 0 100  path_center - _null_ ));
 DESCR("center of");
-DATA(insert OID = 227 (  poly_center	   PGNSP PGUID 12 f t t i 1 f 600 "604" 100 0 0 100  poly_center - _null_ ));
+DATA(insert OID = 227 (  poly_center	   PGNSP PGUID 12 f t f t f i 1 600 "604" 100 0 0 100  poly_center - _null_ ));
 DESCR("center of");
 
-DATA(insert OID = 228 (  dround			   PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100  dround - _null_ ));
+DATA(insert OID = 228 (  dround			   PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100  dround - _null_ ));
 DESCR("round to nearest integer");
-DATA(insert OID = 229 (  dtrunc			   PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100  dtrunc - _null_ ));
+DATA(insert OID = 229 (  dtrunc			   PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100  dtrunc - _null_ ));
 DESCR("truncate to integer");
-DATA(insert OID = 230 (  dsqrt			   PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100  dsqrt - _null_ ));
+DATA(insert OID = 230 (  dsqrt			   PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100  dsqrt - _null_ ));
 DESCR("square root");
-DATA(insert OID = 231 (  dcbrt			   PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100  dcbrt - _null_ ));
+DATA(insert OID = 231 (  dcbrt			   PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100  dcbrt - _null_ ));
 DESCR("cube root");
-DATA(insert OID = 232 (  dpow			   PGNSP PGUID 12 f t t i 2 f 701 "701 701" 100 0 0 100  dpow - _null_ ));
+DATA(insert OID = 232 (  dpow			   PGNSP PGUID 12 f t f t f i 2 701 "701 701" 100 0 0 100  dpow - _null_ ));
 DESCR("exponentiation (x^y)");
-DATA(insert OID = 233 (  dexp			   PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100  dexp - _null_ ));
+DATA(insert OID = 233 (  dexp			   PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100  dexp - _null_ ));
 DESCR("natural exponential (e^x)");
-DATA(insert OID = 234 (  dlog1			   PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100  dlog1 - _null_ ));
+DATA(insert OID = 234 (  dlog1			   PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100  dlog1 - _null_ ));
 DESCR("natural logarithm");
-DATA(insert OID = 235 (  float8			   PGNSP PGUID 12 f t t i 1 f 701  "21" 100 0 0 100  i2tod - _null_ ));
+DATA(insert OID = 235 (  float8			   PGNSP PGUID 12 f t t t f i 1 701  "21" 100 0 0 100  i2tod - _null_ ));
 DESCR("convert int2 to float8");
-DATA(insert OID = 236 (  float4			   PGNSP PGUID 12 f t t i 1 f 700  "21" 100 0 0 100  i2tof - _null_ ));
+DATA(insert OID = 236 (  float4			   PGNSP PGUID 12 f t t t f i 1 700  "21" 100 0 0 100  i2tof - _null_ ));
 DESCR("convert int2 to float4");
-DATA(insert OID = 237 (  int2			   PGNSP PGUID 12 f t t i 1 f  21 "701" 100 0 0 100  dtoi2 - _null_ ));
+DATA(insert OID = 237 (  int2			   PGNSP PGUID 12 f t f t f i 1  21 "701" 100 0 0 100  dtoi2 - _null_ ));
 DESCR("convert float8 to int2");
-DATA(insert OID = 238 (  int2			   PGNSP PGUID 12 f t t i 1 f  21 "700" 100 0 0 100  ftoi2 - _null_ ));
+DATA(insert OID = 238 (  int2			   PGNSP PGUID 12 f t f t f i 1  21 "700" 100 0 0 100  ftoi2 - _null_ ));
 DESCR("convert float4 to int2");
-DATA(insert OID = 239 (  line_distance	   PGNSP PGUID 12 f t t i 2 f 701 "628 628" 100 0 0 100  line_distance - _null_ ));
+DATA(insert OID = 239 (  line_distance	   PGNSP PGUID 12 f t f t f i 2 701 "628 628" 100 0 0 100  line_distance - _null_ ));
 DESCR("distance between");
 
-DATA(insert OID = 240 (  nabstimein		   PGNSP PGUID 12 f t t s 1 f 702 "0" 100 0 0 100  nabstimein - _null_ ));
+DATA(insert OID = 240 (  nabstimein		   PGNSP PGUID 12 f t f t f s 1 702 "0" 100 0 0 100  nabstimein - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 241 (  nabstimeout	   PGNSP PGUID 12 f t t s 1 f 23	"0" 100 0 0 100  nabstimeout - _null_ ));
+DATA(insert OID = 241 (  nabstimeout	   PGNSP PGUID 12 f t f t f s 1 23	"0" 100 0 0 100  nabstimeout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 242 (  reltimein		   PGNSP PGUID 12 f t t s 1 f 703 "0" 100 0 0 100  reltimein - _null_ ));
+DATA(insert OID = 242 (  reltimein		   PGNSP PGUID 12 f t f t f s 1 703 "0" 100 0 0 100  reltimein - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 243 (  reltimeout		   PGNSP PGUID 12 f t t s 1 f 23	"0" 100 0 0 100  reltimeout - _null_ ));
+DATA(insert OID = 243 (  reltimeout		   PGNSP PGUID 12 f t f t f s 1 23	"0" 100 0 0 100  reltimeout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 244 (  timepl			   PGNSP PGUID 12 f t t i 2 f 702 "702 703" 100 0 0 100  timepl - _null_ ));
+DATA(insert OID = 244 (  timepl			   PGNSP PGUID 12 f t f t f i 2 702 "702 703" 100 0 0 100  timepl - _null_ ));
 DESCR("add");
-DATA(insert OID = 245 (  timemi			   PGNSP PGUID 12 f t t i 2 f 702 "702 703" 100 0 0 100  timemi - _null_ ));
+DATA(insert OID = 245 (  timemi			   PGNSP PGUID 12 f t f t f i 2 702 "702 703" 100 0 0 100  timemi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 246 (  tintervalin	   PGNSP PGUID 12 f t t s 1 f 704 "0" 100 0 0 100  tintervalin - _null_ ));
+DATA(insert OID = 246 (  tintervalin	   PGNSP PGUID 12 f t f t f s 1 704 "0" 100 0 0 100  tintervalin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 247 (  tintervalout	   PGNSP PGUID 12 f t t s 1 f 23	"0" 100 0 0 100  tintervalout - _null_ ));
+DATA(insert OID = 247 (  tintervalout	   PGNSP PGUID 12 f t f t f s 1 23	"0" 100 0 0 100  tintervalout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 248 (  intinterval	   PGNSP PGUID 12 f t t i 2 f 16 "702 704" 100 0 0 100  intinterval - _null_ ));
+DATA(insert OID = 248 (  intinterval	   PGNSP PGUID 12 f t f t f i 2 16 "702 704" 100 0 0 100  intinterval - _null_ ));
 DESCR("abstime in tinterval");
-DATA(insert OID = 249 (  tintervalrel	   PGNSP PGUID 12 f t t i 1 f 703 "704" 100 0 0 100  tintervalrel - _null_ ));
+DATA(insert OID = 249 (  tintervalrel	   PGNSP PGUID 12 f t f t f i 1 703 "704" 100 0 0 100  tintervalrel - _null_ ));
 DESCR("");
-DATA(insert OID = 250 (  timenow		   PGNSP PGUID 12 f t t s 0 f 702 "0" 100 0 0 100  timenow - _null_ ));
+DATA(insert OID = 250 (  timenow		   PGNSP PGUID 12 f t f t f s 0 702 "0" 100 0 0 100  timenow - _null_ ));
 DESCR("Current date and time (abstime)");
-DATA(insert OID = 251 (  abstimeeq		   PGNSP PGUID 12 f t t i 2 f 16 "702 702" 100 0 0 100  abstimeeq - _null_ ));
+DATA(insert OID = 251 (  abstimeeq		   PGNSP PGUID 12 f t f t f i 2 16 "702 702" 100 0 0 100  abstimeeq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 252 (  abstimene		   PGNSP PGUID 12 f t t i 2 f 16 "702 702" 100 0 0 100  abstimene - _null_ ));
+DATA(insert OID = 252 (  abstimene		   PGNSP PGUID 12 f t f t f i 2 16 "702 702" 100 0 0 100  abstimene - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 253 (  abstimelt		   PGNSP PGUID 12 f t t i 2 f 16 "702 702" 100 0 0 100  abstimelt - _null_ ));
+DATA(insert OID = 253 (  abstimelt		   PGNSP PGUID 12 f t f t f i 2 16 "702 702" 100 0 0 100  abstimelt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 254 (  abstimegt		   PGNSP PGUID 12 f t t i 2 f 16 "702 702" 100 0 0 100  abstimegt - _null_ ));
+DATA(insert OID = 254 (  abstimegt		   PGNSP PGUID 12 f t f t f i 2 16 "702 702" 100 0 0 100  abstimegt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 255 (  abstimele		   PGNSP PGUID 12 f t t i 2 f 16 "702 702" 100 0 0 100  abstimele - _null_ ));
+DATA(insert OID = 255 (  abstimele		   PGNSP PGUID 12 f t f t f i 2 16 "702 702" 100 0 0 100  abstimele - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 256 (  abstimege		   PGNSP PGUID 12 f t t i 2 f 16 "702 702" 100 0 0 100  abstimege - _null_ ));
+DATA(insert OID = 256 (  abstimege		   PGNSP PGUID 12 f t f t f i 2 16 "702 702" 100 0 0 100  abstimege - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 257 (  reltimeeq		   PGNSP PGUID 12 f t t i 2 f 16 "703 703" 100 0 0 100  reltimeeq - _null_ ));
+DATA(insert OID = 257 (  reltimeeq		   PGNSP PGUID 12 f t f t f i 2 16 "703 703" 100 0 0 100  reltimeeq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 258 (  reltimene		   PGNSP PGUID 12 f t t i 2 f 16 "703 703" 100 0 0 100  reltimene - _null_ ));
+DATA(insert OID = 258 (  reltimene		   PGNSP PGUID 12 f t f t f i 2 16 "703 703" 100 0 0 100  reltimene - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 259 (  reltimelt		   PGNSP PGUID 12 f t t i 2 f 16 "703 703" 100 0 0 100  reltimelt - _null_ ));
+DATA(insert OID = 259 (  reltimelt		   PGNSP PGUID 12 f t f t f i 2 16 "703 703" 100 0 0 100  reltimelt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 260 (  reltimegt		   PGNSP PGUID 12 f t t i 2 f 16 "703 703" 100 0 0 100  reltimegt - _null_ ));
+DATA(insert OID = 260 (  reltimegt		   PGNSP PGUID 12 f t f t f i 2 16 "703 703" 100 0 0 100  reltimegt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 261 (  reltimele		   PGNSP PGUID 12 f t t i 2 f 16 "703 703" 100 0 0 100  reltimele - _null_ ));
+DATA(insert OID = 261 (  reltimele		   PGNSP PGUID 12 f t f t f i 2 16 "703 703" 100 0 0 100  reltimele - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 262 (  reltimege		   PGNSP PGUID 12 f t t i 2 f 16 "703 703" 100 0 0 100  reltimege - _null_ ));
+DATA(insert OID = 262 (  reltimege		   PGNSP PGUID 12 f t f t f i 2 16 "703 703" 100 0 0 100  reltimege - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 263 (  tintervalsame	   PGNSP PGUID 12 f t t i 2 f 16 "704 704" 100 0 0 100  tintervalsame - _null_ ));
+DATA(insert OID = 263 (  tintervalsame	   PGNSP PGUID 12 f t f t f i 2 16 "704 704" 100 0 0 100  tintervalsame - _null_ ));
 DESCR("same as");
-DATA(insert OID = 264 (  tintervalct	   PGNSP PGUID 12 f t t i 2 f 16 "704 704" 100 0 0 100  tintervalct - _null_ ));
+DATA(insert OID = 264 (  tintervalct	   PGNSP PGUID 12 f t f t f i 2 16 "704 704" 100 0 0 100  tintervalct - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 265 (  tintervalov	   PGNSP PGUID 12 f t t i 2 f 16 "704 704" 100 0 0 100  tintervalov - _null_ ));
+DATA(insert OID = 265 (  tintervalov	   PGNSP PGUID 12 f t f t f i 2 16 "704 704" 100 0 0 100  tintervalov - _null_ ));
 DESCR("overlaps");
-DATA(insert OID = 266 (  tintervalleneq    PGNSP PGUID 12 f t t i 2 f 16 "704 703" 100 0 0 100  tintervalleneq - _null_ ));
+DATA(insert OID = 266 (  tintervalleneq    PGNSP PGUID 12 f t f t f i 2 16 "704 703" 100 0 0 100  tintervalleneq - _null_ ));
 DESCR("length equal");
-DATA(insert OID = 267 (  tintervallenne    PGNSP PGUID 12 f t t i 2 f 16 "704 703" 100 0 0 100  tintervallenne - _null_ ));
+DATA(insert OID = 267 (  tintervallenne    PGNSP PGUID 12 f t f t f i 2 16 "704 703" 100 0 0 100  tintervallenne - _null_ ));
 DESCR("length not equal to");
-DATA(insert OID = 268 (  tintervallenlt    PGNSP PGUID 12 f t t i 2 f 16 "704 703" 100 0 0 100  tintervallenlt - _null_ ));
+DATA(insert OID = 268 (  tintervallenlt    PGNSP PGUID 12 f t f t f i 2 16 "704 703" 100 0 0 100  tintervallenlt - _null_ ));
 DESCR("length less-than");
-DATA(insert OID = 269 (  tintervallengt    PGNSP PGUID 12 f t t i 2 f 16 "704 703" 100 0 0 100  tintervallengt - _null_ ));
+DATA(insert OID = 269 (  tintervallengt    PGNSP PGUID 12 f t f t f i 2 16 "704 703" 100 0 0 100  tintervallengt - _null_ ));
 DESCR("length greater-than");
-DATA(insert OID = 270 (  tintervallenle    PGNSP PGUID 12 f t t i 2 f 16 "704 703" 100 0 0 100  tintervallenle - _null_ ));
+DATA(insert OID = 270 (  tintervallenle    PGNSP PGUID 12 f t f t f i 2 16 "704 703" 100 0 0 100  tintervallenle - _null_ ));
 DESCR("length less-than-or-equal");
-DATA(insert OID = 271 (  tintervallenge    PGNSP PGUID 12 f t t i 2 f 16 "704 703" 100 0 0 100  tintervallenge - _null_ ));
+DATA(insert OID = 271 (  tintervallenge    PGNSP PGUID 12 f t f t f i 2 16 "704 703" 100 0 0 100  tintervallenge - _null_ ));
 DESCR("length greater-than-or-equal");
-DATA(insert OID = 272 (  tintervalstart    PGNSP PGUID 12 f t t i 1 f 702 "704" 100 0 0 100  tintervalstart - _null_ ));
+DATA(insert OID = 272 (  tintervalstart    PGNSP PGUID 12 f t f t f i 1 702 "704" 100 0 0 100  tintervalstart - _null_ ));
 DESCR("start of interval");
-DATA(insert OID = 273 (  tintervalend	   PGNSP PGUID 12 f t t i 1 f 702 "704" 100 0 0 100  tintervalend - _null_ ));
+DATA(insert OID = 273 (  tintervalend	   PGNSP PGUID 12 f t f t f i 1 702 "704" 100 0 0 100  tintervalend - _null_ ));
 DESCR("");
-DATA(insert OID = 274 (  timeofday		   PGNSP PGUID 12 f t t v 0 f 25 "0" 100 0 0 100	timeofday - _null_ ));
+DATA(insert OID = 274 (  timeofday		   PGNSP PGUID 12 f t f t f v 0 25 "0" 100 0 0 100	timeofday - _null_ ));
 DESCR("Current date and time - increments during transactions");
-DATA(insert OID = 275 (  isfinite		   PGNSP PGUID 12 f t t i 1 f 16 "702" 100 0 0 100  abstime_finite - _null_ ));
+DATA(insert OID = 275 (  isfinite		   PGNSP PGUID 12 f t f t f i 1 16 "702" 100 0 0 100  abstime_finite - _null_ ));
 DESCR("");
 
-DATA(insert OID = 276 (  int2fac		   PGNSP PGUID 12 f t t i 1 f 23 "21" 100 0 0 100  int2fac - _null_ ));
+DATA(insert OID = 276 (  int2fac		   PGNSP PGUID 12 f t f t f i 1 23 "21" 100 0 0 100  int2fac - _null_ ));
 DESCR("factorial");
 
-DATA(insert OID = 277 (  inter_sl		   PGNSP PGUID 12 f t t i 2 f 16 "601 628" 100 0 0 100  inter_sl - _null_ ));
+DATA(insert OID = 277 (  inter_sl		   PGNSP PGUID 12 f t f t f i 2 16 "601 628" 100 0 0 100  inter_sl - _null_ ));
 DESCR("");
-DATA(insert OID = 278 (  inter_lb		   PGNSP PGUID 12 f t t i 2 f 16 "628 603" 100 0 0 100  inter_lb - _null_ ));
+DATA(insert OID = 278 (  inter_lb		   PGNSP PGUID 12 f t f t f i 2 16 "628 603" 100 0 0 100  inter_lb - _null_ ));
 DESCR("");
 
-DATA(insert OID = 279 (  float48mul		   PGNSP PGUID 12 f t t i 2 f 701 "700 701" 100 0 0 100  float48mul - _null_ ));
+DATA(insert OID = 279 (  float48mul		   PGNSP PGUID 12 f t f t f i 2 701 "700 701" 100 0 0 100  float48mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 280 (  float48div		   PGNSP PGUID 12 f t t i 2 f 701 "700 701" 100 0 0 100  float48div - _null_ ));
+DATA(insert OID = 280 (  float48div		   PGNSP PGUID 12 f t f t f i 2 701 "700 701" 100 0 0 100  float48div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 281 (  float48pl		   PGNSP PGUID 12 f t t i 2 f 701 "700 701" 100 0 0 100  float48pl - _null_ ));
+DATA(insert OID = 281 (  float48pl		   PGNSP PGUID 12 f t f t f i 2 701 "700 701" 100 0 0 100  float48pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 282 (  float48mi		   PGNSP PGUID 12 f t t i 2 f 701 "700 701" 100 0 0 100  float48mi - _null_ ));
+DATA(insert OID = 282 (  float48mi		   PGNSP PGUID 12 f t f t f i 2 701 "700 701" 100 0 0 100  float48mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 283 (  float84mul		   PGNSP PGUID 12 f t t i 2 f 701 "701 700" 100 0 0 100  float84mul - _null_ ));
+DATA(insert OID = 283 (  float84mul		   PGNSP PGUID 12 f t f t f i 2 701 "701 700" 100 0 0 100  float84mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 284 (  float84div		   PGNSP PGUID 12 f t t i 2 f 701 "701 700" 100 0 0 100  float84div - _null_ ));
+DATA(insert OID = 284 (  float84div		   PGNSP PGUID 12 f t f t f i 2 701 "701 700" 100 0 0 100  float84div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 285 (  float84pl		   PGNSP PGUID 12 f t t i 2 f 701 "701 700" 100 0 0 100  float84pl - _null_ ));
+DATA(insert OID = 285 (  float84pl		   PGNSP PGUID 12 f t f t f i 2 701 "701 700" 100 0 0 100  float84pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 286 (  float84mi		   PGNSP PGUID 12 f t t i 2 f 701 "701 700" 100 0 0 100  float84mi - _null_ ));
+DATA(insert OID = 286 (  float84mi		   PGNSP PGUID 12 f t f t f i 2 701 "701 700" 100 0 0 100  float84mi - _null_ ));
 DESCR("subtract");
 
-DATA(insert OID = 287 (  float4eq		   PGNSP PGUID 12 f t t i 2 f 16 "700 700" 100 0 0 100  float4eq - _null_ ));
+DATA(insert OID = 287 (  float4eq		   PGNSP PGUID 12 f t f t f i 2 16 "700 700" 100 0 0 100  float4eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 288 (  float4ne		   PGNSP PGUID 12 f t t i 2 f 16 "700 700" 100 0 0 100  float4ne - _null_ ));
+DATA(insert OID = 288 (  float4ne		   PGNSP PGUID 12 f t f t f i 2 16 "700 700" 100 0 0 100  float4ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 289 (  float4lt		   PGNSP PGUID 12 f t t i 2 f 16 "700 700" 100 0 0 100  float4lt - _null_ ));
+DATA(insert OID = 289 (  float4lt		   PGNSP PGUID 12 f t f t f i 2 16 "700 700" 100 0 0 100  float4lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 290 (  float4le		   PGNSP PGUID 12 f t t i 2 f 16 "700 700" 100 0 0 100  float4le - _null_ ));
+DATA(insert OID = 290 (  float4le		   PGNSP PGUID 12 f t f t f i 2 16 "700 700" 100 0 0 100  float4le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 291 (  float4gt		   PGNSP PGUID 12 f t t i 2 f 16 "700 700" 100 0 0 100  float4gt - _null_ ));
+DATA(insert OID = 291 (  float4gt		   PGNSP PGUID 12 f t f t f i 2 16 "700 700" 100 0 0 100  float4gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 292 (  float4ge		   PGNSP PGUID 12 f t t i 2 f 16 "700 700" 100 0 0 100  float4ge - _null_ ));
+DATA(insert OID = 292 (  float4ge		   PGNSP PGUID 12 f t f t f i 2 16 "700 700" 100 0 0 100  float4ge - _null_ ));
 DESCR("greater-than-or-equal");
 
-DATA(insert OID = 293 (  float8eq		   PGNSP PGUID 12 f t t i 2 f 16 "701 701" 100 0 0 100  float8eq - _null_ ));
+DATA(insert OID = 293 (  float8eq		   PGNSP PGUID 12 f t f t f i 2 16 "701 701" 100 0 0 100  float8eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 294 (  float8ne		   PGNSP PGUID 12 f t t i 2 f 16 "701 701" 100 0 0 100  float8ne - _null_ ));
+DATA(insert OID = 294 (  float8ne		   PGNSP PGUID 12 f t f t f i 2 16 "701 701" 100 0 0 100  float8ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 295 (  float8lt		   PGNSP PGUID 12 f t t i 2 f 16 "701 701" 100 0 0 100  float8lt - _null_ ));
+DATA(insert OID = 295 (  float8lt		   PGNSP PGUID 12 f t f t f i 2 16 "701 701" 100 0 0 100  float8lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 296 (  float8le		   PGNSP PGUID 12 f t t i 2 f 16 "701 701" 100 0 0 100  float8le - _null_ ));
+DATA(insert OID = 296 (  float8le		   PGNSP PGUID 12 f t f t f i 2 16 "701 701" 100 0 0 100  float8le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 297 (  float8gt		   PGNSP PGUID 12 f t t i 2 f 16 "701 701" 100 0 0 100  float8gt - _null_ ));
+DATA(insert OID = 297 (  float8gt		   PGNSP PGUID 12 f t f t f i 2 16 "701 701" 100 0 0 100  float8gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 298 (  float8ge		   PGNSP PGUID 12 f t t i 2 f 16 "701 701" 100 0 0 100  float8ge - _null_ ));
+DATA(insert OID = 298 (  float8ge		   PGNSP PGUID 12 f t f t f i 2 16 "701 701" 100 0 0 100  float8ge - _null_ ));
 DESCR("greater-than-or-equal");
 
-DATA(insert OID = 299 (  float48eq		   PGNSP PGUID 12 f t t i 2 f 16 "700 701" 100 0 0 100  float48eq - _null_ ));
+DATA(insert OID = 299 (  float48eq		   PGNSP PGUID 12 f t f t f i 2 16 "700 701" 100 0 0 100  float48eq - _null_ ));
 DESCR("equal");
 
 /* OIDS 300 - 399 */
 
-DATA(insert OID = 300 (  float48ne		   PGNSP PGUID 12 f t t i 2 f 16 "700 701" 100 0 0 100  float48ne - _null_ ));
+DATA(insert OID = 300 (  float48ne		   PGNSP PGUID 12 f t f t f i 2 16 "700 701" 100 0 0 100  float48ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 301 (  float48lt		   PGNSP PGUID 12 f t t i 2 f 16 "700 701" 100 0 0 100  float48lt - _null_ ));
+DATA(insert OID = 301 (  float48lt		   PGNSP PGUID 12 f t f t f i 2 16 "700 701" 100 0 0 100  float48lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 302 (  float48le		   PGNSP PGUID 12 f t t i 2 f 16 "700 701" 100 0 0 100  float48le - _null_ ));
+DATA(insert OID = 302 (  float48le		   PGNSP PGUID 12 f t f t f i 2 16 "700 701" 100 0 0 100  float48le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 303 (  float48gt		   PGNSP PGUID 12 f t t i 2 f 16 "700 701" 100 0 0 100  float48gt - _null_ ));
+DATA(insert OID = 303 (  float48gt		   PGNSP PGUID 12 f t f t f i 2 16 "700 701" 100 0 0 100  float48gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 304 (  float48ge		   PGNSP PGUID 12 f t t i 2 f 16 "700 701" 100 0 0 100  float48ge - _null_ ));
+DATA(insert OID = 304 (  float48ge		   PGNSP PGUID 12 f t f t f i 2 16 "700 701" 100 0 0 100  float48ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 305 (  float84eq		   PGNSP PGUID 12 f t t i 2 f 16 "701 700" 100 0 0 100  float84eq - _null_ ));
+DATA(insert OID = 305 (  float84eq		   PGNSP PGUID 12 f t f t f i 2 16 "701 700" 100 0 0 100  float84eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 306 (  float84ne		   PGNSP PGUID 12 f t t i 2 f 16 "701 700" 100 0 0 100  float84ne - _null_ ));
+DATA(insert OID = 306 (  float84ne		   PGNSP PGUID 12 f t f t f i 2 16 "701 700" 100 0 0 100  float84ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 307 (  float84lt		   PGNSP PGUID 12 f t t i 2 f 16 "701 700" 100 0 0 100  float84lt - _null_ ));
+DATA(insert OID = 307 (  float84lt		   PGNSP PGUID 12 f t f t f i 2 16 "701 700" 100 0 0 100  float84lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 308 (  float84le		   PGNSP PGUID 12 f t t i 2 f 16 "701 700" 100 0 0 100  float84le - _null_ ));
+DATA(insert OID = 308 (  float84le		   PGNSP PGUID 12 f t f t f i 2 16 "701 700" 100 0 0 100  float84le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 309 (  float84gt		   PGNSP PGUID 12 f t t i 2 f 16 "701 700" 100 0 0 100  float84gt - _null_ ));
+DATA(insert OID = 309 (  float84gt		   PGNSP PGUID 12 f t f t f i 2 16 "701 700" 100 0 0 100  float84gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 310 (  float84ge		   PGNSP PGUID 12 f t t i 2 f 16 "701 700" 100 0 0 100  float84ge - _null_ ));
+DATA(insert OID = 310 (  float84ge		   PGNSP PGUID 12 f t f t f i 2 16 "701 700" 100 0 0 100  float84ge - _null_ ));
 DESCR("greater-than-or-equal");
 
-DATA(insert OID = 311 (  float8			   PGNSP PGUID 12 f t t i 1 f 701 "700" 100 0 0 100  ftod - _null_ ));
+DATA(insert OID = 311 (  float8			   PGNSP PGUID 12 f t t t f i 1 701 "700" 100 0 0 100  ftod - _null_ ));
 DESCR("convert float4 to float8");
-DATA(insert OID = 312 (  float4			   PGNSP PGUID 12 f t t i 1 f 700 "701" 100 0 0 100  dtof - _null_ ));
+DATA(insert OID = 312 (  float4			   PGNSP PGUID 12 f t t t f i 1 700 "701" 100 0 0 100  dtof - _null_ ));
 DESCR("convert float8 to float4");
-DATA(insert OID = 313 (  int4			   PGNSP PGUID 12 f t t i 1 f  23  "21" 100 0 0 100  i2toi4 - _null_ ));
+DATA(insert OID = 313 (  int4			   PGNSP PGUID 12 f t t t f i 1  23  "21" 100 0 0 100  i2toi4 - _null_ ));
 DESCR("convert int2 to int4");
-DATA(insert OID = 314 (  int2			   PGNSP PGUID 12 f t t i 1 f  21  "23" 100 0 0 100  i4toi2 - _null_ ));
+DATA(insert OID = 314 (  int2			   PGNSP PGUID 12 f t t t f i 1  21  "23" 100 0 0 100  i4toi2 - _null_ ));
 DESCR("convert int4 to int2");
-DATA(insert OID = 315 (  int2vectoreq	   PGNSP PGUID 12 f t t i 2 f  16  "22 22" 100 0 0 100  int2vectoreq - _null_ ));
+DATA(insert OID = 315 (  int2vectoreq	   PGNSP PGUID 12 f t f t f i 2  16  "22 22" 100 0 0 100  int2vectoreq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 316 (  float8			   PGNSP PGUID 12 f t t i 1 f 701  "23" 100 0 0 100  i4tod - _null_ ));
+DATA(insert OID = 316 (  float8			   PGNSP PGUID 12 f t t t f i 1 701  "23" 100 0 0 100  i4tod - _null_ ));
 DESCR("convert int4 to float8");
-DATA(insert OID = 317 (  int4			   PGNSP PGUID 12 f t t i 1 f  23 "701" 100 0 0 100  dtoi4 - _null_ ));
+DATA(insert OID = 317 (  int4			   PGNSP PGUID 12 f t f t f i 1  23 "701" 100 0 0 100  dtoi4 - _null_ ));
 DESCR("convert float8 to int4");
-DATA(insert OID = 318 (  float4			   PGNSP PGUID 12 f t t i 1 f 700  "23" 100 0 0 100  i4tof - _null_ ));
+DATA(insert OID = 318 (  float4			   PGNSP PGUID 12 f t t t f i 1 700  "23" 100 0 0 100  i4tof - _null_ ));
 DESCR("convert int4 to float4");
-DATA(insert OID = 319 (  int4			   PGNSP PGUID 12 f t t i 1 f  23 "700" 100 0 0 100  ftoi4 - _null_ ));
+DATA(insert OID = 319 (  int4			   PGNSP PGUID 12 f t f t f i 1  23 "700" 100 0 0 100  ftoi4 - _null_ ));
 DESCR("convert float4 to int4");
 
-DATA(insert OID = 320 (  rtinsert		   PGNSP PGUID 12 f t t v 5 f 23 "0 0 0 0 0" 100 0 0 100	rtinsert - _null_ ));
+DATA(insert OID = 320 (  rtinsert		   PGNSP PGUID 12 f t f t f v 5 23 "0 0 0 0 0" 100 0 0 100	rtinsert - _null_ ));
 DESCR("r-tree(internal)");
-DATA(insert OID = 322 (  rtgettuple		   PGNSP PGUID 12 f t t v 2 f 23 "0 0" 100 0 0 100  rtgettuple - _null_ ));
+DATA(insert OID = 322 (  rtgettuple		   PGNSP PGUID 12 f t f t f v 2 23 "0 0" 100 0 0 100  rtgettuple - _null_ ));
 DESCR("r-tree(internal)");
-DATA(insert OID = 323 (  rtbuild		   PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100	rtbuild - _null_ ));
+DATA(insert OID = 323 (  rtbuild		   PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100	rtbuild - _null_ ));
 DESCR("r-tree(internal)");
-DATA(insert OID = 324 (  rtbeginscan	   PGNSP PGUID 12 f t t v 4 f 23 "0 0 0 0" 100 0 0 100  rtbeginscan - _null_ ));
+DATA(insert OID = 324 (  rtbeginscan	   PGNSP PGUID 12 f t f t f v 4 23 "0 0 0 0" 100 0 0 100  rtbeginscan - _null_ ));
 DESCR("r-tree(internal)");
-DATA(insert OID = 325 (  rtendscan		   PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100	rtendscan - _null_ ));
+DATA(insert OID = 325 (  rtendscan		   PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100	rtendscan - _null_ ));
 DESCR("r-tree(internal)");
-DATA(insert OID = 326 (  rtmarkpos		   PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100	rtmarkpos - _null_ ));
+DATA(insert OID = 326 (  rtmarkpos		   PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100	rtmarkpos - _null_ ));
 DESCR("r-tree(internal)");
-DATA(insert OID = 327 (  rtrestrpos		   PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100	rtrestrpos - _null_ ));
+DATA(insert OID = 327 (  rtrestrpos		   PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100	rtrestrpos - _null_ ));
 DESCR("r-tree(internal)");
-DATA(insert OID = 328 (  rtrescan		   PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100	rtrescan - _null_ ));
+DATA(insert OID = 328 (  rtrescan		   PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100	rtrescan - _null_ ));
 DESCR("r-tree(internal)");
-DATA(insert OID = 321 (  rtbulkdelete	   PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100	rtbulkdelete - _null_ ));
+DATA(insert OID = 321 (  rtbulkdelete	   PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100	rtbulkdelete - _null_ ));
 DESCR("r-tree(internal)");
-DATA(insert OID = 1265 (  rtcostestimate   PGNSP PGUID 12 f t t v 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100  rtcostestimate - _null_ ));
+DATA(insert OID = 1265 (  rtcostestimate   PGNSP PGUID 12 f t f t f v 8 0 "0 0 0 0 0 0 0 0" 100 0 0 100  rtcostestimate - _null_ ));
 DESCR("r-tree(internal)");
 
-DATA(insert OID = 330 (  btgettuple		   PGNSP PGUID 12 f t t v 2 f 23 "0 0" 100 0 0 100  btgettuple - _null_ ));
+DATA(insert OID = 330 (  btgettuple		   PGNSP PGUID 12 f t f t f v 2 23 "0 0" 100 0 0 100  btgettuple - _null_ ));
 DESCR("btree(internal)");
-DATA(insert OID = 331 (  btinsert		   PGNSP PGUID 12 f t t v 5 f 23 "0 0 0 0 0" 100 0 0 100	btinsert - _null_ ));
+DATA(insert OID = 331 (  btinsert		   PGNSP PGUID 12 f t f t f v 5 23 "0 0 0 0 0" 100 0 0 100	btinsert - _null_ ));
 DESCR("btree(internal)");
-DATA(insert OID = 333 (  btbeginscan	   PGNSP PGUID 12 f t t v 4 f 23 "0 0 0 0" 100 0 0 100  btbeginscan - _null_ ));
+DATA(insert OID = 333 (  btbeginscan	   PGNSP PGUID 12 f t f t f v 4 23 "0 0 0 0" 100 0 0 100  btbeginscan - _null_ ));
 DESCR("btree(internal)");
-DATA(insert OID = 334 (  btrescan		   PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100	btrescan - _null_ ));
+DATA(insert OID = 334 (  btrescan		   PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100	btrescan - _null_ ));
 DESCR("btree(internal)");
-DATA(insert OID = 335 (  btendscan		   PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100	btendscan - _null_ ));
+DATA(insert OID = 335 (  btendscan		   PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100	btendscan - _null_ ));
 DESCR("btree(internal)");
-DATA(insert OID = 336 (  btmarkpos		   PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100	btmarkpos - _null_ ));
+DATA(insert OID = 336 (  btmarkpos		   PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100	btmarkpos - _null_ ));
 DESCR("btree(internal)");
-DATA(insert OID = 337 (  btrestrpos		   PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100	btrestrpos - _null_ ));
+DATA(insert OID = 337 (  btrestrpos		   PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100	btrestrpos - _null_ ));
 DESCR("btree(internal)");
-DATA(insert OID = 338 (  btbuild		   PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100	btbuild - _null_ ));
+DATA(insert OID = 338 (  btbuild		   PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100	btbuild - _null_ ));
 DESCR("btree(internal)");
-DATA(insert OID = 332 (  btbulkdelete	   PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100	btbulkdelete - _null_ ));
+DATA(insert OID = 332 (  btbulkdelete	   PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100	btbulkdelete - _null_ ));
 DESCR("btree(internal)");
-DATA(insert OID = 1268 (  btcostestimate   PGNSP PGUID 12 f t t v 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100  btcostestimate - _null_ ));
+DATA(insert OID = 1268 (  btcostestimate   PGNSP PGUID 12 f t f t f v 8 0 "0 0 0 0 0 0 0 0" 100 0 0 100  btcostestimate - _null_ ));
 DESCR("btree(internal)");
 
-DATA(insert OID = 339 (  poly_same		   PGNSP PGUID 12 f t t i 2 f 16 "604 604" 100 0 0 100  poly_same - _null_ ));
+DATA(insert OID = 339 (  poly_same		   PGNSP PGUID 12 f t f t f i 2 16 "604 604" 100 0 0 100  poly_same - _null_ ));
 DESCR("same as");
-DATA(insert OID = 340 (  poly_contain	   PGNSP PGUID 12 f t t i 2 f 16 "604 604" 100 0 0 100  poly_contain - _null_ ));
+DATA(insert OID = 340 (  poly_contain	   PGNSP PGUID 12 f t f t f i 2 16 "604 604" 100 0 0 100  poly_contain - _null_ ));
 DESCR("contains");
-DATA(insert OID = 341 (  poly_left		   PGNSP PGUID 12 f t t i 2 f 16 "604 604" 100 0 0 100  poly_left - _null_ ));
+DATA(insert OID = 341 (  poly_left		   PGNSP PGUID 12 f t f t f i 2 16 "604 604" 100 0 0 100  poly_left - _null_ ));
 DESCR("is left of");
-DATA(insert OID = 342 (  poly_overleft	   PGNSP PGUID 12 f t t i 2 f 16 "604 604" 100 0 0 100  poly_overleft - _null_ ));
+DATA(insert OID = 342 (  poly_overleft	   PGNSP PGUID 12 f t f t f i 2 16 "604 604" 100 0 0 100  poly_overleft - _null_ ));
 DESCR("overlaps, but does not extend to right of");
-DATA(insert OID = 343 (  poly_overright    PGNSP PGUID 12 f t t i 2 f 16 "604 604" 100 0 0 100  poly_overright - _null_ ));
+DATA(insert OID = 343 (  poly_overright    PGNSP PGUID 12 f t f t f i 2 16 "604 604" 100 0 0 100  poly_overright - _null_ ));
 DESCR("overlaps, but does not extend to left of");
-DATA(insert OID = 344 (  poly_right		   PGNSP PGUID 12 f t t i 2 f 16 "604 604" 100 0 0 100  poly_right - _null_ ));
+DATA(insert OID = 344 (  poly_right		   PGNSP PGUID 12 f t f t f i 2 16 "604 604" 100 0 0 100  poly_right - _null_ ));
 DESCR("is right of");
-DATA(insert OID = 345 (  poly_contained    PGNSP PGUID 12 f t t i 2 f 16 "604 604" 100 0 0 100  poly_contained - _null_ ));
+DATA(insert OID = 345 (  poly_contained    PGNSP PGUID 12 f t f t f i 2 16 "604 604" 100 0 0 100  poly_contained - _null_ ));
 DESCR("contained in");
-DATA(insert OID = 346 (  poly_overlap	   PGNSP PGUID 12 f t t i 2 f 16 "604 604" 100 0 0 100  poly_overlap - _null_ ));
+DATA(insert OID = 346 (  poly_overlap	   PGNSP PGUID 12 f t f t f i 2 16 "604 604" 100 0 0 100  poly_overlap - _null_ ));
 DESCR("overlaps");
-DATA(insert OID = 347 (  poly_in		   PGNSP PGUID 12 f t t i 1 f 604 "0" 100 0 0 100  poly_in - _null_ ));
+DATA(insert OID = 347 (  poly_in		   PGNSP PGUID 12 f t f t f i 1 604 "0" 100 0 0 100  poly_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 348 (  poly_out		   PGNSP PGUID 12 f t t i 1 f 23	"0" 100 0 0 100  poly_out - _null_ ));
+DATA(insert OID = 348 (  poly_out		   PGNSP PGUID 12 f t f t f i 1 23	"0" 100 0 0 100  poly_out - _null_ ));
 DESCR("(internal)");
 
-DATA(insert OID = 350 (  btint2cmp		   PGNSP PGUID 12 f t t i 2 f 23 "21 21" 100 0 0 100	btint2cmp - _null_ ));
+DATA(insert OID = 350 (  btint2cmp		   PGNSP PGUID 12 f t f t f i 2 23 "21 21" 100 0 0 100	btint2cmp - _null_ ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 351 (  btint4cmp		   PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100	btint4cmp - _null_ ));
+DATA(insert OID = 351 (  btint4cmp		   PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100	btint4cmp - _null_ ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 842 (  btint8cmp		   PGNSP PGUID 12 f t t i 2 f 23 "20 20" 100 0 0 100	btint8cmp - _null_ ));
+DATA(insert OID = 842 (  btint8cmp		   PGNSP PGUID 12 f t f t f i 2 23 "20 20" 100 0 0 100	btint8cmp - _null_ ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 354 (  btfloat4cmp	   PGNSP PGUID 12 f t t i 2 f 23 "700 700" 100 0 0 100  btfloat4cmp - _null_ ));
+DATA(insert OID = 354 (  btfloat4cmp	   PGNSP PGUID 12 f t f t f i 2 23 "700 700" 100 0 0 100  btfloat4cmp - _null_ ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 355 (  btfloat8cmp	   PGNSP PGUID 12 f t t i 2 f 23 "701 701" 100 0 0 100  btfloat8cmp - _null_ ));
+DATA(insert OID = 355 (  btfloat8cmp	   PGNSP PGUID 12 f t f t f i 2 23 "701 701" 100 0 0 100  btfloat8cmp - _null_ ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 356 (  btoidcmp		   PGNSP PGUID 12 f t t i 2 f 23 "26 26" 100 0 0 100	btoidcmp - _null_ ));
+DATA(insert OID = 356 (  btoidcmp		   PGNSP PGUID 12 f t f t f i 2 23 "26 26" 100 0 0 100	btoidcmp - _null_ ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 404 (  btoidvectorcmp    PGNSP PGUID 12 f t t i 2 f 23 "30 30" 100 0 0 100	btoidvectorcmp - _null_ ));
+DATA(insert OID = 404 (  btoidvectorcmp    PGNSP PGUID 12 f t f t f i 2 23 "30 30" 100 0 0 100	btoidvectorcmp - _null_ ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 357 (  btabstimecmp	   PGNSP PGUID 12 f t t i 2 f 23 "702 702" 100 0 0 100  btabstimecmp - _null_ ));
+DATA(insert OID = 357 (  btabstimecmp	   PGNSP PGUID 12 f t f t f i 2 23 "702 702" 100 0 0 100  btabstimecmp - _null_ ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 358 (  btcharcmp		   PGNSP PGUID 12 f t t i 2 f 23 "18 18" 100 0 0 100	btcharcmp - _null_ ));
+DATA(insert OID = 358 (  btcharcmp		   PGNSP PGUID 12 f t f t f i 2 23 "18 18" 100 0 0 100	btcharcmp - _null_ ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 359 (  btnamecmp		   PGNSP PGUID 12 f t t i 2 f 23 "19 19" 100 0 0 100	btnamecmp - _null_ ));
+DATA(insert OID = 359 (  btnamecmp		   PGNSP PGUID 12 f t f t f i 2 23 "19 19" 100 0 0 100	btnamecmp - _null_ ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 360 (  bttextcmp		   PGNSP PGUID 12 f t t i 2 f 23 "25 25" 100 0 0 100	bttextcmp - _null_ ));
+DATA(insert OID = 360 (  bttextcmp		   PGNSP PGUID 12 f t f t f i 2 23 "25 25" 100 0 0 100	bttextcmp - _null_ ));
 DESCR("btree less-equal-greater");
 
-DATA(insert OID = 361 (  lseg_distance	   PGNSP PGUID 12 f t t i 2 f 701 "601 601" 100 0 0 100  lseg_distance - _null_ ));
+DATA(insert OID = 361 (  lseg_distance	   PGNSP PGUID 12 f t f t f i 2 701 "601 601" 100 0 0 100  lseg_distance - _null_ ));
 DESCR("distance between");
-DATA(insert OID = 362 (  lseg_interpt	   PGNSP PGUID 12 f t t i 2 f 600 "601 601" 100 0 0 100  lseg_interpt - _null_ ));
+DATA(insert OID = 362 (  lseg_interpt	   PGNSP PGUID 12 f t f t f i 2 600 "601 601" 100 0 0 100  lseg_interpt - _null_ ));
 DESCR("");
-DATA(insert OID = 363 (  dist_ps		   PGNSP PGUID 12 f t t i 2 f 701 "600 601" 100 0 0 100  dist_ps - _null_ ));
+DATA(insert OID = 363 (  dist_ps		   PGNSP PGUID 12 f t f t f i 2 701 "600 601" 100 0 0 100  dist_ps - _null_ ));
 DESCR("distance between");
-DATA(insert OID = 364 (  dist_pb		   PGNSP PGUID 12 f t t i 2 f 701 "600 603" 100 0 0 100  dist_pb - _null_ ));
+DATA(insert OID = 364 (  dist_pb		   PGNSP PGUID 12 f t f t f i 2 701 "600 603" 100 0 0 100  dist_pb - _null_ ));
 DESCR("distance between point and box");
-DATA(insert OID = 365 (  dist_sb		   PGNSP PGUID 12 f t t i 2 f 701 "601 603" 100 0 0 100  dist_sb - _null_ ));
+DATA(insert OID = 365 (  dist_sb		   PGNSP PGUID 12 f t f t f i 2 701 "601 603" 100 0 0 100  dist_sb - _null_ ));
 DESCR("distance between segment and box");
-DATA(insert OID = 366 (  close_ps		   PGNSP PGUID 12 f t t i 2 f 600 "600 601" 100 0 0 100  close_ps - _null_ ));
+DATA(insert OID = 366 (  close_ps		   PGNSP PGUID 12 f t f t f i 2 600 "600 601" 100 0 0 100  close_ps - _null_ ));
 DESCR("closest point on line segment");
-DATA(insert OID = 367 (  close_pb		   PGNSP PGUID 12 f t t i 2 f 600 "600 603" 100 0 0 100  close_pb - _null_ ));
+DATA(insert OID = 367 (  close_pb		   PGNSP PGUID 12 f t f t f i 2 600 "600 603" 100 0 0 100  close_pb - _null_ ));
 DESCR("closest point on box");
-DATA(insert OID = 368 (  close_sb		   PGNSP PGUID 12 f t t i 2 f 600 "601 603" 100 0 0 100  close_sb - _null_ ));
+DATA(insert OID = 368 (  close_sb		   PGNSP PGUID 12 f t f t f i 2 600 "601 603" 100 0 0 100  close_sb - _null_ ));
 DESCR("closest point to line segment on box");
-DATA(insert OID = 369 (  on_ps			   PGNSP PGUID 12 f t t i 2 f 16 "600 601" 100 0 0 100  on_ps - _null_ ));
+DATA(insert OID = 369 (  on_ps			   PGNSP PGUID 12 f t f t f i 2 16 "600 601" 100 0 0 100  on_ps - _null_ ));
 DESCR("point contained in segment");
-DATA(insert OID = 370 (  path_distance	   PGNSP PGUID 12 f t t i 2 f 701 "602 602" 100 0 0 100  path_distance - _null_ ));
+DATA(insert OID = 370 (  path_distance	   PGNSP PGUID 12 f t f t f i 2 701 "602 602" 100 0 0 100  path_distance - _null_ ));
 DESCR("distance between paths");
-DATA(insert OID = 371 (  dist_ppath		   PGNSP PGUID 12 f t t i 2 f 701 "600 602" 100 0 0 100  dist_ppath - _null_ ));
+DATA(insert OID = 371 (  dist_ppath		   PGNSP PGUID 12 f t f t f i 2 701 "600 602" 100 0 0 100  dist_ppath - _null_ ));
 DESCR("distance between point and path");
-DATA(insert OID = 372 (  on_sb			   PGNSP PGUID 12 f t t i 2 f 16 "601 603" 100 0 0 100  on_sb - _null_ ));
+DATA(insert OID = 372 (  on_sb			   PGNSP PGUID 12 f t f t f i 2 16 "601 603" 100 0 0 100  on_sb - _null_ ));
 DESCR("contained in");
-DATA(insert OID = 373 (  inter_sb		   PGNSP PGUID 12 f t t i 2 f 16 "601 603" 100 0 0 100  inter_sb - _null_ ));
+DATA(insert OID = 373 (  inter_sb		   PGNSP PGUID 12 f t f t f i 2 16 "601 603" 100 0 0 100  inter_sb - _null_ ));
 DESCR("intersects?");
 
 /* OIDS 400 - 499 */
 
-DATA(insert OID =  406 (  text			   PGNSP PGUID 12 f t t i 1 f 25 "19" 100 0 0 100 name_text - _null_ ));
+DATA(insert OID =  406 (  text			   PGNSP PGUID 12 f t t t f i 1 25 "19" 100 0 0 100 name_text - _null_ ));
 DESCR("convert name to text");
-DATA(insert OID =  407 (  name			   PGNSP PGUID 12 f t t i 1 f 19 "25" 100 0 0 100 text_name - _null_ ));
+DATA(insert OID =  407 (  name			   PGNSP PGUID 12 f t t t f i 1 19 "25" 100 0 0 100 text_name - _null_ ));
 DESCR("convert text to name");
-DATA(insert OID =  408 (  bpchar		   PGNSP PGUID 12 f t t i 1 f 1042 "19" 100 0 0 100 name_bpchar - _null_ ));
+DATA(insert OID =  408 (  bpchar		   PGNSP PGUID 12 f t t t f i 1 1042 "19" 100 0 0 100 name_bpchar - _null_ ));
 DESCR("convert name to char()");
-DATA(insert OID =  409 (  name			   PGNSP PGUID 12 f t t i 1 f 19 "1042" 100 0 0 100  bpchar_name - _null_ ));
+DATA(insert OID =  409 (  name			   PGNSP PGUID 12 f t t t f i 1 19 "1042" 100 0 0 100  bpchar_name - _null_ ));
 DESCR("convert char() to name");
 
-DATA(insert OID = 440 (  hashgettuple	   PGNSP PGUID 12 f t t v 2 f 23 "0 0" 100 0 0 100  hashgettuple - _null_ ));
+DATA(insert OID = 440 (  hashgettuple	   PGNSP PGUID 12 f t f t f v 2 23 "0 0" 100 0 0 100  hashgettuple - _null_ ));
 DESCR("hash(internal)");
-DATA(insert OID = 441 (  hashinsert		   PGNSP PGUID 12 f t t v 5 f 23 "0 0 0 0 0" 100 0 0 100	hashinsert - _null_ ));
+DATA(insert OID = 441 (  hashinsert		   PGNSP PGUID 12 f t f t f v 5 23 "0 0 0 0 0" 100 0 0 100	hashinsert - _null_ ));
 DESCR("hash(internal)");
-DATA(insert OID = 443 (  hashbeginscan	   PGNSP PGUID 12 f t t v 4 f 23 "0 0 0 0" 100 0 0 100  hashbeginscan - _null_ ));
+DATA(insert OID = 443 (  hashbeginscan	   PGNSP PGUID 12 f t f t f v 4 23 "0 0 0 0" 100 0 0 100  hashbeginscan - _null_ ));
 DESCR("hash(internal)");
-DATA(insert OID = 444 (  hashrescan		   PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100	hashrescan - _null_ ));
+DATA(insert OID = 444 (  hashrescan		   PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100	hashrescan - _null_ ));
 DESCR("hash(internal)");
-DATA(insert OID = 445 (  hashendscan	   PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100	hashendscan - _null_ ));
+DATA(insert OID = 445 (  hashendscan	   PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100	hashendscan - _null_ ));
 DESCR("hash(internal)");
-DATA(insert OID = 446 (  hashmarkpos	   PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100	hashmarkpos - _null_ ));
+DATA(insert OID = 446 (  hashmarkpos	   PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100	hashmarkpos - _null_ ));
 DESCR("hash(internal)");
-DATA(insert OID = 447 (  hashrestrpos	   PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100	hashrestrpos - _null_ ));
+DATA(insert OID = 447 (  hashrestrpos	   PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100	hashrestrpos - _null_ ));
 DESCR("hash(internal)");
-DATA(insert OID = 448 (  hashbuild		   PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100	hashbuild - _null_ ));
+DATA(insert OID = 448 (  hashbuild		   PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100	hashbuild - _null_ ));
 DESCR("hash(internal)");
-DATA(insert OID = 442 (  hashbulkdelete    PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100	hashbulkdelete - _null_ ));
+DATA(insert OID = 442 (  hashbulkdelete    PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100	hashbulkdelete - _null_ ));
 DESCR("hash(internal)");
-DATA(insert OID = 438 (  hashcostestimate  PGNSP PGUID 12 f t t v 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100  hashcostestimate - _null_ ));
+DATA(insert OID = 438 (  hashcostestimate  PGNSP PGUID 12 f t f t f v 8 0 "0 0 0 0 0 0 0 0" 100 0 0 100  hashcostestimate - _null_ ));
 DESCR("hash(internal)");
 
-DATA(insert OID = 449 (  hashint2		   PGNSP PGUID 12 f t t i 1 f 23 "21" 100 0 0 100  hashint2 - _null_ ));
+DATA(insert OID = 449 (  hashint2		   PGNSP PGUID 12 f t f t f i 1 23 "21" 100 0 0 100  hashint2 - _null_ ));
 DESCR("hash");
-DATA(insert OID = 450 (  hashint4		   PGNSP PGUID 12 f t t i 1 f 23 "23" 100 0 0 100  hashint4 - _null_ ));
+DATA(insert OID = 450 (  hashint4		   PGNSP PGUID 12 f t f t f i 1 23 "23" 100 0 0 100  hashint4 - _null_ ));
 DESCR("hash");
-DATA(insert OID = 949 (  hashint8		   PGNSP PGUID 12 f t t i 1 f 23 "20" 100 0 0 100  hashint8 - _null_ ));
+DATA(insert OID = 949 (  hashint8		   PGNSP PGUID 12 f t f t f i 1 23 "20" 100 0 0 100  hashint8 - _null_ ));
 DESCR("hash");
-DATA(insert OID = 451 (  hashfloat4		   PGNSP PGUID 12 f t t i 1 f 23 "700" 100 0 0 100  hashfloat4 - _null_ ));
+DATA(insert OID = 451 (  hashfloat4		   PGNSP PGUID 12 f t f t f i 1 23 "700" 100 0 0 100  hashfloat4 - _null_ ));
 DESCR("hash");
-DATA(insert OID = 452 (  hashfloat8		   PGNSP PGUID 12 f t t i 1 f 23 "701" 100 0 0 100  hashfloat8 - _null_ ));
+DATA(insert OID = 452 (  hashfloat8		   PGNSP PGUID 12 f t f t f i 1 23 "701" 100 0 0 100  hashfloat8 - _null_ ));
 DESCR("hash");
-DATA(insert OID = 453 (  hashoid		   PGNSP PGUID 12 f t t i 1 f 23 "26" 100 0 0 100  hashoid - _null_ ));
+DATA(insert OID = 453 (  hashoid		   PGNSP PGUID 12 f t f t f i 1 23 "26" 100 0 0 100  hashoid - _null_ ));
 DESCR("hash");
-DATA(insert OID = 454 (  hashchar		   PGNSP PGUID 12 f t t i 1 f 23 "18" 100 0 0 100  hashchar - _null_ ));
+DATA(insert OID = 454 (  hashchar		   PGNSP PGUID 12 f t f t f i 1 23 "18" 100 0 0 100  hashchar - _null_ ));
 DESCR("hash");
-DATA(insert OID = 455 (  hashname		   PGNSP PGUID 12 f t t i 1 f 23 "19" 100 0 0 100  hashname - _null_ ));
+DATA(insert OID = 455 (  hashname		   PGNSP PGUID 12 f t f t f i 1 23 "19" 100 0 0 100  hashname - _null_ ));
 DESCR("hash");
-DATA(insert OID = 456 (  hashvarlena	   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	hashvarlena - _null_ ));
+DATA(insert OID = 456 (  hashvarlena	   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	hashvarlena - _null_ ));
 DESCR("hash any varlena type");
-DATA(insert OID = 457 (  hashoidvector	   PGNSP PGUID 12 f t t i 1 f 23 "30" 100 0 0 100  hashoidvector - _null_ ));
+DATA(insert OID = 457 (  hashoidvector	   PGNSP PGUID 12 f t f t f i 1 23 "30" 100 0 0 100  hashoidvector - _null_ ));
 DESCR("hash");
-DATA(insert OID = 399 (  hashmacaddr	   PGNSP PGUID 12 f t t i 1 f 23 "829" 100 0 0 100  hashmacaddr - _null_ ));
+DATA(insert OID = 399 (  hashmacaddr	   PGNSP PGUID 12 f t f t f i 1 23 "829" 100 0 0 100  hashmacaddr - _null_ ));
 DESCR("hash");
-DATA(insert OID = 458 (  text_larger	   PGNSP PGUID 12 f t t i 2 f 25 "25 25" 100 0 0 100	text_larger - _null_ ));
+DATA(insert OID = 458 (  text_larger	   PGNSP PGUID 12 f t f t f i 2 25 "25 25" 100 0 0 100	text_larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 459 (  text_smaller	   PGNSP PGUID 12 f t t i 2 f 25 "25 25" 100 0 0 100	text_smaller - _null_ ));
+DATA(insert OID = 459 (  text_smaller	   PGNSP PGUID 12 f t f t f i 2 25 "25 25" 100 0 0 100	text_smaller - _null_ ));
 DESCR("smaller of two");
 
-DATA(insert OID = 460 (  int8in			   PGNSP PGUID 12 f t t i 1 f 20 "0" 100 0 0 100	int8in - _null_ ));
+DATA(insert OID = 460 (  int8in			   PGNSP PGUID 12 f t f t f i 1 20 "0" 100 0 0 100	int8in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 461 (  int8out		   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	int8out - _null_ ));
+DATA(insert OID = 461 (  int8out		   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	int8out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 462 (  int8um			   PGNSP PGUID 12 f t t i 1 f 20 "20" 100 0 0 100  int8um - _null_ ));
+DATA(insert OID = 462 (  int8um			   PGNSP PGUID 12 f t f t f i 1 20 "20" 100 0 0 100  int8um - _null_ ));
 DESCR("negate");
-DATA(insert OID = 463 (  int8pl			   PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100	int8pl - _null_ ));
+DATA(insert OID = 463 (  int8pl			   PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100	int8pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 464 (  int8mi			   PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100	int8mi - _null_ ));
+DATA(insert OID = 464 (  int8mi			   PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100	int8mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 465 (  int8mul		   PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100	int8mul - _null_ ));
+DATA(insert OID = 465 (  int8mul		   PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100	int8mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 466 (  int8div		   PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100	int8div - _null_ ));
+DATA(insert OID = 466 (  int8div		   PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100	int8div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 467 (  int8eq			   PGNSP PGUID 12 f t t i 2 f 16 "20 20" 100 0 0 100	int8eq - _null_ ));
+DATA(insert OID = 467 (  int8eq			   PGNSP PGUID 12 f t f t f i 2 16 "20 20" 100 0 0 100	int8eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 468 (  int8ne			   PGNSP PGUID 12 f t t i 2 f 16 "20 20" 100 0 0 100	int8ne - _null_ ));
+DATA(insert OID = 468 (  int8ne			   PGNSP PGUID 12 f t f t f i 2 16 "20 20" 100 0 0 100	int8ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 469 (  int8lt			   PGNSP PGUID 12 f t t i 2 f 16 "20 20" 100 0 0 100	int8lt - _null_ ));
+DATA(insert OID = 469 (  int8lt			   PGNSP PGUID 12 f t f t f i 2 16 "20 20" 100 0 0 100	int8lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 470 (  int8gt			   PGNSP PGUID 12 f t t i 2 f 16 "20 20" 100 0 0 100	int8gt - _null_ ));
+DATA(insert OID = 470 (  int8gt			   PGNSP PGUID 12 f t f t f i 2 16 "20 20" 100 0 0 100	int8gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 471 (  int8le			   PGNSP PGUID 12 f t t i 2 f 16 "20 20" 100 0 0 100	int8le - _null_ ));
+DATA(insert OID = 471 (  int8le			   PGNSP PGUID 12 f t f t f i 2 16 "20 20" 100 0 0 100	int8le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 472 (  int8ge			   PGNSP PGUID 12 f t t i 2 f 16 "20 20" 100 0 0 100	int8ge - _null_ ));
+DATA(insert OID = 472 (  int8ge			   PGNSP PGUID 12 f t f t f i 2 16 "20 20" 100 0 0 100	int8ge - _null_ ));
 DESCR("greater-than-or-equal");
 
-DATA(insert OID = 474 (  int84eq		   PGNSP PGUID 12 f t t i 2 f 16 "20 23" 100 0 0 100	int84eq - _null_ ));
+DATA(insert OID = 474 (  int84eq		   PGNSP PGUID 12 f t f t f i 2 16 "20 23" 100 0 0 100	int84eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 475 (  int84ne		   PGNSP PGUID 12 f t t i 2 f 16 "20 23" 100 0 0 100	int84ne - _null_ ));
+DATA(insert OID = 475 (  int84ne		   PGNSP PGUID 12 f t f t f i 2 16 "20 23" 100 0 0 100	int84ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 476 (  int84lt		   PGNSP PGUID 12 f t t i 2 f 16 "20 23" 100 0 0 100	int84lt - _null_ ));
+DATA(insert OID = 476 (  int84lt		   PGNSP PGUID 12 f t f t f i 2 16 "20 23" 100 0 0 100	int84lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 477 (  int84gt		   PGNSP PGUID 12 f t t i 2 f 16 "20 23" 100 0 0 100	int84gt - _null_ ));
+DATA(insert OID = 477 (  int84gt		   PGNSP PGUID 12 f t f t f i 2 16 "20 23" 100 0 0 100	int84gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 478 (  int84le		   PGNSP PGUID 12 f t t i 2 f 16 "20 23" 100 0 0 100	int84le - _null_ ));
+DATA(insert OID = 478 (  int84le		   PGNSP PGUID 12 f t f t f i 2 16 "20 23" 100 0 0 100	int84le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 479 (  int84ge		   PGNSP PGUID 12 f t t i 2 f 16 "20 23" 100 0 0 100	int84ge - _null_ ));
+DATA(insert OID = 479 (  int84ge		   PGNSP PGUID 12 f t f t f i 2 16 "20 23" 100 0 0 100	int84ge - _null_ ));
 DESCR("greater-than-or-equal");
 
-DATA(insert OID = 480 (  int4			   PGNSP PGUID 12 f t t i 1 f  23 "20" 100 0 0 100  int84 - _null_ ));
+DATA(insert OID = 480 (  int4			   PGNSP PGUID 12 f t t t f i 1  23 "20" 100 0 0 100  int84 - _null_ ));
 DESCR("convert int8 to int4");
-DATA(insert OID = 481 (  int8			   PGNSP PGUID 12 f t t i 1 f  20 "23" 100 0 0 100  int48 - _null_ ));
+DATA(insert OID = 481 (  int8			   PGNSP PGUID 12 f t t t f i 1  20 "23" 100 0 0 100  int48 - _null_ ));
 DESCR("convert int4 to int8");
-DATA(insert OID = 482 (  float8			   PGNSP PGUID 12 f t t i 1 f 701 "20" 100 0 0 100  i8tod - _null_ ));
+DATA(insert OID = 482 (  float8			   PGNSP PGUID 12 f t t t f i 1 701 "20" 100 0 0 100  i8tod - _null_ ));
 DESCR("convert int8 to float8");
-DATA(insert OID = 483 (  int8			   PGNSP PGUID 12 f t t i 1 f  20 "701" 100 0 0 100  dtoi8 - _null_ ));
+DATA(insert OID = 483 (  int8			   PGNSP PGUID 12 f t f t f i 1  20 "701" 100 0 0 100  dtoi8 - _null_ ));
 DESCR("convert float8 to int8");
 
-DATA(insert OID = 714 (  int2			   PGNSP PGUID 12 f t t i 1 f  21 "20" 100 0 0 100  int82 - _null_ ));
+DATA(insert OID = 714 (  int2			   PGNSP PGUID 12 f t t t f i 1  21 "20" 100 0 0 100  int82 - _null_ ));
 DESCR("convert int8 to int2");
-DATA(insert OID = 754 (  int8			   PGNSP PGUID 12 f t t i 1 f  20 "21" 100 0 0 100  int28 - _null_ ));
+DATA(insert OID = 754 (  int8			   PGNSP PGUID 12 f t t t f i 1  20 "21" 100 0 0 100  int28 - _null_ ));
 DESCR("convert int2 to int8");
 
 /* OIDS 500 - 599 */
 
 /* OIDS 600 - 699 */
 
-DATA(insert OID = 1285 (  int4notin		   PGNSP PGUID 12 f t t s 2 f 16 "23 25" 100 0 0 100	int4notin - _null_ ));
+DATA(insert OID = 1285 (  int4notin		   PGNSP PGUID 12 f t f t f s 2 16 "23 25" 100 0 0 100	int4notin - _null_ ));
 DESCR("not in");
-DATA(insert OID = 1286 (  oidnotin		   PGNSP PGUID 12 f t t s 2 f 16 "26 25" 100 0 0 100	oidnotin - _null_ ));
+DATA(insert OID = 1286 (  oidnotin		   PGNSP PGUID 12 f t f t f s 2 16 "26 25" 100 0 0 100	oidnotin - _null_ ));
 DESCR("not in");
-DATA(insert OID = 1287 (  int44in		   PGNSP PGUID 12 f t t i 1 f 22 "0" 100 0 0 100	int44in - _null_ ));
+DATA(insert OID = 1287 (  int44in		   PGNSP PGUID 12 f t f t f i 1 22 "0" 100 0 0 100	int44in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 653 (  int44out		   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	int44out - _null_ ));
+DATA(insert OID = 653 (  int44out		   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	int44out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 655 (  namelt			   PGNSP PGUID 12 f t t i 2 f 16 "19 19" 100 0 0 100	namelt - _null_ ));
+DATA(insert OID = 655 (  namelt			   PGNSP PGUID 12 f t f t f i 2 16 "19 19" 100 0 0 100	namelt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 656 (  namele			   PGNSP PGUID 12 f t t i 2 f 16 "19 19" 100 0 0 100	namele - _null_ ));
+DATA(insert OID = 656 (  namele			   PGNSP PGUID 12 f t f t f i 2 16 "19 19" 100 0 0 100	namele - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 657 (  namegt			   PGNSP PGUID 12 f t t i 2 f 16 "19 19" 100 0 0 100	namegt - _null_ ));
+DATA(insert OID = 657 (  namegt			   PGNSP PGUID 12 f t f t f i 2 16 "19 19" 100 0 0 100	namegt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 658 (  namege			   PGNSP PGUID 12 f t t i 2 f 16 "19 19" 100 0 0 100	namege - _null_ ));
+DATA(insert OID = 658 (  namege			   PGNSP PGUID 12 f t f t f i 2 16 "19 19" 100 0 0 100	namege - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 659 (  namene			   PGNSP PGUID 12 f t t i 2 f 16 "19 19" 100 0 0 100	namene - _null_ ));
+DATA(insert OID = 659 (  namene			   PGNSP PGUID 12 f t f t f i 2 16 "19 19" 100 0 0 100	namene - _null_ ));
 DESCR("not equal");
 
-DATA(insert OID = 668 (  bpchar			   PGNSP PGUID 12 f t t i 2 f 1042 "1042 23" 100 0 0 100	bpchar - _null_ ));
+DATA(insert OID = 668 (  bpchar			   PGNSP PGUID 12 f t t t f i 2 1042 "1042 23" 100 0 0 100	bpchar - _null_ ));
 DESCR("adjust char() to typmod length");
-DATA(insert OID = 669 (  varchar		   PGNSP PGUID 12 f t t i 2 f 1043 "1043 23" 100 0 0 100	varchar - _null_ ));
+DATA(insert OID = 669 (  varchar		   PGNSP PGUID 12 f t t t f i 2 1043 "1043 23" 100 0 0 100	varchar - _null_ ));
 DESCR("adjust varchar() to typmod length");
 
-DATA(insert OID = 676 (  mktinterval	   PGNSP PGUID 12 f t t i 2 f 704 "702 702" 100 0 0 100 mktinterval - _null_ ));
+DATA(insert OID = 676 (  mktinterval	   PGNSP PGUID 12 f t f t f i 2 704 "702 702" 100 0 0 100 mktinterval - _null_ ));
 DESCR("convert to tinterval");
-DATA(insert OID = 619 (  oidvectorne	   PGNSP PGUID 12 f t t i 2 f 16 "30 30" 100 0 0 100	oidvectorne - _null_ ));
+DATA(insert OID = 619 (  oidvectorne	   PGNSP PGUID 12 f t f t f i 2 16 "30 30" 100 0 0 100	oidvectorne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 677 (  oidvectorlt	   PGNSP PGUID 12 f t t i 2 f 16 "30 30" 100 0 0 100	oidvectorlt - _null_ ));
+DATA(insert OID = 677 (  oidvectorlt	   PGNSP PGUID 12 f t f t f i 2 16 "30 30" 100 0 0 100	oidvectorlt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 678 (  oidvectorle	   PGNSP PGUID 12 f t t i 2 f 16 "30 30" 100 0 0 100	oidvectorle - _null_ ));
+DATA(insert OID = 678 (  oidvectorle	   PGNSP PGUID 12 f t f t f i 2 16 "30 30" 100 0 0 100	oidvectorle - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 679 (  oidvectoreq	   PGNSP PGUID 12 f t t i 2 f 16 "30 30" 100 0 0 100	oidvectoreq - _null_ ));
+DATA(insert OID = 679 (  oidvectoreq	   PGNSP PGUID 12 f t f t f i 2 16 "30 30" 100 0 0 100	oidvectoreq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 680 (  oidvectorge	   PGNSP PGUID 12 f t t i 2 f 16 "30 30" 100 0 0 100	oidvectorge - _null_ ));
+DATA(insert OID = 680 (  oidvectorge	   PGNSP PGUID 12 f t f t f i 2 16 "30 30" 100 0 0 100	oidvectorge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 681 (  oidvectorgt	   PGNSP PGUID 12 f t t i 2 f 16 "30 30" 100 0 0 100	oidvectorgt - _null_ ));
+DATA(insert OID = 681 (  oidvectorgt	   PGNSP PGUID 12 f t f t f i 2 16 "30 30" 100 0 0 100	oidvectorgt - _null_ ));
 DESCR("greater-than");
 
 /* OIDS 700 - 799 */
-DATA(insert OID = 710 (  getpgusername	   PGNSP PGUID 12 f t t s 0 f 19 "0" 100 0 0 100	current_user - _null_ ));
+DATA(insert OID = 710 (  getpgusername	   PGNSP PGUID 12 f t f t f s 0 19 "0" 100 0 0 100	current_user - _null_ ));
 DESCR("deprecated -- use current_user");
-DATA(insert OID = 711 (  userfntest		   PGNSP PGUID 12 f t t i 1 f 23 "23" 100 0 0 100  userfntest - _null_ ));
+DATA(insert OID = 711 (  userfntest		   PGNSP PGUID 12 f t f t f i 1 23 "23" 100 0 0 100  userfntest - _null_ ));
 DESCR("");
-DATA(insert OID = 713 (  oidrand		   PGNSP PGUID 12 f t t v 2 f 16 "26 23" 100 0 0 100	oidrand - _null_ ));
+DATA(insert OID = 713 (  oidrand		   PGNSP PGUID 12 f t f t f v 2 16 "26 23" 100 0 0 100	oidrand - _null_ ));
 DESCR("random");
-DATA(insert OID = 715 (  oidsrand		   PGNSP PGUID 12 f t t v 1 f 16 "23" 100 0 0 100  oidsrand - _null_ ));
+DATA(insert OID = 715 (  oidsrand		   PGNSP PGUID 12 f t f t f v 1 16 "23" 100 0 0 100  oidsrand - _null_ ));
 DESCR("seed random number generator");
-DATA(insert OID = 716 (  oidlt			   PGNSP PGUID 12 f t t i 2 f 16 "26 26" 100 0 0 100	oidlt - _null_ ));
+DATA(insert OID = 716 (  oidlt			   PGNSP PGUID 12 f t f t f i 2 16 "26 26" 100 0 0 100	oidlt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 717 (  oidle			   PGNSP PGUID 12 f t t i 2 f 16 "26 26" 100 0 0 100	oidle - _null_ ));
+DATA(insert OID = 717 (  oidle			   PGNSP PGUID 12 f t f t f i 2 16 "26 26" 100 0 0 100	oidle - _null_ ));
 DESCR("less-than-or-equal");
 
-DATA(insert OID = 720 (  octet_length	   PGNSP PGUID 12 f t t i 1 f 23 "17" 100 0 0 100  byteaoctetlen - _null_ ));
+DATA(insert OID = 720 (  octet_length	   PGNSP PGUID 12 f t f t f i 1 23 "17" 100 0 0 100  byteaoctetlen - _null_ ));
 DESCR("octet length");
-DATA(insert OID = 721 (  get_byte		   PGNSP PGUID 12 f t t i 2 f 23 "17 23" 100 0 0 100	byteaGetByte - _null_ ));
+DATA(insert OID = 721 (  get_byte		   PGNSP PGUID 12 f t f t f i 2 23 "17 23" 100 0 0 100	byteaGetByte - _null_ ));
 DESCR("");
-DATA(insert OID = 722 (  set_byte		   PGNSP PGUID 12 f t t i 3 f 17 "17 23 23" 100 0 0 100  byteaSetByte - _null_ ));
+DATA(insert OID = 722 (  set_byte		   PGNSP PGUID 12 f t f t f i 3 17 "17 23 23" 100 0 0 100  byteaSetByte - _null_ ));
 DESCR("");
-DATA(insert OID = 723 (  get_bit		   PGNSP PGUID 12 f t t i 2 f 23 "17 23" 100 0 0 100	byteaGetBit - _null_ ));
+DATA(insert OID = 723 (  get_bit		   PGNSP PGUID 12 f t f t f i 2 23 "17 23" 100 0 0 100	byteaGetBit - _null_ ));
 DESCR("");
-DATA(insert OID = 724 (  set_bit		   PGNSP PGUID 12 f t t i 3 f 17 "17 23 23" 100 0 0 100  byteaSetBit - _null_ ));
+DATA(insert OID = 724 (  set_bit		   PGNSP PGUID 12 f t f t f i 3 17 "17 23 23" 100 0 0 100  byteaSetBit - _null_ ));
 DESCR("");
 
-DATA(insert OID = 725 (  dist_pl		   PGNSP PGUID 12 f t t i 2 f 701 "600 628" 100 0 0 100  dist_pl - _null_ ));
+DATA(insert OID = 725 (  dist_pl		   PGNSP PGUID 12 f t f t f i 2 701 "600 628" 100 0 0 100  dist_pl - _null_ ));
 DESCR("distance between point and line");
-DATA(insert OID = 726 (  dist_lb		   PGNSP PGUID 12 f t t i 2 f 701 "628 603" 100 0 0 100  dist_lb - _null_ ));
+DATA(insert OID = 726 (  dist_lb		   PGNSP PGUID 12 f t f t f i 2 701 "628 603" 100 0 0 100  dist_lb - _null_ ));
 DESCR("distance between line and box");
-DATA(insert OID = 727 (  dist_sl		   PGNSP PGUID 12 f t t i 2 f 701 "601 628" 100 0 0 100  dist_sl - _null_ ));
+DATA(insert OID = 727 (  dist_sl		   PGNSP PGUID 12 f t f t f i 2 701 "601 628" 100 0 0 100  dist_sl - _null_ ));
 DESCR("distance between lseg and line");
-DATA(insert OID = 728 (  dist_cpoly		   PGNSP PGUID 12 f t t i 2 f 701 "718 604" 100 0 0 100  dist_cpoly - _null_ ));
+DATA(insert OID = 728 (  dist_cpoly		   PGNSP PGUID 12 f t f t f i 2 701 "718 604" 100 0 0 100  dist_cpoly - _null_ ));
 DESCR("distance between");
-DATA(insert OID = 729 (  poly_distance	   PGNSP PGUID 12 f t t i 2 f 701 "604 604" 100 0 0 100  poly_distance - _null_ ));
+DATA(insert OID = 729 (  poly_distance	   PGNSP PGUID 12 f t f t f i 2 701 "604 604" 100 0 0 100  poly_distance - _null_ ));
 DESCR("distance between");
 
-DATA(insert OID = 740 (  text_lt		   PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100	text_lt - _null_ ));
+DATA(insert OID = 740 (  text_lt		   PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100	text_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 741 (  text_le		   PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100	text_le - _null_ ));
+DATA(insert OID = 741 (  text_le		   PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100	text_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 742 (  text_gt		   PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100	text_gt - _null_ ));
+DATA(insert OID = 742 (  text_gt		   PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100	text_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 743 (  text_ge		   PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100	text_ge - _null_ ));
+DATA(insert OID = 743 (  text_ge		   PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100	text_ge - _null_ ));
 DESCR("greater-than-or-equal");
 
-DATA(insert OID = 744 (  array_eq		   PGNSP PGUID 12 f t t i 2 f 16 "0 0" 100 0 0 100 array_eq - _null_ ));
+DATA(insert OID = 744 (  array_eq		   PGNSP PGUID 12 f t f t f i 2 16 "0 0" 100 0 0 100 array_eq - _null_ ));
 DESCR("array equal");
 
-DATA(insert OID = 745 (  current_user	   PGNSP PGUID 12 f t t s 0 f 19 "0" 100 0 0 100	current_user - _null_ ));
+DATA(insert OID = 745 (  current_user	   PGNSP PGUID 12 f t f t f s 0 19 "0" 100 0 0 100	current_user - _null_ ));
 DESCR("current user name");
-DATA(insert OID = 746 (  session_user	   PGNSP PGUID 12 f t t s 0 f 19 "0" 100 0 0 100	session_user - _null_ ));
+DATA(insert OID = 746 (  session_user	   PGNSP PGUID 12 f t f t f s 0 19 "0" 100 0 0 100	session_user - _null_ ));
 DESCR("session user name");
 
-DATA(insert OID = 747 (  array_dims		   PGNSP PGUID 12 f t t i 1 f 25 "0" 100 0 0 100 array_dims - _null_ ));
+DATA(insert OID = 747 (  array_dims		   PGNSP PGUID 12 f t f t f i 1 25 "0" 100 0 0 100 array_dims - _null_ ));
 DESCR("array dimensions");
-DATA(insert OID = 750 (  array_in		   PGNSP PGUID 12 f t t i 3 f 23 "0 26 23" 100 0 0 100  array_in - _null_ ));
+DATA(insert OID = 750 (  array_in		   PGNSP PGUID 12 f t f t f i 3 23 "0 26 23" 100 0 0 100  array_in - _null_ ));
 DESCR("array");
-DATA(insert OID = 751 (  array_out		   PGNSP PGUID 12 f t t i 2 f 23 "0 26" 100 0 0 100  array_out - _null_ ));
+DATA(insert OID = 751 (  array_out		   PGNSP PGUID 12 f t f t f i 2 23 "0 26" 100 0 0 100  array_out - _null_ ));
 DESCR("array");
 
-DATA(insert OID = 760 (  smgrin			   PGNSP PGUID 12 f t t s 1 f 210 "0" 100 0 0 100  smgrin - _null_ ));
+DATA(insert OID = 760 (  smgrin			   PGNSP PGUID 12 f t f t f s 1 210 "0" 100 0 0 100  smgrin - _null_ ));
 DESCR("storage manager(internal)");
-DATA(insert OID = 761 (  smgrout		   PGNSP PGUID 12 f t t s 1 f 23	"0" 100 0 0 100  smgrout - _null_ ));
+DATA(insert OID = 761 (  smgrout		   PGNSP PGUID 12 f t f t f s 1 23	"0" 100 0 0 100  smgrout - _null_ ));
 DESCR("storage manager(internal)");
-DATA(insert OID = 762 (  smgreq			   PGNSP PGUID 12 f t t i 2 f 16 "210 210" 100 0 0 100  smgreq - _null_ ));
+DATA(insert OID = 762 (  smgreq			   PGNSP PGUID 12 f t f t f i 2 16 "210 210" 100 0 0 100  smgreq - _null_ ));
 DESCR("storage manager");
-DATA(insert OID = 763 (  smgrne			   PGNSP PGUID 12 f t t i 2 f 16 "210 210" 100 0 0 100  smgrne - _null_ ));
+DATA(insert OID = 763 (  smgrne			   PGNSP PGUID 12 f t f t f i 2 16 "210 210" 100 0 0 100  smgrne - _null_ ));
 DESCR("storage manager");
 
-DATA(insert OID = 764 (  lo_import		   PGNSP PGUID 12 f t t v 1 f 26 "25" 100 0 0 100  lo_import - _null_ ));
+DATA(insert OID = 764 (  lo_import		   PGNSP PGUID 12 f t f t f v 1 26 "25" 100 0 0 100  lo_import - _null_ ));
 DESCR("large object import");
-DATA(insert OID = 765 (  lo_export		   PGNSP PGUID 12 f t t v 2 f 23 "26 25" 100 0 0 100	lo_export - _null_ ));
+DATA(insert OID = 765 (  lo_export		   PGNSP PGUID 12 f t f t f v 2 23 "26 25" 100 0 0 100	lo_export - _null_ ));
 DESCR("large object export");
 
-DATA(insert OID = 766 (  int4inc		   PGNSP PGUID 12 f t t i 1 f 23 "23" 100 0 0 100  int4inc - _null_ ));
+DATA(insert OID = 766 (  int4inc		   PGNSP PGUID 12 f t f t f i 1 23 "23" 100 0 0 100  int4inc - _null_ ));
 DESCR("increment");
-DATA(insert OID = 768 (  int4larger		   PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100	int4larger - _null_ ));
+DATA(insert OID = 768 (  int4larger		   PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100	int4larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 769 (  int4smaller	   PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100	int4smaller - _null_ ));
+DATA(insert OID = 769 (  int4smaller	   PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100	int4smaller - _null_ ));
 DESCR("smaller of two");
-DATA(insert OID = 770 (  int2larger		   PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100	int2larger - _null_ ));
+DATA(insert OID = 770 (  int2larger		   PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100	int2larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 771 (  int2smaller	   PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100	int2smaller - _null_ ));
+DATA(insert OID = 771 (  int2smaller	   PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100	int2smaller - _null_ ));
 DESCR("smaller of two");
 
-DATA(insert OID = 774 (  gistgettuple	   PGNSP PGUID 12 f t t v 2 f 23 "0 0" 100 0 0 100  gistgettuple - _null_ ));
+DATA(insert OID = 774 (  gistgettuple	   PGNSP PGUID 12 f t f t f v 2 23 "0 0" 100 0 0 100  gistgettuple - _null_ ));
 DESCR("gist(internal)");
-DATA(insert OID = 775 (  gistinsert		   PGNSP PGUID 12 f t t v 5 f 23 "0 0 0 0 0" 100 0 0 100	gistinsert - _null_ ));
+DATA(insert OID = 775 (  gistinsert		   PGNSP PGUID 12 f t f t f v 5 23 "0 0 0 0 0" 100 0 0 100	gistinsert - _null_ ));
 DESCR("gist(internal)");
-DATA(insert OID = 777 (  gistbeginscan	   PGNSP PGUID 12 f t t v 4 f 23 "0 0 0 0" 100 0 0 100  gistbeginscan - _null_ ));
+DATA(insert OID = 777 (  gistbeginscan	   PGNSP PGUID 12 f t f t f v 4 23 "0 0 0 0" 100 0 0 100  gistbeginscan - _null_ ));
 DESCR("gist(internal)");
-DATA(insert OID = 778 (  gistrescan		   PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100	gistrescan - _null_ ));
+DATA(insert OID = 778 (  gistrescan		   PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100	gistrescan - _null_ ));
 DESCR("gist(internal)");
-DATA(insert OID = 779 (  gistendscan	   PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100	gistendscan - _null_ ));
+DATA(insert OID = 779 (  gistendscan	   PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100	gistendscan - _null_ ));
 DESCR("gist(internal)");
-DATA(insert OID = 780 (  gistmarkpos	   PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100	gistmarkpos - _null_ ));
+DATA(insert OID = 780 (  gistmarkpos	   PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100	gistmarkpos - _null_ ));
 DESCR("gist(internal)");
-DATA(insert OID = 781 (  gistrestrpos	   PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100	gistrestrpos - _null_ ));
+DATA(insert OID = 781 (  gistrestrpos	   PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100	gistrestrpos - _null_ ));
 DESCR("gist(internal)");
-DATA(insert OID = 782 (  gistbuild		   PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100	gistbuild - _null_ ));
+DATA(insert OID = 782 (  gistbuild		   PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100	gistbuild - _null_ ));
 DESCR("gist(internal)");
-DATA(insert OID = 776 (  gistbulkdelete    PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100	gistbulkdelete - _null_ ));
+DATA(insert OID = 776 (  gistbulkdelete    PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100	gistbulkdelete - _null_ ));
 DESCR("gist(internal)");
-DATA(insert OID = 772 (  gistcostestimate  PGNSP PGUID 12 f t t v 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100  gistcostestimate - _null_ ));
+DATA(insert OID = 772 (  gistcostestimate  PGNSP PGUID 12 f t f t f v 8 0 "0 0 0 0 0 0 0 0" 100 0 0 100  gistcostestimate - _null_ ));
 DESCR("gist(internal)");
 
-DATA(insert OID = 784 (  tintervaleq	   PGNSP PGUID 12 f t t i 2 f 16 "704 704" 100 0 0 100  tintervaleq - _null_ ));
+DATA(insert OID = 784 (  tintervaleq	   PGNSP PGUID 12 f t f t f i 2 16 "704 704" 100 0 0 100  tintervaleq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 785 (  tintervalne	   PGNSP PGUID 12 f t t i 2 f 16 "704 704" 100 0 0 100  tintervalne - _null_ ));
+DATA(insert OID = 785 (  tintervalne	   PGNSP PGUID 12 f t f t f i 2 16 "704 704" 100 0 0 100  tintervalne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 786 (  tintervallt	   PGNSP PGUID 12 f t t i 2 f 16 "704 704" 100 0 0 100  tintervallt - _null_ ));
+DATA(insert OID = 786 (  tintervallt	   PGNSP PGUID 12 f t f t f i 2 16 "704 704" 100 0 0 100  tintervallt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 787 (  tintervalgt	   PGNSP PGUID 12 f t t i 2 f 16 "704 704" 100 0 0 100  tintervalgt - _null_ ));
+DATA(insert OID = 787 (  tintervalgt	   PGNSP PGUID 12 f t f t f i 2 16 "704 704" 100 0 0 100  tintervalgt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 788 (  tintervalle	   PGNSP PGUID 12 f t t i 2 f 16 "704 704" 100 0 0 100  tintervalle - _null_ ));
+DATA(insert OID = 788 (  tintervalle	   PGNSP PGUID 12 f t f t f i 2 16 "704 704" 100 0 0 100  tintervalle - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 789 (  tintervalge	   PGNSP PGUID 12 f t t i 2 f 16 "704 704" 100 0 0 100  tintervalge - _null_ ));
+DATA(insert OID = 789 (  tintervalge	   PGNSP PGUID 12 f t f t f i 2 16 "704 704" 100 0 0 100  tintervalge - _null_ ));
 DESCR("greater-than-or-equal");
 
 /* OIDS 800 - 899 */
 
-DATA(insert OID = 817 (  oid			   PGNSP PGUID 12 f t t i 1 f 26 "25" 100 0 0 100  text_oid - _null_ ));
+DATA(insert OID = 817 (  oid			   PGNSP PGUID 12 f t f t f i 1 26 "25" 100 0 0 100  text_oid - _null_ ));
 DESCR("convert text to oid");
-DATA(insert OID = 818 (  int2			   PGNSP PGUID 12 f t t i 1 f 21 "25" 100 0 0 100  text_int2 - _null_ ));
+DATA(insert OID = 818 (  int2			   PGNSP PGUID 12 f t f t f i 1 21 "25" 100 0 0 100  text_int2 - _null_ ));
 DESCR("convert text to int2");
-DATA(insert OID = 819 (  int4			   PGNSP PGUID 12 f t t i 1 f 23 "25" 100 0 0 100  text_int4 - _null_ ));
+DATA(insert OID = 819 (  int4			   PGNSP PGUID 12 f t f t f i 1 23 "25" 100 0 0 100  text_int4 - _null_ ));
 DESCR("convert text to int4");
 
-DATA(insert OID = 838 (  float8			   PGNSP PGUID 12 f t t i 1 f 701 "25" 100 0 0 100  text_float8 - _null_ ));
+DATA(insert OID = 838 (  float8			   PGNSP PGUID 12 f t f t f i 1 701 "25" 100 0 0 100  text_float8 - _null_ ));
 DESCR("convert text to float8");
-DATA(insert OID = 839 (  float4			   PGNSP PGUID 12 f t t i 1 f 700 "25" 100 0 0 100  text_float4 - _null_ ));
+DATA(insert OID = 839 (  float4			   PGNSP PGUID 12 f t f t f i 1 700 "25" 100 0 0 100  text_float4 - _null_ ));
 DESCR("convert text to float4");
-DATA(insert OID = 840 (  text			   PGNSP PGUID 12 f t t i 1 f  25 "701" 100 0 0 100  float8_text - _null_ ));
+DATA(insert OID = 840 (  text			   PGNSP PGUID 12 f t t t f i 1  25 "701" 100 0 0 100  float8_text - _null_ ));
 DESCR("convert float8 to text");
-DATA(insert OID = 841 (  text			   PGNSP PGUID 12 f t t i 1 f  25 "700" 100 0 0 100  float4_text - _null_ ));
+DATA(insert OID = 841 (  text			   PGNSP PGUID 12 f t t t f i 1  25 "700" 100 0 0 100  float4_text - _null_ ));
 DESCR("convert float4 to text");
 
-DATA(insert OID =  846 (  cash_mul_flt4    PGNSP PGUID 12 f t t i 2 f 790 "790 700" 100 0 0 100  cash_mul_flt4 - _null_ ));
+DATA(insert OID =  846 (  cash_mul_flt4    PGNSP PGUID 12 f t f t f i 2 790 "790 700" 100 0 0 100  cash_mul_flt4 - _null_ ));
 DESCR("multiply");
-DATA(insert OID =  847 (  cash_div_flt4    PGNSP PGUID 12 f t t i 2 f 790 "790 700" 100 0 0 100  cash_div_flt4 - _null_ ));
+DATA(insert OID =  847 (  cash_div_flt4    PGNSP PGUID 12 f t f t f i 2 790 "790 700" 100 0 0 100  cash_div_flt4 - _null_ ));
 DESCR("divide");
-DATA(insert OID =  848 (  flt4_mul_cash    PGNSP PGUID 12 f t t i 2 f 790 "700 790" 100 0 0 100  flt4_mul_cash - _null_ ));
+DATA(insert OID =  848 (  flt4_mul_cash    PGNSP PGUID 12 f t f t f i 2 790 "700 790" 100 0 0 100  flt4_mul_cash - _null_ ));
 DESCR("multiply");
 
-DATA(insert OID =  849 (  position		   PGNSP PGUID 12 f t t i 2 f 23 "25 25" 100 0 0 100 textpos - _null_ ));
+DATA(insert OID =  849 (  position		   PGNSP PGUID 12 f t f t f i 2 23 "25 25" 100 0 0 100 textpos - _null_ ));
 DESCR("return position of substring");
-DATA(insert OID =  850 (  textlike		   PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100 textlike - _null_ ));
+DATA(insert OID =  850 (  textlike		   PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100 textlike - _null_ ));
 DESCR("matches LIKE expression");
-DATA(insert OID =  851 (  textnlike		   PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100 textnlike - _null_ ));
+DATA(insert OID =  851 (  textnlike		   PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100 textnlike - _null_ ));
 DESCR("does not match LIKE expression");
 
-DATA(insert OID =  852 (  int48eq		   PGNSP PGUID 12 f t t i 2 f 16 "23 20" 100 0 0 100	int48eq - _null_ ));
+DATA(insert OID =  852 (  int48eq		   PGNSP PGUID 12 f t f t f i 2 16 "23 20" 100 0 0 100	int48eq - _null_ ));
 DESCR("equal");
-DATA(insert OID =  853 (  int48ne		   PGNSP PGUID 12 f t t i 2 f 16 "23 20" 100 0 0 100	int48ne - _null_ ));
+DATA(insert OID =  853 (  int48ne		   PGNSP PGUID 12 f t f t f i 2 16 "23 20" 100 0 0 100	int48ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID =  854 (  int48lt		   PGNSP PGUID 12 f t t i 2 f 16 "23 20" 100 0 0 100	int48lt - _null_ ));
+DATA(insert OID =  854 (  int48lt		   PGNSP PGUID 12 f t f t f i 2 16 "23 20" 100 0 0 100	int48lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID =  855 (  int48gt		   PGNSP PGUID 12 f t t i 2 f 16 "23 20" 100 0 0 100	int48gt - _null_ ));
+DATA(insert OID =  855 (  int48gt		   PGNSP PGUID 12 f t f t f i 2 16 "23 20" 100 0 0 100	int48gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID =  856 (  int48le		   PGNSP PGUID 12 f t t i 2 f 16 "23 20" 100 0 0 100	int48le - _null_ ));
+DATA(insert OID =  856 (  int48le		   PGNSP PGUID 12 f t f t f i 2 16 "23 20" 100 0 0 100	int48le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID =  857 (  int48ge		   PGNSP PGUID 12 f t t i 2 f 16 "23 20" 100 0 0 100	int48ge - _null_ ));
+DATA(insert OID =  857 (  int48ge		   PGNSP PGUID 12 f t f t f i 2 16 "23 20" 100 0 0 100	int48ge - _null_ ));
 DESCR("greater-than-or-equal");
 
-DATA(insert OID =  858 (  namelike		   PGNSP PGUID 12 f t t i 2 f 16 "19 25" 100 0 0 100	namelike - _null_ ));
+DATA(insert OID =  858 (  namelike		   PGNSP PGUID 12 f t f t f i 2 16 "19 25" 100 0 0 100	namelike - _null_ ));
 DESCR("matches LIKE expression");
-DATA(insert OID =  859 (  namenlike		   PGNSP PGUID 12 f t t i 2 f 16 "19 25" 100 0 0 100	namenlike - _null_ ));
+DATA(insert OID =  859 (  namenlike		   PGNSP PGUID 12 f t f t f i 2 16 "19 25" 100 0 0 100	namenlike - _null_ ));
 DESCR("does not match LIKE expression");
 
-DATA(insert OID =  860 (  bpchar		   PGNSP PGUID 12 f t t i 1 f 1042 "18" 100 0 0 100  char_bpchar - _null_ ));
+DATA(insert OID =  860 (  bpchar		   PGNSP PGUID 12 f t t t f i 1 1042 "18" 100 0 0 100  char_bpchar - _null_ ));
 DESCR("convert char to char()");
-DATA(insert OID =  861 (  char			   PGNSP PGUID 12 f t t i 1 f 18 "1042" 100 0 0 100  bpchar_char - _null_ ));
-DESCR("convert char() to char");
 
-DATA(insert OID =  862 (  int4_mul_cash		   PGNSP PGUID 12 f t t i 2 f 790 "23 790" 100 0 0 100  int4_mul_cash - _null_ ));
+DATA(insert OID =  862 (  int4_mul_cash		   PGNSP PGUID 12 f t f t f i 2 790 "23 790" 100 0 0 100  int4_mul_cash - _null_ ));
 DESCR("multiply");
-DATA(insert OID =  863 (  int2_mul_cash		   PGNSP PGUID 12 f t t i 2 f 790 "21 790" 100 0 0 100  int2_mul_cash - _null_ ));
+DATA(insert OID =  863 (  int2_mul_cash		   PGNSP PGUID 12 f t f t f i 2 790 "21 790" 100 0 0 100  int2_mul_cash - _null_ ));
 DESCR("multiply");
-DATA(insert OID =  864 (  cash_mul_int4		   PGNSP PGUID 12 f t t i 2 f 790 "790 23" 100 0 0 100  cash_mul_int4 - _null_ ));
+DATA(insert OID =  864 (  cash_mul_int4		   PGNSP PGUID 12 f t f t f i 2 790 "790 23" 100 0 0 100  cash_mul_int4 - _null_ ));
 DESCR("multiply");
-DATA(insert OID =  865 (  cash_div_int4		   PGNSP PGUID 12 f t t i 2 f 790 "790 23" 100 0 0 100  cash_div_int4 - _null_ ));
+DATA(insert OID =  865 (  cash_div_int4		   PGNSP PGUID 12 f t f t f i 2 790 "790 23" 100 0 0 100  cash_div_int4 - _null_ ));
 DESCR("divide");
-DATA(insert OID =  866 (  cash_mul_int2		   PGNSP PGUID 12 f t t i 2 f 790 "790 21" 100 0 0 100  cash_mul_int2 - _null_ ));
+DATA(insert OID =  866 (  cash_mul_int2		   PGNSP PGUID 12 f t f t f i 2 790 "790 21" 100 0 0 100  cash_mul_int2 - _null_ ));
 DESCR("multiply");
-DATA(insert OID =  867 (  cash_div_int2		   PGNSP PGUID 12 f t t i 2 f 790 "790 21" 100 0 0 100  cash_div_int2 - _null_ ));
+DATA(insert OID =  867 (  cash_div_int2		   PGNSP PGUID 12 f t f t f i 2 790 "790 21" 100 0 0 100  cash_div_int2 - _null_ ));
 DESCR("divide");
 
-DATA(insert OID =  886 (  cash_in		   PGNSP PGUID 12 f t t i 1 f 790 "0" 100 0 0 100  cash_in - _null_ ));
+DATA(insert OID =  886 (  cash_in		   PGNSP PGUID 12 f t f t f i 1 790 "0" 100 0 0 100  cash_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  887 (  cash_out		   PGNSP PGUID 12 f t t i 1 f  23 "0" 100 0 0 100  cash_out - _null_ ));
+DATA(insert OID =  887 (  cash_out		   PGNSP PGUID 12 f t f t f i 1  23 "0" 100 0 0 100  cash_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  888 (  cash_eq		   PGNSP PGUID 12 f t t i 2 f  16 "790 790" 100 0 0 100  cash_eq - _null_ ));
+DATA(insert OID =  888 (  cash_eq		   PGNSP PGUID 12 f t f t f i 2  16 "790 790" 100 0 0 100  cash_eq - _null_ ));
 DESCR("equal");
-DATA(insert OID =  889 (  cash_ne		   PGNSP PGUID 12 f t t i 2 f  16 "790 790" 100 0 0 100  cash_ne - _null_ ));
+DATA(insert OID =  889 (  cash_ne		   PGNSP PGUID 12 f t f t f i 2  16 "790 790" 100 0 0 100  cash_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID =  890 (  cash_lt		   PGNSP PGUID 12 f t t i 2 f  16 "790 790" 100 0 0 100  cash_lt - _null_ ));
+DATA(insert OID =  890 (  cash_lt		   PGNSP PGUID 12 f t f t f i 2  16 "790 790" 100 0 0 100  cash_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID =  891 (  cash_le		   PGNSP PGUID 12 f t t i 2 f  16 "790 790" 100 0 0 100  cash_le - _null_ ));
+DATA(insert OID =  891 (  cash_le		   PGNSP PGUID 12 f t f t f i 2  16 "790 790" 100 0 0 100  cash_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID =  892 (  cash_gt		   PGNSP PGUID 12 f t t i 2 f  16 "790 790" 100 0 0 100  cash_gt - _null_ ));
+DATA(insert OID =  892 (  cash_gt		   PGNSP PGUID 12 f t f t f i 2  16 "790 790" 100 0 0 100  cash_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID =  893 (  cash_ge		   PGNSP PGUID 12 f t t i 2 f  16 "790 790" 100 0 0 100  cash_ge - _null_ ));
+DATA(insert OID =  893 (  cash_ge		   PGNSP PGUID 12 f t f t f i 2  16 "790 790" 100 0 0 100  cash_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID =  894 (  cash_pl		   PGNSP PGUID 12 f t t i 2 f 790 "790 790" 100 0 0 100  cash_pl - _null_ ));
+DATA(insert OID =  894 (  cash_pl		   PGNSP PGUID 12 f t f t f i 2 790 "790 790" 100 0 0 100  cash_pl - _null_ ));
 DESCR("add");
-DATA(insert OID =  895 (  cash_mi		   PGNSP PGUID 12 f t t i 2 f 790 "790 790" 100 0 0 100  cash_mi - _null_ ));
+DATA(insert OID =  895 (  cash_mi		   PGNSP PGUID 12 f t f t f i 2 790 "790 790" 100 0 0 100  cash_mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID =  896 (  cash_mul_flt8    PGNSP PGUID 12 f t t i 2 f 790 "790 701" 100 0 0 100  cash_mul_flt8 - _null_ ));
+DATA(insert OID =  896 (  cash_mul_flt8    PGNSP PGUID 12 f t f t f i 2 790 "790 701" 100 0 0 100  cash_mul_flt8 - _null_ ));
 DESCR("multiply");
-DATA(insert OID =  897 (  cash_div_flt8    PGNSP PGUID 12 f t t i 2 f 790 "790 701" 100 0 0 100  cash_div_flt8 - _null_ ));
+DATA(insert OID =  897 (  cash_div_flt8    PGNSP PGUID 12 f t f t f i 2 790 "790 701" 100 0 0 100  cash_div_flt8 - _null_ ));
 DESCR("divide");
-DATA(insert OID =  898 (  cashlarger	   PGNSP PGUID 12 f t t i 2 f 790 "790 790" 100 0 0 100  cashlarger - _null_ ));
+DATA(insert OID =  898 (  cashlarger	   PGNSP PGUID 12 f t f t f i 2 790 "790 790" 100 0 0 100  cashlarger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID =  899 (  cashsmaller	   PGNSP PGUID 12 f t t i 2 f 790 "790 790" 100 0 0 100  cashsmaller - _null_ ));
+DATA(insert OID =  899 (  cashsmaller	   PGNSP PGUID 12 f t f t f i 2 790 "790 790" 100 0 0 100  cashsmaller - _null_ ));
 DESCR("smaller of two");
-DATA(insert OID =  919 (  flt8_mul_cash    PGNSP PGUID 12 f t t i 2 f 790 "701 790" 100 0 0 100  flt8_mul_cash - _null_ ));
+DATA(insert OID =  919 (  flt8_mul_cash    PGNSP PGUID 12 f t f t f i 2 790 "701 790" 100 0 0 100  flt8_mul_cash - _null_ ));
 DESCR("multiply");
-DATA(insert OID =  935 (  cash_words	   PGNSP PGUID 12 f t t i 1 f  25 "790" 100 0 0 100  cash_words - _null_ ));
+DATA(insert OID =  935 (  cash_words	   PGNSP PGUID 12 f t f t f i 1  25 "790" 100 0 0 100  cash_words - _null_ ));
 DESCR("output amount as words");
 
 /* OIDS 900 - 999 */
 
-DATA(insert OID = 940 (  mod			   PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100	int2mod - _null_ ));
+DATA(insert OID = 940 (  mod			   PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100	int2mod - _null_ ));
 DESCR("modulus");
-DATA(insert OID = 941 (  mod			   PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100	int4mod - _null_ ));
+DATA(insert OID = 941 (  mod			   PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100	int4mod - _null_ ));
 DESCR("modulus");
-DATA(insert OID = 942 (  mod			   PGNSP PGUID 12 f t t i 2 f 23 "21 23" 100 0 0 100	int24mod - _null_ ));
+DATA(insert OID = 942 (  mod			   PGNSP PGUID 12 f t f t f i 2 23 "21 23" 100 0 0 100	int24mod - _null_ ));
 DESCR("modulus");
-DATA(insert OID = 943 (  mod			   PGNSP PGUID 12 f t t i 2 f 23 "23 21" 100 0 0 100	int42mod - _null_ ));
+DATA(insert OID = 943 (  mod			   PGNSP PGUID 12 f t f t f i 2 23 "23 21" 100 0 0 100	int42mod - _null_ ));
 DESCR("modulus");
 
-DATA(insert OID = 945 (  int8mod		   PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100	int8mod - _null_ ));
+DATA(insert OID = 945 (  int8mod		   PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100	int8mod - _null_ ));
 DESCR("modulus");
-DATA(insert OID = 947 (  mod			   PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100	int8mod - _null_ ));
+DATA(insert OID = 947 (  mod			   PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100	int8mod - _null_ ));
 DESCR("modulus");
 
-DATA(insert OID = 944 (  char			   PGNSP PGUID 12 f t t i 1 f 18 "25" 100 0 0 100  text_char - _null_ ));
+DATA(insert OID = 944 (  char			   PGNSP PGUID 12 f t t t f i 1 18 "25" 100 0 0 100  text_char - _null_ ));
 DESCR("convert text to char");
-DATA(insert OID = 946 (  text			   PGNSP PGUID 12 f t t i 1 f 25 "18" 100 0 0 100  char_text - _null_ ));
+DATA(insert OID = 946 (  text			   PGNSP PGUID 12 f t t t f i 1 25 "18" 100 0 0 100  char_text - _null_ ));
 DESCR("convert char to text");
 
-DATA(insert OID = 950 (  istrue			   PGNSP PGUID 12 f t f i 1 f 16 "16" 100 0 0 100  istrue - _null_ ));
+DATA(insert OID = 950 (  istrue			   PGNSP PGUID 12 f t f f f i 1 16 "16" 100 0 0 100  istrue - _null_ ));
 DESCR("bool is true (not false or unknown)");
-DATA(insert OID = 951 (  isfalse		   PGNSP PGUID 12 f t f i 1 f 16 "16" 100 0 0 100  isfalse - _null_ ));
+DATA(insert OID = 951 (  isfalse		   PGNSP PGUID 12 f t f f f i 1 16 "16" 100 0 0 100  isfalse - _null_ ));
 DESCR("bool is false (not true or unknown)");
 
-DATA(insert OID = 952 (  lo_open		   PGNSP PGUID 12 f t t v 2 f 23 "26 23" 100 0 0 100	lo_open - _null_ ));
+DATA(insert OID = 952 (  lo_open		   PGNSP PGUID 12 f t f t f v 2 23 "26 23" 100 0 0 100	lo_open - _null_ ));
 DESCR("large object open");
-DATA(insert OID = 953 (  lo_close		   PGNSP PGUID 12 f t t v 1 f 23 "23" 100 0 0 100  lo_close - _null_ ));
+DATA(insert OID = 953 (  lo_close		   PGNSP PGUID 12 f t f t f v 1 23 "23" 100 0 0 100  lo_close - _null_ ));
 DESCR("large object close");
-DATA(insert OID = 954 (  loread			   PGNSP PGUID 12 f t t v 2 f 17 "23 23" 100 0 0 100	loread - _null_ ));
+DATA(insert OID = 954 (  loread			   PGNSP PGUID 12 f t f t f v 2 17 "23 23" 100 0 0 100	loread - _null_ ));
 DESCR("large object read");
-DATA(insert OID = 955 (  lowrite		   PGNSP PGUID 12 f t t v 2 f 23 "23 17" 100 0 0 100	lowrite - _null_ ));
+DATA(insert OID = 955 (  lowrite		   PGNSP PGUID 12 f t f t f v 2 23 "23 17" 100 0 0 100	lowrite - _null_ ));
 DESCR("large object write");
-DATA(insert OID = 956 (  lo_lseek		   PGNSP PGUID 12 f t t v 3 f 23 "23 23 23" 100 0 0 100  lo_lseek - _null_ ));
+DATA(insert OID = 956 (  lo_lseek		   PGNSP PGUID 12 f t f t f v 3 23 "23 23 23" 100 0 0 100  lo_lseek - _null_ ));
 DESCR("large object seek");
-DATA(insert OID = 957 (  lo_creat		   PGNSP PGUID 12 f t t v 1 f 26 "23" 100 0 0 100  lo_creat - _null_ ));
+DATA(insert OID = 957 (  lo_creat		   PGNSP PGUID 12 f t f t f v 1 26 "23" 100 0 0 100  lo_creat - _null_ ));
 DESCR("large object create");
-DATA(insert OID = 958 (  lo_tell		   PGNSP PGUID 12 f t t v 1 f 23 "23" 100 0 0 100  lo_tell - _null_ ));
+DATA(insert OID = 958 (  lo_tell		   PGNSP PGUID 12 f t f t f v 1 23 "23" 100 0 0 100  lo_tell - _null_ ));
 DESCR("large object position");
 
-DATA(insert OID = 959 (  on_pl			   PGNSP PGUID 12 f t t i 2 f  16 "600 628" 100 0 0 100  on_pl - _null_ ));
+DATA(insert OID = 959 (  on_pl			   PGNSP PGUID 12 f t f t f i 2  16 "600 628" 100 0 0 100  on_pl - _null_ ));
 DESCR("point on line?");
-DATA(insert OID = 960 (  on_sl			   PGNSP PGUID 12 f t t i 2 f  16 "601 628" 100 0 0 100  on_sl - _null_ ));
+DATA(insert OID = 960 (  on_sl			   PGNSP PGUID 12 f t f t f i 2  16 "601 628" 100 0 0 100  on_sl - _null_ ));
 DESCR("lseg on line?");
-DATA(insert OID = 961 (  close_pl		   PGNSP PGUID 12 f t t i 2 f 600 "600 628" 100 0 0 100  close_pl - _null_ ));
+DATA(insert OID = 961 (  close_pl		   PGNSP PGUID 12 f t f t f i 2 600 "600 628" 100 0 0 100  close_pl - _null_ ));
 DESCR("closest point on line");
-DATA(insert OID = 962 (  close_sl		   PGNSP PGUID 12 f t t i 2 f 600 "601 628" 100 0 0 100  close_sl - _null_ ));
+DATA(insert OID = 962 (  close_sl		   PGNSP PGUID 12 f t f t f i 2 600 "601 628" 100 0 0 100  close_sl - _null_ ));
 DESCR("closest point to line segment on line");
-DATA(insert OID = 963 (  close_lb		   PGNSP PGUID 12 f t t i 2 f 600 "628 603" 100 0 0 100  close_lb - _null_ ));
+DATA(insert OID = 963 (  close_lb		   PGNSP PGUID 12 f t f t f i 2 600 "628 603" 100 0 0 100  close_lb - _null_ ));
 DESCR("closest point to line on box");
 
-DATA(insert OID = 964 (  lo_unlink		   PGNSP PGUID 12 f t t v 1 f  23 "26" 100 0 0 100  lo_unlink - _null_ ));
+DATA(insert OID = 964 (  lo_unlink		   PGNSP PGUID 12 f t f t f v 1  23 "26" 100 0 0 100  lo_unlink - _null_ ));
 DESCR("large object unlink(delete)");
-DATA(insert OID = 972 (  regproctooid	   PGNSP PGUID 12 f t t i 1 f  26 "24" 100 0 0 100  regproctooid - _null_ ));
+DATA(insert OID = 972 (  regproctooid	   PGNSP PGUID 12 f t f t f i 1  26 "24" 100 0 0 100  regproctooid - _null_ ));
 DESCR("get oid for regproc");
 
-DATA(insert OID = 973 (  path_inter		   PGNSP PGUID 12 f t t i 2 f  16 "602 602" 100 0 0 100  path_inter - _null_ ));
+DATA(insert OID = 973 (  path_inter		   PGNSP PGUID 12 f t f t f i 2  16 "602 602" 100 0 0 100  path_inter - _null_ ));
 DESCR("paths intersect?");
-DATA(insert OID = 975 (  area			   PGNSP PGUID 12 f t t i 1 f 701 "603" 100 0 0 100  box_area - _null_ ));
+DATA(insert OID = 975 (  area			   PGNSP PGUID 12 f t f t f i 1 701 "603" 100 0 0 100  box_area - _null_ ));
 DESCR("box area");
-DATA(insert OID = 976 (  width			   PGNSP PGUID 12 f t t i 1 f 701 "603" 100 0 0 100  box_width - _null_ ));
+DATA(insert OID = 976 (  width			   PGNSP PGUID 12 f t f t f i 1 701 "603" 100 0 0 100  box_width - _null_ ));
 DESCR("box width");
-DATA(insert OID = 977 (  height			   PGNSP PGUID 12 f t t i 1 f 701 "603" 100 0 0 100  box_height - _null_ ));
+DATA(insert OID = 977 (  height			   PGNSP PGUID 12 f t f t f i 1 701 "603" 100 0 0 100  box_height - _null_ ));
 DESCR("box height");
-DATA(insert OID = 978 (  box_distance	   PGNSP PGUID 12 f t t i 2 f 701 "603 603" 100 0 0 100  box_distance - _null_ ));
+DATA(insert OID = 978 (  box_distance	   PGNSP PGUID 12 f t f t f i 2 701 "603 603" 100 0 0 100  box_distance - _null_ ));
 DESCR("distance between boxes");
-DATA(insert OID = 980 (  box_intersect	   PGNSP PGUID 12 f t t i 2 f 603 "603 603" 100 0 0 100  box_intersect - _null_ ));
+DATA(insert OID = 980 (  box_intersect	   PGNSP PGUID 12 f t f t f i 2 603 "603 603" 100 0 0 100  box_intersect - _null_ ));
 DESCR("box intersection (another box)");
-DATA(insert OID = 981 (  diagonal		   PGNSP PGUID 12 f t t i 1 f 601 "603" 100 0 0 100  box_diagonal - _null_ ));
+DATA(insert OID = 981 (  diagonal		   PGNSP PGUID 12 f t f t f i 1 601 "603" 100 0 0 100  box_diagonal - _null_ ));
 DESCR("box diagonal");
-DATA(insert OID = 982 (  path_n_lt		   PGNSP PGUID 12 f t t i 2 f 16 "602 602" 100 0 0 100  path_n_lt - _null_ ));
+DATA(insert OID = 982 (  path_n_lt		   PGNSP PGUID 12 f t f t f i 2 16 "602 602" 100 0 0 100  path_n_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 983 (  path_n_gt		   PGNSP PGUID 12 f t t i 2 f 16 "602 602" 100 0 0 100  path_n_gt - _null_ ));
+DATA(insert OID = 983 (  path_n_gt		   PGNSP PGUID 12 f t f t f i 2 16 "602 602" 100 0 0 100  path_n_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 984 (  path_n_eq		   PGNSP PGUID 12 f t t i 2 f 16 "602 602" 100 0 0 100  path_n_eq - _null_ ));
+DATA(insert OID = 984 (  path_n_eq		   PGNSP PGUID 12 f t f t f i 2 16 "602 602" 100 0 0 100  path_n_eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 985 (  path_n_le		   PGNSP PGUID 12 f t t i 2 f 16 "602 602" 100 0 0 100  path_n_le - _null_ ));
+DATA(insert OID = 985 (  path_n_le		   PGNSP PGUID 12 f t f t f i 2 16 "602 602" 100 0 0 100  path_n_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 986 (  path_n_ge		   PGNSP PGUID 12 f t t i 2 f 16 "602 602" 100 0 0 100  path_n_ge - _null_ ));
+DATA(insert OID = 986 (  path_n_ge		   PGNSP PGUID 12 f t f t f i 2 16 "602 602" 100 0 0 100  path_n_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 987 (  path_length	   PGNSP PGUID 12 f t t i 1 f 701 "602" 100 0 0 100  path_length - _null_ ));
+DATA(insert OID = 987 (  path_length	   PGNSP PGUID 12 f t f t f i 1 701 "602" 100 0 0 100  path_length - _null_ ));
 DESCR("sum of path segments");
-DATA(insert OID = 988 (  point_ne		   PGNSP PGUID 12 f t t i 2 f 16 "600 600" 100 0 0 100  point_ne - _null_ ));
+DATA(insert OID = 988 (  point_ne		   PGNSP PGUID 12 f t f t f i 2 16 "600 600" 100 0 0 100  point_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 989 (  point_vert		   PGNSP PGUID 12 f t t i 2 f 16 "600 600" 100 0 0 100  point_vert - _null_ ));
+DATA(insert OID = 989 (  point_vert		   PGNSP PGUID 12 f t f t f i 2 16 "600 600" 100 0 0 100  point_vert - _null_ ));
 DESCR("vertically aligned?");
-DATA(insert OID = 990 (  point_horiz	   PGNSP PGUID 12 f t t i 2 f 16 "600 600" 100 0 0 100  point_horiz - _null_ ));
+DATA(insert OID = 990 (  point_horiz	   PGNSP PGUID 12 f t f t f i 2 16 "600 600" 100 0 0 100  point_horiz - _null_ ));
 DESCR("horizontally aligned?");
-DATA(insert OID = 991 (  point_distance    PGNSP PGUID 12 f t t i 2 f 701 "600 600" 100 0 0 100  point_distance - _null_ ));
+DATA(insert OID = 991 (  point_distance    PGNSP PGUID 12 f t f t f i 2 701 "600 600" 100 0 0 100  point_distance - _null_ ));
 DESCR("distance between");
-DATA(insert OID = 992 (  slope			   PGNSP PGUID 12 f t t i 2 f 701 "600 600" 100 0 0 100  point_slope - _null_ ));
+DATA(insert OID = 992 (  slope			   PGNSP PGUID 12 f t f t f i 2 701 "600 600" 100 0 0 100  point_slope - _null_ ));
 DESCR("slope between points");
-DATA(insert OID = 993 (  lseg			   PGNSP PGUID 12 f t t i 2 f 601 "600 600" 100 0 0 100  lseg_construct - _null_ ));
+DATA(insert OID = 993 (  lseg			   PGNSP PGUID 12 f t f t f i 2 601 "600 600" 100 0 0 100  lseg_construct - _null_ ));
 DESCR("convert points to line segment");
-DATA(insert OID = 994 (  lseg_intersect    PGNSP PGUID 12 f t t i 2 f 16 "601 601" 100 0 0 100  lseg_intersect - _null_ ));
+DATA(insert OID = 994 (  lseg_intersect    PGNSP PGUID 12 f t f t f i 2 16 "601 601" 100 0 0 100  lseg_intersect - _null_ ));
 DESCR("intersect?");
-DATA(insert OID = 995 (  lseg_parallel	   PGNSP PGUID 12 f t t i 2 f 16 "601 601" 100 0 0 100  lseg_parallel - _null_ ));
+DATA(insert OID = 995 (  lseg_parallel	   PGNSP PGUID 12 f t f t f i 2 16 "601 601" 100 0 0 100  lseg_parallel - _null_ ));
 DESCR("parallel?");
-DATA(insert OID = 996 (  lseg_perp		   PGNSP PGUID 12 f t t i 2 f 16 "601 601" 100 0 0 100  lseg_perp - _null_ ));
+DATA(insert OID = 996 (  lseg_perp		   PGNSP PGUID 12 f t f t f i 2 16 "601 601" 100 0 0 100  lseg_perp - _null_ ));
 DESCR("perpendicular?");
-DATA(insert OID = 997 (  lseg_vertical	   PGNSP PGUID 12 f t t i 1 f 16 "601" 100 0 0 100  lseg_vertical - _null_ ));
+DATA(insert OID = 997 (  lseg_vertical	   PGNSP PGUID 12 f t f t f i 1 16 "601" 100 0 0 100  lseg_vertical - _null_ ));
 DESCR("vertical?");
-DATA(insert OID = 998 (  lseg_horizontal   PGNSP PGUID 12 f t t i 1 f 16 "601" 100 0 0 100  lseg_horizontal - _null_ ));
+DATA(insert OID = 998 (  lseg_horizontal   PGNSP PGUID 12 f t f t f i 1 16 "601" 100 0 0 100  lseg_horizontal - _null_ ));
 DESCR("horizontal?");
-DATA(insert OID = 999 (  lseg_eq		   PGNSP PGUID 12 f t t i 2 f 16 "601 601" 100 0 0 100  lseg_eq - _null_ ));
+DATA(insert OID = 999 (  lseg_eq		   PGNSP PGUID 12 f t f t f i 2 16 "601 601" 100 0 0 100  lseg_eq - _null_ ));
 DESCR("equal");
 
-DATA(insert OID =  748 (  date			   PGNSP PGUID 12 f t t s 1 f 1082 "25" 100 0 0 100 text_date - _null_ ));
+DATA(insert OID =  748 (  date			   PGNSP PGUID 12 f t f t f s 1 1082 "25" 100 0 0 100 text_date - _null_ ));
 DESCR("convert text to date");
-DATA(insert OID =  749 (  text			   PGNSP PGUID 12 f t t s 1 f 25 "1082" 100 0 0 100 date_text - _null_ ));
+DATA(insert OID =  749 (  text			   PGNSP PGUID 12 f t t t f s 1 25 "1082" 100 0 0 100 date_text - _null_ ));
 DESCR("convert date to text");
-DATA(insert OID =  837 (  time			   PGNSP PGUID 12 f t t s 1 f 1083 "25" 100 0 0 100 text_time - _null_ ));
+DATA(insert OID =  837 (  time			   PGNSP PGUID 12 f t f t f s 1 1083 "25" 100 0 0 100 text_time - _null_ ));
 DESCR("convert text to time");
-DATA(insert OID =  948 (  text			   PGNSP PGUID 12 f t t i 1 f 25 "1083" 100 0 0 100 time_text - _null_ ));
+DATA(insert OID =  948 (  text			   PGNSP PGUID 12 f t t t f i 1 25 "1083" 100 0 0 100 time_text - _null_ ));
 DESCR("convert time to text");
-DATA(insert OID =  938 (  timetz		   PGNSP PGUID 12 f t t s 1 f 1266 "25" 100 0 0 100 text_timetz - _null_ ));
+DATA(insert OID =  938 (  timetz		   PGNSP PGUID 12 f t f t f s 1 1266 "25" 100 0 0 100 text_timetz - _null_ ));
 DESCR("convert text to timetz");
-DATA(insert OID =  939 (  text			   PGNSP PGUID 12 f t t i 1 f 25 "1266" 100 0 0 100 timetz_text - _null_ ));
+DATA(insert OID =  939 (  text			   PGNSP PGUID 12 f t t t f i 1 25 "1266" 100 0 0 100 timetz_text - _null_ ));
 DESCR("convert timetz to text");
 
 /* OIDS 1000 - 1999 */
 
-DATA(insert OID = 1026 (  timezone		   PGNSP PGUID 12 f t t s 2 f 25 "1186 1184" 100 0 0 100	timestamptz_izone - _null_ ));
+DATA(insert OID = 1026 (  timezone		   PGNSP PGUID 12 f t f t f s 2 25 "1186 1184" 100 0 0 100	timestamptz_izone - _null_ ));
 DESCR("time zone");
 
-DATA(insert OID = 1029 (  nullvalue		   PGNSP PGUID 12 f t f i 1 f 16 "0" 100 0 0 100	nullvalue - _null_ ));
+DATA(insert OID = 1029 (  nullvalue		   PGNSP PGUID 12 f t f f f i 1 16 "0" 100 0 0 100	nullvalue - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1030 (  nonnullvalue	   PGNSP PGUID 12 f t f i 1 f 16 "0" 100 0 0 100	nonnullvalue - _null_ ));
+DATA(insert OID = 1030 (  nonnullvalue	   PGNSP PGUID 12 f t f f f i 1 16 "0" 100 0 0 100	nonnullvalue - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1031 (  aclitemin		   PGNSP PGUID 12 f t t s 1 f 1033 "0" 100 0 0 100  aclitemin - _null_ ));
+DATA(insert OID = 1031 (  aclitemin		   PGNSP PGUID 12 f t f t f s 1 1033 "0" 100 0 0 100  aclitemin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1032 (  aclitemout	   PGNSP PGUID 12 f t t s 1 f 23 "1033" 100 0 0 100  aclitemout - _null_ ));
+DATA(insert OID = 1032 (  aclitemout	   PGNSP PGUID 12 f t f t f s 1 23 "1033" 100 0 0 100  aclitemout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1035 (  aclinsert		   PGNSP PGUID 12 f t t s 2 f 1034 "1034 1033" 100 0 0 100  aclinsert - _null_ ));
+DATA(insert OID = 1035 (  aclinsert		   PGNSP PGUID 12 f t f t f s 2 1034 "1034 1033" 100 0 0 100  aclinsert - _null_ ));
 DESCR("add/update ACL item");
-DATA(insert OID = 1036 (  aclremove		   PGNSP PGUID 12 f t t s 2 f 1034 "1034 1033" 100 0 0 100  aclremove - _null_ ));
+DATA(insert OID = 1036 (  aclremove		   PGNSP PGUID 12 f t f t f s 2 1034 "1034 1033" 100 0 0 100  aclremove - _null_ ));
 DESCR("remove ACL item");
-DATA(insert OID = 1037 (  aclcontains	   PGNSP PGUID 12 f t t s 2 f 16 "1034 1033" 100 0 0 100	aclcontains - _null_ ));
+DATA(insert OID = 1037 (  aclcontains	   PGNSP PGUID 12 f t f t f s 2 16 "1034 1033" 100 0 0 100	aclcontains - _null_ ));
 DESCR("does ACL contain item?");
-DATA(insert OID = 1038 (  seteval		   PGNSP PGUID 12 f t t v 1 t 23 "26" 100 0 0 100  seteval - _null_ ));
+DATA(insert OID = 1038 (  seteval		   PGNSP PGUID 12 f t f t t v 1 23 "26" 100 0 0 100  seteval - _null_ ));
 DESCR("internal function supporting PostQuel-style sets");
-DATA(insert OID = 1044 (  bpcharin		   PGNSP PGUID 12 f t t i 3 f 1042 "0 26 23" 100 0 0 100 bpcharin - _null_ ));
+DATA(insert OID = 1044 (  bpcharin		   PGNSP PGUID 12 f t f t f i 3 1042 "0 26 23" 100 0 0 100 bpcharin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1045 (  bpcharout		   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	bpcharout - _null_ ));
+DATA(insert OID = 1045 (  bpcharout		   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	bpcharout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1046 (  varcharin		   PGNSP PGUID 12 f t t i 3 f 1043 "0 26 23" 100 0 0 100 varcharin - _null_ ));
+DATA(insert OID = 1046 (  varcharin		   PGNSP PGUID 12 f t f t f i 3 1043 "0 26 23" 100 0 0 100 varcharin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1047 (  varcharout	   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	varcharout - _null_ ));
+DATA(insert OID = 1047 (  varcharout	   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	varcharout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1048 (  bpchareq		   PGNSP PGUID 12 f t t i 2 f 16 "1042 1042" 100 0 0 100	bpchareq - _null_ ));
+DATA(insert OID = 1048 (  bpchareq		   PGNSP PGUID 12 f t f t f i 2 16 "1042 1042" 100 0 0 100	bpchareq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1049 (  bpcharlt		   PGNSP PGUID 12 f t t i 2 f 16 "1042 1042" 100 0 0 100	bpcharlt - _null_ ));
+DATA(insert OID = 1049 (  bpcharlt		   PGNSP PGUID 12 f t f t f i 2 16 "1042 1042" 100 0 0 100	bpcharlt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1050 (  bpcharle		   PGNSP PGUID 12 f t t i 2 f 16 "1042 1042" 100 0 0 100	bpcharle - _null_ ));
+DATA(insert OID = 1050 (  bpcharle		   PGNSP PGUID 12 f t f t f i 2 16 "1042 1042" 100 0 0 100	bpcharle - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1051 (  bpchargt		   PGNSP PGUID 12 f t t i 2 f 16 "1042 1042" 100 0 0 100	bpchargt - _null_ ));
+DATA(insert OID = 1051 (  bpchargt		   PGNSP PGUID 12 f t f t f i 2 16 "1042 1042" 100 0 0 100	bpchargt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1052 (  bpcharge		   PGNSP PGUID 12 f t t i 2 f 16 "1042 1042" 100 0 0 100	bpcharge - _null_ ));
+DATA(insert OID = 1052 (  bpcharge		   PGNSP PGUID 12 f t f t f i 2 16 "1042 1042" 100 0 0 100	bpcharge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1053 (  bpcharne		   PGNSP PGUID 12 f t t i 2 f 16 "1042 1042" 100 0 0 100	bpcharne - _null_ ));
+DATA(insert OID = 1053 (  bpcharne		   PGNSP PGUID 12 f t f t f i 2 16 "1042 1042" 100 0 0 100	bpcharne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1070 (  varchareq		   PGNSP PGUID 12 f t t i 2 f 16 "1043 1043" 100 0 0 100	varchareq - _null_ ));
+DATA(insert OID = 1070 (  varchareq		   PGNSP PGUID 12 f t f t f i 2 16 "1043 1043" 100 0 0 100	varchareq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1071 (  varcharlt		   PGNSP PGUID 12 f t t i 2 f 16 "1043 1043" 100 0 0 100	varcharlt - _null_ ));
+DATA(insert OID = 1071 (  varcharlt		   PGNSP PGUID 12 f t f t f i 2 16 "1043 1043" 100 0 0 100	varcharlt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1072 (  varcharle		   PGNSP PGUID 12 f t t i 2 f 16 "1043 1043" 100 0 0 100	varcharle - _null_ ));
+DATA(insert OID = 1072 (  varcharle		   PGNSP PGUID 12 f t f t f i 2 16 "1043 1043" 100 0 0 100	varcharle - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1073 (  varchargt		   PGNSP PGUID 12 f t t i 2 f 16 "1043 1043" 100 0 0 100	varchargt - _null_ ));
+DATA(insert OID = 1073 (  varchargt		   PGNSP PGUID 12 f t f t f i 2 16 "1043 1043" 100 0 0 100	varchargt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1074 (  varcharge		   PGNSP PGUID 12 f t t i 2 f 16 "1043 1043" 100 0 0 100	varcharge - _null_ ));
+DATA(insert OID = 1074 (  varcharge		   PGNSP PGUID 12 f t f t f i 2 16 "1043 1043" 100 0 0 100	varcharge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1075 (  varcharne		   PGNSP PGUID 12 f t t i 2 f 16 "1043 1043" 100 0 0 100	varcharne - _null_ ));
+DATA(insert OID = 1075 (  varcharne		   PGNSP PGUID 12 f t f t f i 2 16 "1043 1043" 100 0 0 100	varcharne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1078 (  bpcharcmp		   PGNSP PGUID 12 f t t i 2 f 23 "1042 1042" 100 0 0 100	bpcharcmp - _null_ ));
+DATA(insert OID = 1078 (  bpcharcmp		   PGNSP PGUID 12 f t f t f i 2 23 "1042 1042" 100 0 0 100	bpcharcmp - _null_ ));
 DESCR("less-equal-greater");
-DATA(insert OID = 1079 (  varcharcmp	   PGNSP PGUID 12 f t t i 2 f 23 "1043 1043" 100 0 0 100	varcharcmp - _null_ ));
+DATA(insert OID = 1079 (  varcharcmp	   PGNSP PGUID 12 f t f t f i 2 23 "1043 1043" 100 0 0 100	varcharcmp - _null_ ));
 DESCR("less-equal-greater");
-DATA(insert OID = 1080 (  hashbpchar	   PGNSP PGUID 12 f t t i 1 f 23 "1042" 100 0 0 100  hashbpchar - _null_ ));
+DATA(insert OID = 1080 (  hashbpchar	   PGNSP PGUID 12 f t f t f i 1 23 "1042" 100 0 0 100  hashbpchar - _null_ ));
 DESCR("hash");
-DATA(insert OID = 1081 (  format_type	   PGNSP PGUID 12 f t f i 2 f 25 "26 23" 100 0 0 100 format_type - _null_ ));
+DATA(insert OID = 1081 (  format_type	   PGNSP PGUID 12 f t f f f s 2 25 "26 23" 100 0 0 100 format_type - _null_ ));
 DESCR("format a type oid and atttypmod to canonical SQL");
-DATA(insert OID = 1084 (  date_in		   PGNSP PGUID 12 f t t s 1 f 1082 "0" 100 0 0 100  date_in - _null_ ));
+DATA(insert OID = 1084 (  date_in		   PGNSP PGUID 12 f t f t f s 1 1082 "0" 100 0 0 100  date_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1085 (  date_out		   PGNSP PGUID 12 f t t s 1 f 23 "0" 100 0 0 100	date_out - _null_ ));
+DATA(insert OID = 1085 (  date_out		   PGNSP PGUID 12 f t f t f s 1 23 "0" 100 0 0 100	date_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1086 (  date_eq		   PGNSP PGUID 12 f t t i 2 f 16 "1082 1082" 100 0 0 100	date_eq - _null_ ));
+DATA(insert OID = 1086 (  date_eq		   PGNSP PGUID 12 f t f t f i 2 16 "1082 1082" 100 0 0 100	date_eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1087 (  date_lt		   PGNSP PGUID 12 f t t i 2 f 16 "1082 1082" 100 0 0 100	date_lt - _null_ ));
+DATA(insert OID = 1087 (  date_lt		   PGNSP PGUID 12 f t f t f i 2 16 "1082 1082" 100 0 0 100	date_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1088 (  date_le		   PGNSP PGUID 12 f t t i 2 f 16 "1082 1082" 100 0 0 100	date_le - _null_ ));
+DATA(insert OID = 1088 (  date_le		   PGNSP PGUID 12 f t f t f i 2 16 "1082 1082" 100 0 0 100	date_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1089 (  date_gt		   PGNSP PGUID 12 f t t i 2 f 16 "1082 1082" 100 0 0 100	date_gt - _null_ ));
+DATA(insert OID = 1089 (  date_gt		   PGNSP PGUID 12 f t f t f i 2 16 "1082 1082" 100 0 0 100	date_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1090 (  date_ge		   PGNSP PGUID 12 f t t i 2 f 16 "1082 1082" 100 0 0 100	date_ge - _null_ ));
+DATA(insert OID = 1090 (  date_ge		   PGNSP PGUID 12 f t f t f i 2 16 "1082 1082" 100 0 0 100	date_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1091 (  date_ne		   PGNSP PGUID 12 f t t i 2 f 16 "1082 1082" 100 0 0 100	date_ne - _null_ ));
+DATA(insert OID = 1091 (  date_ne		   PGNSP PGUID 12 f t f t f i 2 16 "1082 1082" 100 0 0 100	date_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1092 (  date_cmp		   PGNSP PGUID 12 f t t i 2 f 23 "1082 1082" 100 0 0 100	date_cmp - _null_ ));
+DATA(insert OID = 1092 (  date_cmp		   PGNSP PGUID 12 f t f t f i 2 23 "1082 1082" 100 0 0 100	date_cmp - _null_ ));
 DESCR("less-equal-greater");
 
 /* OIDS 1100 - 1199 */
 
-DATA(insert OID = 1102 (  time_lt		   PGNSP PGUID 12 f t t i 2 f 16 "1083 1083" 100 0 0 100	time_lt - _null_ ));
+DATA(insert OID = 1102 (  time_lt		   PGNSP PGUID 12 f t f t f i 2 16 "1083 1083" 100 0 0 100	time_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1103 (  time_le		   PGNSP PGUID 12 f t t i 2 f 16 "1083 1083" 100 0 0 100	time_le - _null_ ));
+DATA(insert OID = 1103 (  time_le		   PGNSP PGUID 12 f t f t f i 2 16 "1083 1083" 100 0 0 100	time_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1104 (  time_gt		   PGNSP PGUID 12 f t t i 2 f 16 "1083 1083" 100 0 0 100	time_gt - _null_ ));
+DATA(insert OID = 1104 (  time_gt		   PGNSP PGUID 12 f t f t f i 2 16 "1083 1083" 100 0 0 100	time_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1105 (  time_ge		   PGNSP PGUID 12 f t t i 2 f 16 "1083 1083" 100 0 0 100	time_ge - _null_ ));
+DATA(insert OID = 1105 (  time_ge		   PGNSP PGUID 12 f t f t f i 2 16 "1083 1083" 100 0 0 100	time_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1106 (  time_ne		   PGNSP PGUID 12 f t t i 2 f 16 "1083 1083" 100 0 0 100	time_ne - _null_ ));
+DATA(insert OID = 1106 (  time_ne		   PGNSP PGUID 12 f t f t f i 2 16 "1083 1083" 100 0 0 100	time_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1107 (  time_cmp		   PGNSP PGUID 12 f t t i 2 f 23 "1083 1083" 100 0 0 100	time_cmp - _null_ ));
+DATA(insert OID = 1107 (  time_cmp		   PGNSP PGUID 12 f t f t f i 2 23 "1083 1083" 100 0 0 100	time_cmp - _null_ ));
 DESCR("less-equal-greater");
-DATA(insert OID = 1138 (  date_larger	   PGNSP PGUID 12 f t t i 2 f 1082 "1082 1082" 100 0 0 100  date_larger - _null_ ));
+DATA(insert OID = 1138 (  date_larger	   PGNSP PGUID 12 f t f t f i 2 1082 "1082 1082" 100 0 0 100  date_larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 1139 (  date_smaller	   PGNSP PGUID 12 f t t i 2 f 1082 "1082 1082" 100 0 0 100  date_smaller - _null_ ));
+DATA(insert OID = 1139 (  date_smaller	   PGNSP PGUID 12 f t f t f i 2 1082 "1082 1082" 100 0 0 100  date_smaller - _null_ ));
 DESCR("smaller of two");
-DATA(insert OID = 1140 (  date_mi		   PGNSP PGUID 12 f t t i 2 f 23 "1082 1082" 100 0 0 100	date_mi - _null_ ));
+DATA(insert OID = 1140 (  date_mi		   PGNSP PGUID 12 f t f t f i 2 23 "1082 1082" 100 0 0 100	date_mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 1141 (  date_pli		   PGNSP PGUID 12 f t t i 2 f 1082 "1082 23" 100 0 0 100	date_pli - _null_ ));
+DATA(insert OID = 1141 (  date_pli		   PGNSP PGUID 12 f t f t f i 2 1082 "1082 23" 100 0 0 100	date_pli - _null_ ));
 DESCR("add");
-DATA(insert OID = 1142 (  date_mii		   PGNSP PGUID 12 f t t i 2 f 1082 "1082 23" 100 0 0 100	date_mii - _null_ ));
+DATA(insert OID = 1142 (  date_mii		   PGNSP PGUID 12 f t f t f i 2 1082 "1082 23" 100 0 0 100	date_mii - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 1143 (  time_in		   PGNSP PGUID 12 f t t s 1 f 1083 "0" 100 0 0 100  time_in - _null_ ));
+DATA(insert OID = 1143 (  time_in		   PGNSP PGUID 12 f t f t f s 1 1083 "0" 100 0 0 100  time_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1144 (  time_out		   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	time_out - _null_ ));
+DATA(insert OID = 1144 (  time_out		   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	time_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1145 (  time_eq		   PGNSP PGUID 12 f t t i 2 f 16 "1083 1083" 100 0 0 100	time_eq - _null_ ));
+DATA(insert OID = 1145 (  time_eq		   PGNSP PGUID 12 f t f t f i 2 16 "1083 1083" 100 0 0 100	time_eq - _null_ ));
 DESCR("equal");
 
-DATA(insert OID = 1146 (  circle_add_pt    PGNSP PGUID 12 f t t i 2 f 718 "718 600" 100 0 0 100  circle_add_pt - _null_ ));
+DATA(insert OID = 1146 (  circle_add_pt    PGNSP PGUID 12 f t f t f i 2 718 "718 600" 100 0 0 100  circle_add_pt - _null_ ));
 DESCR("add");
-DATA(insert OID = 1147 (  circle_sub_pt    PGNSP PGUID 12 f t t i 2 f 718 "718 600" 100 0 0 100  circle_sub_pt - _null_ ));
+DATA(insert OID = 1147 (  circle_sub_pt    PGNSP PGUID 12 f t f t f i 2 718 "718 600" 100 0 0 100  circle_sub_pt - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 1148 (  circle_mul_pt    PGNSP PGUID 12 f t t i 2 f 718 "718 600" 100 0 0 100  circle_mul_pt - _null_ ));
+DATA(insert OID = 1148 (  circle_mul_pt    PGNSP PGUID 12 f t f t f i 2 718 "718 600" 100 0 0 100  circle_mul_pt - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 1149 (  circle_div_pt    PGNSP PGUID 12 f t t i 2 f 718 "718 600" 100 0 0 100  circle_div_pt - _null_ ));
+DATA(insert OID = 1149 (  circle_div_pt    PGNSP PGUID 12 f t f t f i 2 718 "718 600" 100 0 0 100  circle_div_pt - _null_ ));
 DESCR("divide");
 
-DATA(insert OID = 1150 (  timestamptz_in   PGNSP PGUID 12 f t t s 1 f 1184 "0" 100 0 0 100  timestamptz_in - _null_ ));
+DATA(insert OID = 1150 (  timestamptz_in   PGNSP PGUID 12 f t f t f s 1 1184 "0" 100 0 0 100  timestamptz_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1151 (  timestamptz_out  PGNSP PGUID 12 f t t s 1 f 23 "0" 100 0 0 100	timestamptz_out - _null_ ));
+DATA(insert OID = 1151 (  timestamptz_out  PGNSP PGUID 12 f t f t f s 1 23 "0" 100 0 0 100	timestamptz_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1152 (  timestamptz_eq   PGNSP PGUID 12 f t t i 2 f 16 "1184 1184" 100 0 0 100	timestamp_eq - _null_ ));
+DATA(insert OID = 1152 (  timestamptz_eq   PGNSP PGUID 12 f t f t f i 2 16 "1184 1184" 100 0 0 100	timestamp_eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1153 (  timestamptz_ne   PGNSP PGUID 12 f t t i 2 f 16 "1184 1184" 100 0 0 100	timestamp_ne - _null_ ));
+DATA(insert OID = 1153 (  timestamptz_ne   PGNSP PGUID 12 f t f t f i 2 16 "1184 1184" 100 0 0 100	timestamp_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1154 (  timestamptz_lt   PGNSP PGUID 12 f t t i 2 f 16 "1184 1184" 100 0 0 100	timestamp_lt - _null_ ));
+DATA(insert OID = 1154 (  timestamptz_lt   PGNSP PGUID 12 f t f t f i 2 16 "1184 1184" 100 0 0 100	timestamp_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1155 (  timestamptz_le   PGNSP PGUID 12 f t t i 2 f 16 "1184 1184" 100 0 0 100	timestamp_le - _null_ ));
+DATA(insert OID = 1155 (  timestamptz_le   PGNSP PGUID 12 f t f t f i 2 16 "1184 1184" 100 0 0 100	timestamp_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1156 (  timestamptz_ge   PGNSP PGUID 12 f t t i 2 f 16 "1184 1184" 100 0 0 100	timestamp_ge - _null_ ));
+DATA(insert OID = 1156 (  timestamptz_ge   PGNSP PGUID 12 f t f t f i 2 16 "1184 1184" 100 0 0 100	timestamp_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1157 (  timestamptz_gt   PGNSP PGUID 12 f t t i 2 f 16 "1184 1184" 100 0 0 100	timestamp_gt - _null_ ));
+DATA(insert OID = 1157 (  timestamptz_gt   PGNSP PGUID 12 f t f t f i 2 16 "1184 1184" 100 0 0 100	timestamp_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1159 (  timezone		   PGNSP PGUID 12 f t t s 2 f 25 "25 1184" 100 0 0 100  timestamptz_zone - _null_ ));
+DATA(insert OID = 1159 (  timezone		   PGNSP PGUID 12 f t f t f s 2 25 "25 1184" 100 0 0 100  timestamptz_zone - _null_ ));
 DESCR("time zone");
 
-DATA(insert OID = 1160 (  interval_in	   PGNSP PGUID 12 f t t s 1 f 1186 "0" 100 0 0 100  interval_in - _null_ ));
+DATA(insert OID = 1160 (  interval_in	   PGNSP PGUID 12 f t f t f s 1 1186 "0" 100 0 0 100  interval_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1161 (  interval_out	   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	interval_out - _null_ ));
+DATA(insert OID = 1161 (  interval_out	   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	interval_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1162 (  interval_eq	   PGNSP PGUID 12 f t t i 2 f 16 "1186 1186" 100 0 0 100	interval_eq - _null_ ));
+DATA(insert OID = 1162 (  interval_eq	   PGNSP PGUID 12 f t f t f i 2 16 "1186 1186" 100 0 0 100	interval_eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1163 (  interval_ne	   PGNSP PGUID 12 f t t i 2 f 16 "1186 1186" 100 0 0 100	interval_ne - _null_ ));
+DATA(insert OID = 1163 (  interval_ne	   PGNSP PGUID 12 f t f t f i 2 16 "1186 1186" 100 0 0 100	interval_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1164 (  interval_lt	   PGNSP PGUID 12 f t t i 2 f 16 "1186 1186" 100 0 0 100	interval_lt - _null_ ));
+DATA(insert OID = 1164 (  interval_lt	   PGNSP PGUID 12 f t f t f i 2 16 "1186 1186" 100 0 0 100	interval_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1165 (  interval_le	   PGNSP PGUID 12 f t t i 2 f 16 "1186 1186" 100 0 0 100	interval_le - _null_ ));
+DATA(insert OID = 1165 (  interval_le	   PGNSP PGUID 12 f t f t f i 2 16 "1186 1186" 100 0 0 100	interval_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1166 (  interval_ge	   PGNSP PGUID 12 f t t i 2 f 16 "1186 1186" 100 0 0 100	interval_ge - _null_ ));
+DATA(insert OID = 1166 (  interval_ge	   PGNSP PGUID 12 f t f t f i 2 16 "1186 1186" 100 0 0 100	interval_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1167 (  interval_gt	   PGNSP PGUID 12 f t t i 2 f 16 "1186 1186" 100 0 0 100	interval_gt - _null_ ));
+DATA(insert OID = 1167 (  interval_gt	   PGNSP PGUID 12 f t f t f i 2 16 "1186 1186" 100 0 0 100	interval_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1168 (  interval_um	   PGNSP PGUID 12 f t t i 1 f 1186 "1186" 100 0 0 100  interval_um - _null_ ));
+DATA(insert OID = 1168 (  interval_um	   PGNSP PGUID 12 f t f t f i 1 1186 "1186" 100 0 0 100  interval_um - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 1169 (  interval_pl	   PGNSP PGUID 12 f t t i 2 f 1186 "1186 1186" 100 0 0 100  interval_pl - _null_ ));
+DATA(insert OID = 1169 (  interval_pl	   PGNSP PGUID 12 f t f t f i 2 1186 "1186 1186" 100 0 0 100  interval_pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 1170 (  interval_mi	   PGNSP PGUID 12 f t t i 2 f 1186 "1186 1186" 100 0 0 100  interval_mi - _null_ ));
+DATA(insert OID = 1170 (  interval_mi	   PGNSP PGUID 12 f t f t f i 2 1186 "1186 1186" 100 0 0 100  interval_mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 1171 (  date_part		   PGNSP PGUID 12 f t t s 2 f  701 "25 1184" 100 0 0 100	timestamptz_part - _null_ ));
+DATA(insert OID = 1171 (  date_part		   PGNSP PGUID 12 f t f t f s 2  701 "25 1184" 100 0 0 100	timestamptz_part - _null_ ));
 DESCR("extract field from timestamp with time zone");
-DATA(insert OID = 1172 (  date_part		   PGNSP PGUID 12 f t t i 2 f  701 "25 1186" 100 0 0 100	interval_part - _null_ ));
+DATA(insert OID = 1172 (  date_part		   PGNSP PGUID 12 f t f t f i 2  701 "25 1186" 100 0 0 100	interval_part - _null_ ));
 DESCR("extract field from interval");
-DATA(insert OID = 1173 (  timestamptz	   PGNSP PGUID 12 f t t s 1 f 1184 "702" 100 0 0 100	abstime_timestamptz - _null_ ));
+DATA(insert OID = 1173 (  timestamptz	   PGNSP PGUID 12 f t t t f s 1 1184 "702" 100 0 0 100	abstime_timestamptz - _null_ ));
 DESCR("convert abstime to timestamp with time zone");
-DATA(insert OID = 1174 (  timestamptz	   PGNSP PGUID 12 f t t s 1 f 1184 "1082" 100 0 0 100  date_timestamptz - _null_ ));
+DATA(insert OID = 1174 (  timestamptz	   PGNSP PGUID 12 f t t t f s 1 1184 "1082" 100 0 0 100  date_timestamptz - _null_ ));
 DESCR("convert date to timestamp with time zone");
-DATA(insert OID = 1176 (  timestamptz	   PGNSP PGUID 14 f t t s 2 f 1184 "1082 1083" 100 0 0 100  "select timestamptz($1 + $2)" - _null_ ));
+DATA(insert OID = 1176 (  timestamptz	   PGNSP PGUID 14 f t f t f s 2 1184 "1082 1083" 100 0 0 100  "select timestamptz($1 + $2)" - _null_ ));
 DESCR("convert date and time to timestamp with time zone");
-DATA(insert OID = 1177 (  interval		   PGNSP PGUID 12 f t t i 1 f 1186 "703" 100 0 0 100	reltime_interval - _null_ ));
+DATA(insert OID = 1177 (  interval		   PGNSP PGUID 12 f t t t f i 1 1186 "703" 100 0 0 100	reltime_interval - _null_ ));
 DESCR("convert reltime to interval");
-DATA(insert OID = 1178 (  date			   PGNSP PGUID 12 f t t s 1 f 1082 "1184" 100 0 0 100  timestamptz_date - _null_ ));
+DATA(insert OID = 1178 (  date			   PGNSP PGUID 12 f t f t f s 1 1082 "1184" 100 0 0 100  timestamptz_date - _null_ ));
 DESCR("convert timestamp with time zone to date");
-DATA(insert OID = 1179 (  date			   PGNSP PGUID 12 f t t s 1 f 1082 "702" 100 0 0 100	abstime_date - _null_ ));
+DATA(insert OID = 1179 (  date			   PGNSP PGUID 12 f t f t f s 1 1082 "702" 100 0 0 100	abstime_date - _null_ ));
 DESCR("convert abstime to date");
-DATA(insert OID = 1180 (  abstime		   PGNSP PGUID 12 f t t s 1 f  702 "1184" 100 0 0 100  timestamptz_abstime - _null_ ));
+DATA(insert OID = 1180 (  abstime		   PGNSP PGUID 12 f t f t f s 1  702 "1184" 100 0 0 100  timestamptz_abstime - _null_ ));
 DESCR("convert timestamp with time zone to abstime");
-DATA(insert OID = 1181 (  age			   PGNSP PGUID 12 f t t s 1 f 23 "28" 100 0 0 100  xid_age - _null_ ));
+DATA(insert OID = 1181 (  age			   PGNSP PGUID 12 f t f t f s 1 23 "28" 100 0 0 100  xid_age - _null_ ));
 DESCR("age of a transaction ID, in transactions before current transaction");
 
-DATA(insert OID = 1188 (  timestamptz_mi   PGNSP PGUID 12 f t t i 2 f 1186 "1184 1184" 100 0 0 100  timestamp_mi - _null_ ));
+DATA(insert OID = 1188 (  timestamptz_mi   PGNSP PGUID 12 f t f t f i 2 1186 "1184 1184" 100 0 0 100  timestamp_mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 1189 (  timestamptz_pl_span PGNSP PGUID 12 f t t i 2 f 1184 "1184 1186" 100 0 0 100  timestamptz_pl_span - _null_ ));
+DATA(insert OID = 1189 (  timestamptz_pl_span PGNSP PGUID 12 f t f t f i 2 1184 "1184 1186" 100 0 0 100  timestamptz_pl_span - _null_ ));
 DESCR("plus");
-DATA(insert OID = 1190 (  timestamptz_mi_span PGNSP PGUID 12 f t t i 2 f 1184 "1184 1186" 100 0 0 100  timestamptz_mi_span - _null_ ));
+DATA(insert OID = 1190 (  timestamptz_mi_span PGNSP PGUID 12 f t f t f i 2 1184 "1184 1186" 100 0 0 100  timestamptz_mi_span - _null_ ));
 DESCR("minus");
-DATA(insert OID = 1191 (  timestamptz		PGNSP PGUID 12 f t t s 1 f 1184 "25" 100 0 0 100	text_timestamptz - _null_ ));
+DATA(insert OID = 1191 (  timestamptz		PGNSP PGUID 12 f t f t f s 1 1184 "25" 100 0 0 100	text_timestamptz - _null_ ));
 DESCR("convert text to timestamp with time zone");
-DATA(insert OID = 1192 (  text				PGNSP PGUID 12 f t t s 1 f	 25 "1184" 100 0 0 100	timestamptz_text - _null_ ));
+DATA(insert OID = 1192 (  text				PGNSP PGUID 12 f t t t f s 1	 25 "1184" 100 0 0 100	timestamptz_text - _null_ ));
 DESCR("convert timestamp to text");
-DATA(insert OID = 1193 (  text				PGNSP PGUID 12 f t t i 1 f	 25 "1186" 100 0 0 100	interval_text - _null_ ));
+DATA(insert OID = 1193 (  text				PGNSP PGUID 12 f t t t f i 1	 25 "1186" 100 0 0 100	interval_text - _null_ ));
 DESCR("convert interval to text");
-DATA(insert OID = 1194 (  reltime			PGNSP PGUID 12 f t t i 1 f	703 "1186" 100 0 0 100	interval_reltime - _null_ ));
+DATA(insert OID = 1194 (  reltime			PGNSP PGUID 12 f t f t f i 1	703 "1186" 100 0 0 100	interval_reltime - _null_ ));
 DESCR("convert interval to reltime");
-DATA(insert OID = 1195 (  timestamptz_smaller PGNSP PGUID 12 f t t i 2 f 1184 "1184 1184" 100 0 0 100  timestamp_smaller - _null_ ));
+DATA(insert OID = 1195 (  timestamptz_smaller PGNSP PGUID 12 f t f t f i 2 1184 "1184 1184" 100 0 0 100  timestamp_smaller - _null_ ));
 DESCR("smaller of two");
-DATA(insert OID = 1196 (  timestamptz_larger  PGNSP PGUID 12 f t t i 2 f 1184 "1184 1184" 100 0 0 100  timestamp_larger - _null_ ));
+DATA(insert OID = 1196 (  timestamptz_larger  PGNSP PGUID 12 f t f t f i 2 1184 "1184 1184" 100 0 0 100  timestamp_larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 1197 (  interval_smaller	PGNSP PGUID 12 f t t i 2 f 1186 "1186 1186" 100 0 0 100  interval_smaller - _null_ ));
+DATA(insert OID = 1197 (  interval_smaller	PGNSP PGUID 12 f t f t f i 2 1186 "1186 1186" 100 0 0 100  interval_smaller - _null_ ));
 DESCR("smaller of two");
-DATA(insert OID = 1198 (  interval_larger	PGNSP PGUID 12 f t t i 2 f 1186 "1186 1186" 100 0 0 100  interval_larger - _null_ ));
+DATA(insert OID = 1198 (  interval_larger	PGNSP PGUID 12 f t f t f i 2 1186 "1186 1186" 100 0 0 100  interval_larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 1199 (  age				PGNSP PGUID 12 f t t i 2 f 1186 "1184 1184" 100 0 0 100  timestamptz_age - _null_ ));
+DATA(insert OID = 1199 (  age				PGNSP PGUID 12 f t f t f i 2 1186 "1184 1184" 100 0 0 100  timestamptz_age - _null_ ));
 DESCR("date difference preserving months and years");
 
 /* OIDS 1200 - 1299 */
 
-DATA(insert OID = 1200 (  reltime		   PGNSP PGUID 12 f t t i 1 f  703 "23" 100 0 0 100  int4reltime - _null_ ));
+DATA(insert OID = 1200 (  reltime		   PGNSP PGUID 12 f t f t f i 1  703 "23" 100 0 0 100  int4reltime - _null_ ));
 DESCR("convert int4 to reltime");
 
-DATA(insert OID = 1215 (  obj_description	PGNSP PGUID 14 f t t s 2 f	25 "26 19" 100 0 0 100	"select description from pg_description where objoid = $1 and classoid = (select oid from pg_class where relname = $2) and objsubid = 0" - _null_ ));
+DATA(insert OID = 1215 (  obj_description	PGNSP PGUID 14 f t f t f s 2	25 "26 19" 100 0 0 100	"select description from pg_description where objoid = $1 and classoid = (select oid from pg_class where relname = $2) and objsubid = 0" - _null_ ));
 DESCR("get description for object id and catalog name");
-DATA(insert OID = 1216 (  col_description	PGNSP PGUID 14 f t t s 2 f	25 "26 23" 100 0 0 100	"select description from pg_description where objoid = $1 and classoid = (select oid from pg_class where relname = \'pg_class\') and objsubid = $2" - _null_ ));
+DATA(insert OID = 1216 (  col_description	PGNSP PGUID 14 f t f t f s 2	25 "26 23" 100 0 0 100	"select description from pg_description where objoid = $1 and classoid = (select oid from pg_class where relname = \'pg_class\') and objsubid = $2" - _null_ ));
 DESCR("get description for table column");
 
-DATA(insert OID = 1217 (  date_trunc	   PGNSP PGUID 12 f t t i 2 f 1184 "25 1184" 100 0 0 100	timestamptz_trunc - _null_ ));
+DATA(insert OID = 1217 (  date_trunc	   PGNSP PGUID 12 f t f t f i 2 1184 "25 1184" 100 0 0 100	timestamptz_trunc - _null_ ));
 DESCR("truncate timestamp with time zone to specified units");
-DATA(insert OID = 1218 (  date_trunc	   PGNSP PGUID 12 f t t i 2 f 1186 "25 1186" 100 0 0 100	interval_trunc - _null_ ));
+DATA(insert OID = 1218 (  date_trunc	   PGNSP PGUID 12 f t f t f i 2 1186 "25 1186" 100 0 0 100	interval_trunc - _null_ ));
 DESCR("truncate interval to specified units");
 
-DATA(insert OID = 1219 (  int8inc		   PGNSP PGUID 12 f t t i 1 f 20 "20" 100 0 0 100  int8inc - _null_ ));
+DATA(insert OID = 1219 (  int8inc		   PGNSP PGUID 12 f t f t f i 1 20 "20" 100 0 0 100  int8inc - _null_ ));
 DESCR("increment");
-DATA(insert OID = 1230 (  int8abs		   PGNSP PGUID 12 f t t i 1 f 20 "20" 100 0 0 100  int8abs - _null_ ));
+DATA(insert OID = 1230 (  int8abs		   PGNSP PGUID 12 f t f t f i 1 20 "20" 100 0 0 100  int8abs - _null_ ));
 DESCR("absolute value");
 
-DATA(insert OID = 1236 (  int8larger	   PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100	int8larger - _null_ ));
+DATA(insert OID = 1236 (  int8larger	   PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100	int8larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 1237 (  int8smaller	   PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100	int8smaller - _null_ ));
+DATA(insert OID = 1237 (  int8smaller	   PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100	int8smaller - _null_ ));
 DESCR("smaller of two");
 
-DATA(insert OID = 1238 (  texticregexeq    PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100	texticregexeq - _null_ ));
+DATA(insert OID = 1238 (  texticregexeq    PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100	texticregexeq - _null_ ));
 DESCR("matches regex., case-insensitive");
-DATA(insert OID = 1239 (  texticregexne    PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100	texticregexne - _null_ ));
+DATA(insert OID = 1239 (  texticregexne    PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100	texticregexne - _null_ ));
 DESCR("does not match regex., case-insensitive");
-DATA(insert OID = 1240 (  nameicregexeq    PGNSP PGUID 12 f t t i 2 f 16 "19 25" 100 0 0 100	nameicregexeq - _null_ ));
+DATA(insert OID = 1240 (  nameicregexeq    PGNSP PGUID 12 f t f t f i 2 16 "19 25" 100 0 0 100	nameicregexeq - _null_ ));
 DESCR("matches regex., case-insensitive");
-DATA(insert OID = 1241 (  nameicregexne    PGNSP PGUID 12 f t t i 2 f 16 "19 25" 100 0 0 100	nameicregexne - _null_ ));
+DATA(insert OID = 1241 (  nameicregexne    PGNSP PGUID 12 f t f t f i 2 16 "19 25" 100 0 0 100	nameicregexne - _null_ ));
 DESCR("does not match regex., case-insensitive");
 
-DATA(insert OID = 1251 (  int4abs		   PGNSP PGUID 12 f t t i 1 f 23 "23" 100 0 0 100  int4abs - _null_ ));
+DATA(insert OID = 1251 (  int4abs		   PGNSP PGUID 12 f t f t f i 1 23 "23" 100 0 0 100  int4abs - _null_ ));
 DESCR("absolute value");
-DATA(insert OID = 1253 (  int2abs		   PGNSP PGUID 12 f t t i 1 f 21 "21" 100 0 0 100  int2abs - _null_ ));
+DATA(insert OID = 1253 (  int2abs		   PGNSP PGUID 12 f t f t f i 1 21 "21" 100 0 0 100  int2abs - _null_ ));
 DESCR("absolute value");
 
-DATA(insert OID = 1263 (  interval		   PGNSP PGUID 12 f t t s 1 f 1186 "25" 100 0 0 100  text_interval - _null_ ));
+DATA(insert OID = 1263 (  interval		   PGNSP PGUID 12 f t f t f s 1 1186 "25" 100 0 0 100  text_interval - _null_ ));
 DESCR("convert text to interval");
 
-DATA(insert OID = 1271 (  overlaps		   PGNSP PGUID 12 f t f i 4 f 16 "1266 1266 1266 1266" 100 0 0 100  overlaps_timetz - _null_ ));
+DATA(insert OID = 1271 (  overlaps		   PGNSP PGUID 12 f t f f f i 4 16 "1266 1266 1266 1266" 100 0 0 100  overlaps_timetz - _null_ ));
 DESCR("SQL92 interval comparison");
-DATA(insert OID = 1272 (  datetime_pl	   PGNSP PGUID 12 f t t i 2 f 1114 "1082 1083" 100 0 0 100  datetime_timestamp - _null_ ));
+DATA(insert OID = 1272 (  datetime_pl	   PGNSP PGUID 12 f t f t f i 2 1114 "1082 1083" 100 0 0 100  datetime_timestamp - _null_ ));
 DESCR("convert date and time to timestamp");
-DATA(insert OID = 1273 (  date_part		   PGNSP PGUID 12 f t t i 2 f  701 "25 1266" 100 0 0 100	timetz_part - _null_ ));
+DATA(insert OID = 1273 (  date_part		   PGNSP PGUID 12 f t f t f i 2  701 "25 1266" 100 0 0 100	timetz_part - _null_ ));
 DESCR("extract field from time with time zone");
-DATA(insert OID = 1274 (  int84pl		   PGNSP PGUID 12 f t t i 2 f 20 "20 23" 100 0 0 100	int84pl - _null_ ));
+DATA(insert OID = 1274 (  int84pl		   PGNSP PGUID 12 f t f t f i 2 20 "20 23" 100 0 0 100	int84pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 1275 (  int84mi		   PGNSP PGUID 12 f t t i 2 f 20 "20 23" 100 0 0 100	int84mi - _null_ ));
+DATA(insert OID = 1275 (  int84mi		   PGNSP PGUID 12 f t f t f i 2 20 "20 23" 100 0 0 100	int84mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 1276 (  int84mul		   PGNSP PGUID 12 f t t i 2 f 20 "20 23" 100 0 0 100	int84mul - _null_ ));
+DATA(insert OID = 1276 (  int84mul		   PGNSP PGUID 12 f t f t f i 2 20 "20 23" 100 0 0 100	int84mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 1277 (  int84div		   PGNSP PGUID 12 f t t i 2 f 20 "20 23" 100 0 0 100	int84div - _null_ ));
+DATA(insert OID = 1277 (  int84div		   PGNSP PGUID 12 f t f t f i 2 20 "20 23" 100 0 0 100	int84div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 1278 (  int48pl		   PGNSP PGUID 12 f t t i 2 f 20 "23 20" 100 0 0 100	int48pl - _null_ ));
+DATA(insert OID = 1278 (  int48pl		   PGNSP PGUID 12 f t f t f i 2 20 "23 20" 100 0 0 100	int48pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 1279 (  int48mi		   PGNSP PGUID 12 f t t i 2 f 20 "23 20" 100 0 0 100	int48mi - _null_ ));
+DATA(insert OID = 1279 (  int48mi		   PGNSP PGUID 12 f t f t f i 2 20 "23 20" 100 0 0 100	int48mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 1280 (  int48mul		   PGNSP PGUID 12 f t t i 2 f 20 "23 20" 100 0 0 100	int48mul - _null_ ));
+DATA(insert OID = 1280 (  int48mul		   PGNSP PGUID 12 f t f t f i 2 20 "23 20" 100 0 0 100	int48mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 1281 (  int48div		   PGNSP PGUID 12 f t t i 2 f 20 "23 20" 100 0 0 100	int48div - _null_ ));
+DATA(insert OID = 1281 (  int48div		   PGNSP PGUID 12 f t f t f i 2 20 "23 20" 100 0 0 100	int48div - _null_ ));
 DESCR("divide");
 
-DATA(insert OID = 1288 (  text			   PGNSP PGUID 12 f t t i 1 f 25 "20" 100 0 0 100  int8_text - _null_ ));
+DATA(insert OID = 1288 (  text			   PGNSP PGUID 12 f t t t f i 1 25 "20" 100 0 0 100  int8_text - _null_ ));
 DESCR("convert int8 to text");
-DATA(insert OID = 1289 (  int8			   PGNSP PGUID 12 f t t i 1 f 20 "25" 100 0 0 100  text_int8 - _null_ ));
+DATA(insert OID = 1289 (  int8			   PGNSP PGUID 12 f t f t f i 1 20 "25" 100 0 0 100  text_int8 - _null_ ));
 DESCR("convert text to int8");
 
-DATA(insert OID = 1290 (  _bpchar		   PGNSP PGUID 12 f t t i 2 f 1014 "1014 23" 100 0 0 100	_bpchar - _null_ ));
+DATA(insert OID = 1290 (  _bpchar		   PGNSP PGUID 12 f t t t f i 2 1014 "1014 23" 100 0 0 100	_bpchar - _null_ ));
 DESCR("adjust char()[] to typmod length");
-DATA(insert OID = 1291 (  _varchar		   PGNSP PGUID 12 f t t i 2 f 1015 "1015 23" 100 0 0 100	_varchar - _null_ ));
+DATA(insert OID = 1291 (  _varchar		   PGNSP PGUID 12 f t t t f i 2 1015 "1015 23" 100 0 0 100	_varchar - _null_ ));
 DESCR("adjust varchar()[] to typmod length");
 
-DATA(insert OID = 1292 ( tideq			   PGNSP PGUID 12 f t t i 2 f 16 "27 27" 100 0 0 100	tideq - _null_ ));
+DATA(insert OID = 1292 ( tideq			   PGNSP PGUID 12 f t f t f i 2 16 "27 27" 100 0 0 100	tideq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1293 ( currtid		   PGNSP PGUID 12 f t t v 2 f 27 "26 27" 100 0 0 100	currtid_byreloid - _null_ ));
+DATA(insert OID = 1293 ( currtid		   PGNSP PGUID 12 f t f t f v 2 27 "26 27" 100 0 0 100	currtid_byreloid - _null_ ));
 DESCR("latest tid of a tuple");
-DATA(insert OID = 1294 ( currtid2		   PGNSP PGUID 12 f t t v 2 f 27 "25 27" 100 0 0 100	currtid_byrelname - _null_ ));
+DATA(insert OID = 1294 ( currtid2		   PGNSP PGUID 12 f t f t f v 2 27 "25 27" 100 0 0 100	currtid_byrelname - _null_ ));
 DESCR("latest tid of a tuple");
 
-DATA(insert OID = 1296 (  timedate_pl	   PGNSP PGUID 14 f t t i 2 f 1114 "1083 1082" 100 0 0 100  "select ($2 + $1)" - _null_ ));
+DATA(insert OID = 1296 (  timedate_pl	   PGNSP PGUID 14 f t f t f i 2 1114 "1083 1082" 100 0 0 100  "select ($2 + $1)" - _null_ ));
 DESCR("convert time and date to timestamp");
-DATA(insert OID = 1297 (  datetimetz_pl    PGNSP PGUID 12 f t t i 2 f 1184 "1082 1266" 100 0 0 100  datetimetz_timestamptz - _null_ ));
+DATA(insert OID = 1297 (  datetimetz_pl    PGNSP PGUID 12 f t f t f i 2 1184 "1082 1266" 100 0 0 100  datetimetz_timestamptz - _null_ ));
 DESCR("convert date and time with time zone to timestamp with time zone");
-DATA(insert OID = 1298 (  timetzdate_pl    PGNSP PGUID 14 f t t i 2 f 1184 "1266 1082" 100 0 0 100  "select ($2 + $1)" - _null_ ));
+DATA(insert OID = 1298 (  timetzdate_pl    PGNSP PGUID 14 f t f t f i 2 1184 "1266 1082" 100 0 0 100  "select ($2 + $1)" - _null_ ));
 DESCR("convert time with time zone and date to timestamp");
-DATA(insert OID = 1299 (  now			   PGNSP PGUID 12 f t t s 0 f 1184 "0" 100 0 0 100  now - _null_ ));
+DATA(insert OID = 1299 (  now			   PGNSP PGUID 12 f t f t f s 0 1184 "0" 100 0 0 100  now - _null_ ));
 DESCR("current transaction time");
 
 /* OIDS 1300 - 1399 */
 
-DATA(insert OID = 1300 (  positionsel		   PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100  positionsel - _null_ ));
+DATA(insert OID = 1300 (  positionsel		   PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100  positionsel - _null_ ));
 DESCR("restriction selectivity for position-comparison operators");
-DATA(insert OID = 1301 (  positionjoinsel	   PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100  positionjoinsel - _null_ ));
+DATA(insert OID = 1301 (  positionjoinsel	   PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100  positionjoinsel - _null_ ));
 DESCR("join selectivity for position-comparison operators");
-DATA(insert OID = 1302 (  contsel		   PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100  contsel - _null_ ));
+DATA(insert OID = 1302 (  contsel		   PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100  contsel - _null_ ));
 DESCR("restriction selectivity for containment comparison operators");
-DATA(insert OID = 1303 (  contjoinsel	   PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100  contjoinsel - _null_ ));
+DATA(insert OID = 1303 (  contjoinsel	   PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100  contjoinsel - _null_ ));
 DESCR("join selectivity for containment comparison operators");
 
-DATA(insert OID = 1304 ( overlaps			 PGNSP PGUID 12 f t f i 4 f 16 "1184 1184 1184 1184" 100 0 0 100	overlaps_timestamp - _null_ ));
+DATA(insert OID = 1304 ( overlaps			 PGNSP PGUID 12 f t f f f i 4 16 "1184 1184 1184 1184" 100 0 0 100	overlaps_timestamp - _null_ ));
 DESCR("SQL92 interval comparison");
-DATA(insert OID = 1305 ( overlaps			 PGNSP PGUID 14 f t f i 4 f 16 "1184 1186 1184 1186" 100 0 0 100	"select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" - _null_ ));
+DATA(insert OID = 1305 ( overlaps			 PGNSP PGUID 14 f t f f f i 4 16 "1184 1186 1184 1186" 100 0 0 100	"select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" - _null_ ));
 DESCR("SQL92 interval comparison");
-DATA(insert OID = 1306 ( overlaps			 PGNSP PGUID 14 f t f i 4 f 16 "1184 1184 1184 1186" 100 0 0 100	"select ($1, $2) overlaps ($3, ($3 + $4))" - _null_ ));
+DATA(insert OID = 1306 ( overlaps			 PGNSP PGUID 14 f t f f f i 4 16 "1184 1184 1184 1186" 100 0 0 100	"select ($1, $2) overlaps ($3, ($3 + $4))" - _null_ ));
 DESCR("SQL92 interval comparison");
-DATA(insert OID = 1307 ( overlaps			 PGNSP PGUID 14 f t f i 4 f 16 "1184 1186 1184 1184" 100 0 0 100	"select ($1, ($1 + $2)) overlaps ($3, $4)" - _null_ ));
+DATA(insert OID = 1307 ( overlaps			 PGNSP PGUID 14 f t f f f i 4 16 "1184 1186 1184 1184" 100 0 0 100	"select ($1, ($1 + $2)) overlaps ($3, $4)" - _null_ ));
 DESCR("SQL92 interval comparison");
 
-DATA(insert OID = 1308 ( overlaps			 PGNSP PGUID 12 f t f i 4 f 16 "1083 1083 1083 1083" 100 0 0 100	overlaps_time - _null_ ));
+DATA(insert OID = 1308 ( overlaps			 PGNSP PGUID 12 f t f f f i 4 16 "1083 1083 1083 1083" 100 0 0 100	overlaps_time - _null_ ));
 DESCR("SQL92 interval comparison");
-DATA(insert OID = 1309 ( overlaps			 PGNSP PGUID 14 f t f i 4 f 16 "1083 1186 1083 1186" 100 0 0 100	"select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" - _null_ ));
+DATA(insert OID = 1309 ( overlaps			 PGNSP PGUID 14 f t f f f i 4 16 "1083 1186 1083 1186" 100 0 0 100	"select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" - _null_ ));
 DESCR("SQL92 interval comparison");
-DATA(insert OID = 1310 ( overlaps			 PGNSP PGUID 14 f t f i 4 f 16 "1083 1083 1083 1186" 100 0 0 100	"select ($1, $2) overlaps ($3, ($3 + $4))" - _null_ ));
+DATA(insert OID = 1310 ( overlaps			 PGNSP PGUID 14 f t f f f i 4 16 "1083 1083 1083 1186" 100 0 0 100	"select ($1, $2) overlaps ($3, ($3 + $4))" - _null_ ));
 DESCR("SQL92 interval comparison");
-DATA(insert OID = 1311 ( overlaps			 PGNSP PGUID 14 f t f i 4 f 16 "1083 1186 1083 1083" 100 0 0 100	"select ($1, ($1 + $2)) overlaps ($3, $4)" - _null_ ));
+DATA(insert OID = 1311 ( overlaps			 PGNSP PGUID 14 f t f f f i 4 16 "1083 1186 1083 1083" 100 0 0 100	"select ($1, ($1 + $2)) overlaps ($3, $4)" - _null_ ));
 DESCR("SQL92 interval comparison");
 
-DATA(insert OID = 1312 (  timestamp_in		 PGNSP PGUID 12 f t t s 1 f 1114 "0" 100 0 0 100	timestamp_in - _null_ ));
+DATA(insert OID = 1312 (  timestamp_in		 PGNSP PGUID 12 f t f t f s 1 1114 "0" 100 0 0 100	timestamp_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1313 (  timestamp_out		 PGNSP PGUID 12 f t t s 1 f 23 "0" 100 0 0 100  timestamp_out - _null_ ));
+DATA(insert OID = 1313 (  timestamp_out		 PGNSP PGUID 12 f t f t f s 1 23 "0" 100 0 0 100  timestamp_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1314 (  timestamptz_cmp	 PGNSP PGUID 12 f t t i 2 f	23 "1184 1184" 100 0 0 100	timestamp_cmp - _null_ ));
+DATA(insert OID = 1314 (  timestamptz_cmp	 PGNSP PGUID 12 f t f t f i 2	23 "1184 1184" 100 0 0 100	timestamp_cmp - _null_ ));
 DESCR("less-equal-greater");
-DATA(insert OID = 1315 (  interval_cmp		 PGNSP PGUID 12 f t t i 2 f	23 "1186 1186" 100 0 0 100	interval_cmp - _null_ ));
+DATA(insert OID = 1315 (  interval_cmp		 PGNSP PGUID 12 f t f t f i 2	23 "1186 1186" 100 0 0 100	interval_cmp - _null_ ));
 DESCR("less-equal-greater");
-DATA(insert OID = 1316 (  time				 PGNSP PGUID 12 f t t i 1 f 1083 "1114" 100 0 0 100  timestamp_time - _null_ ));
+DATA(insert OID = 1316 (  time				 PGNSP PGUID 12 f t f t f i 1 1083 "1114" 100 0 0 100  timestamp_time - _null_ ));
 DESCR("convert timestamp to time");
 
-DATA(insert OID = 1317 (  length			 PGNSP PGUID 12 f t t i 1 f	23 "25" 100 0 0 100  textlen - _null_ ));
+DATA(insert OID = 1317 (  length			 PGNSP PGUID 12 f t f t f i 1	23 "25" 100 0 0 100  textlen - _null_ ));
 DESCR("length");
-DATA(insert OID = 1318 (  length			 PGNSP PGUID 12 f t t i 1 f	23 "1042" 100 0 0 100  bpcharlen - _null_ ));
+DATA(insert OID = 1318 (  length			 PGNSP PGUID 12 f t f t f i 1	23 "1042" 100 0 0 100  bpcharlen - _null_ ));
 DESCR("character length");
-DATA(insert OID = 1319 (  length			 PGNSP PGUID 12 f t t i 1 f	23 "1043" 100 0 0 100  varcharlen - _null_ ));
+DATA(insert OID = 1319 (  length			 PGNSP PGUID 12 f t f t f i 1	23 "1043" 100 0 0 100  varcharlen - _null_ ));
 DESCR("character length");
 
-DATA(insert OID = 1326 (  interval_div		 PGNSP PGUID 12 f t t i 2 f 1186 "1186 701" 100 0 0 100  interval_div - _null_ ));
+DATA(insert OID = 1326 (  interval_div		 PGNSP PGUID 12 f t f t f i 2 1186 "1186 701" 100 0 0 100  interval_div - _null_ ));
 DESCR("divide");
 
-DATA(insert OID = 1339 (  dlog10			 PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100  dlog10 - _null_ ));
+DATA(insert OID = 1339 (  dlog10			 PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100  dlog10 - _null_ ));
 DESCR("base 10 logarithm");
-DATA(insert OID = 1340 (  log				 PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100  dlog10 - _null_ ));
+DATA(insert OID = 1340 (  log				 PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100  dlog10 - _null_ ));
 DESCR("base 10 logarithm");
-DATA(insert OID = 1341 (  ln				 PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100  dlog1 - _null_ ));
+DATA(insert OID = 1341 (  ln				 PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100  dlog1 - _null_ ));
 DESCR("natural logarithm");
-DATA(insert OID = 1342 (  round				 PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100  dround - _null_ ));
+DATA(insert OID = 1342 (  round				 PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100  dround - _null_ ));
 DESCR("round to nearest integer");
-DATA(insert OID = 1343 (  trunc				 PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100  dtrunc - _null_ ));
+DATA(insert OID = 1343 (  trunc				 PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100  dtrunc - _null_ ));
 DESCR("truncate to integer");
-DATA(insert OID = 1344 (  sqrt				 PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100  dsqrt - _null_ ));
+DATA(insert OID = 1344 (  sqrt				 PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100  dsqrt - _null_ ));
 DESCR("square root");
-DATA(insert OID = 1345 (  cbrt				 PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100  dcbrt - _null_ ));
+DATA(insert OID = 1345 (  cbrt				 PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100  dcbrt - _null_ ));
 DESCR("cube root");
-DATA(insert OID = 1346 (  pow				 PGNSP PGUID 12 f t t i 2 f 701 "701 701" 100 0 0 100  dpow - _null_ ));
+DATA(insert OID = 1346 (  pow				 PGNSP PGUID 12 f t f t f i 2 701 "701 701" 100 0 0 100  dpow - _null_ ));
 DESCR("exponentiation");
-DATA(insert OID = 1347 (  exp				 PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100  dexp - _null_ ));
+DATA(insert OID = 1347 (  exp				 PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100  dexp - _null_ ));
 DESCR("exponential");
 
 /*
  * This form of obj_description is now deprecated, since it will fail if
  * OIDs are not unique across system catalogs.	Use the other forms instead.
  */
-DATA(insert OID = 1348 (  obj_description	 PGNSP PGUID 14 f t t s 1 f	25 "26" 100 0 0 100  "select description from pg_description where objoid = $1 and objsubid = 0" - _null_ ));
+DATA(insert OID = 1348 (  obj_description	 PGNSP PGUID 14 f t f t f s 1	25 "26" 100 0 0 100  "select description from pg_description where objoid = $1 and objsubid = 0" - _null_ ));
 DESCR("get description for object id (deprecated)");
-DATA(insert OID = 1349 (  oidvectortypes	 PGNSP PGUID 12 f t t s 1 f	25 "30" 100 0 0 100  oidvectortypes - _null_ ));
+DATA(insert OID = 1349 (  oidvectortypes	 PGNSP PGUID 12 f t f t f s 1	25 "30" 100 0 0 100  oidvectortypes - _null_ ));
 DESCR("print type names of oidvector field");
 
 
-DATA(insert OID = 1350 (  timetz_in		   PGNSP PGUID 12 f t t s 1 f 1266 "0" 100 0 0 100  timetz_in - _null_ ));
+DATA(insert OID = 1350 (  timetz_in		   PGNSP PGUID 12 f t f t f s 1 1266 "0" 100 0 0 100  timetz_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1351 (  timetz_out	   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	timetz_out - _null_ ));
+DATA(insert OID = 1351 (  timetz_out	   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	timetz_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1352 (  timetz_eq		   PGNSP PGUID 12 f t t i 2 f 16 "1266 1266" 100 0 0 100	timetz_eq - _null_ ));
+DATA(insert OID = 1352 (  timetz_eq		   PGNSP PGUID 12 f t f t f i 2 16 "1266 1266" 100 0 0 100	timetz_eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1353 (  timetz_ne		   PGNSP PGUID 12 f t t i 2 f 16 "1266 1266" 100 0 0 100	timetz_ne - _null_ ));
+DATA(insert OID = 1353 (  timetz_ne		   PGNSP PGUID 12 f t f t f i 2 16 "1266 1266" 100 0 0 100	timetz_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1354 (  timetz_lt		   PGNSP PGUID 12 f t t i 2 f 16 "1266 1266" 100 0 0 100	timetz_lt - _null_ ));
+DATA(insert OID = 1354 (  timetz_lt		   PGNSP PGUID 12 f t f t f i 2 16 "1266 1266" 100 0 0 100	timetz_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1355 (  timetz_le		   PGNSP PGUID 12 f t t i 2 f 16 "1266 1266" 100 0 0 100	timetz_le - _null_ ));
+DATA(insert OID = 1355 (  timetz_le		   PGNSP PGUID 12 f t f t f i 2 16 "1266 1266" 100 0 0 100	timetz_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1356 (  timetz_ge		   PGNSP PGUID 12 f t t i 2 f 16 "1266 1266" 100 0 0 100	timetz_ge - _null_ ));
+DATA(insert OID = 1356 (  timetz_ge		   PGNSP PGUID 12 f t f t f i 2 16 "1266 1266" 100 0 0 100	timetz_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1357 (  timetz_gt		   PGNSP PGUID 12 f t t i 2 f 16 "1266 1266" 100 0 0 100	timetz_gt - _null_ ));
+DATA(insert OID = 1357 (  timetz_gt		   PGNSP PGUID 12 f t f t f i 2 16 "1266 1266" 100 0 0 100	timetz_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1358 (  timetz_cmp	   PGNSP PGUID 12 f t t i 2 f 23 "1266 1266" 100 0 0 100	timetz_cmp - _null_ ));
+DATA(insert OID = 1358 (  timetz_cmp	   PGNSP PGUID 12 f t f t f i 2 23 "1266 1266" 100 0 0 100	timetz_cmp - _null_ ));
 DESCR("less-equal-greater");
-DATA(insert OID = 1359 (  timestamptz	   PGNSP PGUID 12 f t t i 2 f 1184 "1082 1266" 100 0 0 100  datetimetz_timestamptz - _null_ ));
+DATA(insert OID = 1359 (  timestamptz	   PGNSP PGUID 12 f t f t f i 2 1184 "1082 1266" 100 0 0 100  datetimetz_timestamptz - _null_ ));
 DESCR("convert date and time with time zone to timestamp with time zone");
 
-DATA(insert OID = 1362 (  time				 PGNSP PGUID 14 f t t i 1 f 1083 "1083" 100 0 0 100  "select $1" - _null_ ));
-DESCR("convert (noop)");
-DATA(insert OID = 1364 (  time				 PGNSP PGUID 14 f t t i 1 f 1083 "702" 100 0 0 100  "select time(cast($1 as timestamp without time zone))" - _null_ ));
+DATA(insert OID = 1364 (  time				 PGNSP PGUID 14 f t f t f i 1 1083 "702" 100 0 0 100  "select time(cast($1 as timestamp without time zone))" - _null_ ));
 DESCR("convert abstime to time");
-DATA(insert OID = 1365 (  abstime			 PGNSP PGUID 14 f t t i 1 f  702 "702" 100 0 0 100  "select $1" - _null_ ));
-DESCR("convert (noop)");
-DATA(insert OID = 1367 (  reltime			 PGNSP PGUID 14 f t t i 1 f  703 "703" 100 0 0 100  "select $1" - _null_ ));
-DESCR("convert (noop)");
-DATA(insert OID = 1368 (  timestamptz		 PGNSP PGUID 14 f t t i 1 f 1184 "1184" 100 0 0 100  "select $1" - _null_ ));
-DESCR("convert (noop)");
-DATA(insert OID = 1369 (  interval			 PGNSP PGUID 14 f t t i 1 f 1186 "1186" 100 0 0 100  "select $1" - _null_ ));
-DESCR("convert (noop)");
-DATA(insert OID = 1370 (  interval			 PGNSP PGUID 12 f t t i 1 f 1186 "1083" 100 0 0 100  time_interval - _null_ ));
+DATA(insert OID = 1370 (  interval			 PGNSP PGUID 12 f t t t f i 1 1186 "1083" 100 0 0 100  time_interval - _null_ ));
 DESCR("convert time to interval");
-DATA(insert OID = 1371 (  date				 PGNSP PGUID 14 f t t i 1 f 1082 "1082" 100 0 0 100  "select $1" - _null_ ));
-DESCR("convert (noop)");
-DATA(insert OID = 1372 (  char_length		 PGNSP PGUID 12 f t t i 1 f	23	 "1042" 100 0 0 100  bpcharlen - _null_ ));
+DATA(insert OID = 1372 (  char_length		 PGNSP PGUID 12 f t f t f i 1	23	 "1042" 100 0 0 100  bpcharlen - _null_ ));
 DESCR("character length");
-DATA(insert OID = 1373 (  char_length		 PGNSP PGUID 12 f t t i 1 f	23	 "1043" 100 0 0 100  varcharlen - _null_ ));
+DATA(insert OID = 1373 (  char_length		 PGNSP PGUID 12 f t f t f i 1	23	 "1043" 100 0 0 100  varcharlen - _null_ ));
 DESCR("character length");
 
-DATA(insert OID = 1374 (  octet_length			 PGNSP PGUID 12 f t t i 1 f	23	 "25" 100 0 0 100  textoctetlen - _null_ ));
+DATA(insert OID = 1374 (  octet_length			 PGNSP PGUID 12 f t f t f i 1	23	 "25" 100 0 0 100  textoctetlen - _null_ ));
 DESCR("octet length");
-DATA(insert OID = 1375 (  octet_length			 PGNSP PGUID 12 f t t i 1 f	23	 "1042" 100 0 0 100  bpcharoctetlen - _null_ ));
+DATA(insert OID = 1375 (  octet_length			 PGNSP PGUID 12 f t f t f i 1	23	 "1042" 100 0 0 100  bpcharoctetlen - _null_ ));
 DESCR("octet length");
-DATA(insert OID = 1376 (  octet_length			 PGNSP PGUID 12 f t t i 1 f	23	 "1043" 100 0 0 100  varcharoctetlen - _null_ ));
+DATA(insert OID = 1376 (  octet_length			 PGNSP PGUID 12 f t f t f i 1	23	 "1043" 100 0 0 100  varcharoctetlen - _null_ ));
 DESCR("octet length");
 
-DATA(insert OID = 1377 (  time_larger	   PGNSP PGUID 12 f t t i 2 f 1083 "1083 1083" 100 0 0 100  time_larger - _null_ ));
+DATA(insert OID = 1377 (  time_larger	   PGNSP PGUID 12 f t f t f i 2 1083 "1083 1083" 100 0 0 100  time_larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 1378 (  time_smaller	   PGNSP PGUID 12 f t t i 2 f 1083 "1083 1083" 100 0 0 100  time_smaller - _null_ ));
+DATA(insert OID = 1378 (  time_smaller	   PGNSP PGUID 12 f t f t f i 2 1083 "1083 1083" 100 0 0 100  time_smaller - _null_ ));
 DESCR("smaller of two");
-DATA(insert OID = 1379 (  timetz_larger    PGNSP PGUID 12 f t t i 2 f 1266 "1266 1266" 100 0 0 100  timetz_larger - _null_ ));
+DATA(insert OID = 1379 (  timetz_larger    PGNSP PGUID 12 f t f t f i 2 1266 "1266 1266" 100 0 0 100  timetz_larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 1380 (  timetz_smaller   PGNSP PGUID 12 f t t i 2 f 1266 "1266 1266" 100 0 0 100  timetz_smaller - _null_ ));
+DATA(insert OID = 1380 (  timetz_smaller   PGNSP PGUID 12 f t f t f i 2 1266 "1266 1266" 100 0 0 100  timetz_smaller - _null_ ));
 DESCR("smaller of two");
 
-DATA(insert OID = 1381 (  char_length	   PGNSP PGUID 12 f t t i 1 f 23 "25" 100 0 0 100  textlen - _null_ ));
+DATA(insert OID = 1381 (  char_length	   PGNSP PGUID 12 f t f t f i 1 23 "25" 100 0 0 100  textlen - _null_ ));
 DESCR("length");
 
-DATA(insert OID = 1382 (  date_part    PGNSP PGUID 14 f t t s 2 f  701 "25 702" 100 0 0 100  "select date_part($1, timestamptz($2))" - _null_ ));
+DATA(insert OID = 1382 (  date_part    PGNSP PGUID 14 f t f t f s 2  701 "25 702" 100 0 0 100  "select date_part($1, timestamptz($2))" - _null_ ));
 DESCR("extract field from abstime");
-DATA(insert OID = 1383 (  date_part    PGNSP PGUID 14 f t t s 2 f  701 "25 703" 100 0 0 100  "select date_part($1, cast($2 as interval))" - _null_ ));
+DATA(insert OID = 1383 (  date_part    PGNSP PGUID 14 f t f t f s 2  701 "25 703" 100 0 0 100  "select date_part($1, cast($2 as interval))" - _null_ ));
 DESCR("extract field from reltime");
-DATA(insert OID = 1384 (  date_part    PGNSP PGUID 14 f t t i 2 f  701 "25 1082" 100 0 0 100	"select date_part($1, cast($2 as timestamp without time zone))" - _null_ ));
+DATA(insert OID = 1384 (  date_part    PGNSP PGUID 14 f t f t f i 2  701 "25 1082" 100 0 0 100	"select date_part($1, cast($2 as timestamp without time zone))" - _null_ ));
 DESCR("extract field from date");
-DATA(insert OID = 1385 (  date_part    PGNSP PGUID 14 f t t i 2 f  701 "25 1083" 100 0 0 100	"select date_part($1, cast($2 as time with time zone))" - _null_ ));
+DATA(insert OID = 1385 (  date_part    PGNSP PGUID 14 f t f t f i 2  701 "25 1083" 100 0 0 100	"select date_part($1, cast($2 as time with time zone))" - _null_ ));
 DESCR("extract field from time");
-DATA(insert OID = 1386 (  age		   PGNSP PGUID 14 f t t s 1 f 1186 "1184" 100 0 0 100  "select age(cast(current_date as timestamp with time zone), $1)" - _null_ ));
+DATA(insert OID = 1386 (  age		   PGNSP PGUID 14 f t f t f s 1 1186 "1184" 100 0 0 100  "select age(cast(current_date as timestamp with time zone), $1)" - _null_ ));
 DESCR("date difference from today preserving months and years");
 
-DATA(insert OID = 1387 (  timetz		   PGNSP PGUID 14 f t t i 1 f 1266 "1266" 100 0 0 100  "select $1" - _null_ ));
-DESCR("noop conversion");
-DATA(insert OID = 1388 (  timetz		   PGNSP PGUID 12 f t t s 1 f 1266 "1184" 100 0 0 100  timestamptz_timetz - _null_ ));
+DATA(insert OID = 1388 (  timetz		   PGNSP PGUID 12 f t f t f s 1 1266 "1184" 100 0 0 100  timestamptz_timetz - _null_ ));
 DESCR("convert timestamp to timetz");
 
-DATA(insert OID = 1389 (  isfinite	   PGNSP PGUID 12 f t t i 1 f 16 "1184" 100 0 0 100  timestamp_finite - _null_ ));
+DATA(insert OID = 1389 (  isfinite	   PGNSP PGUID 12 f t f t f i 1 16 "1184" 100 0 0 100  timestamp_finite - _null_ ));
 DESCR("boolean test");
-DATA(insert OID = 1390 (  isfinite	   PGNSP PGUID 12 f t t i 1 f 16 "1186" 100 0 0 100  interval_finite - _null_ ));
+DATA(insert OID = 1390 (  isfinite	   PGNSP PGUID 12 f t f t f i 1 16 "1186" 100 0 0 100  interval_finite - _null_ ));
 DESCR("boolean test");
 
 
-DATA(insert OID = 1391 (  factorial		   PGNSP PGUID 12 f t t i 1 f 23 "21" 100 0 0 100  int2fac - _null_ ));
+DATA(insert OID = 1391 (  factorial		   PGNSP PGUID 12 f t f t f i 1 23 "21" 100 0 0 100  int2fac - _null_ ));
 DESCR("factorial");
-DATA(insert OID = 1392 (  factorial		   PGNSP PGUID 12 f t t i 1 f 23 "23" 100 0 0 100  int4fac - _null_ ));
+DATA(insert OID = 1392 (  factorial		   PGNSP PGUID 12 f t f t f i 1 23 "23" 100 0 0 100  int4fac - _null_ ));
 DESCR("factorial");
-DATA(insert OID = 1393 (  factorial		   PGNSP PGUID 12 f t t i 1 f 20 "20" 100 0 0 100  int8fac - _null_ ));
+DATA(insert OID = 1393 (  factorial		   PGNSP PGUID 12 f t f t f i 1 20 "20" 100 0 0 100  int8fac - _null_ ));
 DESCR("factorial");
-DATA(insert OID = 1394 (  abs			   PGNSP PGUID 12 f t t i 1 f 700 "700" 100 0 0 100  float4abs - _null_ ));
+DATA(insert OID = 1394 (  abs			   PGNSP PGUID 12 f t f t f i 1 700 "700" 100 0 0 100  float4abs - _null_ ));
 DESCR("absolute value");
-DATA(insert OID = 1395 (  abs			   PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100  float8abs - _null_ ));
+DATA(insert OID = 1395 (  abs			   PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100  float8abs - _null_ ));
 DESCR("absolute value");
-DATA(insert OID = 1396 (  abs			   PGNSP PGUID 12 f t t i 1 f 20 "20" 100 0 0 100  int8abs - _null_ ));
+DATA(insert OID = 1396 (  abs			   PGNSP PGUID 12 f t f t f i 1 20 "20" 100 0 0 100  int8abs - _null_ ));
 DESCR("absolute value");
-DATA(insert OID = 1397 (  abs			   PGNSP PGUID 12 f t t i 1 f 23 "23" 100 0 0 100  int4abs - _null_ ));
+DATA(insert OID = 1397 (  abs			   PGNSP PGUID 12 f t f t f i 1 23 "23" 100 0 0 100  int4abs - _null_ ));
 DESCR("absolute value");
-DATA(insert OID = 1398 (  abs			   PGNSP PGUID 12 f t t i 1 f 21 "21" 100 0 0 100  int2abs - _null_ ));
+DATA(insert OID = 1398 (  abs			   PGNSP PGUID 12 f t f t f i 1 21 "21" 100 0 0 100  int2abs - _null_ ));
 DESCR("absolute value");
 
 /* OIDS 1400 - 1499 */
 
-DATA(insert OID = 1400 (  name		   PGNSP PGUID 12 f t t i 1 f 19 "1043" 100 0 0 100  text_name - _null_ ));
+DATA(insert OID = 1400 (  name		   PGNSP PGUID 12 f t t t f i 1 19 "1043" 100 0 0 100  text_name - _null_ ));
 DESCR("convert varchar to name");
-DATA(insert OID = 1401 (  varchar	   PGNSP PGUID 12 f t t i 1 f 1043 "19" 100 0 0 100  name_text - _null_ ));
+DATA(insert OID = 1401 (  varchar	   PGNSP PGUID 12 f t t t f i 1 1043 "19" 100 0 0 100  name_text - _null_ ));
 DESCR("convert name to varchar");
 
-DATA(insert OID = 1402 (  float4	   PGNSP PGUID 14 f t t i 1 f  700	"700" 100 0 0 100  "select $1" - _null_ ));
-DESCR("convert float4 to float4 (no-op)");
-DATA(insert OID = 1403 (  int2		   PGNSP PGUID 14 f t t i 1 f 21	 "21" 100 0 0 100  "select $1" - _null_ ));
-DESCR("convert (no-op)");
-DATA(insert OID = 1404 (  float8	   PGNSP PGUID 14 f t t i 1 f  701	"701" 100 0 0 100  "select $1" - _null_ ));
-DESCR("convert (no-op)");
-DATA(insert OID = 1405 (  int4		   PGNSP PGUID 14 f t t i 1 f 23	 "23" 100 0 0 100  "select $1" - _null_ ));
-DESCR("convert (no-op)");
-
-DATA(insert OID = 1406 (  isvertical		PGNSP PGUID 12 f t t i 2 f	16 "600 600" 100 0 0 100  point_vert - _null_ ));
+DATA(insert OID = 1406 (  isvertical		PGNSP PGUID 12 f t f t f i 2	16 "600 600" 100 0 0 100  point_vert - _null_ ));
 DESCR("vertically aligned?");
-DATA(insert OID = 1407 (  ishorizontal		PGNSP PGUID 12 f t t i 2 f	16 "600 600" 100 0 0 100  point_horiz - _null_ ));
+DATA(insert OID = 1407 (  ishorizontal		PGNSP PGUID 12 f t f t f i 2	16 "600 600" 100 0 0 100  point_horiz - _null_ ));
 DESCR("horizontally aligned?");
-DATA(insert OID = 1408 (  isparallel		PGNSP PGUID 12 f t t i 2 f	16 "601 601" 100 0 0 100  lseg_parallel - _null_ ));
+DATA(insert OID = 1408 (  isparallel		PGNSP PGUID 12 f t f t f i 2	16 "601 601" 100 0 0 100  lseg_parallel - _null_ ));
 DESCR("parallel?");
-DATA(insert OID = 1409 (  isperp			PGNSP PGUID 12 f t t i 2 f	16 "601 601" 100 0 0 100  lseg_perp - _null_ ));
+DATA(insert OID = 1409 (  isperp			PGNSP PGUID 12 f t f t f i 2	16 "601 601" 100 0 0 100  lseg_perp - _null_ ));
 DESCR("perpendicular?");
-DATA(insert OID = 1410 (  isvertical		PGNSP PGUID 12 f t t i 1 f	16 "601" 100 0 0 100  lseg_vertical - _null_ ));
+DATA(insert OID = 1410 (  isvertical		PGNSP PGUID 12 f t f t f i 1	16 "601" 100 0 0 100  lseg_vertical - _null_ ));
 DESCR("vertical?");
-DATA(insert OID = 1411 (  ishorizontal		PGNSP PGUID 12 f t t i 1 f	16 "601" 100 0 0 100  lseg_horizontal - _null_ ));
+DATA(insert OID = 1411 (  ishorizontal		PGNSP PGUID 12 f t f t f i 1	16 "601" 100 0 0 100  lseg_horizontal - _null_ ));
 DESCR("horizontal?");
-DATA(insert OID = 1412 (  isparallel		PGNSP PGUID 12 f t t i 2 f	16 "628 628" 100 0 0 100  line_parallel - _null_ ));
+DATA(insert OID = 1412 (  isparallel		PGNSP PGUID 12 f t f t f i 2	16 "628 628" 100 0 0 100  line_parallel - _null_ ));
 DESCR("lines parallel?");
-DATA(insert OID = 1413 (  isperp			PGNSP PGUID 12 f t t i 2 f	16 "628 628" 100 0 0 100  line_perp - _null_ ));
+DATA(insert OID = 1413 (  isperp			PGNSP PGUID 12 f t f t f i 2	16 "628 628" 100 0 0 100  line_perp - _null_ ));
 DESCR("lines perpendicular?");
-DATA(insert OID = 1414 (  isvertical		PGNSP PGUID 12 f t t i 1 f	16 "628" 100 0 0 100  line_vertical - _null_ ));
+DATA(insert OID = 1414 (  isvertical		PGNSP PGUID 12 f t f t f i 1	16 "628" 100 0 0 100  line_vertical - _null_ ));
 DESCR("lines vertical?");
-DATA(insert OID = 1415 (  ishorizontal		PGNSP PGUID 12 f t t i 1 f	16 "628" 100 0 0 100  line_horizontal - _null_ ));
+DATA(insert OID = 1415 (  ishorizontal		PGNSP PGUID 12 f t f t f i 1	16 "628" 100 0 0 100  line_horizontal - _null_ ));
 DESCR("lines horizontal?");
-DATA(insert OID = 1416 (  point				PGNSP PGUID 12 f t t i 1 f 600 "718" 100 0 0 100	circle_center - _null_ ));
+DATA(insert OID = 1416 (  point				PGNSP PGUID 12 f t f t f i 1 600 "718" 100 0 0 100	circle_center - _null_ ));
 DESCR("center of");
 
-DATA(insert OID = 1417 (  isnottrue			PGNSP PGUID 12 f t f i 1 f 16 "16" 100 0 0 100  isnottrue - _null_ ));
+DATA(insert OID = 1417 (  isnottrue			PGNSP PGUID 12 f t f f f i 1 16 "16" 100 0 0 100  isnottrue - _null_ ));
 DESCR("bool is not true (ie, false or unknown)");
-DATA(insert OID = 1418 (  isnotfalse		PGNSP PGUID 12 f t f i 1 f 16 "16" 100 0 0 100  isnotfalse - _null_ ));
+DATA(insert OID = 1418 (  isnotfalse		PGNSP PGUID 12 f t f f f i 1 16 "16" 100 0 0 100  isnotfalse - _null_ ));
 DESCR("bool is not false (ie, true or unknown)");
 
-DATA(insert OID = 1419 (  time				PGNSP PGUID 12 f t t i 1 f 1083 "1186" 100 0 0 100  interval_time - _null_ ));
+DATA(insert OID = 1419 (  time				PGNSP PGUID 12 f t f t f i 1 1083 "1186" 100 0 0 100  interval_time - _null_ ));
 DESCR("convert interval to time");
 
-DATA(insert OID = 1421 (  box				PGNSP PGUID 12 f t t i 2 f 603 "600 600" 100 0 0 100	points_box - _null_ ));
+DATA(insert OID = 1421 (  box				PGNSP PGUID 12 f t f t f i 2 603 "600 600" 100 0 0 100	points_box - _null_ ));
 DESCR("convert points to box");
-DATA(insert OID = 1422 (  box_add			PGNSP PGUID 12 f t t i 2 f 603 "603 600" 100 0 0 100	box_add - _null_ ));
+DATA(insert OID = 1422 (  box_add			PGNSP PGUID 12 f t f t f i 2 603 "603 600" 100 0 0 100	box_add - _null_ ));
 DESCR("add point to box (translate)");
-DATA(insert OID = 1423 (  box_sub			PGNSP PGUID 12 f t t i 2 f 603 "603 600" 100 0 0 100	box_sub - _null_ ));
+DATA(insert OID = 1423 (  box_sub			PGNSP PGUID 12 f t f t f i 2 603 "603 600" 100 0 0 100	box_sub - _null_ ));
 DESCR("subtract point from box (translate)");
-DATA(insert OID = 1424 (  box_mul			PGNSP PGUID 12 f t t i 2 f 603 "603 600" 100 0 0 100	box_mul - _null_ ));
+DATA(insert OID = 1424 (  box_mul			PGNSP PGUID 12 f t f t f i 2 603 "603 600" 100 0 0 100	box_mul - _null_ ));
 DESCR("multiply box by point (scale)");
-DATA(insert OID = 1425 (  box_div			PGNSP PGUID 12 f t t i 2 f 603 "603 600" 100 0 0 100	box_div - _null_ ));
+DATA(insert OID = 1425 (  box_div			PGNSP PGUID 12 f t f t f i 2 603 "603 600" 100 0 0 100	box_div - _null_ ));
 DESCR("divide box by point (scale)");
-DATA(insert OID = 1426 (  path_contain_pt	PGNSP PGUID 14 f t t i 2 f	16 "602 600" 100 0 0 100  "select on_ppath($2, $1)" - _null_ ));
+DATA(insert OID = 1426 (  path_contain_pt	PGNSP PGUID 14 f t f t f i 2	16 "602 600" 100 0 0 100  "select on_ppath($2, $1)" - _null_ ));
 DESCR("path contains point?");
-DATA(insert OID = 1428 (  poly_contain_pt	PGNSP PGUID 12 f t t i 2 f	16 "604 600" 100 0 0 100  poly_contain_pt - _null_ ));
+DATA(insert OID = 1428 (  poly_contain_pt	PGNSP PGUID 12 f t f t f i 2	16 "604 600" 100 0 0 100  poly_contain_pt - _null_ ));
 DESCR("polygon contains point?");
-DATA(insert OID = 1429 (  pt_contained_poly PGNSP PGUID 12 f t t i 2 f	16 "600 604" 100 0 0 100  pt_contained_poly - _null_ ));
+DATA(insert OID = 1429 (  pt_contained_poly PGNSP PGUID 12 f t f t f i 2	16 "600 604" 100 0 0 100  pt_contained_poly - _null_ ));
 DESCR("point contained by polygon?");
 
-DATA(insert OID = 1430 (  isclosed			PGNSP PGUID 12 f t t i 1 f	16 "602" 100 0 0 100  path_isclosed - _null_ ));
+DATA(insert OID = 1430 (  isclosed			PGNSP PGUID 12 f t f t f i 1	16 "602" 100 0 0 100  path_isclosed - _null_ ));
 DESCR("path closed?");
-DATA(insert OID = 1431 (  isopen			PGNSP PGUID 12 f t t i 1 f	16 "602" 100 0 0 100  path_isopen - _null_ ));
+DATA(insert OID = 1431 (  isopen			PGNSP PGUID 12 f t f t f i 1	16 "602" 100 0 0 100  path_isopen - _null_ ));
 DESCR("path open?");
-DATA(insert OID = 1432 (  path_npoints		PGNSP PGUID 12 f t t i 1 f	23 "602" 100 0 0 100  path_npoints - _null_ ));
+DATA(insert OID = 1432 (  path_npoints		PGNSP PGUID 12 f t f t f i 1	23 "602" 100 0 0 100  path_npoints - _null_ ));
 DESCR("# points in path");
 
 /* pclose and popen might better be named close and open, but that crashes initdb.
  * - thomas 97/04/20
  */
 
-DATA(insert OID = 1433 (  pclose			PGNSP PGUID 12 f t t i 1 f 602 "602" 100 0 0 100	path_close - _null_ ));
+DATA(insert OID = 1433 (  pclose			PGNSP PGUID 12 f t f t f i 1 602 "602" 100 0 0 100	path_close - _null_ ));
 DESCR("close path");
-DATA(insert OID = 1434 (  popen				PGNSP PGUID 12 f t t i 1 f 602 "602" 100 0 0 100	path_open - _null_ ));
+DATA(insert OID = 1434 (  popen				PGNSP PGUID 12 f t f t f i 1 602 "602" 100 0 0 100	path_open - _null_ ));
 DESCR("open path");
-DATA(insert OID = 1435 (  path_add			PGNSP PGUID 12 f t t i 2 f 602 "602 602" 100 0 0 100	path_add - _null_ ));
+DATA(insert OID = 1435 (  path_add			PGNSP PGUID 12 f t f t f i 2 602 "602 602" 100 0 0 100	path_add - _null_ ));
 DESCR("concatenate open paths");
-DATA(insert OID = 1436 (  path_add_pt		PGNSP PGUID 12 f t t i 2 f 602 "602 600" 100 0 0 100	path_add_pt - _null_ ));
+DATA(insert OID = 1436 (  path_add_pt		PGNSP PGUID 12 f t f t f i 2 602 "602 600" 100 0 0 100	path_add_pt - _null_ ));
 DESCR("add (translate path)");
-DATA(insert OID = 1437 (  path_sub_pt		PGNSP PGUID 12 f t t i 2 f 602 "602 600" 100 0 0 100	path_sub_pt - _null_ ));
+DATA(insert OID = 1437 (  path_sub_pt		PGNSP PGUID 12 f t f t f i 2 602 "602 600" 100 0 0 100	path_sub_pt - _null_ ));
 DESCR("subtract (translate path)");
-DATA(insert OID = 1438 (  path_mul_pt		PGNSP PGUID 12 f t t i 2 f 602 "602 600" 100 0 0 100	path_mul_pt - _null_ ));
+DATA(insert OID = 1438 (  path_mul_pt		PGNSP PGUID 12 f t f t f i 2 602 "602 600" 100 0 0 100	path_mul_pt - _null_ ));
 DESCR("multiply (rotate/scale path)");
-DATA(insert OID = 1439 (  path_div_pt		PGNSP PGUID 12 f t t i 2 f 602 "602 600" 100 0 0 100	path_div_pt - _null_ ));
+DATA(insert OID = 1439 (  path_div_pt		PGNSP PGUID 12 f t f t f i 2 602 "602 600" 100 0 0 100	path_div_pt - _null_ ));
 DESCR("divide (rotate/scale path)");
 
-DATA(insert OID = 1440 (  point				PGNSP PGUID 12 f t t i 2 f 600 "701 701" 100 0 0 100	construct_point - _null_ ));
+DATA(insert OID = 1440 (  point				PGNSP PGUID 12 f t f t f i 2 600 "701 701" 100 0 0 100	construct_point - _null_ ));
 DESCR("convert x, y to point");
-DATA(insert OID = 1441 (  point_add			PGNSP PGUID 12 f t t i 2 f 600 "600 600" 100 0 0 100	point_add - _null_ ));
+DATA(insert OID = 1441 (  point_add			PGNSP PGUID 12 f t f t f i 2 600 "600 600" 100 0 0 100	point_add - _null_ ));
 DESCR("add points (translate)");
-DATA(insert OID = 1442 (  point_sub			PGNSP PGUID 12 f t t i 2 f 600 "600 600" 100 0 0 100	point_sub - _null_ ));
+DATA(insert OID = 1442 (  point_sub			PGNSP PGUID 12 f t f t f i 2 600 "600 600" 100 0 0 100	point_sub - _null_ ));
 DESCR("subtract points (translate)");
-DATA(insert OID = 1443 (  point_mul			PGNSP PGUID 12 f t t i 2 f 600 "600 600" 100 0 0 100	point_mul - _null_ ));
+DATA(insert OID = 1443 (  point_mul			PGNSP PGUID 12 f t f t f i 2 600 "600 600" 100 0 0 100	point_mul - _null_ ));
 DESCR("multiply points (scale/rotate)");
-DATA(insert OID = 1444 (  point_div			PGNSP PGUID 12 f t t i 2 f 600 "600 600" 100 0 0 100	point_div - _null_ ));
+DATA(insert OID = 1444 (  point_div			PGNSP PGUID 12 f t f t f i 2 600 "600 600" 100 0 0 100	point_div - _null_ ));
 DESCR("divide points (scale/rotate)");
 
-DATA(insert OID = 1445 (  poly_npoints		PGNSP PGUID 12 f t t i 1 f	23 "604" 100 0 0 100  poly_npoints - _null_ ));
+DATA(insert OID = 1445 (  poly_npoints		PGNSP PGUID 12 f t f t f i 1	23 "604" 100 0 0 100  poly_npoints - _null_ ));
 DESCR("number of points in polygon");
-DATA(insert OID = 1446 (  box				PGNSP PGUID 12 f t t i 1 f 603 "604" 100 0 0 100	poly_box - _null_ ));
+DATA(insert OID = 1446 (  box				PGNSP PGUID 12 f t f t f i 1 603 "604" 100 0 0 100	poly_box - _null_ ));
 DESCR("convert polygon to bounding box");
-DATA(insert OID = 1447 (  path				PGNSP PGUID 12 f t t i 1 f 602 "604" 100 0 0 100	poly_path - _null_ ));
+DATA(insert OID = 1447 (  path				PGNSP PGUID 12 f t f t f i 1 602 "604" 100 0 0 100	poly_path - _null_ ));
 DESCR("convert polygon to path");
-DATA(insert OID = 1448 (  polygon			PGNSP PGUID 12 f t t i 1 f 604 "603" 100 0 0 100	box_poly - _null_ ));
+DATA(insert OID = 1448 (  polygon			PGNSP PGUID 12 f t f t f i 1 604 "603" 100 0 0 100	box_poly - _null_ ));
 DESCR("convert box to polygon");
-DATA(insert OID = 1449 (  polygon			PGNSP PGUID 12 f t t i 1 f 604 "602" 100 0 0 100	path_poly - _null_ ));
+DATA(insert OID = 1449 (  polygon			PGNSP PGUID 12 f t f t f i 1 604 "602" 100 0 0 100	path_poly - _null_ ));
 DESCR("convert path to polygon");
 
-DATA(insert OID = 1450 (  circle_in			PGNSP PGUID 12 f t t i 1 f 718 "0" 100 0 0 100  circle_in - _null_ ));
+DATA(insert OID = 1450 (  circle_in			PGNSP PGUID 12 f t f t f i 1 718 "0" 100 0 0 100  circle_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1451 (  circle_out		PGNSP PGUID 12 f t t i 1 f	23	"718" 100 0 0 100  circle_out - _null_ ));
+DATA(insert OID = 1451 (  circle_out		PGNSP PGUID 12 f t f t f i 1	23	"718" 100 0 0 100  circle_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1452 (  circle_same		PGNSP PGUID 12 f t t i 2 f	16 "718 718" 100 0 0 100  circle_same - _null_ ));
+DATA(insert OID = 1452 (  circle_same		PGNSP PGUID 12 f t f t f i 2	16 "718 718" 100 0 0 100  circle_same - _null_ ));
 DESCR("same as");
-DATA(insert OID = 1453 (  circle_contain	PGNSP PGUID 12 f t t i 2 f	16 "718 718" 100 0 0 100  circle_contain - _null_ ));
+DATA(insert OID = 1453 (  circle_contain	PGNSP PGUID 12 f t f t f i 2	16 "718 718" 100 0 0 100  circle_contain - _null_ ));
 DESCR("contains");
-DATA(insert OID = 1454 (  circle_left		PGNSP PGUID 12 f t t i 2 f	16 "718 718" 100 0 0 100  circle_left - _null_ ));
+DATA(insert OID = 1454 (  circle_left		PGNSP PGUID 12 f t f t f i 2	16 "718 718" 100 0 0 100  circle_left - _null_ ));
 DESCR("is left of");
-DATA(insert OID = 1455 (  circle_overleft	PGNSP PGUID 12 f t t i 2 f	16 "718 718" 100 0 0 100  circle_overleft - _null_ ));
+DATA(insert OID = 1455 (  circle_overleft	PGNSP PGUID 12 f t f t f i 2	16 "718 718" 100 0 0 100  circle_overleft - _null_ ));
 DESCR("overlaps, but does not extend to right of");
-DATA(insert OID = 1456 (  circle_overright	PGNSP PGUID 12 f t t i 2 f	16 "718 718" 100 0 0 100  circle_overright - _null_ ));
+DATA(insert OID = 1456 (  circle_overright	PGNSP PGUID 12 f t f t f i 2	16 "718 718" 100 0 0 100  circle_overright - _null_ ));
 DESCR("");
-DATA(insert OID = 1457 (  circle_right		PGNSP PGUID 12 f t t i 2 f	16 "718 718" 100 0 0 100  circle_right - _null_ ));
+DATA(insert OID = 1457 (  circle_right		PGNSP PGUID 12 f t f t f i 2	16 "718 718" 100 0 0 100  circle_right - _null_ ));
 DESCR("is right of");
-DATA(insert OID = 1458 (  circle_contained	PGNSP PGUID 12 f t t i 2 f	16 "718 718" 100 0 0 100  circle_contained - _null_ ));
+DATA(insert OID = 1458 (  circle_contained	PGNSP PGUID 12 f t f t f i 2	16 "718 718" 100 0 0 100  circle_contained - _null_ ));
 DESCR("");
-DATA(insert OID = 1459 (  circle_overlap	PGNSP PGUID 12 f t t i 2 f	16 "718 718" 100 0 0 100  circle_overlap - _null_ ));
+DATA(insert OID = 1459 (  circle_overlap	PGNSP PGUID 12 f t f t f i 2	16 "718 718" 100 0 0 100  circle_overlap - _null_ ));
 DESCR("overlaps");
-DATA(insert OID = 1460 (  circle_below		PGNSP PGUID 12 f t t i 2 f	16 "718 718" 100 0 0 100  circle_below - _null_ ));
+DATA(insert OID = 1460 (  circle_below		PGNSP PGUID 12 f t f t f i 2	16 "718 718" 100 0 0 100  circle_below - _null_ ));
 DESCR("is below");
-DATA(insert OID = 1461 (  circle_above		PGNSP PGUID 12 f t t i 2 f	16 "718 718" 100 0 0 100  circle_above - _null_ ));
+DATA(insert OID = 1461 (  circle_above		PGNSP PGUID 12 f t f t f i 2	16 "718 718" 100 0 0 100  circle_above - _null_ ));
 DESCR("is above");
-DATA(insert OID = 1462 (  circle_eq			PGNSP PGUID 12 f t t i 2 f	16 "718 718" 100 0 0 100  circle_eq - _null_ ));
+DATA(insert OID = 1462 (  circle_eq			PGNSP PGUID 12 f t f t f i 2	16 "718 718" 100 0 0 100  circle_eq - _null_ ));
 DESCR("equal by area");
-DATA(insert OID = 1463 (  circle_ne			PGNSP PGUID 12 f t t i 2 f	16 "718 718" 100 0 0 100  circle_ne - _null_ ));
+DATA(insert OID = 1463 (  circle_ne			PGNSP PGUID 12 f t f t f i 2	16 "718 718" 100 0 0 100  circle_ne - _null_ ));
 DESCR("not equal by area");
-DATA(insert OID = 1464 (  circle_lt			PGNSP PGUID 12 f t t i 2 f	16 "718 718" 100 0 0 100  circle_lt - _null_ ));
+DATA(insert OID = 1464 (  circle_lt			PGNSP PGUID 12 f t f t f i 2	16 "718 718" 100 0 0 100  circle_lt - _null_ ));
 DESCR("less-than by area");
-DATA(insert OID = 1465 (  circle_gt			PGNSP PGUID 12 f t t i 2 f	16 "718 718" 100 0 0 100  circle_gt - _null_ ));
+DATA(insert OID = 1465 (  circle_gt			PGNSP PGUID 12 f t f t f i 2	16 "718 718" 100 0 0 100  circle_gt - _null_ ));
 DESCR("greater-than by area");
-DATA(insert OID = 1466 (  circle_le			PGNSP PGUID 12 f t t i 2 f	16 "718 718" 100 0 0 100  circle_le - _null_ ));
+DATA(insert OID = 1466 (  circle_le			PGNSP PGUID 12 f t f t f i 2	16 "718 718" 100 0 0 100  circle_le - _null_ ));
 DESCR("less-than-or-equal by area");
-DATA(insert OID = 1467 (  circle_ge			PGNSP PGUID 12 f t t i 2 f	16 "718 718" 100 0 0 100  circle_ge - _null_ ));
+DATA(insert OID = 1467 (  circle_ge			PGNSP PGUID 12 f t f t f i 2	16 "718 718" 100 0 0 100  circle_ge - _null_ ));
 DESCR("greater-than-or-equal by area");
-DATA(insert OID = 1468 (  area				PGNSP PGUID 12 f t t i 1 f 701 "718" 100 0 0 100	circle_area - _null_ ));
+DATA(insert OID = 1468 (  area				PGNSP PGUID 12 f t f t f i 1 701 "718" 100 0 0 100	circle_area - _null_ ));
 DESCR("area of circle");
-DATA(insert OID = 1469 (  diameter			PGNSP PGUID 12 f t t i 1 f 701 "718" 100 0 0 100	circle_diameter - _null_ ));
+DATA(insert OID = 1469 (  diameter			PGNSP PGUID 12 f t f t f i 1 701 "718" 100 0 0 100	circle_diameter - _null_ ));
 DESCR("diameter of circle");
-DATA(insert OID = 1470 (  radius			PGNSP PGUID 12 f t t i 1 f 701 "718" 100 0 0 100	circle_radius - _null_ ));
+DATA(insert OID = 1470 (  radius			PGNSP PGUID 12 f t f t f i 1 701 "718" 100 0 0 100	circle_radius - _null_ ));
 DESCR("radius of circle");
-DATA(insert OID = 1471 (  circle_distance	PGNSP PGUID 12 f t t i 2 f 701 "718 718" 100 0 0 100	circle_distance - _null_ ));
+DATA(insert OID = 1471 (  circle_distance	PGNSP PGUID 12 f t f t f i 2 701 "718 718" 100 0 0 100	circle_distance - _null_ ));
 DESCR("distance between");
-DATA(insert OID = 1472 (  circle_center		PGNSP PGUID 12 f t t i 1 f 600 "718" 100 0 0 100	circle_center - _null_ ));
+DATA(insert OID = 1472 (  circle_center		PGNSP PGUID 12 f t f t f i 1 600 "718" 100 0 0 100	circle_center - _null_ ));
 DESCR("center of");
-DATA(insert OID = 1473 (  circle			PGNSP PGUID 12 f t t i 2 f 718 "600 701" 100 0 0 100	cr_circle - _null_ ));
+DATA(insert OID = 1473 (  circle			PGNSP PGUID 12 f t f t f i 2 718 "600 701" 100 0 0 100	cr_circle - _null_ ));
 DESCR("convert point and radius to circle");
-DATA(insert OID = 1474 (  circle			PGNSP PGUID 12 f t t i 1 f 718 "604" 100 0 0 100	poly_circle - _null_ ));
+DATA(insert OID = 1474 (  circle			PGNSP PGUID 12 f t f t f i 1 718 "604" 100 0 0 100	poly_circle - _null_ ));
 DESCR("convert polygon to circle");
-DATA(insert OID = 1475 (  polygon			PGNSP PGUID 12 f t t i 2 f 604 "23 718" 100 0 0 100  circle_poly - _null_ ));
+DATA(insert OID = 1475 (  polygon			PGNSP PGUID 12 f t f t f i 2 604 "23 718" 100 0 0 100  circle_poly - _null_ ));
 DESCR("convert vertex count and circle to polygon");
-DATA(insert OID = 1476 (  dist_pc			PGNSP PGUID 12 f t t i 2 f 701 "600 718" 100 0 0 100	dist_pc - _null_ ));
+DATA(insert OID = 1476 (  dist_pc			PGNSP PGUID 12 f t f t f i 2 701 "600 718" 100 0 0 100	dist_pc - _null_ ));
 DESCR("distance between point and circle");
-DATA(insert OID = 1477 (  circle_contain_pt PGNSP PGUID 12 f t t i 2 f	16 "718 600" 100 0 0 100  circle_contain_pt - _null_ ));
+DATA(insert OID = 1477 (  circle_contain_pt PGNSP PGUID 12 f t f t f i 2	16 "718 600" 100 0 0 100  circle_contain_pt - _null_ ));
 DESCR("circle contains point?");
-DATA(insert OID = 1478 (  pt_contained_circle	PGNSP PGUID 12 f t t i 2 f	16 "600 718" 100 0 0 100  pt_contained_circle - _null_ ));
+DATA(insert OID = 1478 (  pt_contained_circle	PGNSP PGUID 12 f t f t f i 2	16 "600 718" 100 0 0 100  pt_contained_circle - _null_ ));
 DESCR("point inside circle?");
-DATA(insert OID = 1479 (  circle			PGNSP PGUID 12 f t t i 1 f 718 "603" 100 0 0 100	box_circle - _null_ ));
+DATA(insert OID = 1479 (  circle			PGNSP PGUID 12 f t f t f i 1 718 "603" 100 0 0 100	box_circle - _null_ ));
 DESCR("convert box to circle");
-DATA(insert OID = 1480 (  box				PGNSP PGUID 12 f t t i 1 f 603 "718" 100 0 0 100	circle_box - _null_ ));
+DATA(insert OID = 1480 (  box				PGNSP PGUID 12 f t f t f i 1 603 "718" 100 0 0 100	circle_box - _null_ ));
 DESCR("convert circle to box");
-DATA(insert OID = 1481 (  tinterval			 PGNSP PGUID 12 f t t i 2 f 704 "702 702" 100 0 0 100 mktinterval - _null_ ));
+DATA(insert OID = 1481 (  tinterval			 PGNSP PGUID 12 f t f t f i 2 704 "702 702" 100 0 0 100 mktinterval - _null_ ));
 DESCR("convert to tinterval");
 
-DATA(insert OID = 1482 (  lseg_ne			PGNSP PGUID 12 f t t i 2 f	16 "601 601" 100 0 0 100  lseg_ne - _null_ ));
+DATA(insert OID = 1482 (  lseg_ne			PGNSP PGUID 12 f t f t f i 2	16 "601 601" 100 0 0 100  lseg_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1483 (  lseg_lt			PGNSP PGUID 12 f t t i 2 f	16 "601 601" 100 0 0 100  lseg_lt - _null_ ));
+DATA(insert OID = 1483 (  lseg_lt			PGNSP PGUID 12 f t f t f i 2	16 "601 601" 100 0 0 100  lseg_lt - _null_ ));
 DESCR("less-than by length");
-DATA(insert OID = 1484 (  lseg_le			PGNSP PGUID 12 f t t i 2 f	16 "601 601" 100 0 0 100  lseg_le - _null_ ));
+DATA(insert OID = 1484 (  lseg_le			PGNSP PGUID 12 f t f t f i 2	16 "601 601" 100 0 0 100  lseg_le - _null_ ));
 DESCR("less-than-or-equal by length");
-DATA(insert OID = 1485 (  lseg_gt			PGNSP PGUID 12 f t t i 2 f	16 "601 601" 100 0 0 100  lseg_gt - _null_ ));
+DATA(insert OID = 1485 (  lseg_gt			PGNSP PGUID 12 f t f t f i 2	16 "601 601" 100 0 0 100  lseg_gt - _null_ ));
 DESCR("greater-than by length");
-DATA(insert OID = 1486 (  lseg_ge			PGNSP PGUID 12 f t t i 2 f	16 "601 601" 100 0 0 100  lseg_ge - _null_ ));
+DATA(insert OID = 1486 (  lseg_ge			PGNSP PGUID 12 f t f t f i 2	16 "601 601" 100 0 0 100  lseg_ge - _null_ ));
 DESCR("greater-than-or-equal by length");
-DATA(insert OID = 1487 (  lseg_length		PGNSP PGUID 12 f t t i 1 f 701 "601" 100 0 0 100	lseg_length - _null_ ));
+DATA(insert OID = 1487 (  lseg_length		PGNSP PGUID 12 f t f t f i 1 701 "601" 100 0 0 100	lseg_length - _null_ ));
 DESCR("distance between endpoints");
-DATA(insert OID = 1488 (  close_ls			PGNSP PGUID 12 f t t i 2 f 600 "628 601" 100 0 0 100	close_ls - _null_ ));
+DATA(insert OID = 1488 (  close_ls			PGNSP PGUID 12 f t f t f i 2 600 "628 601" 100 0 0 100	close_ls - _null_ ));
 DESCR("closest point to line on line segment");
-DATA(insert OID = 1489 (  close_lseg		PGNSP PGUID 12 f t t i 2 f 600 "601 601" 100 0 0 100	close_lseg - _null_ ));
+DATA(insert OID = 1489 (  close_lseg		PGNSP PGUID 12 f t f t f i 2 600 "601 601" 100 0 0 100	close_lseg - _null_ ));
 DESCR("closest point to line segment on line segment");
 
-DATA(insert OID = 1490 (  line_in			PGNSP PGUID 12 f t t i 1 f 628 "0" 100 0 0 100  line_in - _null_ ));
+DATA(insert OID = 1490 (  line_in			PGNSP PGUID 12 f t f t f i 1 628 "0" 100 0 0 100  line_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1491 (  line_out			PGNSP PGUID 12 f t t i 1 f 23  "628" 100 0 0 100	line_out - _null_ ));
+DATA(insert OID = 1491 (  line_out			PGNSP PGUID 12 f t f t f i 1 23  "628" 100 0 0 100	line_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1492 (  line_eq			PGNSP PGUID 12 f t t i 2 f  16 "628 628" 100 0 0 100	line_eq - _null_ ));
+DATA(insert OID = 1492 (  line_eq			PGNSP PGUID 12 f t f t f i 2  16 "628 628" 100 0 0 100	line_eq - _null_ ));
 DESCR("lines equal?");
-DATA(insert OID = 1493 (  line				PGNSP PGUID 12 f t t i 2 f 628 "600 600" 100 0 0 100	line_construct_pp - _null_ ));
+DATA(insert OID = 1493 (  line				PGNSP PGUID 12 f t f t f i 2 628 "600 600" 100 0 0 100	line_construct_pp - _null_ ));
 DESCR("line from points");
-DATA(insert OID = 1494 (  line_interpt		PGNSP PGUID 12 f t t i 2 f 600 "628 628" 100 0 0 100	line_interpt - _null_ ));
+DATA(insert OID = 1494 (  line_interpt		PGNSP PGUID 12 f t f t f i 2 600 "628 628" 100 0 0 100	line_interpt - _null_ ));
 DESCR("intersection point");
-DATA(insert OID = 1495 (  line_intersect	PGNSP PGUID 12 f t t i 2 f	16 "628 628" 100 0 0 100  line_intersect - _null_ ));
+DATA(insert OID = 1495 (  line_intersect	PGNSP PGUID 12 f t f t f i 2	16 "628 628" 100 0 0 100  line_intersect - _null_ ));
 DESCR("lines intersect?");
-DATA(insert OID = 1496 (  line_parallel		PGNSP PGUID 12 f t t i 2 f	16 "628 628" 100 0 0 100  line_parallel - _null_ ));
+DATA(insert OID = 1496 (  line_parallel		PGNSP PGUID 12 f t f t f i 2	16 "628 628" 100 0 0 100  line_parallel - _null_ ));
 DESCR("lines parallel?");
-DATA(insert OID = 1497 (  line_perp			PGNSP PGUID 12 f t t i 2 f	16 "628 628" 100 0 0 100  line_perp - _null_ ));
+DATA(insert OID = 1497 (  line_perp			PGNSP PGUID 12 f t f t f i 2	16 "628 628" 100 0 0 100  line_perp - _null_ ));
 DESCR("lines perpendicular?");
-DATA(insert OID = 1498 (  line_vertical		PGNSP PGUID 12 f t t i 1 f	16 "628" 100 0 0 100  line_vertical - _null_ ));
+DATA(insert OID = 1498 (  line_vertical		PGNSP PGUID 12 f t f t f i 1	16 "628" 100 0 0 100  line_vertical - _null_ ));
 DESCR("lines vertical?");
-DATA(insert OID = 1499 (  line_horizontal	PGNSP PGUID 12 f t t i 1 f	16 "628" 100 0 0 100  line_horizontal - _null_ ));
+DATA(insert OID = 1499 (  line_horizontal	PGNSP PGUID 12 f t f t f i 1	16 "628" 100 0 0 100  line_horizontal - _null_ ));
 DESCR("lines horizontal?");
 
 /* OIDS 1500 - 1599 */
 
-DATA(insert OID = 1530 (  length			PGNSP PGUID 12 f t t i 1 f 701 "601" 100 0 0 100	lseg_length - _null_ ));
+DATA(insert OID = 1530 (  length			PGNSP PGUID 12 f t f t f i 1 701 "601" 100 0 0 100	lseg_length - _null_ ));
 DESCR("distance between endpoints");
-DATA(insert OID = 1531 (  length			PGNSP PGUID 12 f t t i 1 f 701 "602" 100 0 0 100	path_length - _null_ ));
+DATA(insert OID = 1531 (  length			PGNSP PGUID 12 f t f t f i 1 701 "602" 100 0 0 100	path_length - _null_ ));
 DESCR("sum of path segments");
 
 
-DATA(insert OID = 1532 (  point				PGNSP PGUID 12 f t t i 1 f 600 "601" 100 0 0 100	lseg_center - _null_ ));
+DATA(insert OID = 1532 (  point				PGNSP PGUID 12 f t f t f i 1 600 "601" 100 0 0 100	lseg_center - _null_ ));
 DESCR("center of");
-DATA(insert OID = 1533 (  point				PGNSP PGUID 12 f t t i 1 f 600 "602" 100 0 0 100	path_center - _null_ ));
+DATA(insert OID = 1533 (  point				PGNSP PGUID 12 f t f t f i 1 600 "602" 100 0 0 100	path_center - _null_ ));
 DESCR("center of");
-DATA(insert OID = 1534 (  point				PGNSP PGUID 12 f t t i 1 f 600 "603" 100 0 0 100	box_center - _null_ ));
+DATA(insert OID = 1534 (  point				PGNSP PGUID 12 f t f t f i 1 600 "603" 100 0 0 100	box_center - _null_ ));
 DESCR("center of");
-DATA(insert OID = 1540 (  point				PGNSP PGUID 12 f t t i 1 f 600 "604" 100 0 0 100	poly_center - _null_ ));
+DATA(insert OID = 1540 (  point				PGNSP PGUID 12 f t f t f i 1 600 "604" 100 0 0 100	poly_center - _null_ ));
 DESCR("center of");
-DATA(insert OID = 1541 (  lseg				PGNSP PGUID 12 f t t i 1 f 601 "603" 100 0 0 100	box_diagonal - _null_ ));
+DATA(insert OID = 1541 (  lseg				PGNSP PGUID 12 f t f t f i 1 601 "603" 100 0 0 100	box_diagonal - _null_ ));
 DESCR("diagonal of");
-DATA(insert OID = 1542 (  center			PGNSP PGUID 12 f t t i 1 f 600 "603" 100 0 0 100	box_center - _null_ ));
+DATA(insert OID = 1542 (  center			PGNSP PGUID 12 f t f t f i 1 600 "603" 100 0 0 100	box_center - _null_ ));
 DESCR("center of");
-DATA(insert OID = 1543 (  center			PGNSP PGUID 12 f t t i 1 f 600 "718" 100 0 0 100	circle_center - _null_ ));
+DATA(insert OID = 1543 (  center			PGNSP PGUID 12 f t f t f i 1 600 "718" 100 0 0 100	circle_center - _null_ ));
 DESCR("center of");
-DATA(insert OID = 1544 (  polygon			PGNSP PGUID 14 f t t i 1 f 604 "718" 100 0 0 100	"select polygon(12, $1)" - _null_ ));
+DATA(insert OID = 1544 (  polygon			PGNSP PGUID 14 f t f t f i 1 604 "718" 100 0 0 100	"select polygon(12, $1)" - _null_ ));
 DESCR("convert circle to 12-vertex polygon");
-DATA(insert OID = 1545 (  npoints			PGNSP PGUID 12 f t t i 1 f	23 "602" 100 0 0 100  path_npoints - _null_ ));
+DATA(insert OID = 1545 (  npoints			PGNSP PGUID 12 f t f t f i 1	23 "602" 100 0 0 100  path_npoints - _null_ ));
 DESCR("# points in path");
-DATA(insert OID = 1556 (  npoints			PGNSP PGUID 12 f t t i 1 f	23 "604" 100 0 0 100  poly_npoints - _null_ ));
+DATA(insert OID = 1556 (  npoints			PGNSP PGUID 12 f t f t f i 1	23 "604" 100 0 0 100  poly_npoints - _null_ ));
 DESCR("number of points in polygon");
 
-DATA(insert OID = 1564 (  bit_in			PGNSP PGUID 12 f t t i 1 f 1560 "0" 100 0 0 100  bit_in - _null_ ));
+DATA(insert OID = 1564 (  bit_in			PGNSP PGUID 12 f t f t f i 1 1560 "0" 100 0 0 100  bit_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1565 (  bit_out			PGNSP PGUID 12 f t t i 1 f   23 "0" 100 0 0 100  bit_out - _null_ ));
+DATA(insert OID = 1565 (  bit_out			PGNSP PGUID 12 f t f t f i 1   23 "0" 100 0 0 100  bit_out - _null_ ));
 DESCR("(internal)");
 
-DATA(insert OID = 1569 (  like				PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100  textlike - _null_ ));
+DATA(insert OID = 1569 (  like				PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100  textlike - _null_ ));
 DESCR("matches LIKE expression");
-DATA(insert OID = 1570 (  notlike			PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100  textnlike - _null_ ));
+DATA(insert OID = 1570 (  notlike			PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100  textnlike - _null_ ));
 DESCR("does not match LIKE expression");
-DATA(insert OID = 1571 (  like				PGNSP PGUID 12 f t t i 2 f 16 "19 25" 100 0 0 100  namelike - _null_ ));
+DATA(insert OID = 1571 (  like				PGNSP PGUID 12 f t f t f i 2 16 "19 25" 100 0 0 100  namelike - _null_ ));
 DESCR("matches LIKE expression");
-DATA(insert OID = 1572 (  notlike			PGNSP PGUID 12 f t t i 2 f 16 "19 25" 100 0 0 100  namenlike - _null_ ));
+DATA(insert OID = 1572 (  notlike			PGNSP PGUID 12 f t f t f i 2 16 "19 25" 100 0 0 100  namenlike - _null_ ));
 DESCR("does not match LIKE expression");
-DATA(insert OID = 1573 (  int8				PGNSP PGUID 14 f t t i 1 f	20 "20" 100 0 0 100  "select $1" - _null_ ));
-DESCR("convert int8 to int8 (no-op)");
 
 
 /* SEQUENCEs nextval & currval functions */
-DATA(insert OID = 1574 (  nextval			PGNSP PGUID 12 f t t v 1 f 20 "25" 100 0 0 100  nextval - _null_ ));
+DATA(insert OID = 1574 (  nextval			PGNSP PGUID 12 f t f t f v 1 20 "25" 100 0 0 100  nextval - _null_ ));
 DESCR("sequence next value");
-DATA(insert OID = 1575 (  currval			PGNSP PGUID 12 f t t v 1 f 20 "25" 100 0 0 100  currval - _null_ ));
+DATA(insert OID = 1575 (  currval			PGNSP PGUID 12 f t f t f v 1 20 "25" 100 0 0 100  currval - _null_ ));
 DESCR("sequence current value");
-DATA(insert OID = 1576 (  setval			PGNSP PGUID 12 f t t v 2 f 20 "25 20" 100 0 0 100  setval - _null_ ));
+DATA(insert OID = 1576 (  setval			PGNSP PGUID 12 f t f t f v 2 20 "25 20" 100 0 0 100  setval - _null_ ));
 DESCR("set sequence value");
-DATA(insert OID = 1765 (  setval			PGNSP PGUID 12 f t t v 3 f 20 "25 20 16" 100 0 0 100	setval_and_iscalled - _null_ ));
+DATA(insert OID = 1765 (  setval			PGNSP PGUID 12 f t f t f v 3 20 "25 20 16" 100 0 0 100	setval_and_iscalled - _null_ ));
 DESCR("set sequence value and iscalled status");
 
-DATA(insert OID = 1579 (  varbit_in			PGNSP PGUID 12 f t t i 1 f 1562 "0" 100 0 0 100  varbit_in - _null_ ));
+DATA(insert OID = 1579 (  varbit_in			PGNSP PGUID 12 f t f t f i 1 1562 "0" 100 0 0 100  varbit_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1580 (  varbit_out		PGNSP PGUID 12 f t t i 1 f   23 "0" 100 0 0 100  varbit_out - _null_ ));
+DATA(insert OID = 1580 (  varbit_out		PGNSP PGUID 12 f t f t f i 1   23 "0" 100 0 0 100  varbit_out - _null_ ));
 DESCR("(internal)");
 
-DATA(insert OID = 1581 (  biteq				PGNSP PGUID 12 f t t i 2 f 16 "1560 1560" 100 0 0 100  biteq - _null_ ));
+DATA(insert OID = 1581 (  biteq				PGNSP PGUID 12 f t f t f i 2 16 "1560 1560" 100 0 0 100  biteq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1582 (  bitne				PGNSP PGUID 12 f t t i 2 f 16 "1560 1560" 100 0 0 100  bitne - _null_ ));
+DATA(insert OID = 1582 (  bitne				PGNSP PGUID 12 f t f t f i 2 16 "1560 1560" 100 0 0 100  bitne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1592 (  bitge				PGNSP PGUID 12 f t t i 2 f 16 "1560 1560" 100 0 0 100  bitge - _null_ ));
+DATA(insert OID = 1592 (  bitge				PGNSP PGUID 12 f t f t f i 2 16 "1560 1560" 100 0 0 100  bitge - _null_ ));
 DESCR("greater than or equal");
-DATA(insert OID = 1593 (  bitgt				PGNSP PGUID 12 f t t i 2 f 16 "1560 1560" 100 0 0 100  bitgt - _null_ ));
+DATA(insert OID = 1593 (  bitgt				PGNSP PGUID 12 f t f t f i 2 16 "1560 1560" 100 0 0 100  bitgt - _null_ ));
 DESCR("greater than");
-DATA(insert OID = 1594 (  bitle				PGNSP PGUID 12 f t t i 2 f 16 "1560 1560" 100 0 0 100  bitle - _null_ ));
+DATA(insert OID = 1594 (  bitle				PGNSP PGUID 12 f t f t f i 2 16 "1560 1560" 100 0 0 100  bitle - _null_ ));
 DESCR("less than or equal");
-DATA(insert OID = 1595 (  bitlt				PGNSP PGUID 12 f t t i 2 f 16 "1560 1560" 100 0 0 100  bitlt - _null_ ));
+DATA(insert OID = 1595 (  bitlt				PGNSP PGUID 12 f t f t f i 2 16 "1560 1560" 100 0 0 100  bitlt - _null_ ));
 DESCR("less than");
-DATA(insert OID = 1596 (  bitcmp			PGNSP PGUID 12 f t t i 2 f 23 "1560 1560" 100 0 0 100  bitcmp - _null_ ));
+DATA(insert OID = 1596 (  bitcmp			PGNSP PGUID 12 f t f t f i 2 23 "1560 1560" 100 0 0 100  bitcmp - _null_ ));
 DESCR("compare");
 
-DATA(insert OID = 1598 (  random			PGNSP PGUID 12 f t t v 0 f 701 "0" 100 0 0 100  drandom - _null_ ));
+DATA(insert OID = 1598 (  random			PGNSP PGUID 12 f t f t f v 0 701 "0" 100 0 0 100  drandom - _null_ ));
 DESCR("random value");
-DATA(insert OID = 1599 (  setseed			PGNSP PGUID 12 f t t v 1 f  23 "701" 100 0 0 100	setseed - _null_ ));
+DATA(insert OID = 1599 (  setseed			PGNSP PGUID 12 f t f t f v 1  23 "701" 100 0 0 100	setseed - _null_ ));
 DESCR("set random seed");
 
 /* OIDS 1600 - 1699 */
 
-DATA(insert OID = 1600 (  asin				PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100	dasin - _null_ ));
+DATA(insert OID = 1600 (  asin				PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100	dasin - _null_ ));
 DESCR("arcsine");
-DATA(insert OID = 1601 (  acos				PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100	dacos - _null_ ));
+DATA(insert OID = 1601 (  acos				PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100	dacos - _null_ ));
 DESCR("arccosine");
-DATA(insert OID = 1602 (  atan				PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100	datan - _null_ ));
+DATA(insert OID = 1602 (  atan				PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100	datan - _null_ ));
 DESCR("arctangent");
-DATA(insert OID = 1603 (  atan2				PGNSP PGUID 12 f t t i 2 f 701 "701 701" 100 0 0 100	datan2 - _null_ ));
+DATA(insert OID = 1603 (  atan2				PGNSP PGUID 12 f t f t f i 2 701 "701 701" 100 0 0 100	datan2 - _null_ ));
 DESCR("arctangent, two arguments");
-DATA(insert OID = 1604 (  sin				PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100	dsin - _null_ ));
+DATA(insert OID = 1604 (  sin				PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100	dsin - _null_ ));
 DESCR("sine");
-DATA(insert OID = 1605 (  cos				PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100	dcos - _null_ ));
+DATA(insert OID = 1605 (  cos				PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100	dcos - _null_ ));
 DESCR("cosine");
-DATA(insert OID = 1606 (  tan				PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100	dtan - _null_ ));
+DATA(insert OID = 1606 (  tan				PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100	dtan - _null_ ));
 DESCR("tangent");
-DATA(insert OID = 1607 (  cot				PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100	dcot - _null_ ));
+DATA(insert OID = 1607 (  cot				PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100	dcot - _null_ ));
 DESCR("cotangent");
-DATA(insert OID = 1608 (  degrees			PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100	degrees - _null_ ));
+DATA(insert OID = 1608 (  degrees			PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100	degrees - _null_ ));
 DESCR("radians to degrees");
-DATA(insert OID = 1609 (  radians			PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100	radians - _null_ ));
+DATA(insert OID = 1609 (  radians			PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100	radians - _null_ ));
 DESCR("degrees to radians");
-DATA(insert OID = 1610 (  pi				PGNSP PGUID 12 f t t i 0 f 701 "0" 100 0 0 100  dpi - _null_ ));
+DATA(insert OID = 1610 (  pi				PGNSP PGUID 12 f t f t f i 0 701 "0" 100 0 0 100  dpi - _null_ ));
 DESCR("PI");
 
-DATA(insert OID = 1618 (  interval_mul		PGNSP PGUID 12 f t t i 2 f 1186 "1186 701" 100 0 0 100  interval_mul - _null_ ));
+DATA(insert OID = 1618 (  interval_mul		PGNSP PGUID 12 f t f t f i 2 1186 "1186 701" 100 0 0 100  interval_mul - _null_ ));
 DESCR("multiply interval");
-DATA(insert OID = 1619 (  varchar			PGNSP PGUID 12 f t t i 1 f 1043 "23" 100 0 0 100	int4_text - _null_ ));
+DATA(insert OID = 1619 (  varchar			PGNSP PGUID 12 f t f t f i 1 1043 "23" 100 0 0 100	int4_text - _null_ ));
 DESCR("convert int4 to varchar");
 
-DATA(insert OID = 1620 (  ascii				PGNSP PGUID 12 f t t i 1 f 23 "25" 100 0 0 100  ascii - _null_ ));
+DATA(insert OID = 1620 (  ascii				PGNSP PGUID 12 f t f t f i 1 23 "25" 100 0 0 100  ascii - _null_ ));
 DESCR("convert first char to int4");
-DATA(insert OID = 1621 (  chr				PGNSP PGUID 12 f t t i 1 f 25 "23" 100 0 0 100  chr - _null_ ));
+DATA(insert OID = 1621 (  chr				PGNSP PGUID 12 f t f t f i 1 25 "23" 100 0 0 100  chr - _null_ ));
 DESCR("convert int4 to char");
-DATA(insert OID = 1622 (  repeat			PGNSP PGUID 12 f t t i 2 f 25 "25 23" 100 0 0 100  repeat - _null_ ));
+DATA(insert OID = 1622 (  repeat			PGNSP PGUID 12 f t f t f i 2 25 "25 23" 100 0 0 100  repeat - _null_ ));
 DESCR("replicate string int4 times");
 
-DATA(insert OID = 1623 (  varchar			PGNSP PGUID 12 f t t i 1 f 1043 "20" 100 0 0 100	int8_text - _null_ ));
+DATA(insert OID = 1623 (  varchar			PGNSP PGUID 12 f t f t f i 1 1043 "20" 100 0 0 100	int8_text - _null_ ));
 DESCR("convert int8 to varchar");
-DATA(insert OID = 1624 (  mul_d_interval	PGNSP PGUID 12 f t t i 2 f 1186 "701 1186" 100 0 0 100  mul_d_interval - _null_ ));
+DATA(insert OID = 1624 (  mul_d_interval	PGNSP PGUID 12 f t f t f i 2 1186 "701 1186" 100 0 0 100  mul_d_interval - _null_ ));
 
-DATA(insert OID = 1633 (  texticlike		PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100 texticlike - _null_ ));
+DATA(insert OID = 1633 (  texticlike		PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100 texticlike - _null_ ));
 DESCR("matches LIKE expression, case-insensitive");
-DATA(insert OID = 1634 (  texticnlike		PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100 texticnlike - _null_ ));
+DATA(insert OID = 1634 (  texticnlike		PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100 texticnlike - _null_ ));
 DESCR("does not match LIKE expression, case-insensitive");
-DATA(insert OID = 1635 (  nameiclike		PGNSP PGUID 12 f t t i 2 f 16 "19 25" 100 0 0 100  nameiclike - _null_ ));
+DATA(insert OID = 1635 (  nameiclike		PGNSP PGUID 12 f t f t f i 2 16 "19 25" 100 0 0 100  nameiclike - _null_ ));
 DESCR("matches LIKE expression, case-insensitive");
-DATA(insert OID = 1636 (  nameicnlike		PGNSP PGUID 12 f t t i 2 f 16 "19 25" 100 0 0 100  nameicnlike - _null_ ));
+DATA(insert OID = 1636 (  nameicnlike		PGNSP PGUID 12 f t f t f i 2 16 "19 25" 100 0 0 100  nameicnlike - _null_ ));
 DESCR("does not match LIKE expression, case-insensitive");
-DATA(insert OID = 1637 (  like_escape		PGNSP PGUID 12 f t t i 2 f 25 "25 25" 100 0 0 100 like_escape - _null_ ));
+DATA(insert OID = 1637 (  like_escape		PGNSP PGUID 12 f t f t f i 2 25 "25 25" 100 0 0 100 like_escape - _null_ ));
 DESCR("convert match pattern to use backslash escapes");
 
-DATA(insert OID = 1689 (  update_pg_pwd_and_pg_group  PGNSP PGUID 12 f t t v 0 f 0  ""  100 0 0 100  update_pg_pwd_and_pg_group - _null_ ));
+DATA(insert OID = 1689 (  update_pg_pwd_and_pg_group  PGNSP PGUID 12 f t f t f v 0 0  ""  100 0 0 100  update_pg_pwd_and_pg_group - _null_ ));
 DESCR("update pg_pwd and pg_group files");
 
 /* Oracle Compatibility Related Functions - By Edmund Mergl <E.Mergl@bawue.de> */
-DATA(insert OID =  868 (  strpos	   PGNSP PGUID 12 f t t i 2 f 23 "25 25" 100 0 0 100	textpos - _null_ ));
+DATA(insert OID =  868 (  strpos	   PGNSP PGUID 12 f t f t f i 2 23 "25 25" 100 0 0 100	textpos - _null_ ));
 DESCR("find position of substring");
-DATA(insert OID =  870 (  lower		   PGNSP PGUID 12 f t t i 1 f 25 "25" 100 0 0 100  lower - _null_ ));
+DATA(insert OID =  870 (  lower		   PGNSP PGUID 12 f t f t f i 1 25 "25" 100 0 0 100  lower - _null_ ));
 DESCR("lowercase");
-DATA(insert OID =  871 (  upper		   PGNSP PGUID 12 f t t i 1 f 25 "25" 100 0 0 100  upper - _null_ ));
+DATA(insert OID =  871 (  upper		   PGNSP PGUID 12 f t f t f i 1 25 "25" 100 0 0 100  upper - _null_ ));
 DESCR("uppercase");
-DATA(insert OID =  872 (  initcap	   PGNSP PGUID 12 f t t i 1 f 25 "25" 100 0 0 100  initcap - _null_ ));
+DATA(insert OID =  872 (  initcap	   PGNSP PGUID 12 f t f t f i 1 25 "25" 100 0 0 100  initcap - _null_ ));
 DESCR("capitalize each word");
-DATA(insert OID =  873 (  lpad		   PGNSP PGUID 12 f t t i 3 f 25 "25 23 25" 100 0 0 100  lpad - _null_ ));
+DATA(insert OID =  873 (  lpad		   PGNSP PGUID 12 f t f t f i 3 25 "25 23 25" 100 0 0 100  lpad - _null_ ));
 DESCR("left-pad string to length");
-DATA(insert OID =  874 (  rpad		   PGNSP PGUID 12 f t t i 3 f 25 "25 23 25" 100 0 0 100  rpad - _null_ ));
+DATA(insert OID =  874 (  rpad		   PGNSP PGUID 12 f t f t f i 3 25 "25 23 25" 100 0 0 100  rpad - _null_ ));
 DESCR("right-pad string to length");
-DATA(insert OID =  875 (  ltrim		   PGNSP PGUID 12 f t t i 2 f 25 "25 25" 100 0 0 100	ltrim - _null_ ));
+DATA(insert OID =  875 (  ltrim		   PGNSP PGUID 12 f t f t f i 2 25 "25 25" 100 0 0 100	ltrim - _null_ ));
 DESCR("left-pad string to length");
-DATA(insert OID =  876 (  rtrim		   PGNSP PGUID 12 f t t i 2 f 25 "25 25" 100 0 0 100	rtrim - _null_ ));
+DATA(insert OID =  876 (  rtrim		   PGNSP PGUID 12 f t f t f i 2 25 "25 25" 100 0 0 100	rtrim - _null_ ));
 DESCR("right-pad string to length");
-DATA(insert OID =  877 (  substr	   PGNSP PGUID 12 f t t i 3 f 25 "25 23 23" 100 0 0 100  text_substr - _null_ ));
+DATA(insert OID =  877 (  substr	   PGNSP PGUID 12 f t f t f i 3 25 "25 23 23" 100 0 0 100  text_substr - _null_ ));
 DESCR("return portion of string");
-DATA(insert OID =  878 (  translate    PGNSP PGUID 12 f t t i 3 f 25 "25 25 25" 100 0 0 100  translate - _null_ ));
+DATA(insert OID =  878 (  translate    PGNSP PGUID 12 f t f t f i 3 25 "25 25 25" 100 0 0 100  translate - _null_ ));
 DESCR("map a set of character appearing in string");
-DATA(insert OID =  879 (  lpad		   PGNSP PGUID 14 f t t i 2 f 25 "25 23" 100 0 0 100	"select lpad($1, $2, \' \')" - _null_ ));
+DATA(insert OID =  879 (  lpad		   PGNSP PGUID 14 f t f t f i 2 25 "25 23" 100 0 0 100	"select lpad($1, $2, \' \')" - _null_ ));
 DESCR("left-pad string to length");
-DATA(insert OID =  880 (  rpad		   PGNSP PGUID 14 f t t i 2 f 25 "25 23" 100 0 0 100	"select rpad($1, $2, \' \')" - _null_ ));
+DATA(insert OID =  880 (  rpad		   PGNSP PGUID 14 f t f t f i 2 25 "25 23" 100 0 0 100	"select rpad($1, $2, \' \')" - _null_ ));
 DESCR("right-pad string to length");
-DATA(insert OID =  881 (  ltrim		   PGNSP PGUID 14 f t t i 1 f 25 "25" 100 0 0 100  "select ltrim($1, \' \')" - _null_ ));
+DATA(insert OID =  881 (  ltrim		   PGNSP PGUID 14 f t f t f i 1 25 "25" 100 0 0 100  "select ltrim($1, \' \')" - _null_ ));
 DESCR("remove initial characters from string");
-DATA(insert OID =  882 (  rtrim		   PGNSP PGUID 14 f t t i 1 f 25 "25" 100 0 0 100  "select rtrim($1, \' \')" - _null_ ));
+DATA(insert OID =  882 (  rtrim		   PGNSP PGUID 14 f t f t f i 1 25 "25" 100 0 0 100  "select rtrim($1, \' \')" - _null_ ));
 DESCR("remove trailing characters from string");
-DATA(insert OID =  883 (  substr	   PGNSP PGUID 14 f t t i 2 f 25 "25 23" 100 0 0 100	"select substr($1, $2, -1)" - _null_ ));
+DATA(insert OID =  883 (  substr	   PGNSP PGUID 14 f t f t f i 2 25 "25 23" 100 0 0 100	"select substr($1, $2, -1)" - _null_ ));
 DESCR("return portion of string");
-DATA(insert OID =  884 (  btrim		   PGNSP PGUID 12 f t t i 2 f 25 "25 25" 100 0 0 100	btrim - _null_ ));
+DATA(insert OID =  884 (  btrim		   PGNSP PGUID 12 f t f t f i 2 25 "25 25" 100 0 0 100	btrim - _null_ ));
 DESCR("trim both ends of string");
-DATA(insert OID =  885 (  btrim		   PGNSP PGUID 14 f t t i 1 f 25 "25" 100 0 0 100  "select btrim($1, \' \')" - _null_ ));
+DATA(insert OID =  885 (  btrim		   PGNSP PGUID 14 f t f t f i 1 25 "25" 100 0 0 100  "select btrim($1, \' \')" - _null_ ));
 DESCR("trim both ends of string");
 
-DATA(insert OID =  936 (  substring    PGNSP PGUID 12 f t t i 3 f 25 "25 23 23" 100 0 0 100  text_substr - _null_ ));
+DATA(insert OID =  936 (  substring    PGNSP PGUID 12 f t f t f i 3 25 "25 23 23" 100 0 0 100  text_substr - _null_ ));
 DESCR("return portion of string");
-DATA(insert OID =  937 (  substring    PGNSP PGUID 14 f t t i 2 f 25 "25 23" 100 0 0 100	"select substring($1, $2, -1)" - _null_ ));
+DATA(insert OID =  937 (  substring    PGNSP PGUID 14 f t f t f i 2 25 "25 23" 100 0 0 100	"select substring($1, $2, -1)" - _null_ ));
 DESCR("return portion of string");
 
 /* for multi-byte support */
 
 /* return database encoding name */
-DATA(insert OID = 1039 (  getdatabaseencoding	   PGNSP PGUID 12 f t t s 0 f 19 "0" 100 0 0 100	getdatabaseencoding - _null_ ));
+DATA(insert OID = 1039 (  getdatabaseencoding	   PGNSP PGUID 12 f t f t f s 0 19 "0" 100 0 0 100	getdatabaseencoding - _null_ ));
 DESCR("encoding name of current database");
 
 /* return client encoding name i.e. session encoding */
-DATA(insert OID = 810 (  pg_client_encoding    PGNSP PGUID 12 f t t s 0 f 19 "0" 100 0 0 100	pg_client_encoding - _null_ ));
+DATA(insert OID = 810 (  pg_client_encoding    PGNSP PGUID 12 f t f t f s 0 19 "0" 100 0 0 100	pg_client_encoding - _null_ ));
 DESCR("encoding name of current database");
 
-DATA(insert OID = 1717 (  convert		   PGNSP PGUID 12 f t t s 2 f 25 "25 19" 100 0 0 100	pg_convert - _null_ ));
+DATA(insert OID = 1717 (  convert		   PGNSP PGUID 12 f t f t f s 2 25 "25 19" 100 0 0 100	pg_convert - _null_ ));
 DESCR("convert string with specified destination encoding name");
 
-DATA(insert OID = 1813 (  convert		   PGNSP PGUID 12 f t t s 3 f 25 "25 19 19" 100 0 0 100  pg_convert2 - _null_ ));
+DATA(insert OID = 1813 (  convert		   PGNSP PGUID 12 f t f t f s 3 25 "25 19 19" 100 0 0 100  pg_convert2 - _null_ ));
 DESCR("convert string with specified encoding names");
 
-DATA(insert OID = 1264 (  pg_char_to_encoding	   PGNSP PGUID 12 f t t s 1 f 23 "19" 100 0 0 100  PG_char_to_encoding - _null_ ));
+DATA(insert OID = 1264 (  pg_char_to_encoding	   PGNSP PGUID 12 f t f t f s 1 23 "19" 100 0 0 100  PG_char_to_encoding - _null_ ));
 DESCR("convert encoding name to encoding id");
 
-DATA(insert OID = 1597 (  pg_encoding_to_char	   PGNSP PGUID 12 f t t s 1 f 19 "23" 100 0 0 100  PG_encoding_to_char - _null_ ));
+DATA(insert OID = 1597 (  pg_encoding_to_char	   PGNSP PGUID 12 f t f t f s 1 19 "23" 100 0 0 100  PG_encoding_to_char - _null_ ));
 DESCR("convert encoding id to encoding name");
 
-DATA(insert OID = 1638 (  oidgt				   PGNSP PGUID 12 f t t i 2 f 16 "26 26" 100 0 0 100	oidgt - _null_ ));
+DATA(insert OID = 1638 (  oidgt				   PGNSP PGUID 12 f t f t f i 2 16 "26 26" 100 0 0 100	oidgt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1639 (  oidge				   PGNSP PGUID 12 f t t i 2 f 16 "26 26" 100 0 0 100	oidge - _null_ ));
+DATA(insert OID = 1639 (  oidge				   PGNSP PGUID 12 f t f t f i 2 16 "26 26" 100 0 0 100	oidge - _null_ ));
 DESCR("greater-than-or-equal");
 
 /* System-view support functions */
-DATA(insert OID = 1640 (  pg_get_ruledef	   PGNSP PGUID 12 f t t s 1 f 25 "19" 100 0 0 100  pg_get_ruledef - _null_ ));
+DATA(insert OID = 1640 (  pg_get_ruledef	   PGNSP PGUID 12 f t f t f s 1 25 "19" 100 0 0 100  pg_get_ruledef - _null_ ));
 DESCR("source text of a rule");
-DATA(insert OID = 1641 (  pg_get_viewdef	   PGNSP PGUID 12 f t t s 1 f 25 "19" 100 0 0 100  pg_get_viewdef - _null_ ));
+DATA(insert OID = 1641 (  pg_get_viewdef	   PGNSP PGUID 12 f t f t f s 1 25 "19" 100 0 0 100  pg_get_viewdef - _null_ ));
 DESCR("select statement of a view");
-DATA(insert OID = 1642 (  pg_get_userbyid	   PGNSP PGUID 12 f t t s 1 f 19 "23" 100 0 0 100  pg_get_userbyid - _null_ ));
+DATA(insert OID = 1642 (  pg_get_userbyid	   PGNSP PGUID 12 f t f t f s 1 19 "23" 100 0 0 100  pg_get_userbyid - _null_ ));
 DESCR("user name by UID (with fallback)");
-DATA(insert OID = 1643 (  pg_get_indexdef	   PGNSP PGUID 12 f t t s 1 f 25 "26" 100 0 0 100  pg_get_indexdef - _null_ ));
+DATA(insert OID = 1643 (  pg_get_indexdef	   PGNSP PGUID 12 f t f t f s 1 25 "26" 100 0 0 100  pg_get_indexdef - _null_ ));
 DESCR("index description");
-DATA(insert OID = 1716 (  pg_get_expr		   PGNSP PGUID 12 f t t s 2 f 25 "25 26" 100 0 0 100	pg_get_expr - _null_ ));
+DATA(insert OID = 1716 (  pg_get_expr		   PGNSP PGUID 12 f t f t f s 2 25 "25 26" 100 0 0 100	pg_get_expr - _null_ ));
 DESCR("deparse an encoded expression");
 
 
 /* Generic referential integrity constraint triggers */
-DATA(insert OID = 1644 (  RI_FKey_check_ins		PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100  RI_FKey_check_ins - _null_ ));
+DATA(insert OID = 1644 (  RI_FKey_check_ins		PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100  RI_FKey_check_ins - _null_ ));
 DESCR("referential integrity FOREIGN KEY ... REFERENCES");
-DATA(insert OID = 1645 (  RI_FKey_check_upd		PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100  RI_FKey_check_upd - _null_ ));
+DATA(insert OID = 1645 (  RI_FKey_check_upd		PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100  RI_FKey_check_upd - _null_ ));
 DESCR("referential integrity FOREIGN KEY ... REFERENCES");
-DATA(insert OID = 1646 (  RI_FKey_cascade_del	PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100  RI_FKey_cascade_del - _null_ ));
+DATA(insert OID = 1646 (  RI_FKey_cascade_del	PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100  RI_FKey_cascade_del - _null_ ));
 DESCR("referential integrity ON DELETE CASCADE");
-DATA(insert OID = 1647 (  RI_FKey_cascade_upd	PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100  RI_FKey_cascade_upd - _null_ ));
+DATA(insert OID = 1647 (  RI_FKey_cascade_upd	PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100  RI_FKey_cascade_upd - _null_ ));
 DESCR("referential integrity ON UPDATE CASCADE");
-DATA(insert OID = 1648 (  RI_FKey_restrict_del	PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100  RI_FKey_restrict_del - _null_ ));
+DATA(insert OID = 1648 (  RI_FKey_restrict_del	PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100  RI_FKey_restrict_del - _null_ ));
 DESCR("referential integrity ON DELETE RESTRICT");
-DATA(insert OID = 1649 (  RI_FKey_restrict_upd	PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100  RI_FKey_restrict_upd - _null_ ));
+DATA(insert OID = 1649 (  RI_FKey_restrict_upd	PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100  RI_FKey_restrict_upd - _null_ ));
 DESCR("referential integrity ON UPDATE RESTRICT");
-DATA(insert OID = 1650 (  RI_FKey_setnull_del	PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100  RI_FKey_setnull_del - _null_ ));
+DATA(insert OID = 1650 (  RI_FKey_setnull_del	PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100  RI_FKey_setnull_del - _null_ ));
 DESCR("referential integrity ON DELETE SET NULL");
-DATA(insert OID = 1651 (  RI_FKey_setnull_upd	PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100  RI_FKey_setnull_upd - _null_ ));
+DATA(insert OID = 1651 (  RI_FKey_setnull_upd	PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100  RI_FKey_setnull_upd - _null_ ));
 DESCR("referential integrity ON UPDATE SET NULL");
-DATA(insert OID = 1652 (  RI_FKey_setdefault_del PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100	RI_FKey_setdefault_del - _null_ ));
+DATA(insert OID = 1652 (  RI_FKey_setdefault_del PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100	RI_FKey_setdefault_del - _null_ ));
 DESCR("referential integrity ON DELETE SET DEFAULT");
-DATA(insert OID = 1653 (  RI_FKey_setdefault_upd PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100	RI_FKey_setdefault_upd - _null_ ));
+DATA(insert OID = 1653 (  RI_FKey_setdefault_upd PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100	RI_FKey_setdefault_upd - _null_ ));
 DESCR("referential integrity ON UPDATE SET DEFAULT");
-DATA(insert OID = 1654 (  RI_FKey_noaction_del PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100  RI_FKey_noaction_del - _null_ ));
+DATA(insert OID = 1654 (  RI_FKey_noaction_del PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100  RI_FKey_noaction_del - _null_ ));
 DESCR("referential integrity ON DELETE NO ACTION");
-DATA(insert OID = 1655 (  RI_FKey_noaction_upd PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100  RI_FKey_noaction_upd - _null_ ));
+DATA(insert OID = 1655 (  RI_FKey_noaction_upd PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100  RI_FKey_noaction_upd - _null_ ));
 DESCR("referential integrity ON UPDATE NO ACTION");
 
-DATA(insert OID = 1666 (  varbiteq			PGNSP PGUID 12 f t t i 2 f 16 "1562 1562" 100 0 0 100  biteq - _null_ ));
+DATA(insert OID = 1666 (  varbiteq			PGNSP PGUID 12 f t f t f i 2 16 "1562 1562" 100 0 0 100  biteq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1667 (  varbitne			PGNSP PGUID 12 f t t i 2 f 16 "1562 1562" 100 0 0 100  bitne - _null_ ));
+DATA(insert OID = 1667 (  varbitne			PGNSP PGUID 12 f t f t f i 2 16 "1562 1562" 100 0 0 100  bitne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1668 (  varbitge			PGNSP PGUID 12 f t t i 2 f 16 "1562 1562" 100 0 0 100  bitge - _null_ ));
+DATA(insert OID = 1668 (  varbitge			PGNSP PGUID 12 f t f t f i 2 16 "1562 1562" 100 0 0 100  bitge - _null_ ));
 DESCR("greater than or equal");
-DATA(insert OID = 1669 (  varbitgt			PGNSP PGUID 12 f t t i 2 f 16 "1562 1562" 100 0 0 100  bitgt - _null_ ));
+DATA(insert OID = 1669 (  varbitgt			PGNSP PGUID 12 f t f t f i 2 16 "1562 1562" 100 0 0 100  bitgt - _null_ ));
 DESCR("greater than");
-DATA(insert OID = 1670 (  varbitle			PGNSP PGUID 12 f t t i 2 f 16 "1562 1562" 100 0 0 100  bitle - _null_ ));
+DATA(insert OID = 1670 (  varbitle			PGNSP PGUID 12 f t f t f i 2 16 "1562 1562" 100 0 0 100  bitle - _null_ ));
 DESCR("less than or equal");
-DATA(insert OID = 1671 (  varbitlt			PGNSP PGUID 12 f t t i 2 f 16 "1562 1562" 100 0 0 100  bitlt - _null_ ));
+DATA(insert OID = 1671 (  varbitlt			PGNSP PGUID 12 f t f t f i 2 16 "1562 1562" 100 0 0 100  bitlt - _null_ ));
 DESCR("less than");
-DATA(insert OID = 1672 (  varbitcmp			PGNSP PGUID 12 f t t i 2 f 23 "1562 1562" 100 0 0 100  bitcmp - _null_ ));
+DATA(insert OID = 1672 (  varbitcmp			PGNSP PGUID 12 f t f t f i 2 23 "1562 1562" 100 0 0 100  bitcmp - _null_ ));
 DESCR("compare");
 
-DATA(insert OID = 1673 (  bitand			PGNSP PGUID 12 f t t i 2 f 1560 "1560 1560" 100 0 0 100  bitand - _null_ ));
+DATA(insert OID = 1673 (  bitand			PGNSP PGUID 12 f t f t f i 2 1560 "1560 1560" 100 0 0 100  bitand - _null_ ));
 DESCR("bitwise and");
-DATA(insert OID = 1674 (  bitor				PGNSP PGUID 12 f t t i 2 f 1560 "1560 1560" 100 0 0 100  bitor - _null_ ));
+DATA(insert OID = 1674 (  bitor				PGNSP PGUID 12 f t f t f i 2 1560 "1560 1560" 100 0 0 100  bitor - _null_ ));
 DESCR("bitwise or");
-DATA(insert OID = 1675 (  bitxor			PGNSP PGUID 12 f t t i 2 f 1560 "1560 1560" 100 0 0 100  bitxor - _null_ ));
+DATA(insert OID = 1675 (  bitxor			PGNSP PGUID 12 f t f t f i 2 1560 "1560 1560" 100 0 0 100  bitxor - _null_ ));
 DESCR("bitwise exclusive or");
-DATA(insert OID = 1676 (  bitnot			PGNSP PGUID 12 f t t i 1 f 1560 "1560" 100 0 0 100  bitnot - _null_ ));
+DATA(insert OID = 1676 (  bitnot			PGNSP PGUID 12 f t f t f i 1 1560 "1560" 100 0 0 100  bitnot - _null_ ));
 DESCR("bitwise negation");
-DATA(insert OID = 1677 (  bitshiftleft		PGNSP PGUID 12 f t t i 2 f 1560 "1560 23" 100 0 0 100  bitshiftleft - _null_ ));
+DATA(insert OID = 1677 (  bitshiftleft		PGNSP PGUID 12 f t f t f i 2 1560 "1560 23" 100 0 0 100  bitshiftleft - _null_ ));
 DESCR("bitwise left shift");
-DATA(insert OID = 1678 (  bitshiftright		PGNSP PGUID 12 f t t i 2 f 1560 "1560 23" 100 0 0 100  bitshiftright - _null_ ));
+DATA(insert OID = 1678 (  bitshiftright		PGNSP PGUID 12 f t f t f i 2 1560 "1560 23" 100 0 0 100  bitshiftright - _null_ ));
 DESCR("bitwise right shift");
-DATA(insert OID = 1679 (  bitcat			PGNSP PGUID 12 f t t i 2 f 1560 "1560 1560" 100 0 0 100  bitcat - _null_ ));
+DATA(insert OID = 1679 (  bitcat			PGNSP PGUID 12 f t f t f i 2 1560 "1560 1560" 100 0 0 100  bitcat - _null_ ));
 DESCR("bitwise concatenation");
-DATA(insert OID = 1680 (  substring			PGNSP PGUID 12 f t t i 3 f 1560 "1560 23 23" 100 0 0 100	bitsubstr - _null_ ));
+DATA(insert OID = 1680 (  substring			PGNSP PGUID 12 f t f t f i 3 1560 "1560 23 23" 100 0 0 100	bitsubstr - _null_ ));
 DESCR("return portion of bitstring");
-DATA(insert OID = 1681 (  length			PGNSP PGUID 12 f t t i 1 f 23 "1560" 100 0 0 100	bitlength - _null_ ));
+DATA(insert OID = 1681 (  length			PGNSP PGUID 12 f t f t f i 1 23 "1560" 100 0 0 100	bitlength - _null_ ));
 DESCR("bitstring length");
-DATA(insert OID = 1682 (  octet_length		PGNSP PGUID 12 f t t i 1 f 23 "1560" 100 0 0 100	bitoctetlength - _null_ ));
+DATA(insert OID = 1682 (  octet_length		PGNSP PGUID 12 f t f t f i 1 23 "1560" 100 0 0 100	bitoctetlength - _null_ ));
 DESCR("octet length");
-DATA(insert OID = 1683 (  bitfromint4		PGNSP PGUID 12 f t t i 1 f 1560 "23" 100 0 0 100	bitfromint4 - _null_ ));
+DATA(insert OID = 1683 (  bitfromint4		PGNSP PGUID 12 f t f t f i 1 1560 "23" 100 0 0 100	bitfromint4 - _null_ ));
 DESCR("int4 to bitstring");
-DATA(insert OID = 1684 (  bittoint4			PGNSP PGUID 12 f t t i 1 f 23 "1560" 100 0 0 100	bittoint4 - _null_ ));
+DATA(insert OID = 1684 (  bittoint4			PGNSP PGUID 12 f t f t f i 1 23 "1560" 100 0 0 100	bittoint4 - _null_ ));
 DESCR("bitstring to int4");
 
-DATA(insert OID = 1685 (  bit			   PGNSP PGUID 12 f t t i 2 f 1560 "1560 23" 100 0 0 100	bit - _null_ ));
+DATA(insert OID = 1685 (  bit			   PGNSP PGUID 12 f t t t f i 2 1560 "1560 23" 100 0 0 100	bit - _null_ ));
 DESCR("adjust bit() to typmod length");
-DATA(insert OID = 1686 (  _bit			   PGNSP PGUID 12 f t t i 2 f 1561 "1561 23" 100 0 0 100	_bit - _null_ ));
+DATA(insert OID = 1686 (  _bit			   PGNSP PGUID 12 f t t t f i 2 1561 "1561 23" 100 0 0 100	_bit - _null_ ));
 DESCR("adjust bit()[] to typmod length");
-DATA(insert OID = 1687 (  varbit		   PGNSP PGUID 12 f t t i 2 f 1562 "1562 23" 100 0 0 100	varbit - _null_ ));
+DATA(insert OID = 1687 (  varbit		   PGNSP PGUID 12 f t t t f i 2 1562 "1562 23" 100 0 0 100	varbit - _null_ ));
 DESCR("adjust varbit() to typmod length");
-DATA(insert OID = 1688 (  _varbit		   PGNSP PGUID 12 f t t i 2 f 1563 "1563 23" 100 0 0 100	_varbit - _null_ ));
+DATA(insert OID = 1688 (  _varbit		   PGNSP PGUID 12 f t t t f i 2 1563 "1563 23" 100 0 0 100	_varbit - _null_ ));
 DESCR("adjust varbit()[] to typmod length");
 
-DATA(insert OID = 1698 (  position		   PGNSP PGUID 12 f t t i 2 f 23 "1560 1560" 100 0 0 100 bitposition - _null_ ));
+DATA(insert OID = 1698 (  position		   PGNSP PGUID 12 f t f t f i 2 23 "1560 1560" 100 0 0 100 bitposition - _null_ ));
 DESCR("return position of sub-bitstring");
-DATA(insert OID = 1699 (  substring			PGNSP PGUID 14 f t t i 2 f 1560 "1560 23" 100 0 0 100  "select substring($1, $2, -1)" - _null_ ));
+DATA(insert OID = 1699 (  substring			PGNSP PGUID 14 f t f t f i 2 1560 "1560 23" 100 0 0 100  "select substring($1, $2, -1)" - _null_ ));
 DESCR("return portion of bitstring");
 
 
 /* for mac type support */
-DATA(insert OID = 436 (  macaddr_in			PGNSP PGUID 12 f t t i 1 f 829 "0" 100 0 0 100  macaddr_in - _null_ ));
+DATA(insert OID = 436 (  macaddr_in			PGNSP PGUID 12 f t f t f i 1 829 "0" 100 0 0 100  macaddr_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 437 (  macaddr_out		PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100  macaddr_out - _null_ ));
+DATA(insert OID = 437 (  macaddr_out		PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100  macaddr_out - _null_ ));
 DESCR("(internal)");
 
-DATA(insert OID = 752 (  text				PGNSP PGUID 12 f t t i 1 f 25 "829" 100 0 0 100  macaddr_text - _null_ ));
+DATA(insert OID = 752 (  text				PGNSP PGUID 12 f t f t f i 1 25 "829" 100 0 0 100  macaddr_text - _null_ ));
 DESCR("MAC address to text");
-DATA(insert OID = 753 (  trunc				PGNSP PGUID 12 f t t i 1 f 829 "829" 100 0 0 100	macaddr_trunc - _null_ ));
+DATA(insert OID = 753 (  trunc				PGNSP PGUID 12 f t f t f i 1 829 "829" 100 0 0 100	macaddr_trunc - _null_ ));
 DESCR("MAC manufacturer fields");
-DATA(insert OID = 767 (  macaddr			PGNSP PGUID 12 f t t i 1 f 829 "25" 100 0 0 100  text_macaddr - _null_ ));
+DATA(insert OID = 767 (  macaddr			PGNSP PGUID 12 f t f t f i 1 829 "25" 100 0 0 100  text_macaddr - _null_ ));
 DESCR("text to MAC address");
 
-DATA(insert OID = 830 (  macaddr_eq			PGNSP PGUID 12 f t t i 2 f 16 "829 829" 100 0 0 100  macaddr_eq - _null_ ));
+DATA(insert OID = 830 (  macaddr_eq			PGNSP PGUID 12 f t f t f i 2 16 "829 829" 100 0 0 100  macaddr_eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 831 (  macaddr_lt			PGNSP PGUID 12 f t t i 2 f 16 "829 829" 100 0 0 100  macaddr_lt - _null_ ));
+DATA(insert OID = 831 (  macaddr_lt			PGNSP PGUID 12 f t f t f i 2 16 "829 829" 100 0 0 100  macaddr_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 832 (  macaddr_le			PGNSP PGUID 12 f t t i 2 f 16 "829 829" 100 0 0 100  macaddr_le - _null_ ));
+DATA(insert OID = 832 (  macaddr_le			PGNSP PGUID 12 f t f t f i 2 16 "829 829" 100 0 0 100  macaddr_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 833 (  macaddr_gt			PGNSP PGUID 12 f t t i 2 f 16 "829 829" 100 0 0 100  macaddr_gt - _null_ ));
+DATA(insert OID = 833 (  macaddr_gt			PGNSP PGUID 12 f t f t f i 2 16 "829 829" 100 0 0 100  macaddr_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 834 (  macaddr_ge			PGNSP PGUID 12 f t t i 2 f 16 "829 829" 100 0 0 100  macaddr_ge - _null_ ));
+DATA(insert OID = 834 (  macaddr_ge			PGNSP PGUID 12 f t f t f i 2 16 "829 829" 100 0 0 100  macaddr_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 835 (  macaddr_ne			PGNSP PGUID 12 f t t i 2 f 16 "829 829" 100 0 0 100  macaddr_ne - _null_ ));
+DATA(insert OID = 835 (  macaddr_ne			PGNSP PGUID 12 f t f t f i 2 16 "829 829" 100 0 0 100  macaddr_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 836 (  macaddr_cmp		PGNSP PGUID 12 f t t i 2 f 23 "829 829" 100 0 0 100  macaddr_cmp - _null_ ));
+DATA(insert OID = 836 (  macaddr_cmp		PGNSP PGUID 12 f t f t f i 2 23 "829 829" 100 0 0 100  macaddr_cmp - _null_ ));
 DESCR("less-equal-greater");
 
 /* for inet type support */
-DATA(insert OID = 910 (  inet_in			PGNSP PGUID 12 f t t i 1 f 869 "0" 100 0 0 100  inet_in - _null_ ));
+DATA(insert OID = 910 (  inet_in			PGNSP PGUID 12 f t f t f i 1 869 "0" 100 0 0 100  inet_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 911 (  inet_out			PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100  inet_out - _null_ ));
+DATA(insert OID = 911 (  inet_out			PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100  inet_out - _null_ ));
 DESCR("(internal)");
 
 /* for cidr type support */
-DATA(insert OID = 1267 (  cidr_in			PGNSP PGUID 12 f t t i 1 f 650 "0" 100 0 0 100  cidr_in - _null_ ));
+DATA(insert OID = 1267 (  cidr_in			PGNSP PGUID 12 f t f t f i 1 650 "0" 100 0 0 100  cidr_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1427 (  cidr_out			PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100  cidr_out - _null_ ));
+DATA(insert OID = 1427 (  cidr_out			PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100  cidr_out - _null_ ));
 DESCR("(internal)");
 
 /* these are used for both inet and cidr */
-DATA(insert OID = 920 (  network_eq			PGNSP PGUID 12 f t t i 2 f 16 "869 869" 100 0 0 100  network_eq - _null_ ));
+DATA(insert OID = 920 (  network_eq			PGNSP PGUID 12 f t f t f i 2 16 "869 869" 100 0 0 100  network_eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 921 (  network_lt			PGNSP PGUID 12 f t t i 2 f 16 "869 869" 100 0 0 100  network_lt - _null_ ));
+DATA(insert OID = 921 (  network_lt			PGNSP PGUID 12 f t f t f i 2 16 "869 869" 100 0 0 100  network_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 922 (  network_le			PGNSP PGUID 12 f t t i 2 f 16 "869 869" 100 0 0 100  network_le - _null_ ));
+DATA(insert OID = 922 (  network_le			PGNSP PGUID 12 f t f t f i 2 16 "869 869" 100 0 0 100  network_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 923 (  network_gt			PGNSP PGUID 12 f t t i 2 f 16 "869 869" 100 0 0 100  network_gt - _null_ ));
+DATA(insert OID = 923 (  network_gt			PGNSP PGUID 12 f t f t f i 2 16 "869 869" 100 0 0 100  network_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 924 (  network_ge			PGNSP PGUID 12 f t t i 2 f 16 "869 869" 100 0 0 100  network_ge - _null_ ));
+DATA(insert OID = 924 (  network_ge			PGNSP PGUID 12 f t f t f i 2 16 "869 869" 100 0 0 100  network_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 925 (  network_ne			PGNSP PGUID 12 f t t i 2 f 16 "869 869" 100 0 0 100  network_ne - _null_ ));
+DATA(insert OID = 925 (  network_ne			PGNSP PGUID 12 f t f t f i 2 16 "869 869" 100 0 0 100  network_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 926 (  network_cmp		PGNSP PGUID 12 f t t i 2 f 23 "869 869" 100 0 0 100  network_cmp - _null_ ));
+DATA(insert OID = 926 (  network_cmp		PGNSP PGUID 12 f t f t f i 2 23 "869 869" 100 0 0 100  network_cmp - _null_ ));
 DESCR("less-equal-greater");
-DATA(insert OID = 927 (  network_sub		PGNSP PGUID 12 f t t i 2 f 16 "869 869" 100 0 0 100  network_sub - _null_ ));
+DATA(insert OID = 927 (  network_sub		PGNSP PGUID 12 f t f t f i 2 16 "869 869" 100 0 0 100  network_sub - _null_ ));
 DESCR("is-subnet");
-DATA(insert OID = 928 (  network_subeq		PGNSP PGUID 12 f t t i 2 f 16 "869 869" 100 0 0 100  network_subeq - _null_ ));
+DATA(insert OID = 928 (  network_subeq		PGNSP PGUID 12 f t f t f i 2 16 "869 869" 100 0 0 100  network_subeq - _null_ ));
 DESCR("is-subnet-or-equal");
-DATA(insert OID = 929 (  network_sup		PGNSP PGUID 12 f t t i 2 f 16 "869 869" 100 0 0 100  network_sup - _null_ ));
+DATA(insert OID = 929 (  network_sup		PGNSP PGUID 12 f t f t f i 2 16 "869 869" 100 0 0 100  network_sup - _null_ ));
 DESCR("is-supernet");
-DATA(insert OID = 930 (  network_supeq		PGNSP PGUID 12 f t t i 2 f 16 "869 869" 100 0 0 100  network_supeq - _null_ ));
+DATA(insert OID = 930 (  network_supeq		PGNSP PGUID 12 f t f t f i 2 16 "869 869" 100 0 0 100  network_supeq - _null_ ));
 DESCR("is-supernet-or-equal");
 
 /* inet/cidr functions */
-DATA(insert OID = 605 (  abbrev				PGNSP PGUID 12 f t t i 1 f 25 "869" 100 0 0 100  network_abbrev - _null_ ));
+DATA(insert OID = 605 (  abbrev				PGNSP PGUID 12 f t f t f i 1 25 "869" 100 0 0 100  network_abbrev - _null_ ));
 DESCR("abbreviated display of inet/cidr value");
-DATA(insert OID = 683 (  network			PGNSP PGUID 12 f t t i 1 f 650 "869" 100 0 0 100	network_network - _null_ ));
+DATA(insert OID = 683 (  network			PGNSP PGUID 12 f t f t f i 1 650 "869" 100 0 0 100	network_network - _null_ ));
 DESCR("network part of address");
-DATA(insert OID = 696 (  netmask			PGNSP PGUID 12 f t t i 1 f 869 "869" 100 0 0 100	network_netmask - _null_ ));
+DATA(insert OID = 696 (  netmask			PGNSP PGUID 12 f t f t f i 1 869 "869" 100 0 0 100	network_netmask - _null_ ));
 DESCR("netmask of address");
-DATA(insert OID = 697 (  masklen			PGNSP PGUID 12 f t t i 1 f 23 "869" 100 0 0 100  network_masklen - _null_ ));
+DATA(insert OID = 697 (  masklen			PGNSP PGUID 12 f t f t f i 1 23 "869" 100 0 0 100  network_masklen - _null_ ));
 DESCR("netmask length");
-DATA(insert OID = 698 (  broadcast			PGNSP PGUID 12 f t t i 1 f 869 "869" 100 0 0 100	network_broadcast - _null_ ));
+DATA(insert OID = 698 (  broadcast			PGNSP PGUID 12 f t f t f i 1 869 "869" 100 0 0 100	network_broadcast - _null_ ));
 DESCR("broadcast address of network");
-DATA(insert OID = 699 (  host				PGNSP PGUID 12 f t t i 1 f 25 "869" 100 0 0 100  network_host - _null_ ));
+DATA(insert OID = 699 (  host				PGNSP PGUID 12 f t f t f i 1 25 "869" 100 0 0 100  network_host - _null_ ));
 DESCR("show address octets only");
-DATA(insert OID = 730 (  text				PGNSP PGUID 12 f t t i 1 f 25 "869" 100 0 0 100  network_show - _null_ ));
+DATA(insert OID = 730 (  text				PGNSP PGUID 12 f t f t f i 1 25 "869" 100 0 0 100  network_show - _null_ ));
 DESCR("show all parts of inet/cidr value");
-DATA(insert OID = 1713 (  inet				PGNSP PGUID 12 f t t i 1 f 869 "25" 100 0 0 100  text_inet - _null_ ));
+DATA(insert OID = 1713 (  inet				PGNSP PGUID 12 f t f t f i 1 869 "25" 100 0 0 100  text_inet - _null_ ));
 DESCR("text to inet");
-DATA(insert OID = 1714 (  cidr				PGNSP PGUID 12 f t t i 1 f 650 "25" 100 0 0 100  text_cidr - _null_ ));
+DATA(insert OID = 1714 (  cidr				PGNSP PGUID 12 f t f t f i 1 650 "25" 100 0 0 100  text_cidr - _null_ ));
 DESCR("text to cidr");
-DATA(insert OID = 1715 (  set_masklen		PGNSP PGUID 12 f t t i 2 f 869 "869 23" 100 0 0 100  inet_set_masklen - _null_ ));
+DATA(insert OID = 1715 (  set_masklen		PGNSP PGUID 12 f t f t f i 2 869 "869 23" 100 0 0 100  inet_set_masklen - _null_ ));
 DESCR("change the netmask of an inet");
 
-DATA(insert OID = 1690 ( time_mi_time		PGNSP PGUID 12 f t t i 2 f 1186 "1083 1083" 100 0 0 100  time_mi_time - _null_ ));
+DATA(insert OID = 1690 ( time_mi_time		PGNSP PGUID 12 f t f t f i 2 1186 "1083 1083" 100 0 0 100  time_mi_time - _null_ ));
 DESCR("minus");
 
-DATA(insert OID =  1691 (  boolle			PGNSP PGUID 12 f t t i 2 f 16 "16 16" 100 0 0 100  boolle - _null_ ));
+DATA(insert OID =  1691 (  boolle			PGNSP PGUID 12 f t f t f i 2 16 "16 16" 100 0 0 100  boolle - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID =  1692 (  boolge			PGNSP PGUID 12 f t t i 2 f 16 "16 16" 100 0 0 100  boolge - _null_ ));
+DATA(insert OID =  1692 (  boolge			PGNSP PGUID 12 f t f t f i 2 16 "16 16" 100 0 0 100  boolge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1693 (  btboolcmp			PGNSP PGUID 12 f t t i 2 f 23 "16 16" 100 0 0 100  btboolcmp - _null_ ));
+DATA(insert OID = 1693 (  btboolcmp			PGNSP PGUID 12 f t f t f i 2 23 "16 16" 100 0 0 100  btboolcmp - _null_ ));
 DESCR("btree less-equal-greater");
 
-DATA(insert OID = 1696 (  timetz_hash		PGNSP PGUID 12 f t t i 1 f 23 "1266" 100 0 0 100	timetz_hash - _null_ ));
+DATA(insert OID = 1696 (  timetz_hash		PGNSP PGUID 12 f t f t f i 1 23 "1266" 100 0 0 100	timetz_hash - _null_ ));
 DESCR("hash");
-DATA(insert OID = 1697 (  interval_hash		PGNSP PGUID 12 f t t i 1 f 23 "1186" 100 0 0 100	interval_hash - _null_ ));
+DATA(insert OID = 1697 (  interval_hash		PGNSP PGUID 12 f t f t f i 1 23 "1186" 100 0 0 100	interval_hash - _null_ ));
 DESCR("hash");
 
 
 /* OID's 1700 - 1799 NUMERIC data type */
-DATA(insert OID = 1701 ( numeric_in				PGNSP PGUID 12 f t t i 3 f 1700 "0 26 23" 100 0 0 100  numeric_in - _null_ ));
+DATA(insert OID = 1701 ( numeric_in				PGNSP PGUID 12 f t f t f i 3 1700 "0 26 23" 100 0 0 100  numeric_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1702 ( numeric_out			PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100  numeric_out - _null_ ));
+DATA(insert OID = 1702 ( numeric_out			PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100  numeric_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1703 ( numeric				PGNSP PGUID 12 f t t i 2 f 1700 "1700 23" 100 0 0 100  numeric - _null_ ));
+DATA(insert OID = 1703 ( numeric				PGNSP PGUID 12 f t t t f i 2 1700 "1700 23" 100 0 0 100  numeric - _null_ ));
 DESCR("adjust numeric to typmod precision/scale");
-DATA(insert OID = 1704 ( numeric_abs			PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100  numeric_abs - _null_ ));
+DATA(insert OID = 1704 ( numeric_abs			PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100  numeric_abs - _null_ ));
 DESCR("absolute value");
-DATA(insert OID = 1705 ( abs					PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100  numeric_abs - _null_ ));
+DATA(insert OID = 1705 ( abs					PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100  numeric_abs - _null_ ));
 DESCR("absolute value");
-DATA(insert OID = 1706 ( sign					PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100  numeric_sign - _null_ ));
+DATA(insert OID = 1706 ( sign					PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100  numeric_sign - _null_ ));
 DESCR("sign of value");
-DATA(insert OID = 1707 ( round					PGNSP PGUID 12 f t t i 2 f 1700 "1700 23" 100 0 0 100  numeric_round - _null_ ));
+DATA(insert OID = 1707 ( round					PGNSP PGUID 12 f t f t f i 2 1700 "1700 23" 100 0 0 100  numeric_round - _null_ ));
 DESCR("value rounded to 'scale'");
-DATA(insert OID = 1708 ( round					PGNSP PGUID 14 f t t i 1 f 1700 "1700" 100 0 0 100  "select round($1,0)" - _null_ ));
+DATA(insert OID = 1708 ( round					PGNSP PGUID 14 f t f t f i 1 1700 "1700" 100 0 0 100  "select round($1,0)" - _null_ ));
 DESCR("value rounded to 'scale' of zero");
-DATA(insert OID = 1709 ( trunc					PGNSP PGUID 12 f t t i 2 f 1700 "1700 23" 100 0 0 100  numeric_trunc - _null_ ));
+DATA(insert OID = 1709 ( trunc					PGNSP PGUID 12 f t f t f i 2 1700 "1700 23" 100 0 0 100  numeric_trunc - _null_ ));
 DESCR("value truncated to 'scale'");
-DATA(insert OID = 1710 ( trunc					PGNSP PGUID 14 f t t i 1 f 1700 "1700" 100 0 0 100  "select trunc($1,0)" - _null_ ));
+DATA(insert OID = 1710 ( trunc					PGNSP PGUID 14 f t f t f i 1 1700 "1700" 100 0 0 100  "select trunc($1,0)" - _null_ ));
 DESCR("value truncated to 'scale' of zero");
-DATA(insert OID = 1711 ( ceil					PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100  numeric_ceil - _null_ ));
+DATA(insert OID = 1711 ( ceil					PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100  numeric_ceil - _null_ ));
 DESCR("smallest integer >= value");
-DATA(insert OID = 1712 ( floor					PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100  numeric_floor - _null_ ));
+DATA(insert OID = 1712 ( floor					PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100  numeric_floor - _null_ ));
 DESCR("largest integer <= value");
-DATA(insert OID = 1718 ( numeric_eq				PGNSP PGUID 12 f t t i 2 f 16 "1700 1700" 100 0 0 100  numeric_eq - _null_ ));
+DATA(insert OID = 1718 ( numeric_eq				PGNSP PGUID 12 f t f t f i 2 16 "1700 1700" 100 0 0 100  numeric_eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1719 ( numeric_ne				PGNSP PGUID 12 f t t i 2 f 16 "1700 1700" 100 0 0 100  numeric_ne - _null_ ));
+DATA(insert OID = 1719 ( numeric_ne				PGNSP PGUID 12 f t f t f i 2 16 "1700 1700" 100 0 0 100  numeric_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1720 ( numeric_gt				PGNSP PGUID 12 f t t i 2 f 16 "1700 1700" 100 0 0 100  numeric_gt - _null_ ));
+DATA(insert OID = 1720 ( numeric_gt				PGNSP PGUID 12 f t f t f i 2 16 "1700 1700" 100 0 0 100  numeric_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1721 ( numeric_ge				PGNSP PGUID 12 f t t i 2 f 16 "1700 1700" 100 0 0 100  numeric_ge - _null_ ));
+DATA(insert OID = 1721 ( numeric_ge				PGNSP PGUID 12 f t f t f i 2 16 "1700 1700" 100 0 0 100  numeric_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1722 ( numeric_lt				PGNSP PGUID 12 f t t i 2 f 16 "1700 1700" 100 0 0 100  numeric_lt - _null_ ));
+DATA(insert OID = 1722 ( numeric_lt				PGNSP PGUID 12 f t f t f i 2 16 "1700 1700" 100 0 0 100  numeric_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1723 ( numeric_le				PGNSP PGUID 12 f t t i 2 f 16 "1700 1700" 100 0 0 100  numeric_le - _null_ ));
+DATA(insert OID = 1723 ( numeric_le				PGNSP PGUID 12 f t f t f i 2 16 "1700 1700" 100 0 0 100  numeric_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1724 ( numeric_add			PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100  numeric_add - _null_ ));
+DATA(insert OID = 1724 ( numeric_add			PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100  numeric_add - _null_ ));
 DESCR("add");
-DATA(insert OID = 1725 ( numeric_sub			PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100  numeric_sub - _null_ ));
+DATA(insert OID = 1725 ( numeric_sub			PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100  numeric_sub - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 1726 ( numeric_mul			PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100  numeric_mul - _null_ ));
+DATA(insert OID = 1726 ( numeric_mul			PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100  numeric_mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 1727 ( numeric_div			PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100  numeric_div - _null_ ));
+DATA(insert OID = 1727 ( numeric_div			PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100  numeric_div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 1728 ( mod					PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100  numeric_mod - _null_ ));
+DATA(insert OID = 1728 ( mod					PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100  numeric_mod - _null_ ));
 DESCR("modulus");
-DATA(insert OID = 1729 ( numeric_mod			PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100  numeric_mod - _null_ ));
+DATA(insert OID = 1729 ( numeric_mod			PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100  numeric_mod - _null_ ));
 DESCR("modulus");
-DATA(insert OID = 1730 ( sqrt					PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100  numeric_sqrt - _null_ ));
+DATA(insert OID = 1730 ( sqrt					PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100  numeric_sqrt - _null_ ));
 DESCR("square root");
-DATA(insert OID = 1731 ( numeric_sqrt			PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100  numeric_sqrt - _null_ ));
+DATA(insert OID = 1731 ( numeric_sqrt			PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100  numeric_sqrt - _null_ ));
 DESCR("square root");
-DATA(insert OID = 1732 ( exp					PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100  numeric_exp - _null_ ));
+DATA(insert OID = 1732 ( exp					PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100  numeric_exp - _null_ ));
 DESCR("e raised to the power of n");
-DATA(insert OID = 1733 ( numeric_exp			PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100  numeric_exp - _null_ ));
+DATA(insert OID = 1733 ( numeric_exp			PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100  numeric_exp - _null_ ));
 DESCR("e raised to the power of n");
-DATA(insert OID = 1734 ( ln						PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100  numeric_ln - _null_ ));
+DATA(insert OID = 1734 ( ln						PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100  numeric_ln - _null_ ));
 DESCR("natural logarithm of n");
-DATA(insert OID = 1735 ( numeric_ln				PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100  numeric_ln - _null_ ));
+DATA(insert OID = 1735 ( numeric_ln				PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100  numeric_ln - _null_ ));
 DESCR("natural logarithm of n");
-DATA(insert OID = 1736 ( log					PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100  numeric_log - _null_ ));
+DATA(insert OID = 1736 ( log					PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100  numeric_log - _null_ ));
 DESCR("logarithm base m of n");
-DATA(insert OID = 1737 ( numeric_log			PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100  numeric_log - _null_ ));
+DATA(insert OID = 1737 ( numeric_log			PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100  numeric_log - _null_ ));
 DESCR("logarithm base m of n");
-DATA(insert OID = 1738 ( pow					PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100  numeric_power - _null_ ));
+DATA(insert OID = 1738 ( pow					PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100  numeric_power - _null_ ));
 DESCR("m raised to the power of n");
-DATA(insert OID = 1739 ( numeric_power			PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100  numeric_power - _null_ ));
+DATA(insert OID = 1739 ( numeric_power			PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100  numeric_power - _null_ ));
 DESCR("m raised to the power of n");
-DATA(insert OID = 1740 ( numeric				PGNSP PGUID 12 f t t i 1 f 1700 "23" 100 0 0 100	int4_numeric - _null_ ));
+DATA(insert OID = 1740 ( numeric				PGNSP PGUID 12 f t t t f i 1 1700 "23" 100 0 0 100	int4_numeric - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1741 ( log					PGNSP PGUID 14 f t t i 1 f 1700 "1700" 100 0 0 100  "select log(10, $1)" - _null_ ));
+DATA(insert OID = 1741 ( log					PGNSP PGUID 14 f t f t f i 1 1700 "1700" 100 0 0 100  "select log(10, $1)" - _null_ ));
 DESCR("logarithm base 10 of n");
-DATA(insert OID = 1742 ( numeric				PGNSP PGUID 12 f t t i 1 f 1700 "700" 100 0 0 100  float4_numeric - _null_ ));
+DATA(insert OID = 1742 ( numeric				PGNSP PGUID 12 f t t t f i 1 1700 "700" 100 0 0 100  float4_numeric - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1743 ( numeric				PGNSP PGUID 12 f t t i 1 f 1700 "701" 100 0 0 100  float8_numeric - _null_ ));
+DATA(insert OID = 1743 ( numeric				PGNSP PGUID 12 f t t t f i 1 1700 "701" 100 0 0 100  float8_numeric - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1744 ( int4					PGNSP PGUID 12 f t t i 1 f 23 "1700" 100 0 0 100	numeric_int4 - _null_ ));
+DATA(insert OID = 1744 ( int4					PGNSP PGUID 12 f t f t f i 1 23 "1700" 100 0 0 100	numeric_int4 - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1745 ( float4					PGNSP PGUID 12 f t t i 1 f 700 "1700" 100 0 0 100  numeric_float4 - _null_ ));
+DATA(insert OID = 1745 ( float4					PGNSP PGUID 12 f t f t f i 1 700 "1700" 100 0 0 100  numeric_float4 - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1746 ( float8					PGNSP PGUID 12 f t t i 1 f 701 "1700" 100 0 0 100  numeric_float8 - _null_ ));
+DATA(insert OID = 1746 ( float8					PGNSP PGUID 12 f t f t f i 1 701 "1700" 100 0 0 100  numeric_float8 - _null_ ));
 DESCR("(internal)");
 
-DATA(insert OID = 1747 ( time_pl_interval		PGNSP PGUID 12 f t t i 2 f 1083 "1083 1186" 100 0 0 100  time_pl_interval - _null_ ));
+DATA(insert OID = 1747 ( time_pl_interval		PGNSP PGUID 12 f t f t f i 2 1083 "1083 1186" 100 0 0 100  time_pl_interval - _null_ ));
 DESCR("plus");
-DATA(insert OID = 1748 ( time_mi_interval		PGNSP PGUID 12 f t t i 2 f 1083 "1083 1186" 100 0 0 100  time_mi_interval - _null_ ));
+DATA(insert OID = 1748 ( time_mi_interval		PGNSP PGUID 12 f t f t f i 2 1083 "1083 1186" 100 0 0 100  time_mi_interval - _null_ ));
 DESCR("minus");
-DATA(insert OID = 1749 ( timetz_pl_interval		PGNSP PGUID 12 f t t i 2 f 1266 "1266 1186" 100 0 0 100  timetz_pl_interval - _null_ ));
+DATA(insert OID = 1749 ( timetz_pl_interval		PGNSP PGUID 12 f t f t f i 2 1266 "1266 1186" 100 0 0 100  timetz_pl_interval - _null_ ));
 DESCR("plus");
-DATA(insert OID = 1750 ( timetz_mi_interval		PGNSP PGUID 12 f t t i 2 f 1266 "1266 1186" 100 0 0 100  timetz_mi_interval - _null_ ));
+DATA(insert OID = 1750 ( timetz_mi_interval		PGNSP PGUID 12 f t f t f i 2 1266 "1266 1186" 100 0 0 100  timetz_mi_interval - _null_ ));
 DESCR("minus");
 
-DATA(insert OID = 1764 ( numeric_inc			PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100  numeric_inc - _null_ ));
+DATA(insert OID = 1764 ( numeric_inc			PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100  numeric_inc - _null_ ));
 DESCR("increment by one");
-DATA(insert OID = 1766 ( numeric_smaller		PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100  numeric_smaller - _null_ ));
+DATA(insert OID = 1766 ( numeric_smaller		PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100  numeric_smaller - _null_ ));
 DESCR("smaller of two numbers");
-DATA(insert OID = 1767 ( numeric_larger			PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100  numeric_larger - _null_ ));
+DATA(insert OID = 1767 ( numeric_larger			PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100  numeric_larger - _null_ ));
 DESCR("larger of two numbers");
-DATA(insert OID = 1769 ( numeric_cmp			PGNSP PGUID 12 f t t i 2 f 23 "1700 1700" 100 0 0 100  numeric_cmp - _null_ ));
+DATA(insert OID = 1769 ( numeric_cmp			PGNSP PGUID 12 f t f t f i 2 23 "1700 1700" 100 0 0 100  numeric_cmp - _null_ ));
 DESCR("compare two numbers");
-DATA(insert OID = 1771 ( numeric_uminus			PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100  numeric_uminus - _null_ ));
+DATA(insert OID = 1771 ( numeric_uminus			PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100  numeric_uminus - _null_ ));
 DESCR("negate");
-DATA(insert OID = 1779 ( int8					PGNSP PGUID 12 f t t i 1 f 20 "1700" 100 0 0 100	numeric_int8 - _null_ ));
+DATA(insert OID = 1779 ( int8					PGNSP PGUID 12 f t f t f i 1 20 "1700" 100 0 0 100	numeric_int8 - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1781 ( numeric				PGNSP PGUID 12 f t t i 1 f 1700 "20" 100 0 0 100	int8_numeric - _null_ ));
+DATA(insert OID = 1781 ( numeric				PGNSP PGUID 12 f t t t f i 1 1700 "20" 100 0 0 100	int8_numeric - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1782 ( numeric				PGNSP PGUID 12 f t t i 1 f 1700 "21" 100 0 0 100	int2_numeric - _null_ ));
+DATA(insert OID = 1782 ( numeric				PGNSP PGUID 12 f t t t f i 1 1700 "21" 100 0 0 100	int2_numeric - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1783 ( int2					PGNSP PGUID 12 f t t i 1 f 21 "1700" 100 0 0 100	numeric_int2 - _null_ ));
+DATA(insert OID = 1783 ( int2					PGNSP PGUID 12 f t f t f i 1 21 "1700" 100 0 0 100	numeric_int2 - _null_ ));
 DESCR("(internal)");
 
 /* formatting */
-DATA(insert OID = 1770 ( to_char			PGNSP PGUID 12 f t t s 2 f	25 "1184 25" 100 0 0 100  timestamptz_to_char - _null_ ));
+DATA(insert OID = 1770 ( to_char			PGNSP PGUID 12 f t f t f s 2	25 "1184 25" 100 0 0 100  timestamptz_to_char - _null_ ));
 DESCR("format timestamp with time zone to text");
-DATA(insert OID = 1772 ( to_char			PGNSP PGUID 12 f t t i 2 f	25 "1700 25" 100 0 0 100  numeric_to_char - _null_ ));
+DATA(insert OID = 1772 ( to_char			PGNSP PGUID 12 f t f t f i 2	25 "1700 25" 100 0 0 100  numeric_to_char - _null_ ));
 DESCR("format numeric to text");
-DATA(insert OID = 1773 ( to_char			PGNSP PGUID 12 f t t i 2 f	25 "23 25" 100 0 0 100	int4_to_char - _null_ ));
+DATA(insert OID = 1773 ( to_char			PGNSP PGUID 12 f t f t f i 2	25 "23 25" 100 0 0 100	int4_to_char - _null_ ));
 DESCR("format int4 to text");
-DATA(insert OID = 1774 ( to_char			PGNSP PGUID 12 f t t i 2 f	25 "20 25" 100 0 0 100	int8_to_char - _null_ ));
+DATA(insert OID = 1774 ( to_char			PGNSP PGUID 12 f t f t f i 2	25 "20 25" 100 0 0 100	int8_to_char - _null_ ));
 DESCR("format int8 to text");
-DATA(insert OID = 1775 ( to_char			PGNSP PGUID 12 f t t i 2 f	25 "700 25" 100 0 0 100  float4_to_char - _null_ ));
+DATA(insert OID = 1775 ( to_char			PGNSP PGUID 12 f t f t f i 2	25 "700 25" 100 0 0 100  float4_to_char - _null_ ));
 DESCR("format float4 to text");
-DATA(insert OID = 1776 ( to_char			PGNSP PGUID 12 f t t i 2 f	25 "701 25" 100 0 0 100  float8_to_char - _null_ ));
+DATA(insert OID = 1776 ( to_char			PGNSP PGUID 12 f t f t f i 2	25 "701 25" 100 0 0 100  float8_to_char - _null_ ));
 DESCR("format float8 to text");
-DATA(insert OID = 1777 ( to_number			PGNSP PGUID 12 f t t i 2 f	1700 "25 25" 100 0 0 100  numeric_to_number - _null_ ));
+DATA(insert OID = 1777 ( to_number			PGNSP PGUID 12 f t f t f i 2	1700 "25 25" 100 0 0 100  numeric_to_number - _null_ ));
 DESCR("convert text to numeric");
-DATA(insert OID = 1778 ( to_timestamp		PGNSP PGUID 12 f t t s 2 f	1184 "25 25" 100 0 0 100  to_timestamp - _null_ ));
+DATA(insert OID = 1778 ( to_timestamp		PGNSP PGUID 12 f t f t f s 2	1184 "25 25" 100 0 0 100  to_timestamp - _null_ ));
 DESCR("convert text to timestamp");
-DATA(insert OID = 1780 ( to_date			PGNSP PGUID 12 f t t i 2 f	1082 "25 25" 100 0 0 100  to_date - _null_ ));
+DATA(insert OID = 1780 ( to_date			PGNSP PGUID 12 f t f t f i 2	1082 "25 25" 100 0 0 100  to_date - _null_ ));
 DESCR("convert text to date");
-DATA(insert OID = 1768 ( to_char			PGNSP PGUID 12 f t t i 2 f	25 "1186 25" 100 0 0 100  interval_to_char - _null_ ));
+DATA(insert OID = 1768 ( to_char			PGNSP PGUID 12 f t f t f i 2	25 "1186 25" 100 0 0 100  interval_to_char - _null_ ));
 DESCR("format interval to text");
 
-DATA(insert OID =  1282 ( quote_ident	   PGNSP PGUID 12 f t t i 1 f 25 "25" 100 0 0 100 quote_ident - _null_ ));
+DATA(insert OID =  1282 ( quote_ident	   PGNSP PGUID 12 f t f t f i 1 25 "25" 100 0 0 100 quote_ident - _null_ ));
 DESCR("quote an identifier for usage in a querystring");
-DATA(insert OID =  1283 ( quote_literal    PGNSP PGUID 12 f t t i 1 f 25 "25" 100 0 0 100 quote_literal - _null_ ));
+DATA(insert OID =  1283 ( quote_literal    PGNSP PGUID 12 f t f t f i 1 25 "25" 100 0 0 100 quote_literal - _null_ ));
 DESCR("quote a literal for usage in a querystring");
 
-DATA(insert OID = 1798 (  oidin			   PGNSP PGUID 12 f t t i 1 f 26 "0" 100 0 0 100	oidin - _null_ ));
+DATA(insert OID = 1798 (  oidin			   PGNSP PGUID 12 f t f t f i 1 26 "0" 100 0 0 100	oidin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1799 (  oidout		   PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100	oidout - _null_ ));
+DATA(insert OID = 1799 (  oidout		   PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100	oidout - _null_ ));
 DESCR("(internal)");
 
 
-DATA(insert OID = 1810 (  bit_length	   PGNSP PGUID 14 f t t i 1 f 23 "17" 100 0 0 100 "select octet_length($1) * 8" - _null_ ));
+DATA(insert OID = 1810 (  bit_length	   PGNSP PGUID 14 f t f t f i 1 23 "17" 100 0 0 100 "select octet_length($1) * 8" - _null_ ));
 DESCR("length in bits");
-DATA(insert OID = 1811 (  bit_length	   PGNSP PGUID 14 f t t i 1 f 23 "25" 100 0 0 100 "select octet_length($1) * 8" - _null_ ));
+DATA(insert OID = 1811 (  bit_length	   PGNSP PGUID 14 f t f t f i 1 23 "25" 100 0 0 100 "select octet_length($1) * 8" - _null_ ));
 DESCR("length in bits");
-DATA(insert OID = 1812 (  bit_length	   PGNSP PGUID 14 f t t i 1 f 23 "1560" 100 0 0 100 "select length($1)" - _null_ ));
+DATA(insert OID = 1812 (  bit_length	   PGNSP PGUID 14 f t f t f i 1 23 "1560" 100 0 0 100 "select length($1)" - _null_ ));
 DESCR("length in bits");
 
 /* Selectivity estimators for LIKE and related operators */
-DATA(insert OID = 1814 ( iclikesel			PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100  iclikesel - _null_ ));
+DATA(insert OID = 1814 ( iclikesel			PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100  iclikesel - _null_ ));
 DESCR("restriction selectivity of ILIKE");
-DATA(insert OID = 1815 ( icnlikesel			PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100  icnlikesel - _null_ ));
+DATA(insert OID = 1815 ( icnlikesel			PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100  icnlikesel - _null_ ));
 DESCR("restriction selectivity of NOT ILIKE");
-DATA(insert OID = 1816 ( iclikejoinsel		PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100  iclikejoinsel - _null_ ));
+DATA(insert OID = 1816 ( iclikejoinsel		PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100  iclikejoinsel - _null_ ));
 DESCR("join selectivity of ILIKE");
-DATA(insert OID = 1817 ( icnlikejoinsel		PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100  icnlikejoinsel - _null_ ));
+DATA(insert OID = 1817 ( icnlikejoinsel		PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100  icnlikejoinsel - _null_ ));
 DESCR("join selectivity of NOT ILIKE");
-DATA(insert OID = 1818 ( regexeqsel			PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100  regexeqsel - _null_ ));
+DATA(insert OID = 1818 ( regexeqsel			PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100  regexeqsel - _null_ ));
 DESCR("restriction selectivity of regex match");
-DATA(insert OID = 1819 ( likesel			PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100  likesel - _null_ ));
+DATA(insert OID = 1819 ( likesel			PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100  likesel - _null_ ));
 DESCR("restriction selectivity of LIKE");
-DATA(insert OID = 1820 ( icregexeqsel		PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100  icregexeqsel - _null_ ));
+DATA(insert OID = 1820 ( icregexeqsel		PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100  icregexeqsel - _null_ ));
 DESCR("restriction selectivity of case-insensitive regex match");
-DATA(insert OID = 1821 ( regexnesel			PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100  regexnesel - _null_ ));
+DATA(insert OID = 1821 ( regexnesel			PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100  regexnesel - _null_ ));
 DESCR("restriction selectivity of regex non-match");
-DATA(insert OID = 1822 ( nlikesel			PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100  nlikesel - _null_ ));
+DATA(insert OID = 1822 ( nlikesel			PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100  nlikesel - _null_ ));
 DESCR("restriction selectivity of NOT LIKE");
-DATA(insert OID = 1823 ( icregexnesel		PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100  icregexnesel - _null_ ));
+DATA(insert OID = 1823 ( icregexnesel		PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100  icregexnesel - _null_ ));
 DESCR("restriction selectivity of case-insensitive regex non-match");
-DATA(insert OID = 1824 ( regexeqjoinsel		PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100  regexeqjoinsel - _null_ ));
+DATA(insert OID = 1824 ( regexeqjoinsel		PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100  regexeqjoinsel - _null_ ));
 DESCR("join selectivity of regex match");
-DATA(insert OID = 1825 ( likejoinsel		PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100  likejoinsel - _null_ ));
+DATA(insert OID = 1825 ( likejoinsel		PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100  likejoinsel - _null_ ));
 DESCR("join selectivity of LIKE");
-DATA(insert OID = 1826 ( icregexeqjoinsel	PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100  icregexeqjoinsel - _null_ ));
+DATA(insert OID = 1826 ( icregexeqjoinsel	PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100  icregexeqjoinsel - _null_ ));
 DESCR("join selectivity of case-insensitive regex match");
-DATA(insert OID = 1827 ( regexnejoinsel		PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100  regexnejoinsel - _null_ ));
+DATA(insert OID = 1827 ( regexnejoinsel		PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100  regexnejoinsel - _null_ ));
 DESCR("join selectivity of regex non-match");
-DATA(insert OID = 1828 ( nlikejoinsel		PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100  nlikejoinsel - _null_ ));
+DATA(insert OID = 1828 ( nlikejoinsel		PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100  nlikejoinsel - _null_ ));
 DESCR("join selectivity of NOT LIKE");
-DATA(insert OID = 1829 ( icregexnejoinsel	PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100  icregexnejoinsel - _null_ ));
+DATA(insert OID = 1829 ( icregexnejoinsel	PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100  icregexnejoinsel - _null_ ));
 DESCR("join selectivity of case-insensitive regex non-match");
 
 /* Aggregate-related functions */
-DATA(insert OID = 1830 (  float8_avg	   PGNSP PGUID 12 f t t i 1 f 701 "1022" 100 0 0 100	float8_avg - _null_ ));
+DATA(insert OID = 1830 (  float8_avg	   PGNSP PGUID 12 f t f t f i 1 701 "1022" 100 0 0 100	float8_avg - _null_ ));
 DESCR("AVG aggregate final function");
-DATA(insert OID = 1831 (  float8_variance  PGNSP PGUID 12 f t t i 1 f 701 "1022" 100 0 0 100	float8_variance - _null_ ));
+DATA(insert OID = 1831 (  float8_variance  PGNSP PGUID 12 f t f t f i 1 701 "1022" 100 0 0 100	float8_variance - _null_ ));
 DESCR("VARIANCE aggregate final function");
-DATA(insert OID = 1832 (  float8_stddev    PGNSP PGUID 12 f t t i 1 f 701 "1022" 100 0 0 100	float8_stddev - _null_ ));
+DATA(insert OID = 1832 (  float8_stddev    PGNSP PGUID 12 f t f t f i 1 701 "1022" 100 0 0 100	float8_stddev - _null_ ));
 DESCR("STDDEV aggregate final function");
-DATA(insert OID = 1833 (  numeric_accum    PGNSP PGUID 12 f t t i 2 f 1231 "1231 1700" 100 0 0 100  numeric_accum - _null_ ));
+DATA(insert OID = 1833 (  numeric_accum    PGNSP PGUID 12 f t f t f i 2 1231 "1231 1700" 100 0 0 100  numeric_accum - _null_ ));
 DESCR("aggregate transition function");
-DATA(insert OID = 1834 (  int2_accum	   PGNSP PGUID 12 f t t i 2 f 1231 "1231 21" 100 0 0 100	int2_accum - _null_ ));
+DATA(insert OID = 1834 (  int2_accum	   PGNSP PGUID 12 f t f t f i 2 1231 "1231 21" 100 0 0 100	int2_accum - _null_ ));
 DESCR("aggregate transition function");
-DATA(insert OID = 1835 (  int4_accum	   PGNSP PGUID 12 f t t i 2 f 1231 "1231 23" 100 0 0 100	int4_accum - _null_ ));
+DATA(insert OID = 1835 (  int4_accum	   PGNSP PGUID 12 f t f t f i 2 1231 "1231 23" 100 0 0 100	int4_accum - _null_ ));
 DESCR("aggregate transition function");
-DATA(insert OID = 1836 (  int8_accum	   PGNSP PGUID 12 f t t i 2 f 1231 "1231 20" 100 0 0 100	int8_accum - _null_ ));
+DATA(insert OID = 1836 (  int8_accum	   PGNSP PGUID 12 f t f t f i 2 1231 "1231 20" 100 0 0 100	int8_accum - _null_ ));
 DESCR("aggregate transition function");
-DATA(insert OID = 1837 (  numeric_avg	   PGNSP PGUID 12 f t t i 1 f 1700 "1231" 100 0 0 100  numeric_avg - _null_ ));
+DATA(insert OID = 1837 (  numeric_avg	   PGNSP PGUID 12 f t f t f i 1 1700 "1231" 100 0 0 100  numeric_avg - _null_ ));
 DESCR("AVG aggregate final function");
-DATA(insert OID = 1838 (  numeric_variance PGNSP PGUID 12 f t t i 1 f 1700 "1231" 100 0 0 100  numeric_variance - _null_ ));
+DATA(insert OID = 1838 (  numeric_variance PGNSP PGUID 12 f t f t f i 1 1700 "1231" 100 0 0 100  numeric_variance - _null_ ));
 DESCR("VARIANCE aggregate final function");
-DATA(insert OID = 1839 (  numeric_stddev   PGNSP PGUID 12 f t t i 1 f 1700 "1231" 100 0 0 100  numeric_stddev - _null_ ));
+DATA(insert OID = 1839 (  numeric_stddev   PGNSP PGUID 12 f t f t f i 1 1700 "1231" 100 0 0 100  numeric_stddev - _null_ ));
 DESCR("STDDEV aggregate final function");
-DATA(insert OID = 1840 (  int2_sum		   PGNSP PGUID 12 f t f i 2 f 20 "20 21" 100 0 0 100	int2_sum - _null_ ));
+DATA(insert OID = 1840 (  int2_sum		   PGNSP PGUID 12 f t f f f i 2 20 "20 21" 100 0 0 100	int2_sum - _null_ ));
 DESCR("SUM(int2) transition function");
-DATA(insert OID = 1841 (  int4_sum		   PGNSP PGUID 12 f t f i 2 f 20 "20 23" 100 0 0 100	int4_sum - _null_ ));
+DATA(insert OID = 1841 (  int4_sum		   PGNSP PGUID 12 f t f f f i 2 20 "20 23" 100 0 0 100	int4_sum - _null_ ));
 DESCR("SUM(int4) transition function");
-DATA(insert OID = 1842 (  int8_sum		   PGNSP PGUID 12 f t f i 2 f 1700 "1700 20" 100 0 0 100	int8_sum - _null_ ));
+DATA(insert OID = 1842 (  int8_sum		   PGNSP PGUID 12 f t f f f i 2 1700 "1700 20" 100 0 0 100	int8_sum - _null_ ));
 DESCR("SUM(int8) transition function");
-DATA(insert OID = 1843 (  interval_accum   PGNSP PGUID 12 f t t i 2 f 1187 "1187 1186" 100 0 0 100  interval_accum - _null_ ));
+DATA(insert OID = 1843 (  interval_accum   PGNSP PGUID 12 f t f t f i 2 1187 "1187 1186" 100 0 0 100  interval_accum - _null_ ));
 DESCR("aggregate transition function");
-DATA(insert OID = 1844 (  interval_avg	   PGNSP PGUID 12 f t t i 1 f 1186 "1187" 100 0 0 100  interval_avg - _null_ ));
+DATA(insert OID = 1844 (  interval_avg	   PGNSP PGUID 12 f t f t f i 1 1186 "1187" 100 0 0 100  interval_avg - _null_ ));
 DESCR("AVG aggregate final function");
-DATA(insert OID = 1962 (  int2_avg_accum   PGNSP PGUID 12 f t t i 2 f 1016 "1016 21" 100 0 0 100	int2_avg_accum - _null_ ));
+DATA(insert OID = 1962 (  int2_avg_accum   PGNSP PGUID 12 f t f t f i 2 1016 "1016 21" 100 0 0 100	int2_avg_accum - _null_ ));
 DESCR("AVG(int2) transition function");
-DATA(insert OID = 1963 (  int4_avg_accum   PGNSP PGUID 12 f t t i 2 f 1016 "1016 23" 100 0 0 100	int4_avg_accum - _null_ ));
+DATA(insert OID = 1963 (  int4_avg_accum   PGNSP PGUID 12 f t f t f i 2 1016 "1016 23" 100 0 0 100	int4_avg_accum - _null_ ));
 DESCR("AVG(int4) transition function");
-DATA(insert OID = 1964 (  int8_avg		   PGNSP PGUID 12 f t t i 1 f 1700 "1016" 100 0 0 100  int8_avg - _null_ ));
+DATA(insert OID = 1964 (  int8_avg		   PGNSP PGUID 12 f t f t f i 1 1700 "1016" 100 0 0 100  int8_avg - _null_ ));
 DESCR("AVG(int) aggregate final function");
 
 /* To ASCII conversion */
-DATA(insert OID = 1845 ( to_ascii	PGNSP PGUID 12 f t t i 1 f	25 "25" 100 0 0 100  to_ascii_default - _null_ ));
+DATA(insert OID = 1845 ( to_ascii	PGNSP PGUID 12 f t f t f i 1	25 "25" 100 0 0 100  to_ascii_default - _null_ ));
 DESCR("encode text from DB encoding to ASCII text");
-DATA(insert OID = 1846 ( to_ascii	PGNSP PGUID 12 f t t i 2 f	25 "25 23" 100 0 0 100	to_ascii_enc - _null_ ));
+DATA(insert OID = 1846 ( to_ascii	PGNSP PGUID 12 f t f t f i 2	25 "25 23" 100 0 0 100	to_ascii_enc - _null_ ));
 DESCR("encode text from encoding to ASCII text");
-DATA(insert OID = 1847 ( to_ascii	PGNSP PGUID 12 f t t i 2 f	25 "25 19" 100 0 0 100	to_ascii_encname - _null_ ));
+DATA(insert OID = 1847 ( to_ascii	PGNSP PGUID 12 f t f t f i 2	25 "25 19" 100 0 0 100	to_ascii_encname - _null_ ));
 DESCR("encode text from encoding to ASCII text");
 
-DATA(insert OID = 1848 ( interval_pl_time		PGNSP PGUID 12 f t t i 2 f 1083 "1186 1083" 100 0 0 100  interval_pl_time - _null_ ));
+DATA(insert OID = 1848 ( interval_pl_time		PGNSP PGUID 12 f t f t f i 2 1083 "1186 1083" 100 0 0 100  interval_pl_time - _null_ ));
 DESCR("plus");
 
-DATA(insert OID = 1850 (  int28eq		   PGNSP PGUID 12 f t t i 2 f 16 "21 20" 100 0 0 100	int28eq - _null_ ));
+DATA(insert OID = 1850 (  int28eq		   PGNSP PGUID 12 f t f t f i 2 16 "21 20" 100 0 0 100	int28eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1851 (  int28ne		   PGNSP PGUID 12 f t t i 2 f 16 "21 20" 100 0 0 100	int28ne - _null_ ));
+DATA(insert OID = 1851 (  int28ne		   PGNSP PGUID 12 f t f t f i 2 16 "21 20" 100 0 0 100	int28ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1852 (  int28lt		   PGNSP PGUID 12 f t t i 2 f 16 "21 20" 100 0 0 100	int28lt - _null_ ));
+DATA(insert OID = 1852 (  int28lt		   PGNSP PGUID 12 f t f t f i 2 16 "21 20" 100 0 0 100	int28lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1853 (  int28gt		   PGNSP PGUID 12 f t t i 2 f 16 "21 20" 100 0 0 100	int28gt - _null_ ));
+DATA(insert OID = 1853 (  int28gt		   PGNSP PGUID 12 f t f t f i 2 16 "21 20" 100 0 0 100	int28gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1854 (  int28le		   PGNSP PGUID 12 f t t i 2 f 16 "21 20" 100 0 0 100	int28le - _null_ ));
+DATA(insert OID = 1854 (  int28le		   PGNSP PGUID 12 f t f t f i 2 16 "21 20" 100 0 0 100	int28le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1855 (  int28ge		   PGNSP PGUID 12 f t t i 2 f 16 "21 20" 100 0 0 100	int28ge - _null_ ));
+DATA(insert OID = 1855 (  int28ge		   PGNSP PGUID 12 f t f t f i 2 16 "21 20" 100 0 0 100	int28ge - _null_ ));
 DESCR("greater-than-or-equal");
 
-DATA(insert OID = 1856 (  int82eq		   PGNSP PGUID 12 f t t i 2 f 16 "20 21" 100 0 0 100	int82eq - _null_ ));
+DATA(insert OID = 1856 (  int82eq		   PGNSP PGUID 12 f t f t f i 2 16 "20 21" 100 0 0 100	int82eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1857 (  int82ne		   PGNSP PGUID 12 f t t i 2 f 16 "20 21" 100 0 0 100	int82ne - _null_ ));
+DATA(insert OID = 1857 (  int82ne		   PGNSP PGUID 12 f t f t f i 2 16 "20 21" 100 0 0 100	int82ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1858 (  int82lt		   PGNSP PGUID 12 f t t i 2 f 16 "20 21" 100 0 0 100	int82lt - _null_ ));
+DATA(insert OID = 1858 (  int82lt		   PGNSP PGUID 12 f t f t f i 2 16 "20 21" 100 0 0 100	int82lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1859 (  int82gt		   PGNSP PGUID 12 f t t i 2 f 16 "20 21" 100 0 0 100	int82gt - _null_ ));
+DATA(insert OID = 1859 (  int82gt		   PGNSP PGUID 12 f t f t f i 2 16 "20 21" 100 0 0 100	int82gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1860 (  int82le		   PGNSP PGUID 12 f t t i 2 f 16 "20 21" 100 0 0 100	int82le - _null_ ));
+DATA(insert OID = 1860 (  int82le		   PGNSP PGUID 12 f t f t f i 2 16 "20 21" 100 0 0 100	int82le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1861 (  int82ge		   PGNSP PGUID 12 f t t i 2 f 16 "20 21" 100 0 0 100	int82ge - _null_ ));
+DATA(insert OID = 1861 (  int82ge		   PGNSP PGUID 12 f t f t f i 2 16 "20 21" 100 0 0 100	int82ge - _null_ ));
 DESCR("greater-than-or-equal");
 
-DATA(insert OID = 1892 (  int2and		   PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100	int2and - _null_ ));
+DATA(insert OID = 1892 (  int2and		   PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100	int2and - _null_ ));
 DESCR("binary and");
-DATA(insert OID = 1893 (  int2or		   PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100	int2or - _null_ ));
+DATA(insert OID = 1893 (  int2or		   PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100	int2or - _null_ ));
 DESCR("binary or");
-DATA(insert OID = 1894 (  int2xor		   PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100	int2xor - _null_ ));
+DATA(insert OID = 1894 (  int2xor		   PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100	int2xor - _null_ ));
 DESCR("binary xor");
-DATA(insert OID = 1895 (  int2not		   PGNSP PGUID 12 f t t i 1 f 21 "21" 100 0 0 100  int2not - _null_ ));
+DATA(insert OID = 1895 (  int2not		   PGNSP PGUID 12 f t f t f i 1 21 "21" 100 0 0 100  int2not - _null_ ));
 DESCR("binary not");
-DATA(insert OID = 1896 (  int2shl		   PGNSP PGUID 12 f t t i 2 f 21 "21 23" 100 0 0 100	int2shl - _null_ ));
+DATA(insert OID = 1896 (  int2shl		   PGNSP PGUID 12 f t f t f i 2 21 "21 23" 100 0 0 100	int2shl - _null_ ));
 DESCR("binary shift left");
-DATA(insert OID = 1897 (  int2shr		   PGNSP PGUID 12 f t t i 2 f 21 "21 23" 100 0 0 100	int2shr - _null_ ));
+DATA(insert OID = 1897 (  int2shr		   PGNSP PGUID 12 f t f t f i 2 21 "21 23" 100 0 0 100	int2shr - _null_ ));
 DESCR("binary shift right");
 
-DATA(insert OID = 1898 (  int4and		   PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100	int4and - _null_ ));
+DATA(insert OID = 1898 (  int4and		   PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100	int4and - _null_ ));
 DESCR("binary and");
-DATA(insert OID = 1899 (  int4or		   PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100	int4or - _null_ ));
+DATA(insert OID = 1899 (  int4or		   PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100	int4or - _null_ ));
 DESCR("binary or");
-DATA(insert OID = 1900 (  int4xor		   PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100	int4xor - _null_ ));
+DATA(insert OID = 1900 (  int4xor		   PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100	int4xor - _null_ ));
 DESCR("binary xor");
-DATA(insert OID = 1901 (  int4not		   PGNSP PGUID 12 f t t i 1 f 23 "23" 100 0 0 100  int4not - _null_ ));
+DATA(insert OID = 1901 (  int4not		   PGNSP PGUID 12 f t f t f i 1 23 "23" 100 0 0 100  int4not - _null_ ));
 DESCR("binary not");
-DATA(insert OID = 1902 (  int4shl		   PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100	int4shl - _null_ ));
+DATA(insert OID = 1902 (  int4shl		   PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100	int4shl - _null_ ));
 DESCR("binary shift left");
-DATA(insert OID = 1903 (  int4shr		   PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100	int4shr - _null_ ));
+DATA(insert OID = 1903 (  int4shr		   PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100	int4shr - _null_ ));
 DESCR("binary shift right");
 
-DATA(insert OID = 1904 (  int8and		   PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100	int8and - _null_ ));
+DATA(insert OID = 1904 (  int8and		   PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100	int8and - _null_ ));
 DESCR("binary and");
-DATA(insert OID = 1905 (  int8or		   PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100	int8or - _null_ ));
+DATA(insert OID = 1905 (  int8or		   PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100	int8or - _null_ ));
 DESCR("binary or");
-DATA(insert OID = 1906 (  int8xor		   PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100	int8xor - _null_ ));
+DATA(insert OID = 1906 (  int8xor		   PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100	int8xor - _null_ ));
 DESCR("binary xor");
-DATA(insert OID = 1907 (  int8not		   PGNSP PGUID 12 f t t i 1 f 20 "20" 100 0 0 100  int8not - _null_ ));
+DATA(insert OID = 1907 (  int8not		   PGNSP PGUID 12 f t f t f i 1 20 "20" 100 0 0 100  int8not - _null_ ));
 DESCR("binary not");
-DATA(insert OID = 1908 (  int8shl		   PGNSP PGUID 12 f t t i 2 f 20 "20 23" 100 0 0 100	int8shl - _null_ ));
+DATA(insert OID = 1908 (  int8shl		   PGNSP PGUID 12 f t f t f i 2 20 "20 23" 100 0 0 100	int8shl - _null_ ));
 DESCR("binary shift left");
-DATA(insert OID = 1909 (  int8shr		   PGNSP PGUID 12 f t t i 2 f 20 "20 23" 100 0 0 100	int8shr - _null_ ));
+DATA(insert OID = 1909 (  int8shr		   PGNSP PGUID 12 f t f t f i 2 20 "20 23" 100 0 0 100	int8shr - _null_ ));
 DESCR("binary shift right");
 
-DATA(insert OID = 1910 (  int8up		   PGNSP PGUID 12 f t t i 1 f 20	"20"   100 0 0 100	int8up - _null_ ));
+DATA(insert OID = 1910 (  int8up		   PGNSP PGUID 12 f t f t f i 1 20	"20"   100 0 0 100	int8up - _null_ ));
 DESCR("unary plus");
-DATA(insert OID = 1911 (  int2up		   PGNSP PGUID 12 f t t i 1 f 21	"21"   100 0 0 100	int2up - _null_ ));
+DATA(insert OID = 1911 (  int2up		   PGNSP PGUID 12 f t f t f i 1 21	"21"   100 0 0 100	int2up - _null_ ));
 DESCR("unary plus");
-DATA(insert OID = 1912 (  int4up		   PGNSP PGUID 12 f t t i 1 f 23	"23"   100 0 0 100	int4up - _null_ ));
+DATA(insert OID = 1912 (  int4up		   PGNSP PGUID 12 f t f t f i 1 23	"23"   100 0 0 100	int4up - _null_ ));
 DESCR("unary plus");
-DATA(insert OID = 1913 (  float4up		   PGNSP PGUID 12 f t t i 1 f 700 "700"  100 0 0 100	float4up - _null_ ));
+DATA(insert OID = 1913 (  float4up		   PGNSP PGUID 12 f t f t f i 1 700 "700"  100 0 0 100	float4up - _null_ ));
 DESCR("unary plus");
-DATA(insert OID = 1914 (  float8up		   PGNSP PGUID 12 f t t i 1 f 701 "701"  100 0 0 100	float8up - _null_ ));
+DATA(insert OID = 1914 (  float8up		   PGNSP PGUID 12 f t f t f i 1 701 "701"  100 0 0 100	float8up - _null_ ));
 DESCR("unary plus");
-DATA(insert OID = 1915 (  numeric_uplus    PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100  numeric_uplus - _null_ ));
+DATA(insert OID = 1915 (  numeric_uplus    PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100  numeric_uplus - _null_ ));
 DESCR("unary plus");
 
-DATA(insert OID = 1922 (  has_table_privilege		   PGNSP PGUID 12 f t t s 3 f 16 "19 19 25" 100 0 0 100  has_table_privilege_name_name - _null_ ));
+DATA(insert OID = 1922 (  has_table_privilege		   PGNSP PGUID 12 f t f t f s 3 16 "19 19 25" 100 0 0 100  has_table_privilege_name_name - _null_ ));
 DESCR("user privilege on relation by username, relname");
-DATA(insert OID = 1923 (  has_table_privilege		   PGNSP PGUID 12 f t t s 3 f 16 "19 26 25" 100 0 0 100  has_table_privilege_name_id - _null_ ));
+DATA(insert OID = 1923 (  has_table_privilege		   PGNSP PGUID 12 f t f t f s 3 16 "19 26 25" 100 0 0 100  has_table_privilege_name_id - _null_ ));
 DESCR("user privilege on relation by username, rel oid");
-DATA(insert OID = 1924 (  has_table_privilege		   PGNSP PGUID 12 f t t s 3 f 16 "23 19 25" 100 0 0 100  has_table_privilege_id_name - _null_ ));
+DATA(insert OID = 1924 (  has_table_privilege		   PGNSP PGUID 12 f t f t f s 3 16 "23 19 25" 100 0 0 100  has_table_privilege_id_name - _null_ ));
 DESCR("user privilege on relation by usesysid, relname");
-DATA(insert OID = 1925 (  has_table_privilege		   PGNSP PGUID 12 f t t s 3 f 16 "23 26 25" 100 0 0 100  has_table_privilege_id_id - _null_ ));
+DATA(insert OID = 1925 (  has_table_privilege		   PGNSP PGUID 12 f t f t f s 3 16 "23 26 25" 100 0 0 100  has_table_privilege_id_id - _null_ ));
 DESCR("user privilege on relation by usesysid, rel oid");
-DATA(insert OID = 1926 (  has_table_privilege		   PGNSP PGUID 12 f t t s 2 f 16 "19 25" 100 0 0 100	has_table_privilege_name - _null_ ));
+DATA(insert OID = 1926 (  has_table_privilege		   PGNSP PGUID 12 f t f t f s 2 16 "19 25" 100 0 0 100	has_table_privilege_name - _null_ ));
 DESCR("current user privilege on relation by relname");
-DATA(insert OID = 1927 (  has_table_privilege		   PGNSP PGUID 12 f t t s 2 f 16 "26 25" 100 0 0 100	has_table_privilege_id - _null_ ));
+DATA(insert OID = 1927 (  has_table_privilege		   PGNSP PGUID 12 f t f t f s 2 16 "26 25" 100 0 0 100	has_table_privilege_id - _null_ ));
 DESCR("current user privilege on relation by rel oid");
 
 
-DATA(insert OID = 1928 (  pg_stat_get_numscans			PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100  pg_stat_get_numscans - _null_ ));
+DATA(insert OID = 1928 (  pg_stat_get_numscans			PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100  pg_stat_get_numscans - _null_ ));
 DESCR("Statistics: Number of scans done for table/index");
-DATA(insert OID = 1929 (  pg_stat_get_tuples_returned	PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100  pg_stat_get_tuples_returned - _null_ ));
+DATA(insert OID = 1929 (  pg_stat_get_tuples_returned	PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100  pg_stat_get_tuples_returned - _null_ ));
 DESCR("Statistics: Number of tuples read by seqscan");
-DATA(insert OID = 1930 (  pg_stat_get_tuples_fetched	PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100  pg_stat_get_tuples_fetched - _null_ ));
+DATA(insert OID = 1930 (  pg_stat_get_tuples_fetched	PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100  pg_stat_get_tuples_fetched - _null_ ));
 DESCR("Statistics: Number of tuples fetched by idxscan");
-DATA(insert OID = 1931 (  pg_stat_get_tuples_inserted	PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100  pg_stat_get_tuples_inserted - _null_ ));
+DATA(insert OID = 1931 (  pg_stat_get_tuples_inserted	PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100  pg_stat_get_tuples_inserted - _null_ ));
 DESCR("Statistics: Number of tuples inserted");
-DATA(insert OID = 1932 (  pg_stat_get_tuples_updated	PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100  pg_stat_get_tuples_updated - _null_ ));
+DATA(insert OID = 1932 (  pg_stat_get_tuples_updated	PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100  pg_stat_get_tuples_updated - _null_ ));
 DESCR("Statistics: Number of tuples updated");
-DATA(insert OID = 1933 (  pg_stat_get_tuples_deleted	PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100  pg_stat_get_tuples_deleted - _null_ ));
+DATA(insert OID = 1933 (  pg_stat_get_tuples_deleted	PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100  pg_stat_get_tuples_deleted - _null_ ));
 DESCR("Statistics: Number of tuples deleted");
-DATA(insert OID = 1934 (  pg_stat_get_blocks_fetched	PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100  pg_stat_get_blocks_fetched - _null_ ));
+DATA(insert OID = 1934 (  pg_stat_get_blocks_fetched	PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100  pg_stat_get_blocks_fetched - _null_ ));
 DESCR("Statistics: Number of blocks fetched");
-DATA(insert OID = 1935 (  pg_stat_get_blocks_hit		PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100  pg_stat_get_blocks_hit - _null_ ));
+DATA(insert OID = 1935 (  pg_stat_get_blocks_hit		PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100  pg_stat_get_blocks_hit - _null_ ));
 DESCR("Statistics: Number of blocks found in cache");
-DATA(insert OID = 1936 (  pg_stat_get_backend_idset		PGNSP PGUID 12 f t t s 0 t 23 "" 100 0 0 100	pg_stat_get_backend_idset - _null_ ));
+DATA(insert OID = 1936 (  pg_stat_get_backend_idset		PGNSP PGUID 12 f t f t t s 0 23 "" 100 0 0 100	pg_stat_get_backend_idset - _null_ ));
 DESCR("Statistics: Currently active backend IDs");
-DATA(insert OID = 1937 (  pg_stat_get_backend_pid		PGNSP PGUID 12 f t t s 1 f 23 "23" 100 0 0 100  pg_stat_get_backend_pid - _null_ ));
+DATA(insert OID = 1937 (  pg_stat_get_backend_pid		PGNSP PGUID 12 f t f t f s 1 23 "23" 100 0 0 100  pg_stat_get_backend_pid - _null_ ));
 DESCR("Statistics: PID of backend");
-DATA(insert OID = 1938 (  pg_stat_get_backend_dbid		PGNSP PGUID 12 f t t s 1 f 26 "23" 100 0 0 100  pg_stat_get_backend_dbid - _null_ ));
+DATA(insert OID = 1938 (  pg_stat_get_backend_dbid		PGNSP PGUID 12 f t f t f s 1 26 "23" 100 0 0 100  pg_stat_get_backend_dbid - _null_ ));
 DESCR("Statistics: Database ID of backend");
-DATA(insert OID = 1939 (  pg_stat_get_backend_userid	PGNSP PGUID 12 f t t s 1 f 26 "23" 100 0 0 100  pg_stat_get_backend_userid - _null_ ));
+DATA(insert OID = 1939 (  pg_stat_get_backend_userid	PGNSP PGUID 12 f t f t f s 1 26 "23" 100 0 0 100  pg_stat_get_backend_userid - _null_ ));
 DESCR("Statistics: User ID of backend");
-DATA(insert OID = 1940 (  pg_stat_get_backend_activity	PGNSP PGUID 12 f t t s 1 f 25 "23" 100 0 0 100  pg_stat_get_backend_activity - _null_ ));
+DATA(insert OID = 1940 (  pg_stat_get_backend_activity	PGNSP PGUID 12 f t f t f s 1 25 "23" 100 0 0 100  pg_stat_get_backend_activity - _null_ ));
 DESCR("Statistics: Current query of backend");
-DATA(insert OID = 1941 (  pg_stat_get_db_numbackends	PGNSP PGUID 12 f t t s 1 f 23 "26" 100 0 0 100  pg_stat_get_db_numbackends - _null_ ));
+DATA(insert OID = 1941 (  pg_stat_get_db_numbackends	PGNSP PGUID 12 f t f t f s 1 23 "26" 100 0 0 100  pg_stat_get_db_numbackends - _null_ ));
 DESCR("Statistics: Number of backends in database");
-DATA(insert OID = 1942 (  pg_stat_get_db_xact_commit	PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100  pg_stat_get_db_xact_commit - _null_ ));
+DATA(insert OID = 1942 (  pg_stat_get_db_xact_commit	PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100  pg_stat_get_db_xact_commit - _null_ ));
 DESCR("Statistics: Transactions committed");
-DATA(insert OID = 1943 (  pg_stat_get_db_xact_rollback	PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100  pg_stat_get_db_xact_rollback - _null_ ));
+DATA(insert OID = 1943 (  pg_stat_get_db_xact_rollback	PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100  pg_stat_get_db_xact_rollback - _null_ ));
 DESCR("Statistics: Transactions rolled back");
-DATA(insert OID = 1944 (  pg_stat_get_db_blocks_fetched PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100  pg_stat_get_db_blocks_fetched - _null_ ));
+DATA(insert OID = 1944 (  pg_stat_get_db_blocks_fetched PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100  pg_stat_get_db_blocks_fetched - _null_ ));
 DESCR("Statistics: Blocks fetched for database");
-DATA(insert OID = 1945 (  pg_stat_get_db_blocks_hit		PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100  pg_stat_get_db_blocks_hit - _null_ ));
+DATA(insert OID = 1945 (  pg_stat_get_db_blocks_hit		PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100  pg_stat_get_db_blocks_hit - _null_ ));
 DESCR("Statistics: Block found in cache for database");
 
-DATA(insert OID = 1946 (  encode						PGNSP PGUID 12 f t t i 2 f 25 "17 25" 100 0 0 100  binary_encode - _null_ ));
+DATA(insert OID = 1946 (  encode						PGNSP PGUID 12 f t f t f i 2 25 "17 25" 100 0 0 100  binary_encode - _null_ ));
 DESCR("Convert bytea value into some ascii-only text string");
-DATA(insert OID = 1947 (  decode						PGNSP PGUID 12 f t t i 2 f 17 "25 25" 100 0 0 100  binary_decode - _null_ ));
+DATA(insert OID = 1947 (  decode						PGNSP PGUID 12 f t f t f i 2 17 "25 25" 100 0 0 100  binary_decode - _null_ ));
 DESCR("Convert ascii-encoded text string into bytea value");
 
-DATA(insert OID = 1948 (  byteaeq		   PGNSP PGUID 12 f t t i 2 f 16 "17 17" 100 0 0 100	byteaeq - _null_ ));
+DATA(insert OID = 1948 (  byteaeq		   PGNSP PGUID 12 f t f t f i 2 16 "17 17" 100 0 0 100	byteaeq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1949 (  bytealt		   PGNSP PGUID 12 f t t i 2 f 16 "17 17" 100 0 0 100	bytealt - _null_ ));
+DATA(insert OID = 1949 (  bytealt		   PGNSP PGUID 12 f t f t f i 2 16 "17 17" 100 0 0 100	bytealt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1950 (  byteale		   PGNSP PGUID 12 f t t i 2 f 16 "17 17" 100 0 0 100	byteale - _null_ ));
+DATA(insert OID = 1950 (  byteale		   PGNSP PGUID 12 f t f t f i 2 16 "17 17" 100 0 0 100	byteale - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1951 (  byteagt		   PGNSP PGUID 12 f t t i 2 f 16 "17 17" 100 0 0 100	byteagt - _null_ ));
+DATA(insert OID = 1951 (  byteagt		   PGNSP PGUID 12 f t f t f i 2 16 "17 17" 100 0 0 100	byteagt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1952 (  byteage		   PGNSP PGUID 12 f t t i 2 f 16 "17 17" 100 0 0 100	byteage - _null_ ));
+DATA(insert OID = 1952 (  byteage		   PGNSP PGUID 12 f t f t f i 2 16 "17 17" 100 0 0 100	byteage - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1953 (  byteane		   PGNSP PGUID 12 f t t i 2 f 16 "17 17" 100 0 0 100	byteane - _null_ ));
+DATA(insert OID = 1953 (  byteane		   PGNSP PGUID 12 f t f t f i 2 16 "17 17" 100 0 0 100	byteane - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1954 (  byteacmp		   PGNSP PGUID 12 f t t i 2 f 23 "17 17" 100 0 0 100	byteacmp - _null_ ));
+DATA(insert OID = 1954 (  byteacmp		   PGNSP PGUID 12 f t f t f i 2 23 "17 17" 100 0 0 100	byteacmp - _null_ ));
 DESCR("less-equal-greater");
 
-DATA(insert OID = 1961 (  timestamp		   PGNSP PGUID 12 f t t i 2 f 1114 "1114 23" 100 0 0 100	timestamp_scale - _null_ ));
+DATA(insert OID = 1961 (  timestamp		   PGNSP PGUID 12 f t t t f i 2 1114 "1114 23" 100 0 0 100	timestamp_scale - _null_ ));
 DESCR("adjust time precision");
 
-DATA(insert OID = 1965 (  oidlarger		   PGNSP PGUID 12 f t t i 2 f 26 "26 26" 100 0 0 100	oidlarger - _null_ ));
+DATA(insert OID = 1965 (  oidlarger		   PGNSP PGUID 12 f t f t f i 2 26 "26 26" 100 0 0 100	oidlarger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 1966 (  oidsmaller	   PGNSP PGUID 12 f t t i 2 f 26 "26 26" 100 0 0 100	oidsmaller - _null_ ));
+DATA(insert OID = 1966 (  oidsmaller	   PGNSP PGUID 12 f t f t f i 2 26 "26 26" 100 0 0 100	oidsmaller - _null_ ));
 DESCR("smaller of two");
 
-DATA(insert OID = 1967 (  timestamptz	   PGNSP PGUID 12 f t t i 2 f 1184 "1184 23" 100 0 0 100	timestamptz_scale - _null_ ));
+DATA(insert OID = 1967 (  timestamptz	   PGNSP PGUID 12 f t t t f i 2 1184 "1184 23" 100 0 0 100	timestamptz_scale - _null_ ));
 DESCR("adjust time precision");
-DATA(insert OID = 1968 (  time			   PGNSP PGUID 12 f t t i 2 f 1083 "1083 23" 100 0 0 100	time_scale - _null_ ));
+DATA(insert OID = 1968 (  time			   PGNSP PGUID 12 f t t t f i 2 1083 "1083 23" 100 0 0 100	time_scale - _null_ ));
 DESCR("adjust time precision");
-DATA(insert OID = 1969 (  timetz		   PGNSP PGUID 12 f t t i 2 f 1266 "1266 23" 100 0 0 100	timetz_scale - _null_ ));
+DATA(insert OID = 1969 (  timetz		   PGNSP PGUID 12 f t t t f i 2 1266 "1266 23" 100 0 0 100	timetz_scale - _null_ ));
 DESCR("adjust time with time zone precision");
 
-DATA(insert OID = 2005 (  bytealike		   PGNSP PGUID 12 f t t i 2 f 16 "17 17" 100 0 0 100 bytealike - _null_ ));
+DATA(insert OID = 2005 (  bytealike		   PGNSP PGUID 12 f t f t f i 2 16 "17 17" 100 0 0 100 bytealike - _null_ ));
 DESCR("matches LIKE expression");
-DATA(insert OID = 2006 (  byteanlike	   PGNSP PGUID 12 f t t i 2 f 16 "17 17" 100 0 0 100 byteanlike - _null_ ));
+DATA(insert OID = 2006 (  byteanlike	   PGNSP PGUID 12 f t f t f i 2 16 "17 17" 100 0 0 100 byteanlike - _null_ ));
 DESCR("does not match LIKE expression");
-DATA(insert OID = 2007 (  like			   PGNSP PGUID 12 f t t i 2 f 16 "17 17" 100 0 0 100	bytealike - _null_ ));
+DATA(insert OID = 2007 (  like			   PGNSP PGUID 12 f t f t f i 2 16 "17 17" 100 0 0 100	bytealike - _null_ ));
 DESCR("matches LIKE expression");
-DATA(insert OID = 2008 (  notlike		   PGNSP PGUID 12 f t t i 2 f 16 "17 17" 100 0 0 100	byteanlike - _null_ ));
+DATA(insert OID = 2008 (  notlike		   PGNSP PGUID 12 f t f t f i 2 16 "17 17" 100 0 0 100	byteanlike - _null_ ));
 DESCR("does not match LIKE expression");
-DATA(insert OID = 2009 (  like_escape	   PGNSP PGUID 12 f t t i 2 f 17 "17 17" 100 0 0 100 like_escape_bytea - _null_ ));
+DATA(insert OID = 2009 (  like_escape	   PGNSP PGUID 12 f t f t f i 2 17 "17 17" 100 0 0 100 like_escape_bytea - _null_ ));
 DESCR("convert match pattern to use backslash escapes");
-DATA(insert OID = 2010 (  length		   PGNSP PGUID 12 f t t i 1 f 23 "17" 100 0 0 100  byteaoctetlen - _null_ ));
+DATA(insert OID = 2010 (  length		   PGNSP PGUID 12 f t f t f i 1 23 "17" 100 0 0 100  byteaoctetlen - _null_ ));
 DESCR("octet length");
-DATA(insert OID = 2011 (  byteacat		   PGNSP PGUID 12 f t t i 2 f 17 "17 17" 100 0 0 100	byteacat - _null_ ));
+DATA(insert OID = 2011 (  byteacat		   PGNSP PGUID 12 f t f t f i 2 17 "17 17" 100 0 0 100	byteacat - _null_ ));
 DESCR("concatenate");
-DATA(insert OID = 2012 (  substring		   PGNSP PGUID 12 f t t i 3 f 17 "17 23 23" 100 0 0 100  bytea_substr - _null_ ));
+DATA(insert OID = 2012 (  substring		   PGNSP PGUID 12 f t f t f i 3 17 "17 23 23" 100 0 0 100  bytea_substr - _null_ ));
 DESCR("return portion of string");
-DATA(insert OID = 2013 (  substring		   PGNSP PGUID 14 f t t i 2 f 17 "17 23" 100 0 0 100	"select substring($1, $2, -1)" - _null_ ));
+DATA(insert OID = 2013 (  substring		   PGNSP PGUID 14 f t f t f i 2 17 "17 23" 100 0 0 100	"select substring($1, $2, -1)" - _null_ ));
 DESCR("return portion of string");
-DATA(insert OID = 2014 (  position		   PGNSP PGUID 12 f t t i 2 f 23 "17 17" 100 0 0 100	byteapos - _null_ ));
+DATA(insert OID = 2014 (  position		   PGNSP PGUID 12 f t f t f i 2 23 "17 17" 100 0 0 100	byteapos - _null_ ));
 DESCR("return position of substring");
-DATA(insert OID = 2015 (  btrim			   PGNSP PGUID 12 f t t i 2 f 17 "17 17" 100 0 0 100	byteatrim - _null_ ));
+DATA(insert OID = 2015 (  btrim			   PGNSP PGUID 12 f t f t f i 2 17 "17 17" 100 0 0 100	byteatrim - _null_ ));
 DESCR("trim both ends of string");
 
-DATA(insert OID = 2020 (  date_trunc		PGNSP PGUID 12 f t t i 2 f 1114 "25 1114" 100 0 0 100  timestamp_trunc - _null_ ));
+DATA(insert OID = 2020 (  date_trunc		PGNSP PGUID 12 f t f t f i 2 1114 "25 1114" 100 0 0 100  timestamp_trunc - _null_ ));
 DESCR("truncate timestamp to specified units");
-DATA(insert OID = 2021 (  date_part			PGNSP PGUID 12 f t t i 2 f  701 "25 1114" 100 0 0 100  timestamp_part - _null_ ));
+DATA(insert OID = 2021 (  date_part			PGNSP PGUID 12 f t f t f i 2  701 "25 1114" 100 0 0 100  timestamp_part - _null_ ));
 DESCR("extract field from timestamp");
-DATA(insert OID = 2022 (  timestamp			PGNSP PGUID 12 f t t s 1 f 1114 "25" 100 0 0 100	text_timestamp - _null_ ));
+DATA(insert OID = 2022 (  timestamp			PGNSP PGUID 12 f t f t f s 1 1114 "25" 100 0 0 100	text_timestamp - _null_ ));
 DESCR("convert text to timestamp");
-DATA(insert OID = 2023 (  timestamp			PGNSP PGUID 12 f t t s 1 f 1114 "702" 100 0 0 100  abstime_timestamp - _null_ ));
+DATA(insert OID = 2023 (  timestamp			PGNSP PGUID 12 f t t t f s 1 1114 "702" 100 0 0 100  abstime_timestamp - _null_ ));
 DESCR("convert abstime to timestamp");
-DATA(insert OID = 2024 (  timestamp			PGNSP PGUID 12 f t t i 1 f 1114 "1082" 100 0 0 100  date_timestamp - _null_ ));
+DATA(insert OID = 2024 (  timestamp			PGNSP PGUID 12 f t t t f i 1 1114 "1082" 100 0 0 100  date_timestamp - _null_ ));
 DESCR("convert date to timestamp");
-DATA(insert OID = 2025 (  timestamp			PGNSP PGUID 12 f t t i 2 f 1114 "1082 1083" 100 0 0 100  datetime_timestamp - _null_ ));
+DATA(insert OID = 2025 (  timestamp			PGNSP PGUID 12 f t f t f i 2 1114 "1082 1083" 100 0 0 100  datetime_timestamp - _null_ ));
 DESCR("convert date and time to timestamp");
-DATA(insert OID = 2026 (  timestamp			PGNSP PGUID 14 f t t i 1 f 1114 "1114" 100 0 0 100  "select $1" - _null_ ));
-DESCR("convert (noop)");
-DATA(insert OID = 2027 (  timestamp			PGNSP PGUID 12 f t t s 1 f 1114 "1184" 100 0 0 100  timestamptz_timestamp - _null_ ));
+DATA(insert OID = 2027 (  timestamp			PGNSP PGUID 12 f t t t f s 1 1114 "1184" 100 0 0 100  timestamptz_timestamp - _null_ ));
 DESCR("convert date and time with time zone to timestamp");
-DATA(insert OID = 2028 (  timestamptz		PGNSP PGUID 12 f t t s 1 f 1184 "1114" 100 0 0 100  timestamp_timestamptz - _null_ ));
+DATA(insert OID = 2028 (  timestamptz		PGNSP PGUID 12 f t t t f s 1 1184 "1114" 100 0 0 100  timestamp_timestamptz - _null_ ));
 DESCR("convert date and time with time zone to timestamp");
-DATA(insert OID = 2029 (  date				PGNSP PGUID 12 f t t i 1 f 1082 "1114" 100 0 0 100  timestamp_date - _null_ ));
+DATA(insert OID = 2029 (  date				PGNSP PGUID 12 f t f t f i 1 1082 "1114" 100 0 0 100  timestamp_date - _null_ ));
 DESCR("convert timestamp to date");
-DATA(insert OID = 2030 (  abstime			PGNSP PGUID 12 f t t s 1 f  702 "1114" 100 0 0 100  timestamp_abstime - _null_ ));
+DATA(insert OID = 2030 (  abstime			PGNSP PGUID 12 f t f t f s 1  702 "1114" 100 0 0 100  timestamp_abstime - _null_ ));
 DESCR("convert timestamp to abstime");
-DATA(insert OID = 2031 (  timestamp_mi		PGNSP PGUID 12 f t t i 2 f 1186 "1114 1114" 100 0 0 100  timestamp_mi - _null_ ));
+DATA(insert OID = 2031 (  timestamp_mi		PGNSP PGUID 12 f t f t f i 2 1186 "1114 1114" 100 0 0 100  timestamp_mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 2032 (  timestamp_pl_span PGNSP PGUID 12 f t t i 2 f 1114 "1114 1186" 100 0 0 100  timestamp_pl_span - _null_ ));
+DATA(insert OID = 2032 (  timestamp_pl_span PGNSP PGUID 12 f t f t f i 2 1114 "1114 1186" 100 0 0 100  timestamp_pl_span - _null_ ));
 DESCR("plus");
-DATA(insert OID = 2033 (  timestamp_mi_span PGNSP PGUID 12 f t t i 2 f 1114 "1114 1186" 100 0 0 100  timestamp_mi_span - _null_ ));
+DATA(insert OID = 2033 (  timestamp_mi_span PGNSP PGUID 12 f t f t f i 2 1114 "1114 1186" 100 0 0 100  timestamp_mi_span - _null_ ));
 DESCR("minus");
-DATA(insert OID = 2034 (  text				PGNSP PGUID 12 f t t s 1 f   25 "1114" 100 0 0 100  timestamp_text - _null_ ));
+DATA(insert OID = 2034 (  text				PGNSP PGUID 12 f t t t f s 1   25 "1114" 100 0 0 100  timestamp_text - _null_ ));
 DESCR("convert timestamp to text");
-DATA(insert OID = 2035 (  timestamp_smaller PGNSP PGUID 12 f t t i 2 f 1114 "1114 1114" 100 0 0 100  timestamp_smaller - _null_ ));
+DATA(insert OID = 2035 (  timestamp_smaller PGNSP PGUID 12 f t f t f i 2 1114 "1114 1114" 100 0 0 100  timestamp_smaller - _null_ ));
 DESCR("smaller of two");
-DATA(insert OID = 2036 (  timestamp_larger	PGNSP PGUID 12 f t t i 2 f 1114 "1114 1114" 100 0 0 100  timestamp_larger - _null_ ));
+DATA(insert OID = 2036 (  timestamp_larger	PGNSP PGUID 12 f t f t f i 2 1114 "1114 1114" 100 0 0 100  timestamp_larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 2037 (  timetz			PGNSP PGUID 12 f t t s 2 f 1266 "25 1266" 100 0 0 100  timetz_zone - _null_ ));
+DATA(insert OID = 2037 (  timetz			PGNSP PGUID 12 f t f t f s 2 1266 "25 1266" 100 0 0 100  timetz_zone - _null_ ));
 DESCR("time with time zone");
-DATA(insert OID = 2038 (  timetz			PGNSP PGUID 12 f t t i 2 f 1266 "1186 1266" 100 0 0 100  timetz_izone - _null_ ));
+DATA(insert OID = 2038 (  timetz			PGNSP PGUID 12 f t f t f i 2 1266 "1186 1266" 100 0 0 100  timetz_izone - _null_ ));
 DESCR("time with time zone");
-DATA(insert OID = 2041 ( overlaps			PGNSP PGUID 12 f t f i 4 f 16 "1114 1114 1114 1114" 100 0 0 100  overlaps_timestamp - _null_ ));
+DATA(insert OID = 2041 ( overlaps			PGNSP PGUID 12 f t f f f i 4 16 "1114 1114 1114 1114" 100 0 0 100  overlaps_timestamp - _null_ ));
 DESCR("SQL92 interval comparison");
-DATA(insert OID = 2042 ( overlaps			PGNSP PGUID 14 f t f i 4 f 16 "1114 1186 1114 1186" 100 0 0 100  "select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" - _null_ ));
+DATA(insert OID = 2042 ( overlaps			PGNSP PGUID 14 f t f f f i 4 16 "1114 1186 1114 1186" 100 0 0 100  "select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" - _null_ ));
 DESCR("SQL92 interval comparison");
-DATA(insert OID = 2043 ( overlaps			PGNSP PGUID 14 f t f i 4 f 16 "1114 1114 1114 1186" 100 0 0 100  "select ($1, $2) overlaps ($3, ($3 + $4))" - _null_ ));
+DATA(insert OID = 2043 ( overlaps			PGNSP PGUID 14 f t f f f i 4 16 "1114 1114 1114 1186" 100 0 0 100  "select ($1, $2) overlaps ($3, ($3 + $4))" - _null_ ));
 DESCR("SQL92 interval comparison");
-DATA(insert OID = 2044 ( overlaps			PGNSP PGUID 14 f t f i 4 f 16 "1114 1186 1114 1114" 100 0 0 100  "select ($1, ($1 + $2)) overlaps ($3, $4)" - _null_ ));
+DATA(insert OID = 2044 ( overlaps			PGNSP PGUID 14 f t f f f i 4 16 "1114 1186 1114 1114" 100 0 0 100  "select ($1, ($1 + $2)) overlaps ($3, $4)" - _null_ ));
 DESCR("SQL92 interval comparison");
-DATA(insert OID = 2045 (  timestamp_cmp		PGNSP PGUID 12 f t t i 2 f	23 "1114 1114" 100 0 0 100	timestamp_cmp - _null_ ));
+DATA(insert OID = 2045 (  timestamp_cmp		PGNSP PGUID 12 f t f t f i 2	23 "1114 1114" 100 0 0 100	timestamp_cmp - _null_ ));
 DESCR("less-equal-greater");
-DATA(insert OID = 2046 (  time				PGNSP PGUID 12 f t t i 1 f 1083 "1266" 100 0 0 100  timetz_time - _null_ ));
+DATA(insert OID = 2046 (  time				PGNSP PGUID 12 f t t t f i 1 1083 "1266" 100 0 0 100  timetz_time - _null_ ));
 DESCR("convert time with time zone to time");
-DATA(insert OID = 2047 (  timetz			PGNSP PGUID 12 f t t s 1 f 1266 "1083" 100 0 0 100  time_timetz - _null_ ));
+DATA(insert OID = 2047 (  timetz			PGNSP PGUID 12 f t t t f s 1 1266 "1083" 100 0 0 100  time_timetz - _null_ ));
 DESCR("convert time to timetz");
-DATA(insert OID = 2048 (  isfinite			PGNSP PGUID 12 f t t i 1 f   16 "1114" 100 0 0 100  timestamp_finite - _null_ ));
+DATA(insert OID = 2048 (  isfinite			PGNSP PGUID 12 f t f t f i 1   16 "1114" 100 0 0 100  timestamp_finite - _null_ ));
 DESCR("boolean test");
-DATA(insert OID = 2049 ( to_char			PGNSP PGUID 12 f t t s 2 f	25 "1114 25" 100 0 0 100  timestamp_to_char - _null_ ));
+DATA(insert OID = 2049 ( to_char			PGNSP PGUID 12 f t f t f s 2	25 "1114 25" 100 0 0 100  timestamp_to_char - _null_ ));
 DESCR("format timestamp to text");
-DATA(insert OID = 2050 ( interval_mi_time	PGNSP PGUID 14 f t t i 2 f 1083 "1186 1083" 100 0 0 100  "select $2 - $1" - _null_ ));
+DATA(insert OID = 2050 ( interval_mi_time	PGNSP PGUID 14 f t f t f i 2 1083 "1186 1083" 100 0 0 100  "select $2 - $1" - _null_ ));
 DESCR("minus");
-DATA(insert OID = 2051 ( interval_mi_timetz PGNSP PGUID 14 f t t i 2 f 1266 "1186 1266" 100 0 0 100  "select $2 - $1" - _null_ ));
+DATA(insert OID = 2051 ( interval_mi_timetz PGNSP PGUID 14 f t f t f i 2 1266 "1186 1266" 100 0 0 100  "select $2 - $1" - _null_ ));
 DESCR("minus");
-DATA(insert OID = 2052 (  timestamp_eq		PGNSP PGUID 12 f t t i 2 f 16 "1114 1114" 100 0 0 100  timestamp_eq - _null_ ));
+DATA(insert OID = 2052 (  timestamp_eq		PGNSP PGUID 12 f t f t f i 2 16 "1114 1114" 100 0 0 100  timestamp_eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 2053 (  timestamp_ne		PGNSP PGUID 12 f t t i 2 f 16 "1114 1114" 100 0 0 100  timestamp_ne - _null_ ));
+DATA(insert OID = 2053 (  timestamp_ne		PGNSP PGUID 12 f t f t f i 2 16 "1114 1114" 100 0 0 100  timestamp_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 2054 (  timestamp_lt		PGNSP PGUID 12 f t t i 2 f 16 "1114 1114" 100 0 0 100  timestamp_lt - _null_ ));
+DATA(insert OID = 2054 (  timestamp_lt		PGNSP PGUID 12 f t f t f i 2 16 "1114 1114" 100 0 0 100  timestamp_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 2055 (  timestamp_le		PGNSP PGUID 12 f t t i 2 f 16 "1114 1114" 100 0 0 100  timestamp_le - _null_ ));
+DATA(insert OID = 2055 (  timestamp_le		PGNSP PGUID 12 f t f t f i 2 16 "1114 1114" 100 0 0 100  timestamp_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 2056 (  timestamp_ge		PGNSP PGUID 12 f t t i 2 f 16 "1114 1114" 100 0 0 100  timestamp_ge - _null_ ));
+DATA(insert OID = 2056 (  timestamp_ge		PGNSP PGUID 12 f t f t f i 2 16 "1114 1114" 100 0 0 100  timestamp_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 2057 (  timestamp_gt		PGNSP PGUID 12 f t t i 2 f 16 "1114 1114" 100 0 0 100  timestamp_gt - _null_ ));
+DATA(insert OID = 2057 (  timestamp_gt		PGNSP PGUID 12 f t f t f i 2 16 "1114 1114" 100 0 0 100  timestamp_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 2058 (  age				PGNSP PGUID 12 f t t i 2 f 1186 "1114 1114" 100 0 0 100  timestamp_age - _null_ ));
+DATA(insert OID = 2058 (  age				PGNSP PGUID 12 f t f t f i 2 1186 "1114 1114" 100 0 0 100  timestamp_age - _null_ ));
 DESCR("date difference preserving months and years");
-DATA(insert OID = 2059 (  age				PGNSP PGUID 14 f t t s 1 f 1186 "1114" 100 0 0 100  "select age(cast(current_date as timestamp without time zone), $1)" - _null_ ));
+DATA(insert OID = 2059 (  age				PGNSP PGUID 14 f t f t f s 1 1186 "1114" 100 0 0 100  "select age(cast(current_date as timestamp without time zone), $1)" - _null_ ));
 DESCR("date difference from today preserving months and years");
-DATA(insert OID = 2069 (  timezone			PGNSP PGUID 12 f t t s 2 f 1184 "25 1114" 100 0 0 100  timestamp_zone - _null_ ));
+DATA(insert OID = 2069 (  timezone			PGNSP PGUID 12 f t f t f s 2 1184 "25 1114" 100 0 0 100  timestamp_zone - _null_ ));
 DESCR("time zone");
-DATA(insert OID = 2070 (  timezone			PGNSP PGUID 12 f t t s 2 f 1184 "1186 1114" 100 0 0 100  timestamp_izone - _null_ ));
+DATA(insert OID = 2070 (  timezone			PGNSP PGUID 12 f t f t f s 2 1184 "1186 1114" 100 0 0 100  timestamp_izone - _null_ ));
 DESCR("time zone");
 
+/* Aggregates (moved here from pg_aggregate for 7.3) */
+
+DATA(insert OID = 2100 (  avg				PGNSP PGUID 12 t t f f f i 1 1700 "20" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2101 (  avg				PGNSP PGUID 12 t t f f f i 1 1700 "23" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2102 (  avg				PGNSP PGUID 12 t t f f f i 1 1700 "21" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2103 (  avg				PGNSP PGUID 12 t t f f f i 1 1700 "1700" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2104 (  avg				PGNSP PGUID 12 t t f f f i 1 701 "700" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2105 (  avg				PGNSP PGUID 12 t t f f f i 1 701 "701" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2106 (  avg				PGNSP PGUID 12 t t f f f i 1 1186 "1186" 100 0 0 100  aggregate_dummy - _null_ ));
+
+DATA(insert OID = 2107 (  sum				PGNSP PGUID 12 t t f f f i 1 1700 "20" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2108 (  sum				PGNSP PGUID 12 t t f f f i 1 20 "23" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2109 (  sum				PGNSP PGUID 12 t t f f f i 1 20 "21" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2110 (  sum				PGNSP PGUID 12 t t f f f i 1 700 "700" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2111 (  sum				PGNSP PGUID 12 t t f f f i 1 701 "701" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2112 (  sum				PGNSP PGUID 12 t t f f f i 1 790 "790" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2113 (  sum				PGNSP PGUID 12 t t f f f i 1 1186 "1186" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2114 (  sum				PGNSP PGUID 12 t t f f f i 1 1700 "1700" 100 0 0 100  aggregate_dummy - _null_ ));
+
+DATA(insert OID = 2115 (  max				PGNSP PGUID 12 t t f f f i 1 20 "20" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2116 (  max				PGNSP PGUID 12 t t f f f i 1 23 "23" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2117 (  max				PGNSP PGUID 12 t t f f f i 1 21 "21" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2118 (  max				PGNSP PGUID 12 t t f f f i 1 26 "26" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2119 (  max				PGNSP PGUID 12 t t f f f i 1 700 "700" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2120 (  max				PGNSP PGUID 12 t t f f f i 1 701 "701" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2121 (  max				PGNSP PGUID 12 t t f f f i 1 702 "702" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2122 (  max				PGNSP PGUID 12 t t f f f i 1 1082 "1082" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2123 (  max				PGNSP PGUID 12 t t f f f i 1 1083 "1083" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2124 (  max				PGNSP PGUID 12 t t f f f i 1 1266 "1266" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2125 (  max				PGNSP PGUID 12 t t f f f i 1 790 "790" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2126 (  max				PGNSP PGUID 12 t t f f f i 1 1114 "1114" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2127 (  max				PGNSP PGUID 12 t t f f f i 1 1184 "1184" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2128 (  max				PGNSP PGUID 12 t t f f f i 1 1186 "1186" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2129 (  max				PGNSP PGUID 12 t t f f f i 1 25 "25" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2130 (  max				PGNSP PGUID 12 t t f f f i 1 1700 "1700" 100 0 0 100  aggregate_dummy - _null_ ));
+
+DATA(insert OID = 2131 (  min				PGNSP PGUID 12 t t f f f i 1 20 "20" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2132 (  min				PGNSP PGUID 12 t t f f f i 1 23 "23" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2133 (  min				PGNSP PGUID 12 t t f f f i 1 21 "21" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2134 (  min				PGNSP PGUID 12 t t f f f i 1 26 "26" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2135 (  min				PGNSP PGUID 12 t t f f f i 1 700 "700" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2136 (  min				PGNSP PGUID 12 t t f f f i 1 701 "701" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2137 (  min				PGNSP PGUID 12 t t f f f i 1 702 "702" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2138 (  min				PGNSP PGUID 12 t t f f f i 1 1082 "1082" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2139 (  min				PGNSP PGUID 12 t t f f f i 1 1083 "1083" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2140 (  min				PGNSP PGUID 12 t t f f f i 1 1266 "1266" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2141 (  min				PGNSP PGUID 12 t t f f f i 1 790 "790" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2142 (  min				PGNSP PGUID 12 t t f f f i 1 1114 "1114" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2143 (  min				PGNSP PGUID 12 t t f f f i 1 1184 "1184" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2144 (  min				PGNSP PGUID 12 t t f f f i 1 1186 "1186" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2145 (  min				PGNSP PGUID 12 t t f f f i 1 25 "25" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2146 (  min				PGNSP PGUID 12 t t f f f i 1 1700 "1700" 100 0 0 100  aggregate_dummy - _null_ ));
+
+DATA(insert OID = 2147 (  count				PGNSP PGUID 12 t t f f f i 1 20 "0" 100 0 0 100  aggregate_dummy - _null_ ));
+
+DATA(insert OID = 2148 (  variance			PGNSP PGUID 12 t t f f f i 1 1700 "20" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2149 (  variance			PGNSP PGUID 12 t t f f f i 1 1700 "23" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2150 (  variance			PGNSP PGUID 12 t t f f f i 1 1700 "21" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2151 (  variance			PGNSP PGUID 12 t t f f f i 1 701 "700" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2152 (  variance			PGNSP PGUID 12 t t f f f i 1 701 "701" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2153 (  variance			PGNSP PGUID 12 t t f f f i 1 1700 "1700" 100 0 0 100  aggregate_dummy - _null_ ));
+
+DATA(insert OID = 2154 (  stddev			PGNSP PGUID 12 t t f f f i 1 1700 "20" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2155 (  stddev			PGNSP PGUID 12 t t f f f i 1 1700 "23" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2156 (  stddev			PGNSP PGUID 12 t t f f f i 1 1700 "21" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2157 (  stddev			PGNSP PGUID 12 t t f f f i 1 701 "700" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2158 (  stddev			PGNSP PGUID 12 t t f f f i 1 701 "701" 100 0 0 100  aggregate_dummy - _null_ ));
+DATA(insert OID = 2159 (  stddev			PGNSP PGUID 12 t t f f f i 1 1700 "1700" 100 0 0 100  aggregate_dummy - _null_ ));
+
 
 /*
  * Symbolic values for provolatile column: these indicate whether the result
@@ -2898,13 +2940,16 @@ extern Oid ProcedureCreate(const char *procedureName,
 				Oid languageObjectId,
 				const char *prosrc,
 				const char *probin,
+				bool isAgg,
 				bool trusted,
+				bool isImplicit,
 				bool isStrict,
 				char volatility,
 				int32 byte_pct,
 				int32 perbyte_cpu,
 				int32 percall_cpu,
 				int32 outin_ratio,
-				List *argList);
+				int parameterCount,
+				const Oid *parameterTypes);
 
 #endif   /* PG_PROC_H */
diff --git a/src/include/executor/nodeAgg.h b/src/include/executor/nodeAgg.h
index 894edfb0c79..2c3402537fc 100644
--- a/src/include/executor/nodeAgg.h
+++ b/src/include/executor/nodeAgg.h
@@ -7,13 +7,14 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: nodeAgg.h,v 1.15 2001/11/05 17:46:33 momjian Exp $
+ * $Id: nodeAgg.h,v 1.16 2002/04/11 20:00:14 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 #ifndef NODEAGG_H
 #define NODEAGG_H
 
+#include "fmgr.h"
 #include "nodes/plannodes.h"
 
 extern TupleTableSlot *ExecAgg(Agg *node);
@@ -22,4 +23,6 @@ extern int	ExecCountSlotsAgg(Agg *node);
 extern void ExecEndAgg(Agg *node);
 extern void ExecReScanAgg(Agg *node, ExprContext *exprCtxt, Plan *parent);
 
+extern Datum aggregate_dummy(PG_FUNCTION_ARGS);
+
 #endif   /* NODEAGG_H */
diff --git a/src/include/nodes/primnodes.h b/src/include/nodes/primnodes.h
index dc01689e30e..903245cf51f 100644
--- a/src/include/nodes/primnodes.h
+++ b/src/include/nodes/primnodes.h
@@ -10,7 +10,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: primnodes.h,v 1.60 2002/03/26 19:16:53 tgl Exp $
+ * $Id: primnodes.h,v 1.61 2002/04/11 20:00:15 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -322,13 +322,9 @@ typedef struct Iter
 typedef struct Aggref
 {
 	NodeTag		type;
-	char	   *aggname;		/* name of the aggregate */
-	Oid			basetype;		/* base type Oid of the aggregate (ie,
-								 * input type) */
-	Oid			aggtype;		/* type Oid of final result of the
-								 * aggregate */
-	Node	   *target;			/* attribute or expression we are
-								 * aggregating on */
+	Oid			aggfnoid;		/* pg_proc Oid of the aggregate */
+	Oid			aggtype;		/* type Oid of result of the aggregate */
+	Node	   *target;			/* expression we are aggregating on */
 	bool		aggstar;		/* TRUE if argument was really '*' */
 	bool		aggdistinct;	/* TRUE if it's agg(DISTINCT ...) */
 	int			aggno;			/* workspace for executor (see nodeAgg.c) */
diff --git a/src/include/parser/parse_agg.h b/src/include/parser/parse_agg.h
index 03ac8dc6462..31a5b50b55c 100644
--- a/src/include/parser/parse_agg.h
+++ b/src/include/parser/parse_agg.h
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: parse_agg.h,v 1.22 2002/04/09 20:35:55 tgl Exp $
+ * $Id: parse_agg.h,v 1.23 2002/04/11 20:00:15 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -16,10 +16,6 @@
 
 #include "parser/parse_node.h"
 
-extern void AddAggToParseState(ParseState *pstate, Aggref *aggref);
 extern void parseCheckAggregates(ParseState *pstate, Query *qry, Node *qual);
-extern Aggref *ParseAgg(ParseState *pstate, List *aggname, Oid basetype,
-		 List *args, bool agg_star, bool agg_distinct);
-extern void agg_error(const char *caller, List *aggname, Oid basetypeID);
 
 #endif   /* PARSE_AGG_H */
diff --git a/src/include/parser/parse_coerce.h b/src/include/parser/parse_coerce.h
index 1c503aed653..47ce9b61c16 100644
--- a/src/include/parser/parse_coerce.h
+++ b/src/include/parser/parse_coerce.h
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: parse_coerce.h,v 1.41 2002/03/20 19:45:07 tgl Exp $
+ * $Id: parse_coerce.h,v 1.42 2002/04/11 20:00:15 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -38,9 +38,10 @@ extern bool IsBinaryCompatible(Oid type1, Oid type2);
 extern bool IsPreferredType(CATEGORY category, Oid type);
 extern CATEGORY TypeCategory(Oid type);
 
-extern bool can_coerce_type(int nargs, Oid *input_typeids, Oid *func_typeids);
+extern bool can_coerce_type(int nargs, Oid *input_typeids, Oid *func_typeids,
+							bool isExplicit);
 extern Node *coerce_type(ParseState *pstate, Node *node, Oid inputTypeId,
-			Oid targetTypeId, int32 atttypmod);
+			Oid targetTypeId, int32 atttypmod, bool isExplicit);
 extern Node *coerce_type_typmod(ParseState *pstate, Node *node,
 				   Oid targetTypeId, int32 atttypmod);
 
diff --git a/src/include/parser/parse_func.h b/src/include/parser/parse_func.h
index 3a7641e1de7..e6353be34e7 100644
--- a/src/include/parser/parse_func.h
+++ b/src/include/parser/parse_func.h
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: parse_func.h,v 1.38 2002/04/09 20:35:55 tgl Exp $
+ * $Id: parse_func.h,v 1.39 2002/04/11 20:00:15 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -42,7 +42,8 @@ typedef struct _CandidateList
 typedef enum
 {
 	FUNCDETAIL_NOTFOUND,		/* no suitable interpretation */
-	FUNCDETAIL_NORMAL,			/* found a matching function */
+	FUNCDETAIL_NORMAL,			/* found a matching regular function */
+	FUNCDETAIL_AGGREGATE,		/* found a matching aggregate function */
 	FUNCDETAIL_COERCION			/* it's a type coercion request */
 } FuncDetailCode;
 
@@ -62,6 +63,9 @@ extern void func_error(const char *caller, List *funcname,
 					   int nargs, const Oid *argtypes,
 					   const char *msg);
 
+extern Oid	find_aggregate_func(const char *caller, List *aggname,
+								Oid basetype);
+
 extern Oid	LookupFuncName(List *funcname, int nargs, const Oid *argtypes);
 extern Oid	LookupFuncNameTypeNames(List *funcname, List *argtypes,
 									bool opaqueOK, const char *caller);
diff --git a/src/include/parser/parse_target.h b/src/include/parser/parse_target.h
index a326da72e40..2e5370a4527 100644
--- a/src/include/parser/parse_target.h
+++ b/src/include/parser/parse_target.h
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: parse_target.h,v 1.23 2001/11/05 17:46:35 momjian Exp $
+ * $Id: parse_target.h,v 1.24 2002/04/11 20:00:16 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -24,7 +24,8 @@ extern void updateTargetListEntry(ParseState *pstate, TargetEntry *tle,
 					  char *colname, int attrno,
 					  List *indirection);
 extern Node *CoerceTargetExpr(ParseState *pstate, Node *expr,
-				 Oid type_id, Oid attrtype, int32 attrtypmod);
+							  Oid type_id, Oid attrtype, int32 attrtypmod,
+							  bool isExplicit);
 extern List *checkInsertTargets(ParseState *pstate, List *cols,
 				   List **attrnos);
 
diff --git a/src/include/utils/acl.h b/src/include/utils/acl.h
index 2a862af4bdd..16e43f267ed 100644
--- a/src/include/utils/acl.h
+++ b/src/include/utils/acl.h
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: acl.h,v 1.41 2002/03/21 23:27:25 tgl Exp $
+ * $Id: acl.h,v 1.42 2002/04/11 20:00:17 tgl Exp $
  *
  * NOTES
  *	  For backward-compatibility purposes we have to allow there
@@ -209,6 +209,5 @@ extern bool pg_class_ownercheck(Oid class_oid, Oid userid);
 extern bool pg_type_ownercheck(Oid type_oid, Oid userid);
 extern bool pg_oper_ownercheck(Oid oper_oid, Oid userid);
 extern bool pg_proc_ownercheck(Oid proc_oid, Oid userid);
-extern bool pg_aggr_ownercheck(Oid aggr_oid, Oid userid);
 
 #endif   /* ACL_H */
diff --git a/src/include/utils/builtins.h b/src/include/utils/builtins.h
index 342aa4e99f6..b38f4429cb0 100644
--- a/src/include/utils/builtins.h
+++ b/src/include/utils/builtins.h
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: builtins.h,v 1.175 2002/04/01 03:34:27 tgl Exp $
+ * $Id: builtins.h,v 1.176 2002/04/11 20:00:17 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -363,7 +363,6 @@ extern Datum bpcharout(PG_FUNCTION_ARGS);
 extern Datum bpchar(PG_FUNCTION_ARGS);
 extern Datum _bpchar(PG_FUNCTION_ARGS);
 extern Datum char_bpchar(PG_FUNCTION_ARGS);
-extern Datum bpchar_char(PG_FUNCTION_ARGS);
 extern Datum name_bpchar(PG_FUNCTION_ARGS);
 extern Datum bpchar_name(PG_FUNCTION_ARGS);
 extern Datum bpchareq(PG_FUNCTION_ARGS);
diff --git a/src/include/utils/syscache.h b/src/include/utils/syscache.h
index 365d9efdb5d..7d31a57be61 100644
--- a/src/include/utils/syscache.h
+++ b/src/include/utils/syscache.h
@@ -9,7 +9,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: syscache.h,v 1.43 2002/04/09 20:35:55 tgl Exp $
+ * $Id: syscache.h,v 1.44 2002/04/11 20:00:17 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -28,37 +28,36 @@
  *		Keep them in alphabetical order.
  */
 
-#define AGGNAME			0
-#define AGGOID			1
-#define AMNAME			2
-#define AMOID			3
-#define AMOPOPID		4
-#define AMOPSTRATEGY	5
-#define AMPROCNUM		6
-#define ATTNAME			7
-#define ATTNUM			8
-#define CLAAMNAME		9
-#define CLAOID			10
-#define GRONAME			11
-#define GROSYSID		12
-#define INDEXRELID		13
-#define INHRELID		14
-#define LANGNAME		15
-#define LANGOID			16
-#define NAMESPACENAME	17
-#define NAMESPACEOID	18
-#define OPERNAME		19
-#define OPEROID			20
-#define PROCNAMENSP		21
-#define PROCOID			22
-#define RELNAMENSP		23
-#define RELOID			24
-#define RULENAME		25
-#define SHADOWNAME		26
-#define SHADOWSYSID		27
-#define STATRELATT		28
-#define TYPENAMENSP		29
-#define TYPEOID			30
+#define AGGFNOID		0
+#define AMNAME			1
+#define AMOID			2
+#define AMOPOPID		3
+#define AMOPSTRATEGY	4
+#define AMPROCNUM		5
+#define ATTNAME			6
+#define ATTNUM			7
+#define CLAAMNAME		8
+#define CLAOID			9
+#define GRONAME			10
+#define GROSYSID		11
+#define INDEXRELID		12
+#define INHRELID		13
+#define LANGNAME		14
+#define LANGOID			15
+#define NAMESPACENAME	16
+#define NAMESPACEOID	17
+#define OPERNAME		18
+#define OPEROID			19
+#define PROCNAMENSP		20
+#define PROCOID			21
+#define RELNAMENSP		22
+#define RELOID			23
+#define RULENAME		24
+#define SHADOWNAME		25
+#define SHADOWSYSID		26
+#define STATRELATT		27
+#define TYPENAMENSP		28
+#define TYPEOID			29
 
 
 extern void InitCatalogCache(void);
diff --git a/src/interfaces/python/tutorial/syscat.py b/src/interfaces/python/tutorial/syscat.py
index 179f3ef6a3e..d2c6e44657e 100755
--- a/src/interfaces/python/tutorial/syscat.py
+++ b/src/interfaces/python/tutorial/syscat.py
@@ -101,10 +101,11 @@ def list_lang_func(pgcnx, l):
 
 # lists all the aggregate functions and the type to which they can be applied
 def list_agg_func(pgcnx):
-	result = pgcnx.query("""SELECT a.aggname, t.typname
-		FROM pg_aggregate a, pg_type t
-		WHERE a.aggbasetype = t.oid
-		ORDER BY aggname, typname""")
+	result = pgcnx.query("""SELECT p.proname, t.typname
+		FROM pg_aggregate a, pg_proc p, pg_type t
+		WHERE a.aggfnoid = p.oid
+			and p.proargtypes[0] = t.oid
+		ORDER BY proname, typname""")
 	return result
 
 # lists all the operator classes that can be used with each access method as
diff --git a/src/test/regress/expected/alter_table.out b/src/test/regress/expected/alter_table.out
index 5d7934fa91c..cbf0680a42f 100644
--- a/src/test/regress/expected/alter_table.out
+++ b/src/test/regress/expected/alter_table.out
@@ -292,8 +292,8 @@ ALTER TABLE foo_seq RENAME TO foo_seq_new;
 SELECT * FROM foo_seq_new;
  sequence_name | last_value | increment_by |      max_value      | min_value | cache_value | log_cnt | is_cycled | is_called 
 ---------------+------------+--------------+---------------------+-----------+-------------+---------+-----------+-----------
-  foo_seq       |          1 |            1 | 9223372036854775807 |         1 |     1 |       1 | f         | f
-  (1 row)
+ foo_seq       |          1 |            1 | 9223372036854775807 |         1 |           1 |       1 | f         | f
+(1 row)
 
 DROP SEQUENCE foo_seq_new;
 -- FOREIGN KEY CONSTRAINT adding TEST
@@ -345,17 +345,17 @@ DROP TABLE tmp2;
 -- is run in parallel with foreign_key.sql.
 CREATE TEMP TABLE PKTABLE (ptest1 int PRIMARY KEY);
 NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
-CREATE TEMP TABLE FKTABLE (ftest1 text);
--- This next should fail, because text=int does not exist
+CREATE TEMP TABLE FKTABLE (ftest1 inet);
+-- This next should fail, because inet=int does not exist
 ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1) references pktable;
 NOTICE:  ALTER TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR:  Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR:  Unable to identify an operator '=' for types 'inet' and 'integer'
 	You will have to retype this query using an explicit cast
 -- This should also fail for the same reason, but here we
 -- give the column name
 ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1) references pktable(ptest1);
 NOTICE:  ALTER TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR:  Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR:  Unable to identify an operator '=' for types 'inet' and 'integer'
 	You will have to retype this query using an explicit cast
 -- This should succeed, even though they are different types
 -- because varchar=int does exist
@@ -370,7 +370,7 @@ DROP TABLE pktable;
 NOTICE:  DROP TABLE implicitly drops referential integrity trigger from table "fktable"
 NOTICE:  DROP TABLE implicitly drops referential integrity trigger from table "fktable"
 DROP TABLE fktable;
-CREATE TEMP TABLE PKTABLE (ptest1 int, ptest2 text,
+CREATE TEMP TABLE PKTABLE (ptest1 int, ptest2 inet,
                            PRIMARY KEY(ptest1, ptest2));
 NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
 -- This should fail, because we just chose really odd types
@@ -389,17 +389,17 @@ ERROR:  Unable to identify an operator '=' for types 'cidr' and 'integer'
 	You will have to retype this query using an explicit cast
 -- This fails because we mixed up the column ordering
 DROP TABLE FKTABLE;
-CREATE TEMP TABLE FKTABLE (ftest1 int, ftest2 text);
+CREATE TEMP TABLE FKTABLE (ftest1 int, ftest2 inet);
 ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2)
      references pktable(ptest2, ptest1);
 NOTICE:  ALTER TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR:  Unable to identify an operator '=' for types 'integer' and 'text'
+ERROR:  Unable to identify an operator '=' for types 'integer' and 'inet'
 	You will have to retype this query using an explicit cast
 -- As does this...
 ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest2, ftest1)
      references pktable(ptest1, ptest2);
 NOTICE:  ALTER TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR:  Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR:  Unable to identify an operator '=' for types 'inet' and 'integer'
 	You will have to retype this query using an explicit cast
 -- temp tables should go away by themselves, need not drop them.
 -- test check constraint adding
diff --git a/src/test/regress/expected/foreign_key.out b/src/test/regress/expected/foreign_key.out
index fb59fe233c3..0d0b6a6cb83 100644
--- a/src/test/regress/expected/foreign_key.out
+++ b/src/test/regress/expected/foreign_key.out
@@ -718,16 +718,16 @@ DROP TABLE PKTABLE;
 -- Basic one column, two table setup 
 CREATE TABLE PKTABLE (ptest1 int PRIMARY KEY);
 NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
--- This next should fail, because text=int does not exist
-CREATE TABLE FKTABLE (ftest1 text REFERENCES pktable);
+-- This next should fail, because inet=int does not exist
+CREATE TABLE FKTABLE (ftest1 inet REFERENCES pktable);
 NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR:  Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR:  Unable to identify an operator '=' for types 'inet' and 'integer'
 	You will have to retype this query using an explicit cast
 -- This should also fail for the same reason, but here we
 -- give the column name
-CREATE TABLE FKTABLE (ftest1 text REFERENCES pktable(ptest1));
+CREATE TABLE FKTABLE (ftest1 inet REFERENCES pktable(ptest1));
 NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR:  Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR:  Unable to identify an operator '=' for types 'inet' and 'integer'
 	You will have to retype this query using an explicit cast
 -- This should succeed, even though they are different types
 -- because varchar=int does exist
@@ -744,7 +744,7 @@ NOTICE:  DROP TABLE implicitly drops referential integrity trigger from table "p
 NOTICE:  DROP TABLE implicitly drops referential integrity trigger from table "pktable"
 DROP TABLE PKTABLE;
 -- Two columns, two tables
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, PRIMARY KEY(ptest1, ptest2));
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, PRIMARY KEY(ptest1, ptest2));
 NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
 -- This should fail, because we just chose really odd types
 CREATE TABLE FKTABLE (ftest1 cidr, ftest2 datetime, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable);
@@ -757,28 +757,28 @@ NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
 ERROR:  Unable to identify an operator '=' for types 'cidr' and 'integer'
 	You will have to retype this query using an explicit cast
 -- This fails because we mixed up the column ordering
-CREATE TABLE FKTABLE (ftest1 int, ftest2 text, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable);
+CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable);
 NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR:  Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR:  Unable to identify an operator '=' for types 'inet' and 'integer'
 	You will have to retype this query using an explicit cast
 -- As does this...
-CREATE TABLE FKTABLE (ftest1 int, ftest2 text, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable(ptest1, ptest2));
+CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable(ptest1, ptest2));
 NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR:  Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR:  Unable to identify an operator '=' for types 'inet' and 'integer'
 	You will have to retype this query using an explicit cast
 -- And again..
-CREATE TABLE FKTABLE (ftest1 int, ftest2 text, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest2, ptest1));
+CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest2, ptest1));
 NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR:  Unable to identify an operator '=' for types 'integer' and 'text'
+ERROR:  Unable to identify an operator '=' for types 'integer' and 'inet'
 	You will have to retype this query using an explicit cast
 -- This works...
-CREATE TABLE FKTABLE (ftest1 int, ftest2 text, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable(ptest2, ptest1));
+CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable(ptest2, ptest1));
 NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
 DROP TABLE FKTABLE;
 NOTICE:  DROP TABLE implicitly drops referential integrity trigger from table "pktable"
 NOTICE:  DROP TABLE implicitly drops referential integrity trigger from table "pktable"
 -- As does this
-CREATE TABLE FKTABLE (ftest1 int, ftest2 text, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest1, ptest2));
+CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest1, ptest2));
 NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
 DROP TABLE FKTABLE;
 NOTICE:  DROP TABLE implicitly drops referential integrity trigger from table "pktable"
@@ -786,37 +786,37 @@ NOTICE:  DROP TABLE implicitly drops referential integrity trigger from table "p
 DROP TABLE PKTABLE;
 -- Two columns, same table
 -- Make sure this still works...
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
 ptest4) REFERENCES pktable(ptest1, ptest2));
 NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
 NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
 DROP TABLE PKTABLE;
 -- And this, 
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
 ptest4) REFERENCES pktable);
 NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
 NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
 DROP TABLE PKTABLE;
 -- This shouldn't (mixed up columns)
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
 ptest4) REFERENCES pktable(ptest2, ptest1));
 NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
 NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR:  Unable to identify an operator '=' for types 'integer' and 'text'
+ERROR:  Unable to identify an operator '=' for types 'integer' and 'inet'
 	You will have to retype this query using an explicit cast
 -- Nor should this... (same reason, we have 4,3 referencing 1,2 which mismatches types
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest4,
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest4,
 ptest3) REFERENCES pktable(ptest1, ptest2));
 NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
 NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR:  Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR:  Unable to identify an operator '=' for types 'inet' and 'integer'
 	You will have to retype this query using an explicit cast
 -- Not this one either... Same as the last one except we didn't defined the columns being referenced.
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest4,
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest4,
 ptest3) REFERENCES pktable);
 NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
 NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR:  Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR:  Unable to identify an operator '=' for types 'inet' and 'integer'
 	You will have to retype this query using an explicit cast
 --
 -- Now some cases with inheritance
@@ -907,7 +907,7 @@ drop table pktable;
 drop table pktable_base;
 -- 2 columns (2 tables), mismatched types
 create table pktable_base(base1 int not null);
-create table pktable(ptest1 text, primary key(base1, ptest1)) inherits (pktable_base);
+create table pktable(ptest1 inet, primary key(base1, ptest1)) inherits (pktable_base);
 NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
 -- just generally bad types (with and without column references on the referenced table)
 create table fktable(ftest1 cidr, ftest2 int[], foreign key (ftest1, ftest2) references pktable);
@@ -919,45 +919,45 @@ NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
 ERROR:  Unable to identify an operator '=' for types 'cidr' and 'integer'
 	You will have to retype this query using an explicit cast
 -- let's mix up which columns reference which
-create table fktable(ftest1 int, ftest2 text, foreign key(ftest2, ftest1) references pktable);
+create table fktable(ftest1 int, ftest2 inet, foreign key(ftest2, ftest1) references pktable);
 NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR:  Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR:  Unable to identify an operator '=' for types 'inet' and 'integer'
 	You will have to retype this query using an explicit cast
-create table fktable(ftest1 int, ftest2 text, foreign key(ftest2, ftest1) references pktable(base1, ptest1));
+create table fktable(ftest1 int, ftest2 inet, foreign key(ftest2, ftest1) references pktable(base1, ptest1));
 NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR:  Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR:  Unable to identify an operator '=' for types 'inet' and 'integer'
 	You will have to retype this query using an explicit cast
-create table fktable(ftest1 int, ftest2 text, foreign key(ftest1, ftest2) references pktable(ptest1, base1));
+create table fktable(ftest1 int, ftest2 inet, foreign key(ftest1, ftest2) references pktable(ptest1, base1));
 NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR:  Unable to identify an operator '=' for types 'integer' and 'text'
+ERROR:  Unable to identify an operator '=' for types 'integer' and 'inet'
 	You will have to retype this query using an explicit cast
 drop table pktable;
 drop table pktable_base;
 -- 2 columns (1 table), mismatched types
 create table pktable_base(base1 int not null, base2 int);
-create table pktable(ptest1 text, ptest2 text[], primary key(base1, ptest1), foreign key(base2, ptest2) references
+create table pktable(ptest1 inet, ptest2 inet[], primary key(base1, ptest1), foreign key(base2, ptest2) references
                                              pktable(base1, ptest1)) inherits (pktable_base);
 NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
 NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR:  Unable to identify an operator '=' for types 'text[]' and 'text'
+ERROR:  Unable to identify an operator '=' for types 'inet[]' and 'inet'
 	You will have to retype this query using an explicit cast
-create table pktable(ptest1 text, ptest2 text, primary key(base1, ptest1), foreign key(base2, ptest2) references
+create table pktable(ptest1 inet, ptest2 inet, primary key(base1, ptest1), foreign key(base2, ptest2) references
                                              pktable(ptest1, base1)) inherits (pktable_base);
 NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
 NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR:  Unable to identify an operator '=' for types 'integer' and 'text'
+ERROR:  Unable to identify an operator '=' for types 'integer' and 'inet'
 	You will have to retype this query using an explicit cast
-create table pktable(ptest1 text, ptest2 text, primary key(base1, ptest1), foreign key(ptest2, base2) references
+create table pktable(ptest1 inet, ptest2 inet, primary key(base1, ptest1), foreign key(ptest2, base2) references
                                              pktable(base1, ptest1)) inherits (pktable_base);
 NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
 NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR:  Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR:  Unable to identify an operator '=' for types 'inet' and 'integer'
 	You will have to retype this query using an explicit cast
-create table pktable(ptest1 text, ptest2 text, primary key(base1, ptest1), foreign key(ptest2, base2) references
+create table pktable(ptest1 inet, ptest2 inet, primary key(base1, ptest1), foreign key(ptest2, base2) references
                                              pktable(base1, ptest1)) inherits (pktable_base);
 NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
 NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR:  Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR:  Unable to identify an operator '=' for types 'inet' and 'integer'
 	You will have to retype this query using an explicit cast
 drop table pktable;
 ERROR:  table "pktable" does not exist
diff --git a/src/test/regress/expected/oidjoins.out b/src/test/regress/expected/oidjoins.out
index 933e29c8495..21c1c519f26 100644
--- a/src/test/regress/expected/oidjoins.out
+++ b/src/test/regress/expected/oidjoins.out
@@ -1,6 +1,14 @@
 --
 -- This is created by pgsql/contrib/findoidjoins/make_oidjoin_check
 --
+SELECT	ctid, pg_aggregate.aggfnoid 
+FROM	pg_aggregate 
+WHERE	pg_aggregate.aggfnoid != 0 AND 
+	NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_aggregate.aggfnoid);
+ ctid | aggfnoid 
+------+----------
+(0 rows)
+
 SELECT	ctid, pg_aggregate.aggtransfn 
 FROM	pg_aggregate 
 WHERE	pg_aggregate.aggtransfn != 0 AND 
@@ -17,14 +25,6 @@ WHERE	pg_aggregate.aggfinalfn != 0 AND
 ------+------------
 (0 rows)
 
-SELECT	ctid, pg_aggregate.aggbasetype 
-FROM	pg_aggregate 
-WHERE	pg_aggregate.aggbasetype != 0 AND 
-	NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggbasetype);
- ctid | aggbasetype 
-------+-------------
-(0 rows)
-
 SELECT	ctid, pg_aggregate.aggtranstype 
 FROM	pg_aggregate 
 WHERE	pg_aggregate.aggtranstype != 0 AND 
@@ -33,14 +33,6 @@ WHERE	pg_aggregate.aggtranstype != 0 AND
 ------+--------------
 (0 rows)
 
-SELECT	ctid, pg_aggregate.aggfinaltype 
-FROM	pg_aggregate 
-WHERE	pg_aggregate.aggfinaltype != 0 AND 
-	NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggfinaltype);
- ctid | aggfinaltype 
-------+--------------
-(0 rows)
-
 SELECT	ctid, pg_am.amgettuple 
 FROM	pg_am 
 WHERE	pg_am.amgettuple != 0 AND 
diff --git a/src/test/regress/expected/opr_sanity.out b/src/test/regress/expected/opr_sanity.out
index c56ec07721b..e7712b13bff 100644
--- a/src/test/regress/expected/opr_sanity.out
+++ b/src/test/regress/expected/opr_sanity.out
@@ -48,7 +48,7 @@ WHERE p1.oid != p2.oid AND
 -----+---------+-----+---------
 (0 rows)
 
--- Considering only built-in procs (prolang = 11/12), look for multiple uses
+-- Considering only built-in procs (prolang = 12), look for multiple uses
 -- of the same internal function (ie, matching prosrc fields).  It's OK to
 -- have several entries with different pronames for the same internal function,
 -- but conflicts in the number of arguments and other critical items should
@@ -57,14 +57,14 @@ SELECT p1.oid, p1.proname, p2.oid, p2.proname
 FROM pg_proc AS p1, pg_proc AS p2
 WHERE p1.oid != p2.oid AND
     p1.prosrc = p2.prosrc AND
-    (p1.prolang = 11 OR p1.prolang = 12) AND
-    (p2.prolang = 11 OR p2.prolang = 12) AND
+    p1.prolang = 12 AND p2.prolang = 12 AND
     (p1.prolang != p2.prolang OR
-     p1.proisinh != p2.proisinh OR
+     p1.proisagg != p2.proisagg OR
      p1.proistrusted != p2.proistrusted OR
+     p1.proisstrict != p2.proisstrict OR
+     p1.proretset != p2.proretset OR
      p1.provolatile != p2.provolatile OR
-     p1.pronargs != p2.pronargs OR
-     p1.proretset != p2.proretset);
+     p1.pronargs != p2.pronargs);
  oid | proname | oid | proname 
 -----+---------+-----+---------
 (0 rows)
@@ -75,12 +75,14 @@ WHERE p1.oid != p2.oid AND
 -- That's not wrong, necessarily, but we make lists of all the types being
 -- so treated.  Note that the expected output of this part of the test will
 -- need to be modified whenever new pairs of types are made binary-equivalent!
+-- Note: ignore aggregate functions here, since they all point to the same
+-- dummy built-in function.
 SELECT DISTINCT p1.prorettype, p2.prorettype
 FROM pg_proc AS p1, pg_proc AS p2
 WHERE p1.oid != p2.oid AND
     p1.prosrc = p2.prosrc AND
-    (p1.prolang = 11 OR p1.prolang = 12) AND
-    (p2.prolang = 11 OR p2.prolang = 12) AND
+    p1.prolang = 12 AND p2.prolang = 12 AND
+    NOT p1.proisagg AND NOT p2.proisagg AND
     (p1.prorettype < p2.prorettype);
  prorettype | prorettype 
 ------------+------------
@@ -92,8 +94,8 @@ SELECT DISTINCT p1.proargtypes[0], p2.proargtypes[0]
 FROM pg_proc AS p1, pg_proc AS p2
 WHERE p1.oid != p2.oid AND
     p1.prosrc = p2.prosrc AND
-    (p1.prolang = 11 OR p1.prolang = 12) AND
-    (p2.prolang = 11 OR p2.prolang = 12) AND
+    p1.prolang = 12 AND p2.prolang = 12 AND
+    NOT p1.proisagg AND NOT p2.proisagg AND
     (p1.proargtypes[0] < p2.proargtypes[0]);
  proargtypes | proargtypes 
 -------------+-------------
@@ -106,8 +108,8 @@ SELECT DISTINCT p1.proargtypes[1], p2.proargtypes[1]
 FROM pg_proc AS p1, pg_proc AS p2
 WHERE p1.oid != p2.oid AND
     p1.prosrc = p2.prosrc AND
-    (p1.prolang = 11 OR p1.prolang = 12) AND
-    (p2.prolang = 11 OR p2.prolang = 12) AND
+    p1.prolang = 12 AND p2.prolang = 12 AND
+    NOT p1.proisagg AND NOT p2.proisagg AND
     (p1.proargtypes[1] < p2.proargtypes[1]);
  proargtypes | proargtypes 
 -------------+-------------
@@ -119,8 +121,8 @@ SELECT DISTINCT p1.proargtypes[2], p2.proargtypes[2]
 FROM pg_proc AS p1, pg_proc AS p2
 WHERE p1.oid != p2.oid AND
     p1.prosrc = p2.prosrc AND
-    (p1.prolang = 11 OR p1.prolang = 12) AND
-    (p2.prolang = 11 OR p2.prolang = 12) AND
+    p1.prolang = 12 AND p2.prolang = 12 AND
+    NOT p1.proisagg AND NOT p2.proisagg AND
     (p1.proargtypes[2] < p2.proargtypes[2]);
  proargtypes | proargtypes 
 -------------+-------------
@@ -131,8 +133,8 @@ SELECT DISTINCT p1.proargtypes[3], p2.proargtypes[3]
 FROM pg_proc AS p1, pg_proc AS p2
 WHERE p1.oid != p2.oid AND
     p1.prosrc = p2.prosrc AND
-    (p1.prolang = 11 OR p1.prolang = 12) AND
-    (p2.prolang = 11 OR p2.prolang = 12) AND
+    p1.prolang = 12 AND p2.prolang = 12 AND
+    NOT p1.proisagg AND NOT p2.proisagg AND
     (p1.proargtypes[3] < p2.proargtypes[3]);
  proargtypes | proargtypes 
 -------------+-------------
@@ -143,8 +145,8 @@ SELECT DISTINCT p1.proargtypes[4], p2.proargtypes[4]
 FROM pg_proc AS p1, pg_proc AS p2
 WHERE p1.oid != p2.oid AND
     p1.prosrc = p2.prosrc AND
-    (p1.prolang = 11 OR p1.prolang = 12) AND
-    (p2.prolang = 11 OR p2.prolang = 12) AND
+    p1.prolang = 12 AND p2.prolang = 12 AND
+    NOT p1.proisagg AND NOT p2.proisagg AND
     (p1.proargtypes[4] < p2.proargtypes[4]);
  proargtypes | proargtypes 
 -------------+-------------
@@ -154,8 +156,8 @@ SELECT DISTINCT p1.proargtypes[5], p2.proargtypes[5]
 FROM pg_proc AS p1, pg_proc AS p2
 WHERE p1.oid != p2.oid AND
     p1.prosrc = p2.prosrc AND
-    (p1.prolang = 11 OR p1.prolang = 12) AND
-    (p2.prolang = 11 OR p2.prolang = 12) AND
+    p1.prolang = 12 AND p2.prolang = 12 AND
+    NOT p1.proisagg AND NOT p2.proisagg AND
     (p1.proargtypes[5] < p2.proargtypes[5]);
  proargtypes | proargtypes 
 -------------+-------------
@@ -165,8 +167,8 @@ SELECT DISTINCT p1.proargtypes[6], p2.proargtypes[6]
 FROM pg_proc AS p1, pg_proc AS p2
 WHERE p1.oid != p2.oid AND
     p1.prosrc = p2.prosrc AND
-    (p1.prolang = 11 OR p1.prolang = 12) AND
-    (p2.prolang = 11 OR p2.prolang = 12) AND
+    p1.prolang = 12 AND p2.prolang = 12 AND
+    NOT p1.proisagg AND NOT p2.proisagg AND
     (p1.proargtypes[6] < p2.proargtypes[6]);
  proargtypes | proargtypes 
 -------------+-------------
@@ -176,13 +178,29 @@ SELECT DISTINCT p1.proargtypes[7], p2.proargtypes[7]
 FROM pg_proc AS p1, pg_proc AS p2
 WHERE p1.oid != p2.oid AND
     p1.prosrc = p2.prosrc AND
-    (p1.prolang = 11 OR p1.prolang = 12) AND
-    (p2.prolang = 11 OR p2.prolang = 12) AND
+    p1.prolang = 12 AND p2.prolang = 12 AND
+    NOT p1.proisagg AND NOT p2.proisagg AND
     (p1.proargtypes[7] < p2.proargtypes[7]);
  proargtypes | proargtypes 
 -------------+-------------
 (0 rows)
 
+-- If a proc is marked as an implicit cast, then it should be something that
+-- the system might actually use as a cast function: name same as the name
+-- of its output type, and either one arg that's a different type, or two
+-- args where the first is the same as the output type and the second is int4.
+SELECT p1.oid, p1.proname
+FROM pg_proc as p1
+WHERE p1.proimplicit AND
+    (NOT EXISTS (SELECT 1 FROM pg_type t WHERE t.oid = p1.prorettype AND
+                 t.typname = p1.proname) OR
+     NOT ((p1.pronargs = 1 AND p1.proargtypes[0] != prorettype) OR
+          (p1.pronargs = 2 AND p1.proargtypes[0] = prorettype AND
+           p1.proargtypes[1] = 23)));
+ oid | proname 
+-----+---------
+(0 rows)
+
 -- **************** pg_operator ****************
 -- Look for illegal values in pg_operator fields.
 SELECT p1.oid, p1.oprname
@@ -238,6 +256,7 @@ WHERE p1.oprcom = p2.oid AND
 -- single-operand operators.
 -- We expect that B will always say that B.oprnegate = A as well; that's not
 -- inherently essential, but it would be inefficient not to mark it so.
+-- Also, A and B had better not be the same operator.
 SELECT p1.oid, p1.oprcode, p2.oid, p2.oprcode
 FROM pg_operator AS p1, pg_operator AS p2
 WHERE p1.oprnegate = p2.oid AND
@@ -246,7 +265,8 @@ WHERE p1.oprnegate = p2.oid AND
      p1.oprright != p2.oprright OR
      p1.oprresult != 16 OR
      p2.oprresult != 16 OR
-     p1.oid != p2.oprnegate);
+     p1.oid != p2.oprnegate OR
+     p1.oid = p2.oid);
  oid | oprcode | oid | oprcode 
 -----+---------+-----+---------
 (0 rows)
@@ -455,19 +475,38 @@ WHERE p1.oprjoin = p2.oid AND
 
 -- **************** pg_aggregate ****************
 -- Look for illegal values in pg_aggregate fields.
-SELECT p1.oid, p1.aggname
+SELECT ctid, aggfnoid::oid
 FROM pg_aggregate as p1
-WHERE aggtransfn = 0 OR aggtranstype = 0 OR aggfinaltype = 0;
- oid | aggname 
+WHERE aggfnoid = 0 OR aggtransfn = 0 OR aggtranstype = 0;
+ ctid | aggfnoid 
+------+----------
+(0 rows)
+
+-- Make sure the matching pg_proc entry is sensible, too.
+SELECT a.aggfnoid::oid, p.proname
+FROM pg_aggregate as a, pg_proc as p
+WHERE a.aggfnoid = p.oid AND
+    (NOT p.proisagg OR p.pronargs != 1 OR p.proretset);
+ aggfnoid | proname 
+----------+---------
+(0 rows)
+
+-- Make sure there are no proisagg pg_proc entries without matches.
+SELECT oid, proname
+FROM pg_proc as p
+WHERE p.proisagg AND
+    NOT EXISTS (SELECT 1 FROM pg_aggregate a WHERE a.aggfnoid = p.oid);
+ oid | proname 
 -----+---------
 (0 rows)
 
 -- If there is no finalfn then the output type must be the transtype.
-SELECT p1.oid, p1.aggname
-FROM pg_aggregate as p1
-WHERE p1.aggfinalfn = 0 AND p1.aggfinaltype != p1.aggtranstype;
- oid | aggname 
------+---------
+SELECT a.aggfnoid::oid, p.proname
+FROM pg_aggregate as a, pg_proc as p
+WHERE a.aggfnoid = p.oid AND
+    a.aggfinalfn = 0 AND p.prorettype != a.aggtranstype;
+ aggfnoid | proname 
+----------+---------
 (0 rows)
 
 -- Cross-check transfn against its entry in pg_proc.
@@ -476,41 +515,44 @@ WHERE p1.aggfinalfn = 0 AND p1.aggfinaltype != p1.aggtranstype;
 -- implemented using int4larger/int4smaller.  Until we have
 -- some cleaner way of dealing with binary-equivalent types, just leave
 -- those two tuples in the expected output.
-SELECT p1.oid, p1.aggname, p2.oid, p2.proname
-FROM pg_aggregate AS p1, pg_proc AS p2
-WHERE p1.aggtransfn = p2.oid AND
+SELECT a.aggfnoid::oid, p.proname, p2.oid, p2.proname
+FROM pg_aggregate AS a, pg_proc AS p, pg_proc AS p2
+WHERE a.aggfnoid = p.oid AND
+    a.aggtransfn = p2.oid AND
     (p2.proretset OR
-     p1.aggtranstype != p2.prorettype OR
-     p1.aggtranstype != p2.proargtypes[0] OR
-     NOT ((p2.pronargs = 2 AND p1.aggbasetype = p2.proargtypes[1]) OR
-          (p2.pronargs = 1 AND p1.aggbasetype = 0)));
-  oid  | aggname | oid |   proname   
--------+---------+-----+-------------
- 10021 | max     | 768 | int4larger
- 10037 | min     | 769 | int4smaller
+     a.aggtranstype != p2.prorettype OR
+     a.aggtranstype != p2.proargtypes[0] OR
+     NOT ((p2.pronargs = 2 AND p.proargtypes[0] = p2.proargtypes[1]) OR
+          (p2.pronargs = 1 AND p.proargtypes[0] = 0)));
+ aggfnoid | proname | oid |   proname   
+----------+---------+-----+-------------
+     2121 | max     | 768 | int4larger
+     2137 | min     | 769 | int4smaller
 (2 rows)
 
 -- Cross-check finalfn (if present) against its entry in pg_proc.
 -- FIXME: what about binary-compatible types?
-SELECT p1.oid, p1.aggname, p2.oid, p2.proname
-FROM pg_aggregate AS p1, pg_proc AS p2
-WHERE p1.aggfinalfn = p2.oid AND
-    (p2.proretset OR p1.aggfinaltype != p2.prorettype OR
+SELECT a.aggfnoid::oid, p.proname, p2.oid, p2.proname
+FROM pg_aggregate AS a, pg_proc AS p, pg_proc AS p2
+WHERE a.aggfnoid = p.oid AND
+    a.aggfinalfn = p2.oid AND
+    (p2.proretset OR p.prorettype != p2.prorettype OR
      p2.pronargs != 1 OR
-     p1.aggtranstype != p2.proargtypes[0]);
- oid | aggname | oid | proname 
------+---------+-----+---------
+     a.aggtranstype != p2.proargtypes[0]);
+ aggfnoid | proname | oid | proname 
+----------+---------+-----+---------
 (0 rows)
 
 -- If transfn is strict then either initval should be non-NULL, or
--- basetype should equal transtype so that the first non-null input
+-- input type should equal transtype so that the first non-null input
 -- can be assigned as the state value.
-SELECT p1.oid, p1.aggname, p2.oid, p2.proname
-FROM pg_aggregate AS p1, pg_proc AS p2
-WHERE p1.aggtransfn = p2.oid AND p2.proisstrict AND
-    p1.agginitval IS NULL AND p1.aggbasetype != p1.aggtranstype;
- oid | aggname | oid | proname 
------+---------+-----+---------
+SELECT a.aggfnoid::oid, p.proname, p2.oid, p2.proname
+FROM pg_aggregate AS a, pg_proc AS p, pg_proc AS p2
+WHERE a.aggfnoid = p.oid AND
+    a.aggtransfn = p2.oid AND p2.proisstrict AND
+    a.agginitval IS NULL AND p.proargtypes[0] != a.aggtranstype;
+ aggfnoid | proname | oid | proname 
+----------+---------+-----+---------
 (0 rows)
 
 -- **************** pg_opclass ****************
@@ -574,6 +616,17 @@ WHERE p1.amopopr = p2.oid AND
 -----------+---------+-----+---------
 (0 rows)
 
+-- Check that all operators linked to by opclass entries have selectivity
+-- estimators.  This is not absolutely required, but it seems a reasonable
+-- thing to insist on for all standard datatypes.
+SELECT p1.amopclaid, p1.amopopr, p2.oid, p2.oprname
+FROM pg_amop AS p1, pg_operator AS p2
+WHERE p1.amopopr = p2.oid AND
+    (p2.oprrest = 0 OR p2.oprjoin = 0);
+ amopclaid | amopopr | oid | oprname 
+-----------+---------+-----+---------
+(0 rows)
+
 -- Check that operator input types match the opclass
 SELECT p1.amopclaid, p1.amopopr, p2.oid, p2.oprname, p3.opcname
 FROM pg_amop AS p1, pg_operator AS p2, pg_opclass AS p3
diff --git a/src/test/regress/expected/rules.out b/src/test/regress/expected/rules.out
index 8633aa56708..8e0d9e3239b 100644
--- a/src/test/regress/expected/rules.out
+++ b/src/test/regress/expected/rules.out
@@ -1024,7 +1024,7 @@ SELECT * FROM shoe_ready WHERE total_avail >= 2;
                                         NEW.sl_name,
                                         NEW.sl_avail,
                                         'Al Bundy',
-                                        'epoch'::text
+                                        'epoch'
                                     );
 UPDATE shoelace_data SET sl_avail = 6 WHERE  sl_name = 'sl7';
 SELECT * FROM shoelace_log;
@@ -1308,8 +1308,8 @@ SELECT viewname, definition FROM pg_views ORDER BY viewname;
 
 SELECT tablename, rulename, definition FROM pg_rules 
 	ORDER BY tablename, rulename;
-   tablename   |    rulename     |                                                                                                                       definition                                                                                                                       
----------------+-----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+   tablename   |    rulename     |                                                                                                                          definition                                                                                                                           
+---------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  rtest_emp     | rtest_emp_del   | CREATE RULE rtest_emp_del AS ON DELETE TO rtest_emp DO INSERT INTO rtest_emplog (ename, who, "action", newsal, oldsal) VALUES (old.ename, "current_user"(), 'fired     '::bpchar, '$0.00'::money, old.salary);
  rtest_emp     | rtest_emp_ins   | CREATE RULE rtest_emp_ins AS ON INSERT TO rtest_emp DO INSERT INTO rtest_emplog (ename, who, "action", newsal, oldsal) VALUES (new.ename, "current_user"(), 'hired     '::bpchar, new.salary, '$0.00'::money);
  rtest_emp     | rtest_emp_upd   | CREATE RULE rtest_emp_upd AS ON UPDATE TO rtest_emp WHERE (new.salary <> old.salary) DO INSERT INTO rtest_emplog (ename, who, "action", newsal, oldsal) VALUES (new.ename, "current_user"(), 'honored   '::bpchar, new.salary, old.salary);
@@ -1335,7 +1335,7 @@ SELECT tablename, rulename, definition FROM pg_rules
  shoelace      | shoelace_del    | CREATE RULE shoelace_del AS ON DELETE TO shoelace DO INSTEAD DELETE FROM shoelace_data WHERE (shoelace_data.sl_name = old.sl_name);
  shoelace      | shoelace_ins    | CREATE RULE shoelace_ins AS ON INSERT TO shoelace DO INSTEAD INSERT INTO shoelace_data (sl_name, sl_avail, sl_color, sl_len, sl_unit) VALUES (new.sl_name, new.sl_avail, new.sl_color, new.sl_len, new.sl_unit);
  shoelace      | shoelace_upd    | CREATE RULE shoelace_upd AS ON UPDATE TO shoelace DO INSTEAD UPDATE shoelace_data SET sl_name = new.sl_name, sl_avail = new.sl_avail, sl_color = new.sl_color, sl_len = new.sl_len, sl_unit = new.sl_unit WHERE (shoelace_data.sl_name = old.sl_name);
- shoelace_data | log_shoelace    | CREATE RULE log_shoelace AS ON UPDATE TO shoelace_data WHERE (new.sl_avail <> old.sl_avail) DO INSERT INTO shoelace_log (sl_name, sl_avail, log_who, log_when) VALUES (new.sl_name, new.sl_avail, 'Al Bundy'::name, "timestamp"('epoch'::text));
+ shoelace_data | log_shoelace    | CREATE RULE log_shoelace AS ON UPDATE TO shoelace_data WHERE (new.sl_avail <> old.sl_avail) DO INSERT INTO shoelace_log (sl_name, sl_avail, log_who, log_when) VALUES (new.sl_name, new.sl_avail, 'Al Bundy'::name, 'Thu Jan 01 00:00:00 1970'::"timestamp");
  shoelace_ok   | shoelace_ok_ins | CREATE RULE shoelace_ok_ins AS ON INSERT TO shoelace_ok DO INSTEAD UPDATE shoelace SET sl_avail = (shoelace.sl_avail + new.ok_quant) WHERE (shoelace.sl_name = new.ok_name);
 (27 rows)
 
diff --git a/src/test/regress/sql/alter_table.sql b/src/test/regress/sql/alter_table.sql
index e23a75cebbe..477f4696b56 100644
--- a/src/test/regress/sql/alter_table.sql
+++ b/src/test/regress/sql/alter_table.sql
@@ -234,8 +234,8 @@ DROP TABLE tmp2;
 -- is run in parallel with foreign_key.sql.
 
 CREATE TEMP TABLE PKTABLE (ptest1 int PRIMARY KEY);
-CREATE TEMP TABLE FKTABLE (ftest1 text);
--- This next should fail, because text=int does not exist
+CREATE TEMP TABLE FKTABLE (ftest1 inet);
+-- This next should fail, because inet=int does not exist
 ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1) references pktable;
 -- This should also fail for the same reason, but here we
 -- give the column name
@@ -250,7 +250,7 @@ ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1) references pktable(ptest1);
 DROP TABLE pktable;
 DROP TABLE fktable;
 
-CREATE TEMP TABLE PKTABLE (ptest1 int, ptest2 text,
+CREATE TEMP TABLE PKTABLE (ptest1 int, ptest2 inet,
                            PRIMARY KEY(ptest1, ptest2));
 -- This should fail, because we just chose really odd types
 CREATE TEMP TABLE FKTABLE (ftest1 cidr, ftest2 datetime);
@@ -262,7 +262,7 @@ ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2)
      references pktable(ptest1, ptest2);
 -- This fails because we mixed up the column ordering
 DROP TABLE FKTABLE;
-CREATE TEMP TABLE FKTABLE (ftest1 int, ftest2 text);
+CREATE TEMP TABLE FKTABLE (ftest1 int, ftest2 inet);
 ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2)
      references pktable(ptest2, ptest1);
 -- As does this...
diff --git a/src/test/regress/sql/foreign_key.sql b/src/test/regress/sql/foreign_key.sql
index 587fd850f72..ce90c7958ba 100644
--- a/src/test/regress/sql/foreign_key.sql
+++ b/src/test/regress/sql/foreign_key.sql
@@ -431,11 +431,11 @@ DROP TABLE PKTABLE;
 --
 -- Basic one column, two table setup 
 CREATE TABLE PKTABLE (ptest1 int PRIMARY KEY);
--- This next should fail, because text=int does not exist
-CREATE TABLE FKTABLE (ftest1 text REFERENCES pktable);
+-- This next should fail, because inet=int does not exist
+CREATE TABLE FKTABLE (ftest1 inet REFERENCES pktable);
 -- This should also fail for the same reason, but here we
 -- give the column name
-CREATE TABLE FKTABLE (ftest1 text REFERENCES pktable(ptest1));
+CREATE TABLE FKTABLE (ftest1 inet REFERENCES pktable(ptest1));
 -- This should succeed, even though they are different types
 -- because varchar=int does exist
 CREATE TABLE FKTABLE (ftest1 varchar REFERENCES pktable);
@@ -446,42 +446,42 @@ DROP TABLE FKTABLE;
 DROP TABLE PKTABLE;
 
 -- Two columns, two tables
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, PRIMARY KEY(ptest1, ptest2));
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, PRIMARY KEY(ptest1, ptest2));
 -- This should fail, because we just chose really odd types
 CREATE TABLE FKTABLE (ftest1 cidr, ftest2 datetime, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable);
 -- Again, so should this...
 CREATE TABLE FKTABLE (ftest1 cidr, ftest2 datetime, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest1, ptest2));
 -- This fails because we mixed up the column ordering
-CREATE TABLE FKTABLE (ftest1 int, ftest2 text, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable);
+CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable);
 -- As does this...
-CREATE TABLE FKTABLE (ftest1 int, ftest2 text, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable(ptest1, ptest2));
+CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable(ptest1, ptest2));
 -- And again..
-CREATE TABLE FKTABLE (ftest1 int, ftest2 text, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest2, ptest1));
+CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest2, ptest1));
 -- This works...
-CREATE TABLE FKTABLE (ftest1 int, ftest2 text, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable(ptest2, ptest1));
+CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable(ptest2, ptest1));
 DROP TABLE FKTABLE;
 -- As does this
-CREATE TABLE FKTABLE (ftest1 int, ftest2 text, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest1, ptest2));
+CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest1, ptest2));
 DROP TABLE FKTABLE;
 DROP TABLE PKTABLE;
 
 -- Two columns, same table
 -- Make sure this still works...
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
 ptest4) REFERENCES pktable(ptest1, ptest2));
 DROP TABLE PKTABLE;
 -- And this, 
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
 ptest4) REFERENCES pktable);
 DROP TABLE PKTABLE;
 -- This shouldn't (mixed up columns)
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
 ptest4) REFERENCES pktable(ptest2, ptest1));
 -- Nor should this... (same reason, we have 4,3 referencing 1,2 which mismatches types
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest4,
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest4,
 ptest3) REFERENCES pktable(ptest1, ptest2));
 -- Not this one either... Same as the last one except we didn't defined the columns being referenced.
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest4,
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest4,
 ptest3) REFERENCES pktable);
 
 --
@@ -557,26 +557,26 @@ drop table pktable_base;
 
 -- 2 columns (2 tables), mismatched types
 create table pktable_base(base1 int not null);
-create table pktable(ptest1 text, primary key(base1, ptest1)) inherits (pktable_base);
+create table pktable(ptest1 inet, primary key(base1, ptest1)) inherits (pktable_base);
 -- just generally bad types (with and without column references on the referenced table)
 create table fktable(ftest1 cidr, ftest2 int[], foreign key (ftest1, ftest2) references pktable);
 create table fktable(ftest1 cidr, ftest2 int[], foreign key (ftest1, ftest2) references pktable(base1, ptest1));
 -- let's mix up which columns reference which
-create table fktable(ftest1 int, ftest2 text, foreign key(ftest2, ftest1) references pktable);
-create table fktable(ftest1 int, ftest2 text, foreign key(ftest2, ftest1) references pktable(base1, ptest1));
-create table fktable(ftest1 int, ftest2 text, foreign key(ftest1, ftest2) references pktable(ptest1, base1));
+create table fktable(ftest1 int, ftest2 inet, foreign key(ftest2, ftest1) references pktable);
+create table fktable(ftest1 int, ftest2 inet, foreign key(ftest2, ftest1) references pktable(base1, ptest1));
+create table fktable(ftest1 int, ftest2 inet, foreign key(ftest1, ftest2) references pktable(ptest1, base1));
 drop table pktable;
 drop table pktable_base;
 
 -- 2 columns (1 table), mismatched types
 create table pktable_base(base1 int not null, base2 int);
-create table pktable(ptest1 text, ptest2 text[], primary key(base1, ptest1), foreign key(base2, ptest2) references
+create table pktable(ptest1 inet, ptest2 inet[], primary key(base1, ptest1), foreign key(base2, ptest2) references
                                              pktable(base1, ptest1)) inherits (pktable_base);
-create table pktable(ptest1 text, ptest2 text, primary key(base1, ptest1), foreign key(base2, ptest2) references
+create table pktable(ptest1 inet, ptest2 inet, primary key(base1, ptest1), foreign key(base2, ptest2) references
                                              pktable(ptest1, base1)) inherits (pktable_base);
-create table pktable(ptest1 text, ptest2 text, primary key(base1, ptest1), foreign key(ptest2, base2) references
+create table pktable(ptest1 inet, ptest2 inet, primary key(base1, ptest1), foreign key(ptest2, base2) references
                                              pktable(base1, ptest1)) inherits (pktable_base);
-create table pktable(ptest1 text, ptest2 text, primary key(base1, ptest1), foreign key(ptest2, base2) references
+create table pktable(ptest1 inet, ptest2 inet, primary key(base1, ptest1), foreign key(ptest2, base2) references
                                              pktable(base1, ptest1)) inherits (pktable_base);
 drop table pktable;
 drop table pktable_base;
diff --git a/src/test/regress/sql/oidjoins.sql b/src/test/regress/sql/oidjoins.sql
index 3403215be60..bf638be3d13 100644
--- a/src/test/regress/sql/oidjoins.sql
+++ b/src/test/regress/sql/oidjoins.sql
@@ -1,6 +1,10 @@
 --
 -- This is created by pgsql/contrib/findoidjoins/make_oidjoin_check
 --
+SELECT	ctid, pg_aggregate.aggfnoid 
+FROM	pg_aggregate 
+WHERE	pg_aggregate.aggfnoid != 0 AND 
+	NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_aggregate.aggfnoid);
 SELECT	ctid, pg_aggregate.aggtransfn 
 FROM	pg_aggregate 
 WHERE	pg_aggregate.aggtransfn != 0 AND 
@@ -9,18 +13,10 @@ SELECT	ctid, pg_aggregate.aggfinalfn
 FROM	pg_aggregate 
 WHERE	pg_aggregate.aggfinalfn != 0 AND 
 	NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_aggregate.aggfinalfn);
-SELECT	ctid, pg_aggregate.aggbasetype 
-FROM	pg_aggregate 
-WHERE	pg_aggregate.aggbasetype != 0 AND 
-	NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggbasetype);
 SELECT	ctid, pg_aggregate.aggtranstype 
 FROM	pg_aggregate 
 WHERE	pg_aggregate.aggtranstype != 0 AND 
 	NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggtranstype);
-SELECT	ctid, pg_aggregate.aggfinaltype 
-FROM	pg_aggregate 
-WHERE	pg_aggregate.aggfinaltype != 0 AND 
-	NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggfinaltype);
 SELECT	ctid, pg_am.amgettuple 
 FROM	pg_am 
 WHERE	pg_am.amgettuple != 0 AND 
diff --git a/src/test/regress/sql/opr_sanity.sql b/src/test/regress/sql/opr_sanity.sql
index a470dff5050..70565e3252a 100644
--- a/src/test/regress/sql/opr_sanity.sql
+++ b/src/test/regress/sql/opr_sanity.sql
@@ -46,7 +46,7 @@ WHERE p1.oid != p2.oid AND
     p1.pronargs = p2.pronargs AND
     p1.proargtypes = p2.proargtypes;
 
--- Considering only built-in procs (prolang = 11/12), look for multiple uses
+-- Considering only built-in procs (prolang = 12), look for multiple uses
 -- of the same internal function (ie, matching prosrc fields).  It's OK to
 -- have several entries with different pronames for the same internal function,
 -- but conflicts in the number of arguments and other critical items should
@@ -56,14 +56,14 @@ SELECT p1.oid, p1.proname, p2.oid, p2.proname
 FROM pg_proc AS p1, pg_proc AS p2
 WHERE p1.oid != p2.oid AND
     p1.prosrc = p2.prosrc AND
-    (p1.prolang = 11 OR p1.prolang = 12) AND
-    (p2.prolang = 11 OR p2.prolang = 12) AND
+    p1.prolang = 12 AND p2.prolang = 12 AND
     (p1.prolang != p2.prolang OR
-     p1.proisinh != p2.proisinh OR
+     p1.proisagg != p2.proisagg OR
      p1.proistrusted != p2.proistrusted OR
+     p1.proisstrict != p2.proisstrict OR
+     p1.proretset != p2.proretset OR
      p1.provolatile != p2.provolatile OR
-     p1.pronargs != p2.pronargs OR
-     p1.proretset != p2.proretset);
+     p1.pronargs != p2.pronargs);
 
 -- Look for uses of different type OIDs in the argument/result type fields
 -- for different aliases of the same built-in function.
@@ -71,79 +71,95 @@ WHERE p1.oid != p2.oid AND
 -- That's not wrong, necessarily, but we make lists of all the types being
 -- so treated.  Note that the expected output of this part of the test will
 -- need to be modified whenever new pairs of types are made binary-equivalent!
+-- Note: ignore aggregate functions here, since they all point to the same
+-- dummy built-in function.
 
 SELECT DISTINCT p1.prorettype, p2.prorettype
 FROM pg_proc AS p1, pg_proc AS p2
 WHERE p1.oid != p2.oid AND
     p1.prosrc = p2.prosrc AND
-    (p1.prolang = 11 OR p1.prolang = 12) AND
-    (p2.prolang = 11 OR p2.prolang = 12) AND
+    p1.prolang = 12 AND p2.prolang = 12 AND
+    NOT p1.proisagg AND NOT p2.proisagg AND
     (p1.prorettype < p2.prorettype);
 
 SELECT DISTINCT p1.proargtypes[0], p2.proargtypes[0]
 FROM pg_proc AS p1, pg_proc AS p2
 WHERE p1.oid != p2.oid AND
     p1.prosrc = p2.prosrc AND
-    (p1.prolang = 11 OR p1.prolang = 12) AND
-    (p2.prolang = 11 OR p2.prolang = 12) AND
+    p1.prolang = 12 AND p2.prolang = 12 AND
+    NOT p1.proisagg AND NOT p2.proisagg AND
     (p1.proargtypes[0] < p2.proargtypes[0]);
 
 SELECT DISTINCT p1.proargtypes[1], p2.proargtypes[1]
 FROM pg_proc AS p1, pg_proc AS p2
 WHERE p1.oid != p2.oid AND
     p1.prosrc = p2.prosrc AND
-    (p1.prolang = 11 OR p1.prolang = 12) AND
-    (p2.prolang = 11 OR p2.prolang = 12) AND
+    p1.prolang = 12 AND p2.prolang = 12 AND
+    NOT p1.proisagg AND NOT p2.proisagg AND
     (p1.proargtypes[1] < p2.proargtypes[1]);
 
 SELECT DISTINCT p1.proargtypes[2], p2.proargtypes[2]
 FROM pg_proc AS p1, pg_proc AS p2
 WHERE p1.oid != p2.oid AND
     p1.prosrc = p2.prosrc AND
-    (p1.prolang = 11 OR p1.prolang = 12) AND
-    (p2.prolang = 11 OR p2.prolang = 12) AND
+    p1.prolang = 12 AND p2.prolang = 12 AND
+    NOT p1.proisagg AND NOT p2.proisagg AND
     (p1.proargtypes[2] < p2.proargtypes[2]);
 
 SELECT DISTINCT p1.proargtypes[3], p2.proargtypes[3]
 FROM pg_proc AS p1, pg_proc AS p2
 WHERE p1.oid != p2.oid AND
     p1.prosrc = p2.prosrc AND
-    (p1.prolang = 11 OR p1.prolang = 12) AND
-    (p2.prolang = 11 OR p2.prolang = 12) AND
+    p1.prolang = 12 AND p2.prolang = 12 AND
+    NOT p1.proisagg AND NOT p2.proisagg AND
     (p1.proargtypes[3] < p2.proargtypes[3]);
 
 SELECT DISTINCT p1.proargtypes[4], p2.proargtypes[4]
 FROM pg_proc AS p1, pg_proc AS p2
 WHERE p1.oid != p2.oid AND
     p1.prosrc = p2.prosrc AND
-    (p1.prolang = 11 OR p1.prolang = 12) AND
-    (p2.prolang = 11 OR p2.prolang = 12) AND
+    p1.prolang = 12 AND p2.prolang = 12 AND
+    NOT p1.proisagg AND NOT p2.proisagg AND
     (p1.proargtypes[4] < p2.proargtypes[4]);
 
 SELECT DISTINCT p1.proargtypes[5], p2.proargtypes[5]
 FROM pg_proc AS p1, pg_proc AS p2
 WHERE p1.oid != p2.oid AND
     p1.prosrc = p2.prosrc AND
-    (p1.prolang = 11 OR p1.prolang = 12) AND
-    (p2.prolang = 11 OR p2.prolang = 12) AND
+    p1.prolang = 12 AND p2.prolang = 12 AND
+    NOT p1.proisagg AND NOT p2.proisagg AND
     (p1.proargtypes[5] < p2.proargtypes[5]);
 
 SELECT DISTINCT p1.proargtypes[6], p2.proargtypes[6]
 FROM pg_proc AS p1, pg_proc AS p2
 WHERE p1.oid != p2.oid AND
     p1.prosrc = p2.prosrc AND
-    (p1.prolang = 11 OR p1.prolang = 12) AND
-    (p2.prolang = 11 OR p2.prolang = 12) AND
+    p1.prolang = 12 AND p2.prolang = 12 AND
+    NOT p1.proisagg AND NOT p2.proisagg AND
     (p1.proargtypes[6] < p2.proargtypes[6]);
 
 SELECT DISTINCT p1.proargtypes[7], p2.proargtypes[7]
 FROM pg_proc AS p1, pg_proc AS p2
 WHERE p1.oid != p2.oid AND
     p1.prosrc = p2.prosrc AND
-    (p1.prolang = 11 OR p1.prolang = 12) AND
-    (p2.prolang = 11 OR p2.prolang = 12) AND
+    p1.prolang = 12 AND p2.prolang = 12 AND
+    NOT p1.proisagg AND NOT p2.proisagg AND
     (p1.proargtypes[7] < p2.proargtypes[7]);
 
+-- If a proc is marked as an implicit cast, then it should be something that
+-- the system might actually use as a cast function: name same as the name
+-- of its output type, and either one arg that's a different type, or two
+-- args where the first is the same as the output type and the second is int4.
+
+SELECT p1.oid, p1.proname
+FROM pg_proc as p1
+WHERE p1.proimplicit AND
+    (NOT EXISTS (SELECT 1 FROM pg_type t WHERE t.oid = p1.prorettype AND
+                 t.typname = p1.proname) OR
+     NOT ((p1.pronargs = 1 AND p1.proargtypes[0] != prorettype) OR
+          (p1.pronargs = 2 AND p1.proargtypes[0] = prorettype AND
+           p1.proargtypes[1] = 23)));
+
 -- **************** pg_operator ****************
 
 -- Look for illegal values in pg_operator fields.
@@ -192,6 +208,7 @@ WHERE p1.oprcom = p2.oid AND
 -- single-operand operators.
 -- We expect that B will always say that B.oprnegate = A as well; that's not
 -- inherently essential, but it would be inefficient not to mark it so.
+-- Also, A and B had better not be the same operator.
 
 SELECT p1.oid, p1.oprcode, p2.oid, p2.oprcode
 FROM pg_operator AS p1, pg_operator AS p2
@@ -201,7 +218,8 @@ WHERE p1.oprnegate = p2.oid AND
      p1.oprright != p2.oprright OR
      p1.oprresult != 16 OR
      p2.oprresult != 16 OR
-     p1.oid != p2.oprnegate);
+     p1.oid != p2.oprnegate OR
+     p1.oid = p2.oid);
 
 -- Look for mergejoin operators that don't match their links.
 -- A mergejoin link leads from an '=' operator to the
@@ -378,15 +396,30 @@ WHERE p1.oprjoin = p2.oid AND
 
 -- Look for illegal values in pg_aggregate fields.
 
-SELECT p1.oid, p1.aggname
+SELECT ctid, aggfnoid::oid
 FROM pg_aggregate as p1
-WHERE aggtransfn = 0 OR aggtranstype = 0 OR aggfinaltype = 0;
+WHERE aggfnoid = 0 OR aggtransfn = 0 OR aggtranstype = 0;
+
+-- Make sure the matching pg_proc entry is sensible, too.
+
+SELECT a.aggfnoid::oid, p.proname
+FROM pg_aggregate as a, pg_proc as p
+WHERE a.aggfnoid = p.oid AND
+    (NOT p.proisagg OR p.pronargs != 1 OR p.proretset);
+
+-- Make sure there are no proisagg pg_proc entries without matches.
+
+SELECT oid, proname
+FROM pg_proc as p
+WHERE p.proisagg AND
+    NOT EXISTS (SELECT 1 FROM pg_aggregate a WHERE a.aggfnoid = p.oid);
 
 -- If there is no finalfn then the output type must be the transtype.
 
-SELECT p1.oid, p1.aggname
-FROM pg_aggregate as p1
-WHERE p1.aggfinalfn = 0 AND p1.aggfinaltype != p1.aggtranstype;
+SELECT a.aggfnoid::oid, p.proname
+FROM pg_aggregate as a, pg_proc as p
+WHERE a.aggfnoid = p.oid AND
+    a.aggfinalfn = 0 AND p.prorettype != a.aggtranstype;
 
 -- Cross-check transfn against its entry in pg_proc.
 -- FIXME: what about binary-compatible types?
@@ -394,33 +427,36 @@ WHERE p1.aggfinalfn = 0 AND p1.aggfinaltype != p1.aggtranstype;
 -- implemented using int4larger/int4smaller.  Until we have
 -- some cleaner way of dealing with binary-equivalent types, just leave
 -- those two tuples in the expected output.
-SELECT p1.oid, p1.aggname, p2.oid, p2.proname
-FROM pg_aggregate AS p1, pg_proc AS p2
-WHERE p1.aggtransfn = p2.oid AND
+SELECT a.aggfnoid::oid, p.proname, p2.oid, p2.proname
+FROM pg_aggregate AS a, pg_proc AS p, pg_proc AS p2
+WHERE a.aggfnoid = p.oid AND
+    a.aggtransfn = p2.oid AND
     (p2.proretset OR
-     p1.aggtranstype != p2.prorettype OR
-     p1.aggtranstype != p2.proargtypes[0] OR
-     NOT ((p2.pronargs = 2 AND p1.aggbasetype = p2.proargtypes[1]) OR
-          (p2.pronargs = 1 AND p1.aggbasetype = 0)));
+     a.aggtranstype != p2.prorettype OR
+     a.aggtranstype != p2.proargtypes[0] OR
+     NOT ((p2.pronargs = 2 AND p.proargtypes[0] = p2.proargtypes[1]) OR
+          (p2.pronargs = 1 AND p.proargtypes[0] = 0)));
 
 -- Cross-check finalfn (if present) against its entry in pg_proc.
 -- FIXME: what about binary-compatible types?
 
-SELECT p1.oid, p1.aggname, p2.oid, p2.proname
-FROM pg_aggregate AS p1, pg_proc AS p2
-WHERE p1.aggfinalfn = p2.oid AND
-    (p2.proretset OR p1.aggfinaltype != p2.prorettype OR
+SELECT a.aggfnoid::oid, p.proname, p2.oid, p2.proname
+FROM pg_aggregate AS a, pg_proc AS p, pg_proc AS p2
+WHERE a.aggfnoid = p.oid AND
+    a.aggfinalfn = p2.oid AND
+    (p2.proretset OR p.prorettype != p2.prorettype OR
      p2.pronargs != 1 OR
-     p1.aggtranstype != p2.proargtypes[0]);
+     a.aggtranstype != p2.proargtypes[0]);
 
 -- If transfn is strict then either initval should be non-NULL, or
--- basetype should equal transtype so that the first non-null input
+-- input type should equal transtype so that the first non-null input
 -- can be assigned as the state value.
 
-SELECT p1.oid, p1.aggname, p2.oid, p2.proname
-FROM pg_aggregate AS p1, pg_proc AS p2
-WHERE p1.aggtransfn = p2.oid AND p2.proisstrict AND
-    p1.agginitval IS NULL AND p1.aggbasetype != p1.aggtranstype;
+SELECT a.aggfnoid::oid, p.proname, p2.oid, p2.proname
+FROM pg_aggregate AS a, pg_proc AS p, pg_proc AS p2
+WHERE a.aggfnoid = p.oid AND
+    a.aggtransfn = p2.oid AND p2.proisstrict AND
+    a.agginitval IS NULL AND p.proargtypes[0] != a.aggtranstype;
 
 -- **************** pg_opclass ****************
 
@@ -473,6 +509,15 @@ FROM pg_amop AS p1, pg_operator AS p2
 WHERE p1.amopopr = p2.oid AND
     (p2.oprkind != 'b' OR p2.oprresult != 16 OR p2.oprleft != p2.oprright);
 
+-- Check that all operators linked to by opclass entries have selectivity
+-- estimators.  This is not absolutely required, but it seems a reasonable
+-- thing to insist on for all standard datatypes.
+
+SELECT p1.amopclaid, p1.amopopr, p2.oid, p2.oprname
+FROM pg_amop AS p1, pg_operator AS p2
+WHERE p1.amopopr = p2.oid AND
+    (p2.oprrest = 0 OR p2.oprjoin = 0);
+
 -- Check that operator input types match the opclass
 
 SELECT p1.amopclaid, p1.amopopr, p2.oid, p2.oprname, p3.opcname
diff --git a/src/test/regress/sql/rules.sql b/src/test/regress/sql/rules.sql
index aa9fcbb7288..4322cf6cd2c 100644
--- a/src/test/regress/sql/rules.sql
+++ b/src/test/regress/sql/rules.sql
@@ -604,7 +604,7 @@ SELECT * FROM shoe_ready WHERE total_avail >= 2;
                                         NEW.sl_name,
                                         NEW.sl_avail,
                                         'Al Bundy',
-                                        'epoch'::text
+                                        'epoch'
                                     );
 
 UPDATE shoelace_data SET sl_avail = 6 WHERE  sl_name = 'sl7';
diff --git a/src/tutorial/syscat.source b/src/tutorial/syscat.source
index f1be25728ca..a43277f45d1 100644
--- a/src/tutorial/syscat.source
+++ b/src/tutorial/syscat.source
@@ -7,7 +7,7 @@
 -- Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
 -- Portions Copyright (c) 1994, Regents of the University of California
 --
--- $Id: syscat.source,v 1.5 2001/08/21 16:36:06 tgl Exp $
+-- $Id: syscat.source,v 1.6 2002/04/11 20:00:18 tgl Exp $
 --
 ---------------------------------------------------------------------------
 
@@ -129,10 +129,11 @@ SELECT p.proname, p.pronargs, t.typname
 --
 -- lists all aggregate functions and the types to which they can be applied
 --
-SELECT a.aggname, t.typname
-  FROM pg_aggregate a, pg_type t
-  WHERE a.aggbasetype = t.oid
-  ORDER BY aggname, typname;
+SELECT p.proname, t.typname
+  FROM pg_aggregate a, pg_proc p, pg_type t
+  WHERE a.aggfnoid = p.oid
+    and p.proargtypes[0] = t.oid
+  ORDER BY proname, typname;
 
 
 --
-- 
GitLab