]> granicus.if.org Git - postgresql/commitdiff
Privileges on functions and procedural languages
authorPeter Eisentraut <peter_e@gmx.net>
Mon, 18 Feb 2002 23:11:58 +0000 (23:11 +0000)
committerPeter Eisentraut <peter_e@gmx.net>
Mon, 18 Feb 2002 23:11:58 +0000 (23:11 +0000)
35 files changed:
doc/src/sgml/catalogs.sgml
doc/src/sgml/ref/create_function.sgml
doc/src/sgml/ref/create_language.sgml
doc/src/sgml/ref/grant.sgml
doc/src/sgml/ref/revoke.sgml
doc/src/sgml/release.sgml
src/backend/catalog/aclchk.c
src/backend/catalog/pg_proc.c
src/backend/commands/define.c
src/backend/commands/proclang.c
src/backend/executor/execQual.c
src/backend/nodes/copyfuncs.c
src/backend/nodes/equalfuncs.c
src/backend/parser/gram.y
src/backend/parser/keywords.c
src/backend/utils/Gen_fmgrtab.sh
src/backend/utils/adt/acl.c
src/backend/utils/adt/sets.c
src/backend/utils/cache/fcache.c
src/backend/utils/misc/superuser.c
src/bin/initdb/initdb.sh
src/bin/scripts/createlang.sh
src/include/catalog/catversion.h
src/include/catalog/pg_attribute.h
src/include/catalog/pg_class.h
src/include/catalog/pg_language.h
src/include/catalog/pg_proc.h
src/include/miscadmin.h
src/include/nodes/nodes.h
src/include/nodes/parsenodes.h
src/include/parser/keywords.h
src/include/utils/acl.h
src/include/utils/fcache.h
src/test/regress/expected/privileges.out
src/test/regress/sql/privileges.sql

index 3e098f75dedd73f0e2c505db6a8f424ddc5e8b1a..20adc19bab893ba0f86ab40cd105bda184dbe180 100644 (file)
@@ -1,6 +1,6 @@
 <!--
  Documentation of the system catalogs, directed toward PostgreSQL developers
- $Header: /cvsroot/pgsql/doc/src/sgml/catalogs.sgml,v 2.29 2001/11/21 05:53:40 thomas Exp $
+ $Header: /cvsroot/pgsql/doc/src/sgml/catalogs.sgml,v 2.30 2002/02/18 23:10:59 petere Exp $
  -->
 
 <chapter id="catalogs">
       <entry></entry>
       <entry>not currently used</entry>
      </row>
+
+     <row>
+      <entry>lanacl</entry>
+      <entry><type>aclitem[]</type></entry>
+      <entry></entry>
+      <entry>Access permissions</entry>
+     </row>
     </tbody>
    </tgroup>
   </table>
       Again, the interpretation is language-specific.
       </entry>
      </row>
+
+     <row>
+      <entry>proacl</entry>
+      <entry><type>aclitem[]</type></entry>
+      <entry></entry>
+      <entry>Access permissions</entry>
+     </row>
     </tbody>
    </tgroup>
   </table>
index df643cd8e8b87ac50904f3292a216bdec4a6e891..9e919abba6245294752633b48993f86ce00e097e 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_function.sgml,v 1.30 2001/12/08 03:24:34 thomas Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_function.sgml,v 1.31 2002/02/18 23:11:02 petere Exp $
 -->
 
 <refentry id="SQL-CREATEFUNCTION">
@@ -270,6 +270,17 @@ CREATE [ OR REPLACE ] FUNCTION <replaceable class="parameter">name</replaceable>
     definition without breaking objects that refer to the function.
    </para>
 
+  <para>
+   To be able to define a function, the user must have the
+   <literal>USAGE</literal> privilege on the language.
+  </para>
+
+  <para>
+   By default, only the owner (creator) of the function has the right
+   to execute it.  Other users must be granted the
+   <literal>EXECUTE</literal> privilege on the function to be able to
+   use it.
+  </para>
  </refsect1>
 
   
@@ -369,7 +380,9 @@ Point * complex_to_point (Complex *z)
 
   <para>
    <xref linkend="sql-dropfunction">,
+   <xref linkend="sql-grant">,
    <xref linkend="sql-load">,
+   <xref linkend="sql-revoke">,
    <citetitle>PostgreSQL Programmer's Guide</citetitle>
   </para>
  </refsect1>
index 3d2b71198fcaa5a6fd7d73241a1c8c94a5465fcf..406e86768683fcf90748b7276f957c82a6bbc26f 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_language.sgml,v 1.20 2001/12/08 03:24:34 thomas Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_language.sgml,v 1.21 2002/02/18 23:11:02 petere Exp $
 PostgreSQL documentation
 -->
 
@@ -203,8 +203,8 @@ ERROR:  PL handler function <replaceable class="parameter">funcname</replaceable
    lanname   | lanispl | lanpltrusted | lanplcallfoid | lancompiler
 -------------+---------+--------------+---------------+-------------
  internal    | f       | f            |             0 | n/a
C           | f       | f            |             0 | /bin/cc
- sql         | f       | f            |             0 | postgres
c           | f       | f            |             0 | /bin/cc
+ sql         | f       | t            |             0 | postgres
 </screen>
   </para>
 
@@ -212,6 +212,13 @@ ERROR:  PL handler function <replaceable class="parameter">funcname</replaceable
    At present, the definition of a procedural language cannot be
    changed once it has been created.
   </para>
+
+  <para>
+   To be able to use a procedural language, a user must be granted the
+   <literal>USAGE</literal> privilege.  The
+   <command>createlang</command> program automatically grants
+   permissions to everyone if the language is known to be trusted.
+  </para>
  </refsect1>
 
  <refsect1 id="sql-createlanguage-examples">
@@ -257,6 +264,8 @@ CREATE LANGUAGE plsample
     <member><xref linkend="sql-createfunction"></member>
     <member><xref linkend="app-droplang"></member>
     <member><xref linkend="sql-droplanguage"></member>
+    <member><xref linkend="sql-grant"></member>
+    <member><xref linkend="sql-revoke"></member>
     <member><citetitle>PostgreSQL Programmer's Guide</citetitle></member>
    </simplelist>
   </para>
index 8f07f4adf5901d961f1c14cfcb5adfa7f893ba13..30168f2e65bd95ceca67f5640e086756dfd0eeb3 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/grant.sgml,v 1.19 2002/01/20 22:19:57 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/grant.sgml,v 1.20 2002/02/18 23:11:02 petere Exp $
 PostgreSQL documentation
 -->
 
@@ -19,6 +19,14 @@ PostgreSQL documentation
 GRANT { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER } [,...] | ALL [ PRIVILEGES ] }
     ON [ TABLE ] <replaceable class="PARAMETER">objectname</replaceable> [, ...]
     TO { <replaceable class="PARAMETER">username</replaceable> | GROUP <replaceable class="PARAMETER">groupname</replaceable> | PUBLIC } [, ...]
+
+GRANT { EXECUTE | ALL [ PRIVILEGES ] }
+    ON FUNCTION <replaceable>funcname</replaceable> ([<replaceable>type</replaceable>, ...]) [, ...]
+    TO { <replaceable class="PARAMETER">username</replaceable> | GROUP <replaceable class="PARAMETER">groupname</replaceable> | PUBLIC } [, ...]
+
+GRANT { USAGE | ALL [ PRIVILEGES ] }
+    ON LANGUAGE <replaceable>langname</replaceable> [, ...]
+    TO { <replaceable class="PARAMETER">username</replaceable> | GROUP <replaceable class="PARAMETER">groupname</replaceable> | PUBLIC } [, ...]
 </synopsis>
  </refsynopsisdiv>
 
@@ -27,8 +35,9 @@ GRANT { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER } [,..
 
   <para>
    The <command>GRANT</command> command gives specific permissions on
-   an object (table, view, sequence) to one or more users or groups of users.
-   These permissions are added to those already granted, if any.
+   an object (table, view, sequence, function, procedural language) to
+   one or more users or groups of users.  These permissions are added
+   to those already granted, if any.
   </para>
 
   <para>
@@ -134,14 +143,36 @@ GRANT { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER } [,..
      </listitem>
     </varlistentry>
 
+    <varlistentry>
+     <term>EXECUTE</term>
+     <listitem>
+      <para>
+       Allows the use of the specified function and the use of any
+       operators that are implemented on top of the function.  This is
+       the only type of privilege that is applicable to functions.
+      </para>
+     </listitem>
+    </varlistentry>
+
+    <varlistentry>
+     <term>USAGE</term>
+     <listitem>
+      <para>
+       Allows the use of the specified procedural language for the
+       creation of functions in that language.  This is the only type
+       of privilege that is applicable to procedural languages.
+      </para>
+     </listitem>
+    </varlistentry>
+
     <varlistentry>
      <term>ALL PRIVILEGES</term>
      <listitem>
       <para>
-       Grant all of the above privileges at once.  The
-       <literal>PRIVILEGES</literal> key word is optional in
-       <productname>PostgreSQL</productname>, though it is
-       required by strict SQL.
+       Grant all of the privileges applicable to the object at once.
+       The <literal>PRIVILEGES</literal> key word is optional in
+       <productname>PostgreSQL</productname>, though it is required by
+       strict SQL.
       </para>
      </listitem>
     </varlistentry>
index 6a858c5b3dff638e708d03390161a9f9960568ac..c0d03c55344b5689d00d4e41c7615ce5aaf9f5af 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/revoke.sgml,v 1.19 2001/12/08 03:24:39 thomas Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/revoke.sgml,v 1.20 2002/02/18 23:11:03 petere Exp $
 PostgreSQL documentation
 -->
 
@@ -19,6 +19,14 @@ PostgreSQL documentation
 REVOKE { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER } [,...] | ALL [ PRIVILEGES ] }
     ON [ TABLE ] <replaceable class="PARAMETER">object</replaceable> [, ...]
     FROM { <replaceable class="PARAMETER">username</replaceable> | GROUP <replaceable class="PARAMETER">groupname</replaceable> | PUBLIC } [, ...]
+
+REVOKE { EXECUTE | ALL [ PRIVILEGES ] }
+    ON FUNCTION <replaceable>funcname</replaceable> ([<replaceable>type</replaceable>, ...]) [, ...]
+    FROM { <replaceable class="PARAMETER">username</replaceable> | GROUP <replaceable class="PARAMETER">groupname</replaceable> | PUBLIC } [, ...]
+
+REVOKE { USAGE | ALL [ PRIVILEGES ] }
+    ON LANGUAGE <replaceable>langname</replaceable> [, ...]
+    FROM { <replaceable class="PARAMETER">username</replaceable> | GROUP <replaceable class="PARAMETER">groupname</replaceable> | PUBLIC } [, ...]
 </synopsis>
  </refsynopsisdiv>
 
index a4e3bb886724d2bf544a889c674c3c3638ffac85..67a4a7df92e53108d4633f9679abb761bfd10149 100644 (file)
@@ -1,10 +1,35 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.115 2002/01/31 21:20:03 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.116 2002/02/18 23:11:00 petere Exp $
 -->
 
 <appendix id="release">
  <title>Release Notes</title>
 
+ <sect1 id="release-devel">
+  <title>&version; Development Branch</title>
+
+  <para>
+   Below is a subset of the changes that have gone into the
+   development branch of PostgreSQL since version 7.2.  For a complete
+   list of changes, consult the CVS logs.
+  </para>
+
+<!--
+Developers: When you add a feature, mention it here.  This avoids
+lossiness when digging out the information from the CVS logs, and
+furthermore it advertises your feature to external parties at the
+earliest possible moment.
+CDATA means the content is "SGML-free", so you can write without
+worries about funny characters.
+-->
+<literallayout><![CDATA[
+Access privileges on functions
+Access privileges on procedural languages
+]]></literallayout>
+
+ </sect1>
+
  <sect1 id="release-7-2">
   <title>Release 7.2</title>
 
index 932eeeedbff4a5870b4ff5f385d6d2df42890c21..0a1948dea24a5c863d30038faec850cfa936be31 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/catalog/aclchk.c,v 1.53 2001/11/05 17:46:24 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/catalog/aclchk.c,v 1.54 2002/02/18 23:11:07 petere Exp $
  *
  * NOTES
  *       See acl.h.
 #include "postgres.h"
 
 #include "access/heapam.h"
+#include "access/transam.h"
 #include "catalog/catalog.h"
 #include "catalog/catname.h"
 #include "catalog/indexing.h"
 #include "catalog/pg_aggregate.h"
 #include "catalog/pg_group.h"
+#include "catalog/pg_language.h"
 #include "catalog/pg_operator.h"
 #include "catalog/pg_proc.h"
 #include "catalog/pg_shadow.h"
 #include "catalog/pg_type.h"
 #include "miscadmin.h"
+#include "nodes/parsenodes.h"
+#include "parser/keywords.h"
+#include "parser/parse.h"
 #include "parser/parse_agg.h"
 #include "parser/parse_func.h"
+#include "parser/parse_expr.h"
 #include "utils/acl.h"
 #include "utils/syscache.h"
 #include "utils/temprel.h"
 
+
+static void ExecuteGrantStmt_Table(GrantStmt *stmt);
+static void ExecuteGrantStmt_Function(GrantStmt *stmt);
+static void ExecuteGrantStmt_Lang(GrantStmt *stmt);
+
+static const char *privilege_token_string(int token);
+
 static int32 aclcheck(Acl *acl, AclId id, AclIdType idtype, AclMode mode);
 
 /* warning messages, now more explicit. */
@@ -64,19 +77,128 @@ dumpacl(Acl *acl)
 #endif   /* ACLDEBUG */
 
 
+/*
+ * If is_grant is true, adds the given privileges for the list of
+ * grantees to the existing old_acl.  If is_grant is false, the
+ * privileges for the given grantees are removed from old_acl.
+ */
+static Acl*
+merge_acl_with_grant(Acl *old_acl, bool is_grant, List *grantees, char *privileges)
+{
+       List       *j;
+       Acl                *new_acl;
+
+#ifdef ACLDEBUG
+       dumpacl(old_acl);
+#endif
+       new_acl = old_acl;
+
+       foreach(j, grantees)
+       {
+               PrivGrantee *grantee = (PrivGrantee *) lfirst(j);
+               char       *granteeString;
+               char       *aclString;
+               AclItem aclitem;
+               unsigned        modechg;
+
+               if (grantee->username)
+                       granteeString = aclmakeuser("U", grantee->username);
+               else if (grantee->groupname)
+                       granteeString = aclmakeuser("G", grantee->groupname);
+               else
+                       granteeString = aclmakeuser("A", "");
+
+               aclString = makeAclString(privileges, granteeString,
+                                                                 is_grant ? '+' : '-');
+
+               /* Convert string ACL spec into internal form */
+               aclparse(aclString, &aclitem, &modechg);
+               new_acl = aclinsert3(new_acl, &aclitem, modechg);
+
+#ifdef ACLDEBUG
+               dumpacl(new_acl);
+#endif
+       }
+
+       return new_acl;
+}
+
+
 /*
  * Called to execute the utility commands GRANT and REVOKE
  */
 void
 ExecuteGrantStmt(GrantStmt *stmt)
 {
-       List       *i;
-       List       *j;
-
        /* see comment in pg_type.h */
        Assert(ACLITEMSIZE == sizeof(AclItem));
 
-       foreach(i, stmt->relnames)
+       switch(stmt->objtype)
+       {
+               case TABLE:
+                       ExecuteGrantStmt_Table(stmt);
+                       break;
+               case FUNCTION:
+                       ExecuteGrantStmt_Function(stmt);
+                       break;
+               case LANGUAGE:
+                       ExecuteGrantStmt_Lang(stmt);
+                       break;
+               default:
+                       elog(ERROR, "bogus GrantStmt.objtype %d", stmt->objtype);
+       }
+}
+
+
+static void
+ExecuteGrantStmt_Table(GrantStmt *stmt)
+{
+       List       *i;
+       char       *privstring;
+
+       if (lfirsti(stmt->privileges) == ALL)
+               privstring = aclmakepriv(ACL_MODE_STR, 0);
+       else
+       {
+               privstring = "";
+               foreach(i, stmt->privileges)
+               {
+                       int c = 0;
+
+                       switch(lfirsti(i))
+                       {
+                               case SELECT:
+                                       c = ACL_MODE_SELECT_CHR;
+                                       break;
+                               case INSERT:
+                                       c = ACL_MODE_INSERT_CHR;
+                                       break;
+                               case UPDATE:
+                                       c = ACL_MODE_UPDATE_CHR;
+                                       break;
+                               case DELETE:
+                                       c = ACL_MODE_DELETE_CHR;
+                                       break;
+                               case RULE:
+                                       c = ACL_MODE_RULE_CHR;
+                                       break;
+                               case REFERENCES:
+                                       c = ACL_MODE_REFERENCES_CHR;
+                                       break;
+                               case TRIGGER:
+                                       c = ACL_MODE_TRIGGER_CHR;
+                                       break;
+                               default:
+                                       elog(ERROR, "invalid privilege type %s for table object",
+                                                privilege_token_string(lfirsti(i)));
+                       }
+
+                       privstring = aclmakepriv(privstring, c);
+               }
+       }
+
+
+       foreach(i, stmt->objects)
        {
                char       *relname = strVal(lfirst(i));
                Relation        relation;
@@ -120,41 +242,13 @@ ExecuteGrantStmt(GrantStmt *stmt)
                aclDatum = SysCacheGetAttr(RELNAME, tuple, Anum_pg_class_relacl,
                                                                   &isNull);
                if (isNull)
-                       old_acl = acldefault(relname, pg_class_tuple->relowner);
+                       old_acl = acldefault(pg_class_tuple->relowner);
                else
                        /* get a detoasted copy of the rel's ACL */
                        old_acl = DatumGetAclPCopy(aclDatum);
 
-#ifdef ACLDEBUG
-               dumpacl(old_acl);
-#endif
-               new_acl = old_acl;
-
-               foreach(j, stmt->grantees)
-               {
-                       PrivGrantee *grantee = (PrivGrantee *) lfirst(j);
-                       char       *granteeString;
-                       char       *aclString;
-                       AclItem aclitem;
-                       unsigned        modechg;
-
-                       if (grantee->username)
-                               granteeString = aclmakeuser("U", grantee->username);
-                       else if (grantee->groupname)
-                               granteeString = aclmakeuser("G", grantee->groupname);
-                       else
-                               granteeString = aclmakeuser("A", "");
-
-                       aclString = makeAclString(stmt->privileges, granteeString,
-                                                                         stmt->is_grant ? '+' : '-');
-
-                       /* Convert string ACL spec into internal form */
-                       aclparse(aclString, &aclitem, &modechg);
-                       new_acl = aclinsert3(new_acl, &aclitem, modechg);
-#ifdef ACLDEBUG
-                       dumpacl(new_acl);
-#endif
-               }
+               new_acl = merge_acl_with_grant(old_acl, stmt->is_grant,
+                                                                          stmt->grantees, privstring);
 
                /* finished building new ACL value, now insert it */
                for (i = 0; i < Natts_pg_class; ++i)
@@ -190,6 +284,267 @@ ExecuteGrantStmt(GrantStmt *stmt)
 }
 
 
+static Oid
+find_function_with_arglist(char *name, List *arguments)
+{
+       Oid             oid;
+       Oid             argoids[FUNC_MAX_ARGS];
+       int             i;
+       int16   argcount;
+       MemSet(argoids, 0, FUNC_MAX_ARGS * sizeof(Oid));
+       argcount = length(arguments);
+       if (argcount > FUNC_MAX_ARGS)
+               elog(ERROR, "functions cannot have more than %d arguments",
+                        FUNC_MAX_ARGS);
+
+       for (i = 0; i < argcount; i++)
+       {
+               TypeName   *t = (TypeName *) lfirst(arguments);
+               char       *typnam = TypeNameToInternalName(t);
+               arguments = lnext(arguments);
+               if (strcmp(typnam, "opaque") == 0)
+                       argoids[i] = InvalidOid;
+               else
+               {
+                       argoids[i] = GetSysCacheOid(TYPENAME,
+                                                                               PointerGetDatum(typnam),
+                                                                               0, 0, 0);
+                       if (!OidIsValid(argoids[i]))
+                               elog(ERROR, "type '%s' not found", typnam);
+               }
+       }
+
+       oid = GetSysCacheOid(PROCNAME,
+                                                PointerGetDatum(name),
+                                                Int16GetDatum(argcount),
+                                                PointerGetDatum(argoids),
+                                                0);
+
+       if (!OidIsValid(oid))
+               func_error(NULL, name, argcount, argoids, NULL);
+
+       return oid;
+} 
+
+
+static void
+ExecuteGrantStmt_Function(GrantStmt *stmt)
+{
+       List       *i;
+       char       *privstring = NULL;
+
+       if (lfirsti(stmt->privileges) == ALL)
+               privstring = aclmakepriv("", ACL_MODE_SELECT_CHR);
+       else
+       {
+               foreach(i, stmt->privileges)
+               {
+                       if (lfirsti(i) != EXECUTE)
+                               elog(ERROR, "invalid privilege type %s for function object",
+                                        privilege_token_string(lfirsti(i)));
+               }
+
+               privstring = aclmakepriv("", ACL_MODE_SELECT_CHR);
+       }
+
+       foreach(i, stmt->objects)
+       {
+               FuncWithArgs *func = (FuncWithArgs *) lfirst(i);
+               Oid                     oid;
+               Relation        relation;
+               HeapTuple       tuple;
+               Form_pg_proc pg_proc_tuple;
+               Datum           aclDatum;
+               bool            isNull;
+               Acl                *old_acl;
+               Acl                *new_acl;
+               unsigned        i;
+               HeapTuple       newtuple;
+               Datum           values[Natts_pg_proc];
+               char            nulls[Natts_pg_proc];
+               char            replaces[Natts_pg_proc];
+
+               oid = find_function_with_arglist(func->funcname, func->funcargs);
+               relation = heap_openr(ProcedureRelationName, RowExclusiveLock);
+               tuple = SearchSysCache(PROCOID, ObjectIdGetDatum(oid), 0, 0, 0);
+               if (!HeapTupleIsValid(tuple))
+               {
+                       heap_close(relation, RowExclusiveLock);
+                       elog(ERROR, "function %u not found", oid);
+               }
+               pg_proc_tuple = (Form_pg_proc) GETSTRUCT(tuple);
+
+               if (pg_proc_tuple->proowner != GetUserId())
+                       elog(ERROR, "permission denied");
+
+               /*
+                * If there's no ACL, create a default using the pg_proc.proowner
+                * field.
+                */
+               aclDatum = SysCacheGetAttr(PROCOID, tuple, Anum_pg_proc_proacl,
+                                                                  &isNull);
+               if (isNull)
+                       old_acl = acldefault(pg_proc_tuple->proowner);
+               else
+                       /* get a detoasted copy of the rel's ACL */
+                       old_acl = DatumGetAclPCopy(aclDatum);
+
+               new_acl = merge_acl_with_grant(old_acl, stmt->is_grant,
+                                                                          stmt->grantees, privstring);
+
+               /* finished building new ACL value, now insert it */
+               for (i = 0; i < Natts_pg_proc; ++i)
+               {
+                       replaces[i] = ' ';
+                       nulls[i] = ' ';         /* ignored if replaces[i]==' ' anyway */
+                       values[i] = (Datum) NULL;       /* ignored if replaces[i]==' '
+                                                                                * anyway */
+               }
+               replaces[Anum_pg_proc_proacl - 1] = 'r';
+               values[Anum_pg_proc_proacl - 1] = PointerGetDatum(new_acl);
+               newtuple = heap_modifytuple(tuple, relation, values, nulls, replaces);
+
+               ReleaseSysCache(tuple);
+
+               simple_heap_update(relation, &newtuple->t_self, newtuple);
+
+               {
+                       /* keep the catalog indexes up to date */
+                       Relation        idescs[Num_pg_proc_indices];
+
+                       CatalogOpenIndices(Num_pg_proc_indices, Name_pg_proc_indices,
+                                                          idescs);
+                       CatalogIndexInsert(idescs, Num_pg_proc_indices, relation, newtuple);
+                       CatalogCloseIndices(Num_pg_proc_indices, idescs);
+               }
+
+               pfree(old_acl);
+               pfree(new_acl);
+
+               heap_close(relation, RowExclusiveLock);
+       }
+}
+
+
+static void
+ExecuteGrantStmt_Lang(GrantStmt *stmt)
+{
+       List       *i;
+       char       *privstring = NULL;
+
+       if (lfirsti(stmt->privileges) == ALL)
+               privstring = aclmakepriv("", ACL_MODE_SELECT_CHR);
+       else
+       {
+               foreach(i, stmt->privileges)
+               {
+                       if (lfirsti(i) != USAGE)
+                               elog(ERROR, "invalid privilege type %s for language object",
+                                        privilege_token_string(lfirsti(i)));
+               }
+
+               privstring = aclmakepriv("", ACL_MODE_SELECT_CHR);
+       }
+
+       foreach(i, stmt->objects)
+       {
+               char       *langname = strVal(lfirst(i));
+               Relation        relation;
+               HeapTuple       tuple;
+               Form_pg_language pg_language_tuple;
+               Datum           aclDatum;
+               bool            isNull;
+               Acl                *old_acl;
+               Acl                *new_acl;
+               unsigned        i;
+               HeapTuple       newtuple;
+               Datum           values[Natts_pg_language];
+               char            nulls[Natts_pg_language];
+               char            replaces[Natts_pg_language];
+
+               if (!superuser())
+                       elog(ERROR, "permission denied");
+
+               relation = heap_openr(LanguageRelationName, RowExclusiveLock);
+               tuple = SearchSysCache(LANGNAME, PointerGetDatum(langname), 0, 0, 0);
+               if (!HeapTupleIsValid(tuple))
+               {
+                       heap_close(relation, RowExclusiveLock);
+                       elog(ERROR, "language \"%s\" not found", langname);
+               }
+               pg_language_tuple = (Form_pg_language) GETSTRUCT(tuple);
+
+               if (!pg_language_tuple->lanpltrusted)
+               {
+                       heap_close(relation, RowExclusiveLock);
+                       elog(ERROR, "language \"%s\" is not trusted", langname);
+               }
+
+               /*
+                * If there's no ACL, create a default.
+                */
+               aclDatum = SysCacheGetAttr(LANGNAME, tuple, Anum_pg_language_lanacl,
+                                                                  &isNull);
+               if (isNull)
+                       old_acl = acldefault(InvalidOid);
+               else
+                       /* get a detoasted copy of the rel's ACL */
+                       old_acl = DatumGetAclPCopy(aclDatum);
+
+               new_acl = merge_acl_with_grant(old_acl, stmt->is_grant,
+                                                                          stmt->grantees, privstring);
+
+               /* finished building new ACL value, now insert it */
+               for (i = 0; i < Natts_pg_language; ++i)
+               {
+                       replaces[i] = ' ';
+                       nulls[i] = ' ';         /* ignored if replaces[i]==' ' anyway */
+                       values[i] = (Datum) NULL;       /* ignored if replaces[i]==' '
+                                                                                * anyway */
+               }
+               replaces[Anum_pg_language_lanacl - 1] = 'r';
+               values[Anum_pg_language_lanacl - 1] = PointerGetDatum(new_acl);
+               newtuple = heap_modifytuple(tuple, relation, values, nulls, replaces);
+
+               ReleaseSysCache(tuple);
+
+               simple_heap_update(relation, &newtuple->t_self, newtuple);
+
+               {
+                       /* keep the catalog indexes up to date */
+                       Relation        idescs[Num_pg_language_indices];
+
+                       CatalogOpenIndices(Num_pg_language_indices, Name_pg_language_indices,
+                                                          idescs);
+                       CatalogIndexInsert(idescs, Num_pg_language_indices, relation, newtuple);
+                       CatalogCloseIndices(Num_pg_language_indices, idescs);
+               }
+
+               pfree(old_acl);
+               pfree(new_acl);
+
+               heap_close(relation, RowExclusiveLock);
+       }
+}
+
+
+
+static const char *
+privilege_token_string(int token)
+{
+       const char *s = TokenString(token);
+
+       if (s)
+               return s;
+       else
+               elog(ERROR, "privilege_token_string: invalid token number");
+       return NULL; /* appease compiler */
+}
+
+
 
 AclId
 get_grosysid(char *groname)
@@ -483,7 +838,7 @@ pg_aclcheck(char *relname, Oid userid, AclMode mode)
                AclId           ownerId;
 
                ownerId = ((Form_pg_class) GETSTRUCT(tuple))->relowner;
-               acl = acldefault(relname, ownerId);
+               acl = acldefault(ownerId);
                aclDatum = (Datum) 0;
        }
        else
@@ -721,3 +1076,142 @@ pg_aggr_ownercheck(Oid userid,
 
        return userid == owner_id;
 }
+
+
+
+/*
+ * Exported routine for checking a user's access privileges to a function
+ *
+ * Returns an ACLCHECK_* result code.
+ */
+int32
+pg_proc_aclcheck(Oid proc_oid, Oid userid)
+{
+       int32           result;
+       HeapTuple       tuple;
+       Datum           aclDatum;
+       bool            isNull;
+       Acl                *acl;
+
+       if (superuser_arg(userid))
+               return ACLCHECK_OK;
+
+       /*
+        * Validate userid
+        */
+       tuple = SearchSysCache(SHADOWSYSID,
+                                                  ObjectIdGetDatum(userid),
+                                                  0, 0, 0);
+       if (!HeapTupleIsValid(tuple))
+               elog(ERROR, "pg_proc_aclcheck: invalid user id %u",
+                        (unsigned) userid);
+       ReleaseSysCache(tuple);
+
+       /*
+        * Normal case: get the function's ACL from pg_proc
+        */
+       tuple = SearchSysCache(PROCOID,
+                                                  ObjectIdGetDatum(proc_oid),
+                                                  0, 0, 0);
+       if (!HeapTupleIsValid(tuple))
+               elog(ERROR, "pg_proc_aclcheck: function %u not found", proc_oid);
+
+       aclDatum = SysCacheGetAttr(PROCOID, tuple, Anum_pg_proc_proacl,
+                                                          &isNull);
+       if (isNull)
+       {
+               /* No ACL, so build default ACL */
+               AclId           ownerId;
+
+               ownerId = ((Form_pg_proc) GETSTRUCT(tuple))->proowner;
+               acl = acldefault(ownerId);
+               aclDatum = (Datum) 0;
+       }
+       else
+       {
+               /* detoast ACL if necessary */
+               acl = DatumGetAclP(aclDatum);
+       }
+
+       /*
+        * Functions only have one kind of privilege, which is encoded as
+        * "SELECT" here.
+        */
+       result = aclcheck(acl, userid, (AclIdType) ACL_IDTYPE_UID, ACL_SELECT);
+
+       /* if we have a detoasted copy, free it */
+       if (acl && (Pointer) acl != DatumGetPointer(aclDatum))
+               pfree(acl);
+
+       ReleaseSysCache(tuple);
+
+       return result;
+}
+
+
+
+/*
+ * Exported routine for checking a user's access privileges to a language
+ *
+ * Returns an ACLCHECK_* result code.
+ */
+int32
+pg_language_aclcheck(Oid lang_oid, Oid userid)
+{
+       int32           result;
+       HeapTuple       tuple;
+       Datum           aclDatum;
+       bool            isNull;
+       Acl                *acl;
+
+       if (superuser_arg(userid))
+               return ACLCHECK_OK;
+
+       /*
+        * Validate userid
+        */
+       tuple = SearchSysCache(SHADOWSYSID,
+                                                  ObjectIdGetDatum(userid),
+                                                  0, 0, 0);
+       if (!HeapTupleIsValid(tuple))
+               elog(ERROR, "pg_language_aclcheck: invalid user id %u",
+                        (unsigned) userid);
+       ReleaseSysCache(tuple);
+
+       /*
+        * Normal case: get the function's ACL from pg_language
+        */
+       tuple = SearchSysCache(LANGOID,
+                                                  ObjectIdGetDatum(lang_oid),
+                                                  0, 0, 0);
+       if (!HeapTupleIsValid(tuple))
+               elog(ERROR, "pg_language_aclcheck: language %u not found", lang_oid);
+
+       aclDatum = SysCacheGetAttr(LANGOID, tuple, Anum_pg_language_lanacl,
+                                                          &isNull);
+       if (isNull)
+       {
+               /* No ACL, so build default ACL */
+               acl = acldefault(InvalidOid);
+               aclDatum = (Datum) 0;
+       }
+       else
+       {
+               /* detoast ACL if necessary */
+               acl = DatumGetAclP(aclDatum);
+       }
+
+       /*
+        * Languages only have one kind of privilege, which is encoded as
+        * "SELECT" here.
+        */
+       result = aclcheck(acl, userid, (AclIdType) ACL_IDTYPE_UID, ACL_SELECT);
+
+       /* if we have a detoasted copy, free it */
+       if (acl && (Pointer) acl != DatumGetPointer(aclDatum))
+               pfree(acl);
+
+       ReleaseSysCache(tuple);
+
+       return result;
+}
index 32d9293f566c4bd319305cabc6355be22cd07a7b..3035df4502bc6d837644f60eef12ceef6f988af6 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.63 2001/11/05 17:46:24 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.64 2002/02/18 23:11:08 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -44,7 +44,7 @@ ProcedureCreate(char *procedureName,
                                bool replace,
                                bool returnsSet,
                                char *returnTypeName,
-                               char *languageName,
+                               Oid languageObjectId,
                                char *prosrc,
                                char *probin,
                                bool trusted,
@@ -65,7 +65,6 @@ ProcedureCreate(char *procedureName,
        char            nulls[Natts_pg_proc];
        Datum           values[Natts_pg_proc];
        char            replaces[Natts_pg_proc];
-       Oid                     languageObjectId;
        Oid                     typeObjectId;
        List       *x;
        List       *querytree_list;
@@ -82,12 +81,6 @@ ProcedureCreate(char *procedureName,
        Assert(PointerIsValid(prosrc));
        Assert(PointerIsValid(probin));
 
-       languageObjectId = GetSysCacheOid(LANGNAME,
-                                                                         PointerGetDatum(languageName),
-                                                                         0, 0, 0);
-       if (!OidIsValid(languageObjectId))
-               elog(ERROR, "language '%s' does not exist", languageName);
-
        parameterCount = 0;
        MemSet(typev, 0, FUNC_MAX_ARGS * sizeof(Oid));
        foreach(x, argList)
@@ -320,6 +313,9 @@ ProcedureCreate(char *procedureName,
                        elog(ERROR, "ProcedureCreate: cannot change return type of existing function."
                                 "\n\tUse DROP FUNCTION first.");
 
+               /* do not change existing permissions */
+               replaces[Anum_pg_proc_proacl-1] = ' ';
+
                /* Okay, do it... */
                tup = heap_modifytuple(oldtup, rel, values, nulls, replaces);
                simple_heap_update(rel, &tup->t_self, tup);
@@ -329,6 +325,10 @@ ProcedureCreate(char *procedureName,
        else
        {
                /* Creating a new procedure */
+
+               /* start out with empty permissions */
+               nulls[Anum_pg_proc_proacl-1] = 'n';
+
                tup = heap_formtuple(tupDesc, values, nulls);
                heap_insert(rel, tup);
        }
index 30a175c659e84241a195a70d0e9ec2848e02c3ad..140690a5a4b5a86f10970ebb384e744e5367097e 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/commands/define.c,v 1.64 2001/10/28 06:25:42 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/commands/define.c,v 1.65 2002/02/18 23:11:10 petere Exp $
  *
  * DESCRIPTION
  *       The "DefineFoo" routines take the parse tree and pick out the
@@ -50,6 +50,7 @@
 #include "miscadmin.h"
 #include "optimizer/cost.h"
 #include "parser/parse_expr.h"
+#include "utils/acl.h"
 #include "utils/builtins.h"
 #include "utils/syscache.h"
 
@@ -60,22 +61,18 @@ static int  defGetTypeLength(DefElem *def);
 #define DEFAULT_TYPDELIM               ','
 
 
+/*
+ * Translate the input language name to lower case.
+ */
 static void
 case_translate_language_name(const char *input, char *output)
 {
-/*
- *     Translate the input language name to lower case, except if it's "C",
- * translate to upper case.
- */
        int                     i;
 
        for (i = 0; i < NAMEDATALEN - 1 && input[i]; ++i)
                output[i] = tolower((unsigned char) input[i]);
 
        output[i] = '\0';
-
-       if (strcmp(output, "c") == 0)
-               output[0] = 'C';
 }
 
 
@@ -175,12 +172,12 @@ compute_full_attributes(List *parameters,
  */
 
 static void
-interpret_AS_clause(const char *languageName, const List *as,
+interpret_AS_clause(Oid languageOid, const char *languageName, const List *as,
                                        char **prosrc_str_p, char **probin_str_p)
 {
        Assert(as != NIL);
 
-       if (strcmp(languageName, "C") == 0)
+       if (languageOid == ClanguageId)
        {
                /*
                 * For "C" language, store the file name in probin and, when
@@ -213,29 +210,16 @@ interpret_AS_clause(const char *languageName, const List *as,
 void
 CreateFunction(ProcedureStmt *stmt)
 {
-       char       *probin_str;
-
        /* pathname of executable file that executes this function, if any */
-
-       char       *prosrc_str;
-
+       char       *probin_str;
        /* SQL that executes this function, if any */
-
-       char       *prorettype;
-
+       char       *prosrc_str;
        /* Type of return value (or member of set of values) from function */
-
+       char       *prorettype;
+       /* name of language of function, with case adjusted */
        char            languageName[NAMEDATALEN];
-
-       /*
-        * name of language of function, with case adjusted: "C", "internal",
-        * "sql", etc.
-        */
-
-       bool            returnsSet;
-
        /* The function returns a set of values, as opposed to a singleton. */
-
+       bool            returnsSet;
        /*
         * The following are optional user-supplied attributes of the
         * function.
@@ -247,62 +231,28 @@ CreateFunction(ProcedureStmt *stmt)
        bool            canCache,
                                isStrict;
 
+       HeapTuple       languageTuple;
+       Form_pg_language languageStruct;
+       Oid languageOid;
+
        /* Convert language name to canonical case */
        case_translate_language_name(stmt->language, languageName);
 
-       /*
-        * Apply appropriate security checks depending on language.
-        */
-       if (strcmp(languageName, "C") == 0 ||
-               strcmp(languageName, "internal") == 0)
-       {
-               if (!superuser())
-                       elog(ERROR,
-                                "Only users with Postgres superuser privilege are "
-                          "permitted to create a function in the '%s' language.\n\t"
-                                "Others may use the 'sql' language "
-                                "or the created procedural languages.",
-                                languageName);
-       }
-       else if (strcmp(languageName, "sql") == 0)
-       {
-               /* No security check needed for SQL functions */
-       }
-       else
-       {
-               HeapTuple       languageTuple;
-               Form_pg_language languageStruct;
-
-               /* Lookup the language in the system cache */
-               languageTuple = SearchSysCache(LANGNAME,
-                                                                          PointerGetDatum(languageName),
-                                                                          0, 0, 0);
-               if (!HeapTupleIsValid(languageTuple))
-                       elog(ERROR,
-                                "Unrecognized language specified in a CREATE FUNCTION: "
-                                "'%s'.\n\tPre-installed languages are SQL, C, and "
-                                "internal.\n\tAdditional languages may be installed "
-                                "using 'createlang'.",
-                                languageName);
+       languageTuple = SearchSysCache(LANGNAME,
+                                                                  PointerGetDatum(languageName),
+                                                                  0, 0, 0);
+       if (!HeapTupleIsValid(languageTuple))
+               elog(ERROR, "language \"%s\" does not exist", languageName);
 
-               /* Check that this language is a PL */
-               languageStruct = (Form_pg_language) GETSTRUCT(languageTuple);
-               if (!languageStruct->lanispl)
-                       elog(ERROR,
-                                "Language '%s' isn't defined as PL", languageName);
+       languageOid = languageTuple->t_data->t_oid;
+       languageStruct = (Form_pg_language) GETSTRUCT(languageTuple);
 
-               /*
-                * Functions in untrusted procedural languages are restricted to
-                * be defined by postgres superusers only
-                */
-               if (!languageStruct->lanpltrusted && !superuser())
-                       elog(ERROR, "Only users with Postgres superuser privilege "
-                                "are permitted to create a function in the '%s' "
-                                "language.",
-                                languageName);
+       if (!((languageStruct->lanpltrusted
+                  && pg_language_aclcheck(languageOid, GetUserId()) == ACLCHECK_OK)
+                 || superuser()))
+               elog(ERROR, "permission denied");
 
-               ReleaseSysCache(languageTuple);
-       }
+       ReleaseSysCache(languageTuple);
 
        /*
         * Convert remaining parameters of CREATE to form wanted by
@@ -316,7 +266,7 @@ CreateFunction(ProcedureStmt *stmt)
                                                        &byte_pct, &perbyte_cpu, &percall_cpu,
                                                        &outin_ratio, &canCache, &isStrict);
 
-       interpret_AS_clause(languageName, stmt->as, &prosrc_str, &probin_str);
+       interpret_AS_clause(languageOid, languageName, stmt->as, &prosrc_str, &probin_str);
 
        /*
         * And now that we have all the parameters, and know we're permitted
@@ -326,7 +276,7 @@ CreateFunction(ProcedureStmt *stmt)
                                        stmt->replace,
                                        returnsSet,
                                        prorettype,
-                                       languageName,
+                                       languageOid,
                                        prosrc_str, /* converted to text later */
                                        probin_str, /* converted to text later */
                                        true,           /* (obsolete "trusted") */
index 120c5d8b008c8f0865c74c0fd4b0c6b2871f3258..d9cf0f0814a380d9c4892a7d85a64865fb787f3e 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/commands/proclang.c,v 1.28 2001/06/13 21:44:40 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/commands/proclang.c,v 1.29 2002/02/18 23:11:11 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "utils/syscache.h"
 
 
+/*
+ * Translate the input language name to lower case.
+ */
 static void
 case_translate_language_name(const char *input, char *output)
 {
-/*-------------------------------------------------------------------------
-  Translate the input language name to lower case, except if it's C,
-  translate to upper case.
---------------------------------------------------------------------------*/
        int                     i;
 
        for (i = 0; i < NAMEDATALEN && input[i]; ++i)
                output[i] = tolower((unsigned char) input[i]);
 
        output[i] = '\0';
-
-       if (strcmp(output, "c") == 0)
-               output[0] = 'C';
 }
 
 
@@ -116,6 +112,7 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
        values[i++] = ObjectIdGetDatum(procTup->t_data->t_oid);
        values[i++] = DirectFunctionCall1(textin,
                                                                          CStringGetDatum(stmt->plcompiler));
+       nulls[i] = 'n';                         /* lanacl */
 
        ReleaseSysCache(procTup);
 
index f78517b1848196a3e8a537503ee248a6f4261dd3..e77eeed80303dcfe2689332f1f1ac14d95a49883 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/executor/execQual.c,v 1.89 2001/10/25 05:49:27 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/executor/execQual.c,v 1.90 2002/02/18 23:11:13 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -658,6 +658,9 @@ ExecMakeFunctionResult(FunctionCachePtr fcache,
        bool            hasSetArg;
        int                     i;
 
+       if (!fcache->permission_ok)
+               elog(ERROR, "permission denied");
+
        /*
         * arguments is a list of expressions to evaluate before passing to
         * the function manager.  We skip the evaluation if it was already
index 6977a6081de7a1384052812ebbc22c8095cfda50..153d257d26c7e76950421523a0bf5d32f0f030eb 100644 (file)
@@ -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.160 2001/11/05 05:00:14 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.161 2002/02/18 23:11:14 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1893,9 +1893,9 @@ _copyGrantStmt(GrantStmt *from)
        GrantStmt  *newnode = makeNode(GrantStmt);
 
        newnode->is_grant = from->is_grant;
-       Node_Copy(from, newnode, relnames);
-       if (from->privileges)
-               newnode->privileges = pstrdup(from->privileges);
+       newnode->objtype = from->objtype;
+       Node_Copy(from, newnode, objects);
+       Node_Copy(from, newnode, privileges);
        Node_Copy(from, newnode, grantees);
 
        return newnode;
@@ -1914,6 +1914,20 @@ _copyPrivGrantee(PrivGrantee *from)
        return newnode;
 }
 
+static FuncWithArgs *
+_copyFuncWithArgs(FuncWithArgs *from)
+{
+       FuncWithArgs *newnode = makeNode(FuncWithArgs);
+
+       if (from->funcname)
+               newnode->funcname = pstrdup(from->funcname);
+       else
+               newnode->funcname = NULL;
+       Node_Copy(from, newnode, funcargs);
+
+       return newnode;
+}
+
 static ClosePortalStmt *
 _copyClosePortalStmt(ClosePortalStmt *from)
 {
@@ -2971,6 +2985,9 @@ copyObject(void *from)
                case T_PrivGrantee:
                        retval = _copyPrivGrantee(from);
                        break;
+               case T_FuncWithArgs:
+                       retval = _copyFuncWithArgs(from);
+                       break;
 
                default:
                        elog(ERROR, "copyObject: don't know how to copy node type %d",
index 538a773e31b406b3e9388b69617d3681b12f4cf4..886963f8808a666910f81fc5c5f37b2480e39866 100644 (file)
@@ -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.108 2001/11/05 05:00:14 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.109 2002/02/18 23:11:14 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -758,9 +758,11 @@ _equalGrantStmt(GrantStmt *a, GrantStmt *b)
 {
        if (a->is_grant != b->is_grant)
                return false;
-       if (!equal(a->relnames, b->relnames))
+       if (a->objtype != b->objtype)
+               return false;
+       if (!equal(a->objects, b->objects))
                return false;
-       if (!equalstr(a->privileges, b->privileges))
+       if (!equal(a->privileges, b->privileges))
                return false;
        if (!equal(a->grantees, b->grantees))
                return false;
@@ -775,6 +777,13 @@ _equalPrivGrantee(PrivGrantee *a, PrivGrantee *b)
                && equalstr(a->groupname, b->groupname);
 }
 
+static bool
+_equalFuncWithArgs(FuncWithArgs *a, FuncWithArgs *b)
+{
+       return equalstr(a->funcname, b->funcname)
+               && equal(a->funcargs, b->funcargs);
+}
+
 static bool
 _equalClosePortalStmt(ClosePortalStmt *a, ClosePortalStmt *b)
 {
@@ -2122,6 +2131,9 @@ equal(void *a, void *b)
                case T_PrivGrantee:
                        retval = _equalPrivGrantee(a, b);
                        break;
+               case T_FuncWithArgs:
+                       retval = _equalFuncWithArgs(a, b);
+                       break;
 
                default:
                        elog(NOTICE, "equal: don't know whether nodes of type %d are equal",
index 11b7dd6e026465141ae62bf9d9f5aff1092e6bae..a23273c1a7d8440d26c8ae16d3f67b88428cdc01 100644 (file)
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.277 2002/02/18 06:49:20 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.278 2002/02/18 23:11:17 petere Exp $
  *
  * HISTORY
  *       AUTHOR                        DATE                    MAJOR EVENT
@@ -56,7 +56,6 @@
 #include "nodes/parsenodes.h"
 #include "parser/gramparse.h"
 #include "storage/lmgr.h"
-#include "utils/acl.h"
 #include "utils/numeric.h"
 #include "utils/datetime.h"
 
@@ -122,6 +121,7 @@ static void doNegateFloat(Value *v);
        A_Indices                       *aind;
        ResTarget                       *target;
        ParamNo                         *paramno;
+       PrivTarget                      *privtarget;
 
        VersionStmt                     *vstmt;
        DefineStmt                      *dstmt;
@@ -182,10 +182,14 @@ static void doNegateFloat(Value *v);
                OptUseOp, opt_class, SpecialRuleRelation
 
 %type <str>            opt_level, opt_encoding
-%type <str>            privileges, operation_commalist
 %type <node>   grantee
 %type <list>   grantee_list
-%type <chr>            operation, TriggerOneEvent
+%type <ival>   privilege
+%type <list>   privileges, privilege_list
+%type <privtarget> privilege_target
+%type <node>   function_with_argtypes
+%type <list>   function_with_argtypes_list
+%type <chr>    TriggerOneEvent
 
 %type <list>   stmtblock, stmtmulti,
                into_clause, OptTempTableName, relation_name_list,
@@ -323,7 +327,7 @@ static void doNegateFloat(Value *v);
                SCHEMA, SCROLL, SECOND_P, SELECT, SESSION, SESSION_USER, SET, SOME, SUBSTRING,
                TABLE, TEMPORARY, THEN, TIME, TIMESTAMP,
                TO, TRAILING, TRANSACTION, TRIM, TRUE_P,
-               UNENCRYPTED, UNION, UNIQUE, UNKNOWN, UPDATE, USER, USING,
+               UNENCRYPTED, UNION, UNIQUE, UNKNOWN, UPDATE, USAGE, USER, USING,
                VALUES, VARCHAR, VARYING, VIEW,
                WHEN, WHERE, WITH, WORK, YEAR_P, ZONE
 
@@ -2327,75 +2331,96 @@ from_in:  IN
 
 /*****************************************************************************
  *
- * GRANT privileges ON [TABLE] relation_name_list TO [GROUP] grantee, ...
+ * GRANT and REVOKE statements
  *
  *****************************************************************************/
 
-GrantStmt:  GRANT privileges ON opt_table relation_name_list TO grantee_list opt_with_grant
+GrantStmt:  GRANT privileges ON privilege_target TO grantee_list opt_grant_grant_option
                                {
                                        GrantStmt *n = makeNode(GrantStmt);
                                        n->is_grant = true;
-                                       n->relnames = $5;
                                        n->privileges = $2;
-                                       n->grantees = $7;
+                                       n->objtype = ($4)->objtype;
+                                       n->objects = ($4)->objs;
+                                       n->grantees = $6;
                                        $$ = (Node*)n;
                                }
                ;
 
-privileges:  ALL PRIVILEGES
-                               {
-                                $$ = aclmakepriv(ACL_MODE_STR,0);
-                               }
-               | ALL
+RevokeStmt:  REVOKE opt_revoke_grant_option privileges ON privilege_target FROM grantee_list
                                {
-                                $$ = aclmakepriv(ACL_MODE_STR,0);
-                               }
-               | operation_commalist
-                               {
-                                $$ = $1;
+                                       GrantStmt *n = makeNode(GrantStmt);
+                                       n->is_grant = false;
+                                       n->privileges = $3;
+                                       n->objtype = ($5)->objtype;
+                                       n->objects = ($5)->objs;
+                                       n->grantees = $7;
+                                       $$ = (Node *)n;
                                }
                ;
 
-operation_commalist:  operation
-                               {
-                                               $$ = aclmakepriv("",$1);
-                               }
-               | operation_commalist ',' operation
-                               {
-                                               $$ = aclmakepriv($1,$3);
-                               }
+
+/* either ALL [PRIVILEGES] or a list of individual privileges */
+privileges: privilege_list { $$ = $1; }
+               | ALL { $$ = makeListi1(ALL); }
+               | ALL PRIVILEGES { $$ = makeListi1(ALL); }
                ;
 
-operation:  SELECT
-                               {
-                                               $$ = ACL_MODE_SELECT_CHR;
-                               }
-               | INSERT
-                               {
-                                               $$ = ACL_MODE_INSERT_CHR;
-                               }
-               | UPDATE
-                               {
-                                               $$ = ACL_MODE_UPDATE_CHR;
-                               }
-               | DELETE
+privilege_list: privilege { $$ = makeListi1($1); }
+               | privilege_list ',' privilege { $$ = lappendi($1, $3); }
+               ;
+
+/* Not all of these privilege types apply to all objects, but that
+   gets sorted out later. */
+privilege: SELECT    { $$ = SELECT; }
+               | INSERT     { $$ = INSERT; }
+               | UPDATE     { $$ = UPDATE; }
+               | DELETE     { $$ = DELETE; }
+               | RULE       { $$ = RULE; }
+               | REFERENCES { $$ = REFERENCES; }
+               | TRIGGER    { $$ = TRIGGER; }
+               | EXECUTE    { $$ = EXECUTE; }
+               | USAGE      { $$ = USAGE; }
+               ;
+
+
+/* Don't bother trying to fold the first two rules into one using
+   opt_table.  You're going to get conflicts. */
+privilege_target: relation_name_list
                                {
-                                               $$ = ACL_MODE_DELETE_CHR;
+                                       PrivTarget *n = makeNode(PrivTarget);
+                                       n->objtype = TABLE;
+                                       n->objs = $1;
+                                       $$ = n;
                                }
-               | RULE
+                       | TABLE relation_name_list
                                {
-                                               $$ = ACL_MODE_RULE_CHR;
+                                       PrivTarget *n = makeNode(PrivTarget);
+                                       n->objtype = TABLE;
+                                       n->objs = $2;
+                                       $$ = n;
                                }
-               | REFERENCES
+                       | FUNCTION function_with_argtypes_list
                                {
-                                               $$ = ACL_MODE_REFERENCES_CHR;
+                                       PrivTarget *n = makeNode(PrivTarget);
+                                       n->objtype = FUNCTION;
+                                       n->objs = $2;
+                                       $$ = n;
                                }
-               | TRIGGER
+                       | LANGUAGE name_list
                                {
-                                               $$ = ACL_MODE_TRIGGER_CHR;
+                                       PrivTarget *n = makeNode(PrivTarget);
+                                       n->objtype = LANGUAGE;
+                                       n->objs = $2;
+                                       $$ = n;
                                }
                ;
 
+
+grantee_list: grantee                                  { $$ = makeList1($1); }
+               | grantee_list ',' grantee              { $$ = lappend($1, $3); }
+               ;
+
 grantee:  PUBLIC
                                {
                                        PrivGrantee *n = makeNode(PrivGrantee);
@@ -2419,31 +2444,33 @@ grantee:  PUBLIC
                                }
                ;
 
-grantee_list: grantee                                  { $$ = makeList1($1); }
-               | grantee_list ',' grantee              { $$ = lappend($1, $3); }
 
+opt_grant_grant_option: WITH GRANT OPTION
+                               {
+                                       elog(ERROR, "grant options are not implemented");
+                               }
+               | /*EMPTY*/
+               ;
 
-opt_with_grant:  WITH GRANT OPTION
+opt_revoke_grant_option: GRANT OPTION FOR
                                {
-                                       elog(ERROR,"WITH GRANT OPTION is not supported.  Only relation owners can set privileges");
-                                }
+                                       elog(ERROR, "grant options are not implemented");
+                               }
                | /*EMPTY*/
                ;
 
 
-/*****************************************************************************
- *
- * REVOKE privileges ON [TABLE] relation_name_list FROM user, ...
- *
- *****************************************************************************/
+function_with_argtypes_list: function_with_argtypes
+                               { $$ = makeList1($1); }
+               | function_with_argtypes_list ',' function_with_argtypes
+                               { $$ = lappend($1, $3); }
+               ;
 
-RevokeStmt:  REVOKE privileges ON opt_table relation_name_list FROM grantee_list
+function_with_argtypes: func_name func_args
                                {
-                                       GrantStmt *n = makeNode(GrantStmt);
-                                       n->is_grant = false;
-                                       n->relnames = $5;
-                                       n->privileges = $2;
-                                       n->grantees = $7;
+                                       FuncWithArgs *n = makeNode(FuncWithArgs);
+                                       n->funcname = $1;
+                                       n->funcargs = $2;
                                        $$ = (Node *)n;
                                }
                ;
@@ -5876,6 +5903,7 @@ unreserved_keyword:
                | UNLISTEN                                              { $$ = "unlisten"; }
                | UNTIL                                                 { $$ = "until"; }
                | UPDATE                                                { $$ = "update"; }
+               | USAGE                                                 { $$ = "usage"; }
                | VACUUM                                                { $$ = "vacuum"; }
                | VALID                                                 { $$ = "valid"; }
                | VALUES                                                { $$ = "values"; }
index fad08c849f1623bea915bdb93b65314a5ab7d119..12b05c6bcd1ce7ffe8b7c0b1ce5ff43edc09c0c2 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.99 2001/10/10 00:02:42 petere Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.100 2002/02/18 23:11:18 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -269,6 +269,7 @@ static ScanKeyword ScanKeywords[] = {
        {"unlisten", UNLISTEN},
        {"until", UNTIL},
        {"update", UPDATE},
+       {"usage", USAGE},
        {"user", USER},
        {"using", USING},
        {"vacuum", VACUUM},
@@ -354,3 +355,36 @@ ScanKeywordLookup(char *text)
 
        return NULL;
 }
+
+
+/*
+ * This does the reverse mapping from token number to string.
+ */
+const char *
+TokenString(int token)
+{
+    int i = 0;
+    static char buf[NAMEDATALEN];
+
+    while (i < sizeof(ScanKeywords))
+    {
+       if (ScanKeywords[i].value == token)
+       {
+           int k;
+
+           /* uppercase */
+           for (k = 0; k < NAMEDATALEN; k++)
+               if (ScanKeywords[i].name[k] >= 'a'
+                   && ScanKeywords[i].name[k] <= 'z')
+                   buf[k] = ScanKeywords[i].name[k] + ('A' - 'a');
+               else
+                   buf[k] = ScanKeywords[i].name[k];
+
+           return buf;
+       }
+
+       i++;
+    }
+
+    return NULL;
+}
index cf649ff3cd6403d9ff23eb9ab68367c4e7776dc7..b020c9ce260768ad4addab2f4fd4720215696b5a 100644 (file)
@@ -9,7 +9,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh,v 1.20 2001/05/22 12:06:51 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh,v 1.21 2002/02/18 23:11:20 petere Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -164,7 +164,7 @@ FuNkYfMgRsTuFf
 tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' < $RAWFILE | \
 $AWK '
 BEGIN  { OFS = ""; }
-       { if (seenit[$(NF-1)]++ == 0) print "#define F_", $(NF-1), " ", $1; }' >> "$$-$OIDSFILE"
+       { if (seenit[$(NF-2)]++ == 0) print "#define F_", $(NF-2), " ", $1; }' >> "$$-$OIDSFILE"
 
 if [ $? -ne 0 ]; then
     cleanup
@@ -209,7 +209,7 @@ cat > "$$-$TABLEFILE" <<FuNkYfMgRtAbStUfF
 
 FuNkYfMgRtAbStUfF
 
-$AWK '{ print "extern Datum", $(NF-1), "(PG_FUNCTION_ARGS);"; }' $RAWFILE >> "$$-$TABLEFILE"
+$AWK '{ print "extern Datum", $(NF-2), "(PG_FUNCTION_ARGS);"; }' $RAWFILE >> "$$-$TABLEFILE"
 
 if [ $? -ne 0 ]; then
     cleanup
@@ -232,7 +232,7 @@ $AWK 'BEGIN {
     Bool["f"] = "false"
 }
 { printf ("  { %d, \"%s\", %d, %s, %s, %s },\n"), \
-       $1, $(NF-1), $9, Bool[$8], Bool[$10], $(NF-1)
+       $1, $(NF-2), $9, Bool[$8], Bool[$10], $(NF-2)
 }' $RAWFILE >> "$$-$TABLEFILE"
 
 if [ $? -ne 0 ]; then
index a868c6c1c054a3ed0a9177295fe2e4d81f80bbd0..ef6ebba7fa7e2233d4482a2b445c147a05461e7e 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.66 2001/11/16 23:30:35 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.67 2002/02/18 23:11:22 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -373,7 +373,7 @@ aclitemgt(const AclItem *a1, const AclItem *a2)
  * newly-created tables (or any table with a NULL acl entry in pg_class)
  */
 Acl *
-acldefault(const char *relname, AclId ownerid)
+acldefault(AclId ownerid)
 {
        Acl                *acl;
        AclItem    *aip;
@@ -381,16 +381,18 @@ acldefault(const char *relname, AclId ownerid)
 #define ACL_WORLD_DEFAULT              (ACL_NO)
 #define ACL_OWNER_DEFAULT              (ACL_INSERT|ACL_SELECT|ACL_UPDATE|ACL_DELETE|ACL_RULE|ACL_REFERENCES|ACL_TRIGGER)
 
-       acl = makeacl(2);
+       acl = makeacl(ownerid ? 2 : 1);
        aip = ACL_DAT(acl);
        aip[0].ai_idtype = ACL_IDTYPE_WORLD;
        aip[0].ai_id = ACL_ID_WORLD;
-       aip[0].ai_mode = (IsSystemRelationName(relname) &&
-                                         !IsToastRelationName(relname)) ? ACL_SELECT
-               : ACL_WORLD_DEFAULT;
-       aip[1].ai_idtype = ACL_IDTYPE_UID;
-       aip[1].ai_id = ownerid;
-       aip[1].ai_mode = ACL_OWNER_DEFAULT;
+       aip[0].ai_mode = ACL_WORLD_DEFAULT;
+       /* FIXME: The owner's default should vary with the object type. */
+       if (ownerid)
+       {
+               aip[1].ai_idtype = ACL_IDTYPE_UID;
+               aip[1].ai_id = ownerid;
+               aip[1].ai_mode = ACL_OWNER_DEFAULT;
+       }
        return acl;
 }
 
index 0cd3b766472945004a7500be0fa490d48615a34e..15210f0c84102a477bb91fe93de125bcb237439e 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/sets.c,v 1.39 2001/10/02 21:39:35 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/sets.c,v 1.40 2002/02/18 23:11:23 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -20,6 +20,7 @@
 #include "access/heapam.h"
 #include "catalog/catname.h"
 #include "catalog/indexing.h"
+#include "catalog/pg_language.h"
 #include "catalog/pg_proc.h"
 #include "executor/executor.h"
 #include "utils/fcache.h"
@@ -54,7 +55,7 @@ SetDefine(char *querystr, char *typename)
                                                         false,         /* don't replace */
                                                         true,          /* returnsSet */
                                                         typename,      /* returnTypeName */
-                                                        "sql",         /* languageName */
+                                                        SQLlanguageId, /* language */
                                                         querystr,      /* sourceCode */
                                                         fileName,      /* fileName */
                                                         true,          /* trusted */
index 92cf46a036d85aa05b40b4aeaccc550bc6435148..96fee81349d385b77f23e67da01b53aec8548cc6 100644 (file)
@@ -8,12 +8,14 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/cache/Attic/fcache.c,v 1.41 2001/10/06 23:21:44 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/cache/Attic/fcache.c,v 1.42 2002/02/18 23:11:25 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "postgres.h"
 
+#include "miscadmin.h"
+#include "utils/acl.h"
 #include "utils/fcache.h"
 
 
@@ -40,5 +42,7 @@ init_fcache(Oid foid, int nargs, MemoryContext fcacheCxt)
        /* Initialize additional info */
        retval->setArgsValid = false;
 
+       retval->permission_ok = pg_proc_aclcheck(foid, GetUserId()) == ACLCHECK_OK;
+
        return retval;
 }
index 2f092028480a24bd180ead9c892bce75b7a63c16..f677d64fd3e3615d85b3745d6282625a62702120 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/misc/superuser.c,v 1.19 2001/09/08 15:24:00 petere Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/misc/superuser.c,v 1.20 2002/02/18 23:11:26 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
  */
 bool
 superuser(void)
+{
+       return superuser_arg(GetUserId());
+}
+
+
+bool
+superuser_arg(Oid userid)
 {
        bool            result = false;
        HeapTuple       utup;
 
        /* Special escape path in case you deleted all your users. */
-       if (!IsUnderPostmaster && GetUserId() == BOOTSTRAP_USESYSID)
+       if (!IsUnderPostmaster && userid == BOOTSTRAP_USESYSID)
                return true;
 
        utup = SearchSysCache(SHADOWSYSID,
-                                                 ObjectIdGetDatum(GetUserId()),
+                                                 ObjectIdGetDatum(userid),
                                                  0, 0, 0);
        if (HeapTupleIsValid(utup))
        {
@@ -49,6 +56,7 @@ superuser(void)
        return result;
 }
 
+
 /*
  * The Postgres user running this command is the owner of the specified
  * database.
index c823ee627d73d5f15b1c3b6cf1be298a7691111b..c75d44c6a30f6744e16880890aa7d3523cd75748 100644 (file)
@@ -27,7 +27,7 @@
 # Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
 # Portions Copyright (c) 1994, Regents of the University of California
 #
-# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.142 2001/11/25 22:19:30 petere Exp $
+# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.143 2002/02/18 23:11:28 petere Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -833,6 +833,24 @@ EOF
        | "$PGPATH"/postgres $PGSQL_OPT template1 > /dev/null || exit_nicely
 echo "ok"
 
+# Set most system catalogs and built-in functions as world-accessible.
+# Some objects may require different permissions by default, so we
+# make sure we don't overwrite privilege sets that have already been
+# set (NOT NULL).
+$ECHO_N "setting privileges on built-in objects... "$ECHO_C
+(
+  cat <<EOF
+    UPDATE pg_class SET relacl = '{"=r"}' \
+        WHERE relkind IN ('r', 'v', 'S') AND relacl IS NULL;
+    UPDATE pg_proc SET proacl = '{"=r"}' \
+        WHERE proacl IS NULL;
+    UPDATE pg_language SET lanacl = '{"=r"}' \
+        WHERE lanpltrusted;
+EOF
+) \
+       | "$PGPATH"/postgres $PGSQL_OPT template1 > /dev/null || exit_nicely
+echo "ok"
+
 $ECHO_N "vacuuming database template1... "$ECHO_C
 
 "$PGPATH"/postgres $PGSQL_OPT template1 >/dev/null <<EOF
index 5034f65cbe666ada4b0e1c221682e89b0e3d9910..d2aabe30c55bdbd2fa20ff095f06d88fe3255b8a 100644 (file)
@@ -7,7 +7,7 @@
 # Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
 # Portions Copyright (c) 1994, Regents of the University of California
 #
-# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createlang.sh,v 1.33 2002/02/18 05:48:44 momjian Exp $
+# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createlang.sh,v 1.34 2002/02/18 23:11:30 petere Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -289,4 +289,15 @@ if [ "$?" -ne 0 ]; then
        exit 1
 fi
 
+if test -n "$trusted"; then
+    sqlcmd="GRANT USAGE ON LANGUAGE \"$langname\" TO PUBLIC;"
+    if [ "$showsql" = yes ]; then
+        echo "$sqlcmd"
+    fi
+    $PSQL "$sqlcmd"
+    if [ "$?" -ne 0 ]; then
+        echo "$CMDNAME: language installation failed" 1>&2
+        exit 1
+    fi
+fi
 exit 0
index 35df7283132b39153a24e67dcb412d866d62eb7c..447469072b3bd7c5d65812982fb5cd75443e04cf 100644 (file)
@@ -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.103 2002/01/12 18:09:04 tgl Exp $
+ * $Id: catversion.h,v 1.104 2002/02/18 23:11:32 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -53,6 +53,6 @@
  */
 
 /*                                                     yyyymmddN */
-#define CATALOG_VERSION_NO     200201121
+#define CATALOG_VERSION_NO     200202181
 
 #endif
index 15280703fc65d593e9a0a24c38b4c151bd5b6596..f8c68f3ce69bb362a3f2809160129f8cbb9a16ed 100644 (file)
@@ -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.79 2001/11/05 17:46:32 momjian Exp $
+ * $Id: pg_attribute.h,v 1.80 2002/02/18 23:11:33 petere Exp $
  *
  * NOTES
  *       the genbki.sh script reads this file and generates .bki
@@ -310,7 +310,8 @@ DATA(insert ( 1262 tableoid                 26 0  4  -7 0 -1 -1 t p f i f f));
 { 1255, {"propercall_cpu"},            23, 0,  4, 14, 0, -1, -1, true, 'p', false, 'i', false, false }, \
 { 1255, {"prooutin_ratio"},            23, 0,  4, 15, 0, -1, -1, true, 'p', false, 'i', false, false }, \
 { 1255, {"prosrc"},                            25, 0, -1, 16, 0, -1, -1, false, 'x', false, 'i', false, false }, \
-{ 1255, {"probin"},                            17, 0, -1, 17, 0, -1, -1, false, 'x', false, 'i', false, false }
+{ 1255, {"probin"},                            17, 0, -1, 17, 0, -1, -1, false, 'x', false, 'i', false, false }, \
+{ 1255, {"proacl"},                      1034, 0, -1, 18, 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 proowner                    23 0  4   2 0 -1 -1 t p f i f f));
@@ -329,6 +330,7 @@ DATA(insert ( 1255 propercall_cpu   23 0  4  14 0 -1 -1 t p f i f f));
 DATA(insert ( 1255 prooutin_ratio      23 0  4  15 0 -1 -1 t p f i f f));
 DATA(insert ( 1255 prosrc                      25 0 -1  16 0 -1 -1 f x f i f f));
 DATA(insert ( 1255 probin                      17 0 -1  17 0 -1 -1 f x f i f f));
+DATA(insert ( 1255 proacl                1034 0 -1  18 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));
index facd354a76f51a3eeee523494bff3bb2628bba30..c37c5ec8f4fb061824097f693f1fde1cbf8b3fdf 100644 (file)
@@ -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.57 2001/11/05 17:46:32 momjian Exp $
+ * $Id: pg_class.h,v 1.58 2002/02/18 23:11:34 petere Exp $
  *
  * NOTES
  *       the genbki.sh script reads this file and generates .bki
@@ -136,7 +136,7 @@ DATA(insert OID = 1247 (  pg_type           71      PGUID 0 1247 0 0 0 0 f f r 17 0 0 0 0 0 t
 DESCR("");
 DATA(insert OID = 1249 (  pg_attribute 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              81      PGUID 0 1255 0 0 0 0 f f r 17 0 0 0 0 0 t f f f _null_ ));
+DATA(insert OID = 1255 (  pg_proc              81      PGUID 0 1255 0 0 0 0 f f r 18 0 0 0 0 0 t f f f _null_ ));
 DESCR("");
 DATA(insert OID = 1259 (  pg_class             83      PGUID 0 1259 0 0 0 0 f f r 23 0 0 0 0 0 t f f f _null_ ));
 DESCR("");
index 9099a9431bce3e6e9a342909447f8b2caddfc505..d7f48628e93d2885bfaf8e6b0ecd3324f6018f21 100644 (file)
@@ -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_language.h,v 1.15 2001/11/05 17:46:32 momjian Exp $
+ * $Id: pg_language.h,v 1.16 2002/02/18 23:11:35 petere Exp $
  *
  * NOTES
  *       the genbki.sh script reads this file and generates .bki
@@ -38,6 +38,7 @@ CATALOG(pg_language)
        bool            lanpltrusted;   /* PL is trusted */
        Oid                     lanplcallfoid;  /* Call handler for PL */
        text            lancompiler;    /* VARIABLE LENGTH FIELD */
+    aclitem            lanacl[1];              /* Access privileges */
 } FormData_pg_language;
 
 /* ----------------
@@ -51,25 +52,26 @@ typedef FormData_pg_language *Form_pg_language;
  *             compiler constants for pg_language
  * ----------------
  */
-#define Natts_pg_language                              5
+#define Natts_pg_language                              6
 #define Anum_pg_language_lanname               1
 #define Anum_pg_language_lanispl               2
 #define Anum_pg_language_lanpltrusted          3
 #define Anum_pg_language_lanplcallfoid         4
 #define Anum_pg_language_lancompiler           5
+#define Anum_pg_language_lanacl                        6
 
 /* ----------------
  *             initial contents of pg_language
  * ----------------
  */
 
-DATA(insert OID = 12 ( internal f f 0 "n/a" ));
+DATA(insert OID = 12 ( "internal" f f 0 "n/a" _null_ ));
 DESCR("Built-in functions");
 #define INTERNALlanguageId 12
-DATA(insert OID = 13 ( "C" f f 0 "/bin/cc" ));
+DATA(insert OID = 13 ( "c" f f 0 "/bin/cc" _null_ ));
 DESCR("Dynamically-loaded C functions");
 #define ClanguageId 13
-DATA(insert OID = 14 ( "sql" f f 0 "postgres"));
+DATA(insert OID = 14 ( "sql" f t 0 "postgres" _null_ ));
 DESCR("SQL-language functions");
 #define SQLlanguageId 14
 
index 1b375889dbcdfeb5ce42e7dd49399b62af08a657..bd5c6045df6643ededbc3f915e5775537eda7e19 100644 (file)
@@ -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.222 2002/01/12 04:38:31 thomas Exp $
+ * $Id: pg_proc.h,v 1.223 2002/02/18 23:11:36 petere Exp $
  *
  * NOTES
  *       The script catalog/genbki.sh reads this file and generates .bki
@@ -56,6 +56,7 @@ CATALOG(pg_proc) BOOTSTRAP
        int4            prooutin_ratio;
        text            prosrc;                 /* VARIABLE LENGTH FIELD */
        bytea           probin;                 /* VARIABLE LENGTH FIELD */
+       aclitem         proacl[1];              /* VARIABLE LENGTH FIELD */
 } FormData_pg_proc;
 
 /* ----------------
@@ -69,7 +70,7 @@ typedef FormData_pg_proc *Form_pg_proc;
  *             compiler constants for pg_proc
  * ----------------
  */
-#define Natts_pg_proc                                  17
+#define Natts_pg_proc                                  18
 #define Anum_pg_proc_proname                   1
 #define Anum_pg_proc_proowner                  2
 #define Anum_pg_proc_prolang                   3
@@ -87,6 +88,7 @@ typedef FormData_pg_proc *Form_pg_proc;
 #define Anum_pg_proc_prooutin_ratio            15
 #define Anum_pg_proc_prosrc                            16
 #define Anum_pg_proc_probin                            17
+#define Anum_pg_proc_proacl                            18
 
 /* ----------------
  *             initial contents of pg_proc
@@ -97,2776 +99,2776 @@ typedef FormData_pg_proc *Form_pg_proc;
 
 /* OIDS 1 - 99 */
 
-DATA(insert OID = 1242 (  boolin                  PGUID 12 f t t t 1 f 16 "0" 100 0 0  100  boolin - ));
+DATA(insert OID = 1242 (  boolin                  PGUID 12 f t t t 1 f 16 "0" 100 0 0  100  boolin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1243 (  boolout                 PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      boolout - ));
+DATA(insert OID = 1243 (  boolout                 PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      boolout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1244 (  byteain                 PGUID 12 f t t t 1 f 17 "0" 100 0 0 100      byteain - ));
+DATA(insert OID = 1244 (  byteain                 PGUID 12 f t t t 1 f 17 "0" 100 0 0 100      byteain - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  31 (  byteaout                 PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      byteaout - ));
+DATA(insert OID =  31 (  byteaout                 PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      byteaout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1245 (  charin                  PGUID 12 f t t t 1 f 18 "0" 100 0 0 100      charin - ));
+DATA(insert OID = 1245 (  charin                  PGUID 12 f t t t 1 f 18 "0" 100 0 0 100      charin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  33 (  charout                  PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      charout - ));
+DATA(insert OID =  33 (  charout                  PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      charout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  34 (  namein                           PGUID 12 f t t t 1 f 19 "0" 100 0 0 100      namein - ));
+DATA(insert OID =  34 (  namein                           PGUID 12 f t t t 1 f 19 "0" 100 0 0 100      namein - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  35 (  nameout                  PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      nameout - ));
+DATA(insert OID =  35 (  nameout                  PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      nameout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  38 (  int2in                           PGUID 12 f t t t 1 f 21 "0" 100 0 0 100      int2in - ));
+DATA(insert OID =  38 (  int2in                           PGUID 12 f t t t 1 f 21 "0" 100 0 0 100      int2in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  39 (  int2out                  PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      int2out - ));
+DATA(insert OID =  39 (  int2out                  PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      int2out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  40 (  int2vectorin     PGUID 12 f t t t 1 f 22 "0" 100 0 0 100      int2vectorin - ));
+DATA(insert OID =  40 (  int2vectorin     PGUID 12 f t t t 1 f 22 "0" 100 0 0 100      int2vectorin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  41 (  int2vectorout    PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      int2vectorout - ));
+DATA(insert OID =  41 (  int2vectorout    PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      int2vectorout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  42 (  int4in                           PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      int4in - ));
+DATA(insert OID =  42 (  int4in                           PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      int4in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  43 (  int4out                  PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      int4out - ));
+DATA(insert OID =  43 (  int4out                  PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      int4out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  44 (  regprocin                PGUID 12 f t f t 1 f 24 "0" 100 0 0 100      regprocin - ));
+DATA(insert OID =  44 (  regprocin                PGUID 12 f t f t 1 f 24 "0" 100 0 0 100      regprocin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  45 (  regprocout               PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      regprocout - ));
+DATA(insert OID =  45 (  regprocout               PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      regprocout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  46 (  textin                           PGUID 12 f t t t 1 f 25 "0" 100 0 0 100      textin - ));
+DATA(insert OID =  46 (  textin                           PGUID 12 f t t t 1 f 25 "0" 100 0 0 100      textin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  47 (  textout                  PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      textout - ));
+DATA(insert OID =  47 (  textout                  PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      textout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  48 (  tidin                    PGUID 12 f t t t 1 f 27 "0" 100 0 0 100      tidin - ));
+DATA(insert OID =  48 (  tidin                    PGUID 12 f t t t 1 f 27 "0" 100 0 0 100      tidin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  49 (  tidout                           PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      tidout - ));
+DATA(insert OID =  49 (  tidout                           PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      tidout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  50 (  xidin                    PGUID 12 f t t t 1 f 28 "0" 100 0 0 100      xidin - ));
+DATA(insert OID =  50 (  xidin                    PGUID 12 f t t t 1 f 28 "0" 100 0 0 100      xidin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  51 (  xidout                           PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      xidout - ));
+DATA(insert OID =  51 (  xidout                           PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      xidout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  52 (  cidin                    PGUID 12 f t t t 1 f 29 "0" 100 0 0 100      cidin - ));
+DATA(insert OID =  52 (  cidin                    PGUID 12 f t t t 1 f 29 "0" 100 0 0 100      cidin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  53 (  cidout                           PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      cidout - ));
+DATA(insert OID =  53 (  cidout                           PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      cidout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  54 (  oidvectorin      PGUID 12 f t t t 1 f 30 "0" 100 0 0 100      oidvectorin - ));
+DATA(insert OID =  54 (  oidvectorin      PGUID 12 f t t t 1 f 30 "0" 100 0 0 100      oidvectorin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  55 (  oidvectorout     PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      oidvectorout - ));
+DATA(insert OID =  55 (  oidvectorout     PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      oidvectorout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  56 (  boollt                           PGUID 12 f t t t 2 f 16 "16 16" 100 0 0 100  boollt - ));
+DATA(insert OID =  56 (  boollt                           PGUID 12 f t t t 2 f 16 "16 16" 100 0 0 100  boollt - _null_ ));
 DESCR("less-than");
-DATA(insert OID =  57 (  boolgt                           PGUID 12 f t t t 2 f 16 "16 16" 100 0 0 100  boolgt - ));
+DATA(insert OID =  57 (  boolgt                           PGUID 12 f t t t 2 f 16 "16 16" 100 0 0 100  boolgt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID =  60 (  booleq                           PGUID 12 f t t t 2 f 16 "16 16" 100 0 0 100  booleq - ));
+DATA(insert OID =  60 (  booleq                           PGUID 12 f t t t 2 f 16 "16 16" 100 0 0 100  booleq - _null_ ));
 DESCR("equal");
-DATA(insert OID =  61 (  chareq                           PGUID 12 f t t t 2 f 16 "18 18" 100 0 0 100  chareq - ));
+DATA(insert OID =  61 (  chareq                           PGUID 12 f t t t 2 f 16 "18 18" 100 0 0 100  chareq - _null_ ));
 DESCR("equal");
-DATA(insert OID =  62 (  nameeq                           PGUID 12 f t t t 2 f 16 "19 19" 100 0 0 100  nameeq - ));
+DATA(insert OID =  62 (  nameeq                           PGUID 12 f t t t 2 f 16 "19 19" 100 0 0 100  nameeq - _null_ ));
 DESCR("equal");
-DATA(insert OID =  63 (  int2eq                           PGUID 12 f t t t 2 f 16 "21 21" 100 0 0 100  int2eq - ));
+DATA(insert OID =  63 (  int2eq                           PGUID 12 f t t t 2 f 16 "21 21" 100 0 0 100  int2eq - _null_ ));
 DESCR("equal");
-DATA(insert OID =  64 (  int2lt                           PGUID 12 f t t t 2 f 16 "21 21" 100 0 0 100  int2lt - ));
+DATA(insert OID =  64 (  int2lt                           PGUID 12 f t t t 2 f 16 "21 21" 100 0 0 100  int2lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID =  65 (  int4eq                           PGUID 12 f t t t 2 f 16 "23 23" 100 0 0 100  int4eq - ));
+DATA(insert OID =  65 (  int4eq                           PGUID 12 f t t t 2 f 16 "23 23" 100 0 0 100  int4eq - _null_ ));
 DESCR("equal");
-DATA(insert OID =  66 (  int4lt                           PGUID 12 f t t t 2 f 16 "23 23" 100 0 0 100  int4lt - ));
+DATA(insert OID =  66 (  int4lt                           PGUID 12 f t t t 2 f 16 "23 23" 100 0 0 100  int4lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID =  67 (  texteq                           PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100  texteq - ));
+DATA(insert OID =  67 (  texteq                           PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100  texteq - _null_ ));
 DESCR("equal");
-DATA(insert OID =  68 (  xideq                    PGUID 12 f t t t 2 f 16 "28 28" 100 0 0 100  xideq - ));
+DATA(insert OID =  68 (  xideq                    PGUID 12 f t t t 2 f 16 "28 28" 100 0 0 100  xideq - _null_ ));
 DESCR("equal");
-DATA(insert OID =  69 (  cideq                    PGUID 12 f t t t 2 f 16 "29 29" 100 0 0 100  cideq - ));
+DATA(insert OID =  69 (  cideq                    PGUID 12 f t t t 2 f 16 "29 29" 100 0 0 100  cideq - _null_ ));
 DESCR("equal");
-DATA(insert OID =  70 (  charne                           PGUID 12 f t t t 2 f 16 "18 18" 100 0 0 100  charne - ));
+DATA(insert OID =  70 (  charne                           PGUID 12 f t t t 2 f 16 "18 18" 100 0 0 100  charne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1246 (  charlt                  PGUID 12 f t t t 2 f 16 "18 18" 100 0 0 100  charlt - ));
+DATA(insert OID = 1246 (  charlt                  PGUID 12 f t t t 2 f 16 "18 18" 100 0 0 100  charlt - _null_ ));
 DESCR("less-than");
-DATA(insert OID =  72 (  charle                           PGUID 12 f t t t 2 f 16 "18 18" 100 0 0 100  charle - ));
+DATA(insert OID =  72 (  charle                           PGUID 12 f t t t 2 f 16 "18 18" 100 0 0 100  charle - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID =  73 (  chargt                           PGUID 12 f t t t 2 f 16 "18 18" 100 0 0 100  chargt - ));
+DATA(insert OID =  73 (  chargt                           PGUID 12 f t t t 2 f 16 "18 18" 100 0 0 100  chargt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID =  74 (  charge                           PGUID 12 f t t t 2 f 16 "18 18" 100 0 0 100  charge - ));
+DATA(insert OID =  74 (  charge                           PGUID 12 f t t t 2 f 16 "18 18" 100 0 0 100  charge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1248 (  charpl                  PGUID 12 f t t t 2 f 18 "18 18" 100 0 0 100  charpl - ));
+DATA(insert OID = 1248 (  charpl                  PGUID 12 f t t t 2 f 18 "18 18" 100 0 0 100  charpl - _null_ ));
 DESCR("add");
-DATA(insert OID = 1250 (  charmi                  PGUID 12 f t t t 2 f 18 "18 18" 100 0 0 100  charmi - ));
+DATA(insert OID = 1250 (  charmi                  PGUID 12 f t t t 2 f 18 "18 18" 100 0 0 100  charmi - _null_ ));
 DESCR("subtract");
-DATA(insert OID =  77 (  charmul                  PGUID 12 f t t t 2 f 18 "18 18" 100 0 0 100  charmul - ));
+DATA(insert OID =  77 (  charmul                  PGUID 12 f t t t 2 f 18 "18 18" 100 0 0 100  charmul - _null_ ));
 DESCR("multiply");
-DATA(insert OID =  78 (  chardiv                  PGUID 12 f t t t 2 f 18 "18 18" 100 0 0 100  chardiv - ));
+DATA(insert OID =  78 (  chardiv                  PGUID 12 f t t t 2 f 18 "18 18" 100 0 0 100  chardiv - _null_ ));
 DESCR("divide");
 
-DATA(insert OID =  79 (  nameregexeq      PGUID 12 f t t t 2 f 16 "19 25" 100 0 0 100  nameregexeq - ));
+DATA(insert OID =  79 (  nameregexeq      PGUID 12 f t t t 2 f 16 "19 25" 100 0 0 100  nameregexeq - _null_ ));
 DESCR("matches regex., case-sensitive");
-DATA(insert OID = 1252 (  nameregexne     PGUID 12 f t t t 2 f 16 "19 25" 100 0 0 100  nameregexne - ));
+DATA(insert OID = 1252 (  nameregexne     PGUID 12 f t t t 2 f 16 "19 25" 100 0 0 100  nameregexne - _null_ ));
 DESCR("does not match regex., case-sensitive");
-DATA(insert OID = 1254 (  textregexeq     PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100  textregexeq - ));
+DATA(insert OID = 1254 (  textregexeq     PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100  textregexeq - _null_ ));
 DESCR("matches regex., case-sensitive");
-DATA(insert OID = 1256 (  textregexne     PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100  textregexne - ));
+DATA(insert OID = 1256 (  textregexne     PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100  textregexne - _null_ ));
 DESCR("does not match regex., case-sensitive");
-DATA(insert OID = 1257 (  textlen                 PGUID 12 f t t t 1 f 23 "25" 100 0 0 100  textlen - ));
+DATA(insert OID = 1257 (  textlen                 PGUID 12 f t t t 1 f 23 "25" 100 0 0 100  textlen - _null_ ));
 DESCR("length");
-DATA(insert OID = 1258 (  textcat                 PGUID 12 f t t t 2 f 25 "25 25" 100 0 0 100  textcat - ));
+DATA(insert OID = 1258 (  textcat                 PGUID 12 f t t t 2 f 25 "25 25" 100 0 0 100  textcat - _null_ ));
 DESCR("concatenate");
 
-DATA(insert OID =  84 (  boolne                           PGUID 12 f t t t 2 f 16 "16 16" 100 0 0 100  boolne - ));
+DATA(insert OID =  84 (  boolne                           PGUID 12 f t t t 2 f 16 "16 16" 100 0 0 100  boolne - _null_ ));
 DESCR("not equal");
-DATA(insert OID =  89 (  version                  PGUID 12 f t f t 0 f 25 "" 100 0 0 100 pgsql_version - ));
+DATA(insert OID =  89 (  version                  PGUID 12 f t f t 0 f 25 "" 100 0 0 100 pgsql_version - _null_ ));
 DESCR("PostgreSQL version string");
 
 /* OIDS 100 - 199 */
 
-DATA(insert OID = 100 (  int8fac                  PGUID 12 f t t t 1 f 20 "20" 100 0 0 100  int8fac - ));
+DATA(insert OID = 100 (  int8fac                  PGUID 12 f t t t 1 f 20 "20" 100 0 0 100  int8fac - _null_ ));
 DESCR("factorial");
-DATA(insert OID = 101 (  eqsel                    PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  eqsel - ));
+DATA(insert OID = 101 (  eqsel                    PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  eqsel - _null_ ));
 DESCR("restriction selectivity of = and related operators");
-DATA(insert OID = 102 (  neqsel                           PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  neqsel - ));
+DATA(insert OID = 102 (  neqsel                           PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  neqsel - _null_ ));
 DESCR("restriction selectivity of <> and related operators");
-DATA(insert OID = 103 (  scalarltsel      PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  scalarltsel - ));
+DATA(insert OID = 103 (  scalarltsel      PGUID 12 f t f t 4 f 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      PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  scalargtsel - ));
+DATA(insert OID = 104 (  scalargtsel      PGUID 12 f t f t 4 f 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                PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  eqjoinsel - ));
+DATA(insert OID = 105 (  eqjoinsel                PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  eqjoinsel - _null_ ));
 DESCR("join selectivity of = and related operators");
-DATA(insert OID = 106 (  neqjoinsel               PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  neqjoinsel - ));
+DATA(insert OID = 106 (  neqjoinsel               PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  neqjoinsel - _null_ ));
 DESCR("join selectivity of <> and related operators");
-DATA(insert OID = 107 (  scalarltjoinsel   PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  scalarltjoinsel - ));
+DATA(insert OID = 107 (  scalarltjoinsel   PGUID 12 f t f t 3 f 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   PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  scalargtjoinsel - ));
+DATA(insert OID = 108 (  scalargtjoinsel   PGUID 12 f t f t 3 f 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                     PGUID 12 f t t t 1 f  25 "23" 100 0 0 100  int4_text - ));
+DATA(insert OID = 112 (  text                     PGUID 12 f t t t 1 f  25 "23" 100 0 0 100  int4_text - _null_ ));
 DESCR("convert int4 to text");
-DATA(insert OID = 113 (  text                     PGUID 12 f t t t 1 f  25 "21" 100 0 0 100  int2_text - ));
+DATA(insert OID = 113 (  text                     PGUID 12 f t t t 1 f  25 "21" 100 0 0 100  int2_text - _null_ ));
 DESCR("convert int2 to text");
-DATA(insert OID = 114 (  text                     PGUID 12 f t t t 1 f  25 "26" 100 0 0 100  oid_text - ));
+DATA(insert OID = 114 (  text                     PGUID 12 f t t t 1 f  25 "26" 100 0 0 100  oid_text - _null_ ));
 DESCR("convert oid to text");
 
-DATA(insert OID = 115 (  box_above                PGUID 12 f t t t 2 f  16 "603 603" 100 0 0 100  box_above - ));
+DATA(insert OID = 115 (  box_above                PGUID 12 f t t t 2 f  16 "603 603" 100 0 0 100  box_above - _null_ ));
 DESCR("is above");
-DATA(insert OID = 116 (  box_below                PGUID 12 f t t t 2 f  16 "603 603" 100 0 0 100  box_below - ));
+DATA(insert OID = 116 (  box_below                PGUID 12 f t t t 2 f  16 "603 603" 100 0 0 100  box_below - _null_ ));
 DESCR("is below");
 
-DATA(insert OID = 117 (  point_in                 PGUID 12 f t t t 1 f 600 "0" 100 0 0 100  point_in - ));
+DATA(insert OID = 117 (  point_in                 PGUID 12 f t t t 1 f 600 "0" 100 0 0 100  point_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 118 (  point_out                PGUID 12 f t t t 1 f 23      "600" 100 0 0 100  point_out - ));
+DATA(insert OID = 118 (  point_out                PGUID 12 f t t t 1 f 23      "600" 100 0 0 100  point_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 119 (  lseg_in                  PGUID 12 f t t t 1 f 601 "0" 100 0 0 100  lseg_in - ));
+DATA(insert OID = 119 (  lseg_in                  PGUID 12 f t t t 1 f 601 "0" 100 0 0 100  lseg_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 120 (  lseg_out                 PGUID 12 f t t t 1 f 23      "0" 100 0 0 100  lseg_out - ));
+DATA(insert OID = 120 (  lseg_out                 PGUID 12 f t t t 1 f 23      "0" 100 0 0 100  lseg_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 121 (  path_in                  PGUID 12 f t t t 1 f 602 "0" 100 0 0 100  path_in - ));
+DATA(insert OID = 121 (  path_in                  PGUID 12 f t t t 1 f 602 "0" 100 0 0 100  path_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 122 (  path_out                 PGUID 12 f t t t 1 f 23      "0" 100 0 0 100  path_out - ));
+DATA(insert OID = 122 (  path_out                 PGUID 12 f t t t 1 f 23      "0" 100 0 0 100  path_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 123 (  box_in                           PGUID 12 f t t t 1 f 603 "0" 100 0 0 100  box_in - ));
+DATA(insert OID = 123 (  box_in                           PGUID 12 f t t t 1 f 603 "0" 100 0 0 100  box_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 124 (  box_out                  PGUID 12 f t t t 1 f 23      "0" 100 0 0 100  box_out - ));
+DATA(insert OID = 124 (  box_out                  PGUID 12 f t t t 1 f 23      "0" 100 0 0 100  box_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 125 (  box_overlap      PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_overlap - ));
+DATA(insert OID = 125 (  box_overlap      PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_overlap - _null_ ));
 DESCR("overlaps");
-DATA(insert OID = 126 (  box_ge                           PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_ge - ));
+DATA(insert OID = 126 (  box_ge                           PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_ge - _null_ ));
 DESCR("greater-than-or-equal by area");
-DATA(insert OID = 127 (  box_gt                           PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_gt - ));
+DATA(insert OID = 127 (  box_gt                           PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_gt - _null_ ));
 DESCR("greater-than by area");
-DATA(insert OID = 128 (  box_eq                           PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_eq - ));
+DATA(insert OID = 128 (  box_eq                           PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_eq - _null_ ));
 DESCR("equal by area");
-DATA(insert OID = 129 (  box_lt                           PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_lt - ));
+DATA(insert OID = 129 (  box_lt                           PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_lt - _null_ ));
 DESCR("less-than by area");
-DATA(insert OID = 130 (  box_le                           PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_le - ));
+DATA(insert OID = 130 (  box_le                           PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_le - _null_ ));
 DESCR("less-than-or-equal by area");
-DATA(insert OID = 131 (  point_above      PGUID 12 f t t t 2 f 16 "600 600" 100 0 0 100  point_above - ));
+DATA(insert OID = 131 (  point_above      PGUID 12 f t t t 2 f 16 "600 600" 100 0 0 100  point_above - _null_ ));
 DESCR("is above");
-DATA(insert OID = 132 (  point_left               PGUID 12 f t t t 2 f 16 "600 600" 100 0 0 100  point_left - ));
+DATA(insert OID = 132 (  point_left               PGUID 12 f t t t 2 f 16 "600 600" 100 0 0 100  point_left - _null_ ));
 DESCR("is left of");
-DATA(insert OID = 133 (  point_right      PGUID 12 f t t t 2 f 16 "600 600" 100 0 0 100  point_right - ));
+DATA(insert OID = 133 (  point_right      PGUID 12 f t t t 2 f 16 "600 600" 100 0 0 100  point_right - _null_ ));
 DESCR("is right of");
-DATA(insert OID = 134 (  point_below      PGUID 12 f t t t 2 f 16 "600 600" 100 0 0 100  point_below - ));
+DATA(insert OID = 134 (  point_below      PGUID 12 f t t t 2 f 16 "600 600" 100 0 0 100  point_below - _null_ ));
 DESCR("is below");
-DATA(insert OID = 135 (  point_eq                 PGUID 12 f t t t 2 f 16 "600 600" 100 0 0 100  point_eq - ));
+DATA(insert OID = 135 (  point_eq                 PGUID 12 f t t t 2 f 16 "600 600" 100 0 0 100  point_eq - _null_ ));
 DESCR("same as");
-DATA(insert OID = 136 (  on_pb                    PGUID 12 f t t t 2 f 16 "600 603" 100 0 0 100  on_pb - ));
+DATA(insert OID = 136 (  on_pb                    PGUID 12 f t t t 2 f 16 "600 603" 100 0 0 100  on_pb - _null_ ));
 DESCR("point is inside");
-DATA(insert OID = 137 (  on_ppath                 PGUID 12 f t t t 2 f 16 "600 602" 100 0 0 100  on_ppath - ));
+DATA(insert OID = 137 (  on_ppath                 PGUID 12 f t t t 2 f 16 "600 602" 100 0 0 100  on_ppath - _null_ ));
 DESCR("contained in");
-DATA(insert OID = 138 (  box_center               PGUID 12 f t t t 1 f 600 "603" 100 0 0 100  box_center - ));
+DATA(insert OID = 138 (  box_center               PGUID 12 f t t t 1 f 600 "603" 100 0 0 100  box_center - _null_ ));
 DESCR("center of");
-DATA(insert OID = 139 (  areasel                  PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  areasel - ));
+DATA(insert OID = 139 (  areasel                  PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  areasel - _null_ ));
 DESCR("restriction selectivity for area-comparison operators");
-DATA(insert OID = 140 (  areajoinsel      PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  areajoinsel - ));
+DATA(insert OID = 140 (  areajoinsel      PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  areajoinsel - _null_ ));
 DESCR("join selectivity for area-comparison operators");
-DATA(insert OID = 141 (  int4mul                  PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4mul - ));
+DATA(insert OID = 141 (  int4mul                  PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 142 (  int4fac                  PGUID 12 f t t t 1 f 23 "23" 100 0 0 100  int4fac - ));
+DATA(insert OID = 142 (  int4fac                  PGUID 12 f t t t 1 f 23 "23" 100 0 0 100  int4fac - _null_ ));
 DESCR("factorial");
-DATA(insert OID = 144 (  int4ne                           PGUID 12 f t t t 2 f 16 "23 23" 100 0 0 100  int4ne - ));
+DATA(insert OID = 144 (  int4ne                           PGUID 12 f t t t 2 f 16 "23 23" 100 0 0 100  int4ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 145 (  int2ne                           PGUID 12 f t t t 2 f 16 "21 21" 100 0 0 100  int2ne - ));
+DATA(insert OID = 145 (  int2ne                           PGUID 12 f t t t 2 f 16 "21 21" 100 0 0 100  int2ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 146 (  int2gt                           PGUID 12 f t t t 2 f 16 "21 21" 100 0 0 100  int2gt - ));
+DATA(insert OID = 146 (  int2gt                           PGUID 12 f t t t 2 f 16 "21 21" 100 0 0 100  int2gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 147 (  int4gt                           PGUID 12 f t t t 2 f 16 "23 23" 100 0 0 100  int4gt - ));
+DATA(insert OID = 147 (  int4gt                           PGUID 12 f t t t 2 f 16 "23 23" 100 0 0 100  int4gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 148 (  int2le                           PGUID 12 f t t t 2 f 16 "21 21" 100 0 0 100  int2le - ));
+DATA(insert OID = 148 (  int2le                           PGUID 12 f t t t 2 f 16 "21 21" 100 0 0 100  int2le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 149 (  int4le                           PGUID 12 f t t t 2 f 16 "23 23" 100 0 0 100  int4le - ));
+DATA(insert OID = 149 (  int4le                           PGUID 12 f t t t 2 f 16 "23 23" 100 0 0 100  int4le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 150 (  int4ge                           PGUID 12 f t t t 2 f 16 "23 23" 100 0 0 100  int4ge - ));
+DATA(insert OID = 150 (  int4ge                           PGUID 12 f t t t 2 f 16 "23 23" 100 0 0 100  int4ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 151 (  int2ge                           PGUID 12 f t t t 2 f 16 "21 21" 100 0 0 100  int2ge - ));
+DATA(insert OID = 151 (  int2ge                           PGUID 12 f t t t 2 f 16 "21 21" 100 0 0 100  int2ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 152 (  int2mul                  PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2mul - ));
+DATA(insert OID = 152 (  int2mul                  PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 153 (  int2div                  PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2div - ));
+DATA(insert OID = 153 (  int2div                  PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 154 (  int4div                  PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4div - ));
+DATA(insert OID = 154 (  int4div                  PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 155 (  int2mod                  PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2mod - ));
+DATA(insert OID = 155 (  int2mod                  PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2mod - _null_ ));
 DESCR("modulus");
-DATA(insert OID = 156 (  int4mod                  PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4mod - ));
+DATA(insert OID = 156 (  int4mod                  PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4mod - _null_ ));
 DESCR("modulus");
-DATA(insert OID = 157 (  textne                           PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100  textne - ));
+DATA(insert OID = 157 (  textne                           PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100  textne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 158 (  int24eq                  PGUID 12 f t t t 2 f 16 "21 23" 100 0 0 100  int24eq - ));
+DATA(insert OID = 158 (  int24eq                  PGUID 12 f t t t 2 f 16 "21 23" 100 0 0 100  int24eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 159 (  int42eq                  PGUID 12 f t t t 2 f 16 "23 21" 100 0 0 100  int42eq - ));
+DATA(insert OID = 159 (  int42eq                  PGUID 12 f t t t 2 f 16 "23 21" 100 0 0 100  int42eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 160 (  int24lt                  PGUID 12 f t t t 2 f 16 "21 23" 100 0 0 100  int24lt - ));
+DATA(insert OID = 160 (  int24lt                  PGUID 12 f t t t 2 f 16 "21 23" 100 0 0 100  int24lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 161 (  int42lt                  PGUID 12 f t t t 2 f 16 "23 21" 100 0 0 100  int42lt - ));
+DATA(insert OID = 161 (  int42lt                  PGUID 12 f t t t 2 f 16 "23 21" 100 0 0 100  int42lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 162 (  int24gt                  PGUID 12 f t t t 2 f 16 "21 23" 100 0 0 100  int24gt - ));
+DATA(insert OID = 162 (  int24gt                  PGUID 12 f t t t 2 f 16 "21 23" 100 0 0 100  int24gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 163 (  int42gt                  PGUID 12 f t t t 2 f 16 "23 21" 100 0 0 100  int42gt - ));
+DATA(insert OID = 163 (  int42gt                  PGUID 12 f t t t 2 f 16 "23 21" 100 0 0 100  int42gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 164 (  int24ne                  PGUID 12 f t t t 2 f 16 "21 23" 100 0 0 100  int24ne - ));
+DATA(insert OID = 164 (  int24ne                  PGUID 12 f t t t 2 f 16 "21 23" 100 0 0 100  int24ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 165 (  int42ne                  PGUID 12 f t t t 2 f 16 "23 21" 100 0 0 100  int42ne - ));
+DATA(insert OID = 165 (  int42ne                  PGUID 12 f t t t 2 f 16 "23 21" 100 0 0 100  int42ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 166 (  int24le                  PGUID 12 f t t t 2 f 16 "21 23" 100 0 0 100  int24le - ));
+DATA(insert OID = 166 (  int24le                  PGUID 12 f t t t 2 f 16 "21 23" 100 0 0 100  int24le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 167 (  int42le                  PGUID 12 f t t t 2 f 16 "23 21" 100 0 0 100  int42le - ));
+DATA(insert OID = 167 (  int42le                  PGUID 12 f t t t 2 f 16 "23 21" 100 0 0 100  int42le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 168 (  int24ge                  PGUID 12 f t t t 2 f 16 "21 23" 100 0 0 100  int24ge - ));
+DATA(insert OID = 168 (  int24ge                  PGUID 12 f t t t 2 f 16 "21 23" 100 0 0 100  int24ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 169 (  int42ge                  PGUID 12 f t t t 2 f 16 "23 21" 100 0 0 100  int42ge - ));
+DATA(insert OID = 169 (  int42ge                  PGUID 12 f t t t 2 f 16 "23 21" 100 0 0 100  int42ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 170 (  int24mul                 PGUID 12 f t t t 2 f 23 "21 23" 100 0 0 100  int24mul - ));
+DATA(insert OID = 170 (  int24mul                 PGUID 12 f t t t 2 f 23 "21 23" 100 0 0 100  int24mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 171 (  int42mul                 PGUID 12 f t t t 2 f 23 "23 21" 100 0 0 100  int42mul - ));
+DATA(insert OID = 171 (  int42mul                 PGUID 12 f t t t 2 f 23 "23 21" 100 0 0 100  int42mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 172 (  int24div                 PGUID 12 f t t t 2 f 23 "21 23" 100 0 0 100  int24div - ));
+DATA(insert OID = 172 (  int24div                 PGUID 12 f t t t 2 f 23 "21 23" 100 0 0 100  int24div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 173 (  int42div                 PGUID 12 f t t t 2 f 23 "23 21" 100 0 0 100  int42div - ));
+DATA(insert OID = 173 (  int42div                 PGUID 12 f t t t 2 f 23 "23 21" 100 0 0 100  int42div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 174 (  int24mod                 PGUID 12 f t t t 2 f 23 "21 23" 100 0 0 100  int24mod - ));
+DATA(insert OID = 174 (  int24mod                 PGUID 12 f t t t 2 f 23 "21 23" 100 0 0 100  int24mod - _null_ ));
 DESCR("modulus");
-DATA(insert OID = 175 (  int42mod                 PGUID 12 f t t t 2 f 23 "23 21" 100 0 0 100  int42mod - ));
+DATA(insert OID = 175 (  int42mod                 PGUID 12 f t t t 2 f 23 "23 21" 100 0 0 100  int42mod - _null_ ));
 DESCR("modulus");
-DATA(insert OID = 176 (  int2pl                           PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2pl - ));
+DATA(insert OID = 176 (  int2pl                           PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 177 (  int4pl                           PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4pl - ));
+DATA(insert OID = 177 (  int4pl                           PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 178 (  int24pl                  PGUID 12 f t t t 2 f 23 "21 23" 100 0 0 100  int24pl - ));
+DATA(insert OID = 178 (  int24pl                  PGUID 12 f t t t 2 f 23 "21 23" 100 0 0 100  int24pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 179 (  int42pl                  PGUID 12 f t t t 2 f 23 "23 21" 100 0 0 100  int42pl - ));
+DATA(insert OID = 179 (  int42pl                  PGUID 12 f t t t 2 f 23 "23 21" 100 0 0 100  int42pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 180 (  int2mi                           PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2mi - ));
+DATA(insert OID = 180 (  int2mi                           PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 181 (  int4mi                           PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4mi - ));
+DATA(insert OID = 181 (  int4mi                           PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 182 (  int24mi                  PGUID 12 f t t t 2 f 23 "21 23" 100 0 0 100  int24mi - ));
+DATA(insert OID = 182 (  int24mi                  PGUID 12 f t t t 2 f 23 "21 23" 100 0 0 100  int24mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 183 (  int42mi                  PGUID 12 f t t t 2 f 23 "23 21" 100 0 0 100  int42mi - ));
+DATA(insert OID = 183 (  int42mi                  PGUID 12 f t t t 2 f 23 "23 21" 100 0 0 100  int42mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 184 (  oideq                    PGUID 12 f t t t 2 f 16 "26 26" 100 0 0 100  oideq - ));
+DATA(insert OID = 184 (  oideq                    PGUID 12 f t t t 2 f 16 "26 26" 100 0 0 100  oideq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 185 (  oidne                    PGUID 12 f t t t 2 f 16 "26 26" 100 0 0 100  oidne - ));
+DATA(insert OID = 185 (  oidne                    PGUID 12 f t t t 2 f 16 "26 26" 100 0 0 100  oidne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 186 (  box_same                 PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_same - ));
+DATA(insert OID = 186 (  box_same                 PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_same - _null_ ));
 DESCR("same as");
-DATA(insert OID = 187 (  box_contain      PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_contain - ));
+DATA(insert OID = 187 (  box_contain      PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_contain - _null_ ));
 DESCR("contains");
-DATA(insert OID = 188 (  box_left                 PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_left - ));
+DATA(insert OID = 188 (  box_left                 PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_left - _null_ ));
 DESCR("is left of");
-DATA(insert OID = 189 (  box_overleft     PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_overleft - ));
+DATA(insert OID = 189 (  box_overleft     PGUID 12 f t t t 2 f 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    PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_overright - ));
+DATA(insert OID = 190 (  box_overright    PGUID 12 f t t t 2 f 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                PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_right - ));
+DATA(insert OID = 191 (  box_right                PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_right - _null_ ));
 DESCR("is right of");
-DATA(insert OID = 192 (  box_contained    PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_contained - ));
+DATA(insert OID = 192 (  box_contained    PGUID 12 f t t t 2 f 16 "603 603" 100 0 0 100  box_contained - _null_ ));
 DESCR("contained in");
-DATA(insert OID = 193 (  rt_box_union     PGUID 12 f t t t 2 f 603 "603 603" 100 0 0 100  rt_box_union - ));
+DATA(insert OID = 193 (  rt_box_union     PGUID 12 f t t t 2 f 603 "603 603" 100 0 0 100  rt_box_union - _null_ ));
 DESCR("r-tree");
-DATA(insert OID = 194 (  rt_box_inter     PGUID 12 f t t t 2 f 603 "603 603" 100 0 0 100  rt_box_inter - ));
+DATA(insert OID = 194 (  rt_box_inter     PGUID 12 f t t t 2 f 603 "603 603" 100 0 0 100  rt_box_inter - _null_ ));
 DESCR("r-tree");
-DATA(insert OID = 195 (  rt_box_size      PGUID 12 f t t t 2 f 700 "603 700" 100 0 0 100  rt_box_size - ));
+DATA(insert OID = 195 (  rt_box_size      PGUID 12 f t t t 2 f 700 "603 700" 100 0 0 100  rt_box_size - _null_ ));
 DESCR("r-tree");
-DATA(insert OID = 196 (  rt_bigbox_size    PGUID 12 f t t t 2 f 700 "603 700" 100 0 0 100  rt_bigbox_size - ));
+DATA(insert OID = 196 (  rt_bigbox_size    PGUID 12 f t t t 2 f 700 "603 700" 100 0 0 100  rt_bigbox_size - _null_ ));
 DESCR("r-tree");
-DATA(insert OID = 197 (  rt_poly_union    PGUID 12 f t t t 2 f 604 "604 604" 100 0 0 100  rt_poly_union - ));
+DATA(insert OID = 197 (  rt_poly_union    PGUID 12 f t t t 2 f 604 "604 604" 100 0 0 100  rt_poly_union - _null_ ));
 DESCR("r-tree");
-DATA(insert OID = 198 (  rt_poly_inter    PGUID 12 f t t t 2 f 604 "604 604" 100 0 0 100  rt_poly_inter - ));
+DATA(insert OID = 198 (  rt_poly_inter    PGUID 12 f t t t 2 f 604 "604 604" 100 0 0 100  rt_poly_inter - _null_ ));
 DESCR("r-tree");
-DATA(insert OID = 199 (  rt_poly_size     PGUID 12 f t t t 2 f 23 "604 700" 100 0 0 100  rt_poly_size - ));
+DATA(insert OID = 199 (  rt_poly_size     PGUID 12 f t t t 2 f 23 "604 700" 100 0 0 100  rt_poly_size - _null_ ));
 DESCR("r-tree");
 
 /* OIDS 200 - 299 */
 
-DATA(insert OID = 200 (  float4in                 PGUID 12 f t t t 1 f 700 "0" 100 0 0 100  float4in - ));
+DATA(insert OID = 200 (  float4in                 PGUID 12 f t t t 1 f 700 "0" 100 0 0 100  float4in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 201 (  float4out                PGUID 12 f t t t 1 f 23      "700" 100 0 0 100  float4out - ));
+DATA(insert OID = 201 (  float4out                PGUID 12 f t t t 1 f 23      "700" 100 0 0 100  float4out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 202 (  float4mul                PGUID 12 f t t t 2 f 700 "700 700" 100 0 0 100  float4mul - ));
+DATA(insert OID = 202 (  float4mul                PGUID 12 f t t t 2 f 700 "700 700" 100 0 0 100  float4mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 203 (  float4div                PGUID 12 f t t t 2 f 700 "700 700" 100 0 0 100  float4div - ));
+DATA(insert OID = 203 (  float4div                PGUID 12 f t t t 2 f 700 "700 700" 100 0 0 100  float4div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 204 (  float4pl                 PGUID 12 f t t t 2 f 700 "700 700" 100 0 0 100  float4pl - ));
+DATA(insert OID = 204 (  float4pl                 PGUID 12 f t t t 2 f 700 "700 700" 100 0 0 100  float4pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 205 (  float4mi                 PGUID 12 f t t t 2 f 700 "700 700" 100 0 0 100  float4mi - ));
+DATA(insert OID = 205 (  float4mi                 PGUID 12 f t t t 2 f 700 "700 700" 100 0 0 100  float4mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 206 (  float4um                 PGUID 12 f t t t 1 f 700 "700" 100 0 0 100  float4um - ));
+DATA(insert OID = 206 (  float4um                 PGUID 12 f t t t 1 f 700 "700" 100 0 0 100  float4um - _null_ ));
 DESCR("negate");
-DATA(insert OID = 207 (  float4abs                PGUID 12 f t t t 1 f 700 "700" 100 0 0 100  float4abs - ));
+DATA(insert OID = 207 (  float4abs                PGUID 12 f t t t 1 f 700 "700" 100 0 0 100  float4abs - _null_ ));
 DESCR("absolute value");
-DATA(insert OID = 208 (  float4_accum     PGUID 12 f t t t 2 f 1022 "1022 700" 100 0 0 100  float4_accum - ));
+DATA(insert OID = 208 (  float4_accum     PGUID 12 f t t t 2 f 1022 "1022 700" 100 0 0 100  float4_accum - _null_ ));
 DESCR("aggregate transition function");
-DATA(insert OID = 209 (  float4larger     PGUID 12 f t t t 2 f 700 "700 700" 100 0 0 100  float4larger - ));
+DATA(insert OID = 209 (  float4larger     PGUID 12 f t t t 2 f 700 "700 700" 100 0 0 100  float4larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 211 (  float4smaller    PGUID 12 f t t t 2 f 700 "700 700" 100 0 0 100  float4smaller - ));
+DATA(insert OID = 211 (  float4smaller    PGUID 12 f t t t 2 f 700 "700 700" 100 0 0 100  float4smaller - _null_ ));
 DESCR("smaller of two");
 
-DATA(insert OID = 212 (  int4um                           PGUID 12 f t t t 1 f 23 "23" 100 0 0 100  int4um - ));
+DATA(insert OID = 212 (  int4um                           PGUID 12 f t t t 1 f 23 "23" 100 0 0 100  int4um - _null_ ));
 DESCR("negate");
-DATA(insert OID = 213 (  int2um                           PGUID 12 f t t t 1 f 21 "21" 100 0 0 100  int2um - ));
+DATA(insert OID = 213 (  int2um                           PGUID 12 f t t t 1 f 21 "21" 100 0 0 100  int2um - _null_ ));
 DESCR("negate");
 
-DATA(insert OID = 214 (  float8in                 PGUID 12 f t t t 1 f 701 "0" 100 0 0 100  float8in - ));
+DATA(insert OID = 214 (  float8in                 PGUID 12 f t t t 1 f 701 "0" 100 0 0 100  float8in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 215 (  float8out                PGUID 12 f t t t 1 f 23      "701" 100 0 0 100  float8out - ));
+DATA(insert OID = 215 (  float8out                PGUID 12 f t t t 1 f 23      "701" 100 0 0 100  float8out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 216 (  float8mul                PGUID 12 f t t t 2 f 701 "701 701" 100 0 0 100  float8mul - ));
+DATA(insert OID = 216 (  float8mul                PGUID 12 f t t t 2 f 701 "701 701" 100 0 0 100  float8mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 217 (  float8div                PGUID 12 f t t t 2 f 701 "701 701" 100 0 0 100  float8div - ));
+DATA(insert OID = 217 (  float8div                PGUID 12 f t t t 2 f 701 "701 701" 100 0 0 100  float8div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 218 (  float8pl                 PGUID 12 f t t t 2 f 701 "701 701" 100 0 0 100  float8pl - ));
+DATA(insert OID = 218 (  float8pl                 PGUID 12 f t t t 2 f 701 "701 701" 100 0 0 100  float8pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 219 (  float8mi                 PGUID 12 f t t t 2 f 701 "701 701" 100 0 0 100  float8mi - ));
+DATA(insert OID = 219 (  float8mi                 PGUID 12 f t t t 2 f 701 "701 701" 100 0 0 100  float8mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 220 (  float8um                 PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  float8um - ));
+DATA(insert OID = 220 (  float8um                 PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  float8um - _null_ ));
 DESCR("negate");
-DATA(insert OID = 221 (  float8abs                PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  float8abs - ));
+DATA(insert OID = 221 (  float8abs                PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  float8abs - _null_ ));
 DESCR("absolute value");
-DATA(insert OID = 222 (  float8_accum     PGUID 12 f t t t 2 f 1022 "1022 701" 100 0 0 100  float8_accum - ));
+DATA(insert OID = 222 (  float8_accum     PGUID 12 f t t t 2 f 1022 "1022 701" 100 0 0 100  float8_accum - _null_ ));
 DESCR("aggregate transition function");
-DATA(insert OID = 223 (  float8larger     PGUID 12 f t t t 2 f 701 "701 701" 100 0 0 100  float8larger - ));
+DATA(insert OID = 223 (  float8larger     PGUID 12 f t t t 2 f 701 "701 701" 100 0 0 100  float8larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 224 (  float8smaller    PGUID 12 f t t t 2 f 701 "701 701" 100 0 0 100  float8smaller - ));
+DATA(insert OID = 224 (  float8smaller    PGUID 12 f t t t 2 f 701 "701 701" 100 0 0 100  float8smaller - _null_ ));
 DESCR("smaller of two");
 
-DATA(insert OID = 225 (  lseg_center      PGUID 12 f t t t 1 f 600 "601" 100 0 0 100  lseg_center - ));
+DATA(insert OID = 225 (  lseg_center      PGUID 12 f t t t 1 f 600 "601" 100 0 0 100  lseg_center - _null_ ));
 DESCR("center of");
-DATA(insert OID = 226 (  path_center      PGUID 12 f t t t 1 f 600 "602" 100 0 0 100  path_center - ));
+DATA(insert OID = 226 (  path_center      PGUID 12 f t t t 1 f 600 "602" 100 0 0 100  path_center - _null_ ));
 DESCR("center of");
-DATA(insert OID = 227 (  poly_center      PGUID 12 f t t t 1 f 600 "604" 100 0 0 100  poly_center - ));
+DATA(insert OID = 227 (  poly_center      PGUID 12 f t t t 1 f 600 "604" 100 0 0 100  poly_center - _null_ ));
 DESCR("center of");
 
-DATA(insert OID = 228 (  dround                           PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dround - ));
+DATA(insert OID = 228 (  dround                           PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dround - _null_ ));
 DESCR("round to nearest integer");
-DATA(insert OID = 229 (  dtrunc                           PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dtrunc - ));
+DATA(insert OID = 229 (  dtrunc                           PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dtrunc - _null_ ));
 DESCR("truncate to integer");
-DATA(insert OID = 230 (  dsqrt                    PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dsqrt - ));
+DATA(insert OID = 230 (  dsqrt                    PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dsqrt - _null_ ));
 DESCR("square root");
-DATA(insert OID = 231 (  dcbrt                    PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dcbrt - ));
+DATA(insert OID = 231 (  dcbrt                    PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dcbrt - _null_ ));
 DESCR("cube root");
-DATA(insert OID = 232 (  dpow                     PGUID 12 f t t t 2 f 701 "701 701" 100 0 0 100  dpow - ));
+DATA(insert OID = 232 (  dpow                     PGUID 12 f t t t 2 f 701 "701 701" 100 0 0 100  dpow - _null_ ));
 DESCR("exponentiation (x^y)");
-DATA(insert OID = 233 (  dexp                     PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dexp - ));
+DATA(insert OID = 233 (  dexp                     PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dexp - _null_ ));
 DESCR("natural exponential (e^x)");
-DATA(insert OID = 234 (  dlog1                    PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dlog1 - ));
+DATA(insert OID = 234 (  dlog1                    PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dlog1 - _null_ ));
 DESCR("natural logarithm");
-DATA(insert OID = 235 (  float8                           PGUID 12 f t t t 1 f 701  "21" 100 0 0 100  i2tod - ));
+DATA(insert OID = 235 (  float8                           PGUID 12 f t t t 1 f 701  "21" 100 0 0 100  i2tod - _null_ ));
 DESCR("convert int2 to float8");
-DATA(insert OID = 236 (  float4                           PGUID 12 f t t t 1 f 700  "21" 100 0 0 100  i2tof - ));
+DATA(insert OID = 236 (  float4                           PGUID 12 f t t t 1 f 700  "21" 100 0 0 100  i2tof - _null_ ));
 DESCR("convert int2 to float4");
-DATA(insert OID = 237 (  int2                     PGUID 12 f t t t 1 f  21 "701" 100 0 0 100  dtoi2 - ));
+DATA(insert OID = 237 (  int2                     PGUID 12 f t t t 1 f  21 "701" 100 0 0 100  dtoi2 - _null_ ));
 DESCR("convert float8 to int2");
-DATA(insert OID = 238 (  int2                     PGUID 12 f t t t 1 f  21 "700" 100 0 0 100  ftoi2 - ));
+DATA(insert OID = 238 (  int2                     PGUID 12 f t t t 1 f  21 "700" 100 0 0 100  ftoi2 - _null_ ));
 DESCR("convert float4 to int2");
-DATA(insert OID = 239 (  line_distance    PGUID 12 f t t t 2 f 701 "628 628" 100 0 0 100  line_distance - ));
+DATA(insert OID = 239 (  line_distance    PGUID 12 f t t t 2 f 701 "628 628" 100 0 0 100  line_distance - _null_ ));
 DESCR("distance between");
 
-DATA(insert OID = 240 (  nabstimein               PGUID 12 f t f t 1 f 702 "0" 100 0 0 100  nabstimein - ));
+DATA(insert OID = 240 (  nabstimein               PGUID 12 f t f t 1 f 702 "0" 100 0 0 100  nabstimein - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 241 (  nabstimeout      PGUID 12 f t f t 1 f 23      "0" 100 0 0 100  nabstimeout - ));
+DATA(insert OID = 241 (  nabstimeout      PGUID 12 f t f t 1 f 23      "0" 100 0 0 100  nabstimeout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 242 (  reltimein                PGUID 12 f t f t 1 f 703 "0" 100 0 0 100  reltimein - ));
+DATA(insert OID = 242 (  reltimein                PGUID 12 f t f t 1 f 703 "0" 100 0 0 100  reltimein - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 243 (  reltimeout               PGUID 12 f t f t 1 f 23      "0" 100 0 0 100  reltimeout - ));
+DATA(insert OID = 243 (  reltimeout               PGUID 12 f t f t 1 f 23      "0" 100 0 0 100  reltimeout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 244 (  timepl                           PGUID 12 f t t t 2 f 702 "702 703" 100 0 0 100  timepl - ));
+DATA(insert OID = 244 (  timepl                           PGUID 12 f t t t 2 f 702 "702 703" 100 0 0 100  timepl - _null_ ));
 DESCR("add");
-DATA(insert OID = 245 (  timemi                           PGUID 12 f t t t 2 f 702 "702 703" 100 0 0 100  timemi - ));
+DATA(insert OID = 245 (  timemi                           PGUID 12 f t t t 2 f 702 "702 703" 100 0 0 100  timemi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 246 (  tintervalin      PGUID 12 f t f t 1 f 704 "0" 100 0 0 100  tintervalin - ));
+DATA(insert OID = 246 (  tintervalin      PGUID 12 f t f t 1 f 704 "0" 100 0 0 100  tintervalin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 247 (  tintervalout     PGUID 12 f t f t 1 f 23      "0" 100 0 0 100  tintervalout - ));
+DATA(insert OID = 247 (  tintervalout     PGUID 12 f t f t 1 f 23      "0" 100 0 0 100  tintervalout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 248 (  intinterval      PGUID 12 f t t t 2 f 16 "702 704" 100 0 0 100  intinterval - ));
+DATA(insert OID = 248 (  intinterval      PGUID 12 f t t t 2 f 16 "702 704" 100 0 0 100  intinterval - _null_ ));
 DESCR("abstime in tinterval");
-DATA(insert OID = 249 (  tintervalrel     PGUID 12 f t t t 1 f 703 "704" 100 0 0 100  tintervalrel - ));
+DATA(insert OID = 249 (  tintervalrel     PGUID 12 f t t t 1 f 703 "704" 100 0 0 100  tintervalrel - _null_ ));
 DESCR("");
-DATA(insert OID = 250 (  timenow                  PGUID 12 f t f t 0 f 702 "0" 100 0 0 100  timenow - ));
+DATA(insert OID = 250 (  timenow                  PGUID 12 f t f t 0 f 702 "0" 100 0 0 100  timenow - _null_ ));
 DESCR("Current date and time (abstime)");
-DATA(insert OID = 251 (  abstimeeq                PGUID 12 f t t t 2 f 16 "702 702" 100 0 0 100  abstimeeq - ));
+DATA(insert OID = 251 (  abstimeeq                PGUID 12 f t t t 2 f 16 "702 702" 100 0 0 100  abstimeeq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 252 (  abstimene                PGUID 12 f t t t 2 f 16 "702 702" 100 0 0 100  abstimene - ));
+DATA(insert OID = 252 (  abstimene                PGUID 12 f t t t 2 f 16 "702 702" 100 0 0 100  abstimene - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 253 (  abstimelt                PGUID 12 f t t t 2 f 16 "702 702" 100 0 0 100  abstimelt - ));
+DATA(insert OID = 253 (  abstimelt                PGUID 12 f t t t 2 f 16 "702 702" 100 0 0 100  abstimelt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 254 (  abstimegt                PGUID 12 f t t t 2 f 16 "702 702" 100 0 0 100  abstimegt - ));
+DATA(insert OID = 254 (  abstimegt                PGUID 12 f t t t 2 f 16 "702 702" 100 0 0 100  abstimegt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 255 (  abstimele                PGUID 12 f t t t 2 f 16 "702 702" 100 0 0 100  abstimele - ));
+DATA(insert OID = 255 (  abstimele                PGUID 12 f t t t 2 f 16 "702 702" 100 0 0 100  abstimele - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 256 (  abstimege                PGUID 12 f t t t 2 f 16 "702 702" 100 0 0 100  abstimege - ));
+DATA(insert OID = 256 (  abstimege                PGUID 12 f t t t 2 f 16 "702 702" 100 0 0 100  abstimege - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 257 (  reltimeeq                PGUID 12 f t t t 2 f 16 "703 703" 100 0 0 100  reltimeeq - ));
+DATA(insert OID = 257 (  reltimeeq                PGUID 12 f t t t 2 f 16 "703 703" 100 0 0 100  reltimeeq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 258 (  reltimene                PGUID 12 f t t t 2 f 16 "703 703" 100 0 0 100  reltimene - ));
+DATA(insert OID = 258 (  reltimene                PGUID 12 f t t t 2 f 16 "703 703" 100 0 0 100  reltimene - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 259 (  reltimelt                PGUID 12 f t t t 2 f 16 "703 703" 100 0 0 100  reltimelt - ));
+DATA(insert OID = 259 (  reltimelt                PGUID 12 f t t t 2 f 16 "703 703" 100 0 0 100  reltimelt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 260 (  reltimegt                PGUID 12 f t t t 2 f 16 "703 703" 100 0 0 100  reltimegt - ));
+DATA(insert OID = 260 (  reltimegt                PGUID 12 f t t t 2 f 16 "703 703" 100 0 0 100  reltimegt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 261 (  reltimele                PGUID 12 f t t t 2 f 16 "703 703" 100 0 0 100  reltimele - ));
+DATA(insert OID = 261 (  reltimele                PGUID 12 f t t t 2 f 16 "703 703" 100 0 0 100  reltimele - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 262 (  reltimege                PGUID 12 f t t t 2 f 16 "703 703" 100 0 0 100  reltimege - ));
+DATA(insert OID = 262 (  reltimege                PGUID 12 f t t t 2 f 16 "703 703" 100 0 0 100  reltimege - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 263 (  tintervalsame    PGUID 12 f t t t 2 f 16 "704 704" 100 0 0 100  tintervalsame - ));
+DATA(insert OID = 263 (  tintervalsame    PGUID 12 f t t t 2 f 16 "704 704" 100 0 0 100  tintervalsame - _null_ ));
 DESCR("same as");
-DATA(insert OID = 264 (  tintervalct      PGUID 12 f t t t 2 f 16 "704 704" 100 0 0 100  tintervalct - ));
+DATA(insert OID = 264 (  tintervalct      PGUID 12 f t t t 2 f 16 "704 704" 100 0 0 100  tintervalct - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 265 (  tintervalov      PGUID 12 f t t t 2 f 16 "704 704" 100 0 0 100  tintervalov - ));
+DATA(insert OID = 265 (  tintervalov      PGUID 12 f t t t 2 f 16 "704 704" 100 0 0 100  tintervalov - _null_ ));
 DESCR("overlaps");
-DATA(insert OID = 266 (  tintervalleneq    PGUID 12 f t t t 2 f 16 "704 703" 100 0 0 100  tintervalleneq - ));
+DATA(insert OID = 266 (  tintervalleneq    PGUID 12 f t t t 2 f 16 "704 703" 100 0 0 100  tintervalleneq - _null_ ));
 DESCR("length equal");
-DATA(insert OID = 267 (  tintervallenne    PGUID 12 f t t t 2 f 16 "704 703" 100 0 0 100  tintervallenne - ));
+DATA(insert OID = 267 (  tintervallenne    PGUID 12 f t t t 2 f 16 "704 703" 100 0 0 100  tintervallenne - _null_ ));
 DESCR("length not equal to");
-DATA(insert OID = 268 (  tintervallenlt    PGUID 12 f t t t 2 f 16 "704 703" 100 0 0 100  tintervallenlt - ));
+DATA(insert OID = 268 (  tintervallenlt    PGUID 12 f t t t 2 f 16 "704 703" 100 0 0 100  tintervallenlt - _null_ ));
 DESCR("length less-than");
-DATA(insert OID = 269 (  tintervallengt    PGUID 12 f t t t 2 f 16 "704 703" 100 0 0 100  tintervallengt - ));
+DATA(insert OID = 269 (  tintervallengt    PGUID 12 f t t t 2 f 16 "704 703" 100 0 0 100  tintervallengt - _null_ ));
 DESCR("length greater-than");
-DATA(insert OID = 270 (  tintervallenle    PGUID 12 f t t t 2 f 16 "704 703" 100 0 0 100  tintervallenle - ));
+DATA(insert OID = 270 (  tintervallenle    PGUID 12 f t t t 2 f 16 "704 703" 100 0 0 100  tintervallenle - _null_ ));
 DESCR("length less-than-or-equal");
-DATA(insert OID = 271 (  tintervallenge    PGUID 12 f t t t 2 f 16 "704 703" 100 0 0 100  tintervallenge - ));
+DATA(insert OID = 271 (  tintervallenge    PGUID 12 f t t t 2 f 16 "704 703" 100 0 0 100  tintervallenge - _null_ ));
 DESCR("length greater-than-or-equal");
-DATA(insert OID = 272 (  tintervalstart    PGUID 12 f t t t 1 f 702 "704" 100 0 0 100  tintervalstart - ));
+DATA(insert OID = 272 (  tintervalstart    PGUID 12 f t t t 1 f 702 "704" 100 0 0 100  tintervalstart - _null_ ));
 DESCR("start of interval");
-DATA(insert OID = 273 (  tintervalend     PGUID 12 f t t t 1 f 702 "704" 100 0 0 100  tintervalend - ));
+DATA(insert OID = 273 (  tintervalend     PGUID 12 f t t t 1 f 702 "704" 100 0 0 100  tintervalend - _null_ ));
 DESCR("");
-DATA(insert OID = 274 (  timeofday                PGUID 12 f t f t 0 f 25 "0" 100 0 0 100      timeofday - ));
+DATA(insert OID = 274 (  timeofday                PGUID 12 f t f t 0 f 25 "0" 100 0 0 100      timeofday - _null_ ));
 DESCR("Current date and time with microseconds");
-DATA(insert OID = 275 (  isfinite                 PGUID 12 f t t t 1 f 16 "702" 100 0 0 100  abstime_finite - ));
+DATA(insert OID = 275 (  isfinite                 PGUID 12 f t t t 1 f 16 "702" 100 0 0 100  abstime_finite - _null_ ));
 DESCR("");
 
-DATA(insert OID = 276 (  int2fac                  PGUID 12 f t t t 1 f 23 "21" 100 0 0 100  int2fac - ));
+DATA(insert OID = 276 (  int2fac                  PGUID 12 f t t t 1 f 23 "21" 100 0 0 100  int2fac - _null_ ));
 DESCR("factorial");
 
-DATA(insert OID = 277 (  inter_sl                 PGUID 12 f t t t 2 f 16 "601 628" 100 0 0 100  inter_sl - ));
+DATA(insert OID = 277 (  inter_sl                 PGUID 12 f t t t 2 f 16 "601 628" 100 0 0 100  inter_sl - _null_ ));
 DESCR("");
-DATA(insert OID = 278 (  inter_lb                 PGUID 12 f t t t 2 f 16 "628 603" 100 0 0 100  inter_lb - ));
+DATA(insert OID = 278 (  inter_lb                 PGUID 12 f t t t 2 f 16 "628 603" 100 0 0 100  inter_lb - _null_ ));
 DESCR("");
 
-DATA(insert OID = 279 (  float48mul               PGUID 12 f t t t 2 f 701 "700 701" 100 0 0 100  float48mul - ));
+DATA(insert OID = 279 (  float48mul               PGUID 12 f t t t 2 f 701 "700 701" 100 0 0 100  float48mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 280 (  float48div               PGUID 12 f t t t 2 f 701 "700 701" 100 0 0 100  float48div - ));
+DATA(insert OID = 280 (  float48div               PGUID 12 f t t t 2 f 701 "700 701" 100 0 0 100  float48div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 281 (  float48pl                PGUID 12 f t t t 2 f 701 "700 701" 100 0 0 100  float48pl - ));
+DATA(insert OID = 281 (  float48pl                PGUID 12 f t t t 2 f 701 "700 701" 100 0 0 100  float48pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 282 (  float48mi                PGUID 12 f t t t 2 f 701 "700 701" 100 0 0 100  float48mi - ));
+DATA(insert OID = 282 (  float48mi                PGUID 12 f t t t 2 f 701 "700 701" 100 0 0 100  float48mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 283 (  float84mul               PGUID 12 f t t t 2 f 701 "701 700" 100 0 0 100  float84mul - ));
+DATA(insert OID = 283 (  float84mul               PGUID 12 f t t t 2 f 701 "701 700" 100 0 0 100  float84mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 284 (  float84div               PGUID 12 f t t t 2 f 701 "701 700" 100 0 0 100  float84div - ));
+DATA(insert OID = 284 (  float84div               PGUID 12 f t t t 2 f 701 "701 700" 100 0 0 100  float84div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 285 (  float84pl                PGUID 12 f t t t 2 f 701 "701 700" 100 0 0 100  float84pl - ));
+DATA(insert OID = 285 (  float84pl                PGUID 12 f t t t 2 f 701 "701 700" 100 0 0 100  float84pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 286 (  float84mi                PGUID 12 f t t t 2 f 701 "701 700" 100 0 0 100  float84mi - ));
+DATA(insert OID = 286 (  float84mi                PGUID 12 f t t t 2 f 701 "701 700" 100 0 0 100  float84mi - _null_ ));
 DESCR("subtract");
 
-DATA(insert OID = 287 (  float4eq                 PGUID 12 f t t t 2 f 16 "700 700" 100 0 0 100  float4eq - ));
+DATA(insert OID = 287 (  float4eq                 PGUID 12 f t t t 2 f 16 "700 700" 100 0 0 100  float4eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 288 (  float4ne                 PGUID 12 f t t t 2 f 16 "700 700" 100 0 0 100  float4ne - ));
+DATA(insert OID = 288 (  float4ne                 PGUID 12 f t t t 2 f 16 "700 700" 100 0 0 100  float4ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 289 (  float4lt                 PGUID 12 f t t t 2 f 16 "700 700" 100 0 0 100  float4lt - ));
+DATA(insert OID = 289 (  float4lt                 PGUID 12 f t t t 2 f 16 "700 700" 100 0 0 100  float4lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 290 (  float4le                 PGUID 12 f t t t 2 f 16 "700 700" 100 0 0 100  float4le - ));
+DATA(insert OID = 290 (  float4le                 PGUID 12 f t t t 2 f 16 "700 700" 100 0 0 100  float4le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 291 (  float4gt                 PGUID 12 f t t t 2 f 16 "700 700" 100 0 0 100  float4gt - ));
+DATA(insert OID = 291 (  float4gt                 PGUID 12 f t t t 2 f 16 "700 700" 100 0 0 100  float4gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 292 (  float4ge                 PGUID 12 f t t t 2 f 16 "700 700" 100 0 0 100  float4ge - ));
+DATA(insert OID = 292 (  float4ge                 PGUID 12 f t t t 2 f 16 "700 700" 100 0 0 100  float4ge - _null_ ));
 DESCR("greater-than-or-equal");
 
-DATA(insert OID = 293 (  float8eq                 PGUID 12 f t t t 2 f 16 "701 701" 100 0 0 100  float8eq - ));
+DATA(insert OID = 293 (  float8eq                 PGUID 12 f t t t 2 f 16 "701 701" 100 0 0 100  float8eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 294 (  float8ne                 PGUID 12 f t t t 2 f 16 "701 701" 100 0 0 100  float8ne - ));
+DATA(insert OID = 294 (  float8ne                 PGUID 12 f t t t 2 f 16 "701 701" 100 0 0 100  float8ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 295 (  float8lt                 PGUID 12 f t t t 2 f 16 "701 701" 100 0 0 100  float8lt - ));
+DATA(insert OID = 295 (  float8lt                 PGUID 12 f t t t 2 f 16 "701 701" 100 0 0 100  float8lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 296 (  float8le                 PGUID 12 f t t t 2 f 16 "701 701" 100 0 0 100  float8le - ));
+DATA(insert OID = 296 (  float8le                 PGUID 12 f t t t 2 f 16 "701 701" 100 0 0 100  float8le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 297 (  float8gt                 PGUID 12 f t t t 2 f 16 "701 701" 100 0 0 100  float8gt - ));
+DATA(insert OID = 297 (  float8gt                 PGUID 12 f t t t 2 f 16 "701 701" 100 0 0 100  float8gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 298 (  float8ge                 PGUID 12 f t t t 2 f 16 "701 701" 100 0 0 100  float8ge - ));
+DATA(insert OID = 298 (  float8ge                 PGUID 12 f t t t 2 f 16 "701 701" 100 0 0 100  float8ge - _null_ ));
 DESCR("greater-than-or-equal");
 
-DATA(insert OID = 299 (  float48eq                PGUID 12 f t t t 2 f 16 "700 701" 100 0 0 100  float48eq - ));
+DATA(insert OID = 299 (  float48eq                PGUID 12 f t t t 2 f 16 "700 701" 100 0 0 100  float48eq - _null_ ));
 DESCR("equal");
 
 /* OIDS 300 - 399 */
 
-DATA(insert OID = 300 (  float48ne                PGUID 12 f t t t 2 f 16 "700 701" 100 0 0 100  float48ne - ));
+DATA(insert OID = 300 (  float48ne                PGUID 12 f t t t 2 f 16 "700 701" 100 0 0 100  float48ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 301 (  float48lt                PGUID 12 f t t t 2 f 16 "700 701" 100 0 0 100  float48lt - ));
+DATA(insert OID = 301 (  float48lt                PGUID 12 f t t t 2 f 16 "700 701" 100 0 0 100  float48lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 302 (  float48le                PGUID 12 f t t t 2 f 16 "700 701" 100 0 0 100  float48le - ));
+DATA(insert OID = 302 (  float48le                PGUID 12 f t t t 2 f 16 "700 701" 100 0 0 100  float48le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 303 (  float48gt                PGUID 12 f t t t 2 f 16 "700 701" 100 0 0 100  float48gt - ));
+DATA(insert OID = 303 (  float48gt                PGUID 12 f t t t 2 f 16 "700 701" 100 0 0 100  float48gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 304 (  float48ge                PGUID 12 f t t t 2 f 16 "700 701" 100 0 0 100  float48ge - ));
+DATA(insert OID = 304 (  float48ge                PGUID 12 f t t t 2 f 16 "700 701" 100 0 0 100  float48ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 305 (  float84eq                PGUID 12 f t t t 2 f 16 "701 700" 100 0 0 100  float84eq - ));
+DATA(insert OID = 305 (  float84eq                PGUID 12 f t t t 2 f 16 "701 700" 100 0 0 100  float84eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 306 (  float84ne                PGUID 12 f t t t 2 f 16 "701 700" 100 0 0 100  float84ne - ));
+DATA(insert OID = 306 (  float84ne                PGUID 12 f t t t 2 f 16 "701 700" 100 0 0 100  float84ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 307 (  float84lt                PGUID 12 f t t t 2 f 16 "701 700" 100 0 0 100  float84lt - ));
+DATA(insert OID = 307 (  float84lt                PGUID 12 f t t t 2 f 16 "701 700" 100 0 0 100  float84lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 308 (  float84le                PGUID 12 f t t t 2 f 16 "701 700" 100 0 0 100  float84le - ));
+DATA(insert OID = 308 (  float84le                PGUID 12 f t t t 2 f 16 "701 700" 100 0 0 100  float84le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 309 (  float84gt                PGUID 12 f t t t 2 f 16 "701 700" 100 0 0 100  float84gt - ));
+DATA(insert OID = 309 (  float84gt                PGUID 12 f t t t 2 f 16 "701 700" 100 0 0 100  float84gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 310 (  float84ge                PGUID 12 f t t t 2 f 16 "701 700" 100 0 0 100  float84ge - ));
+DATA(insert OID = 310 (  float84ge                PGUID 12 f t t t 2 f 16 "701 700" 100 0 0 100  float84ge - _null_ ));
 DESCR("greater-than-or-equal");
 
-DATA(insert OID = 311 (  float8                           PGUID 12 f t t t 1 f 701 "700" 100 0 0 100  ftod - ));
+DATA(insert OID = 311 (  float8                           PGUID 12 f t t t 1 f 701 "700" 100 0 0 100  ftod - _null_ ));
 DESCR("convert float4 to float8");
-DATA(insert OID = 312 (  float4                           PGUID 12 f t t t 1 f 700 "701" 100 0 0 100  dtof - ));
+DATA(insert OID = 312 (  float4                           PGUID 12 f t t t 1 f 700 "701" 100 0 0 100  dtof - _null_ ));
 DESCR("convert float8 to float4");
-DATA(insert OID = 313 (  int4                     PGUID 12 f t t t 1 f  23  "21" 100 0 0 100  i2toi4 - ));
+DATA(insert OID = 313 (  int4                     PGUID 12 f t t t 1 f  23  "21" 100 0 0 100  i2toi4 - _null_ ));
 DESCR("convert int2 to int4");
-DATA(insert OID = 314 (  int2                     PGUID 12 f t t t 1 f  21  "23" 100 0 0 100  i4toi2 - ));
+DATA(insert OID = 314 (  int2                     PGUID 12 f t t t 1 f  21  "23" 100 0 0 100  i4toi2 - _null_ ));
 DESCR("convert int4 to int2");
-DATA(insert OID = 315 (  int2vectoreq     PGUID 12 f t t t 2 f  16  "22 22" 100 0 0 100  int2vectoreq - ));
+DATA(insert OID = 315 (  int2vectoreq     PGUID 12 f t t t 2 f  16  "22 22" 100 0 0 100  int2vectoreq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 316 (  float8                           PGUID 12 f t t t 1 f 701  "23" 100 0 0 100  i4tod - ));
+DATA(insert OID = 316 (  float8                           PGUID 12 f t t t 1 f 701  "23" 100 0 0 100  i4tod - _null_ ));
 DESCR("convert int4 to float8");
-DATA(insert OID = 317 (  int4                     PGUID 12 f t t t 1 f  23 "701" 100 0 0 100  dtoi4 - ));
+DATA(insert OID = 317 (  int4                     PGUID 12 f t t t 1 f  23 "701" 100 0 0 100  dtoi4 - _null_ ));
 DESCR("convert float8 to int4");
-DATA(insert OID = 318 (  float4                           PGUID 12 f t t t 1 f 700  "23" 100 0 0 100  i4tof - ));
+DATA(insert OID = 318 (  float4                           PGUID 12 f t t t 1 f 700  "23" 100 0 0 100  i4tof - _null_ ));
 DESCR("convert int4 to float4");
-DATA(insert OID = 319 (  int4                     PGUID 12 f t t t 1 f  23 "700" 100 0 0 100  ftoi4 - ));
+DATA(insert OID = 319 (  int4                     PGUID 12 f t t t 1 f  23 "700" 100 0 0 100  ftoi4 - _null_ ));
 DESCR("convert float4 to int4");
 
-DATA(insert OID = 320 (  rtinsert                 PGUID 12 f t f t 5 f 23 "0 0 0 0 0" 100 0 0 100      rtinsert - ));
+DATA(insert OID = 320 (  rtinsert                 PGUID 12 f t f t 5 f 23 "0 0 0 0 0" 100 0 0 100      rtinsert - _null_ ));
 DESCR("r-tree(internal)");
-DATA(insert OID = 322 (  rtgettuple               PGUID 12 f t f t 2 f 23 "0 0" 100 0 0 100  rtgettuple - ));
+DATA(insert OID = 322 (  rtgettuple               PGUID 12 f t f t 2 f 23 "0 0" 100 0 0 100  rtgettuple - _null_ ));
 DESCR("r-tree(internal)");
-DATA(insert OID = 323 (  rtbuild                  PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100  rtbuild - ));
+DATA(insert OID = 323 (  rtbuild                  PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100  rtbuild - _null_ ));
 DESCR("r-tree(internal)");
-DATA(insert OID = 324 (  rtbeginscan      PGUID 12 f t f t 4 f 23 "0 0 0 0" 100 0 0 100  rtbeginscan - ));
+DATA(insert OID = 324 (  rtbeginscan      PGUID 12 f t f t 4 f 23 "0 0 0 0" 100 0 0 100  rtbeginscan - _null_ ));
 DESCR("r-tree(internal)");
-DATA(insert OID = 325 (  rtendscan                PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      rtendscan - ));
+DATA(insert OID = 325 (  rtendscan                PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      rtendscan - _null_ ));
 DESCR("r-tree(internal)");
-DATA(insert OID = 326 (  rtmarkpos                PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      rtmarkpos - ));
+DATA(insert OID = 326 (  rtmarkpos                PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      rtmarkpos - _null_ ));
 DESCR("r-tree(internal)");
-DATA(insert OID = 327 (  rtrestrpos               PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      rtrestrpos - ));
+DATA(insert OID = 327 (  rtrestrpos               PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      rtrestrpos - _null_ ));
 DESCR("r-tree(internal)");
-DATA(insert OID = 328 (  rtrescan                 PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100  rtrescan - ));
+DATA(insert OID = 328 (  rtrescan                 PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100  rtrescan - _null_ ));
 DESCR("r-tree(internal)");
-DATA(insert OID = 321 (  rtbulkdelete     PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100  rtbulkdelete - ));
+DATA(insert OID = 321 (  rtbulkdelete     PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100  rtbulkdelete - _null_ ));
 DESCR("r-tree(internal)");
-DATA(insert OID = 1265 (  rtcostestimate   PGUID 12 f t f t 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100  rtcostestimate - ));
+DATA(insert OID = 1265 (  rtcostestimate   PGUID 12 f t f t 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100  rtcostestimate - _null_ ));
 DESCR("r-tree(internal)");
 
-DATA(insert OID = 330 (  btgettuple               PGUID 12 f t f t 2 f 23 "0 0" 100 0 0 100  btgettuple - ));
+DATA(insert OID = 330 (  btgettuple               PGUID 12 f t f t 2 f 23 "0 0" 100 0 0 100  btgettuple - _null_ ));
 DESCR("btree(internal)");
-DATA(insert OID = 331 (  btinsert                 PGUID 12 f t f t 5 f 23 "0 0 0 0 0" 100 0 0 100      btinsert - ));
+DATA(insert OID = 331 (  btinsert                 PGUID 12 f t f t 5 f 23 "0 0 0 0 0" 100 0 0 100      btinsert - _null_ ));
 DESCR("btree(internal)");
-DATA(insert OID = 333 (  btbeginscan      PGUID 12 f t f t 4 f 23 "0 0 0 0" 100 0 0 100  btbeginscan - ));
+DATA(insert OID = 333 (  btbeginscan      PGUID 12 f t f t 4 f 23 "0 0 0 0" 100 0 0 100  btbeginscan - _null_ ));
 DESCR("btree(internal)");
-DATA(insert OID = 334 (  btrescan                 PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100  btrescan - ));
+DATA(insert OID = 334 (  btrescan                 PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100  btrescan - _null_ ));
 DESCR("btree(internal)");
-DATA(insert OID = 335 (  btendscan                PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      btendscan - ));
+DATA(insert OID = 335 (  btendscan                PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      btendscan - _null_ ));
 DESCR("btree(internal)");
-DATA(insert OID = 336 (  btmarkpos                PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      btmarkpos - ));
+DATA(insert OID = 336 (  btmarkpos                PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      btmarkpos - _null_ ));
 DESCR("btree(internal)");
-DATA(insert OID = 337 (  btrestrpos               PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      btrestrpos - ));
+DATA(insert OID = 337 (  btrestrpos               PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      btrestrpos - _null_ ));
 DESCR("btree(internal)");
-DATA(insert OID = 338 (  btbuild                  PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100  btbuild - ));
+DATA(insert OID = 338 (  btbuild                  PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100  btbuild - _null_ ));
 DESCR("btree(internal)");
-DATA(insert OID = 332 (  btbulkdelete     PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100  btbulkdelete - ));
+DATA(insert OID = 332 (  btbulkdelete     PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100  btbulkdelete - _null_ ));
 DESCR("btree(internal)");
-DATA(insert OID = 1268 (  btcostestimate   PGUID 12 f t f t 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100  btcostestimate - ));
+DATA(insert OID = 1268 (  btcostestimate   PGUID 12 f t f t 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100  btcostestimate - _null_ ));
 DESCR("btree(internal)");
 
-DATA(insert OID = 339 (  poly_same                PGUID 12 f t t t 2 f 16 "604 604" 100 0 0 100  poly_same - ));
+DATA(insert OID = 339 (  poly_same                PGUID 12 f t t t 2 f 16 "604 604" 100 0 0 100  poly_same - _null_ ));
 DESCR("same as");
-DATA(insert OID = 340 (  poly_contain     PGUID 12 f t t t 2 f 16 "604 604" 100 0 0 100  poly_contain - ));
+DATA(insert OID = 340 (  poly_contain     PGUID 12 f t t t 2 f 16 "604 604" 100 0 0 100  poly_contain - _null_ ));
 DESCR("contains");
-DATA(insert OID = 341 (  poly_left                PGUID 12 f t t t 2 f 16 "604 604" 100 0 0 100  poly_left - ));
+DATA(insert OID = 341 (  poly_left                PGUID 12 f t t t 2 f 16 "604 604" 100 0 0 100  poly_left - _null_ ));
 DESCR("is left of");
-DATA(insert OID = 342 (  poly_overleft    PGUID 12 f t t t 2 f 16 "604 604" 100 0 0 100  poly_overleft - ));
+DATA(insert OID = 342 (  poly_overleft    PGUID 12 f t t t 2 f 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    PGUID 12 f t t t 2 f 16 "604 604" 100 0 0 100  poly_overright - ));
+DATA(insert OID = 343 (  poly_overright    PGUID 12 f t t t 2 f 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               PGUID 12 f t t t 2 f 16 "604 604" 100 0 0 100  poly_right - ));
+DATA(insert OID = 344 (  poly_right               PGUID 12 f t t t 2 f 16 "604 604" 100 0 0 100  poly_right - _null_ ));
 DESCR("is right of");
-DATA(insert OID = 345 (  poly_contained    PGUID 12 f t t t 2 f 16 "604 604" 100 0 0 100  poly_contained - ));
+DATA(insert OID = 345 (  poly_contained    PGUID 12 f t t t 2 f 16 "604 604" 100 0 0 100  poly_contained - _null_ ));
 DESCR("contained in");
-DATA(insert OID = 346 (  poly_overlap     PGUID 12 f t t t 2 f 16 "604 604" 100 0 0 100  poly_overlap - ));
+DATA(insert OID = 346 (  poly_overlap     PGUID 12 f t t t 2 f 16 "604 604" 100 0 0 100  poly_overlap - _null_ ));
 DESCR("overlaps");
-DATA(insert OID = 347 (  poly_in                  PGUID 12 f t t t 1 f 604 "0" 100 0 0 100  poly_in - ));
+DATA(insert OID = 347 (  poly_in                  PGUID 12 f t t t 1 f 604 "0" 100 0 0 100  poly_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 348 (  poly_out                 PGUID 12 f t t t 1 f 23      "0" 100 0 0 100  poly_out - ));
+DATA(insert OID = 348 (  poly_out                 PGUID 12 f t t t 1 f 23      "0" 100 0 0 100  poly_out - _null_ ));
 DESCR("(internal)");
 
-DATA(insert OID = 350 (  btint2cmp                PGUID 12 f t t t 2 f 23 "21 21" 100 0 0 100  btint2cmp - ));
+DATA(insert OID = 350 (  btint2cmp                PGUID 12 f t t t 2 f 23 "21 21" 100 0 0 100  btint2cmp - _null_ ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 351 (  btint4cmp                PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  btint4cmp - ));
+DATA(insert OID = 351 (  btint4cmp                PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  btint4cmp - _null_ ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 842 (  btint8cmp                PGUID 12 f t t t 2 f 23 "20 20" 100 0 0 100  btint8cmp - ));
+DATA(insert OID = 842 (  btint8cmp                PGUID 12 f t t t 2 f 23 "20 20" 100 0 0 100  btint8cmp - _null_ ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 354 (  btfloat4cmp      PGUID 12 f t t t 2 f 23 "700 700" 100 0 0 100  btfloat4cmp - ));
+DATA(insert OID = 354 (  btfloat4cmp      PGUID 12 f t t t 2 f 23 "700 700" 100 0 0 100  btfloat4cmp - _null_ ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 355 (  btfloat8cmp      PGUID 12 f t t t 2 f 23 "701 701" 100 0 0 100  btfloat8cmp - ));
+DATA(insert OID = 355 (  btfloat8cmp      PGUID 12 f t t t 2 f 23 "701 701" 100 0 0 100  btfloat8cmp - _null_ ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 356 (  btoidcmp                 PGUID 12 f t t t 2 f 23 "26 26" 100 0 0 100  btoidcmp - ));
+DATA(insert OID = 356 (  btoidcmp                 PGUID 12 f t t t 2 f 23 "26 26" 100 0 0 100  btoidcmp - _null_ ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 404 (  btoidvectorcmp    PGUID 12 f t t t 2 f 23 "30 30" 100 0 0 100 btoidvectorcmp - ));
+DATA(insert OID = 404 (  btoidvectorcmp    PGUID 12 f t t t 2 f 23 "30 30" 100 0 0 100 btoidvectorcmp - _null_ ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 357 (  btabstimecmp     PGUID 12 f t t t 2 f 23 "702 702" 100 0 0 100  btabstimecmp - ));
+DATA(insert OID = 357 (  btabstimecmp     PGUID 12 f t t t 2 f 23 "702 702" 100 0 0 100  btabstimecmp - _null_ ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 358 (  btcharcmp                PGUID 12 f t t t 2 f 23 "18 18" 100 0 0 100  btcharcmp - ));
+DATA(insert OID = 358 (  btcharcmp                PGUID 12 f t t t 2 f 23 "18 18" 100 0 0 100  btcharcmp - _null_ ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 359 (  btnamecmp                PGUID 12 f t t t 2 f 23 "19 19" 100 0 0 100  btnamecmp - ));
+DATA(insert OID = 359 (  btnamecmp                PGUID 12 f t t t 2 f 23 "19 19" 100 0 0 100  btnamecmp - _null_ ));
 DESCR("btree less-equal-greater");
-DATA(insert OID = 360 (  bttextcmp                PGUID 12 f t t t 2 f 23 "25 25" 100 0 0 100  bttextcmp - ));
+DATA(insert OID = 360 (  bttextcmp                PGUID 12 f t t t 2 f 23 "25 25" 100 0 0 100  bttextcmp - _null_ ));
 DESCR("btree less-equal-greater");
 
-DATA(insert OID = 361 (  lseg_distance    PGUID 12 f t t t 2 f 701 "601 601" 100 0 0 100  lseg_distance - ));
+DATA(insert OID = 361 (  lseg_distance    PGUID 12 f t t t 2 f 701 "601 601" 100 0 0 100  lseg_distance - _null_ ));
 DESCR("distance between");
-DATA(insert OID = 362 (  lseg_interpt     PGUID 12 f t t t 2 f 600 "601 601" 100 0 0 100  lseg_interpt - ));
+DATA(insert OID = 362 (  lseg_interpt     PGUID 12 f t t t 2 f 600 "601 601" 100 0 0 100  lseg_interpt - _null_ ));
 DESCR("");
-DATA(insert OID = 363 (  dist_ps                  PGUID 12 f t t t 2 f 701 "600 601" 100 0 0 100  dist_ps - ));
+DATA(insert OID = 363 (  dist_ps                  PGUID 12 f t t t 2 f 701 "600 601" 100 0 0 100  dist_ps - _null_ ));
 DESCR("distance between");
-DATA(insert OID = 364 (  dist_pb                  PGUID 12 f t t t 2 f 701 "600 603" 100 0 0 100  dist_pb - ));
+DATA(insert OID = 364 (  dist_pb                  PGUID 12 f t t t 2 f 701 "600 603" 100 0 0 100  dist_pb - _null_ ));
 DESCR("distance between point and box");
-DATA(insert OID = 365 (  dist_sb                  PGUID 12 f t t t 2 f 701 "601 603" 100 0 0 100  dist_sb - ));
+DATA(insert OID = 365 (  dist_sb                  PGUID 12 f t t t 2 f 701 "601 603" 100 0 0 100  dist_sb - _null_ ));
 DESCR("distance between segment and box");
-DATA(insert OID = 366 (  close_ps                 PGUID 12 f t t t 2 f 600 "600 601" 100 0 0 100  close_ps - ));
+DATA(insert OID = 366 (  close_ps                 PGUID 12 f t t t 2 f 600 "600 601" 100 0 0 100  close_ps - _null_ ));
 DESCR("closest point on line segment");
-DATA(insert OID = 367 (  close_pb                 PGUID 12 f t t t 2 f 600 "600 603" 100 0 0 100  close_pb - ));
+DATA(insert OID = 367 (  close_pb                 PGUID 12 f t t t 2 f 600 "600 603" 100 0 0 100  close_pb - _null_ ));
 DESCR("closest point on box");
-DATA(insert OID = 368 (  close_sb                 PGUID 12 f t t t 2 f 600 "601 603" 100 0 0 100  close_sb - ));
+DATA(insert OID = 368 (  close_sb                 PGUID 12 f t t t 2 f 600 "601 603" 100 0 0 100  close_sb - _null_ ));
 DESCR("closest point to line segment on box");
-DATA(insert OID = 369 (  on_ps                    PGUID 12 f t t t 2 f 16 "600 601" 100 0 0 100  on_ps - ));
+DATA(insert OID = 369 (  on_ps                    PGUID 12 f t t t 2 f 16 "600 601" 100 0 0 100  on_ps - _null_ ));
 DESCR("point contained in segment");
-DATA(insert OID = 370 (  path_distance    PGUID 12 f t t t 2 f 701 "602 602" 100 0 0 100  path_distance - ));
+DATA(insert OID = 370 (  path_distance    PGUID 12 f t t t 2 f 701 "602 602" 100 0 0 100  path_distance - _null_ ));
 DESCR("distance between paths");
-DATA(insert OID = 371 (  dist_ppath               PGUID 12 f t t t 2 f 701 "600 602" 100 0 0 100  dist_ppath - ));
+DATA(insert OID = 371 (  dist_ppath               PGUID 12 f t t t 2 f 701 "600 602" 100 0 0 100  dist_ppath - _null_ ));
 DESCR("distance between point and path");
-DATA(insert OID = 372 (  on_sb                    PGUID 12 f t t t 2 f 16 "601 603" 100 0 0 100  on_sb - ));
+DATA(insert OID = 372 (  on_sb                    PGUID 12 f t t t 2 f 16 "601 603" 100 0 0 100  on_sb - _null_ ));
 DESCR("contained in");
-DATA(insert OID = 373 (  inter_sb                 PGUID 12 f t t t 2 f 16 "601 603" 100 0 0 100  inter_sb - ));
+DATA(insert OID = 373 (  inter_sb                 PGUID 12 f t t t 2 f 16 "601 603" 100 0 0 100  inter_sb - _null_ ));
 DESCR("intersects?");
 
 /* OIDS 400 - 499 */
 
-DATA(insert OID =  406 (  text                    PGUID 12 f t t t 1 f 25 "19" 100 0 0 100 name_text - ));
+DATA(insert OID =  406 (  text                    PGUID 12 f t t t 1 f 25 "19" 100 0 0 100 name_text - _null_ ));
 DESCR("convert name to text");
-DATA(insert OID =  407 (  name                    PGUID 12 f t t t 1 f 19 "25" 100 0 0 100 text_name - ));
+DATA(insert OID =  407 (  name                    PGUID 12 f t t t 1 f 19 "25" 100 0 0 100 text_name - _null_ ));
 DESCR("convert text to name");
-DATA(insert OID =  408 (  bpchar                  PGUID 12 f t t t 1 f 1042 "19" 100 0 0 100 name_bpchar - ));
+DATA(insert OID =  408 (  bpchar                  PGUID 12 f t t t 1 f 1042 "19" 100 0 0 100 name_bpchar - _null_ ));
 DESCR("convert name to char()");
-DATA(insert OID =  409 (  name                    PGUID 12 f t t t 1 f 19 "1042" 100 0 0 100  bpchar_name - ));
+DATA(insert OID =  409 (  name                    PGUID 12 f t t t 1 f 19 "1042" 100 0 0 100  bpchar_name - _null_ ));
 DESCR("convert char() to name");
 
-DATA(insert OID = 440 (  hashgettuple     PGUID 12 f t f t 2 f 23 "0 0" 100 0 0 100  hashgettuple - ));
+DATA(insert OID = 440 (  hashgettuple     PGUID 12 f t f t 2 f 23 "0 0" 100 0 0 100  hashgettuple - _null_ ));
 DESCR("hash(internal)");
-DATA(insert OID = 441 (  hashinsert               PGUID 12 f t f t 5 f 23 "0 0 0 0 0" 100 0 0 100      hashinsert - ));
+DATA(insert OID = 441 (  hashinsert               PGUID 12 f t f t 5 f 23 "0 0 0 0 0" 100 0 0 100      hashinsert - _null_ ));
 DESCR("hash(internal)");
-DATA(insert OID = 443 (  hashbeginscan    PGUID 12 f t f t 4 f 23 "0 0 0 0" 100 0 0 100  hashbeginscan - ));
+DATA(insert OID = 443 (  hashbeginscan    PGUID 12 f t f t 4 f 23 "0 0 0 0" 100 0 0 100  hashbeginscan - _null_ ));
 DESCR("hash(internal)");
-DATA(insert OID = 444 (  hashrescan               PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100  hashrescan - ));
+DATA(insert OID = 444 (  hashrescan               PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100  hashrescan - _null_ ));
 DESCR("hash(internal)");
-DATA(insert OID = 445 (  hashendscan      PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      hashendscan - ));
+DATA(insert OID = 445 (  hashendscan      PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      hashendscan - _null_ ));
 DESCR("hash(internal)");
-DATA(insert OID = 446 (  hashmarkpos      PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      hashmarkpos - ));
+DATA(insert OID = 446 (  hashmarkpos      PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      hashmarkpos - _null_ ));
 DESCR("hash(internal)");
-DATA(insert OID = 447 (  hashrestrpos     PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      hashrestrpos - ));
+DATA(insert OID = 447 (  hashrestrpos     PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      hashrestrpos - _null_ ));
 DESCR("hash(internal)");
-DATA(insert OID = 448 (  hashbuild                PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100  hashbuild - ));
+DATA(insert OID = 448 (  hashbuild                PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100  hashbuild - _null_ ));
 DESCR("hash(internal)");
-DATA(insert OID = 442 (  hashbulkdelete    PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100 hashbulkdelete - ));
+DATA(insert OID = 442 (  hashbulkdelete    PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100 hashbulkdelete - _null_ ));
 DESCR("hash(internal)");
-DATA(insert OID = 438 (  hashcostestimate  PGUID 12 f t f t 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100  hashcostestimate - ));
+DATA(insert OID = 438 (  hashcostestimate  PGUID 12 f t f t 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100  hashcostestimate - _null_ ));
 DESCR("hash(internal)");
 
-DATA(insert OID = 449 (  hashint2                 PGUID 12 f t t t 1 f 23 "21" 100 0 0 100  hashint2 - ));
+DATA(insert OID = 449 (  hashint2                 PGUID 12 f t t t 1 f 23 "21" 100 0 0 100  hashint2 - _null_ ));
 DESCR("hash");
-DATA(insert OID = 450 (  hashint4                 PGUID 12 f t t t 1 f 23 "23" 100 0 0 100  hashint4 - ));
+DATA(insert OID = 450 (  hashint4                 PGUID 12 f t t t 1 f 23 "23" 100 0 0 100  hashint4 - _null_ ));
 DESCR("hash");
-DATA(insert OID = 949 (  hashint8                 PGUID 12 f t t t 1 f 23 "20" 100 0 0 100  hashint8 - ));
+DATA(insert OID = 949 (  hashint8                 PGUID 12 f t t t 1 f 23 "20" 100 0 0 100  hashint8 - _null_ ));
 DESCR("hash");
-DATA(insert OID = 451 (  hashfloat4               PGUID 12 f t t t 1 f 23 "700" 100 0 0 100  hashfloat4 - ));
+DATA(insert OID = 451 (  hashfloat4               PGUID 12 f t t t 1 f 23 "700" 100 0 0 100  hashfloat4 - _null_ ));
 DESCR("hash");
-DATA(insert OID = 452 (  hashfloat8               PGUID 12 f t t t 1 f 23 "701" 100 0 0 100  hashfloat8 - ));
+DATA(insert OID = 452 (  hashfloat8               PGUID 12 f t t t 1 f 23 "701" 100 0 0 100  hashfloat8 - _null_ ));
 DESCR("hash");
-DATA(insert OID = 453 (  hashoid                  PGUID 12 f t t t 1 f 23 "26" 100 0 0 100  hashoid - ));
+DATA(insert OID = 453 (  hashoid                  PGUID 12 f t t t 1 f 23 "26" 100 0 0 100  hashoid - _null_ ));
 DESCR("hash");
-DATA(insert OID = 454 (  hashchar                 PGUID 12 f t t t 1 f 23 "18" 100 0 0 100  hashchar - ));
+DATA(insert OID = 454 (  hashchar                 PGUID 12 f t t t 1 f 23 "18" 100 0 0 100  hashchar - _null_ ));
 DESCR("hash");
-DATA(insert OID = 455 (  hashname                 PGUID 12 f t t t 1 f 23 "19" 100 0 0 100  hashname - ));
+DATA(insert OID = 455 (  hashname                 PGUID 12 f t t t 1 f 23 "19" 100 0 0 100  hashname - _null_ ));
 DESCR("hash");
-DATA(insert OID = 456 (  hashvarlena      PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      hashvarlena - ));
+DATA(insert OID = 456 (  hashvarlena      PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      hashvarlena - _null_ ));
 DESCR("hash any varlena type");
-DATA(insert OID = 457 (  hashoidvector    PGUID 12 f t t t 1 f 23 "30" 100 0 0 100  hashoidvector - ));
+DATA(insert OID = 457 (  hashoidvector    PGUID 12 f t t t 1 f 23 "30" 100 0 0 100  hashoidvector - _null_ ));
 DESCR("hash");
-DATA(insert OID = 399 (  hashmacaddr      PGUID 12 f t t t 1 f 23 "829" 100 0 0 100  hashmacaddr - ));
+DATA(insert OID = 399 (  hashmacaddr      PGUID 12 f t t t 1 f 23 "829" 100 0 0 100  hashmacaddr - _null_ ));
 DESCR("hash");
-DATA(insert OID = 458 (  text_larger      PGUID 12 f t t t 2 f 25 "25 25" 100 0 0 100  text_larger - ));
+DATA(insert OID = 458 (  text_larger      PGUID 12 f t t t 2 f 25 "25 25" 100 0 0 100  text_larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 459 (  text_smaller     PGUID 12 f t t t 2 f 25 "25 25" 100 0 0 100  text_smaller - ));
+DATA(insert OID = 459 (  text_smaller     PGUID 12 f t t t 2 f 25 "25 25" 100 0 0 100  text_smaller - _null_ ));
 DESCR("smaller of two");
 
-DATA(insert OID = 460 (  int8in                           PGUID 12 f t t t 1 f 20 "0" 100 0 0 100      int8in - ));
+DATA(insert OID = 460 (  int8in                           PGUID 12 f t t t 1 f 20 "0" 100 0 0 100      int8in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 461 (  int8out                  PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      int8out - ));
+DATA(insert OID = 461 (  int8out                  PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      int8out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 462 (  int8um                           PGUID 12 f t t t 1 f 20 "20" 100 0 0 100  int8um - ));
+DATA(insert OID = 462 (  int8um                           PGUID 12 f t t t 1 f 20 "20" 100 0 0 100  int8um - _null_ ));
 DESCR("negate");
-DATA(insert OID = 463 (  int8pl                           PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8pl - ));
+DATA(insert OID = 463 (  int8pl                           PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 464 (  int8mi                           PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8mi - ));
+DATA(insert OID = 464 (  int8mi                           PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 465 (  int8mul                  PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8mul - ));
+DATA(insert OID = 465 (  int8mul                  PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 466 (  int8div                  PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8div - ));
+DATA(insert OID = 466 (  int8div                  PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 467 (  int8eq                           PGUID 12 f t t t 2 f 16 "20 20" 100 0 0 100  int8eq - ));
+DATA(insert OID = 467 (  int8eq                           PGUID 12 f t t t 2 f 16 "20 20" 100 0 0 100  int8eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 468 (  int8ne                           PGUID 12 f t t t 2 f 16 "20 20" 100 0 0 100  int8ne - ));
+DATA(insert OID = 468 (  int8ne                           PGUID 12 f t t t 2 f 16 "20 20" 100 0 0 100  int8ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 469 (  int8lt                           PGUID 12 f t t t 2 f 16 "20 20" 100 0 0 100  int8lt - ));
+DATA(insert OID = 469 (  int8lt                           PGUID 12 f t t t 2 f 16 "20 20" 100 0 0 100  int8lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 470 (  int8gt                           PGUID 12 f t t t 2 f 16 "20 20" 100 0 0 100  int8gt - ));
+DATA(insert OID = 470 (  int8gt                           PGUID 12 f t t t 2 f 16 "20 20" 100 0 0 100  int8gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 471 (  int8le                           PGUID 12 f t t t 2 f 16 "20 20" 100 0 0 100  int8le - ));
+DATA(insert OID = 471 (  int8le                           PGUID 12 f t t t 2 f 16 "20 20" 100 0 0 100  int8le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 472 (  int8ge                           PGUID 12 f t t t 2 f 16 "20 20" 100 0 0 100  int8ge - ));
+DATA(insert OID = 472 (  int8ge                           PGUID 12 f t t t 2 f 16 "20 20" 100 0 0 100  int8ge - _null_ ));
 DESCR("greater-than-or-equal");
 
-DATA(insert OID = 474 (  int84eq                  PGUID 12 f t t t 2 f 16 "20 23" 100 0 0 100  int84eq - ));
+DATA(insert OID = 474 (  int84eq                  PGUID 12 f t t t 2 f 16 "20 23" 100 0 0 100  int84eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 475 (  int84ne                  PGUID 12 f t t t 2 f 16 "20 23" 100 0 0 100  int84ne - ));
+DATA(insert OID = 475 (  int84ne                  PGUID 12 f t t t 2 f 16 "20 23" 100 0 0 100  int84ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 476 (  int84lt                  PGUID 12 f t t t 2 f 16 "20 23" 100 0 0 100  int84lt - ));
+DATA(insert OID = 476 (  int84lt                  PGUID 12 f t t t 2 f 16 "20 23" 100 0 0 100  int84lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 477 (  int84gt                  PGUID 12 f t t t 2 f 16 "20 23" 100 0 0 100  int84gt - ));
+DATA(insert OID = 477 (  int84gt                  PGUID 12 f t t t 2 f 16 "20 23" 100 0 0 100  int84gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 478 (  int84le                  PGUID 12 f t t t 2 f 16 "20 23" 100 0 0 100  int84le - ));
+DATA(insert OID = 478 (  int84le                  PGUID 12 f t t t 2 f 16 "20 23" 100 0 0 100  int84le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 479 (  int84ge                  PGUID 12 f t t t 2 f 16 "20 23" 100 0 0 100  int84ge - ));
+DATA(insert OID = 479 (  int84ge                  PGUID 12 f t t t 2 f 16 "20 23" 100 0 0 100  int84ge - _null_ ));
 DESCR("greater-than-or-equal");
 
-DATA(insert OID = 480 (  int4                     PGUID 12 f t t t 1 f  23 "20" 100 0 0 100  int84 - ));
+DATA(insert OID = 480 (  int4                     PGUID 12 f t t t 1 f  23 "20" 100 0 0 100  int84 - _null_ ));
 DESCR("convert int8 to int4");
-DATA(insert OID = 481 (  int8                     PGUID 12 f t t t 1 f  20 "23" 100 0 0 100  int48 - ));
+DATA(insert OID = 481 (  int8                     PGUID 12 f t t t 1 f  20 "23" 100 0 0 100  int48 - _null_ ));
 DESCR("convert int4 to int8");
-DATA(insert OID = 482 (  float8                           PGUID 12 f t t t 1 f 701 "20" 100 0 0 100  i8tod - ));
+DATA(insert OID = 482 (  float8                           PGUID 12 f t t t 1 f 701 "20" 100 0 0 100  i8tod - _null_ ));
 DESCR("convert int8 to float8");
-DATA(insert OID = 483 (  int8                     PGUID 12 f t t t 1 f  20 "701" 100 0 0 100  dtoi8 - ));
+DATA(insert OID = 483 (  int8                     PGUID 12 f t t t 1 f  20 "701" 100 0 0 100  dtoi8 - _null_ ));
 DESCR("convert float8 to int8");
 
-DATA(insert OID = 714 (  int2                     PGUID 12 f t t t 1 f  21 "20" 100 0 0 100  int82 - ));
+DATA(insert OID = 714 (  int2                     PGUID 12 f t t t 1 f  21 "20" 100 0 0 100  int82 - _null_ ));
 DESCR("convert int8 to int2");
-DATA(insert OID = 754 (  int8                     PGUID 12 f t t t 1 f  20 "21" 100 0 0 100  int28 - ));
+DATA(insert OID = 754 (  int8                     PGUID 12 f t t t 1 f  20 "21" 100 0 0 100  int28 - _null_ ));
 DESCR("convert int2 to int8");
 
 /* OIDS 500 - 599 */
 
 /* OIDS 600 - 699 */
 
-DATA(insert OID = 1285 (  int4notin               PGUID 12 f t f t 2 f 16 "23 25" 100 0 0 100  int4notin - ));
+DATA(insert OID = 1285 (  int4notin               PGUID 12 f t f t 2 f 16 "23 25" 100 0 0 100  int4notin - _null_ ));
 DESCR("not in");
-DATA(insert OID = 1286 (  oidnotin                PGUID 12 f t f t 2 f 16 "26 25" 100 0 0 100  oidnotin - ));
+DATA(insert OID = 1286 (  oidnotin                PGUID 12 f t f t 2 f 16 "26 25" 100 0 0 100  oidnotin - _null_ ));
 DESCR("not in");
-DATA(insert OID = 1287 (  int44in                 PGUID 12 f t t t 1 f 22 "0" 100 0 0 100      int44in - ));
+DATA(insert OID = 1287 (  int44in                 PGUID 12 f t t t 1 f 22 "0" 100 0 0 100      int44in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 653 (  int44out                 PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      int44out - ));
+DATA(insert OID = 653 (  int44out                 PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      int44out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 655 (  namelt                           PGUID 12 f t t t 2 f 16 "19 19" 100 0 0 100  namelt - ));
+DATA(insert OID = 655 (  namelt                           PGUID 12 f t t t 2 f 16 "19 19" 100 0 0 100  namelt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 656 (  namele                           PGUID 12 f t t t 2 f 16 "19 19" 100 0 0 100  namele - ));
+DATA(insert OID = 656 (  namele                           PGUID 12 f t t t 2 f 16 "19 19" 100 0 0 100  namele - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 657 (  namegt                           PGUID 12 f t t t 2 f 16 "19 19" 100 0 0 100  namegt - ));
+DATA(insert OID = 657 (  namegt                           PGUID 12 f t t t 2 f 16 "19 19" 100 0 0 100  namegt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 658 (  namege                           PGUID 12 f t t t 2 f 16 "19 19" 100 0 0 100  namege - ));
+DATA(insert OID = 658 (  namege                           PGUID 12 f t t t 2 f 16 "19 19" 100 0 0 100  namege - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 659 (  namene                           PGUID 12 f t t t 2 f 16 "19 19" 100 0 0 100  namene - ));
+DATA(insert OID = 659 (  namene                           PGUID 12 f t t t 2 f 16 "19 19" 100 0 0 100  namene - _null_ ));
 DESCR("not equal");
 
-DATA(insert OID = 668 (  bpchar                           PGUID 12 f t t t 2 f 1042 "1042 23" 100 0 0 100      bpchar - ));
+DATA(insert OID = 668 (  bpchar                           PGUID 12 f t t t 2 f 1042 "1042 23" 100 0 0 100      bpchar - _null_ ));
 DESCR("adjust char() to typmod length");
-DATA(insert OID = 669 (  varchar                  PGUID 12 f t t t 2 f 1043 "1043 23" 100 0 0 100      varchar - ));
+DATA(insert OID = 669 (  varchar                  PGUID 12 f t t t 2 f 1043 "1043 23" 100 0 0 100      varchar - _null_ ));
 DESCR("adjust varchar() to typmod length");
 
-DATA(insert OID = 676 (  mktinterval      PGUID 12 f t t t 2 f 704 "702 702" 100 0 0 100 mktinterval - ));
+DATA(insert OID = 676 (  mktinterval      PGUID 12 f t t t 2 f 704 "702 702" 100 0 0 100 mktinterval - _null_ ));
 DESCR("convert to tinterval");
-DATA(insert OID = 619 (  oidvectorne      PGUID 12 f t t t 2 f 16 "30 30" 100 0 0 100  oidvectorne - ));
+DATA(insert OID = 619 (  oidvectorne      PGUID 12 f t t t 2 f 16 "30 30" 100 0 0 100  oidvectorne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 677 (  oidvectorlt      PGUID 12 f t t t 2 f 16 "30 30" 100 0 0 100  oidvectorlt - ));
+DATA(insert OID = 677 (  oidvectorlt      PGUID 12 f t t t 2 f 16 "30 30" 100 0 0 100  oidvectorlt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 678 (  oidvectorle      PGUID 12 f t t t 2 f 16 "30 30" 100 0 0 100  oidvectorle - ));
+DATA(insert OID = 678 (  oidvectorle      PGUID 12 f t t t 2 f 16 "30 30" 100 0 0 100  oidvectorle - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 679 (  oidvectoreq      PGUID 12 f t t t 2 f 16 "30 30" 100 0 0 100  oidvectoreq - ));
+DATA(insert OID = 679 (  oidvectoreq      PGUID 12 f t t t 2 f 16 "30 30" 100 0 0 100  oidvectoreq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 680 (  oidvectorge      PGUID 12 f t t t 2 f 16 "30 30" 100 0 0 100  oidvectorge - ));
+DATA(insert OID = 680 (  oidvectorge      PGUID 12 f t t t 2 f 16 "30 30" 100 0 0 100  oidvectorge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 681 (  oidvectorgt      PGUID 12 f t t t 2 f 16 "30 30" 100 0 0 100  oidvectorgt - ));
+DATA(insert OID = 681 (  oidvectorgt      PGUID 12 f t t t 2 f 16 "30 30" 100 0 0 100  oidvectorgt - _null_ ));
 DESCR("greater-than");
 
 /* OIDS 700 - 799 */
-DATA(insert OID = 710 (  getpgusername    PGUID 12 f t f t 0 f 19 "0" 100 0 0 100      current_user - ));
+DATA(insert OID = 710 (  getpgusername    PGUID 12 f t f t 0 f 19 "0" 100 0 0 100      current_user - _null_ ));
 DESCR("deprecated -- use current_user");
-DATA(insert OID = 711 (  userfntest               PGUID 12 f t t t 1 f 23 "23" 100 0 0 100  userfntest - ));
+DATA(insert OID = 711 (  userfntest               PGUID 12 f t t t 1 f 23 "23" 100 0 0 100  userfntest - _null_ ));
 DESCR("");
-DATA(insert OID = 713 (  oidrand                  PGUID 12 f t f t 2 f 16 "26 23" 100 0 0 100  oidrand - ));
+DATA(insert OID = 713 (  oidrand                  PGUID 12 f t f t 2 f 16 "26 23" 100 0 0 100  oidrand - _null_ ));
 DESCR("random");
-DATA(insert OID = 715 (  oidsrand                 PGUID 12 f t f t 1 f 16 "23" 100 0 0 100  oidsrand - ));
+DATA(insert OID = 715 (  oidsrand                 PGUID 12 f t f t 1 f 16 "23" 100 0 0 100  oidsrand - _null_ ));
 DESCR("seed random number generator");
-DATA(insert OID = 716 (  oidlt                    PGUID 12 f t t t 2 f 16 "26 26" 100 0 0 100  oidlt - ));
+DATA(insert OID = 716 (  oidlt                    PGUID 12 f t t t 2 f 16 "26 26" 100 0 0 100  oidlt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 717 (  oidle                    PGUID 12 f t t t 2 f 16 "26 26" 100 0 0 100  oidle - ));
+DATA(insert OID = 717 (  oidle                    PGUID 12 f t t t 2 f 16 "26 26" 100 0 0 100  oidle - _null_ ));
 DESCR("less-than-or-equal");
 
-DATA(insert OID = 720 (  octet_length     PGUID 12 f t t t 1 f 23 "17" 100 0 0 100  byteaoctetlen - ));
+DATA(insert OID = 720 (  octet_length     PGUID 12 f t t t 1 f 23 "17" 100 0 0 100  byteaoctetlen - _null_ ));
 DESCR("octet length");
-DATA(insert OID = 721 (  get_byte                 PGUID 12 f t t t 2 f 23 "17 23" 100 0 0 100  byteaGetByte - ));
+DATA(insert OID = 721 (  get_byte                 PGUID 12 f t t t 2 f 23 "17 23" 100 0 0 100  byteaGetByte - _null_ ));
 DESCR("");
-DATA(insert OID = 722 (  set_byte                 PGUID 12 f t t t 3 f 17 "17 23 23" 100 0 0 100  byteaSetByte - ));
+DATA(insert OID = 722 (  set_byte                 PGUID 12 f t t t 3 f 17 "17 23 23" 100 0 0 100  byteaSetByte - _null_ ));
 DESCR("");
-DATA(insert OID = 723 (  get_bit                  PGUID 12 f t t t 2 f 23 "17 23" 100 0 0 100  byteaGetBit - ));
+DATA(insert OID = 723 (  get_bit                  PGUID 12 f t t t 2 f 23 "17 23" 100 0 0 100  byteaGetBit - _null_ ));
 DESCR("");
-DATA(insert OID = 724 (  set_bit                  PGUID 12 f t t t 3 f 17 "17 23 23" 100 0 0 100  byteaSetBit - ));
+DATA(insert OID = 724 (  set_bit                  PGUID 12 f t t t 3 f 17 "17 23 23" 100 0 0 100  byteaSetBit - _null_ ));
 DESCR("");
 
-DATA(insert OID = 725 (  dist_pl                  PGUID 12 f t t t 2 f 701 "600 628" 100 0 0 100  dist_pl - ));
+DATA(insert OID = 725 (  dist_pl                  PGUID 12 f t t t 2 f 701 "600 628" 100 0 0 100  dist_pl - _null_ ));
 DESCR("distance between point and line");
-DATA(insert OID = 726 (  dist_lb                  PGUID 12 f t t t 2 f 701 "628 603" 100 0 0 100  dist_lb - ));
+DATA(insert OID = 726 (  dist_lb                  PGUID 12 f t t t 2 f 701 "628 603" 100 0 0 100  dist_lb - _null_ ));
 DESCR("distance between line and box");
-DATA(insert OID = 727 (  dist_sl                  PGUID 12 f t t t 2 f 701 "601 628" 100 0 0 100  dist_sl - ));
+DATA(insert OID = 727 (  dist_sl                  PGUID 12 f t t t 2 f 701 "601 628" 100 0 0 100  dist_sl - _null_ ));
 DESCR("distance between lseg and line");
-DATA(insert OID = 728 (  dist_cpoly               PGUID 12 f t t t 2 f 701 "718 604" 100 0 0 100  dist_cpoly - ));
+DATA(insert OID = 728 (  dist_cpoly               PGUID 12 f t t t 2 f 701 "718 604" 100 0 0 100  dist_cpoly - _null_ ));
 DESCR("distance between");
-DATA(insert OID = 729 (  poly_distance    PGUID 12 f t t t 2 f 701 "604 604" 100 0 0 100  poly_distance - ));
+DATA(insert OID = 729 (  poly_distance    PGUID 12 f t t t 2 f 701 "604 604" 100 0 0 100  poly_distance - _null_ ));
 DESCR("distance between");
 
-DATA(insert OID = 740 (  text_lt                  PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100  text_lt - ));
+DATA(insert OID = 740 (  text_lt                  PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100  text_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 741 (  text_le                  PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100  text_le - ));
+DATA(insert OID = 741 (  text_le                  PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100  text_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 742 (  text_gt                  PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100  text_gt - ));
+DATA(insert OID = 742 (  text_gt                  PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100  text_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 743 (  text_ge                  PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100  text_ge - ));
+DATA(insert OID = 743 (  text_ge                  PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100  text_ge - _null_ ));
 DESCR("greater-than-or-equal");
 
-DATA(insert OID = 744 (  array_eq                 PGUID 12 f t t t 2 f 16 "0 0" 100 0 0 100 array_eq -));
+DATA(insert OID = 744 (  array_eq                 PGUID 12 f t t t 2 f 16 "0 0" 100 0 0 100 array_eq - _null_ ));
 DESCR("array equal");
 
-DATA(insert OID = 745 (  current_user     PGUID 12 f t f t 0 f 19 "0" 100 0 0 100      current_user - ));
+DATA(insert OID = 745 (  current_user     PGUID 12 f t f t 0 f 19 "0" 100 0 0 100      current_user - _null_ ));
 DESCR("current user name");
-DATA(insert OID = 746 (  session_user     PGUID 12 f t f t 0 f 19 "0" 100 0 0 100      session_user - ));
+DATA(insert OID = 746 (  session_user     PGUID 12 f t f t 0 f 19 "0" 100 0 0 100      session_user - _null_ ));
 DESCR("session user name");
 
-DATA(insert OID = 747 (  array_dims               PGUID 12 f t t t 1 f 25 "0" 100 0 0 100 array_dims -));
+DATA(insert OID = 747 (  array_dims               PGUID 12 f t t t 1 f 25 "0" 100 0 0 100 array_dims - _null_ ));
 DESCR("array dimensions");
-DATA(insert OID = 750 (  array_in                 PGUID 12 f t t t 3 f 23 "0 26 23" 100 0 0 100  array_in - ));
+DATA(insert OID = 750 (  array_in                 PGUID 12 f t t t 3 f 23 "0 26 23" 100 0 0 100  array_in - _null_ ));
 DESCR("array");
-DATA(insert OID = 751 (  array_out                PGUID 12 f t t t 2 f 23 "0 26" 100 0 0 100  array_out - ));
+DATA(insert OID = 751 (  array_out                PGUID 12 f t t t 2 f 23 "0 26" 100 0 0 100  array_out - _null_ ));
 DESCR("array");
 
-DATA(insert OID = 760 (  smgrin                           PGUID 12 f t f t 1 f 210 "0" 100 0 0 100  smgrin - ));
+DATA(insert OID = 760 (  smgrin                           PGUID 12 f t f t 1 f 210 "0" 100 0 0 100  smgrin - _null_ ));
 DESCR("storage manager(internal)");
-DATA(insert OID = 761 (  smgrout                  PGUID 12 f t f t 1 f 23      "0" 100 0 0 100  smgrout - ));
+DATA(insert OID = 761 (  smgrout                  PGUID 12 f t f t 1 f 23      "0" 100 0 0 100  smgrout - _null_ ));
 DESCR("storage manager(internal)");
-DATA(insert OID = 762 (  smgreq                           PGUID 12 f t t t 2 f 16 "210 210" 100 0 0 100  smgreq - ));
+DATA(insert OID = 762 (  smgreq                           PGUID 12 f t t t 2 f 16 "210 210" 100 0 0 100  smgreq - _null_ ));
 DESCR("storage manager");
-DATA(insert OID = 763 (  smgrne                           PGUID 12 f t t t 2 f 16 "210 210" 100 0 0 100  smgrne - ));
+DATA(insert OID = 763 (  smgrne                           PGUID 12 f t t t 2 f 16 "210 210" 100 0 0 100  smgrne - _null_ ));
 DESCR("storage manager");
 
-DATA(insert OID = 764 (  lo_import                PGUID 12 f t f t 1 f 26 "25" 100 0 0 100  lo_import - ));
+DATA(insert OID = 764 (  lo_import                PGUID 12 f t f t 1 f 26 "25" 100 0 0 100  lo_import - _null_ ));
 DESCR("large object import");
-DATA(insert OID = 765 (  lo_export                PGUID 12 f t f t 2 f 23 "26 25" 100 0 0 100  lo_export - ));
+DATA(insert OID = 765 (  lo_export                PGUID 12 f t f t 2 f 23 "26 25" 100 0 0 100  lo_export - _null_ ));
 DESCR("large object export");
 
-DATA(insert OID = 766 (  int4inc                  PGUID 12 f t t t 1 f 23 "23" 100 0 0 100  int4inc - ));
+DATA(insert OID = 766 (  int4inc                  PGUID 12 f t t t 1 f 23 "23" 100 0 0 100  int4inc - _null_ ));
 DESCR("increment");
-DATA(insert OID = 768 (  int4larger               PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4larger - ));
+DATA(insert OID = 768 (  int4larger               PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 769 (  int4smaller      PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4smaller - ));
+DATA(insert OID = 769 (  int4smaller      PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4smaller - _null_ ));
 DESCR("smaller of two");
-DATA(insert OID = 770 (  int2larger               PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2larger - ));
+DATA(insert OID = 770 (  int2larger               PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 771 (  int2smaller      PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2smaller - ));
+DATA(insert OID = 771 (  int2smaller      PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2smaller - _null_ ));
 DESCR("smaller of two");
 
-DATA(insert OID = 774 (  gistgettuple     PGUID 12 f t f t 2 f 23 "0 0" 100 0 0 100  gistgettuple - ));
+DATA(insert OID = 774 (  gistgettuple     PGUID 12 f t f t 2 f 23 "0 0" 100 0 0 100  gistgettuple - _null_ ));
 DESCR("gist(internal)");
-DATA(insert OID = 775 (  gistinsert               PGUID 12 f t f t 5 f 23 "0 0 0 0 0" 100 0 0 100      gistinsert - ));
+DATA(insert OID = 775 (  gistinsert               PGUID 12 f t f t 5 f 23 "0 0 0 0 0" 100 0 0 100      gistinsert - _null_ ));
 DESCR("gist(internal)");
-DATA(insert OID = 777 (  gistbeginscan    PGUID 12 f t f t 4 f 23 "0 0 0 0" 100 0 0 100  gistbeginscan - ));
+DATA(insert OID = 777 (  gistbeginscan    PGUID 12 f t f t 4 f 23 "0 0 0 0" 100 0 0 100  gistbeginscan - _null_ ));
 DESCR("gist(internal)");
-DATA(insert OID = 778 (  gistrescan               PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100  gistrescan - ));
+DATA(insert OID = 778 (  gistrescan               PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100  gistrescan - _null_ ));
 DESCR("gist(internal)");
-DATA(insert OID = 779 (  gistendscan      PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      gistendscan - ));
+DATA(insert OID = 779 (  gistendscan      PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      gistendscan - _null_ ));
 DESCR("gist(internal)");
-DATA(insert OID = 780 (  gistmarkpos      PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      gistmarkpos - ));
+DATA(insert OID = 780 (  gistmarkpos      PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      gistmarkpos - _null_ ));
 DESCR("gist(internal)");
-DATA(insert OID = 781 (  gistrestrpos     PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      gistrestrpos - ));
+DATA(insert OID = 781 (  gistrestrpos     PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      gistrestrpos - _null_ ));
 DESCR("gist(internal)");
-DATA(insert OID = 782 (  gistbuild                PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100  gistbuild - ));
+DATA(insert OID = 782 (  gistbuild                PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100  gistbuild - _null_ ));
 DESCR("gist(internal)");
-DATA(insert OID = 776 (  gistbulkdelete    PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100 gistbulkdelete - ));
+DATA(insert OID = 776 (  gistbulkdelete    PGUID 12 f t f t 3 f 23 "0 0 0" 100 0 0 100 gistbulkdelete - _null_ ));
 DESCR("gist(internal)");
-DATA(insert OID = 772 (  gistcostestimate  PGUID 12 f t f t 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100  gistcostestimate - ));
+DATA(insert OID = 772 (  gistcostestimate  PGUID 12 f t f t 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100  gistcostestimate - _null_ ));
 DESCR("gist(internal)");
 
-DATA(insert OID = 784 (  tintervaleq      PGUID 12 f t t t 2 f 16 "704 704" 100 0 0 100  tintervaleq - ));
+DATA(insert OID = 784 (  tintervaleq      PGUID 12 f t t t 2 f 16 "704 704" 100 0 0 100  tintervaleq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 785 (  tintervalne      PGUID 12 f t t t 2 f 16 "704 704" 100 0 0 100  tintervalne - ));
+DATA(insert OID = 785 (  tintervalne      PGUID 12 f t t t 2 f 16 "704 704" 100 0 0 100  tintervalne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 786 (  tintervallt      PGUID 12 f t t t 2 f 16 "704 704" 100 0 0 100  tintervallt - ));
+DATA(insert OID = 786 (  tintervallt      PGUID 12 f t t t 2 f 16 "704 704" 100 0 0 100  tintervallt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 787 (  tintervalgt      PGUID 12 f t t t 2 f 16 "704 704" 100 0 0 100  tintervalgt - ));
+DATA(insert OID = 787 (  tintervalgt      PGUID 12 f t t t 2 f 16 "704 704" 100 0 0 100  tintervalgt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 788 (  tintervalle      PGUID 12 f t t t 2 f 16 "704 704" 100 0 0 100  tintervalle - ));
+DATA(insert OID = 788 (  tintervalle      PGUID 12 f t t t 2 f 16 "704 704" 100 0 0 100  tintervalle - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 789 (  tintervalge      PGUID 12 f t t t 2 f 16 "704 704" 100 0 0 100  tintervalge - ));
+DATA(insert OID = 789 (  tintervalge      PGUID 12 f t t t 2 f 16 "704 704" 100 0 0 100  tintervalge - _null_ ));
 DESCR("greater-than-or-equal");
 
 /* OIDS 800 - 899 */
 
-DATA(insert OID = 817 (  oid                      PGUID 12 f t t t 1 f 26 "25" 100 0 0 100  text_oid -));
+DATA(insert OID = 817 (  oid                      PGUID 12 f t t t 1 f 26 "25" 100 0 0 100  text_oid - _null_ ));
 DESCR("convert text to oid");
-DATA(insert OID = 818 (  int2                     PGUID 12 f t t t 1 f 21 "25" 100 0 0 100  text_int2 -));
+DATA(insert OID = 818 (  int2                     PGUID 12 f t t t 1 f 21 "25" 100 0 0 100  text_int2 - _null_ ));
 DESCR("convert text to int2");
-DATA(insert OID = 819 (  int4                     PGUID 12 f t t t 1 f 23 "25" 100 0 0 100  text_int4 -));
+DATA(insert OID = 819 (  int4                     PGUID 12 f t t t 1 f 23 "25" 100 0 0 100  text_int4 - _null_ ));
 DESCR("convert text to int4");
 
-DATA(insert OID = 838 (  float8                           PGUID 12 f t t t 1 f 701 "25" 100 0 0 100  text_float8 -));
+DATA(insert OID = 838 (  float8                           PGUID 12 f t t t 1 f 701 "25" 100 0 0 100  text_float8 - _null_ ));
 DESCR("convert text to float8");
-DATA(insert OID = 839 (  float4                           PGUID 12 f t t t 1 f 700 "25" 100 0 0 100  text_float4 -));
+DATA(insert OID = 839 (  float4                           PGUID 12 f t t t 1 f 700 "25" 100 0 0 100  text_float4 - _null_ ));
 DESCR("convert text to float4");
-DATA(insert OID = 840 (  text                     PGUID 12 f t t t 1 f  25 "701" 100 0 0 100  float8_text -));
+DATA(insert OID = 840 (  text                     PGUID 12 f t t t 1 f  25 "701" 100 0 0 100  float8_text - _null_ ));
 DESCR("convert float8 to text");
-DATA(insert OID = 841 (  text                     PGUID 12 f t t t 1 f  25 "700" 100 0 0 100  float4_text -));
+DATA(insert OID = 841 (  text                     PGUID 12 f t t t 1 f  25 "700" 100 0 0 100  float4_text - _null_ ));
 DESCR("convert float4 to text");
 
-DATA(insert OID =  846 (  cash_mul_flt4    PGUID 12 f t t t 2 f 790 "790 700" 100 0 0 100  cash_mul_flt4 - ));
+DATA(insert OID =  846 (  cash_mul_flt4    PGUID 12 f t t t 2 f 790 "790 700" 100 0 0 100  cash_mul_flt4 - _null_ ));
 DESCR("multiply");
-DATA(insert OID =  847 (  cash_div_flt4    PGUID 12 f t t t 2 f 790 "790 700" 100 0 0 100  cash_div_flt4 - ));
+DATA(insert OID =  847 (  cash_div_flt4    PGUID 12 f t t t 2 f 790 "790 700" 100 0 0 100  cash_div_flt4 - _null_ ));
 DESCR("divide");
-DATA(insert OID =  848 (  flt4_mul_cash    PGUID 12 f t t t 2 f 790 "700 790" 100 0 0 100  flt4_mul_cash - ));
+DATA(insert OID =  848 (  flt4_mul_cash    PGUID 12 f t t t 2 f 790 "700 790" 100 0 0 100  flt4_mul_cash - _null_ ));
 DESCR("multiply");
 
-DATA(insert OID =  849 (  position                PGUID 12 f t t t 2 f 23 "25 25" 100 0 0 100 textpos - ));
+DATA(insert OID =  849 (  position                PGUID 12 f t t t 2 f 23 "25 25" 100 0 0 100 textpos - _null_ ));
 DESCR("return position of substring");
-DATA(insert OID =  850 (  textlike                PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100 textlike - ));
+DATA(insert OID =  850 (  textlike                PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100 textlike - _null_ ));
 DESCR("matches LIKE expression");
-DATA(insert OID =  851 (  textnlike               PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100 textnlike - ));
+DATA(insert OID =  851 (  textnlike               PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100 textnlike - _null_ ));
 DESCR("does not match LIKE expression");
 
-DATA(insert OID =  852 (  int48eq                 PGUID 12 f t t t 2 f 16 "23 20" 100 0 0 100  int48eq - ));
+DATA(insert OID =  852 (  int48eq                 PGUID 12 f t t t 2 f 16 "23 20" 100 0 0 100  int48eq - _null_ ));
 DESCR("equal");
-DATA(insert OID =  853 (  int48ne                 PGUID 12 f t t t 2 f 16 "23 20" 100 0 0 100  int48ne - ));
+DATA(insert OID =  853 (  int48ne                 PGUID 12 f t t t 2 f 16 "23 20" 100 0 0 100  int48ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID =  854 (  int48lt                 PGUID 12 f t t t 2 f 16 "23 20" 100 0 0 100  int48lt - ));
+DATA(insert OID =  854 (  int48lt                 PGUID 12 f t t t 2 f 16 "23 20" 100 0 0 100  int48lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID =  855 (  int48gt                 PGUID 12 f t t t 2 f 16 "23 20" 100 0 0 100  int48gt - ));
+DATA(insert OID =  855 (  int48gt                 PGUID 12 f t t t 2 f 16 "23 20" 100 0 0 100  int48gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID =  856 (  int48le                 PGUID 12 f t t t 2 f 16 "23 20" 100 0 0 100  int48le - ));
+DATA(insert OID =  856 (  int48le                 PGUID 12 f t t t 2 f 16 "23 20" 100 0 0 100  int48le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID =  857 (  int48ge                 PGUID 12 f t t t 2 f 16 "23 20" 100 0 0 100  int48ge - ));
+DATA(insert OID =  857 (  int48ge                 PGUID 12 f t t t 2 f 16 "23 20" 100 0 0 100  int48ge - _null_ ));
 DESCR("greater-than-or-equal");
 
-DATA(insert OID =  858 (  namelike                PGUID 12 f t t t 2 f 16 "19 25" 100 0 0 100  namelike - ));
+DATA(insert OID =  858 (  namelike                PGUID 12 f t t t 2 f 16 "19 25" 100 0 0 100  namelike - _null_ ));
 DESCR("matches LIKE expression");
-DATA(insert OID =  859 (  namenlike               PGUID 12 f t t t 2 f 16 "19 25" 100 0 0 100  namenlike - ));
+DATA(insert OID =  859 (  namenlike               PGUID 12 f t t t 2 f 16 "19 25" 100 0 0 100  namenlike - _null_ ));
 DESCR("does not match LIKE expression");
 
-DATA(insert OID =  860 (  bpchar                  PGUID 12 f t t t 1 f 1042 "18" 100 0 0 100  char_bpchar - ));
+DATA(insert OID =  860 (  bpchar                  PGUID 12 f t t t 1 f 1042 "18" 100 0 0 100  char_bpchar - _null_ ));
 DESCR("convert char to char()");
-DATA(insert OID =  861 (  char                    PGUID 12 f t t t 1 f 18 "1042" 100 0 0 100  bpchar_char - ));
+DATA(insert OID =  861 (  char                    PGUID 12 f t t t 1 f 18 "1042" 100 0 0 100  bpchar_char - _null_ ));
 DESCR("convert char() to char");
 
-DATA(insert OID =  862 (  int4_mul_cash                   PGUID 12 f t t t 2 f 790 "23 790" 100 0 0 100  int4_mul_cash - ));
+DATA(insert OID =  862 (  int4_mul_cash                   PGUID 12 f t t t 2 f 790 "23 790" 100 0 0 100  int4_mul_cash - _null_ ));
 DESCR("multiply");
-DATA(insert OID =  863 (  int2_mul_cash                   PGUID 12 f t t t 2 f 790 "21 790" 100 0 0 100  int2_mul_cash - ));
+DATA(insert OID =  863 (  int2_mul_cash                   PGUID 12 f t t t 2 f 790 "21 790" 100 0 0 100  int2_mul_cash - _null_ ));
 DESCR("multiply");
-DATA(insert OID =  864 (  cash_mul_int4                   PGUID 12 f t t t 2 f 790 "790 23" 100 0 0 100  cash_mul_int4 - ));
+DATA(insert OID =  864 (  cash_mul_int4                   PGUID 12 f t t t 2 f 790 "790 23" 100 0 0 100  cash_mul_int4 - _null_ ));
 DESCR("multiply");
-DATA(insert OID =  865 (  cash_div_int4                   PGUID 12 f t t t 2 f 790 "790 23" 100 0 0 100  cash_div_int4 - ));
+DATA(insert OID =  865 (  cash_div_int4                   PGUID 12 f t t t 2 f 790 "790 23" 100 0 0 100  cash_div_int4 - _null_ ));
 DESCR("divide");
-DATA(insert OID =  866 (  cash_mul_int2                   PGUID 12 f t t t 2 f 790 "790 21" 100 0 0 100  cash_mul_int2 - ));
+DATA(insert OID =  866 (  cash_mul_int2                   PGUID 12 f t t t 2 f 790 "790 21" 100 0 0 100  cash_mul_int2 - _null_ ));
 DESCR("multiply");
-DATA(insert OID =  867 (  cash_div_int2                   PGUID 12 f t t t 2 f 790 "790 21" 100 0 0 100  cash_div_int2 - ));
+DATA(insert OID =  867 (  cash_div_int2                   PGUID 12 f t t t 2 f 790 "790 21" 100 0 0 100  cash_div_int2 - _null_ ));
 DESCR("divide");
 
-DATA(insert OID =  886 (  cash_in                 PGUID 12 f t t t 1 f 790 "0" 100 0 0 100  cash_in - ));
+DATA(insert OID =  886 (  cash_in                 PGUID 12 f t t t 1 f 790 "0" 100 0 0 100  cash_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  887 (  cash_out                PGUID 12 f t t t 1 f  23 "0" 100 0 0 100  cash_out - ));
+DATA(insert OID =  887 (  cash_out                PGUID 12 f t t t 1 f  23 "0" 100 0 0 100  cash_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID =  888 (  cash_eq                 PGUID 12 f t t t 2 f  16 "790 790" 100 0 0 100  cash_eq - ));
+DATA(insert OID =  888 (  cash_eq                 PGUID 12 f t t t 2 f  16 "790 790" 100 0 0 100  cash_eq - _null_ ));
 DESCR("equal");
-DATA(insert OID =  889 (  cash_ne                 PGUID 12 f t t t 2 f  16 "790 790" 100 0 0 100  cash_ne - ));
+DATA(insert OID =  889 (  cash_ne                 PGUID 12 f t t t 2 f  16 "790 790" 100 0 0 100  cash_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID =  890 (  cash_lt                 PGUID 12 f t t t 2 f  16 "790 790" 100 0 0 100  cash_lt - ));
+DATA(insert OID =  890 (  cash_lt                 PGUID 12 f t t t 2 f  16 "790 790" 100 0 0 100  cash_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID =  891 (  cash_le                 PGUID 12 f t t t 2 f  16 "790 790" 100 0 0 100  cash_le - ));
+DATA(insert OID =  891 (  cash_le                 PGUID 12 f t t t 2 f  16 "790 790" 100 0 0 100  cash_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID =  892 (  cash_gt                 PGUID 12 f t t t 2 f  16 "790 790" 100 0 0 100  cash_gt - ));
+DATA(insert OID =  892 (  cash_gt                 PGUID 12 f t t t 2 f  16 "790 790" 100 0 0 100  cash_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID =  893 (  cash_ge                 PGUID 12 f t t t 2 f  16 "790 790" 100 0 0 100  cash_ge - ));
+DATA(insert OID =  893 (  cash_ge                 PGUID 12 f t t t 2 f  16 "790 790" 100 0 0 100  cash_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID =  894 (  cash_pl                 PGUID 12 f t t t 2 f 790 "790 790" 100 0 0 100  cash_pl - ));
+DATA(insert OID =  894 (  cash_pl                 PGUID 12 f t t t 2 f 790 "790 790" 100 0 0 100  cash_pl - _null_ ));
 DESCR("add");
-DATA(insert OID =  895 (  cash_mi                 PGUID 12 f t t t 2 f 790 "790 790" 100 0 0 100  cash_mi - ));
+DATA(insert OID =  895 (  cash_mi                 PGUID 12 f t t t 2 f 790 "790 790" 100 0 0 100  cash_mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID =  896 (  cash_mul_flt8    PGUID 12 f t t t 2 f 790 "790 701" 100 0 0 100  cash_mul_flt8 - ));
+DATA(insert OID =  896 (  cash_mul_flt8    PGUID 12 f t t t 2 f 790 "790 701" 100 0 0 100  cash_mul_flt8 - _null_ ));
 DESCR("multiply");
-DATA(insert OID =  897 (  cash_div_flt8    PGUID 12 f t t t 2 f 790 "790 701" 100 0 0 100  cash_div_flt8 - ));
+DATA(insert OID =  897 (  cash_div_flt8    PGUID 12 f t t t 2 f 790 "790 701" 100 0 0 100  cash_div_flt8 - _null_ ));
 DESCR("divide");
-DATA(insert OID =  898 (  cashlarger      PGUID 12 f t t t 2 f 790 "790 790" 100 0 0 100  cashlarger - ));
+DATA(insert OID =  898 (  cashlarger      PGUID 12 f t t t 2 f 790 "790 790" 100 0 0 100  cashlarger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID =  899 (  cashsmaller     PGUID 12 f t t t 2 f 790 "790 790" 100 0 0 100  cashsmaller - ));
+DATA(insert OID =  899 (  cashsmaller     PGUID 12 f t t t 2 f 790 "790 790" 100 0 0 100  cashsmaller - _null_ ));
 DESCR("smaller of two");
-DATA(insert OID =  919 (  flt8_mul_cash    PGUID 12 f t t t 2 f 790 "701 790" 100 0 0 100  flt8_mul_cash - ));
+DATA(insert OID =  919 (  flt8_mul_cash    PGUID 12 f t t t 2 f 790 "701 790" 100 0 0 100  flt8_mul_cash - _null_ ));
 DESCR("multiply");
-DATA(insert OID =  935 (  cash_words      PGUID 12 f t t t 1 f  25 "790" 100 0 0 100  cash_words - ));
+DATA(insert OID =  935 (  cash_words      PGUID 12 f t t t 1 f  25 "790" 100 0 0 100  cash_words - _null_ ));
 DESCR("output amount as words");
 
 /* OIDS 900 - 999 */
 
-DATA(insert OID = 940 (  mod                      PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2mod - ));
+DATA(insert OID = 940 (  mod                      PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2mod - _null_ ));
 DESCR("modulus");
-DATA(insert OID = 941 (  mod                      PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4mod - ));
+DATA(insert OID = 941 (  mod                      PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4mod - _null_ ));
 DESCR("modulus");
-DATA(insert OID = 942 (  mod                      PGUID 12 f t t t 2 f 23 "21 23" 100 0 0 100  int24mod - ));
+DATA(insert OID = 942 (  mod                      PGUID 12 f t t t 2 f 23 "21 23" 100 0 0 100  int24mod - _null_ ));
 DESCR("modulus");
-DATA(insert OID = 943 (  mod                      PGUID 12 f t t t 2 f 23 "23 21" 100 0 0 100  int42mod - ));
+DATA(insert OID = 943 (  mod                      PGUID 12 f t t t 2 f 23 "23 21" 100 0 0 100  int42mod - _null_ ));
 DESCR("modulus");
 
-DATA(insert OID = 945 (  int8mod                  PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8mod - ));
+DATA(insert OID = 945 (  int8mod                  PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8mod - _null_ ));
 DESCR("modulus");
-DATA(insert OID = 947 (  mod                      PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8mod - ));
+DATA(insert OID = 947 (  mod                      PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8mod - _null_ ));
 DESCR("modulus");
 
-DATA(insert OID = 944 (  char                     PGUID 12 f t t t 1 f 18 "25" 100 0 0 100  text_char - ));
+DATA(insert OID = 944 (  char                     PGUID 12 f t t t 1 f 18 "25" 100 0 0 100  text_char - _null_ ));
 DESCR("convert text to char");
-DATA(insert OID = 946 (  text                     PGUID 12 f t t t 1 f 25 "18" 100 0 0 100  char_text - ));
+DATA(insert OID = 946 (  text                     PGUID 12 f t t t 1 f 25 "18" 100 0 0 100  char_text - _null_ ));
 DESCR("convert char to text");
 
-DATA(insert OID = 950 (  istrue                           PGUID 12 f t t f 1 f 16 "16" 100 0 0 100  istrue - ));
+DATA(insert OID = 950 (  istrue                           PGUID 12 f t t f 1 f 16 "16" 100 0 0 100  istrue - _null_ ));
 DESCR("bool is true (not false or unknown)");
-DATA(insert OID = 951 (  isfalse                  PGUID 12 f t t f 1 f 16 "16" 100 0 0 100  isfalse - ));
+DATA(insert OID = 951 (  isfalse                  PGUID 12 f t t f 1 f 16 "16" 100 0 0 100  isfalse - _null_ ));
 DESCR("bool is false (not true or unknown)");
 
-DATA(insert OID = 952 (  lo_open                  PGUID 12 f t f t 2 f 23 "26 23" 100 0 0 100  lo_open - ));
+DATA(insert OID = 952 (  lo_open                  PGUID 12 f t f t 2 f 23 "26 23" 100 0 0 100  lo_open - _null_ ));
 DESCR("large object open");
-DATA(insert OID = 953 (  lo_close                 PGUID 12 f t f t 1 f 23 "23" 100 0 0 100  lo_close - ));
+DATA(insert OID = 953 (  lo_close                 PGUID 12 f t f t 1 f 23 "23" 100 0 0 100  lo_close - _null_ ));
 DESCR("large object close");
-DATA(insert OID = 954 (  loread                           PGUID 12 f t f t 2 f 17 "23 23" 100 0 0 100  loread - ));
+DATA(insert OID = 954 (  loread                           PGUID 12 f t f t 2 f 17 "23 23" 100 0 0 100  loread - _null_ ));
 DESCR("large object read");
-DATA(insert OID = 955 (  lowrite                  PGUID 12 f t f t 2 f 23 "23 17" 100 0 0 100  lowrite - ));
+DATA(insert OID = 955 (  lowrite                  PGUID 12 f t f t 2 f 23 "23 17" 100 0 0 100  lowrite - _null_ ));
 DESCR("large object write");
-DATA(insert OID = 956 (  lo_lseek                 PGUID 12 f t f t 3 f 23 "23 23 23" 100 0 0 100  lo_lseek - ));
+DATA(insert OID = 956 (  lo_lseek                 PGUID 12 f t f t 3 f 23 "23 23 23" 100 0 0 100  lo_lseek - _null_ ));
 DESCR("large object seek");
-DATA(insert OID = 957 (  lo_creat                 PGUID 12 f t f t 1 f 26 "23" 100 0 0 100  lo_creat - ));
+DATA(insert OID = 957 (  lo_creat                 PGUID 12 f t f t 1 f 26 "23" 100 0 0 100  lo_creat - _null_ ));
 DESCR("large object create");
-DATA(insert OID = 958 (  lo_tell                  PGUID 12 f t f t 1 f 23 "23" 100 0 0 100  lo_tell - ));
+DATA(insert OID = 958 (  lo_tell                  PGUID 12 f t f t 1 f 23 "23" 100 0 0 100  lo_tell - _null_ ));
 DESCR("large object position");
 
-DATA(insert OID = 959 (  on_pl                    PGUID 12 f t t t 2 f  16 "600 628" 100 0 0 100  on_pl - ));
+DATA(insert OID = 959 (  on_pl                    PGUID 12 f t t t 2 f  16 "600 628" 100 0 0 100  on_pl - _null_ ));
 DESCR("point on line?");
-DATA(insert OID = 960 (  on_sl                    PGUID 12 f t t t 2 f  16 "601 628" 100 0 0 100  on_sl - ));
+DATA(insert OID = 960 (  on_sl                    PGUID 12 f t t t 2 f  16 "601 628" 100 0 0 100  on_sl - _null_ ));
 DESCR("lseg on line?");
-DATA(insert OID = 961 (  close_pl                 PGUID 12 f t t t 2 f 600 "600 628" 100 0 0 100  close_pl - ));
+DATA(insert OID = 961 (  close_pl                 PGUID 12 f t t t 2 f 600 "600 628" 100 0 0 100  close_pl - _null_ ));
 DESCR("closest point on line");
-DATA(insert OID = 962 (  close_sl                 PGUID 12 f t t t 2 f 600 "601 628" 100 0 0 100  close_sl - ));
+DATA(insert OID = 962 (  close_sl                 PGUID 12 f t t t 2 f 600 "601 628" 100 0 0 100  close_sl - _null_ ));
 DESCR("closest point to line segment on line");
-DATA(insert OID = 963 (  close_lb                 PGUID 12 f t t t 2 f 600 "628 603" 100 0 0 100  close_lb - ));
+DATA(insert OID = 963 (  close_lb                 PGUID 12 f t t t 2 f 600 "628 603" 100 0 0 100  close_lb - _null_ ));
 DESCR("closest point to line on box");
 
-DATA(insert OID = 964 (  lo_unlink                PGUID 12 f t f t 1 f  23 "26" 100 0 0 100  lo_unlink - ));
+DATA(insert OID = 964 (  lo_unlink                PGUID 12 f t f t 1 f  23 "26" 100 0 0 100  lo_unlink - _null_ ));
 DESCR("large object unlink(delete)");
-DATA(insert OID = 972 (  regproctooid     PGUID 12 f t t t 1 f  26 "24" 100 0 0 100  regproctooid - ));
+DATA(insert OID = 972 (  regproctooid     PGUID 12 f t t t 1 f  26 "24" 100 0 0 100  regproctooid - _null_ ));
 DESCR("get oid for regproc");
 
-DATA(insert OID = 973 (  path_inter               PGUID 12 f t t t 2 f  16 "602 602" 100 0 0 100  path_inter - ));
+DATA(insert OID = 973 (  path_inter               PGUID 12 f t t t 2 f  16 "602 602" 100 0 0 100  path_inter - _null_ ));
 DESCR("paths intersect?");
-DATA(insert OID = 975 (  area                     PGUID 12 f t t t 1 f 701 "603" 100 0 0 100  box_area - ));
+DATA(insert OID = 975 (  area                     PGUID 12 f t t t 1 f 701 "603" 100 0 0 100  box_area - _null_ ));
 DESCR("box area");
-DATA(insert OID = 976 (  width                    PGUID 12 f t t t 1 f 701 "603" 100 0 0 100  box_width - ));
+DATA(insert OID = 976 (  width                    PGUID 12 f t t t 1 f 701 "603" 100 0 0 100  box_width - _null_ ));
 DESCR("box width");
-DATA(insert OID = 977 (  height                           PGUID 12 f t t t 1 f 701 "603" 100 0 0 100  box_height - ));
+DATA(insert OID = 977 (  height                           PGUID 12 f t t t 1 f 701 "603" 100 0 0 100  box_height - _null_ ));
 DESCR("box height");
-DATA(insert OID = 978 (  box_distance     PGUID 12 f t t t 2 f 701 "603 603" 100 0 0 100  box_distance - ));
+DATA(insert OID = 978 (  box_distance     PGUID 12 f t t t 2 f 701 "603 603" 100 0 0 100  box_distance - _null_ ));
 DESCR("distance between boxes");
-DATA(insert OID = 980 (  box_intersect    PGUID 12 f t t t 2 f 603 "603 603" 100 0 0 100  box_intersect - ));
+DATA(insert OID = 980 (  box_intersect    PGUID 12 f t t t 2 f 603 "603 603" 100 0 0 100  box_intersect - _null_ ));
 DESCR("box intersection (another box)");
-DATA(insert OID = 981 (  diagonal                 PGUID 12 f t t t 1 f 601 "603" 100 0 0 100  box_diagonal - ));
+DATA(insert OID = 981 (  diagonal                 PGUID 12 f t t t 1 f 601 "603" 100 0 0 100  box_diagonal - _null_ ));
 DESCR("box diagonal");
-DATA(insert OID = 982 (  path_n_lt                PGUID 12 f t t t 2 f 16 "602 602" 100 0 0 100  path_n_lt - ));
+DATA(insert OID = 982 (  path_n_lt                PGUID 12 f t t t 2 f 16 "602 602" 100 0 0 100  path_n_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 983 (  path_n_gt                PGUID 12 f t t t 2 f 16 "602 602" 100 0 0 100  path_n_gt - ));
+DATA(insert OID = 983 (  path_n_gt                PGUID 12 f t t t 2 f 16 "602 602" 100 0 0 100  path_n_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 984 (  path_n_eq                PGUID 12 f t t t 2 f 16 "602 602" 100 0 0 100  path_n_eq - ));
+DATA(insert OID = 984 (  path_n_eq                PGUID 12 f t t t 2 f 16 "602 602" 100 0 0 100  path_n_eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 985 (  path_n_le                PGUID 12 f t t t 2 f 16 "602 602" 100 0 0 100  path_n_le - ));
+DATA(insert OID = 985 (  path_n_le                PGUID 12 f t t t 2 f 16 "602 602" 100 0 0 100  path_n_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 986 (  path_n_ge                PGUID 12 f t t t 2 f 16 "602 602" 100 0 0 100  path_n_ge - ));
+DATA(insert OID = 986 (  path_n_ge                PGUID 12 f t t t 2 f 16 "602 602" 100 0 0 100  path_n_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 987 (  path_length      PGUID 12 f t t t 1 f 701 "602" 100 0 0 100  path_length - ));
+DATA(insert OID = 987 (  path_length      PGUID 12 f t t t 1 f 701 "602" 100 0 0 100  path_length - _null_ ));
 DESCR("sum of path segments");
-DATA(insert OID = 988 (  point_ne                 PGUID 12 f t t t 2 f 16 "600 600" 100 0 0 100  point_ne - ));
+DATA(insert OID = 988 (  point_ne                 PGUID 12 f t t t 2 f 16 "600 600" 100 0 0 100  point_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 989 (  point_vert               PGUID 12 f t t t 2 f 16 "600 600" 100 0 0 100  point_vert - ));
+DATA(insert OID = 989 (  point_vert               PGUID 12 f t t t 2 f 16 "600 600" 100 0 0 100  point_vert - _null_ ));
 DESCR("vertically aligned?");
-DATA(insert OID = 990 (  point_horiz      PGUID 12 f t t t 2 f 16 "600 600" 100 0 0 100  point_horiz - ));
+DATA(insert OID = 990 (  point_horiz      PGUID 12 f t t t 2 f 16 "600 600" 100 0 0 100  point_horiz - _null_ ));
 DESCR("horizontally aligned?");
-DATA(insert OID = 991 (  point_distance    PGUID 12 f t t t 2 f 701 "600 600" 100 0 0 100  point_distance - ));
+DATA(insert OID = 991 (  point_distance    PGUID 12 f t t t 2 f 701 "600 600" 100 0 0 100  point_distance - _null_ ));
 DESCR("distance between");
-DATA(insert OID = 992 (  slope                    PGUID 12 f t t t 2 f 701 "600 600" 100 0 0 100  point_slope - ));
+DATA(insert OID = 992 (  slope                    PGUID 12 f t t t 2 f 701 "600 600" 100 0 0 100  point_slope - _null_ ));
 DESCR("slope between points");
-DATA(insert OID = 993 (  lseg                     PGUID 12 f t t t 2 f 601 "600 600" 100 0 0 100  lseg_construct - ));
+DATA(insert OID = 993 (  lseg                     PGUID 12 f t t t 2 f 601 "600 600" 100 0 0 100  lseg_construct - _null_ ));
 DESCR("convert points to line segment");
-DATA(insert OID = 994 (  lseg_intersect    PGUID 12 f t t t 2 f 16 "601 601" 100 0 0 100  lseg_intersect - ));
+DATA(insert OID = 994 (  lseg_intersect    PGUID 12 f t t t 2 f 16 "601 601" 100 0 0 100  lseg_intersect - _null_ ));
 DESCR("intersect?");
-DATA(insert OID = 995 (  lseg_parallel    PGUID 12 f t t t 2 f 16 "601 601" 100 0 0 100  lseg_parallel - ));
+DATA(insert OID = 995 (  lseg_parallel    PGUID 12 f t t t 2 f 16 "601 601" 100 0 0 100  lseg_parallel - _null_ ));
 DESCR("parallel?");
-DATA(insert OID = 996 (  lseg_perp                PGUID 12 f t t t 2 f 16 "601 601" 100 0 0 100  lseg_perp - ));
+DATA(insert OID = 996 (  lseg_perp                PGUID 12 f t t t 2 f 16 "601 601" 100 0 0 100  lseg_perp - _null_ ));
 DESCR("perpendicular?");
-DATA(insert OID = 997 (  lseg_vertical    PGUID 12 f t t t 1 f 16 "601" 100 0 0 100  lseg_vertical - ));
+DATA(insert OID = 997 (  lseg_vertical    PGUID 12 f t t t 1 f 16 "601" 100 0 0 100  lseg_vertical - _null_ ));
 DESCR("vertical?");
-DATA(insert OID = 998 (  lseg_horizontal   PGUID 12 f t t t 1 f 16 "601" 100 0 0 100  lseg_horizontal - ));
+DATA(insert OID = 998 (  lseg_horizontal   PGUID 12 f t t t 1 f 16 "601" 100 0 0 100  lseg_horizontal - _null_ ));
 DESCR("horizontal?");
-DATA(insert OID = 999 (  lseg_eq                  PGUID 12 f t t t 2 f 16 "601 601" 100 0 0 100  lseg_eq - ));
+DATA(insert OID = 999 (  lseg_eq                  PGUID 12 f t t t 2 f 16 "601 601" 100 0 0 100  lseg_eq - _null_ ));
 DESCR("equal");
 
-DATA(insert OID =  748 (  date                    PGUID 12 f t f t 1 f 1082 "25" 100 0 0 100 text_date - ));
+DATA(insert OID =  748 (  date                    PGUID 12 f t f t 1 f 1082 "25" 100 0 0 100 text_date - _null_ ));
 DESCR("convert text to date");
-DATA(insert OID =  749 (  text                    PGUID 12 f t f t 1 f 25 "1082" 100 0 0 100 date_text - ));
+DATA(insert OID =  749 (  text                    PGUID 12 f t f t 1 f 25 "1082" 100 0 0 100 date_text - _null_ ));
 DESCR("convert date to text");
-DATA(insert OID =  837 (  time                    PGUID 12 f t f t 1 f 1083 "25" 100 0 0 100 text_time - ));
+DATA(insert OID =  837 (  time                    PGUID 12 f t f t 1 f 1083 "25" 100 0 0 100 text_time - _null_ ));
 DESCR("convert text to time");
-DATA(insert OID =  948 (  text                    PGUID 12 f t t t 1 f 25 "1083" 100 0 0 100 time_text - ));
+DATA(insert OID =  948 (  text                    PGUID 12 f t t t 1 f 25 "1083" 100 0 0 100 time_text - _null_ ));
 DESCR("convert time to text");
-DATA(insert OID =  938 (  timetz                  PGUID 12 f t f t 1 f 1266 "25" 100 0 0 100 text_timetz - ));
+DATA(insert OID =  938 (  timetz                  PGUID 12 f t f t 1 f 1266 "25" 100 0 0 100 text_timetz - _null_ ));
 DESCR("convert text to timetz");
-DATA(insert OID =  939 (  text                    PGUID 12 f t t t 1 f 25 "1266" 100 0 0 100 timetz_text - ));
+DATA(insert OID =  939 (  text                    PGUID 12 f t t t 1 f 25 "1266" 100 0 0 100 timetz_text - _null_ ));
 DESCR("convert timetz to text");
 
 /* OIDS 1000 - 1999 */
 
-DATA(insert OID = 1026 (  timezone                PGUID 12 f t f t 2 f 25 "1186 1184" 100 0 0 100      timestamptz_izone - ));
+DATA(insert OID = 1026 (  timezone                PGUID 12 f t f t 2 f 25 "1186 1184" 100 0 0 100      timestamptz_izone - _null_ ));
 DESCR("time zone");
 
-DATA(insert OID = 1029 (  nullvalue               PGUID 12 f t t f 1 f 16 "0" 100 0 0 100      nullvalue - ));
+DATA(insert OID = 1029 (  nullvalue               PGUID 12 f t t f 1 f 16 "0" 100 0 0 100      nullvalue - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1030 (  nonnullvalue    PGUID 12 f t t f 1 f 16 "0" 100 0 0 100      nonnullvalue - ));
+DATA(insert OID = 1030 (  nonnullvalue    PGUID 12 f t t f 1 f 16 "0" 100 0 0 100      nonnullvalue - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1031 (  aclitemin               PGUID 12 f t f t 1 f 1033 "0" 100 0 0 100  aclitemin - ));
+DATA(insert OID = 1031 (  aclitemin               PGUID 12 f t f t 1 f 1033 "0" 100 0 0 100  aclitemin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1032 (  aclitemout      PGUID 12 f t f t 1 f 23 "1033" 100 0 0 100  aclitemout - ));
+DATA(insert OID = 1032 (  aclitemout      PGUID 12 f t f t 1 f 23 "1033" 100 0 0 100  aclitemout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1035 (  aclinsert               PGUID 12 f t f t 2 f 1034 "1034 1033" 100 0 0 100  aclinsert - ));
+DATA(insert OID = 1035 (  aclinsert               PGUID 12 f t f t 2 f 1034 "1034 1033" 100 0 0 100  aclinsert - _null_ ));
 DESCR("add/update ACL item");
-DATA(insert OID = 1036 (  aclremove               PGUID 12 f t f t 2 f 1034 "1034 1033" 100 0 0 100  aclremove - ));
+DATA(insert OID = 1036 (  aclremove               PGUID 12 f t f t 2 f 1034 "1034 1033" 100 0 0 100  aclremove - _null_ ));
 DESCR("remove ACL item");
-DATA(insert OID = 1037 (  aclcontains     PGUID 12 f t f t 2 f 16 "1034 1033" 100 0 0 100      aclcontains - ));
+DATA(insert OID = 1037 (  aclcontains     PGUID 12 f t f t 2 f 16 "1034 1033" 100 0 0 100      aclcontains - _null_ ));
 DESCR("does ACL contain item?");
-DATA(insert OID = 1038 (  seteval                 PGUID 12 f t f t 1 t 23 "26" 100 0 0 100  seteval - ));
+DATA(insert OID = 1038 (  seteval                 PGUID 12 f t f t 1 t 23 "26" 100 0 0 100  seteval - _null_ ));
 DESCR("internal function supporting PostQuel-style sets");
-DATA(insert OID = 1044 (  bpcharin                PGUID 12 f t t t 3 f 1042 "0 26 23" 100 0 0 100 bpcharin - ));
+DATA(insert OID = 1044 (  bpcharin                PGUID 12 f t t t 3 f 1042 "0 26 23" 100 0 0 100 bpcharin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1045 (  bpcharout               PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      bpcharout - ));
+DATA(insert OID = 1045 (  bpcharout               PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      bpcharout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1046 (  varcharin               PGUID 12 f t t t 3 f 1043 "0 26 23" 100 0 0 100 varcharin - ));
+DATA(insert OID = 1046 (  varcharin               PGUID 12 f t t t 3 f 1043 "0 26 23" 100 0 0 100 varcharin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1047 (  varcharout      PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      varcharout - ));
+DATA(insert OID = 1047 (  varcharout      PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      varcharout - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1048 (  bpchareq                PGUID 12 f t t t 2 f 16 "1042 1042" 100 0 0 100      bpchareq - ));
+DATA(insert OID = 1048 (  bpchareq                PGUID 12 f t t t 2 f 16 "1042 1042" 100 0 0 100      bpchareq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1049 (  bpcharlt                PGUID 12 f t t t 2 f 16 "1042 1042" 100 0 0 100      bpcharlt - ));
+DATA(insert OID = 1049 (  bpcharlt                PGUID 12 f t t t 2 f 16 "1042 1042" 100 0 0 100      bpcharlt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1050 (  bpcharle                PGUID 12 f t t t 2 f 16 "1042 1042" 100 0 0 100      bpcharle - ));
+DATA(insert OID = 1050 (  bpcharle                PGUID 12 f t t t 2 f 16 "1042 1042" 100 0 0 100      bpcharle - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1051 (  bpchargt                PGUID 12 f t t t 2 f 16 "1042 1042" 100 0 0 100      bpchargt - ));
+DATA(insert OID = 1051 (  bpchargt                PGUID 12 f t t t 2 f 16 "1042 1042" 100 0 0 100      bpchargt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1052 (  bpcharge                PGUID 12 f t t t 2 f 16 "1042 1042" 100 0 0 100      bpcharge - ));
+DATA(insert OID = 1052 (  bpcharge                PGUID 12 f t t t 2 f 16 "1042 1042" 100 0 0 100      bpcharge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1053 (  bpcharne                PGUID 12 f t t t 2 f 16 "1042 1042" 100 0 0 100      bpcharne - ));
+DATA(insert OID = 1053 (  bpcharne                PGUID 12 f t t t 2 f 16 "1042 1042" 100 0 0 100      bpcharne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1070 (  varchareq               PGUID 12 f t t t 2 f 16 "1043 1043" 100 0 0 100      varchareq - ));
+DATA(insert OID = 1070 (  varchareq               PGUID 12 f t t t 2 f 16 "1043 1043" 100 0 0 100      varchareq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1071 (  varcharlt               PGUID 12 f t t t 2 f 16 "1043 1043" 100 0 0 100      varcharlt - ));
+DATA(insert OID = 1071 (  varcharlt               PGUID 12 f t t t 2 f 16 "1043 1043" 100 0 0 100      varcharlt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1072 (  varcharle               PGUID 12 f t t t 2 f 16 "1043 1043" 100 0 0 100      varcharle - ));
+DATA(insert OID = 1072 (  varcharle               PGUID 12 f t t t 2 f 16 "1043 1043" 100 0 0 100      varcharle - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1073 (  varchargt               PGUID 12 f t t t 2 f 16 "1043 1043" 100 0 0 100      varchargt - ));
+DATA(insert OID = 1073 (  varchargt               PGUID 12 f t t t 2 f 16 "1043 1043" 100 0 0 100      varchargt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1074 (  varcharge               PGUID 12 f t t t 2 f 16 "1043 1043" 100 0 0 100      varcharge - ));
+DATA(insert OID = 1074 (  varcharge               PGUID 12 f t t t 2 f 16 "1043 1043" 100 0 0 100      varcharge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1075 (  varcharne               PGUID 12 f t t t 2 f 16 "1043 1043" 100 0 0 100      varcharne - ));
+DATA(insert OID = 1075 (  varcharne               PGUID 12 f t t t 2 f 16 "1043 1043" 100 0 0 100      varcharne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1078 (  bpcharcmp               PGUID 12 f t t t 2 f 23 "1042 1042" 100 0 0 100      bpcharcmp - ));
+DATA(insert OID = 1078 (  bpcharcmp               PGUID 12 f t t t 2 f 23 "1042 1042" 100 0 0 100      bpcharcmp - _null_ ));
 DESCR("less-equal-greater");
-DATA(insert OID = 1079 (  varcharcmp      PGUID 12 f t t t 2 f 23 "1043 1043" 100 0 0 100      varcharcmp - ));
+DATA(insert OID = 1079 (  varcharcmp      PGUID 12 f t t t 2 f 23 "1043 1043" 100 0 0 100      varcharcmp - _null_ ));
 DESCR("less-equal-greater");
-DATA(insert OID = 1080 (  hashbpchar      PGUID 12 f t t t 1 f 23 "1042" 100 0 0 100  hashbpchar - ));
+DATA(insert OID = 1080 (  hashbpchar      PGUID 12 f t t t 1 f 23 "1042" 100 0 0 100  hashbpchar - _null_ ));
 DESCR("hash");
-DATA(insert OID = 1081 (  format_type     PGUID 12 f t t f 2 f 25 "26 23" 100 0 0 100 format_type - ));
+DATA(insert OID = 1081 (  format_type     PGUID 12 f t t f 2 f 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                 PGUID 12 f t f t 1 f 1082 "0" 100 0 0 100  date_in - ));
+DATA(insert OID = 1084 (  date_in                 PGUID 12 f t f t 1 f 1082 "0" 100 0 0 100  date_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1085 (  date_out                PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      date_out - ));
+DATA(insert OID = 1085 (  date_out                PGUID 12 f t f t 1 f 23 "0" 100 0 0 100      date_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1086 (  date_eq                 PGUID 12 f t t t 2 f 16 "1082 1082" 100 0 0 100      date_eq - ));
+DATA(insert OID = 1086 (  date_eq                 PGUID 12 f t t t 2 f 16 "1082 1082" 100 0 0 100      date_eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1087 (  date_lt                 PGUID 12 f t t t 2 f 16 "1082 1082" 100 0 0 100      date_lt - ));
+DATA(insert OID = 1087 (  date_lt                 PGUID 12 f t t t 2 f 16 "1082 1082" 100 0 0 100      date_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1088 (  date_le                 PGUID 12 f t t t 2 f 16 "1082 1082" 100 0 0 100      date_le - ));
+DATA(insert OID = 1088 (  date_le                 PGUID 12 f t t t 2 f 16 "1082 1082" 100 0 0 100      date_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1089 (  date_gt                 PGUID 12 f t t t 2 f 16 "1082 1082" 100 0 0 100      date_gt - ));
+DATA(insert OID = 1089 (  date_gt                 PGUID 12 f t t t 2 f 16 "1082 1082" 100 0 0 100      date_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1090 (  date_ge                 PGUID 12 f t t t 2 f 16 "1082 1082" 100 0 0 100      date_ge - ));
+DATA(insert OID = 1090 (  date_ge                 PGUID 12 f t t t 2 f 16 "1082 1082" 100 0 0 100      date_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1091 (  date_ne                 PGUID 12 f t t t 2 f 16 "1082 1082" 100 0 0 100      date_ne - ));
+DATA(insert OID = 1091 (  date_ne                 PGUID 12 f t t t 2 f 16 "1082 1082" 100 0 0 100      date_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1092 (  date_cmp                PGUID 12 f t t t 2 f 23 "1082 1082" 100 0 0 100      date_cmp - ));
+DATA(insert OID = 1092 (  date_cmp                PGUID 12 f t t t 2 f 23 "1082 1082" 100 0 0 100      date_cmp - _null_ ));
 DESCR("less-equal-greater");
 
 /* OIDS 1100 - 1199 */
 
-DATA(insert OID = 1102 (  time_lt                 PGUID 12 f t t t 2 f 16 "1083 1083" 100 0 0 100      time_lt - ));
+DATA(insert OID = 1102 (  time_lt                 PGUID 12 f t t t 2 f 16 "1083 1083" 100 0 0 100      time_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1103 (  time_le                 PGUID 12 f t t t 2 f 16 "1083 1083" 100 0 0 100      time_le - ));
+DATA(insert OID = 1103 (  time_le                 PGUID 12 f t t t 2 f 16 "1083 1083" 100 0 0 100      time_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1104 (  time_gt                 PGUID 12 f t t t 2 f 16 "1083 1083" 100 0 0 100      time_gt - ));
+DATA(insert OID = 1104 (  time_gt                 PGUID 12 f t t t 2 f 16 "1083 1083" 100 0 0 100      time_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1105 (  time_ge                 PGUID 12 f t t t 2 f 16 "1083 1083" 100 0 0 100      time_ge - ));
+DATA(insert OID = 1105 (  time_ge                 PGUID 12 f t t t 2 f 16 "1083 1083" 100 0 0 100      time_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1106 (  time_ne                 PGUID 12 f t t t 2 f 16 "1083 1083" 100 0 0 100      time_ne - ));
+DATA(insert OID = 1106 (  time_ne                 PGUID 12 f t t t 2 f 16 "1083 1083" 100 0 0 100      time_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1107 (  time_cmp                PGUID 12 f t t t 2 f 23 "1083 1083" 100 0 0 100      time_cmp - ));
+DATA(insert OID = 1107 (  time_cmp                PGUID 12 f t t t 2 f 23 "1083 1083" 100 0 0 100      time_cmp - _null_ ));
 DESCR("less-equal-greater");
-DATA(insert OID = 1138 (  date_larger     PGUID 12 f t t t 2 f 1082 "1082 1082" 100 0 0 100  date_larger - ));
+DATA(insert OID = 1138 (  date_larger     PGUID 12 f t t t 2 f 1082 "1082 1082" 100 0 0 100  date_larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 1139 (  date_smaller    PGUID 12 f t t t 2 f 1082 "1082 1082" 100 0 0 100  date_smaller - ));
+DATA(insert OID = 1139 (  date_smaller    PGUID 12 f t t t 2 f 1082 "1082 1082" 100 0 0 100  date_smaller - _null_ ));
 DESCR("smaller of two");
-DATA(insert OID = 1140 (  date_mi                 PGUID 12 f t t t 2 f 23 "1082 1082" 100 0 0 100      date_mi - ));
+DATA(insert OID = 1140 (  date_mi                 PGUID 12 f t t t 2 f 23 "1082 1082" 100 0 0 100      date_mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 1141 (  date_pli                PGUID 12 f t t t 2 f 1082 "1082 23" 100 0 0 100      date_pli - ));
+DATA(insert OID = 1141 (  date_pli                PGUID 12 f t t t 2 f 1082 "1082 23" 100 0 0 100      date_pli - _null_ ));
 DESCR("add");
-DATA(insert OID = 1142 (  date_mii                PGUID 12 f t t t 2 f 1082 "1082 23" 100 0 0 100      date_mii - ));
+DATA(insert OID = 1142 (  date_mii                PGUID 12 f t t t 2 f 1082 "1082 23" 100 0 0 100      date_mii - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 1143 (  time_in                 PGUID 12 f t f t 1 f 1083 "0" 100 0 0 100  time_in - ));
+DATA(insert OID = 1143 (  time_in                 PGUID 12 f t f t 1 f 1083 "0" 100 0 0 100  time_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1144 (  time_out                PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      time_out - ));
+DATA(insert OID = 1144 (  time_out                PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      time_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1145 (  time_eq                 PGUID 12 f t t t 2 f 16 "1083 1083" 100 0 0 100      time_eq - ));
+DATA(insert OID = 1145 (  time_eq                 PGUID 12 f t t t 2 f 16 "1083 1083" 100 0 0 100      time_eq - _null_ ));
 DESCR("equal");
 
-DATA(insert OID = 1146 (  circle_add_pt    PGUID 12 f t t t 2 f 718 "718 600" 100 0 0 100  circle_add_pt - ));
+DATA(insert OID = 1146 (  circle_add_pt    PGUID 12 f t t t 2 f 718 "718 600" 100 0 0 100  circle_add_pt - _null_ ));
 DESCR("add");
-DATA(insert OID = 1147 (  circle_sub_pt    PGUID 12 f t t t 2 f 718 "718 600" 100 0 0 100  circle_sub_pt - ));
+DATA(insert OID = 1147 (  circle_sub_pt    PGUID 12 f t t t 2 f 718 "718 600" 100 0 0 100  circle_sub_pt - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 1148 (  circle_mul_pt    PGUID 12 f t t t 2 f 718 "718 600" 100 0 0 100  circle_mul_pt - ));
+DATA(insert OID = 1148 (  circle_mul_pt    PGUID 12 f t t t 2 f 718 "718 600" 100 0 0 100  circle_mul_pt - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 1149 (  circle_div_pt    PGUID 12 f t t t 2 f 718 "718 600" 100 0 0 100  circle_div_pt - ));
+DATA(insert OID = 1149 (  circle_div_pt    PGUID 12 f t t t 2 f 718 "718 600" 100 0 0 100  circle_div_pt - _null_ ));
 DESCR("divide");
 
-DATA(insert OID = 1150 (  timestamptz_in   PGUID 12 f t f t 1 f 1184 "0" 100 0 0 100  timestamptz_in - ));
+DATA(insert OID = 1150 (  timestamptz_in   PGUID 12 f t f t 1 f 1184 "0" 100 0 0 100  timestamptz_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1151 (  timestamptz_out  PGUID 12 f t f t 1 f 23 "0" 100 0 0 100     timestamptz_out - ));
+DATA(insert OID = 1151 (  timestamptz_out  PGUID 12 f t f t 1 f 23 "0" 100 0 0 100     timestamptz_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1152 (  timestamptz_eq   PGUID 12 f t t t 2 f 16 "1184 1184" 100 0 0 100     timestamp_eq - ));
+DATA(insert OID = 1152 (  timestamptz_eq   PGUID 12 f t t t 2 f 16 "1184 1184" 100 0 0 100     timestamp_eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1153 (  timestamptz_ne   PGUID 12 f t t t 2 f 16 "1184 1184" 100 0 0 100     timestamp_ne - ));
+DATA(insert OID = 1153 (  timestamptz_ne   PGUID 12 f t t t 2 f 16 "1184 1184" 100 0 0 100     timestamp_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1154 (  timestamptz_lt   PGUID 12 f t t t 2 f 16 "1184 1184" 100 0 0 100     timestamp_lt - ));
+DATA(insert OID = 1154 (  timestamptz_lt   PGUID 12 f t t t 2 f 16 "1184 1184" 100 0 0 100     timestamp_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1155 (  timestamptz_le   PGUID 12 f t t t 2 f 16 "1184 1184" 100 0 0 100     timestamp_le - ));
+DATA(insert OID = 1155 (  timestamptz_le   PGUID 12 f t t t 2 f 16 "1184 1184" 100 0 0 100     timestamp_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1156 (  timestamptz_ge   PGUID 12 f t t t 2 f 16 "1184 1184" 100 0 0 100     timestamp_ge - ));
+DATA(insert OID = 1156 (  timestamptz_ge   PGUID 12 f t t t 2 f 16 "1184 1184" 100 0 0 100     timestamp_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1157 (  timestamptz_gt   PGUID 12 f t t t 2 f 16 "1184 1184" 100 0 0 100     timestamp_gt - ));
+DATA(insert OID = 1157 (  timestamptz_gt   PGUID 12 f t t t 2 f 16 "1184 1184" 100 0 0 100     timestamp_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1159 (  timezone                PGUID 12 f t f t 2 f 25 "25 1184" 100 0 0 100  timestamptz_zone - ));
+DATA(insert OID = 1159 (  timezone                PGUID 12 f t f t 2 f 25 "25 1184" 100 0 0 100  timestamptz_zone - _null_ ));
 DESCR("time zone");
 
-DATA(insert OID = 1160 (  interval_in     PGUID 12 f t f t 1 f 1186 "0" 100 0 0 100  interval_in - ));
+DATA(insert OID = 1160 (  interval_in     PGUID 12 f t f t 1 f 1186 "0" 100 0 0 100  interval_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1161 (  interval_out    PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      interval_out - ));
+DATA(insert OID = 1161 (  interval_out    PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      interval_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1162 (  interval_eq     PGUID 12 f t t t 2 f 16 "1186 1186" 100 0 0 100      interval_eq - ));
+DATA(insert OID = 1162 (  interval_eq     PGUID 12 f t t t 2 f 16 "1186 1186" 100 0 0 100      interval_eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1163 (  interval_ne     PGUID 12 f t t t 2 f 16 "1186 1186" 100 0 0 100      interval_ne - ));
+DATA(insert OID = 1163 (  interval_ne     PGUID 12 f t t t 2 f 16 "1186 1186" 100 0 0 100      interval_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1164 (  interval_lt     PGUID 12 f t t t 2 f 16 "1186 1186" 100 0 0 100      interval_lt - ));
+DATA(insert OID = 1164 (  interval_lt     PGUID 12 f t t t 2 f 16 "1186 1186" 100 0 0 100      interval_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1165 (  interval_le     PGUID 12 f t t t 2 f 16 "1186 1186" 100 0 0 100      interval_le - ));
+DATA(insert OID = 1165 (  interval_le     PGUID 12 f t t t 2 f 16 "1186 1186" 100 0 0 100      interval_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1166 (  interval_ge     PGUID 12 f t t t 2 f 16 "1186 1186" 100 0 0 100      interval_ge - ));
+DATA(insert OID = 1166 (  interval_ge     PGUID 12 f t t t 2 f 16 "1186 1186" 100 0 0 100      interval_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1167 (  interval_gt     PGUID 12 f t t t 2 f 16 "1186 1186" 100 0 0 100      interval_gt - ));
+DATA(insert OID = 1167 (  interval_gt     PGUID 12 f t t t 2 f 16 "1186 1186" 100 0 0 100      interval_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1168 (  interval_um     PGUID 12 f t t t 1 f 1186 "1186" 100 0 0 100  interval_um - ));
+DATA(insert OID = 1168 (  interval_um     PGUID 12 f t t t 1 f 1186 "1186" 100 0 0 100  interval_um - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 1169 (  interval_pl     PGUID 12 f t t t 2 f 1186 "1186 1186" 100 0 0 100  interval_pl - ));
+DATA(insert OID = 1169 (  interval_pl     PGUID 12 f t t t 2 f 1186 "1186 1186" 100 0 0 100  interval_pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 1170 (  interval_mi     PGUID 12 f t t t 2 f 1186 "1186 1186" 100 0 0 100  interval_mi - ));
+DATA(insert OID = 1170 (  interval_mi     PGUID 12 f t t t 2 f 1186 "1186 1186" 100 0 0 100  interval_mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 1171 (  date_part               PGUID 12 f t f t 2 f  701 "25 1184" 100 0 0 100      timestamptz_part - ));
+DATA(insert OID = 1171 (  date_part               PGUID 12 f t f t 2 f  701 "25 1184" 100 0 0 100      timestamptz_part - _null_ ));
 DESCR("extract field from timestamp with time zone");
-DATA(insert OID = 1172 (  date_part               PGUID 12 f t t t 2 f  701 "25 1186" 100 0 0 100      interval_part - ));
+DATA(insert OID = 1172 (  date_part               PGUID 12 f t t t 2 f  701 "25 1186" 100 0 0 100      interval_part - _null_ ));
 DESCR("extract field from interval");
-DATA(insert OID = 1173 (  timestamptz     PGUID 12 f t f t 1 f 1184 "702" 100 0 0 100  abstime_timestamptz - ));
+DATA(insert OID = 1173 (  timestamptz     PGUID 12 f t f t 1 f 1184 "702" 100 0 0 100  abstime_timestamptz - _null_ ));
 DESCR("convert abstime to timestamp with time zone");
-DATA(insert OID = 1174 (  timestamptz     PGUID 12 f t f t 1 f 1184 "1082" 100 0 0 100  date_timestamptz - ));
+DATA(insert OID = 1174 (  timestamptz     PGUID 12 f t f t 1 f 1184 "1082" 100 0 0 100  date_timestamptz - _null_ ));
 DESCR("convert date to timestamp with time zone");
-DATA(insert OID = 1176 (  timestamptz     PGUID 14 f t f t 2 f 1184 "1082 1083" 100 0 0 100  "select timestamptz($1 + $2)" - ));
+DATA(insert OID = 1176 (  timestamptz     PGUID 14 f t f t 2 f 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                PGUID 12 f t t t 1 f 1186 "703" 100 0 0 100  reltime_interval - ));
+DATA(insert OID = 1177 (  interval                PGUID 12 f t t t 1 f 1186 "703" 100 0 0 100  reltime_interval - _null_ ));
 DESCR("convert reltime to interval");
-DATA(insert OID = 1178 (  date                    PGUID 12 f t f t 1 f 1082 "1184" 100 0 0 100  timestamptz_date - ));
+DATA(insert OID = 1178 (  date                    PGUID 12 f t f t 1 f 1082 "1184" 100 0 0 100  timestamptz_date - _null_ ));
 DESCR("convert timestamp with time zone to date");
-DATA(insert OID = 1179 (  date                    PGUID 12 f t f t 1 f 1082 "702" 100 0 0 100  abstime_date - ));
+DATA(insert OID = 1179 (  date                    PGUID 12 f t f t 1 f 1082 "702" 100 0 0 100  abstime_date - _null_ ));
 DESCR("convert abstime to date");
-DATA(insert OID = 1180 (  abstime                 PGUID 12 f t f t 1 f  702 "1184" 100 0 0 100  timestamptz_abstime - ));
+DATA(insert OID = 1180 (  abstime                 PGUID 12 f t f t 1 f  702 "1184" 100 0 0 100  timestamptz_abstime - _null_ ));
 DESCR("convert timestamp with time zone to abstime");
-DATA(insert OID = 1181 (  age                     PGUID 12 f t f t 1 f 23 "28" 100 0 0 100  xid_age - ));
+DATA(insert OID = 1181 (  age                     PGUID 12 f t f t 1 f 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   PGUID 12 f t t t 2 f 1186 "1184 1184" 100 0 0 100  timestamp_mi - ));
+DATA(insert OID = 1188 (  timestamptz_mi   PGUID 12 f t t t 2 f 1186 "1184 1184" 100 0 0 100  timestamp_mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 1189 (  timestamptz_pl_span PGUID 12 f t t t 2 f 1184 "1184 1186" 100 0 0 100  timestamptz_pl_span - ));
+DATA(insert OID = 1189 (  timestamptz_pl_span PGUID 12 f t t t 2 f 1184 "1184 1186" 100 0 0 100  timestamptz_pl_span - _null_ ));
 DESCR("plus");
-DATA(insert OID = 1190 (  timestamptz_mi_span PGUID 12 f t t t 2 f 1184 "1184 1186" 100 0 0 100  timestamptz_mi_span - ));
+DATA(insert OID = 1190 (  timestamptz_mi_span PGUID 12 f t t t 2 f 1184 "1184 1186" 100 0 0 100  timestamptz_mi_span - _null_ ));
 DESCR("minus");
-DATA(insert OID = 1191 (  timestamptz          PGUID 12 f t f t 1 f 1184 "25" 100 0 0 100      text_timestamptz - ));
+DATA(insert OID = 1191 (  timestamptz          PGUID 12 f t f t 1 f 1184 "25" 100 0 0 100      text_timestamptz - _null_ ));
 DESCR("convert text to timestamp with time zone");
-DATA(insert OID = 1192 (  text                         PGUID 12 f t f t 1 f     25 "1184" 100 0 0 100  timestamptz_text - ));
+DATA(insert OID = 1192 (  text                         PGUID 12 f t f t 1 f     25 "1184" 100 0 0 100  timestamptz_text - _null_ ));
 DESCR("convert timestamp to text");
-DATA(insert OID = 1193 (  text                         PGUID 12 f t t t 1 f     25 "1186" 100 0 0 100  interval_text - ));
+DATA(insert OID = 1193 (  text                         PGUID 12 f t t t 1 f     25 "1186" 100 0 0 100  interval_text - _null_ ));
 DESCR("convert interval to text");
-DATA(insert OID = 1194 (  reltime                      PGUID 12 f t t t 1 f    703 "1186" 100 0 0 100  interval_reltime - ));
+DATA(insert OID = 1194 (  reltime                      PGUID 12 f t t t 1 f    703 "1186" 100 0 0 100  interval_reltime - _null_ ));
 DESCR("convert interval to reltime");
-DATA(insert OID = 1195 (  timestamptz_smaller PGUID 12 f t t t 2 f 1184 "1184 1184" 100 0 0 100  timestamp_smaller - ));
+DATA(insert OID = 1195 (  timestamptz_smaller PGUID 12 f t t t 2 f 1184 "1184 1184" 100 0 0 100  timestamp_smaller - _null_ ));
 DESCR("smaller of two");
-DATA(insert OID = 1196 (  timestamptz_larger  PGUID 12 f t t t 2 f 1184 "1184 1184" 100 0 0 100  timestamp_larger - ));
+DATA(insert OID = 1196 (  timestamptz_larger  PGUID 12 f t t t 2 f 1184 "1184 1184" 100 0 0 100  timestamp_larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 1197 (  interval_smaller     PGUID 12 f t t t 2 f 1186 "1186 1186" 100 0 0 100  interval_smaller - ));
+DATA(insert OID = 1197 (  interval_smaller     PGUID 12 f t t t 2 f 1186 "1186 1186" 100 0 0 100  interval_smaller - _null_ ));
 DESCR("smaller of two");
-DATA(insert OID = 1198 (  interval_larger      PGUID 12 f t t t 2 f 1186 "1186 1186" 100 0 0 100  interval_larger - ));
+DATA(insert OID = 1198 (  interval_larger      PGUID 12 f t t t 2 f 1186 "1186 1186" 100 0 0 100  interval_larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 1199 (  age                          PGUID 12 f t t t 2 f 1186 "1184 1184" 100 0 0 100  timestamptz_age - ));
+DATA(insert OID = 1199 (  age                          PGUID 12 f t t t 2 f 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                 PGUID 12 f t t t 1 f  703 "23" 100 0 0 100  int4reltime - ));
+DATA(insert OID = 1200 (  reltime                 PGUID 12 f t t t 1 f  703 "23" 100 0 0 100  int4reltime - _null_ ));
 DESCR("convert int4 to reltime");
 
-DATA(insert OID = 1215 (  obj_description      PGUID 14 f t f t 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" - ));
+DATA(insert OID = 1215 (  obj_description      PGUID 14 f t f t 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_ ));
 DESCR("get description for object id and catalog name");
-DATA(insert OID = 1216 (  col_description      PGUID 14 f t f t 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" - ));
+DATA(insert OID = 1216 (  col_description      PGUID 14 f t f t 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_ ));
 DESCR("get description for table column");
 
-DATA(insert OID = 1217 (  date_trunc      PGUID 12 f t t t 2 f 1184 "25 1184" 100 0 0 100      timestamptz_trunc - ));
+DATA(insert OID = 1217 (  date_trunc      PGUID 12 f t t t 2 f 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      PGUID 12 f t t t 2 f 1186 "25 1186" 100 0 0 100      interval_trunc - ));
+DATA(insert OID = 1218 (  date_trunc      PGUID 12 f t t t 2 f 1186 "25 1186" 100 0 0 100      interval_trunc - _null_ ));
 DESCR("truncate interval to specified units");
 
-DATA(insert OID = 1219 (  int8inc                 PGUID 12 f t t t 1 f 20 "20" 100 0 0 100  int8inc - ));
+DATA(insert OID = 1219 (  int8inc                 PGUID 12 f t t t 1 f 20 "20" 100 0 0 100  int8inc - _null_ ));
 DESCR("increment");
-DATA(insert OID = 1230 (  int8abs                 PGUID 12 f t t t 1 f 20 "20" 100 0 0 100  int8abs - ));
+DATA(insert OID = 1230 (  int8abs                 PGUID 12 f t t t 1 f 20 "20" 100 0 0 100  int8abs - _null_ ));
 DESCR("absolute value");
 
-DATA(insert OID = 1236 (  int8larger      PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8larger - ));
+DATA(insert OID = 1236 (  int8larger      PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 1237 (  int8smaller     PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8smaller - ));
+DATA(insert OID = 1237 (  int8smaller     PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8smaller - _null_ ));
 DESCR("smaller of two");
 
-DATA(insert OID = 1238 (  texticregexeq    PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100 texticregexeq - ));
+DATA(insert OID = 1238 (  texticregexeq    PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100 texticregexeq - _null_ ));
 DESCR("matches regex., case-insensitive");
-DATA(insert OID = 1239 (  texticregexne    PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100 texticregexne - ));
+DATA(insert OID = 1239 (  texticregexne    PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100 texticregexne - _null_ ));
 DESCR("does not match regex., case-insensitive");
-DATA(insert OID = 1240 (  nameicregexeq    PGUID 12 f t t t 2 f 16 "19 25" 100 0 0 100 nameicregexeq - ));
+DATA(insert OID = 1240 (  nameicregexeq    PGUID 12 f t t t 2 f 16 "19 25" 100 0 0 100 nameicregexeq - _null_ ));
 DESCR("matches regex., case-insensitive");
-DATA(insert OID = 1241 (  nameicregexne    PGUID 12 f t t t 2 f 16 "19 25" 100 0 0 100 nameicregexne - ));
+DATA(insert OID = 1241 (  nameicregexne    PGUID 12 f t t t 2 f 16 "19 25" 100 0 0 100 nameicregexne - _null_ ));
 DESCR("does not match regex., case-insensitive");
 
-DATA(insert OID = 1251 (  int4abs                 PGUID 12 f t t t 1 f 23 "23" 100 0 0 100  int4abs - ));
+DATA(insert OID = 1251 (  int4abs                 PGUID 12 f t t t 1 f 23 "23" 100 0 0 100  int4abs - _null_ ));
 DESCR("absolute value");
-DATA(insert OID = 1253 (  int2abs                 PGUID 12 f t t t 1 f 21 "21" 100 0 0 100  int2abs - ));
+DATA(insert OID = 1253 (  int2abs                 PGUID 12 f t t t 1 f 21 "21" 100 0 0 100  int2abs - _null_ ));
 DESCR("absolute value");
 
-DATA(insert OID = 1263 (  interval                PGUID 12 f t f t 1 f 1186 "25" 100 0 0 100  text_interval - ));
+DATA(insert OID = 1263 (  interval                PGUID 12 f t f t 1 f 1186 "25" 100 0 0 100  text_interval - _null_ ));
 DESCR("convert text to interval");
 
-DATA(insert OID = 1271 (  overlaps                PGUID 12 f t t f 4 f 16 "1266 1266 1266 1266" 100 0 0 100  overlaps_timetz - ));
+DATA(insert OID = 1271 (  overlaps                PGUID 12 f t t f 4 f 16 "1266 1266 1266 1266" 100 0 0 100  overlaps_timetz - _null_ ));
 DESCR("SQL92 interval comparison");
-DATA(insert OID = 1272 (  datetime_pl     PGUID 12 f t t t 2 f 1114 "1082 1083" 100 0 0 100  datetime_timestamp - ));
+DATA(insert OID = 1272 (  datetime_pl     PGUID 12 f t t t 2 f 1114 "1082 1083" 100 0 0 100  datetime_timestamp - _null_ ));
 DESCR("convert date and time to timestamp");
-DATA(insert OID = 1273 (  date_part               PGUID 12 f t t t 2 f  701 "25 1266" 100 0 0 100      timetz_part - ));
+DATA(insert OID = 1273 (  date_part               PGUID 12 f t t t 2 f  701 "25 1266" 100 0 0 100      timetz_part - _null_ ));
 DESCR("extract field from time with time zone");
-DATA(insert OID = 1274 (  int84pl                 PGUID 12 f t t t 2 f 20 "20 23" 100 0 0 100  int84pl - ));
+DATA(insert OID = 1274 (  int84pl                 PGUID 12 f t t t 2 f 20 "20 23" 100 0 0 100  int84pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 1275 (  int84mi                 PGUID 12 f t t t 2 f 20 "20 23" 100 0 0 100  int84mi - ));
+DATA(insert OID = 1275 (  int84mi                 PGUID 12 f t t t 2 f 20 "20 23" 100 0 0 100  int84mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 1276 (  int84mul                PGUID 12 f t t t 2 f 20 "20 23" 100 0 0 100  int84mul - ));
+DATA(insert OID = 1276 (  int84mul                PGUID 12 f t t t 2 f 20 "20 23" 100 0 0 100  int84mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 1277 (  int84div                PGUID 12 f t t t 2 f 20 "20 23" 100 0 0 100  int84div - ));
+DATA(insert OID = 1277 (  int84div                PGUID 12 f t t t 2 f 20 "20 23" 100 0 0 100  int84div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 1278 (  int48pl                 PGUID 12 f t t t 2 f 20 "23 20" 100 0 0 100  int48pl - ));
+DATA(insert OID = 1278 (  int48pl                 PGUID 12 f t t t 2 f 20 "23 20" 100 0 0 100  int48pl - _null_ ));
 DESCR("add");
-DATA(insert OID = 1279 (  int48mi                 PGUID 12 f t t t 2 f 20 "23 20" 100 0 0 100  int48mi - ));
+DATA(insert OID = 1279 (  int48mi                 PGUID 12 f t t t 2 f 20 "23 20" 100 0 0 100  int48mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 1280 (  int48mul                PGUID 12 f t t t 2 f 20 "23 20" 100 0 0 100  int48mul - ));
+DATA(insert OID = 1280 (  int48mul                PGUID 12 f t t t 2 f 20 "23 20" 100 0 0 100  int48mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 1281 (  int48div                PGUID 12 f t t t 2 f 20 "23 20" 100 0 0 100  int48div - ));
+DATA(insert OID = 1281 (  int48div                PGUID 12 f t t t 2 f 20 "23 20" 100 0 0 100  int48div - _null_ ));
 DESCR("divide");
 
-DATA(insert OID = 1288 (  text                    PGUID 12 f t t t 1 f 25 "20" 100 0 0 100  int8_text - ));
+DATA(insert OID = 1288 (  text                    PGUID 12 f t t t 1 f 25 "20" 100 0 0 100  int8_text - _null_ ));
 DESCR("convert int8 to text");
-DATA(insert OID = 1289 (  int8                    PGUID 12 f t t t 1 f 20 "25" 100 0 0 100  text_int8 - ));
+DATA(insert OID = 1289 (  int8                    PGUID 12 f t t t 1 f 20 "25" 100 0 0 100  text_int8 - _null_ ));
 DESCR("convert text to int8");
 
-DATA(insert OID = 1290 (  _bpchar                 PGUID 12 f t t t 2 f 1014 "1014 23" 100 0 0 100      _bpchar - ));
+DATA(insert OID = 1290 (  _bpchar                 PGUID 12 f t t t 2 f 1014 "1014 23" 100 0 0 100      _bpchar - _null_ ));
 DESCR("adjust char()[] to typmod length");
-DATA(insert OID = 1291 (  _varchar                PGUID 12 f t t t 2 f 1015 "1015 23" 100 0 0 100      _varchar - ));
+DATA(insert OID = 1291 (  _varchar                PGUID 12 f t t t 2 f 1015 "1015 23" 100 0 0 100      _varchar - _null_ ));
 DESCR("adjust varchar()[] to typmod length");
 
-DATA(insert OID = 1292 ( tideq                    PGUID 12 f t t t 2 f 16 "27 27" 100 0 0 100  tideq - ));
+DATA(insert OID = 1292 ( tideq                    PGUID 12 f t t t 2 f 16 "27 27" 100 0 0 100  tideq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1293 ( currtid                  PGUID 12 f t f t 2 f 27 "26 27" 100 0 0 100  currtid_byreloid - ));
+DATA(insert OID = 1293 ( currtid                  PGUID 12 f t f t 2 f 27 "26 27" 100 0 0 100  currtid_byreloid - _null_ ));
 DESCR("latest tid of a tuple");
-DATA(insert OID = 1294 ( currtid2                 PGUID 12 f t f t 2 f 27 "25 27" 100 0 0 100  currtid_byrelname - ));
+DATA(insert OID = 1294 ( currtid2                 PGUID 12 f t f t 2 f 27 "25 27" 100 0 0 100  currtid_byrelname - _null_ ));
 DESCR("latest tid of a tuple");
 
-DATA(insert OID = 1296 (  timedate_pl     PGUID 14 f t t t 2 f 1114 "1083 1082" 100 0 0 100  "select ($2 + $1)" - ));
+DATA(insert OID = 1296 (  timedate_pl     PGUID 14 f t t t 2 f 1114 "1083 1082" 100 0 0 100  "select ($2 + $1)" - _null_ ));
 DESCR("convert time and date to timestamp");
-DATA(insert OID = 1297 (  datetimetz_pl    PGUID 12 f t t t 2 f 1184 "1082 1266" 100 0 0 100  datetimetz_timestamptz - ));
+DATA(insert OID = 1297 (  datetimetz_pl    PGUID 12 f t t t 2 f 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    PGUID 14 f t t t 2 f 1184 "1266 1082" 100 0 0 100  "select ($2 + $1)" - ));
+DATA(insert OID = 1298 (  timetzdate_pl    PGUID 14 f t t t 2 f 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                     PGUID 12 f t f t 0 f 1184 "0" 100 0 0 100  now - ));
+DATA(insert OID = 1299 (  now                     PGUID 12 f t f t 0 f 1184 "0" 100 0 0 100  now - _null_ ));
 DESCR("current transaction time");
 
 /* OIDS 1300 - 1399 */
 
-DATA(insert OID = 1300 (  positionsel             PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  positionsel - ));
+DATA(insert OID = 1300 (  positionsel             PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  positionsel - _null_ ));
 DESCR("restriction selectivity for position-comparison operators");
-DATA(insert OID = 1301 (  positionjoinsel         PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  positionjoinsel - ));
+DATA(insert OID = 1301 (  positionjoinsel         PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  positionjoinsel - _null_ ));
 DESCR("join selectivity for position-comparison operators");
-DATA(insert OID = 1302 (  contsel                 PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  contsel - ));
+DATA(insert OID = 1302 (  contsel                 PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  contsel - _null_ ));
 DESCR("restriction selectivity for containment comparison operators");
-DATA(insert OID = 1303 (  contjoinsel     PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  contjoinsel - ));
+DATA(insert OID = 1303 (  contjoinsel     PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  contjoinsel - _null_ ));
 DESCR("join selectivity for containment comparison operators");
 
-DATA(insert OID = 1304 ( overlaps                       PGUID 12 f t t f 4 f 16 "1184 1184 1184 1184" 100 0 0 100      overlaps_timestamp - ));
+DATA(insert OID = 1304 ( overlaps                       PGUID 12 f t t f 4 f 16 "1184 1184 1184 1184" 100 0 0 100      overlaps_timestamp - _null_ ));
 DESCR("SQL92 interval comparison");
-DATA(insert OID = 1305 ( overlaps                       PGUID 14 f t t f 4 f 16 "1184 1186 1184 1186" 100 0 0 100      "select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" - ));
+DATA(insert OID = 1305 ( overlaps                       PGUID 14 f t t f 4 f 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                       PGUID 14 f t t f 4 f 16 "1184 1184 1184 1186" 100 0 0 100      "select ($1, $2) overlaps ($3, ($3 + $4))" - ));
+DATA(insert OID = 1306 ( overlaps                       PGUID 14 f t t f 4 f 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                       PGUID 14 f t t f 4 f 16 "1184 1186 1184 1184" 100 0 0 100      "select ($1, ($1 + $2)) overlaps ($3, $4)" - ));
+DATA(insert OID = 1307 ( overlaps                       PGUID 14 f t t f 4 f 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                       PGUID 12 f t t f 4 f 16 "1083 1083 1083 1083" 100 0 0 100      overlaps_time - ));
+DATA(insert OID = 1308 ( overlaps                       PGUID 12 f t t f 4 f 16 "1083 1083 1083 1083" 100 0 0 100      overlaps_time - _null_ ));
 DESCR("SQL92 interval comparison");
-DATA(insert OID = 1309 ( overlaps                       PGUID 14 f t t f 4 f 16 "1083 1186 1083 1186" 100 0 0 100      "select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" - ));
+DATA(insert OID = 1309 ( overlaps                       PGUID 14 f t t f 4 f 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                       PGUID 14 f t t f 4 f 16 "1083 1083 1083 1186" 100 0 0 100      "select ($1, $2) overlaps ($3, ($3 + $4))" - ));
+DATA(insert OID = 1310 ( overlaps                       PGUID 14 f t t f 4 f 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                       PGUID 14 f t t f 4 f 16 "1083 1186 1083 1083" 100 0 0 100      "select ($1, ($1 + $2)) overlaps ($3, $4)" - ));
+DATA(insert OID = 1311 ( overlaps                       PGUID 14 f t t f 4 f 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          PGUID 12 f t f t 1 f 1114 "0" 100 0 0 100      timestamp_in - ));
+DATA(insert OID = 1312 (  timestamp_in          PGUID 12 f t f t 1 f 1114 "0" 100 0 0 100      timestamp_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1313 (  timestamp_out                 PGUID 12 f t f t 1 f 23 "0" 100 0 0 100  timestamp_out - ));
+DATA(insert OID = 1313 (  timestamp_out                 PGUID 12 f t f t 1 f 23 "0" 100 0 0 100  timestamp_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1314 (  timestamptz_cmp       PGUID 12 f t t t 2 f   23 "1184 1184" 100 0 0 100      timestamp_cmp - ));
+DATA(insert OID = 1314 (  timestamptz_cmp       PGUID 12 f t t t 2 f   23 "1184 1184" 100 0 0 100      timestamp_cmp - _null_ ));
 DESCR("less-equal-greater");
-DATA(insert OID = 1315 (  interval_cmp          PGUID 12 f t t t 2 f   23 "1186 1186" 100 0 0 100      interval_cmp - ));
+DATA(insert OID = 1315 (  interval_cmp          PGUID 12 f t t t 2 f   23 "1186 1186" 100 0 0 100      interval_cmp - _null_ ));
 DESCR("less-equal-greater");
-DATA(insert OID = 1316 (  time                          PGUID 12 f t t t 1 f 1083 "1114" 100 0 0 100  timestamp_time - ));
+DATA(insert OID = 1316 (  time                          PGUID 12 f t t t 1 f 1083 "1114" 100 0 0 100  timestamp_time - _null_ ));
 DESCR("convert timestamp to time");
 
-DATA(insert OID = 1317 (  length                        PGUID 12 f t t t 1 f   23 "25" 100 0 0 100  textlen - ));
+DATA(insert OID = 1317 (  length                        PGUID 12 f t t t 1 f   23 "25" 100 0 0 100  textlen - _null_ ));
 DESCR("length");
-DATA(insert OID = 1318 (  length                        PGUID 12 f t t t 1 f   23 "1042" 100 0 0 100  bpcharlen - ));
+DATA(insert OID = 1318 (  length                        PGUID 12 f t t t 1 f   23 "1042" 100 0 0 100  bpcharlen - _null_ ));
 DESCR("character length");
-DATA(insert OID = 1319 (  length                        PGUID 12 f t t t 1 f   23 "1043" 100 0 0 100  varcharlen - ));
+DATA(insert OID = 1319 (  length                        PGUID 12 f t t t 1 f   23 "1043" 100 0 0 100  varcharlen - _null_ ));
 DESCR("character length");
 
-DATA(insert OID = 1326 (  interval_div          PGUID 12 f t t t 2 f 1186 "1186 701" 100 0 0 100  interval_div - ));
+DATA(insert OID = 1326 (  interval_div          PGUID 12 f t t t 2 f 1186 "1186 701" 100 0 0 100  interval_div - _null_ ));
 DESCR("divide");
 
-DATA(insert OID = 1339 (  dlog10                        PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dlog10 - ));
+DATA(insert OID = 1339 (  dlog10                        PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dlog10 - _null_ ));
 DESCR("base 10 logarithm");
-DATA(insert OID = 1340 (  log                           PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dlog10 - ));
+DATA(insert OID = 1340 (  log                           PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dlog10 - _null_ ));
 DESCR("base 10 logarithm");
-DATA(insert OID = 1341 (  ln                            PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dlog1 - ));
+DATA(insert OID = 1341 (  ln                            PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dlog1 - _null_ ));
 DESCR("natural logarithm");
-DATA(insert OID = 1342 (  round                                 PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dround - ));
+DATA(insert OID = 1342 (  round                                 PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dround - _null_ ));
 DESCR("round to nearest integer");
-DATA(insert OID = 1343 (  trunc                                 PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dtrunc - ));
+DATA(insert OID = 1343 (  trunc                                 PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dtrunc - _null_ ));
 DESCR("truncate to integer");
-DATA(insert OID = 1344 (  sqrt                          PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dsqrt - ));
+DATA(insert OID = 1344 (  sqrt                          PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dsqrt - _null_ ));
 DESCR("square root");
-DATA(insert OID = 1345 (  cbrt                          PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dcbrt - ));
+DATA(insert OID = 1345 (  cbrt                          PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dcbrt - _null_ ));
 DESCR("cube root");
-DATA(insert OID = 1346 (  pow                           PGUID 12 f t t t 2 f 701 "701 701" 100 0 0 100  dpow - ));
+DATA(insert OID = 1346 (  pow                           PGUID 12 f t t t 2 f 701 "701 701" 100 0 0 100  dpow - _null_ ));
 DESCR("exponentiation");
-DATA(insert OID = 1347 (  exp                           PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  dexp - ));
+DATA(insert OID = 1347 (  exp                           PGUID 12 f t t t 1 f 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       PGUID 14 f t f t 1 f   25 "26" 100 0 0 100  "select description from pg_description where objoid = $1 and objsubid = 0" - ));
+DATA(insert OID = 1348 (  obj_description       PGUID 14 f t f t 1 f   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        PGUID 12 f t f t 1 f   25 "30" 100 0 0 100  oidvectortypes - ));
+DATA(insert OID = 1349 (  oidvectortypes        PGUID 12 f t f t 1 f   25 "30" 100 0 0 100  oidvectortypes - _null_ ));
 DESCR("print type names of oidvector field");
 
 
-DATA(insert OID = 1350 (  timetz_in               PGUID 12 f t f t 1 f 1266 "0" 100 0 0 100  timetz_in - ));
+DATA(insert OID = 1350 (  timetz_in               PGUID 12 f t f t 1 f 1266 "0" 100 0 0 100  timetz_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1351 (  timetz_out      PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      timetz_out - ));
+DATA(insert OID = 1351 (  timetz_out      PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      timetz_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1352 (  timetz_eq               PGUID 12 f t t t 2 f 16 "1266 1266" 100 0 0 100      timetz_eq - ));
+DATA(insert OID = 1352 (  timetz_eq               PGUID 12 f t t t 2 f 16 "1266 1266" 100 0 0 100      timetz_eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1353 (  timetz_ne               PGUID 12 f t t t 2 f 16 "1266 1266" 100 0 0 100      timetz_ne - ));
+DATA(insert OID = 1353 (  timetz_ne               PGUID 12 f t t t 2 f 16 "1266 1266" 100 0 0 100      timetz_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1354 (  timetz_lt               PGUID 12 f t t t 2 f 16 "1266 1266" 100 0 0 100      timetz_lt - ));
+DATA(insert OID = 1354 (  timetz_lt               PGUID 12 f t t t 2 f 16 "1266 1266" 100 0 0 100      timetz_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1355 (  timetz_le               PGUID 12 f t t t 2 f 16 "1266 1266" 100 0 0 100      timetz_le - ));
+DATA(insert OID = 1355 (  timetz_le               PGUID 12 f t t t 2 f 16 "1266 1266" 100 0 0 100      timetz_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1356 (  timetz_ge               PGUID 12 f t t t 2 f 16 "1266 1266" 100 0 0 100      timetz_ge - ));
+DATA(insert OID = 1356 (  timetz_ge               PGUID 12 f t t t 2 f 16 "1266 1266" 100 0 0 100      timetz_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1357 (  timetz_gt               PGUID 12 f t t t 2 f 16 "1266 1266" 100 0 0 100      timetz_gt - ));
+DATA(insert OID = 1357 (  timetz_gt               PGUID 12 f t t t 2 f 16 "1266 1266" 100 0 0 100      timetz_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1358 (  timetz_cmp      PGUID 12 f t t t 2 f 23 "1266 1266" 100 0 0 100      timetz_cmp - ));
+DATA(insert OID = 1358 (  timetz_cmp      PGUID 12 f t t t 2 f 23 "1266 1266" 100 0 0 100      timetz_cmp - _null_ ));
 DESCR("less-equal-greater");
-DATA(insert OID = 1359 (  timestamptz     PGUID 12 f t t t 2 f 1184 "1082 1266" 100 0 0 100  datetimetz_timestamptz - ));
+DATA(insert OID = 1359 (  timestamptz     PGUID 12 f t t t 2 f 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                          PGUID 14 f t t t 1 f 1083 "1083" 100 0 0 100  "select $1" - ));
+DATA(insert OID = 1362 (  time                          PGUID 14 f t t t 1 f 1083 "1083" 100 0 0 100  "select $1" - _null_ ));
 DESCR("convert (noop)");
-DATA(insert OID = 1364 (  time                          PGUID 14 f t t t 1 f 1083 "702" 100 0 0 100  "select time(cast($1 as timestamp without time zone))" - ));
+DATA(insert OID = 1364 (  time                          PGUID 14 f t t t 1 f 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                       PGUID 14 f t t t 1 f  702 "702" 100 0 0 100  "select $1" - ));
+DATA(insert OID = 1365 (  abstime                       PGUID 14 f t t t 1 f  702 "702" 100 0 0 100  "select $1" - _null_ ));
 DESCR("convert (noop)");
-DATA(insert OID = 1367 (  reltime                       PGUID 14 f t t t 1 f  703 "703" 100 0 0 100  "select $1" - ));
+DATA(insert OID = 1367 (  reltime                       PGUID 14 f t t t 1 f  703 "703" 100 0 0 100  "select $1" - _null_ ));
 DESCR("convert (noop)");
-DATA(insert OID = 1368 (  timestamptz           PGUID 14 f t t t 1 f 1184 "1184" 100 0 0 100  "select $1" - ));
+DATA(insert OID = 1368 (  timestamptz           PGUID 14 f t t t 1 f 1184 "1184" 100 0 0 100  "select $1" - _null_ ));
 DESCR("convert (noop)");
-DATA(insert OID = 1369 (  interval                      PGUID 14 f t t t 1 f 1186 "1186" 100 0 0 100  "select $1" - ));
+DATA(insert OID = 1369 (  interval                      PGUID 14 f t t t 1 f 1186 "1186" 100 0 0 100  "select $1" - _null_ ));
 DESCR("convert (noop)");
-DATA(insert OID = 1370 (  interval                      PGUID 12 f t t t 1 f 1186 "1083" 100 0 0 100  time_interval - ));
+DATA(insert OID = 1370 (  interval                      PGUID 12 f t t t 1 f 1186 "1083" 100 0 0 100  time_interval - _null_ ));
 DESCR("convert time to interval");
-DATA(insert OID = 1371 (  date                          PGUID 14 f t t t 1 f 1082 "1082" 100 0 0 100  "select $1" - ));
+DATA(insert OID = 1371 (  date                          PGUID 14 f t t t 1 f 1082 "1082" 100 0 0 100  "select $1" - _null_ ));
 DESCR("convert (noop)");
-DATA(insert OID = 1372 (  char_length           PGUID 12 f t t t 1 f   23       "1042" 100 0 0 100  bpcharlen - ));
+DATA(insert OID = 1372 (  char_length           PGUID 12 f t t t 1 f   23       "1042" 100 0 0 100  bpcharlen - _null_ ));
 DESCR("character length");
-DATA(insert OID = 1373 (  char_length           PGUID 12 f t t t 1 f   23       "1043" 100 0 0 100  varcharlen - ));
+DATA(insert OID = 1373 (  char_length           PGUID 12 f t t t 1 f   23       "1043" 100 0 0 100  varcharlen - _null_ ));
 DESCR("character length");
 
-DATA(insert OID = 1374 (  octet_length                  PGUID 12 f t t t 1 f   23       "25" 100 0 0 100  textoctetlen - ));
+DATA(insert OID = 1374 (  octet_length                  PGUID 12 f t t t 1 f   23       "25" 100 0 0 100  textoctetlen - _null_ ));
 DESCR("octet length");
-DATA(insert OID = 1375 (  octet_length                  PGUID 12 f t t t 1 f   23       "1042" 100 0 0 100  bpcharoctetlen - ));
+DATA(insert OID = 1375 (  octet_length                  PGUID 12 f t t t 1 f   23       "1042" 100 0 0 100  bpcharoctetlen - _null_ ));
 DESCR("octet length");
-DATA(insert OID = 1376 (  octet_length                  PGUID 12 f t t t 1 f   23       "1043" 100 0 0 100  varcharoctetlen - ));
+DATA(insert OID = 1376 (  octet_length                  PGUID 12 f t t t 1 f   23       "1043" 100 0 0 100  varcharoctetlen - _null_ ));
 DESCR("octet length");
 
-DATA(insert OID = 1377 (  time_larger     PGUID 12 f t t t 2 f 1083 "1083 1083" 100 0 0 100  time_larger - ));
+DATA(insert OID = 1377 (  time_larger     PGUID 12 f t t t 2 f 1083 "1083 1083" 100 0 0 100  time_larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 1378 (  time_smaller    PGUID 12 f t t t 2 f 1083 "1083 1083" 100 0 0 100  time_smaller - ));
+DATA(insert OID = 1378 (  time_smaller    PGUID 12 f t t t 2 f 1083 "1083 1083" 100 0 0 100  time_smaller - _null_ ));
 DESCR("smaller of two");
-DATA(insert OID = 1379 (  timetz_larger    PGUID 12 f t t t 2 f 1266 "1266 1266" 100 0 0 100  timetz_larger - ));
+DATA(insert OID = 1379 (  timetz_larger    PGUID 12 f t t t 2 f 1266 "1266 1266" 100 0 0 100  timetz_larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 1380 (  timetz_smaller   PGUID 12 f t t t 2 f 1266 "1266 1266" 100 0 0 100  timetz_smaller - ));
+DATA(insert OID = 1380 (  timetz_smaller   PGUID 12 f t t t 2 f 1266 "1266 1266" 100 0 0 100  timetz_smaller - _null_ ));
 DESCR("smaller of two");
 
-DATA(insert OID = 1381 (  char_length     PGUID 12 f t t t 1 f 23 "25" 100 0 0 100  textlen - ));
+DATA(insert OID = 1381 (  char_length     PGUID 12 f t t t 1 f 23 "25" 100 0 0 100  textlen - _null_ ));
 DESCR("length");
 
-DATA(insert OID = 1382 (  date_part    PGUID 14 f t f t 2 f  701 "25 702" 100 0 0 100  "select date_part($1, timestamptz($2))" - ));
+DATA(insert OID = 1382 (  date_part    PGUID 14 f t f t 2 f  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    PGUID 14 f t f t 2 f  701 "25 703" 100 0 0 100  "select date_part($1, cast($2 as interval))" - ));
+DATA(insert OID = 1383 (  date_part    PGUID 14 f t f t 2 f  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    PGUID 14 f t t t 2 f  701 "25 1082" 100 0 0 100 "select date_part($1, cast($2 as timestamp without time zone))" - ));
+DATA(insert OID = 1384 (  date_part    PGUID 14 f t t t 2 f  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    PGUID 14 f t t t 2 f  701 "25 1083" 100 0 0 100 "select date_part($1, cast($2 as time with time zone))" - ));
+DATA(insert OID = 1385 (  date_part    PGUID 14 f t t t 2 f  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             PGUID 14 f t f t 1 f 1186 "1184" 100 0 0 100  "select age(cast(current_date as timestamp with time zone), $1)" - ));
+DATA(insert OID = 1386 (  age             PGUID 14 f t f t 1 f 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                  PGUID 14 f t t t 1 f 1266 "1266" 100 0 0 100  "select $1" - ));
+DATA(insert OID = 1387 (  timetz                  PGUID 14 f t t t 1 f 1266 "1266" 100 0 0 100  "select $1" - _null_ ));
 DESCR("noop conversion");
-DATA(insert OID = 1388 (  timetz                  PGUID 12 f t f t 1 f 1266 "1184" 100 0 0 100  timestamptz_timetz - ));
+DATA(insert OID = 1388 (  timetz                  PGUID 12 f t f t 1 f 1266 "1184" 100 0 0 100  timestamptz_timetz - _null_ ));
 DESCR("convert timestamp to timetz");
 
-DATA(insert OID = 1389 (  isfinite        PGUID 12 f t t t 1 f 16 "1184" 100 0 0 100  timestamp_finite - ));
+DATA(insert OID = 1389 (  isfinite        PGUID 12 f t t t 1 f 16 "1184" 100 0 0 100  timestamp_finite - _null_ ));
 DESCR("boolean test");
-DATA(insert OID = 1390 (  isfinite        PGUID 12 f t t t 1 f 16 "1186" 100 0 0 100  interval_finite - ));
+DATA(insert OID = 1390 (  isfinite        PGUID 12 f t t t 1 f 16 "1186" 100 0 0 100  interval_finite - _null_ ));
 DESCR("boolean test");
 
 
-DATA(insert OID = 1391 (  factorial               PGUID 12 f t t t 1 f 23 "21" 100 0 0 100  int2fac - ));
+DATA(insert OID = 1391 (  factorial               PGUID 12 f t t t 1 f 23 "21" 100 0 0 100  int2fac - _null_ ));
 DESCR("factorial");
-DATA(insert OID = 1392 (  factorial               PGUID 12 f t t t 1 f 23 "23" 100 0 0 100  int4fac - ));
+DATA(insert OID = 1392 (  factorial               PGUID 12 f t t t 1 f 23 "23" 100 0 0 100  int4fac - _null_ ));
 DESCR("factorial");
-DATA(insert OID = 1393 (  factorial               PGUID 12 f t t t 1 f 20 "20" 100 0 0 100  int8fac - ));
+DATA(insert OID = 1393 (  factorial               PGUID 12 f t t t 1 f 20 "20" 100 0 0 100  int8fac - _null_ ));
 DESCR("factorial");
-DATA(insert OID = 1394 (  abs                     PGUID 12 f t t t 1 f 700 "700" 100 0 0 100  float4abs - ));
+DATA(insert OID = 1394 (  abs                     PGUID 12 f t t t 1 f 700 "700" 100 0 0 100  float4abs - _null_ ));
 DESCR("absolute value");
-DATA(insert OID = 1395 (  abs                     PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  float8abs - ));
+DATA(insert OID = 1395 (  abs                     PGUID 12 f t t t 1 f 701 "701" 100 0 0 100  float8abs - _null_ ));
 DESCR("absolute value");
-DATA(insert OID = 1396 (  abs                     PGUID 12 f t t t 1 f 20 "20" 100 0 0 100  int8abs - ));
+DATA(insert OID = 1396 (  abs                     PGUID 12 f t t t 1 f 20 "20" 100 0 0 100  int8abs - _null_ ));
 DESCR("absolute value");
-DATA(insert OID = 1397 (  abs                     PGUID 12 f t t t 1 f 23 "23" 100 0 0 100  int4abs - ));
+DATA(insert OID = 1397 (  abs                     PGUID 12 f t t t 1 f 23 "23" 100 0 0 100  int4abs - _null_ ));
 DESCR("absolute value");
-DATA(insert OID = 1398 (  abs                     PGUID 12 f t t t 1 f 21 "21" 100 0 0 100  int2abs - ));
+DATA(insert OID = 1398 (  abs                     PGUID 12 f t t t 1 f 21 "21" 100 0 0 100  int2abs - _null_ ));
 DESCR("absolute value");
 
 /* OIDS 1400 - 1499 */
 
-DATA(insert OID = 1400 (  name            PGUID 12 f t t t 1 f 19 "1043" 100 0 0 100  text_name - ));
+DATA(insert OID = 1400 (  name            PGUID 12 f t t t 1 f 19 "1043" 100 0 0 100  text_name - _null_ ));
 DESCR("convert varchar to name");
-DATA(insert OID = 1401 (  varchar         PGUID 12 f t t t 1 f 1043 "19" 100 0 0 100  name_text - ));
+DATA(insert OID = 1401 (  varchar         PGUID 12 f t t t 1 f 1043 "19" 100 0 0 100  name_text - _null_ ));
 DESCR("convert name to varchar");
 
-DATA(insert OID = 1402 (  float4          PGUID 14 f t t t 1 f  700    "700" 100 0 0 100  "select $1" - ));
+DATA(insert OID = 1402 (  float4          PGUID 14 f t t t 1 f  700    "700" 100 0 0 100  "select $1" - _null_ ));
 DESCR("convert float4 to float4 (no-op)");
-DATA(insert OID = 1403 (  int2            PGUID 14 f t t t 1 f 21       "21" 100 0 0 100  "select $1" - ));
+DATA(insert OID = 1403 (  int2            PGUID 14 f t t t 1 f 21       "21" 100 0 0 100  "select $1" - _null_ ));
 DESCR("convert (no-op)");
-DATA(insert OID = 1404 (  float8          PGUID 14 f t t t 1 f  701    "701" 100 0 0 100  "select $1" - ));
+DATA(insert OID = 1404 (  float8          PGUID 14 f t t t 1 f  701    "701" 100 0 0 100  "select $1" - _null_ ));
 DESCR("convert (no-op)");
-DATA(insert OID = 1405 (  int4            PGUID 14 f t t t 1 f 23       "23" 100 0 0 100  "select $1" - ));
+DATA(insert OID = 1405 (  int4            PGUID 14 f t t t 1 f 23       "23" 100 0 0 100  "select $1" - _null_ ));
 DESCR("convert (no-op)");
 
-DATA(insert OID = 1406 (  isvertical           PGUID 12 f t t t 2 f    16 "600 600" 100 0 0 100  point_vert - ));
+DATA(insert OID = 1406 (  isvertical           PGUID 12 f t t t 2 f    16 "600 600" 100 0 0 100  point_vert - _null_ ));
 DESCR("vertically aligned?");
-DATA(insert OID = 1407 (  ishorizontal         PGUID 12 f t t t 2 f    16 "600 600" 100 0 0 100  point_horiz - ));
+DATA(insert OID = 1407 (  ishorizontal         PGUID 12 f t t t 2 f    16 "600 600" 100 0 0 100  point_horiz - _null_ ));
 DESCR("horizontally aligned?");
-DATA(insert OID = 1408 (  isparallel           PGUID 12 f t t t 2 f    16 "601 601" 100 0 0 100  lseg_parallel - ));
+DATA(insert OID = 1408 (  isparallel           PGUID 12 f t t t 2 f    16 "601 601" 100 0 0 100  lseg_parallel - _null_ ));
 DESCR("parallel?");
-DATA(insert OID = 1409 (  isperp                       PGUID 12 f t t t 2 f    16 "601 601" 100 0 0 100  lseg_perp - ));
+DATA(insert OID = 1409 (  isperp                       PGUID 12 f t t t 2 f    16 "601 601" 100 0 0 100  lseg_perp - _null_ ));
 DESCR("perpendicular?");
-DATA(insert OID = 1410 (  isvertical           PGUID 12 f t t t 1 f    16 "601" 100 0 0 100  lseg_vertical - ));
+DATA(insert OID = 1410 (  isvertical           PGUID 12 f t t t 1 f    16 "601" 100 0 0 100  lseg_vertical - _null_ ));
 DESCR("vertical?");
-DATA(insert OID = 1411 (  ishorizontal         PGUID 12 f t t t 1 f    16 "601" 100 0 0 100  lseg_horizontal - ));
+DATA(insert OID = 1411 (  ishorizontal         PGUID 12 f t t t 1 f    16 "601" 100 0 0 100  lseg_horizontal - _null_ ));
 DESCR("horizontal?");
-DATA(insert OID = 1412 (  isparallel           PGUID 12 f t t t 2 f    16 "628 628" 100 0 0 100  line_parallel - ));
+DATA(insert OID = 1412 (  isparallel           PGUID 12 f t t t 2 f    16 "628 628" 100 0 0 100  line_parallel - _null_ ));
 DESCR("lines parallel?");
-DATA(insert OID = 1413 (  isperp                       PGUID 12 f t t t 2 f    16 "628 628" 100 0 0 100  line_perp - ));
+DATA(insert OID = 1413 (  isperp                       PGUID 12 f t t t 2 f    16 "628 628" 100 0 0 100  line_perp - _null_ ));
 DESCR("lines perpendicular?");
-DATA(insert OID = 1414 (  isvertical           PGUID 12 f t t t 1 f    16 "628" 100 0 0 100  line_vertical - ));
+DATA(insert OID = 1414 (  isvertical           PGUID 12 f t t t 1 f    16 "628" 100 0 0 100  line_vertical - _null_ ));
 DESCR("lines vertical?");
-DATA(insert OID = 1415 (  ishorizontal         PGUID 12 f t t t 1 f    16 "628" 100 0 0 100  line_horizontal - ));
+DATA(insert OID = 1415 (  ishorizontal         PGUID 12 f t t t 1 f    16 "628" 100 0 0 100  line_horizontal - _null_ ));
 DESCR("lines horizontal?");
-DATA(insert OID = 1416 (  point                                PGUID 12 f t t t 1 f 600 "718" 100 0 0 100      circle_center - ));
+DATA(insert OID = 1416 (  point                                PGUID 12 f t t t 1 f 600 "718" 100 0 0 100      circle_center - _null_ ));
 DESCR("center of");
 
-DATA(insert OID = 1417 (  isnottrue                    PGUID 12 f t t f 1 f 16 "16" 100 0 0 100  isnottrue - ));
+DATA(insert OID = 1417 (  isnottrue                    PGUID 12 f t t f 1 f 16 "16" 100 0 0 100  isnottrue - _null_ ));
 DESCR("bool is not true (ie, false or unknown)");
-DATA(insert OID = 1418 (  isnotfalse           PGUID 12 f t t f 1 f 16 "16" 100 0 0 100  isnotfalse - ));
+DATA(insert OID = 1418 (  isnotfalse           PGUID 12 f t t f 1 f 16 "16" 100 0 0 100  isnotfalse - _null_ ));
 DESCR("bool is not false (ie, true or unknown)");
 
-DATA(insert OID = 1419 (  time                         PGUID 12 f t t t 1 f 1083 "1186" 100 0 0 100  interval_time - ));
+DATA(insert OID = 1419 (  time                         PGUID 12 f t t t 1 f 1083 "1186" 100 0 0 100  interval_time - _null_ ));
 DESCR("convert interval to time");
 
-DATA(insert OID = 1421 (  box                          PGUID 12 f t t t 2 f 603 "600 600" 100 0 0 100  points_box - ));
+DATA(insert OID = 1421 (  box                          PGUID 12 f t t t 2 f 603 "600 600" 100 0 0 100  points_box - _null_ ));
 DESCR("convert points to box");
-DATA(insert OID = 1422 (  box_add                      PGUID 12 f t t t 2 f 603 "603 600" 100 0 0 100  box_add - ));
+DATA(insert OID = 1422 (  box_add                      PGUID 12 f t t t 2 f 603 "603 600" 100 0 0 100  box_add - _null_ ));
 DESCR("add point to box (translate)");
-DATA(insert OID = 1423 (  box_sub                      PGUID 12 f t t t 2 f 603 "603 600" 100 0 0 100  box_sub - ));
+DATA(insert OID = 1423 (  box_sub                      PGUID 12 f t t t 2 f 603 "603 600" 100 0 0 100  box_sub - _null_ ));
 DESCR("subtract point from box (translate)");
-DATA(insert OID = 1424 (  box_mul                      PGUID 12 f t t t 2 f 603 "603 600" 100 0 0 100  box_mul - ));
+DATA(insert OID = 1424 (  box_mul                      PGUID 12 f t t t 2 f 603 "603 600" 100 0 0 100  box_mul - _null_ ));
 DESCR("multiply box by point (scale)");
-DATA(insert OID = 1425 (  box_div                      PGUID 12 f t t t 2 f 603 "603 600" 100 0 0 100  box_div - ));
+DATA(insert OID = 1425 (  box_div                      PGUID 12 f t t t 2 f 603 "603 600" 100 0 0 100  box_div - _null_ ));
 DESCR("divide box by point (scale)");
-DATA(insert OID = 1426 (  path_contain_pt      PGUID 14 f t t t 2 f    16 "602 600" 100 0 0 100  "select on_ppath($2, $1)" - ));
+DATA(insert OID = 1426 (  path_contain_pt      PGUID 14 f t t t 2 f    16 "602 600" 100 0 0 100  "select on_ppath($2, $1)" - _null_ ));
 DESCR("path contains point?");
-DATA(insert OID = 1428 (  poly_contain_pt      PGUID 12 f t t t 2 f    16 "604 600" 100 0 0 100  poly_contain_pt - ));
+DATA(insert OID = 1428 (  poly_contain_pt      PGUID 12 f t t t 2 f    16 "604 600" 100 0 0 100  poly_contain_pt - _null_ ));
 DESCR("polygon contains point?");
-DATA(insert OID = 1429 (  pt_contained_poly PGUID 12 f t t t 2 f       16 "600 604" 100 0 0 100  pt_contained_poly - ));
+DATA(insert OID = 1429 (  pt_contained_poly PGUID 12 f t t t 2 f       16 "600 604" 100 0 0 100  pt_contained_poly - _null_ ));
 DESCR("point contained by polygon?");
 
-DATA(insert OID = 1430 (  isclosed                     PGUID 12 f t t t 1 f    16 "602" 100 0 0 100  path_isclosed - ));
+DATA(insert OID = 1430 (  isclosed                     PGUID 12 f t t t 1 f    16 "602" 100 0 0 100  path_isclosed - _null_ ));
 DESCR("path closed?");
-DATA(insert OID = 1431 (  isopen                       PGUID 12 f t t t 1 f    16 "602" 100 0 0 100  path_isopen - ));
+DATA(insert OID = 1431 (  isopen                       PGUID 12 f t t t 1 f    16 "602" 100 0 0 100  path_isopen - _null_ ));
 DESCR("path open?");
-DATA(insert OID = 1432 (  path_npoints         PGUID 12 f t t t 1 f    23 "602" 100 0 0 100  path_npoints - ));
+DATA(insert OID = 1432 (  path_npoints         PGUID 12 f t t t 1 f    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                       PGUID 12 f t t t 1 f 602 "602" 100 0 0 100      path_close - ));
+DATA(insert OID = 1433 (  pclose                       PGUID 12 f t t t 1 f 602 "602" 100 0 0 100      path_close - _null_ ));
 DESCR("close path");
-DATA(insert OID = 1434 (  popen                                PGUID 12 f t t t 1 f 602 "602" 100 0 0 100      path_open - ));
+DATA(insert OID = 1434 (  popen                                PGUID 12 f t t t 1 f 602 "602" 100 0 0 100      path_open - _null_ ));
 DESCR("open path");
-DATA(insert OID = 1435 (  path_add                     PGUID 12 f t t t 2 f 602 "602 602" 100 0 0 100  path_add - ));
+DATA(insert OID = 1435 (  path_add                     PGUID 12 f t t t 2 f 602 "602 602" 100 0 0 100  path_add - _null_ ));
 DESCR("concatenate open paths");
-DATA(insert OID = 1436 (  path_add_pt          PGUID 12 f t t t 2 f 602 "602 600" 100 0 0 100  path_add_pt - ));
+DATA(insert OID = 1436 (  path_add_pt          PGUID 12 f t t t 2 f 602 "602 600" 100 0 0 100  path_add_pt - _null_ ));
 DESCR("add (translate path)");
-DATA(insert OID = 1437 (  path_sub_pt          PGUID 12 f t t t 2 f 602 "602 600" 100 0 0 100  path_sub_pt - ));
+DATA(insert OID = 1437 (  path_sub_pt          PGUID 12 f t t t 2 f 602 "602 600" 100 0 0 100  path_sub_pt - _null_ ));
 DESCR("subtract (translate path)");
-DATA(insert OID = 1438 (  path_mul_pt          PGUID 12 f t t t 2 f 602 "602 600" 100 0 0 100  path_mul_pt - ));
+DATA(insert OID = 1438 (  path_mul_pt          PGUID 12 f t t t 2 f 602 "602 600" 100 0 0 100  path_mul_pt - _null_ ));
 DESCR("multiply (rotate/scale path)");
-DATA(insert OID = 1439 (  path_div_pt          PGUID 12 f t t t 2 f 602 "602 600" 100 0 0 100  path_div_pt - ));
+DATA(insert OID = 1439 (  path_div_pt          PGUID 12 f t t t 2 f 602 "602 600" 100 0 0 100  path_div_pt - _null_ ));
 DESCR("divide (rotate/scale path)");
 
-DATA(insert OID = 1440 (  point                                PGUID 12 f t t t 2 f 600 "701 701" 100 0 0 100  construct_point - ));
+DATA(insert OID = 1440 (  point                                PGUID 12 f t t t 2 f 600 "701 701" 100 0 0 100  construct_point - _null_ ));
 DESCR("convert x, y to point");
-DATA(insert OID = 1441 (  point_add                    PGUID 12 f t t t 2 f 600 "600 600" 100 0 0 100  point_add - ));
+DATA(insert OID = 1441 (  point_add                    PGUID 12 f t t t 2 f 600 "600 600" 100 0 0 100  point_add - _null_ ));
 DESCR("add points (translate)");
-DATA(insert OID = 1442 (  point_sub                    PGUID 12 f t t t 2 f 600 "600 600" 100 0 0 100  point_sub - ));
+DATA(insert OID = 1442 (  point_sub                    PGUID 12 f t t t 2 f 600 "600 600" 100 0 0 100  point_sub - _null_ ));
 DESCR("subtract points (translate)");
-DATA(insert OID = 1443 (  point_mul                    PGUID 12 f t t t 2 f 600 "600 600" 100 0 0 100  point_mul - ));
+DATA(insert OID = 1443 (  point_mul                    PGUID 12 f t t t 2 f 600 "600 600" 100 0 0 100  point_mul - _null_ ));
 DESCR("multiply points (scale/rotate)");
-DATA(insert OID = 1444 (  point_div                    PGUID 12 f t t t 2 f 600 "600 600" 100 0 0 100  point_div - ));
+DATA(insert OID = 1444 (  point_div                    PGUID 12 f t t t 2 f 600 "600 600" 100 0 0 100  point_div - _null_ ));
 DESCR("divide points (scale/rotate)");
 
-DATA(insert OID = 1445 (  poly_npoints         PGUID 12 f t t t 1 f    23 "604" 100 0 0 100  poly_npoints - ));
+DATA(insert OID = 1445 (  poly_npoints         PGUID 12 f t t t 1 f    23 "604" 100 0 0 100  poly_npoints - _null_ ));
 DESCR("number of points in polygon");
-DATA(insert OID = 1446 (  box                          PGUID 12 f t t t 1 f 603 "604" 100 0 0 100      poly_box - ));
+DATA(insert OID = 1446 (  box                          PGUID 12 f t t t 1 f 603 "604" 100 0 0 100      poly_box - _null_ ));
 DESCR("convert polygon to bounding box");
-DATA(insert OID = 1447 (  path                         PGUID 12 f t t t 1 f 602 "604" 100 0 0 100      poly_path - ));
+DATA(insert OID = 1447 (  path                         PGUID 12 f t t t 1 f 602 "604" 100 0 0 100      poly_path - _null_ ));
 DESCR("convert polygon to path");
-DATA(insert OID = 1448 (  polygon                      PGUID 12 f t t t 1 f 604 "603" 100 0 0 100      box_poly - ));
+DATA(insert OID = 1448 (  polygon                      PGUID 12 f t t t 1 f 604 "603" 100 0 0 100      box_poly - _null_ ));
 DESCR("convert box to polygon");
-DATA(insert OID = 1449 (  polygon                      PGUID 12 f t t t 1 f 604 "602" 100 0 0 100      path_poly - ));
+DATA(insert OID = 1449 (  polygon                      PGUID 12 f t t t 1 f 604 "602" 100 0 0 100      path_poly - _null_ ));
 DESCR("convert path to polygon");
 
-DATA(insert OID = 1450 (  circle_in                    PGUID 12 f t t t 1 f 718 "0" 100 0 0 100  circle_in - ));
+DATA(insert OID = 1450 (  circle_in                    PGUID 12 f t t t 1 f 718 "0" 100 0 0 100  circle_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1451 (  circle_out           PGUID 12 f t t t 1 f    23      "718" 100 0 0 100  circle_out - ));
+DATA(insert OID = 1451 (  circle_out           PGUID 12 f t t t 1 f    23      "718" 100 0 0 100  circle_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1452 (  circle_same          PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_same - ));
+DATA(insert OID = 1452 (  circle_same          PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_same - _null_ ));
 DESCR("same as");
-DATA(insert OID = 1453 (  circle_contain       PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_contain - ));
+DATA(insert OID = 1453 (  circle_contain       PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_contain - _null_ ));
 DESCR("contains");
-DATA(insert OID = 1454 (  circle_left          PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_left - ));
+DATA(insert OID = 1454 (  circle_left          PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_left - _null_ ));
 DESCR("is left of");
-DATA(insert OID = 1455 (  circle_overleft      PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_overleft - ));
+DATA(insert OID = 1455 (  circle_overleft      PGUID 12 f t t t 2 f    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     PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_overright - ));
+DATA(insert OID = 1456 (  circle_overright     PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_overright - _null_ ));
 DESCR("");
-DATA(insert OID = 1457 (  circle_right         PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_right - ));
+DATA(insert OID = 1457 (  circle_right         PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_right - _null_ ));
 DESCR("is right of");
-DATA(insert OID = 1458 (  circle_contained     PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_contained - ));
+DATA(insert OID = 1458 (  circle_contained     PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_contained - _null_ ));
 DESCR("");
-DATA(insert OID = 1459 (  circle_overlap       PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_overlap - ));
+DATA(insert OID = 1459 (  circle_overlap       PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_overlap - _null_ ));
 DESCR("overlaps");
-DATA(insert OID = 1460 (  circle_below         PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_below - ));
+DATA(insert OID = 1460 (  circle_below         PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_below - _null_ ));
 DESCR("is below");
-DATA(insert OID = 1461 (  circle_above         PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_above - ));
+DATA(insert OID = 1461 (  circle_above         PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_above - _null_ ));
 DESCR("is above");
-DATA(insert OID = 1462 (  circle_eq                    PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_eq - ));
+DATA(insert OID = 1462 (  circle_eq                    PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_eq - _null_ ));
 DESCR("equal by area");
-DATA(insert OID = 1463 (  circle_ne                    PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_ne - ));
+DATA(insert OID = 1463 (  circle_ne                    PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_ne - _null_ ));
 DESCR("not equal by area");
-DATA(insert OID = 1464 (  circle_lt                    PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_lt - ));
+DATA(insert OID = 1464 (  circle_lt                    PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_lt - _null_ ));
 DESCR("less-than by area");
-DATA(insert OID = 1465 (  circle_gt                    PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_gt - ));
+DATA(insert OID = 1465 (  circle_gt                    PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_gt - _null_ ));
 DESCR("greater-than by area");
-DATA(insert OID = 1466 (  circle_le                    PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_le - ));
+DATA(insert OID = 1466 (  circle_le                    PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_le - _null_ ));
 DESCR("less-than-or-equal by area");
-DATA(insert OID = 1467 (  circle_ge                    PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_ge - ));
+DATA(insert OID = 1467 (  circle_ge                    PGUID 12 f t t t 2 f    16 "718 718" 100 0 0 100  circle_ge - _null_ ));
 DESCR("greater-than-or-equal by area");
-DATA(insert OID = 1468 (  area                         PGUID 12 f t t t 1 f 701 "718" 100 0 0 100      circle_area - ));
+DATA(insert OID = 1468 (  area                         PGUID 12 f t t t 1 f 701 "718" 100 0 0 100      circle_area - _null_ ));
 DESCR("area of circle");
-DATA(insert OID = 1469 (  diameter                     PGUID 12 f t t t 1 f 701 "718" 100 0 0 100      circle_diameter - ));
+DATA(insert OID = 1469 (  diameter                     PGUID 12 f t t t 1 f 701 "718" 100 0 0 100      circle_diameter - _null_ ));
 DESCR("diameter of circle");
-DATA(insert OID = 1470 (  radius                       PGUID 12 f t t t 1 f 701 "718" 100 0 0 100      circle_radius - ));
+DATA(insert OID = 1470 (  radius                       PGUID 12 f t t t 1 f 701 "718" 100 0 0 100      circle_radius - _null_ ));
 DESCR("radius of circle");
-DATA(insert OID = 1471 (  circle_distance      PGUID 12 f t t t 2 f 701 "718 718" 100 0 0 100  circle_distance - ));
+DATA(insert OID = 1471 (  circle_distance      PGUID 12 f t t t 2 f 701 "718 718" 100 0 0 100  circle_distance - _null_ ));
 DESCR("distance between");
-DATA(insert OID = 1472 (  circle_center                PGUID 12 f t t t 1 f 600 "718" 100 0 0 100      circle_center - ));
+DATA(insert OID = 1472 (  circle_center                PGUID 12 f t t t 1 f 600 "718" 100 0 0 100      circle_center - _null_ ));
 DESCR("center of");
-DATA(insert OID = 1473 (  circle                       PGUID 12 f t t t 2 f 718 "600 701" 100 0 0 100  cr_circle - ));
+DATA(insert OID = 1473 (  circle                       PGUID 12 f t t t 2 f 718 "600 701" 100 0 0 100  cr_circle - _null_ ));
 DESCR("convert point and radius to circle");
-DATA(insert OID = 1474 (  circle                       PGUID 12 f t t t 1 f 718 "604" 100 0 0 100      poly_circle - ));
+DATA(insert OID = 1474 (  circle                       PGUID 12 f t t t 1 f 718 "604" 100 0 0 100      poly_circle - _null_ ));
 DESCR("convert polygon to circle");
-DATA(insert OID = 1475 (  polygon                      PGUID 12 f t t t 2 f 604 "23 718" 100 0 0 100  circle_poly - ));
+DATA(insert OID = 1475 (  polygon                      PGUID 12 f t t t 2 f 604 "23 718" 100 0 0 100  circle_poly - _null_ ));
 DESCR("convert vertex count and circle to polygon");
-DATA(insert OID = 1476 (  dist_pc                      PGUID 12 f t t t 2 f 701 "600 718" 100 0 0 100  dist_pc - ));
+DATA(insert OID = 1476 (  dist_pc                      PGUID 12 f t t t 2 f 701 "600 718" 100 0 0 100  dist_pc - _null_ ));
 DESCR("distance between point and circle");
-DATA(insert OID = 1477 (  circle_contain_pt PGUID 12 f t t t 2 f       16 "718 600" 100 0 0 100  circle_contain_pt - ));
+DATA(insert OID = 1477 (  circle_contain_pt PGUID 12 f t t t 2 f       16 "718 600" 100 0 0 100  circle_contain_pt - _null_ ));
 DESCR("circle contains point?");
-DATA(insert OID = 1478 (  pt_contained_circle  PGUID 12 f t t t 2 f    16 "600 718" 100 0 0 100  pt_contained_circle - ));
+DATA(insert OID = 1478 (  pt_contained_circle  PGUID 12 f t t t 2 f    16 "600 718" 100 0 0 100  pt_contained_circle - _null_ ));
 DESCR("point inside circle?");
-DATA(insert OID = 1479 (  circle                       PGUID 12 f t t t 1 f 718 "603" 100 0 0 100      box_circle - ));
+DATA(insert OID = 1479 (  circle                       PGUID 12 f t t t 1 f 718 "603" 100 0 0 100      box_circle - _null_ ));
 DESCR("convert box to circle");
-DATA(insert OID = 1480 (  box                          PGUID 12 f t t t 1 f 603 "718" 100 0 0 100      circle_box - ));
+DATA(insert OID = 1480 (  box                          PGUID 12 f t t t 1 f 603 "718" 100 0 0 100      circle_box - _null_ ));
 DESCR("convert circle to box");
-DATA(insert OID = 1481 (  tinterval                     PGUID 12 f t t t 2 f 704 "702 702" 100 0 0 100 mktinterval - ));
+DATA(insert OID = 1481 (  tinterval                     PGUID 12 f t t t 2 f 704 "702 702" 100 0 0 100 mktinterval - _null_ ));
 DESCR("convert to tinterval");
 
-DATA(insert OID = 1482 (  lseg_ne                      PGUID 12 f t t t 2 f    16 "601 601" 100 0 0 100  lseg_ne - ));
+DATA(insert OID = 1482 (  lseg_ne                      PGUID 12 f t t t 2 f    16 "601 601" 100 0 0 100  lseg_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1483 (  lseg_lt                      PGUID 12 f t t t 2 f    16 "601 601" 100 0 0 100  lseg_lt - ));
+DATA(insert OID = 1483 (  lseg_lt                      PGUID 12 f t t t 2 f    16 "601 601" 100 0 0 100  lseg_lt - _null_ ));
 DESCR("less-than by length");
-DATA(insert OID = 1484 (  lseg_le                      PGUID 12 f t t t 2 f    16 "601 601" 100 0 0 100  lseg_le - ));
+DATA(insert OID = 1484 (  lseg_le                      PGUID 12 f t t t 2 f    16 "601 601" 100 0 0 100  lseg_le - _null_ ));
 DESCR("less-than-or-equal by length");
-DATA(insert OID = 1485 (  lseg_gt                      PGUID 12 f t t t 2 f    16 "601 601" 100 0 0 100  lseg_gt - ));
+DATA(insert OID = 1485 (  lseg_gt                      PGUID 12 f t t t 2 f    16 "601 601" 100 0 0 100  lseg_gt - _null_ ));
 DESCR("greater-than by length");
-DATA(insert OID = 1486 (  lseg_ge                      PGUID 12 f t t t 2 f    16 "601 601" 100 0 0 100  lseg_ge - ));
+DATA(insert OID = 1486 (  lseg_ge                      PGUID 12 f t t t 2 f    16 "601 601" 100 0 0 100  lseg_ge - _null_ ));
 DESCR("greater-than-or-equal by length");
-DATA(insert OID = 1487 (  lseg_length          PGUID 12 f t t t 1 f 701 "601" 100 0 0 100      lseg_length - ));
+DATA(insert OID = 1487 (  lseg_length          PGUID 12 f t t t 1 f 701 "601" 100 0 0 100      lseg_length - _null_ ));
 DESCR("distance between endpoints");
-DATA(insert OID = 1488 (  close_ls                     PGUID 12 f t t t 2 f 600 "628 601" 100 0 0 100  close_ls - ));
+DATA(insert OID = 1488 (  close_ls                     PGUID 12 f t t t 2 f 600 "628 601" 100 0 0 100  close_ls - _null_ ));
 DESCR("closest point to line on line segment");
-DATA(insert OID = 1489 (  close_lseg           PGUID 12 f t t t 2 f 600 "601 601" 100 0 0 100  close_lseg - ));
+DATA(insert OID = 1489 (  close_lseg           PGUID 12 f t t t 2 f 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                      PGUID 12 f t t t 1 f 628 "0" 100 0 0 100  line_in - ));
+DATA(insert OID = 1490 (  line_in                      PGUID 12 f t t t 1 f 628 "0" 100 0 0 100  line_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1491 (  line_out                     PGUID 12 f t t t 1 f 23  "628" 100 0 0 100      line_out - ));
+DATA(insert OID = 1491 (  line_out                     PGUID 12 f t t t 1 f 23  "628" 100 0 0 100      line_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1492 (  line_eq                      PGUID 12 f t t t 2 f  16 "628 628" 100 0 0 100  line_eq - ));
+DATA(insert OID = 1492 (  line_eq                      PGUID 12 f t t t 2 f  16 "628 628" 100 0 0 100  line_eq - _null_ ));
 DESCR("lines equal?");
-DATA(insert OID = 1493 (  line                         PGUID 12 f t t t 2 f 628 "600 600" 100 0 0 100  line_construct_pp - ));
+DATA(insert OID = 1493 (  line                         PGUID 12 f t t t 2 f 628 "600 600" 100 0 0 100  line_construct_pp - _null_ ));
 DESCR("line from points");
-DATA(insert OID = 1494 (  line_interpt         PGUID 12 f t t t 2 f 600 "628 628" 100 0 0 100  line_interpt - ));
+DATA(insert OID = 1494 (  line_interpt         PGUID 12 f t t t 2 f 600 "628 628" 100 0 0 100  line_interpt - _null_ ));
 DESCR("intersection point");
-DATA(insert OID = 1495 (  line_intersect       PGUID 12 f t t t 2 f    16 "628 628" 100 0 0 100  line_intersect - ));
+DATA(insert OID = 1495 (  line_intersect       PGUID 12 f t t t 2 f    16 "628 628" 100 0 0 100  line_intersect - _null_ ));
 DESCR("lines intersect?");
-DATA(insert OID = 1496 (  line_parallel                PGUID 12 f t t t 2 f    16 "628 628" 100 0 0 100  line_parallel - ));
+DATA(insert OID = 1496 (  line_parallel                PGUID 12 f t t t 2 f    16 "628 628" 100 0 0 100  line_parallel - _null_ ));
 DESCR("lines parallel?");
-DATA(insert OID = 1497 (  line_perp                    PGUID 12 f t t t 2 f    16 "628 628" 100 0 0 100  line_perp - ));
+DATA(insert OID = 1497 (  line_perp                    PGUID 12 f t t t 2 f    16 "628 628" 100 0 0 100  line_perp - _null_ ));
 DESCR("lines perpendicular?");
-DATA(insert OID = 1498 (  line_vertical                PGUID 12 f t t t 1 f    16 "628" 100 0 0 100  line_vertical - ));
+DATA(insert OID = 1498 (  line_vertical                PGUID 12 f t t t 1 f    16 "628" 100 0 0 100  line_vertical - _null_ ));
 DESCR("lines vertical?");
-DATA(insert OID = 1499 (  line_horizontal      PGUID 12 f t t t 1 f    16 "628" 100 0 0 100  line_horizontal - ));
+DATA(insert OID = 1499 (  line_horizontal      PGUID 12 f t t t 1 f    16 "628" 100 0 0 100  line_horizontal - _null_ ));
 DESCR("lines horizontal?");
 
 /* OIDS 1500 - 1599 */
 
-DATA(insert OID = 1530 (  length                       PGUID 12 f t t t 1 f 701 "601" 100 0 0 100      lseg_length - ));
+DATA(insert OID = 1530 (  length                       PGUID 12 f t t t 1 f 701 "601" 100 0 0 100      lseg_length - _null_ ));
 DESCR("distance between endpoints");
-DATA(insert OID = 1531 (  length                       PGUID 12 f t t t 1 f 701 "602" 100 0 0 100      path_length - ));
+DATA(insert OID = 1531 (  length                       PGUID 12 f t t t 1 f 701 "602" 100 0 0 100      path_length - _null_ ));
 DESCR("sum of path segments");
 
 
-DATA(insert OID = 1532 (  point                                PGUID 12 f t t t 1 f 600 "601" 100 0 0 100      lseg_center - ));
+DATA(insert OID = 1532 (  point                                PGUID 12 f t t t 1 f 600 "601" 100 0 0 100      lseg_center - _null_ ));
 DESCR("center of");
-DATA(insert OID = 1533 (  point                                PGUID 12 f t t t 1 f 600 "602" 100 0 0 100      path_center - ));
+DATA(insert OID = 1533 (  point                                PGUID 12 f t t t 1 f 600 "602" 100 0 0 100      path_center - _null_ ));
 DESCR("center of");
-DATA(insert OID = 1534 (  point                                PGUID 12 f t t t 1 f 600 "603" 100 0 0 100      box_center - ));
+DATA(insert OID = 1534 (  point                                PGUID 12 f t t t 1 f 600 "603" 100 0 0 100      box_center - _null_ ));
 DESCR("center of");
-DATA(insert OID = 1540 (  point                                PGUID 12 f t t t 1 f 600 "604" 100 0 0 100      poly_center - ));
+DATA(insert OID = 1540 (  point                                PGUID 12 f t t t 1 f 600 "604" 100 0 0 100      poly_center - _null_ ));
 DESCR("center of");
-DATA(insert OID = 1541 (  lseg                         PGUID 12 f t t t 1 f 601 "603" 100 0 0 100      box_diagonal - ));
+DATA(insert OID = 1541 (  lseg                         PGUID 12 f t t t 1 f 601 "603" 100 0 0 100      box_diagonal - _null_ ));
 DESCR("diagonal of");
-DATA(insert OID = 1542 (  center                       PGUID 12 f t t t 1 f 600 "603" 100 0 0 100      box_center - ));
+DATA(insert OID = 1542 (  center                       PGUID 12 f t t t 1 f 600 "603" 100 0 0 100      box_center - _null_ ));
 DESCR("center of");
-DATA(insert OID = 1543 (  center                       PGUID 12 f t t t 1 f 600 "718" 100 0 0 100      circle_center - ));
+DATA(insert OID = 1543 (  center                       PGUID 12 f t t t 1 f 600 "718" 100 0 0 100      circle_center - _null_ ));
 DESCR("center of");
-DATA(insert OID = 1544 (  polygon                      PGUID 14 f t t t 1 f 604 "718" 100 0 0 100      "select polygon(12, $1)" - ));
+DATA(insert OID = 1544 (  polygon                      PGUID 14 f t t t 1 f 604 "718" 100 0 0 100      "select polygon(12, $1)" - _null_ ));
 DESCR("convert circle to 12-vertex polygon");
-DATA(insert OID = 1545 (  npoints                      PGUID 12 f t t t 1 f    23 "602" 100 0 0 100  path_npoints - ));
+DATA(insert OID = 1545 (  npoints                      PGUID 12 f t t t 1 f    23 "602" 100 0 0 100  path_npoints - _null_ ));
 DESCR("# points in path");
-DATA(insert OID = 1556 (  npoints                      PGUID 12 f t t t 1 f    23 "604" 100 0 0 100  poly_npoints - ));
+DATA(insert OID = 1556 (  npoints                      PGUID 12 f t t t 1 f    23 "604" 100 0 0 100  poly_npoints - _null_ ));
 DESCR("number of points in polygon");
 
-DATA(insert OID = 1564 (  bit_in                       PGUID 12 f t t t 1 f 1560 "0" 100 0 0 100  bit_in - ));
+DATA(insert OID = 1564 (  bit_in                       PGUID 12 f t t t 1 f 1560 "0" 100 0 0 100  bit_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1565 (  bit_out                      PGUID 12 f t t t 1 f   23 "0" 100 0 0 100  bit_out - ));
+DATA(insert OID = 1565 (  bit_out                      PGUID 12 f t t t 1 f   23 "0" 100 0 0 100  bit_out - _null_ ));
 DESCR("(internal)");
 
-DATA(insert OID = 1569 (  like                         PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100  textlike - ));
+DATA(insert OID = 1569 (  like                         PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100  textlike - _null_ ));
 DESCR("matches LIKE expression");
-DATA(insert OID = 1570 (  notlike                      PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100  textnlike - ));
+DATA(insert OID = 1570 (  notlike                      PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100  textnlike - _null_ ));
 DESCR("does not match LIKE expression");
-DATA(insert OID = 1571 (  like                         PGUID 12 f t t t 2 f 16 "19 25" 100 0 0 100  namelike - ));
+DATA(insert OID = 1571 (  like                         PGUID 12 f t t t 2 f 16 "19 25" 100 0 0 100  namelike - _null_ ));
 DESCR("matches LIKE expression");
-DATA(insert OID = 1572 (  notlike                      PGUID 12 f t t t 2 f 16 "19 25" 100 0 0 100  namenlike - ));
+DATA(insert OID = 1572 (  notlike                      PGUID 12 f t t t 2 f 16 "19 25" 100 0 0 100  namenlike - _null_ ));
 DESCR("does not match LIKE expression");
-DATA(insert OID = 1573 (  int8                         PGUID 14 f t t t 1 f    20 "20" 100 0 0 100  "select $1" - ));
+DATA(insert OID = 1573 (  int8                         PGUID 14 f t t t 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                      PGUID 12 f t f t 1 f 20 "25" 100 0 0 100  nextval - ));
+DATA(insert OID = 1574 (  nextval                      PGUID 12 f t f t 1 f 20 "25" 100 0 0 100  nextval - _null_ ));
 DESCR("sequence next value");
-DATA(insert OID = 1575 (  currval                      PGUID 12 f t f t 1 f 20 "25" 100 0 0 100  currval - ));
+DATA(insert OID = 1575 (  currval                      PGUID 12 f t f t 1 f 20 "25" 100 0 0 100  currval - _null_ ));
 DESCR("sequence current value");
-DATA(insert OID = 1576 (  setval                       PGUID 12 f t f t 2 f 20 "25 20" 100 0 0 100  setval - ));
+DATA(insert OID = 1576 (  setval                       PGUID 12 f t f t 2 f 20 "25 20" 100 0 0 100  setval - _null_ ));
 DESCR("set sequence value");
-DATA(insert OID = 1765 (  setval                       PGUID 12 f t f t 3 f 20 "25 20 16" 100 0 0 100  setval_and_iscalled - ));
+DATA(insert OID = 1765 (  setval                       PGUID 12 f t f t 3 f 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                    PGUID 12 f t t t 1 f 1562 "0" 100 0 0 100  varbit_in - ));
+DATA(insert OID = 1579 (  varbit_in                    PGUID 12 f t t t 1 f 1562 "0" 100 0 0 100  varbit_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1580 (  varbit_out           PGUID 12 f t t t 1 f   23 "0" 100 0 0 100  varbit_out - ));
+DATA(insert OID = 1580 (  varbit_out           PGUID 12 f t t t 1 f   23 "0" 100 0 0 100  varbit_out - _null_ ));
 DESCR("(internal)");
 
-DATA(insert OID = 1581 (  biteq                                PGUID 12 f t t t 2 f 16 "1560 1560" 100 0 0 100  biteq - ));
+DATA(insert OID = 1581 (  biteq                                PGUID 12 f t t t 2 f 16 "1560 1560" 100 0 0 100  biteq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1582 (  bitne                                PGUID 12 f t t t 2 f 16 "1560 1560" 100 0 0 100  bitne - ));
+DATA(insert OID = 1582 (  bitne                                PGUID 12 f t t t 2 f 16 "1560 1560" 100 0 0 100  bitne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1592 (  bitge                                PGUID 12 f t t t 2 f 16 "1560 1560" 100 0 0 100  bitge - ));
+DATA(insert OID = 1592 (  bitge                                PGUID 12 f t t t 2 f 16 "1560 1560" 100 0 0 100  bitge - _null_ ));
 DESCR("greater than or equal");
-DATA(insert OID = 1593 (  bitgt                                PGUID 12 f t t t 2 f 16 "1560 1560" 100 0 0 100  bitgt - ));
+DATA(insert OID = 1593 (  bitgt                                PGUID 12 f t t t 2 f 16 "1560 1560" 100 0 0 100  bitgt - _null_ ));
 DESCR("greater than");
-DATA(insert OID = 1594 (  bitle                                PGUID 12 f t t t 2 f 16 "1560 1560" 100 0 0 100  bitle - ));
+DATA(insert OID = 1594 (  bitle                                PGUID 12 f t t t 2 f 16 "1560 1560" 100 0 0 100  bitle - _null_ ));
 DESCR("less than or equal");
-DATA(insert OID = 1595 (  bitlt                                PGUID 12 f t t t 2 f 16 "1560 1560" 100 0 0 100  bitlt - ));
+DATA(insert OID = 1595 (  bitlt                                PGUID 12 f t t t 2 f 16 "1560 1560" 100 0 0 100  bitlt - _null_ ));
 DESCR("less than");
-DATA(insert OID = 1596 (  bitcmp                       PGUID 12 f t t t 2 f 23 "1560 1560" 100 0 0 100  bitcmp - ));
+DATA(insert OID = 1596 (  bitcmp                       PGUID 12 f t t t 2 f 23 "1560 1560" 100 0 0 100  bitcmp - _null_ ));
 DESCR("compare");
 
-DATA(insert OID = 1598 (  random                       PGUID 12 f t f t 0 f 701 "0" 100 0 0 100  drandom - ));
+DATA(insert OID = 1598 (  random                       PGUID 12 f t f t 0 f 701 "0" 100 0 0 100  drandom - _null_ ));
 DESCR("random value");
-DATA(insert OID = 1599 (  setseed                      PGUID 12 f t f t 1 f  23 "701" 100 0 0 100      setseed - ));
+DATA(insert OID = 1599 (  setseed                      PGUID 12 f t f t 1 f  23 "701" 100 0 0 100      setseed - _null_ ));
 DESCR("set random seed");
 
 /* OIDS 1600 - 1699 */
 
-DATA(insert OID = 1600 (  asin                         PGUID 12 f t t t 1 f 701 "701" 100 0 0 100      dasin - ));
+DATA(insert OID = 1600 (  asin                         PGUID 12 f t t t 1 f 701 "701" 100 0 0 100      dasin - _null_ ));
 DESCR("arcsine");
-DATA(insert OID = 1601 (  acos                         PGUID 12 f t t t 1 f 701 "701" 100 0 0 100      dacos - ));
+DATA(insert OID = 1601 (  acos                         PGUID 12 f t t t 1 f 701 "701" 100 0 0 100      dacos - _null_ ));
 DESCR("arccosine");
-DATA(insert OID = 1602 (  atan                         PGUID 12 f t t t 1 f 701 "701" 100 0 0 100      datan - ));
+DATA(insert OID = 1602 (  atan                         PGUID 12 f t t t 1 f 701 "701" 100 0 0 100      datan - _null_ ));
 DESCR("arctangent");
-DATA(insert OID = 1603 (  atan2                                PGUID 12 f t t t 2 f 701 "701 701" 100 0 0 100  datan2 - ));
+DATA(insert OID = 1603 (  atan2                                PGUID 12 f t t t 2 f 701 "701 701" 100 0 0 100  datan2 - _null_ ));
 DESCR("arctangent, two arguments");
-DATA(insert OID = 1604 (  sin                          PGUID 12 f t t t 1 f 701 "701" 100 0 0 100      dsin - ));
+DATA(insert OID = 1604 (  sin                          PGUID 12 f t t t 1 f 701 "701" 100 0 0 100      dsin - _null_ ));
 DESCR("sine");
-DATA(insert OID = 1605 (  cos                          PGUID 12 f t t t 1 f 701 "701" 100 0 0 100      dcos - ));
+DATA(insert OID = 1605 (  cos                          PGUID 12 f t t t 1 f 701 "701" 100 0 0 100      dcos - _null_ ));
 DESCR("cosine");
-DATA(insert OID = 1606 (  tan                          PGUID 12 f t t t 1 f 701 "701" 100 0 0 100      dtan - ));
+DATA(insert OID = 1606 (  tan                          PGUID 12 f t t t 1 f 701 "701" 100 0 0 100      dtan - _null_ ));
 DESCR("tangent");
-DATA(insert OID = 1607 (  cot                          PGUID 12 f t t t 1 f 701 "701" 100 0 0 100      dcot - ));
+DATA(insert OID = 1607 (  cot                          PGUID 12 f t t t 1 f 701 "701" 100 0 0 100      dcot - _null_ ));
 DESCR("cotangent");
-DATA(insert OID = 1608 (  degrees                      PGUID 12 f t t t 1 f 701 "701" 100 0 0 100      degrees - ));
+DATA(insert OID = 1608 (  degrees                      PGUID 12 f t t t 1 f 701 "701" 100 0 0 100      degrees - _null_ ));
 DESCR("radians to degrees");
-DATA(insert OID = 1609 (  radians                      PGUID 12 f t t t 1 f 701 "701" 100 0 0 100      radians - ));
+DATA(insert OID = 1609 (  radians                      PGUID 12 f t t t 1 f 701 "701" 100 0 0 100      radians - _null_ ));
 DESCR("degrees to radians");
-DATA(insert OID = 1610 (  pi                           PGUID 12 f t t t 0 f 701 "0" 100 0 0 100  dpi - ));
+DATA(insert OID = 1610 (  pi                           PGUID 12 f t t t 0 f 701 "0" 100 0 0 100  dpi - _null_ ));
 DESCR("PI");
 
-DATA(insert OID = 1618 (  interval_mul         PGUID 12 f t t t 2 f 1186 "1186 701" 100 0 0 100  interval_mul - ));
+DATA(insert OID = 1618 (  interval_mul         PGUID 12 f t t t 2 f 1186 "1186 701" 100 0 0 100  interval_mul - _null_ ));
 DESCR("multiply interval");
-DATA(insert OID = 1619 (  varchar                      PGUID 12 f t t t 1 f 1043 "23" 100 0 0 100      int4_text - ));
+DATA(insert OID = 1619 (  varchar                      PGUID 12 f t t t 1 f 1043 "23" 100 0 0 100      int4_text - _null_ ));
 DESCR("convert int4 to varchar");
 
-DATA(insert OID = 1620 (  ascii                                PGUID 12 f t t t 1 f 23 "25" 100 0 0 100  ascii - ));
+DATA(insert OID = 1620 (  ascii                                PGUID 12 f t t t 1 f 23 "25" 100 0 0 100  ascii - _null_ ));
 DESCR("convert first char to int4");
-DATA(insert OID = 1621 (  chr                          PGUID 12 f t t t 1 f 25 "23" 100 0 0 100  chr - ));
+DATA(insert OID = 1621 (  chr                          PGUID 12 f t t t 1 f 25 "23" 100 0 0 100  chr - _null_ ));
 DESCR("convert int4 to char");
-DATA(insert OID = 1622 (  repeat                       PGUID 12 f t t t 2 f 25 "25 23" 100 0 0 100  repeat - ));
+DATA(insert OID = 1622 (  repeat                       PGUID 12 f t t t 2 f 25 "25 23" 100 0 0 100  repeat - _null_ ));
 DESCR("replicate string int4 times");
 
-DATA(insert OID = 1623 (  varchar                      PGUID 12 f t t t 1 f 1043 "20" 100 0 0 100      int8_text - ));
+DATA(insert OID = 1623 (  varchar                      PGUID 12 f t t t 1 f 1043 "20" 100 0 0 100      int8_text - _null_ ));
 DESCR("convert int8 to varchar");
-DATA(insert OID = 1624 (  mul_d_interval       PGUID 12 f t t t 2 f 1186 "701 1186" 100 0 0 100  mul_d_interval - ));
+DATA(insert OID = 1624 (  mul_d_interval       PGUID 12 f t t t 2 f 1186 "701 1186" 100 0 0 100  mul_d_interval - _null_ ));
 
-DATA(insert OID = 1633 (  texticlike           PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100 texticlike - ));
+DATA(insert OID = 1633 (  texticlike           PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100 texticlike - _null_ ));
 DESCR("matches LIKE expression, case-insensitive");
-DATA(insert OID = 1634 (  texticnlike          PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100 texticnlike - ));
+DATA(insert OID = 1634 (  texticnlike          PGUID 12 f t t t 2 f 16 "25 25" 100 0 0 100 texticnlike - _null_ ));
 DESCR("does not match LIKE expression, case-insensitive");
-DATA(insert OID = 1635 (  nameiclike           PGUID 12 f t t t 2 f 16 "19 25" 100 0 0 100  nameiclike - ));
+DATA(insert OID = 1635 (  nameiclike           PGUID 12 f t t t 2 f 16 "19 25" 100 0 0 100  nameiclike - _null_ ));
 DESCR("matches LIKE expression, case-insensitive");
-DATA(insert OID = 1636 (  nameicnlike          PGUID 12 f t t t 2 f 16 "19 25" 100 0 0 100  nameicnlike - ));
+DATA(insert OID = 1636 (  nameicnlike          PGUID 12 f t t t 2 f 16 "19 25" 100 0 0 100  nameicnlike - _null_ ));
 DESCR("does not match LIKE expression, case-insensitive");
-DATA(insert OID = 1637 (  like_escape          PGUID 12 f t t t 2 f 25 "25 25" 100 0 0 100 like_escape - ));
+DATA(insert OID = 1637 (  like_escape          PGUID 12 f t t t 2 f 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                  PGUID 12 f t f t 0 f 0  ""  100 0 0 100  update_pg_pwd - ));
+DATA(insert OID = 1689 (  update_pg_pwd                  PGUID 12 f t f t 0 f 0  ""  100 0 0 100  update_pg_pwd - _null_ ));
 DESCR("update pg_pwd file");
 
 /* Oracle Compatibility Related Functions - By Edmund Mergl <E.Mergl@bawue.de> */
-DATA(insert OID =  868 (  strpos          PGUID 12 f t t t 2 f 23 "25 25" 100 0 0 100  textpos - ));
+DATA(insert OID =  868 (  strpos          PGUID 12 f t t t 2 f 23 "25 25" 100 0 0 100  textpos - _null_ ));
 DESCR("find position of substring");
-DATA(insert OID =  870 (  lower                   PGUID 12 f t t t 1 f 25 "25" 100 0 0 100  lower - ));
+DATA(insert OID =  870 (  lower                   PGUID 12 f t t t 1 f 25 "25" 100 0 0 100  lower - _null_ ));
 DESCR("lowercase");
-DATA(insert OID =  871 (  upper                   PGUID 12 f t t t 1 f 25 "25" 100 0 0 100  upper - ));
+DATA(insert OID =  871 (  upper                   PGUID 12 f t t t 1 f 25 "25" 100 0 0 100  upper - _null_ ));
 DESCR("uppercase");
-DATA(insert OID =  872 (  initcap         PGUID 12 f t t t 1 f 25 "25" 100 0 0 100  initcap - ));
+DATA(insert OID =  872 (  initcap         PGUID 12 f t t t 1 f 25 "25" 100 0 0 100  initcap - _null_ ));
 DESCR("capitalize each word");
-DATA(insert OID =  873 (  lpad            PGUID 12 f t t t 3 f 25 "25 23 25" 100 0 0 100  lpad - ));
+DATA(insert OID =  873 (  lpad            PGUID 12 f t t t 3 f 25 "25 23 25" 100 0 0 100  lpad - _null_ ));
 DESCR("left-pad string to length");
-DATA(insert OID =  874 (  rpad            PGUID 12 f t t t 3 f 25 "25 23 25" 100 0 0 100  rpad - ));
+DATA(insert OID =  874 (  rpad            PGUID 12 f t t t 3 f 25 "25 23 25" 100 0 0 100  rpad - _null_ ));
 DESCR("right-pad string to length");
-DATA(insert OID =  875 (  ltrim                   PGUID 12 f t t t 2 f 25 "25 25" 100 0 0 100  ltrim - ));
+DATA(insert OID =  875 (  ltrim                   PGUID 12 f t t t 2 f 25 "25 25" 100 0 0 100  ltrim - _null_ ));
 DESCR("left-pad string to length");
-DATA(insert OID =  876 (  rtrim                   PGUID 12 f t t t 2 f 25 "25 25" 100 0 0 100  rtrim - ));
+DATA(insert OID =  876 (  rtrim                   PGUID 12 f t t t 2 f 25 "25 25" 100 0 0 100  rtrim - _null_ ));
 DESCR("right-pad string to length");
-DATA(insert OID =  877 (  substr          PGUID 12 f t t t 3 f 25 "25 23 23" 100 0 0 100  text_substr - ));
+DATA(insert OID =  877 (  substr          PGUID 12 f t t t 3 f 25 "25 23 23" 100 0 0 100  text_substr - _null_ ));
 DESCR("return portion of string");
-DATA(insert OID =  878 (  translate    PGUID 12 f t t t 3 f 25 "25 25 25" 100 0 0 100  translate - ));
+DATA(insert OID =  878 (  translate    PGUID 12 f t t t 3 f 25 "25 25 25" 100 0 0 100  translate - _null_ ));
 DESCR("map a set of character appearing in string");
-DATA(insert OID =  879 (  lpad            PGUID 14 f t t t 2 f 25 "25 23" 100 0 0 100  "select lpad($1, $2, \' \')" - ));
+DATA(insert OID =  879 (  lpad            PGUID 14 f t t t 2 f 25 "25 23" 100 0 0 100  "select lpad($1, $2, \' \')" - _null_ ));
 DESCR("left-pad string to length");
-DATA(insert OID =  880 (  rpad            PGUID 14 f t t t 2 f 25 "25 23" 100 0 0 100  "select rpad($1, $2, \' \')" - ));
+DATA(insert OID =  880 (  rpad            PGUID 14 f t t t 2 f 25 "25 23" 100 0 0 100  "select rpad($1, $2, \' \')" - _null_ ));
 DESCR("right-pad string to length");
-DATA(insert OID =  881 (  ltrim                   PGUID 14 f t t t 1 f 25 "25" 100 0 0 100  "select ltrim($1, \' \')" - ));
+DATA(insert OID =  881 (  ltrim                   PGUID 14 f t t t 1 f 25 "25" 100 0 0 100  "select ltrim($1, \' \')" - _null_ ));
 DESCR("remove initial characters from string");
-DATA(insert OID =  882 (  rtrim                   PGUID 14 f t t t 1 f 25 "25" 100 0 0 100  "select rtrim($1, \' \')" - ));
+DATA(insert OID =  882 (  rtrim                   PGUID 14 f t t t 1 f 25 "25" 100 0 0 100  "select rtrim($1, \' \')" - _null_ ));
 DESCR("remove trailing characters from string");
-DATA(insert OID =  883 (  substr          PGUID 14 f t t t 2 f 25 "25 23" 100 0 0 100  "select substr($1, $2, -1)" - ));
+DATA(insert OID =  883 (  substr          PGUID 14 f t t t 2 f 25 "25 23" 100 0 0 100  "select substr($1, $2, -1)" - _null_ ));
 DESCR("return portion of string");
-DATA(insert OID =  884 (  btrim                   PGUID 12 f t t t 2 f 25 "25 25" 100 0 0 100  btrim - ));
+DATA(insert OID =  884 (  btrim                   PGUID 12 f t t t 2 f 25 "25 25" 100 0 0 100  btrim - _null_ ));
 DESCR("trim both ends of string");
-DATA(insert OID =  885 (  btrim                   PGUID 14 f t t t 1 f 25 "25" 100 0 0 100  "select btrim($1, \' \')" - ));
+DATA(insert OID =  885 (  btrim                   PGUID 14 f t t t 1 f 25 "25" 100 0 0 100  "select btrim($1, \' \')" - _null_ ));
 DESCR("trim both ends of string");
 
-DATA(insert OID =  936 (  substring    PGUID 12 f t t t 3 f 25 "25 23 23" 100 0 0 100  text_substr - ));
+DATA(insert OID =  936 (  substring    PGUID 12 f t t t 3 f 25 "25 23 23" 100 0 0 100  text_substr - _null_ ));
 DESCR("return portion of string");
-DATA(insert OID =  937 (  substring    PGUID 14 f t t t 2 f 25 "25 23" 100 0 0 100     "select substring($1, $2, -1)" - ));
+DATA(insert OID =  937 (  substring    PGUID 14 f t t t 2 f 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     PGUID 12 f t f t 0 f 19 "0" 100 0 0 100      getdatabaseencoding - ));
+DATA(insert OID = 1039 (  getdatabaseencoding     PGUID 12 f t f t 0 f 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    PGUID 12 f t f t 0 f 19 "0" 100 0 0 100 pg_client_encoding - ));
+DATA(insert OID = 810 (  pg_client_encoding    PGUID 12 f t f t 0 f 19 "0" 100 0 0 100 pg_client_encoding - _null_ ));
 DESCR("encoding name of current database");
 
-DATA(insert OID = 1717 (  convert                 PGUID 12 f t f t 2 f 25 "25 19" 100 0 0 100  pg_convert - ));
+DATA(insert OID = 1717 (  convert                 PGUID 12 f t f t 2 f 25 "25 19" 100 0 0 100  pg_convert - _null_ ));
 DESCR("convert string with specified destination encoding name");
 
-DATA(insert OID = 1813 (  convert                 PGUID 12 f t f t 3 f 25 "25 19 19" 100 0 0 100  pg_convert2 - ));
+DATA(insert OID = 1813 (  convert                 PGUID 12 f t f t 3 f 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     PGUID 12 f t f t 1 f 23 "19" 100 0 0 100  PG_char_to_encoding - ));
+DATA(insert OID = 1264 (  pg_char_to_encoding     PGUID 12 f t f t 1 f 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     PGUID 12 f t f t 1 f 19 "23" 100 0 0 100  PG_encoding_to_char - ));
+DATA(insert OID = 1597 (  pg_encoding_to_char     PGUID 12 f t f t 1 f 19 "23" 100 0 0 100  PG_encoding_to_char - _null_ ));
 DESCR("convert encoding id to encoding name");
 
-DATA(insert OID = 1638 (  oidgt                                   PGUID 12 f t t t 2 f 16 "26 26" 100 0 0 100  oidgt - ));
+DATA(insert OID = 1638 (  oidgt                                   PGUID 12 f t t t 2 f 16 "26 26" 100 0 0 100  oidgt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1639 (  oidge                                   PGUID 12 f t t t 2 f 16 "26 26" 100 0 0 100  oidge - ));
+DATA(insert OID = 1639 (  oidge                                   PGUID 12 f t t t 2 f 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          PGUID 12 f t f t 1 f 25 "19" 100 0 0 100  pg_get_ruledef - ));
+DATA(insert OID = 1640 (  pg_get_ruledef          PGUID 12 f t f t 1 f 25 "19" 100 0 0 100  pg_get_ruledef - _null_ ));
 DESCR("source text of a rule");
-DATA(insert OID = 1641 (  pg_get_viewdef          PGUID 12 f t f t 1 f 25 "19" 100 0 0 100  pg_get_viewdef - ));
+DATA(insert OID = 1641 (  pg_get_viewdef          PGUID 12 f t f t 1 f 25 "19" 100 0 0 100  pg_get_viewdef - _null_ ));
 DESCR("select statement of a view");
-DATA(insert OID = 1642 (  pg_get_userbyid         PGUID 12 f t f t 1 f 19 "23" 100 0 0 100  pg_get_userbyid - ));
+DATA(insert OID = 1642 (  pg_get_userbyid         PGUID 12 f t f t 1 f 19 "23" 100 0 0 100  pg_get_userbyid - _null_ ));
 DESCR("user name by UID (with fallback)");
-DATA(insert OID = 1643 (  pg_get_indexdef         PGUID 12 f t f t 1 f 25 "26" 100 0 0 100  pg_get_indexdef - ));
+DATA(insert OID = 1643 (  pg_get_indexdef         PGUID 12 f t f t 1 f 25 "26" 100 0 0 100  pg_get_indexdef - _null_ ));
 DESCR("index description");
-DATA(insert OID = 1716 (  pg_get_expr             PGUID 12 f t f t 2 f 25 "25 26" 100 0 0 100  pg_get_expr - ));
+DATA(insert OID = 1716 (  pg_get_expr             PGUID 12 f t f t 2 f 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            PGUID 12 f t f t 0 f 0 "" 100 0 0 100  RI_FKey_check_ins - ));
+DATA(insert OID = 1644 (  RI_FKey_check_ins            PGUID 12 f t f t 0 f 0 "" 100 0 0 100  RI_FKey_check_ins - _null_ ));
 DESCR("referential integrity FOREIGN KEY ... REFERENCES");
-DATA(insert OID = 1645 (  RI_FKey_check_upd            PGUID 12 f t f t 0 f 0 "" 100 0 0 100  RI_FKey_check_upd - ));
+DATA(insert OID = 1645 (  RI_FKey_check_upd            PGUID 12 f t f t 0 f 0 "" 100 0 0 100  RI_FKey_check_upd - _null_ ));
 DESCR("referential integrity FOREIGN KEY ... REFERENCES");
-DATA(insert OID = 1646 (  RI_FKey_cascade_del  PGUID 12 f t f t 0 f 0 "" 100 0 0 100  RI_FKey_cascade_del - ));
+DATA(insert OID = 1646 (  RI_FKey_cascade_del  PGUID 12 f t f t 0 f 0 "" 100 0 0 100  RI_FKey_cascade_del - _null_ ));
 DESCR("referential integrity ON DELETE CASCADE");
-DATA(insert OID = 1647 (  RI_FKey_cascade_upd  PGUID 12 f t f t 0 f 0 "" 100 0 0 100  RI_FKey_cascade_upd - ));
+DATA(insert OID = 1647 (  RI_FKey_cascade_upd  PGUID 12 f t f t 0 f 0 "" 100 0 0 100  RI_FKey_cascade_upd - _null_ ));
 DESCR("referential integrity ON UPDATE CASCADE");
-DATA(insert OID = 1648 (  RI_FKey_restrict_del PGUID 12 f t f t 0 f 0 "" 100 0 0 100  RI_FKey_restrict_del - ));
+DATA(insert OID = 1648 (  RI_FKey_restrict_del PGUID 12 f t f t 0 f 0 "" 100 0 0 100  RI_FKey_restrict_del - _null_ ));
 DESCR("referential integrity ON DELETE RESTRICT");
-DATA(insert OID = 1649 (  RI_FKey_restrict_upd PGUID 12 f t f t 0 f 0 "" 100 0 0 100  RI_FKey_restrict_upd - ));
+DATA(insert OID = 1649 (  RI_FKey_restrict_upd PGUID 12 f t f t 0 f 0 "" 100 0 0 100  RI_FKey_restrict_upd - _null_ ));
 DESCR("referential integrity ON UPDATE RESTRICT");
-DATA(insert OID = 1650 (  RI_FKey_setnull_del  PGUID 12 f t f t 0 f 0 "" 100 0 0 100  RI_FKey_setnull_del - ));
+DATA(insert OID = 1650 (  RI_FKey_setnull_del  PGUID 12 f t f t 0 f 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  PGUID 12 f t f t 0 f 0 "" 100 0 0 100  RI_FKey_setnull_upd - ));
+DATA(insert OID = 1651 (  RI_FKey_setnull_upd  PGUID 12 f t f t 0 f 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 PGUID 12 f t f t 0 f 0 "" 100 0 0 100 RI_FKey_setdefault_del - ));
+DATA(insert OID = 1652 (  RI_FKey_setdefault_del PGUID 12 f t f t 0 f 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 PGUID 12 f t f t 0 f 0 "" 100 0 0 100 RI_FKey_setdefault_upd - ));
+DATA(insert OID = 1653 (  RI_FKey_setdefault_upd PGUID 12 f t f t 0 f 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 PGUID 12 f t f t 0 f 0 "" 100 0 0 100  RI_FKey_noaction_del - ));
+DATA(insert OID = 1654 (  RI_FKey_noaction_del PGUID 12 f t f t 0 f 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 PGUID 12 f t f t 0 f 0 "" 100 0 0 100  RI_FKey_noaction_upd - ));
+DATA(insert OID = 1655 (  RI_FKey_noaction_upd PGUID 12 f t f t 0 f 0 "" 100 0 0 100  RI_FKey_noaction_upd - _null_ ));
 DESCR("referential integrity ON UPDATE NO ACTION");
 
-DATA(insert OID = 1666 (  varbiteq                     PGUID 12 f t t t 2 f 16 "1562 1562" 100 0 0 100  biteq - ));
+DATA(insert OID = 1666 (  varbiteq                     PGUID 12 f t t t 2 f 16 "1562 1562" 100 0 0 100  biteq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1667 (  varbitne                     PGUID 12 f t t t 2 f 16 "1562 1562" 100 0 0 100  bitne - ));
+DATA(insert OID = 1667 (  varbitne                     PGUID 12 f t t t 2 f 16 "1562 1562" 100 0 0 100  bitne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1668 (  varbitge                     PGUID 12 f t t t 2 f 16 "1562 1562" 100 0 0 100  bitge - ));
+DATA(insert OID = 1668 (  varbitge                     PGUID 12 f t t t 2 f 16 "1562 1562" 100 0 0 100  bitge - _null_ ));
 DESCR("greater than or equal");
-DATA(insert OID = 1669 (  varbitgt                     PGUID 12 f t t t 2 f 16 "1562 1562" 100 0 0 100  bitgt - ));
+DATA(insert OID = 1669 (  varbitgt                     PGUID 12 f t t t 2 f 16 "1562 1562" 100 0 0 100  bitgt - _null_ ));
 DESCR("greater than");
-DATA(insert OID = 1670 (  varbitle                     PGUID 12 f t t t 2 f 16 "1562 1562" 100 0 0 100  bitle - ));
+DATA(insert OID = 1670 (  varbitle                     PGUID 12 f t t t 2 f 16 "1562 1562" 100 0 0 100  bitle - _null_ ));
 DESCR("less than or equal");
-DATA(insert OID = 1671 (  varbitlt                     PGUID 12 f t t t 2 f 16 "1562 1562" 100 0 0 100  bitlt - ));
+DATA(insert OID = 1671 (  varbitlt                     PGUID 12 f t t t 2 f 16 "1562 1562" 100 0 0 100  bitlt - _null_ ));
 DESCR("less than");
-DATA(insert OID = 1672 (  varbitcmp                    PGUID 12 f t t t 2 f 23 "1562 1562" 100 0 0 100  bitcmp - ));
+DATA(insert OID = 1672 (  varbitcmp                    PGUID 12 f t t t 2 f 23 "1562 1562" 100 0 0 100  bitcmp - _null_ ));
 DESCR("compare");
 
-DATA(insert OID = 1673 (  bitand                       PGUID 12 f t t t 2 f 1560 "1560 1560" 100 0 0 100  bitand - ));
+DATA(insert OID = 1673 (  bitand                       PGUID 12 f t t t 2 f 1560 "1560 1560" 100 0 0 100  bitand - _null_ ));
 DESCR("bitwise and");
-DATA(insert OID = 1674 (  bitor                                PGUID 12 f t t t 2 f 1560 "1560 1560" 100 0 0 100  bitor - ));
+DATA(insert OID = 1674 (  bitor                                PGUID 12 f t t t 2 f 1560 "1560 1560" 100 0 0 100  bitor - _null_ ));
 DESCR("bitwise or");
-DATA(insert OID = 1675 (  bitxor                       PGUID 12 f t t t 2 f 1560 "1560 1560" 100 0 0 100  bitxor - ));
+DATA(insert OID = 1675 (  bitxor                       PGUID 12 f t t t 2 f 1560 "1560 1560" 100 0 0 100  bitxor - _null_ ));
 DESCR("bitwise exclusive or");
-DATA(insert OID = 1676 (  bitnot                       PGUID 12 f t t t 1 f 1560 "1560" 100 0 0 100  bitnot - ));
+DATA(insert OID = 1676 (  bitnot                       PGUID 12 f t t t 1 f 1560 "1560" 100 0 0 100  bitnot - _null_ ));
 DESCR("bitwise negation");
-DATA(insert OID = 1677 (  bitshiftleft         PGUID 12 f t t t 2 f 1560 "1560 23" 100 0 0 100  bitshiftleft - ));
+DATA(insert OID = 1677 (  bitshiftleft         PGUID 12 f t t t 2 f 1560 "1560 23" 100 0 0 100  bitshiftleft - _null_ ));
 DESCR("bitwise left shift");
-DATA(insert OID = 1678 (  bitshiftright                PGUID 12 f t t t 2 f 1560 "1560 23" 100 0 0 100  bitshiftright - ));
+DATA(insert OID = 1678 (  bitshiftright                PGUID 12 f t t t 2 f 1560 "1560 23" 100 0 0 100  bitshiftright - _null_ ));
 DESCR("bitwise right shift");
-DATA(insert OID = 1679 (  bitcat                       PGUID 12 f t t t 2 f 1560 "1560 1560" 100 0 0 100  bitcat - ));
+DATA(insert OID = 1679 (  bitcat                       PGUID 12 f t t t 2 f 1560 "1560 1560" 100 0 0 100  bitcat - _null_ ));
 DESCR("bitwise concatenation");
-DATA(insert OID = 1680 (  substring                    PGUID 12 f t t t 3 f 1560 "1560 23 23" 100 0 0 100      bitsubstr - ));
+DATA(insert OID = 1680 (  substring                    PGUID 12 f t t t 3 f 1560 "1560 23 23" 100 0 0 100      bitsubstr - _null_ ));
 DESCR("return portion of bitstring");
-DATA(insert OID = 1681 (  length                       PGUID 12 f t t t 1 f 23 "1560" 100 0 0 100      bitlength - ));
+DATA(insert OID = 1681 (  length                       PGUID 12 f t t t 1 f 23 "1560" 100 0 0 100      bitlength - _null_ ));
 DESCR("bitstring length");
-DATA(insert OID = 1682 (  octet_length         PGUID 12 f t t t 1 f 23 "1560" 100 0 0 100      bitoctetlength - ));
+DATA(insert OID = 1682 (  octet_length         PGUID 12 f t t t 1 f 23 "1560" 100 0 0 100      bitoctetlength - _null_ ));
 DESCR("octet length");
-DATA(insert OID = 1683 (  bitfromint4          PGUID 12 f t t t 1 f 1560 "23" 100 0 0 100      bitfromint4 - ));
+DATA(insert OID = 1683 (  bitfromint4          PGUID 12 f t t t 1 f 1560 "23" 100 0 0 100      bitfromint4 - _null_ ));
 DESCR("int4 to bitstring");
-DATA(insert OID = 1684 (  bittoint4                    PGUID 12 f t t t 1 f 23 "1560" 100 0 0 100      bittoint4 - ));
+DATA(insert OID = 1684 (  bittoint4                    PGUID 12 f t t t 1 f 23 "1560" 100 0 0 100      bittoint4 - _null_ ));
 DESCR("bitstring to int4");
 
-DATA(insert OID = 1685 (  bit                     PGUID 12 f t t t 2 f 1560 "1560 23" 100 0 0 100      bit - ));
+DATA(insert OID = 1685 (  bit                     PGUID 12 f t t t 2 f 1560 "1560 23" 100 0 0 100      bit - _null_ ));
 DESCR("adjust bit() to typmod length");
-DATA(insert OID = 1686 (  _bit                    PGUID 12 f t t t 2 f 1561 "1561 23" 100 0 0 100      _bit - ));
+DATA(insert OID = 1686 (  _bit                    PGUID 12 f t t t 2 f 1561 "1561 23" 100 0 0 100      _bit - _null_ ));
 DESCR("adjust bit()[] to typmod length");
-DATA(insert OID = 1687 (  varbit                  PGUID 12 f t t t 2 f 1562 "1562 23" 100 0 0 100      varbit - ));
+DATA(insert OID = 1687 (  varbit                  PGUID 12 f t t t 2 f 1562 "1562 23" 100 0 0 100      varbit - _null_ ));
 DESCR("adjust varbit() to typmod length");
-DATA(insert OID = 1688 (  _varbit                 PGUID 12 f t t t 2 f 1563 "1563 23" 100 0 0 100      _varbit - ));
+DATA(insert OID = 1688 (  _varbit                 PGUID 12 f t t t 2 f 1563 "1563 23" 100 0 0 100      _varbit - _null_ ));
 DESCR("adjust varbit()[] to typmod length");
 
-DATA(insert OID = 1698 (  position                PGUID 12 f t t t 2 f 23 "1560 1560" 100 0 0 100 bitposition - ));
+DATA(insert OID = 1698 (  position                PGUID 12 f t t t 2 f 23 "1560 1560" 100 0 0 100 bitposition - _null_ ));
 DESCR("return position of sub-bitstring");
-DATA(insert OID = 1699 (  substring                    PGUID 14 f t t t 2 f 1560 "1560 23" 100 0 0 100  "select substring($1, $2, -1)" - ));
+DATA(insert OID = 1699 (  substring                    PGUID 14 f t t t 2 f 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                    PGUID 12 f t t t 1 f 829 "0" 100 0 0 100  macaddr_in - ));
+DATA(insert OID = 436 (  macaddr_in                    PGUID 12 f t t t 1 f 829 "0" 100 0 0 100  macaddr_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 437 (  macaddr_out           PGUID 12 f t t t 1 f 23 "0" 100 0 0 100  macaddr_out - ));
+DATA(insert OID = 437 (  macaddr_out           PGUID 12 f t t t 1 f 23 "0" 100 0 0 100  macaddr_out - _null_ ));
 DESCR("(internal)");
 
-DATA(insert OID = 752 (  text                          PGUID 12 f t t t 1 f 25 "829" 100 0 0 100  macaddr_text - ));
+DATA(insert OID = 752 (  text                          PGUID 12 f t t t 1 f 25 "829" 100 0 0 100  macaddr_text - _null_ ));
 DESCR("MAC address to text");
-DATA(insert OID = 753 (  trunc                         PGUID 12 f t t t 1 f 829 "829" 100 0 0 100      macaddr_trunc - ));
+DATA(insert OID = 753 (  trunc                         PGUID 12 f t t t 1 f 829 "829" 100 0 0 100      macaddr_trunc - _null_ ));
 DESCR("MAC manufacturer fields");
-DATA(insert OID = 767 (  macaddr                       PGUID 12 f t t t 1 f 829 "25" 100 0 0 100  text_macaddr - ));
+DATA(insert OID = 767 (  macaddr                       PGUID 12 f t t t 1 f 829 "25" 100 0 0 100  text_macaddr - _null_ ));
 DESCR("text to MAC address");
 
-DATA(insert OID = 830 (  macaddr_eq                    PGUID 12 f t t t 2 f 16 "829 829" 100 0 0 100  macaddr_eq - ));
+DATA(insert OID = 830 (  macaddr_eq                    PGUID 12 f t t t 2 f 16 "829 829" 100 0 0 100  macaddr_eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 831 (  macaddr_lt                    PGUID 12 f t t t 2 f 16 "829 829" 100 0 0 100  macaddr_lt - ));
+DATA(insert OID = 831 (  macaddr_lt                    PGUID 12 f t t t 2 f 16 "829 829" 100 0 0 100  macaddr_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 832 (  macaddr_le                    PGUID 12 f t t t 2 f 16 "829 829" 100 0 0 100  macaddr_le - ));
+DATA(insert OID = 832 (  macaddr_le                    PGUID 12 f t t t 2 f 16 "829 829" 100 0 0 100  macaddr_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 833 (  macaddr_gt                    PGUID 12 f t t t 2 f 16 "829 829" 100 0 0 100  macaddr_gt - ));
+DATA(insert OID = 833 (  macaddr_gt                    PGUID 12 f t t t 2 f 16 "829 829" 100 0 0 100  macaddr_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 834 (  macaddr_ge                    PGUID 12 f t t t 2 f 16 "829 829" 100 0 0 100  macaddr_ge - ));
+DATA(insert OID = 834 (  macaddr_ge                    PGUID 12 f t t t 2 f 16 "829 829" 100 0 0 100  macaddr_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 835 (  macaddr_ne                    PGUID 12 f t t t 2 f 16 "829 829" 100 0 0 100  macaddr_ne - ));
+DATA(insert OID = 835 (  macaddr_ne                    PGUID 12 f t t t 2 f 16 "829 829" 100 0 0 100  macaddr_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 836 (  macaddr_cmp           PGUID 12 f t t t 2 f 23 "829 829" 100 0 0 100  macaddr_cmp - ));
+DATA(insert OID = 836 (  macaddr_cmp           PGUID 12 f t t t 2 f 23 "829 829" 100 0 0 100  macaddr_cmp - _null_ ));
 DESCR("less-equal-greater");
 
 /* for inet type support */
-DATA(insert OID = 910 (  inet_in                       PGUID 12 f t t t 1 f 869 "0" 100 0 0 100  inet_in - ));
+DATA(insert OID = 910 (  inet_in                       PGUID 12 f t t t 1 f 869 "0" 100 0 0 100  inet_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 911 (  inet_out                      PGUID 12 f t t t 1 f 23 "0" 100 0 0 100  inet_out - ));
+DATA(insert OID = 911 (  inet_out                      PGUID 12 f t t t 1 f 23 "0" 100 0 0 100  inet_out - _null_ ));
 DESCR("(internal)");
 
 /* for cidr type support */
-DATA(insert OID = 1267 (  cidr_in                      PGUID 12 f t t t 1 f 650 "0" 100 0 0 100  cidr_in - ));
+DATA(insert OID = 1267 (  cidr_in                      PGUID 12 f t t t 1 f 650 "0" 100 0 0 100  cidr_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1427 (  cidr_out                     PGUID 12 f t t t 1 f 23 "0" 100 0 0 100  cidr_out - ));
+DATA(insert OID = 1427 (  cidr_out                     PGUID 12 f t t t 1 f 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                    PGUID 12 f t t t 2 f 16 "869 869" 100 0 0 100  network_eq - ));
+DATA(insert OID = 920 (  network_eq                    PGUID 12 f t t t 2 f 16 "869 869" 100 0 0 100  network_eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 921 (  network_lt                    PGUID 12 f t t t 2 f 16 "869 869" 100 0 0 100  network_lt - ));
+DATA(insert OID = 921 (  network_lt                    PGUID 12 f t t t 2 f 16 "869 869" 100 0 0 100  network_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 922 (  network_le                    PGUID 12 f t t t 2 f 16 "869 869" 100 0 0 100  network_le - ));
+DATA(insert OID = 922 (  network_le                    PGUID 12 f t t t 2 f 16 "869 869" 100 0 0 100  network_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 923 (  network_gt                    PGUID 12 f t t t 2 f 16 "869 869" 100 0 0 100  network_gt - ));
+DATA(insert OID = 923 (  network_gt                    PGUID 12 f t t t 2 f 16 "869 869" 100 0 0 100  network_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 924 (  network_ge                    PGUID 12 f t t t 2 f 16 "869 869" 100 0 0 100  network_ge - ));
+DATA(insert OID = 924 (  network_ge                    PGUID 12 f t t t 2 f 16 "869 869" 100 0 0 100  network_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 925 (  network_ne                    PGUID 12 f t t t 2 f 16 "869 869" 100 0 0 100  network_ne - ));
+DATA(insert OID = 925 (  network_ne                    PGUID 12 f t t t 2 f 16 "869 869" 100 0 0 100  network_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 926 (  network_cmp           PGUID 12 f t t t 2 f 23 "869 869" 100 0 0 100  network_cmp - ));
+DATA(insert OID = 926 (  network_cmp           PGUID 12 f t t t 2 f 23 "869 869" 100 0 0 100  network_cmp - _null_ ));
 DESCR("less-equal-greater");
-DATA(insert OID = 927 (  network_sub           PGUID 12 f t t t 2 f 16 "869 869" 100 0 0 100  network_sub - ));
+DATA(insert OID = 927 (  network_sub           PGUID 12 f t t t 2 f 16 "869 869" 100 0 0 100  network_sub - _null_ ));
 DESCR("is-subnet");
-DATA(insert OID = 928 (  network_subeq         PGUID 12 f t t t 2 f 16 "869 869" 100 0 0 100  network_subeq - ));
+DATA(insert OID = 928 (  network_subeq         PGUID 12 f t t t 2 f 16 "869 869" 100 0 0 100  network_subeq - _null_ ));
 DESCR("is-subnet-or-equal");
-DATA(insert OID = 929 (  network_sup           PGUID 12 f t t t 2 f 16 "869 869" 100 0 0 100  network_sup - ));
+DATA(insert OID = 929 (  network_sup           PGUID 12 f t t t 2 f 16 "869 869" 100 0 0 100  network_sup - _null_ ));
 DESCR("is-supernet");
-DATA(insert OID = 930 (  network_supeq         PGUID 12 f t t t 2 f 16 "869 869" 100 0 0 100  network_supeq - ));
+DATA(insert OID = 930 (  network_supeq         PGUID 12 f t t t 2 f 16 "869 869" 100 0 0 100  network_supeq - _null_ ));
 DESCR("is-supernet-or-equal");
 
 /* inet/cidr functions */
-DATA(insert OID = 605 (  abbrev                                PGUID 12 f t t t 1 f 25 "869" 100 0 0 100  network_abbrev - ));
+DATA(insert OID = 605 (  abbrev                                PGUID 12 f t t t 1 f 25 "869" 100 0 0 100  network_abbrev - _null_ ));
 DESCR("abbreviated display of inet/cidr value");
-DATA(insert OID = 683 (  network                       PGUID 12 f t t t 1 f 650 "869" 100 0 0 100      network_network - ));
+DATA(insert OID = 683 (  network                       PGUID 12 f t t t 1 f 650 "869" 100 0 0 100      network_network - _null_ ));
 DESCR("network part of address");
-DATA(insert OID = 696 (  netmask                       PGUID 12 f t t t 1 f 869 "869" 100 0 0 100      network_netmask - ));
+DATA(insert OID = 696 (  netmask                       PGUID 12 f t t t 1 f 869 "869" 100 0 0 100      network_netmask - _null_ ));
 DESCR("netmask of address");
-DATA(insert OID = 697 (  masklen                       PGUID 12 f t t t 1 f 23 "869" 100 0 0 100  network_masklen - ));
+DATA(insert OID = 697 (  masklen                       PGUID 12 f t t t 1 f 23 "869" 100 0 0 100  network_masklen - _null_ ));
 DESCR("netmask length");
-DATA(insert OID = 698 (  broadcast                     PGUID 12 f t t t 1 f 869 "869" 100 0 0 100      network_broadcast - ));
+DATA(insert OID = 698 (  broadcast                     PGUID 12 f t t t 1 f 869 "869" 100 0 0 100      network_broadcast - _null_ ));
 DESCR("broadcast address of network");
-DATA(insert OID = 699 (  host                          PGUID 12 f t t t 1 f 25 "869" 100 0 0 100  network_host - ));
+DATA(insert OID = 699 (  host                          PGUID 12 f t t t 1 f 25 "869" 100 0 0 100  network_host - _null_ ));
 DESCR("show address octets only");
-DATA(insert OID = 730 (  text                          PGUID 12 f t t t 1 f 25 "869" 100 0 0 100  network_show - ));
+DATA(insert OID = 730 (  text                          PGUID 12 f t t t 1 f 25 "869" 100 0 0 100  network_show - _null_ ));
 DESCR("show all parts of inet/cidr value");
-DATA(insert OID = 1713 (  inet                         PGUID 12 f t t t 1 f 869 "25" 100 0 0 100  text_inet - ));
+DATA(insert OID = 1713 (  inet                         PGUID 12 f t t t 1 f 869 "25" 100 0 0 100  text_inet - _null_ ));
 DESCR("text to inet");
-DATA(insert OID = 1714 (  cidr                         PGUID 12 f t t t 1 f 650 "25" 100 0 0 100  text_cidr - ));
+DATA(insert OID = 1714 (  cidr                         PGUID 12 f t t t 1 f 650 "25" 100 0 0 100  text_cidr - _null_ ));
 DESCR("text to cidr");
-DATA(insert OID = 1715 (  set_masklen          PGUID 12 f t t t 2 f 869 "869 23" 100 0 0 100  inet_set_masklen - ));
+DATA(insert OID = 1715 (  set_masklen          PGUID 12 f t t t 2 f 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          PGUID 12 f t t t 2 f 1186 "1083 1083" 100 0 0 100  time_mi_time - ));
+DATA(insert OID = 1690 ( time_mi_time          PGUID 12 f t t t 2 f 1186 "1083 1083" 100 0 0 100  time_mi_time - _null_ ));
 DESCR("minus");
 
-DATA(insert OID =  1691 (  boolle                      PGUID 12 f t t t 2 f 16 "16 16" 100 0 0 100  boolle - ));
+DATA(insert OID =  1691 (  boolle                      PGUID 12 f t t t 2 f 16 "16 16" 100 0 0 100  boolle - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID =  1692 (  boolge                      PGUID 12 f t t t 2 f 16 "16 16" 100 0 0 100  boolge - ));
+DATA(insert OID =  1692 (  boolge                      PGUID 12 f t t t 2 f 16 "16 16" 100 0 0 100  boolge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1693 (  btboolcmp                    PGUID 12 f t t t 2 f 23 "16 16" 100 0 0 100  btboolcmp - ));
+DATA(insert OID = 1693 (  btboolcmp                    PGUID 12 f t t t 2 f 23 "16 16" 100 0 0 100  btboolcmp - _null_ ));
 DESCR("btree less-equal-greater");
 
-DATA(insert OID = 1696 (  timetz_hash          PGUID 12 f t t t 1 f 23 "1266" 100 0 0 100      timetz_hash - ));
+DATA(insert OID = 1696 (  timetz_hash          PGUID 12 f t t t 1 f 23 "1266" 100 0 0 100      timetz_hash - _null_ ));
 DESCR("hash");
-DATA(insert OID = 1697 (  interval_hash                PGUID 12 f t t t 1 f 23 "1186" 100 0 0 100      interval_hash - ));
+DATA(insert OID = 1697 (  interval_hash                PGUID 12 f t t t 1 f 23 "1186" 100 0 0 100      interval_hash - _null_ ));
 DESCR("hash");
 
 
 /* OID's 1700 - 1799 NUMERIC data type */
-DATA(insert OID = 1701 ( numeric_in                            PGUID 12 f t t t 3 f 1700 "0 26 23" 100 0 0 100  numeric_in - ));
+DATA(insert OID = 1701 ( numeric_in                            PGUID 12 f t t t 3 f 1700 "0 26 23" 100 0 0 100  numeric_in - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1702 ( numeric_out                   PGUID 12 f t t t 1 f 23 "0" 100 0 0 100  numeric_out - ));
+DATA(insert OID = 1702 ( numeric_out                   PGUID 12 f t t t 1 f 23 "0" 100 0 0 100  numeric_out - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1703 ( numeric                               PGUID 12 f t t t 2 f 1700 "1700 23" 100 0 0 100  numeric - ));
+DATA(insert OID = 1703 ( numeric                               PGUID 12 f t t t 2 f 1700 "1700 23" 100 0 0 100  numeric - _null_ ));
 DESCR("adjust numeric to typmod precision/scale");
-DATA(insert OID = 1704 ( numeric_abs                   PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_abs - ));
+DATA(insert OID = 1704 ( numeric_abs                   PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_abs - _null_ ));
 DESCR("absolute value");
-DATA(insert OID = 1705 ( abs                                   PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_abs - ));
+DATA(insert OID = 1705 ( abs                                   PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_abs - _null_ ));
 DESCR("absolute value");
-DATA(insert OID = 1706 ( sign                                  PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_sign - ));
+DATA(insert OID = 1706 ( sign                                  PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_sign - _null_ ));
 DESCR("sign of value");
-DATA(insert OID = 1707 ( round                                 PGUID 12 f t t t 2 f 1700 "1700 23" 100 0 0 100  numeric_round - ));
+DATA(insert OID = 1707 ( round                                 PGUID 12 f t t t 2 f 1700 "1700 23" 100 0 0 100  numeric_round - _null_ ));
 DESCR("value rounded to 'scale'");
-DATA(insert OID = 1708 ( round                                 PGUID 14 f t t t 1 f 1700 "1700" 100 0 0 100  "select round($1,0)" - ));
+DATA(insert OID = 1708 ( round                                 PGUID 14 f t t t 1 f 1700 "1700" 100 0 0 100  "select round($1,0)" - _null_ ));
 DESCR("value rounded to 'scale' of zero");
-DATA(insert OID = 1709 ( trunc                                 PGUID 12 f t t t 2 f 1700 "1700 23" 100 0 0 100  numeric_trunc - ));
+DATA(insert OID = 1709 ( trunc                                 PGUID 12 f t t t 2 f 1700 "1700 23" 100 0 0 100  numeric_trunc - _null_ ));
 DESCR("value truncated to 'scale'");
-DATA(insert OID = 1710 ( trunc                                 PGUID 14 f t t t 1 f 1700 "1700" 100 0 0 100  "select trunc($1,0)" - ));
+DATA(insert OID = 1710 ( trunc                                 PGUID 14 f t t t 1 f 1700 "1700" 100 0 0 100  "select trunc($1,0)" - _null_ ));
 DESCR("value truncated to 'scale' of zero");
-DATA(insert OID = 1711 ( ceil                                  PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_ceil - ));
+DATA(insert OID = 1711 ( ceil                                  PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_ceil - _null_ ));
 DESCR("smallest integer >= value");
-DATA(insert OID = 1712 ( floor                                 PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_floor - ));
+DATA(insert OID = 1712 ( floor                                 PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_floor - _null_ ));
 DESCR("largest integer <= value");
-DATA(insert OID = 1718 ( numeric_eq                            PGUID 12 f t t t 2 f 16 "1700 1700" 100 0 0 100  numeric_eq - ));
+DATA(insert OID = 1718 ( numeric_eq                            PGUID 12 f t t t 2 f 16 "1700 1700" 100 0 0 100  numeric_eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1719 ( numeric_ne                            PGUID 12 f t t t 2 f 16 "1700 1700" 100 0 0 100  numeric_ne - ));
+DATA(insert OID = 1719 ( numeric_ne                            PGUID 12 f t t t 2 f 16 "1700 1700" 100 0 0 100  numeric_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1720 ( numeric_gt                            PGUID 12 f t t t 2 f 16 "1700 1700" 100 0 0 100  numeric_gt - ));
+DATA(insert OID = 1720 ( numeric_gt                            PGUID 12 f t t t 2 f 16 "1700 1700" 100 0 0 100  numeric_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1721 ( numeric_ge                            PGUID 12 f t t t 2 f 16 "1700 1700" 100 0 0 100  numeric_ge - ));
+DATA(insert OID = 1721 ( numeric_ge                            PGUID 12 f t t t 2 f 16 "1700 1700" 100 0 0 100  numeric_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1722 ( numeric_lt                            PGUID 12 f t t t 2 f 16 "1700 1700" 100 0 0 100  numeric_lt - ));
+DATA(insert OID = 1722 ( numeric_lt                            PGUID 12 f t t t 2 f 16 "1700 1700" 100 0 0 100  numeric_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1723 ( numeric_le                            PGUID 12 f t t t 2 f 16 "1700 1700" 100 0 0 100  numeric_le - ));
+DATA(insert OID = 1723 ( numeric_le                            PGUID 12 f t t t 2 f 16 "1700 1700" 100 0 0 100  numeric_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1724 ( numeric_add                   PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_add - ));
+DATA(insert OID = 1724 ( numeric_add                   PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_add - _null_ ));
 DESCR("add");
-DATA(insert OID = 1725 ( numeric_sub                   PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_sub - ));
+DATA(insert OID = 1725 ( numeric_sub                   PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_sub - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 1726 ( numeric_mul                   PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_mul - ));
+DATA(insert OID = 1726 ( numeric_mul                   PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_mul - _null_ ));
 DESCR("multiply");
-DATA(insert OID = 1727 ( numeric_div                   PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_div - ));
+DATA(insert OID = 1727 ( numeric_div                   PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_div - _null_ ));
 DESCR("divide");
-DATA(insert OID = 1728 ( mod                                   PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_mod - ));
+DATA(insert OID = 1728 ( mod                                   PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_mod - _null_ ));
 DESCR("modulus");
-DATA(insert OID = 1729 ( numeric_mod                   PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_mod - ));
+DATA(insert OID = 1729 ( numeric_mod                   PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_mod - _null_ ));
 DESCR("modulus");
-DATA(insert OID = 1730 ( sqrt                                  PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_sqrt - ));
+DATA(insert OID = 1730 ( sqrt                                  PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_sqrt - _null_ ));
 DESCR("square root");
-DATA(insert OID = 1731 ( numeric_sqrt                  PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_sqrt - ));
+DATA(insert OID = 1731 ( numeric_sqrt                  PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_sqrt - _null_ ));
 DESCR("square root");
-DATA(insert OID = 1732 ( exp                                   PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_exp - ));
+DATA(insert OID = 1732 ( exp                                   PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_exp - _null_ ));
 DESCR("e raised to the power of n");
-DATA(insert OID = 1733 ( numeric_exp                   PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_exp - ));
+DATA(insert OID = 1733 ( numeric_exp                   PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_exp - _null_ ));
 DESCR("e raised to the power of n");
-DATA(insert OID = 1734 ( ln                                            PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_ln - ));
+DATA(insert OID = 1734 ( ln                                            PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_ln - _null_ ));
 DESCR("natural logarithm of n");
-DATA(insert OID = 1735 ( numeric_ln                            PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_ln - ));
+DATA(insert OID = 1735 ( numeric_ln                            PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_ln - _null_ ));
 DESCR("natural logarithm of n");
-DATA(insert OID = 1736 ( log                                   PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_log - ));
+DATA(insert OID = 1736 ( log                                   PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_log - _null_ ));
 DESCR("logarithm base m of n");
-DATA(insert OID = 1737 ( numeric_log                   PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_log - ));
+DATA(insert OID = 1737 ( numeric_log                   PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_log - _null_ ));
 DESCR("logarithm base m of n");
-DATA(insert OID = 1738 ( pow                                   PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_power - ));
+DATA(insert OID = 1738 ( pow                                   PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_power - _null_ ));
 DESCR("m raised to the power of n");
-DATA(insert OID = 1739 ( numeric_power                 PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_power - ));
+DATA(insert OID = 1739 ( numeric_power                 PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_power - _null_ ));
 DESCR("m raised to the power of n");
-DATA(insert OID = 1740 ( numeric                               PGUID 12 f t t t 1 f 1700 "23" 100 0 0 100      int4_numeric - ));
+DATA(insert OID = 1740 ( numeric                               PGUID 12 f t t t 1 f 1700 "23" 100 0 0 100      int4_numeric - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1741 ( log                                   PGUID 14 f t t t 1 f 1700 "1700" 100 0 0 100  "select log(10, $1)" - ));
+DATA(insert OID = 1741 ( log                                   PGUID 14 f t t t 1 f 1700 "1700" 100 0 0 100  "select log(10, $1)" - _null_ ));
 DESCR("logarithm base 10 of n");
-DATA(insert OID = 1742 ( numeric                               PGUID 12 f t t t 1 f 1700 "700" 100 0 0 100  float4_numeric - ));
+DATA(insert OID = 1742 ( numeric                               PGUID 12 f t t t 1 f 1700 "700" 100 0 0 100  float4_numeric - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1743 ( numeric                               PGUID 12 f t t t 1 f 1700 "701" 100 0 0 100  float8_numeric - ));
+DATA(insert OID = 1743 ( numeric                               PGUID 12 f t t t 1 f 1700 "701" 100 0 0 100  float8_numeric - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1744 ( int4                                  PGUID 12 f t t t 1 f 23 "1700" 100 0 0 100      numeric_int4 - ));
+DATA(insert OID = 1744 ( int4                                  PGUID 12 f t t t 1 f 23 "1700" 100 0 0 100      numeric_int4 - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1745 ( float4                                        PGUID 12 f t t t 1 f 700 "1700" 100 0 0 100  numeric_float4 - ));
+DATA(insert OID = 1745 ( float4                                        PGUID 12 f t t t 1 f 700 "1700" 100 0 0 100  numeric_float4 - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1746 ( float8                                        PGUID 12 f t t t 1 f 701 "1700" 100 0 0 100  numeric_float8 - ));
+DATA(insert OID = 1746 ( float8                                        PGUID 12 f t t t 1 f 701 "1700" 100 0 0 100  numeric_float8 - _null_ ));
 DESCR("(internal)");
 
-DATA(insert OID = 1747 ( time_pl_interval              PGUID 12 f t t t 2 f 1083 "1083 1186" 100 0 0 100  time_pl_interval - ));
+DATA(insert OID = 1747 ( time_pl_interval              PGUID 12 f t t t 2 f 1083 "1083 1186" 100 0 0 100  time_pl_interval - _null_ ));
 DESCR("plus");
-DATA(insert OID = 1748 ( time_mi_interval              PGUID 12 f t t t 2 f 1083 "1083 1186" 100 0 0 100  time_mi_interval - ));
+DATA(insert OID = 1748 ( time_mi_interval              PGUID 12 f t t t 2 f 1083 "1083 1186" 100 0 0 100  time_mi_interval - _null_ ));
 DESCR("minus");
-DATA(insert OID = 1749 ( timetz_pl_interval            PGUID 12 f t t t 2 f 1266 "1266 1186" 100 0 0 100  timetz_pl_interval - ));
+DATA(insert OID = 1749 ( timetz_pl_interval            PGUID 12 f t t t 2 f 1266 "1266 1186" 100 0 0 100  timetz_pl_interval - _null_ ));
 DESCR("plus");
-DATA(insert OID = 1750 ( timetz_mi_interval            PGUID 12 f t t t 2 f 1266 "1266 1186" 100 0 0 100  timetz_mi_interval - ));
+DATA(insert OID = 1750 ( timetz_mi_interval            PGUID 12 f t t t 2 f 1266 "1266 1186" 100 0 0 100  timetz_mi_interval - _null_ ));
 DESCR("minus");
 
-DATA(insert OID = 1764 ( numeric_inc                   PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_inc - ));
+DATA(insert OID = 1764 ( numeric_inc                   PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_inc - _null_ ));
 DESCR("increment by one");
-DATA(insert OID = 1766 ( numeric_smaller               PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_smaller - ));
+DATA(insert OID = 1766 ( numeric_smaller               PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_smaller - _null_ ));
 DESCR("smaller of two numbers");
-DATA(insert OID = 1767 ( numeric_larger                        PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_larger - ));
+DATA(insert OID = 1767 ( numeric_larger                        PGUID 12 f t t t 2 f 1700 "1700 1700" 100 0 0 100  numeric_larger - _null_ ));
 DESCR("larger of two numbers");
-DATA(insert OID = 1769 ( numeric_cmp                   PGUID 12 f t t t 2 f 23 "1700 1700" 100 0 0 100  numeric_cmp - ));
+DATA(insert OID = 1769 ( numeric_cmp                   PGUID 12 f t t t 2 f 23 "1700 1700" 100 0 0 100  numeric_cmp - _null_ ));
 DESCR("compare two numbers");
-DATA(insert OID = 1771 ( numeric_uminus                        PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_uminus - ));
+DATA(insert OID = 1771 ( numeric_uminus                        PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_uminus - _null_ ));
 DESCR("negate");
-DATA(insert OID = 1779 ( int8                                  PGUID 12 f t t t 1 f 20 "1700" 100 0 0 100      numeric_int8 - ));
+DATA(insert OID = 1779 ( int8                                  PGUID 12 f t t t 1 f 20 "1700" 100 0 0 100      numeric_int8 - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1781 ( numeric                               PGUID 12 f t t t 1 f 1700 "20" 100 0 0 100      int8_numeric - ));
+DATA(insert OID = 1781 ( numeric                               PGUID 12 f t t t 1 f 1700 "20" 100 0 0 100      int8_numeric - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1782 ( numeric                               PGUID 12 f t t t 1 f 1700 "21" 100 0 0 100      int2_numeric - ));
+DATA(insert OID = 1782 ( numeric                               PGUID 12 f t t t 1 f 1700 "21" 100 0 0 100      int2_numeric - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1783 ( int2                                  PGUID 12 f t t t 1 f 21 "1700" 100 0 0 100      numeric_int2 - ));
+DATA(insert OID = 1783 ( int2                                  PGUID 12 f t t t 1 f 21 "1700" 100 0 0 100      numeric_int2 - _null_ ));
 DESCR("(internal)");
 
 /* formatting */
-DATA(insert OID = 1770 ( to_char                       PGUID 12 f t f t 2 f    25 "1184 25" 100 0 0 100  timestamptz_to_char - ));
+DATA(insert OID = 1770 ( to_char                       PGUID 12 f t f t 2 f    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                       PGUID 12 f t t t 2 f    25 "1700 25" 100 0 0 100  numeric_to_char - ));
+DATA(insert OID = 1772 ( to_char                       PGUID 12 f t t t 2 f    25 "1700 25" 100 0 0 100  numeric_to_char - _null_ ));
 DESCR("format numeric to text");
-DATA(insert OID = 1773 ( to_char                       PGUID 12 f t t t 2 f    25 "23 25" 100 0 0 100  int4_to_char - ));
+DATA(insert OID = 1773 ( to_char                       PGUID 12 f t t t 2 f    25 "23 25" 100 0 0 100  int4_to_char - _null_ ));
 DESCR("format int4 to text");
-DATA(insert OID = 1774 ( to_char                       PGUID 12 f t t t 2 f    25 "20 25" 100 0 0 100  int8_to_char - ));
+DATA(insert OID = 1774 ( to_char                       PGUID 12 f t t t 2 f    25 "20 25" 100 0 0 100  int8_to_char - _null_ ));
 DESCR("format int8 to text");
-DATA(insert OID = 1775 ( to_char                       PGUID 12 f t t t 2 f    25 "700 25" 100 0 0 100  float4_to_char - ));
+DATA(insert OID = 1775 ( to_char                       PGUID 12 f t t t 2 f    25 "700 25" 100 0 0 100  float4_to_char - _null_ ));
 DESCR("format float4 to text");
-DATA(insert OID = 1776 ( to_char                       PGUID 12 f t t t 2 f    25 "701 25" 100 0 0 100  float8_to_char - ));
+DATA(insert OID = 1776 ( to_char                       PGUID 12 f t t t 2 f    25 "701 25" 100 0 0 100  float8_to_char - _null_ ));
 DESCR("format float8 to text");
-DATA(insert OID = 1777 ( to_number                     PGUID 12 f t t t 2 f    1700 "25 25" 100 0 0 100  numeric_to_number - ));
+DATA(insert OID = 1777 ( to_number                     PGUID 12 f t t t 2 f    1700 "25 25" 100 0 0 100  numeric_to_number - _null_ ));
 DESCR("convert text to numeric");
-DATA(insert OID = 1778 ( to_timestamp          PGUID 12 f t f t 2 f    1184 "25 25" 100 0 0 100  to_timestamp - ));
+DATA(insert OID = 1778 ( to_timestamp          PGUID 12 f t f t 2 f    1184 "25 25" 100 0 0 100  to_timestamp - _null_ ));
 DESCR("convert text to timestamp");
-DATA(insert OID = 1780 ( to_date                       PGUID 12 f t t t 2 f    1082 "25 25" 100 0 0 100  to_date - ));
+DATA(insert OID = 1780 ( to_date                       PGUID 12 f t t t 2 f    1082 "25 25" 100 0 0 100  to_date - _null_ ));
 DESCR("convert text to date");
-DATA(insert OID = 1768 ( to_char                       PGUID 12 f t t t 2 f    25 "1186 25" 100 0 0 100  interval_to_char - ));
+DATA(insert OID = 1768 ( to_char                       PGUID 12 f t t t 2 f    25 "1186 25" 100 0 0 100  interval_to_char - _null_ ));
 DESCR("format interval to text");
 
-DATA(insert OID =  1282 ( quote_ident     PGUID 12 f t t t 1 f 25 "25" 100 0 0 100 quote_ident - ));
+DATA(insert OID =  1282 ( quote_ident     PGUID 12 f t t t 1 f 25 "25" 100 0 0 100 quote_ident - _null_ ));
 DESCR("quote an identifier for usage in a querystring");
-DATA(insert OID =  1283 ( quote_literal    PGUID 12 f t t t 1 f 25 "25" 100 0 0 100 quote_literal - ));
+DATA(insert OID =  1283 ( quote_literal    PGUID 12 f t t t 1 f 25 "25" 100 0 0 100 quote_literal - _null_ ));
 DESCR("quote a literal for usage in a querystring");
 
-DATA(insert OID = 1798 (  oidin                           PGUID 12 f t t t 1 f 26 "0" 100 0 0 100      oidin - ));
+DATA(insert OID = 1798 (  oidin                           PGUID 12 f t t t 1 f 26 "0" 100 0 0 100      oidin - _null_ ));
 DESCR("(internal)");
-DATA(insert OID = 1799 (  oidout                  PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      oidout - ));
+DATA(insert OID = 1799 (  oidout                  PGUID 12 f t t t 1 f 23 "0" 100 0 0 100      oidout - _null_ ));
 DESCR("(internal)");
 
 
-DATA(insert OID = 1810 (  bit_length      PGUID 14 f t t t 1 f 23 "17" 100 0 0 100 "select octet_length($1) * 8" - ));
+DATA(insert OID = 1810 (  bit_length      PGUID 14 f t t t 1 f 23 "17" 100 0 0 100 "select octet_length($1) * 8" - _null_ ));
 DESCR("length in bits");
-DATA(insert OID = 1811 (  bit_length      PGUID 14 f t t t 1 f 23 "25" 100 0 0 100 "select octet_length($1) * 8" - ));
+DATA(insert OID = 1811 (  bit_length      PGUID 14 f t t t 1 f 23 "25" 100 0 0 100 "select octet_length($1) * 8" - _null_ ));
 DESCR("length in bits");
-DATA(insert OID = 1812 (  bit_length      PGUID 14 f t t t 1 f 23 "1560" 100 0 0 100 "select length($1)" - ));
+DATA(insert OID = 1812 (  bit_length      PGUID 14 f t t t 1 f 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                     PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  iclikesel - ));
+DATA(insert OID = 1814 ( iclikesel                     PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  iclikesel - _null_ ));
 DESCR("restriction selectivity of ILIKE");
-DATA(insert OID = 1815 ( icnlikesel                    PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  icnlikesel - ));
+DATA(insert OID = 1815 ( icnlikesel                    PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  icnlikesel - _null_ ));
 DESCR("restriction selectivity of NOT ILIKE");
-DATA(insert OID = 1816 ( iclikejoinsel         PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  iclikejoinsel - ));
+DATA(insert OID = 1816 ( iclikejoinsel         PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  iclikejoinsel - _null_ ));
 DESCR("join selectivity of ILIKE");
-DATA(insert OID = 1817 ( icnlikejoinsel                PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  icnlikejoinsel - ));
+DATA(insert OID = 1817 ( icnlikejoinsel                PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  icnlikejoinsel - _null_ ));
 DESCR("join selectivity of NOT ILIKE");
-DATA(insert OID = 1818 ( regexeqsel                    PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  regexeqsel - ));
+DATA(insert OID = 1818 ( regexeqsel                    PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  regexeqsel - _null_ ));
 DESCR("restriction selectivity of regex match");
-DATA(insert OID = 1819 ( likesel                       PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  likesel - ));
+DATA(insert OID = 1819 ( likesel                       PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  likesel - _null_ ));
 DESCR("restriction selectivity of LIKE");
-DATA(insert OID = 1820 ( icregexeqsel          PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  icregexeqsel - ));
+DATA(insert OID = 1820 ( icregexeqsel          PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  icregexeqsel - _null_ ));
 DESCR("restriction selectivity of case-insensitive regex match");
-DATA(insert OID = 1821 ( regexnesel                    PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  regexnesel - ));
+DATA(insert OID = 1821 ( regexnesel                    PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  regexnesel - _null_ ));
 DESCR("restriction selectivity of regex non-match");
-DATA(insert OID = 1822 ( nlikesel                      PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  nlikesel - ));
+DATA(insert OID = 1822 ( nlikesel                      PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  nlikesel - _null_ ));
 DESCR("restriction selectivity of NOT LIKE");
-DATA(insert OID = 1823 ( icregexnesel          PGUID 12 f t f t 4 f 701 "0 26 0 23" 100 0 0 100  icregexnesel - ));
+DATA(insert OID = 1823 ( icregexnesel          PGUID 12 f t f t 4 f 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                PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  regexeqjoinsel - ));
+DATA(insert OID = 1824 ( regexeqjoinsel                PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  regexeqjoinsel - _null_ ));
 DESCR("join selectivity of regex match");
-DATA(insert OID = 1825 ( likejoinsel           PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  likejoinsel - ));
+DATA(insert OID = 1825 ( likejoinsel           PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  likejoinsel - _null_ ));
 DESCR("join selectivity of LIKE");
-DATA(insert OID = 1826 ( icregexeqjoinsel      PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  icregexeqjoinsel - ));
+DATA(insert OID = 1826 ( icregexeqjoinsel      PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  icregexeqjoinsel - _null_ ));
 DESCR("join selectivity of case-insensitive regex match");
-DATA(insert OID = 1827 ( regexnejoinsel                PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  regexnejoinsel - ));
+DATA(insert OID = 1827 ( regexnejoinsel                PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  regexnejoinsel - _null_ ));
 DESCR("join selectivity of regex non-match");
-DATA(insert OID = 1828 ( nlikejoinsel          PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  nlikejoinsel - ));
+DATA(insert OID = 1828 ( nlikejoinsel          PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  nlikejoinsel - _null_ ));
 DESCR("join selectivity of NOT LIKE");
-DATA(insert OID = 1829 ( icregexnejoinsel      PGUID 12 f t f t 3 f 701 "0 26 0" 100 0 0 100  icregexnejoinsel - ));
+DATA(insert OID = 1829 ( icregexnejoinsel      PGUID 12 f t f t 3 f 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      PGUID 12 f t t t 1 f 701 "1022" 100 0 0 100  float8_avg - ));
+DATA(insert OID = 1830 (  float8_avg      PGUID 12 f t t t 1 f 701 "1022" 100 0 0 100  float8_avg - _null_ ));
 DESCR("AVG aggregate final function");
-DATA(insert OID = 1831 (  float8_variance  PGUID 12 f t t t 1 f 701 "1022" 100 0 0 100 float8_variance - ));
+DATA(insert OID = 1831 (  float8_variance  PGUID 12 f t t t 1 f 701 "1022" 100 0 0 100 float8_variance - _null_ ));
 DESCR("VARIANCE aggregate final function");
-DATA(insert OID = 1832 (  float8_stddev    PGUID 12 f t t t 1 f 701 "1022" 100 0 0 100 float8_stddev - ));
+DATA(insert OID = 1832 (  float8_stddev    PGUID 12 f t t t 1 f 701 "1022" 100 0 0 100 float8_stddev - _null_ ));
 DESCR("STDDEV aggregate final function");
-DATA(insert OID = 1833 (  numeric_accum    PGUID 12 f t t t 2 f 1231 "1231 1700" 100 0 0 100  numeric_accum - ));
+DATA(insert OID = 1833 (  numeric_accum    PGUID 12 f t t t 2 f 1231 "1231 1700" 100 0 0 100  numeric_accum - _null_ ));
 DESCR("aggregate transition function");
-DATA(insert OID = 1834 (  int2_accum      PGUID 12 f t t t 2 f 1231 "1231 21" 100 0 0 100      int2_accum - ));
+DATA(insert OID = 1834 (  int2_accum      PGUID 12 f t t t 2 f 1231 "1231 21" 100 0 0 100      int2_accum - _null_ ));
 DESCR("aggregate transition function");
-DATA(insert OID = 1835 (  int4_accum      PGUID 12 f t t t 2 f 1231 "1231 23" 100 0 0 100      int4_accum - ));
+DATA(insert OID = 1835 (  int4_accum      PGUID 12 f t t t 2 f 1231 "1231 23" 100 0 0 100      int4_accum - _null_ ));
 DESCR("aggregate transition function");
-DATA(insert OID = 1836 (  int8_accum      PGUID 12 f t t t 2 f 1231 "1231 20" 100 0 0 100      int8_accum - ));
+DATA(insert OID = 1836 (  int8_accum      PGUID 12 f t t t 2 f 1231 "1231 20" 100 0 0 100      int8_accum - _null_ ));
 DESCR("aggregate transition function");
-DATA(insert OID = 1837 (  numeric_avg     PGUID 12 f t t t 1 f 1700 "1231" 100 0 0 100  numeric_avg - ));
+DATA(insert OID = 1837 (  numeric_avg     PGUID 12 f t t t 1 f 1700 "1231" 100 0 0 100  numeric_avg - _null_ ));
 DESCR("AVG aggregate final function");
-DATA(insert OID = 1838 (  numeric_variance PGUID 12 f t t t 1 f 1700 "1231" 100 0 0 100  numeric_variance - ));
+DATA(insert OID = 1838 (  numeric_variance PGUID 12 f t t t 1 f 1700 "1231" 100 0 0 100  numeric_variance - _null_ ));
 DESCR("VARIANCE aggregate final function");
-DATA(insert OID = 1839 (  numeric_stddev   PGUID 12 f t t t 1 f 1700 "1231" 100 0 0 100  numeric_stddev - ));
+DATA(insert OID = 1839 (  numeric_stddev   PGUID 12 f t t t 1 f 1700 "1231" 100 0 0 100  numeric_stddev - _null_ ));
 DESCR("STDDEV aggregate final function");
-DATA(insert OID = 1840 (  int2_sum                PGUID 12 f t t f 2 f 20 "20 21" 100 0 0 100  int2_sum - ));
+DATA(insert OID = 1840 (  int2_sum                PGUID 12 f t t f 2 f 20 "20 21" 100 0 0 100  int2_sum - _null_ ));
 DESCR("SUM(int2) transition function");
-DATA(insert OID = 1841 (  int4_sum                PGUID 12 f t t f 2 f 20 "20 23" 100 0 0 100  int4_sum - ));
+DATA(insert OID = 1841 (  int4_sum                PGUID 12 f t t f 2 f 20 "20 23" 100 0 0 100  int4_sum - _null_ ));
 DESCR("SUM(int4) transition function");
-DATA(insert OID = 1842 (  int8_sum                PGUID 12 f t t f 2 f 1700 "1700 20" 100 0 0 100      int8_sum - ));
+DATA(insert OID = 1842 (  int8_sum                PGUID 12 f t t f 2 f 1700 "1700 20" 100 0 0 100      int8_sum - _null_ ));
 DESCR("SUM(int8) transition function");
-DATA(insert OID = 1843 (  interval_accum   PGUID 12 f t t t 2 f 1187 "1187 1186" 100 0 0 100  interval_accum - ));
+DATA(insert OID = 1843 (  interval_accum   PGUID 12 f t t t 2 f 1187 "1187 1186" 100 0 0 100  interval_accum - _null_ ));
 DESCR("aggregate transition function");
-DATA(insert OID = 1844 (  interval_avg    PGUID 12 f t t t 1 f 1186 "1187" 100 0 0 100  interval_avg - ));
+DATA(insert OID = 1844 (  interval_avg    PGUID 12 f t t t 1 f 1186 "1187" 100 0 0 100  interval_avg - _null_ ));
 DESCR("AVG aggregate final function");
-DATA(insert OID = 1962 (  int2_avg_accum   PGUID 12 f t t t 2 f 1016 "1016 21" 100 0 0 100     int2_avg_accum - ));
+DATA(insert OID = 1962 (  int2_avg_accum   PGUID 12 f t t t 2 f 1016 "1016 21" 100 0 0 100     int2_avg_accum - _null_ ));
 DESCR("AVG(int2) transition function");
-DATA(insert OID = 1963 (  int4_avg_accum   PGUID 12 f t t t 2 f 1016 "1016 23" 100 0 0 100     int4_avg_accum - ));
+DATA(insert OID = 1963 (  int4_avg_accum   PGUID 12 f t t t 2 f 1016 "1016 23" 100 0 0 100     int4_avg_accum - _null_ ));
 DESCR("AVG(int4) transition function");
-DATA(insert OID = 1964 (  int8_avg                PGUID 12 f t t t 1 f 1700 "1016" 100 0 0 100  int8_avg - ));
+DATA(insert OID = 1964 (  int8_avg                PGUID 12 f t t t 1 f 1700 "1016" 100 0 0 100  int8_avg - _null_ ));
 DESCR("AVG(int) aggregate final function");
 
 /* To ASCII conversion */
-DATA(insert OID = 1845 ( to_ascii      PGUID 12 f t t t 1 f    25 "25" 100 0 0 100  to_ascii_default - ));
+DATA(insert OID = 1845 ( to_ascii      PGUID 12 f t t t 1 f    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      PGUID 12 f t t t 2 f    25 "25 23" 100 0 0 100  to_ascii_enc - ));
+DATA(insert OID = 1846 ( to_ascii      PGUID 12 f t t t 2 f    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      PGUID 12 f t t t 2 f    25 "25 19" 100 0 0 100  to_ascii_encname - ));
+DATA(insert OID = 1847 ( to_ascii      PGUID 12 f t t t 2 f    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              PGUID 12 f t t t 2 f 1083 "1186 1083" 100 0 0 100  interval_pl_time - ));
+DATA(insert OID = 1848 ( interval_pl_time              PGUID 12 f t t t 2 f 1083 "1186 1083" 100 0 0 100  interval_pl_time - _null_ ));
 DESCR("plus");
 
-DATA(insert OID = 1850 (  int28eq                 PGUID 12 f t t t 2 f 16 "21 20" 100 0 0 100  int28eq - ));
+DATA(insert OID = 1850 (  int28eq                 PGUID 12 f t t t 2 f 16 "21 20" 100 0 0 100  int28eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1851 (  int28ne                 PGUID 12 f t t t 2 f 16 "21 20" 100 0 0 100  int28ne - ));
+DATA(insert OID = 1851 (  int28ne                 PGUID 12 f t t t 2 f 16 "21 20" 100 0 0 100  int28ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1852 (  int28lt                 PGUID 12 f t t t 2 f 16 "21 20" 100 0 0 100  int28lt - ));
+DATA(insert OID = 1852 (  int28lt                 PGUID 12 f t t t 2 f 16 "21 20" 100 0 0 100  int28lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1853 (  int28gt                 PGUID 12 f t t t 2 f 16 "21 20" 100 0 0 100  int28gt - ));
+DATA(insert OID = 1853 (  int28gt                 PGUID 12 f t t t 2 f 16 "21 20" 100 0 0 100  int28gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1854 (  int28le                 PGUID 12 f t t t 2 f 16 "21 20" 100 0 0 100  int28le - ));
+DATA(insert OID = 1854 (  int28le                 PGUID 12 f t t t 2 f 16 "21 20" 100 0 0 100  int28le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1855 (  int28ge                 PGUID 12 f t t t 2 f 16 "21 20" 100 0 0 100  int28ge - ));
+DATA(insert OID = 1855 (  int28ge                 PGUID 12 f t t t 2 f 16 "21 20" 100 0 0 100  int28ge - _null_ ));
 DESCR("greater-than-or-equal");
 
-DATA(insert OID = 1856 (  int82eq                 PGUID 12 f t t t 2 f 16 "20 21" 100 0 0 100  int82eq - ));
+DATA(insert OID = 1856 (  int82eq                 PGUID 12 f t t t 2 f 16 "20 21" 100 0 0 100  int82eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1857 (  int82ne                 PGUID 12 f t t t 2 f 16 "20 21" 100 0 0 100  int82ne - ));
+DATA(insert OID = 1857 (  int82ne                 PGUID 12 f t t t 2 f 16 "20 21" 100 0 0 100  int82ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1858 (  int82lt                 PGUID 12 f t t t 2 f 16 "20 21" 100 0 0 100  int82lt - ));
+DATA(insert OID = 1858 (  int82lt                 PGUID 12 f t t t 2 f 16 "20 21" 100 0 0 100  int82lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1859 (  int82gt                 PGUID 12 f t t t 2 f 16 "20 21" 100 0 0 100  int82gt - ));
+DATA(insert OID = 1859 (  int82gt                 PGUID 12 f t t t 2 f 16 "20 21" 100 0 0 100  int82gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1860 (  int82le                 PGUID 12 f t t t 2 f 16 "20 21" 100 0 0 100  int82le - ));
+DATA(insert OID = 1860 (  int82le                 PGUID 12 f t t t 2 f 16 "20 21" 100 0 0 100  int82le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1861 (  int82ge                 PGUID 12 f t t t 2 f 16 "20 21" 100 0 0 100  int82ge - ));
+DATA(insert OID = 1861 (  int82ge                 PGUID 12 f t t t 2 f 16 "20 21" 100 0 0 100  int82ge - _null_ ));
 DESCR("greater-than-or-equal");
 
-DATA(insert OID = 1892 (  int2and                 PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2and - ));
+DATA(insert OID = 1892 (  int2and                 PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2and - _null_ ));
 DESCR("binary and");
-DATA(insert OID = 1893 (  int2or                  PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2or - ));
+DATA(insert OID = 1893 (  int2or                  PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2or - _null_ ));
 DESCR("binary or");
-DATA(insert OID = 1894 (  int2xor                 PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2xor - ));
+DATA(insert OID = 1894 (  int2xor                 PGUID 12 f t t t 2 f 21 "21 21" 100 0 0 100  int2xor - _null_ ));
 DESCR("binary xor");
-DATA(insert OID = 1895 (  int2not                 PGUID 12 f t t t 1 f 21 "21" 100 0 0 100  int2not - ));
+DATA(insert OID = 1895 (  int2not                 PGUID 12 f t t t 1 f 21 "21" 100 0 0 100  int2not - _null_ ));
 DESCR("binary not");
-DATA(insert OID = 1896 (  int2shl                 PGUID 12 f t t t 2 f 21 "21 23" 100 0 0 100  int2shl - ));
+DATA(insert OID = 1896 (  int2shl                 PGUID 12 f t t t 2 f 21 "21 23" 100 0 0 100  int2shl - _null_ ));
 DESCR("binary shift left");
-DATA(insert OID = 1897 (  int2shr                 PGUID 12 f t t t 2 f 21 "21 23" 100 0 0 100  int2shr - ));
+DATA(insert OID = 1897 (  int2shr                 PGUID 12 f t t t 2 f 21 "21 23" 100 0 0 100  int2shr - _null_ ));
 DESCR("binary shift right");
 
-DATA(insert OID = 1898 (  int4and                 PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4and - ));
+DATA(insert OID = 1898 (  int4and                 PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4and - _null_ ));
 DESCR("binary and");
-DATA(insert OID = 1899 (  int4or                  PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4or - ));
+DATA(insert OID = 1899 (  int4or                  PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4or - _null_ ));
 DESCR("binary or");
-DATA(insert OID = 1900 (  int4xor                 PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4xor - ));
+DATA(insert OID = 1900 (  int4xor                 PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4xor - _null_ ));
 DESCR("binary xor");
-DATA(insert OID = 1901 (  int4not                 PGUID 12 f t t t 1 f 23 "23" 100 0 0 100  int4not - ));
+DATA(insert OID = 1901 (  int4not                 PGUID 12 f t t t 1 f 23 "23" 100 0 0 100  int4not - _null_ ));
 DESCR("binary not");
-DATA(insert OID = 1902 (  int4shl                 PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4shl - ));
+DATA(insert OID = 1902 (  int4shl                 PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4shl - _null_ ));
 DESCR("binary shift left");
-DATA(insert OID = 1903 (  int4shr                 PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4shr - ));
+DATA(insert OID = 1903 (  int4shr                 PGUID 12 f t t t 2 f 23 "23 23" 100 0 0 100  int4shr - _null_ ));
 DESCR("binary shift right");
 
-DATA(insert OID = 1904 (  int8and                 PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8and - ));
+DATA(insert OID = 1904 (  int8and                 PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8and - _null_ ));
 DESCR("binary and");
-DATA(insert OID = 1905 (  int8or                  PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8or - ));
+DATA(insert OID = 1905 (  int8or                  PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8or - _null_ ));
 DESCR("binary or");
-DATA(insert OID = 1906 (  int8xor                 PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8xor - ));
+DATA(insert OID = 1906 (  int8xor                 PGUID 12 f t t t 2 f 20 "20 20" 100 0 0 100  int8xor - _null_ ));
 DESCR("binary xor");
-DATA(insert OID = 1907 (  int8not                 PGUID 12 f t t t 1 f 20 "20" 100 0 0 100  int8not - ));
+DATA(insert OID = 1907 (  int8not                 PGUID 12 f t t t 1 f 20 "20" 100 0 0 100  int8not - _null_ ));
 DESCR("binary not");
-DATA(insert OID = 1908 (  int8shl                 PGUID 12 f t t t 2 f 20 "20 23" 100 0 0 100  int8shl - ));
+DATA(insert OID = 1908 (  int8shl                 PGUID 12 f t t t 2 f 20 "20 23" 100 0 0 100  int8shl - _null_ ));
 DESCR("binary shift left");
-DATA(insert OID = 1909 (  int8shr                 PGUID 12 f t t t 2 f 20 "20 23" 100 0 0 100  int8shr - ));
+DATA(insert OID = 1909 (  int8shr                 PGUID 12 f t t t 2 f 20 "20 23" 100 0 0 100  int8shr - _null_ ));
 DESCR("binary shift right");
 
-DATA(insert OID = 1910 (  int8up                  PGUID 12 f t t t 1 f 20      "20"   100 0 0 100      int8up - ));
+DATA(insert OID = 1910 (  int8up                  PGUID 12 f t t t 1 f 20      "20"   100 0 0 100      int8up - _null_ ));
 DESCR("unary plus");
-DATA(insert OID = 1911 (  int2up                  PGUID 12 f t t t 1 f 21      "21"   100 0 0 100      int2up - ));
+DATA(insert OID = 1911 (  int2up                  PGUID 12 f t t t 1 f 21      "21"   100 0 0 100      int2up - _null_ ));
 DESCR("unary plus");
-DATA(insert OID = 1912 (  int4up                  PGUID 12 f t t t 1 f 23      "23"   100 0 0 100      int4up - ));
+DATA(insert OID = 1912 (  int4up                  PGUID 12 f t t t 1 f 23      "23"   100 0 0 100      int4up - _null_ ));
 DESCR("unary plus");
-DATA(insert OID = 1913 (  float4up                PGUID 12 f t t t 1 f 700 "700"  100 0 0 100  float4up - ));
+DATA(insert OID = 1913 (  float4up                PGUID 12 f t t t 1 f 700 "700"  100 0 0 100  float4up - _null_ ));
 DESCR("unary plus");
-DATA(insert OID = 1914 (  float8up                PGUID 12 f t t t 1 f 701 "701"  100 0 0 100  float8up - ));
+DATA(insert OID = 1914 (  float8up                PGUID 12 f t t t 1 f 701 "701"  100 0 0 100  float8up - _null_ ));
 DESCR("unary plus");
-DATA(insert OID = 1915 (  numeric_uplus    PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_uplus - ));
+DATA(insert OID = 1915 (  numeric_uplus    PGUID 12 f t t t 1 f 1700 "1700" 100 0 0 100  numeric_uplus - _null_ ));
 DESCR("unary plus");
 
-DATA(insert OID = 1922 (  has_table_privilege             PGUID 12 f t f t 3 f 16 "19 19 25" 100 0 0 100  has_table_privilege_name_name - ));
+DATA(insert OID = 1922 (  has_table_privilege             PGUID 12 f t f t 3 f 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             PGUID 12 f t f t 3 f 16 "19 26 25" 100 0 0 100  has_table_privilege_name_id - ));
+DATA(insert OID = 1923 (  has_table_privilege             PGUID 12 f t f t 3 f 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             PGUID 12 f t f t 3 f 16 "23 19 25" 100 0 0 100  has_table_privilege_id_name - ));
+DATA(insert OID = 1924 (  has_table_privilege             PGUID 12 f t f t 3 f 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             PGUID 12 f t f t 3 f 16 "23 26 25" 100 0 0 100  has_table_privilege_id_id - ));
+DATA(insert OID = 1925 (  has_table_privilege             PGUID 12 f t f t 3 f 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             PGUID 12 f t f t 2 f 16 "19 25" 100 0 0 100  has_table_privilege_name - ));
+DATA(insert OID = 1926 (  has_table_privilege             PGUID 12 f t f t 2 f 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             PGUID 12 f t f t 2 f 16 "26 25" 100 0 0 100  has_table_privilege_id - ));
+DATA(insert OID = 1927 (  has_table_privilege             PGUID 12 f t f t 2 f 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                 PGUID 12 f t f t 1 f 20 "26" 100 0 0 100  pg_stat_get_numscans - ));
+DATA(insert OID = 1928 (  pg_stat_get_numscans                 PGUID 12 f t f t 1 f 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  PGUID 12 f t f t 1 f 20 "26" 100 0 0 100  pg_stat_get_tuples_returned - ));
+DATA(insert OID = 1929 (  pg_stat_get_tuples_returned  PGUID 12 f t f t 1 f 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   PGUID 12 f t f t 1 f 20 "26" 100 0 0 100  pg_stat_get_tuples_fetched - ));
+DATA(insert OID = 1930 (  pg_stat_get_tuples_fetched   PGUID 12 f t f t 1 f 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  PGUID 12 f t f t 1 f 20 "26" 100 0 0 100  pg_stat_get_tuples_inserted - ));
+DATA(insert OID = 1931 (  pg_stat_get_tuples_inserted  PGUID 12 f t f t 1 f 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   PGUID 12 f t f t 1 f 20 "26" 100 0 0 100  pg_stat_get_tuples_updated - ));
+DATA(insert OID = 1932 (  pg_stat_get_tuples_updated   PGUID 12 f t f t 1 f 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   PGUID 12 f t f t 1 f 20 "26" 100 0 0 100  pg_stat_get_tuples_deleted - ));
+DATA(insert OID = 1933 (  pg_stat_get_tuples_deleted   PGUID 12 f t f t 1 f 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   PGUID 12 f t f t 1 f 20 "26" 100 0 0 100  pg_stat_get_blocks_fetched - ));
+DATA(insert OID = 1934 (  pg_stat_get_blocks_fetched   PGUID 12 f t f t 1 f 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               PGUID 12 f t f t 1 f 20 "26" 100 0 0 100  pg_stat_get_blocks_hit - ));
+DATA(insert OID = 1935 (  pg_stat_get_blocks_hit               PGUID 12 f t f t 1 f 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            PGUID 12 f t f t 0 t 23 "" 100 0 0 100  pg_stat_get_backend_idset - ));
+DATA(insert OID = 1936 (  pg_stat_get_backend_idset            PGUID 12 f t f t 0 t 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              PGUID 12 f t f t 1 f 23 "23" 100 0 0 100  pg_stat_get_backend_pid - ));
+DATA(insert OID = 1937 (  pg_stat_get_backend_pid              PGUID 12 f t f t 1 f 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             PGUID 12 f t f t 1 f 26 "23" 100 0 0 100  pg_stat_get_backend_dbid - ));
+DATA(insert OID = 1938 (  pg_stat_get_backend_dbid             PGUID 12 f t f t 1 f 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   PGUID 12 f t f t 1 f 26 "23" 100 0 0 100  pg_stat_get_backend_userid - ));
+DATA(insert OID = 1939 (  pg_stat_get_backend_userid   PGUID 12 f t f t 1 f 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 PGUID 12 f t f t 1 f 25 "23" 100 0 0 100  pg_stat_get_backend_activity - ));
+DATA(insert OID = 1940 (  pg_stat_get_backend_activity PGUID 12 f t f t 1 f 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   PGUID 12 f t f t 1 f 23 "26" 100 0 0 100  pg_stat_get_db_numbackends - ));
+DATA(insert OID = 1941 (  pg_stat_get_db_numbackends   PGUID 12 f t f t 1 f 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   PGUID 12 f t f t 1 f 20 "26" 100 0 0 100  pg_stat_get_db_xact_commit - ));
+DATA(insert OID = 1942 (  pg_stat_get_db_xact_commit   PGUID 12 f t f t 1 f 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 PGUID 12 f t f t 1 f 20 "26" 100 0 0 100  pg_stat_get_db_xact_rollback - ));
+DATA(insert OID = 1943 (  pg_stat_get_db_xact_rollback PGUID 12 f t f t 1 f 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 PGUID 12 f t f t 1 f 20 "26" 100 0 0 100  pg_stat_get_db_blocks_fetched - ));
+DATA(insert OID = 1944 (  pg_stat_get_db_blocks_fetched PGUID 12 f t f t 1 f 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            PGUID 12 f t f t 1 f 20 "26" 100 0 0 100  pg_stat_get_db_blocks_hit - ));
+DATA(insert OID = 1945 (  pg_stat_get_db_blocks_hit            PGUID 12 f t f t 1 f 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                                               PGUID 12 f t t t 2 f 25 "17 25" 100 0 0 100  binary_encode - ));
+DATA(insert OID = 1946 (  encode                                               PGUID 12 f t t t 2 f 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                                               PGUID 12 f t t t 2 f 17 "25 25" 100 0 0 100  binary_decode - ));
+DATA(insert OID = 1947 (  decode                                               PGUID 12 f t t t 2 f 17 "25 25" 100 0 0 100  binary_decode - _null_ ));
 DESCR("Convert ascii-encoded text string into bytea value");
 
-DATA(insert OID = 1948 (  byteaeq                 PGUID 12 f t t t 2 f 16 "17 17" 100 0 0 100  byteaeq - ));
+DATA(insert OID = 1948 (  byteaeq                 PGUID 12 f t t t 2 f 16 "17 17" 100 0 0 100  byteaeq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 1949 (  bytealt                 PGUID 12 f t t t 2 f 16 "17 17" 100 0 0 100  bytealt - ));
+DATA(insert OID = 1949 (  bytealt                 PGUID 12 f t t t 2 f 16 "17 17" 100 0 0 100  bytealt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 1950 (  byteale                 PGUID 12 f t t t 2 f 16 "17 17" 100 0 0 100  byteale - ));
+DATA(insert OID = 1950 (  byteale                 PGUID 12 f t t t 2 f 16 "17 17" 100 0 0 100  byteale - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 1951 (  byteagt                 PGUID 12 f t t t 2 f 16 "17 17" 100 0 0 100  byteagt - ));
+DATA(insert OID = 1951 (  byteagt                 PGUID 12 f t t t 2 f 16 "17 17" 100 0 0 100  byteagt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 1952 (  byteage                 PGUID 12 f t t t 2 f 16 "17 17" 100 0 0 100  byteage - ));
+DATA(insert OID = 1952 (  byteage                 PGUID 12 f t t t 2 f 16 "17 17" 100 0 0 100  byteage - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 1953 (  byteane                 PGUID 12 f t t t 2 f 16 "17 17" 100 0 0 100  byteane - ));
+DATA(insert OID = 1953 (  byteane                 PGUID 12 f t t t 2 f 16 "17 17" 100 0 0 100  byteane - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 1954 (  byteacmp                PGUID 12 f t t t 2 f 23 "17 17" 100 0 0 100  byteacmp - ));
+DATA(insert OID = 1954 (  byteacmp                PGUID 12 f t t t 2 f 23 "17 17" 100 0 0 100  byteacmp - _null_ ));
 DESCR("less-equal-greater");
 
-DATA(insert OID = 1961 (  timestamp               PGUID 12 f t t t 2 f 1114 "1114 23" 100 0 0 100      timestamp_scale - ));
+DATA(insert OID = 1961 (  timestamp               PGUID 12 f t t t 2 f 1114 "1114 23" 100 0 0 100      timestamp_scale - _null_ ));
 DESCR("adjust time precision");
 
-DATA(insert OID = 1965 (  oidlarger               PGUID 12 f t t t 2 f 26 "26 26" 100 0 0 100  oidlarger - ));
+DATA(insert OID = 1965 (  oidlarger               PGUID 12 f t t t 2 f 26 "26 26" 100 0 0 100  oidlarger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 1966 (  oidsmaller      PGUID 12 f t t t 2 f 26 "26 26" 100 0 0 100  oidsmaller - ));
+DATA(insert OID = 1966 (  oidsmaller      PGUID 12 f t t t 2 f 26 "26 26" 100 0 0 100  oidsmaller - _null_ ));
 DESCR("smaller of two");
 
-DATA(insert OID = 1967 (  timestamptz     PGUID 12 f t t t 2 f 1184 "1184 23" 100 0 0 100      timestamptz_scale - ));
+DATA(insert OID = 1967 (  timestamptz     PGUID 12 f t t t 2 f 1184 "1184 23" 100 0 0 100      timestamptz_scale - _null_ ));
 DESCR("adjust time precision");
-DATA(insert OID = 1968 (  time                    PGUID 12 f t t t 2 f 1083 "1083 23" 100 0 0 100      time_scale - ));
+DATA(insert OID = 1968 (  time                    PGUID 12 f t t t 2 f 1083 "1083 23" 100 0 0 100      time_scale - _null_ ));
 DESCR("adjust time precision");
-DATA(insert OID = 1969 (  timetz                  PGUID 12 f t t t 2 f 1266 "1266 23" 100 0 0 100      timetz_scale - ));
+DATA(insert OID = 1969 (  timetz                  PGUID 12 f t t t 2 f 1266 "1266 23" 100 0 0 100      timetz_scale - _null_ ));
 DESCR("adjust time with time zone precision");
 
-DATA(insert OID = 2005 (  bytealike               PGUID 12 f t t t 2 f 16 "17 17" 100 0 0 100 bytealike - ));
+DATA(insert OID = 2005 (  bytealike               PGUID 12 f t t t 2 f 16 "17 17" 100 0 0 100 bytealike - _null_ ));
 DESCR("matches LIKE expression");
-DATA(insert OID = 2006 (  byteanlike      PGUID 12 f t t t 2 f 16 "17 17" 100 0 0 100 byteanlike - ));
+DATA(insert OID = 2006 (  byteanlike      PGUID 12 f t t t 2 f 16 "17 17" 100 0 0 100 byteanlike - _null_ ));
 DESCR("does not match LIKE expression");
-DATA(insert OID = 2007 (  like                    PGUID 12 f t t t 2 f 16 "17 17" 100 0 0 100  bytealike - ));
+DATA(insert OID = 2007 (  like                    PGUID 12 f t t t 2 f 16 "17 17" 100 0 0 100  bytealike - _null_ ));
 DESCR("matches LIKE expression");
-DATA(insert OID = 2008 (  notlike                 PGUID 12 f t t t 2 f 16 "17 17" 100 0 0 100  byteanlike - ));
+DATA(insert OID = 2008 (  notlike                 PGUID 12 f t t t 2 f 16 "17 17" 100 0 0 100  byteanlike - _null_ ));
 DESCR("does not match LIKE expression");
-DATA(insert OID = 2009 (  like_escape     PGUID 12 f t t t 2 f 17 "17 17" 100 0 0 100 like_escape_bytea - ));
+DATA(insert OID = 2009 (  like_escape     PGUID 12 f t t t 2 f 17 "17 17" 100 0 0 100 like_escape_bytea - _null_ ));
 DESCR("convert match pattern to use backslash escapes");
-DATA(insert OID = 2010 (  length                  PGUID 12 f t t t 1 f 23 "17" 100 0 0 100  byteaoctetlen - ));
+DATA(insert OID = 2010 (  length                  PGUID 12 f t t t 1 f 23 "17" 100 0 0 100  byteaoctetlen - _null_ ));
 DESCR("octet length");
-DATA(insert OID = 2011 (  byteacat                PGUID 12 f t t t 2 f 17 "17 17" 100 0 0 100  byteacat - ));
+DATA(insert OID = 2011 (  byteacat                PGUID 12 f t t t 2 f 17 "17 17" 100 0 0 100  byteacat - _null_ ));
 DESCR("concatenate");
-DATA(insert OID = 2012 (  substring               PGUID 12 f t t t 3 f 17 "17 23 23" 100 0 0 100  bytea_substr - ));
+DATA(insert OID = 2012 (  substring               PGUID 12 f t t t 3 f 17 "17 23 23" 100 0 0 100  bytea_substr - _null_ ));
 DESCR("return portion of string");
-DATA(insert OID = 2013 (  substring               PGUID 14 f t t t 2 f 17 "17 23" 100 0 0 100  "select substring($1, $2, -1)" - ));
+DATA(insert OID = 2013 (  substring               PGUID 14 f t t t 2 f 17 "17 23" 100 0 0 100  "select substring($1, $2, -1)" - _null_ ));
 DESCR("return portion of string");
-DATA(insert OID = 2014 (  position                PGUID 12 f t t t 2 f 23 "17 17" 100 0 0 100  byteapos - ));
+DATA(insert OID = 2014 (  position                PGUID 12 f t t t 2 f 23 "17 17" 100 0 0 100  byteapos - _null_ ));
 DESCR("return position of substring");
-DATA(insert OID = 2015 (  btrim                           PGUID 12 f t t t 2 f 17 "17 17" 100 0 0 100  byteatrim - ));
+DATA(insert OID = 2015 (  btrim                           PGUID 12 f t t t 2 f 17 "17 17" 100 0 0 100  byteatrim - _null_ ));
 DESCR("trim both ends of string");
 
-DATA(insert OID = 2020 (  date_trunc           PGUID 12 f t t t 2 f 1114 "25 1114" 100 0 0 100  timestamp_trunc - ));
+DATA(insert OID = 2020 (  date_trunc           PGUID 12 f t t t 2 f 1114 "25 1114" 100 0 0 100  timestamp_trunc - _null_ ));
 DESCR("truncate timestamp to specified units");
-DATA(insert OID = 2021 (  date_part                    PGUID 12 f t t t 2 f  701 "25 1114" 100 0 0 100  timestamp_part - ));
+DATA(insert OID = 2021 (  date_part                    PGUID 12 f t t t 2 f  701 "25 1114" 100 0 0 100  timestamp_part - _null_ ));
 DESCR("extract field from timestamp");
-DATA(insert OID = 2022 (  timestamp                    PGUID 12 f t f t 1 f 1114 "25" 100 0 0 100      text_timestamp - ));
+DATA(insert OID = 2022 (  timestamp                    PGUID 12 f t f t 1 f 1114 "25" 100 0 0 100      text_timestamp - _null_ ));
 DESCR("convert text to timestamp");
-DATA(insert OID = 2023 (  timestamp                    PGUID 12 f t f t 1 f 1114 "702" 100 0 0 100  abstime_timestamp - ));
+DATA(insert OID = 2023 (  timestamp                    PGUID 12 f t f t 1 f 1114 "702" 100 0 0 100  abstime_timestamp - _null_ ));
 DESCR("convert abstime to timestamp");
-DATA(insert OID = 2024 (  timestamp                    PGUID 12 f t t t 1 f 1114 "1082" 100 0 0 100  date_timestamp - ));
+DATA(insert OID = 2024 (  timestamp                    PGUID 12 f t t t 1 f 1114 "1082" 100 0 0 100  date_timestamp - _null_ ));
 DESCR("convert date to timestamp");
-DATA(insert OID = 2025 (  timestamp                    PGUID 12 f t t t 2 f 1114 "1082 1083" 100 0 0 100  datetime_timestamp - ));
+DATA(insert OID = 2025 (  timestamp                    PGUID 12 f t t t 2 f 1114 "1082 1083" 100 0 0 100  datetime_timestamp - _null_ ));
 DESCR("convert date and time to timestamp");
-DATA(insert OID = 2026 (  timestamp                    PGUID 14 f t t t 1 f 1114 "1114" 100 0 0 100  "select $1" - ));
+DATA(insert OID = 2026 (  timestamp                    PGUID 14 f t t t 1 f 1114 "1114" 100 0 0 100  "select $1" - _null_ ));
 DESCR("convert (noop)");
-DATA(insert OID = 2027 (  timestamp                    PGUID 12 f t f t 1 f 1114 "1184" 100 0 0 100  timestamptz_timestamp - ));
+DATA(insert OID = 2027 (  timestamp                    PGUID 12 f t f t 1 f 1114 "1184" 100 0 0 100  timestamptz_timestamp - _null_ ));
 DESCR("convert date and time with time zone to timestamp");
-DATA(insert OID = 2028 (  timestamptz          PGUID 12 f t f t 1 f 1184 "1114" 100 0 0 100  timestamp_timestamptz - ));
+DATA(insert OID = 2028 (  timestamptz          PGUID 12 f t f t 1 f 1184 "1114" 100 0 0 100  timestamp_timestamptz - _null_ ));
 DESCR("convert date and time with time zone to timestamp");
-DATA(insert OID = 2029 (  date                         PGUID 12 f t t t 1 f 1082 "1114" 100 0 0 100  timestamp_date - ));
+DATA(insert OID = 2029 (  date                         PGUID 12 f t t t 1 f 1082 "1114" 100 0 0 100  timestamp_date - _null_ ));
 DESCR("convert timestamp to date");
-DATA(insert OID = 2030 (  abstime                      PGUID 12 f t f t 1 f  702 "1114" 100 0 0 100  timestamp_abstime - ));
+DATA(insert OID = 2030 (  abstime                      PGUID 12 f t f t 1 f  702 "1114" 100 0 0 100  timestamp_abstime - _null_ ));
 DESCR("convert timestamp to abstime");
-DATA(insert OID = 2031 (  timestamp_mi         PGUID 12 f t t t 2 f 1186 "1114 1114" 100 0 0 100  timestamp_mi - ));
+DATA(insert OID = 2031 (  timestamp_mi         PGUID 12 f t t t 2 f 1186 "1114 1114" 100 0 0 100  timestamp_mi - _null_ ));
 DESCR("subtract");
-DATA(insert OID = 2032 (  timestamp_pl_span PGUID 12 f t t t 2 f 1114 "1114 1186" 100 0 0 100  timestamp_pl_span - ));
+DATA(insert OID = 2032 (  timestamp_pl_span PGUID 12 f t t t 2 f 1114 "1114 1186" 100 0 0 100  timestamp_pl_span - _null_ ));
 DESCR("plus");
-DATA(insert OID = 2033 (  timestamp_mi_span PGUID 12 f t t t 2 f 1114 "1114 1186" 100 0 0 100  timestamp_mi_span - ));
+DATA(insert OID = 2033 (  timestamp_mi_span PGUID 12 f t t t 2 f 1114 "1114 1186" 100 0 0 100  timestamp_mi_span - _null_ ));
 DESCR("minus");
-DATA(insert OID = 2034 (  text                         PGUID 12 f t f t 1 f   25 "1114" 100 0 0 100  timestamp_text - ));
+DATA(insert OID = 2034 (  text                         PGUID 12 f t f t 1 f   25 "1114" 100 0 0 100  timestamp_text - _null_ ));
 DESCR("convert timestamp to text");
-DATA(insert OID = 2035 (  timestamp_smaller PGUID 12 f t t t 2 f 1114 "1114 1114" 100 0 0 100  timestamp_smaller - ));
+DATA(insert OID = 2035 (  timestamp_smaller PGUID 12 f t t t 2 f 1114 "1114 1114" 100 0 0 100  timestamp_smaller - _null_ ));
 DESCR("smaller of two");
-DATA(insert OID = 2036 (  timestamp_larger     PGUID 12 f t t t 2 f 1114 "1114 1114" 100 0 0 100  timestamp_larger - ));
+DATA(insert OID = 2036 (  timestamp_larger     PGUID 12 f t t t 2 f 1114 "1114 1114" 100 0 0 100  timestamp_larger - _null_ ));
 DESCR("larger of two");
-DATA(insert OID = 2037 (  timetz                       PGUID 12 f t f t 2 f 1266 "25 1266" 100 0 0 100  timetz_zone - ));
+DATA(insert OID = 2037 (  timetz                       PGUID 12 f t f t 2 f 1266 "25 1266" 100 0 0 100  timetz_zone - _null_ ));
 DESCR("time with time zone");
-DATA(insert OID = 2038 (  timetz                       PGUID 12 f t t t 2 f 1266 "1186 1266" 100 0 0 100  timetz_izone - ));
+DATA(insert OID = 2038 (  timetz                       PGUID 12 f t t t 2 f 1266 "1186 1266" 100 0 0 100  timetz_izone - _null_ ));
 DESCR("time with time zone");
-DATA(insert OID = 2041 ( overlaps                      PGUID 12 f t t f 4 f 16 "1114 1114 1114 1114" 100 0 0 100  overlaps_timestamp - ));
+DATA(insert OID = 2041 ( overlaps                      PGUID 12 f t t f 4 f 16 "1114 1114 1114 1114" 100 0 0 100  overlaps_timestamp - _null_ ));
 DESCR("SQL92 interval comparison");
-DATA(insert OID = 2042 ( overlaps                      PGUID 14 f t t f 4 f 16 "1114 1186 1114 1186" 100 0 0 100  "select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" - ));
+DATA(insert OID = 2042 ( overlaps                      PGUID 14 f t t f 4 f 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                      PGUID 14 f t t f 4 f 16 "1114 1114 1114 1186" 100 0 0 100  "select ($1, $2) overlaps ($3, ($3 + $4))" - ));
+DATA(insert OID = 2043 ( overlaps                      PGUID 14 f t t f 4 f 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                      PGUID 14 f t t f 4 f 16 "1114 1186 1114 1114" 100 0 0 100  "select ($1, ($1 + $2)) overlaps ($3, $4)" - ));
+DATA(insert OID = 2044 ( overlaps                      PGUID 14 f t t f 4 f 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                PGUID 12 f t t t 2 f    23 "1114 1114" 100 0 0 100      timestamp_cmp - ));
+DATA(insert OID = 2045 (  timestamp_cmp                PGUID 12 f t t t 2 f    23 "1114 1114" 100 0 0 100      timestamp_cmp - _null_ ));
 DESCR("less-equal-greater");
-DATA(insert OID = 2046 (  time                         PGUID 12 f t t t 1 f 1083 "1266" 100 0 0 100  timetz_time - ));
+DATA(insert OID = 2046 (  time                         PGUID 12 f t t t 1 f 1083 "1266" 100 0 0 100  timetz_time - _null_ ));
 DESCR("convert time with time zone to time");
-DATA(insert OID = 2047 (  timetz                       PGUID 12 f t f t 1 f 1266 "1083" 100 0 0 100  time_timetz - ));
+DATA(insert OID = 2047 (  timetz                       PGUID 12 f t f t 1 f 1266 "1083" 100 0 0 100  time_timetz - _null_ ));
 DESCR("convert time to timetz");
-DATA(insert OID = 2048 (  isfinite                     PGUID 12 f t t t 1 f   16 "1114" 100 0 0 100  timestamp_finite - ));
+DATA(insert OID = 2048 (  isfinite                     PGUID 12 f t t t 1 f   16 "1114" 100 0 0 100  timestamp_finite - _null_ ));
 DESCR("boolean test");
-DATA(insert OID = 2049 ( to_char                       PGUID 12 f t f t 2 f    25 "1114 25" 100 0 0 100  timestamp_to_char - ));
+DATA(insert OID = 2049 ( to_char                       PGUID 12 f t f t 2 f    25 "1114 25" 100 0 0 100  timestamp_to_char - _null_ ));
 DESCR("format timestamp to text");
-DATA(insert OID = 2050 ( interval_mi_time      PGUID 14 f t t t 2 f 1083 "1186 1083" 100 0 0 100  "select $2 - $1" - ));
+DATA(insert OID = 2050 ( interval_mi_time      PGUID 14 f t t t 2 f 1083 "1186 1083" 100 0 0 100  "select $2 - $1" - _null_ ));
 DESCR("minus");
-DATA(insert OID = 2051 ( interval_mi_timetz PGUID 14 f t t t 2 f 1266 "1186 1266" 100 0 0 100  "select $2 - $1" - ));
+DATA(insert OID = 2051 ( interval_mi_timetz PGUID 14 f t t t 2 f 1266 "1186 1266" 100 0 0 100  "select $2 - $1" - _null_ ));
 DESCR("minus");
-DATA(insert OID = 2052 (  timestamp_eq         PGUID 12 f t t t 2 f 16 "1114 1114" 100 0 0 100  timestamp_eq - ));
+DATA(insert OID = 2052 (  timestamp_eq         PGUID 12 f t t t 2 f 16 "1114 1114" 100 0 0 100  timestamp_eq - _null_ ));
 DESCR("equal");
-DATA(insert OID = 2053 (  timestamp_ne         PGUID 12 f t t t 2 f 16 "1114 1114" 100 0 0 100  timestamp_ne - ));
+DATA(insert OID = 2053 (  timestamp_ne         PGUID 12 f t t t 2 f 16 "1114 1114" 100 0 0 100  timestamp_ne - _null_ ));
 DESCR("not equal");
-DATA(insert OID = 2054 (  timestamp_lt         PGUID 12 f t t t 2 f 16 "1114 1114" 100 0 0 100  timestamp_lt - ));
+DATA(insert OID = 2054 (  timestamp_lt         PGUID 12 f t t t 2 f 16 "1114 1114" 100 0 0 100  timestamp_lt - _null_ ));
 DESCR("less-than");
-DATA(insert OID = 2055 (  timestamp_le         PGUID 12 f t t t 2 f 16 "1114 1114" 100 0 0 100  timestamp_le - ));
+DATA(insert OID = 2055 (  timestamp_le         PGUID 12 f t t t 2 f 16 "1114 1114" 100 0 0 100  timestamp_le - _null_ ));
 DESCR("less-than-or-equal");
-DATA(insert OID = 2056 (  timestamp_ge         PGUID 12 f t t t 2 f 16 "1114 1114" 100 0 0 100  timestamp_ge - ));
+DATA(insert OID = 2056 (  timestamp_ge         PGUID 12 f t t t 2 f 16 "1114 1114" 100 0 0 100  timestamp_ge - _null_ ));
 DESCR("greater-than-or-equal");
-DATA(insert OID = 2057 (  timestamp_gt         PGUID 12 f t t t 2 f 16 "1114 1114" 100 0 0 100  timestamp_gt - ));
+DATA(insert OID = 2057 (  timestamp_gt         PGUID 12 f t t t 2 f 16 "1114 1114" 100 0 0 100  timestamp_gt - _null_ ));
 DESCR("greater-than");
-DATA(insert OID = 2058 (  age                          PGUID 12 f t t t 2 f 1186 "1114 1114" 100 0 0 100  timestamp_age - ));
+DATA(insert OID = 2058 (  age                          PGUID 12 f t t t 2 f 1186 "1114 1114" 100 0 0 100  timestamp_age - _null_ ));
 DESCR("date difference preserving months and years");
-DATA(insert OID = 2059 (  age                          PGUID 14 f t f t 1 f 1186 "1114" 100 0 0 100  "select age(cast(current_date as timestamp without time zone), $1)" - ));
+DATA(insert OID = 2059 (  age                          PGUID 14 f t f t 1 f 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                     PGUID 12 f t f t 2 f 1184 "25 1114" 100 0 0 100  timestamp_zone - ));
+DATA(insert OID = 2069 (  timezone                     PGUID 12 f t f t 2 f 1184 "25 1114" 100 0 0 100  timestamp_zone - _null_ ));
 DESCR("time zone");
-DATA(insert OID = 2070 (  timezone                     PGUID 12 f t f t 2 f 1184 "1186 1114" 100 0 0 100  timestamp_izone - ));
+DATA(insert OID = 2070 (  timezone                     PGUID 12 f t f t 2 f 1184 "1186 1114" 100 0 0 100  timestamp_izone - _null_ ));
 DESCR("time zone");
 
 
@@ -2877,7 +2879,7 @@ extern Oid ProcedureCreate(char *procedureName,
                                bool replace,
                                bool returnsSet,
                                char *returnTypeName,
-                               char *languageName,
+                               Oid languageObjectId,
                                char *prosrc,
                                char *probin,
                                bool trusted,
index 425f96de3ea667bd5de7f6161f4d2aa1339a09f1..a1e51d1e2678eb821ac75cf96b04253a76a94ce0 100644 (file)
@@ -12,7 +12,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: miscadmin.h,v 1.98 2002/01/01 23:16:22 tgl Exp $
+ * $Id: miscadmin.h,v 1.99 2002/02/18 23:11:31 petere Exp $
  *
  * NOTES
  *       some of the information in this file should be moved to
@@ -227,6 +227,7 @@ extern char *convertstr(unsigned char *buff, int len, int dest);
 
 /* in utils/misc/superuser.c */
 extern bool superuser(void);   /* current user is superuser */
+extern bool superuser_arg(Oid userid); /* given user is superuser */
 extern bool is_dbadmin(Oid dbid);              /* current user is owner of
                                                                                 * database */
 
index 4c05e417695ee18f385349fc41debc2cffb9f17c..1d5cf2dceab3bc5522eb06802c609766c323e169 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: nodes.h,v 1.96 2001/11/05 17:46:34 momjian Exp $
+ * $Id: nodes.h,v 1.97 2002/02/18 23:11:41 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -222,6 +222,8 @@ typedef enum NodeTag
        T_CaseWhen,
        T_FkConstraint,
        T_PrivGrantee,
+       T_FuncWithArgs,
+       T_PrivTarget,
 
        /*
         * TAGS FOR FUNCTION-CALL CONTEXT AND RESULTINFO NODES (see fmgr.h)
index 46ec13f34c035402ad709490c55218eff4371db8..252c509cc4620fc4e2efd8b2c2b355389ad36bdc 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: parsenodes.h,v 1.151 2001/11/05 17:46:34 momjian Exp $
+ * $Id: parsenodes.h,v 1.152 2002/02/18 23:11:41 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -145,8 +145,9 @@ typedef struct GrantStmt
 {
        NodeTag         type;
        bool            is_grant;               /* not revoke */
-       List       *relnames;
-       char       *privileges;
+       int                     objtype;
+       List       *objects;
+       List       *privileges;
        List       *grantees;
 } GrantStmt;
 
@@ -159,6 +160,23 @@ typedef struct PrivGrantee
 } PrivGrantee;
 
 
+typedef struct FuncWithArgs
+{
+       NodeTag         type;
+       char       *funcname;
+       List       *funcargs;
+} FuncWithArgs;
+
+
+/* This is only used internally in gram.y. */
+typedef struct PrivTarget
+{
+       NodeTag         type;
+       int                     objtype;
+       List       *objs;
+} PrivTarget;
+
+
 /* ----------------------
  *             Close Portal Statement
  * ----------------------
index 77c754901abc69f7a3e24fc11e5d06b93418cc22..91149072c3ffcd27a6b624a35981d765d5b92fe7 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: keywords.h,v 1.12 2001/11/05 17:46:34 momjian Exp $
+ * $Id: keywords.h,v 1.13 2002/02/18 23:11:45 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -21,5 +21,6 @@ typedef struct ScanKeyword
 } ScanKeyword;
 
 extern ScanKeyword *ScanKeywordLookup(char *text);
+extern const char *TokenString(int token);
 
 #endif   /* KEYWORDS_H */
index 03f30fa1ce58f38fd069dd4b492d86abd2252612..3619797151b68e10728cc1b51f856d50bf476b9c 100644 (file)
@@ -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.39 2001/11/05 17:46:36 momjian Exp $
+ * $Id: acl.h,v 1.40 2002/02/18 23:11:45 petere Exp $
  *
  * NOTES
  *       For backward-compatibility purposes we have to allow there
@@ -171,7 +171,7 @@ extern char *aclcheck_error_strings[];
 /*
  * routines used internally
  */
-extern Acl *acldefault(const char *relname, AclId ownerid);
+extern Acl *acldefault(AclId ownerid);
 extern Acl *aclinsert3(const Acl *old_acl, const AclItem *mod_aip, unsigned modechg);
 
 /*
@@ -208,4 +208,7 @@ extern bool pg_func_ownercheck(Oid userid, char *funcname,
 extern bool pg_aggr_ownercheck(Oid userid, char *aggname,
                                   Oid basetypeID);
 
+extern int32 pg_proc_aclcheck(Oid proc_oid, Oid userid);
+extern int32 pg_language_aclcheck(Oid lang_oid, Oid userid);
+
 #endif   /* ACL_H */
index 563812c87174aa84488695e908da33f304351d2c..fdc84c2122f24ef1f467582a4eaba1b1d0b4526f 100644 (file)
@@ -11,7 +11,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: fcache.h,v 1.20 2001/11/05 17:46:36 momjian Exp $
+ * $Id: fcache.h,v 1.21 2002/02/18 23:11:46 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -41,6 +41,8 @@ typedef struct FunctionCache
         */
        FmgrInfo        func;
 
+       bool permission_ok;
+
        /*
         * setArgsValid is true when we are evaluating a set-valued function
         * and we are in the middle of a call series; we want to pass the same
index 4ada312755ba43363778518e0b209b31443aec02..82021b7941a877f204c299f0b8e12d9fa0002c3b 100644 (file)
@@ -188,6 +188,49 @@ SELECT * FROM atestv3; -- ok
 -----+-----+-------
 (0 rows)
 
+-- privileges on functions, languages
+-- switch to superuser
+\c -
+REVOKE ALL PRIVILEGES ON LANGUAGE sql FROM PUBLIC;
+GRANT USAGE ON LANGUAGE sql TO regressuser1; -- ok
+GRANT USAGE ON LANGUAGE c TO PUBLIC; -- fail
+ERROR:  language "c" is not trusted
+SET SESSION AUTHORIZATION regressuser1;
+GRANT USAGE ON LANGUAGE sql TO regressuser2; -- fail
+ERROR:  permission denied
+CREATE FUNCTION testfunc1(int) RETURNS int AS 'select 2 * $1;' LANGUAGE sql;
+CREATE FUNCTION testfunc2(int) RETURNS int AS 'select 3 * $1;' LANGUAGE sql;
+GRANT EXECUTE ON FUNCTION testfunc1(int), testfunc2(int) TO regressuser2;
+GRANT USAGE ON FUNCTION testfunc1(int) TO regressuser3; -- semantic error
+ERROR:  invalid privilege type USAGE for function object
+GRANT ALL PRIVILEGES ON FUNCTION testfunc1(int) TO regressuser4;
+GRANT ALL PRIVILEGES ON FUNCTION testfunc_nosuch(int) TO regressuser4;
+ERROR:  Function 'testfunc_nosuch(int4)' does not exist
+SET SESSION AUTHORIZATION regressuser2;
+SELECT testfunc1(5), testfunc2(5); -- ok
+ testfunc1 | testfunc2 
+-----------+-----------
+        10 |        15
+(1 row)
+
+CREATE FUNCTION testfunc3(int) RETURNS int AS 'select 2 * $1;' LANGUAGE sql; -- fail
+ERROR:  permission denied
+SET SESSION AUTHORIZATION regressuser3;
+SELECT testfunc1(5); -- fail
+ERROR:  permission denied
+SET SESSION AUTHORIZATION regressuser4;
+SELECT testfunc1(5); -- ok
+ testfunc1 
+-----------
+        10
+(1 row)
+
+DROP FUNCTION testfunc1(int); -- fail
+ERROR:  RemoveFunction: function 'testfunc1': permission denied
+\c -
+DROP FUNCTION testfunc1(int); -- ok
+-- restore to sanity
+GRANT ALL PRIVILEGES ON LANGUAGE sql TO PUBLIC;
 -- has_table_privilege function
 -- bad-input checks
 select has_table_privilege(NULL,'pg_shadow','select');
@@ -207,7 +250,7 @@ ERROR:  pg_aclcheck: invalid user id 4293967297
 select has_table_privilege(1,'rule');
 ERROR:  has_table_privilege: invalid relation oid 1
 -- superuser
-\c regression
+\c -
 select has_table_privilege(current_user,'pg_shadow','select');
  has_table_privilege 
 ---------------------
index 95e7b604d3b9e2f4bf62f23ca125f7abd79506bc..61e9e31f36ccf6f4d7bb2d248c8ba25fe84b71a6 100644 (file)
@@ -126,6 +126,42 @@ SELECT * FROM atestv1; -- ok
 SELECT * FROM atestv3; -- ok
 
 
+-- privileges on functions, languages
+
+-- switch to superuser
+\c -
+REVOKE ALL PRIVILEGES ON LANGUAGE sql FROM PUBLIC;
+GRANT USAGE ON LANGUAGE sql TO regressuser1; -- ok
+GRANT USAGE ON LANGUAGE c TO PUBLIC; -- fail
+
+SET SESSION AUTHORIZATION regressuser1;
+GRANT USAGE ON LANGUAGE sql TO regressuser2; -- fail
+CREATE FUNCTION testfunc1(int) RETURNS int AS 'select 2 * $1;' LANGUAGE sql;
+CREATE FUNCTION testfunc2(int) RETURNS int AS 'select 3 * $1;' LANGUAGE sql;
+
+GRANT EXECUTE ON FUNCTION testfunc1(int), testfunc2(int) TO regressuser2;
+GRANT USAGE ON FUNCTION testfunc1(int) TO regressuser3; -- semantic error
+GRANT ALL PRIVILEGES ON FUNCTION testfunc1(int) TO regressuser4;
+GRANT ALL PRIVILEGES ON FUNCTION testfunc_nosuch(int) TO regressuser4;
+
+SET SESSION AUTHORIZATION regressuser2;
+SELECT testfunc1(5), testfunc2(5); -- ok
+CREATE FUNCTION testfunc3(int) RETURNS int AS 'select 2 * $1;' LANGUAGE sql; -- fail
+
+SET SESSION AUTHORIZATION regressuser3;
+SELECT testfunc1(5); -- fail
+
+SET SESSION AUTHORIZATION regressuser4;
+SELECT testfunc1(5); -- ok
+
+DROP FUNCTION testfunc1(int); -- fail
+
+\c -
+DROP FUNCTION testfunc1(int); -- ok
+-- restore to sanity
+GRANT ALL PRIVILEGES ON LANGUAGE sql TO PUBLIC;
+
+
 -- has_table_privilege function
 
 -- bad-input checks
@@ -137,7 +173,7 @@ select has_table_privilege(-999999,'pg_shadow','update');
 select has_table_privilege(1,'rule');
 
 -- superuser
-\c regression
+\c -
 select has_table_privilege(current_user,'pg_shadow','select');
 select has_table_privilege(current_user,'pg_shadow','insert');