aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/src/sgml/catalogs.sgml77
-rw-r--r--doc/src/sgml/ref/create_aggregate.sgml7
-rw-r--r--doc/src/sgml/ref/create_function.sgml66
-rw-r--r--src/backend/catalog/aclchk.c30
-rw-r--r--src/backend/catalog/heap.c4
-rw-r--r--src/backend/catalog/indexing.c4
-rw-r--r--src/backend/catalog/pg_aggregate.c126
-rw-r--r--src/backend/catalog/pg_proc.c69
-rw-r--r--src/backend/commands/comment.c25
-rw-r--r--src/backend/commands/define.c91
-rw-r--r--src/backend/commands/indexcmds.c6
-rw-r--r--src/backend/commands/remove.c54
-rw-r--r--src/backend/executor/nodeAgg.c97
-rw-r--r--src/backend/nodes/copyfuncs.c8
-rw-r--r--src/backend/nodes/equalfuncs.c6
-rw-r--r--src/backend/nodes/outfuncs.c8
-rw-r--r--src/backend/nodes/readfuncs.c12
-rw-r--r--src/backend/optimizer/util/var.c6
-rw-r--r--src/backend/parser/parse_agg.c80
-rw-r--r--src/backend/parser/parse_coerce.c74
-rw-r--r--src/backend/parser/parse_expr.c5
-rw-r--r--src/backend/parser/parse_func.c357
-rw-r--r--src/backend/parser/parse_node.c11
-rw-r--r--src/backend/parser/parse_oper.c5
-rw-r--r--src/backend/parser/parse_target.c18
-rw-r--r--src/backend/rewrite/rewriteHandler.c4
-rw-r--r--src/backend/utils/Gen_fmgrtab.sh13
-rw-r--r--src/backend/utils/adt/ruleutils.c55
-rw-r--r--src/backend/utils/adt/sets.c11
-rw-r--r--src/backend/utils/adt/varchar.c15
-rw-r--r--src/backend/utils/cache/syscache.c18
-rw-r--r--src/bin/pg_dump/pg_dump.c40
-rw-r--r--src/bin/pg_dump/pg_dump.h3
-rw-r--r--src/bin/psql/describe.c30
-rw-r--r--src/bin/psql/tab-complete.c4
-rw-r--r--src/include/catalog/catversion.h4
-rw-r--r--src/include/catalog/indexing.h10
-rw-r--r--src/include/catalog/pg_aggregate.h168
-rw-r--r--src/include/catalog/pg_attribute.h60
-rw-r--r--src/include/catalog/pg_class.h4
-rw-r--r--src/include/catalog/pg_operator.h10
-rw-r--r--src/include/catalog/pg_proc.h2639
-rw-r--r--src/include/executor/nodeAgg.h5
-rw-r--r--src/include/nodes/primnodes.h12
-rw-r--r--src/include/parser/parse_agg.h6
-rw-r--r--src/include/parser/parse_coerce.h7
-rw-r--r--src/include/parser/parse_func.h8
-rw-r--r--src/include/parser/parse_target.h5
-rw-r--r--src/include/utils/acl.h3
-rw-r--r--src/include/utils/builtins.h3
-rw-r--r--src/include/utils/syscache.h63
-rwxr-xr-xsrc/interfaces/python/tutorial/syscat.py9
-rw-r--r--src/test/regress/expected/alter_table.out20
-rw-r--r--src/test/regress/expected/foreign_key.out74
-rw-r--r--src/test/regress/expected/oidjoins.out24
-rw-r--r--src/test/regress/expected/opr_sanity.out169
-rw-r--r--src/test/regress/expected/rules.out8
-rw-r--r--src/test/regress/sql/alter_table.sql8
-rw-r--r--src/test/regress/sql/foreign_key.sql44
-rw-r--r--src/test/regress/sql/oidjoins.sql12
-rw-r--r--src/test/regress/sql/opr_sanity.sql139
-rw-r--r--src/test/regress/sql/rules.sql2
-rw-r--r--src/tutorial/syscat.source11
63 files changed, 2528 insertions, 2438 deletions
diff --git a/doc/src/sgml/catalogs.sgml b/doc/src/sgml/catalogs.sgml
index ba9c9b15e79..03809d69e42 100644
--- a/doc/src/sgml/catalogs.sgml
+++ b/doc/src/sgml/catalogs.sgml
@@ -1,6 +1,6 @@
<!--
Documentation of the system catalogs, directed toward PostgreSQL developers
- $Header: /cvsroot/pgsql/doc/src/sgml/catalogs.sgml,v 2.40 2002/04/05 00:31:22 tgl Exp $
+ $Header: /cvsroot/pgsql/doc/src/sgml/catalogs.sgml,v 2.41 2002/04/11 19:59:54 tgl Exp $
-->
<chapter id="catalogs">
@@ -183,7 +183,11 @@
that matches a query condition) and returns a single value computed
from all these values. Typical aggregate functions are
<function>sum</function>, <function>count</function>, and
- <function>max</function>.
+ <function>max</function>. Each entry in
+ <structname>pg_aggregate</structname> is an extension of an entry
+ in <structname>pg_proc</structname>. The <structname>pg_proc</structname>
+ entry carries the aggregate's name, input and output datatypes, and
+ other information that is similar to ordinary functions.
</para>
<table>
@@ -200,48 +204,30 @@
</thead>
<tbody>
<row>
- <entry>aggname</entry>
- <entry><type>name</type></entry>
- <entry></entry>
- <entry>Name of the aggregate function</entry>
- </row>
- <row>
- <entry>aggowner</entry>
- <entry><type>int4</type></entry>
- <entry>pg_shadow.usesysid</entry>
- <entry>Owner (creator) of the aggregate function</entry>
+ <entry>aggfnoid</entry>
+ <entry><type>regproc</type></entry>
+ <entry>pg_proc.oid</entry>
+ <entry>pg_proc OID of the aggregate function</entry>
</row>
<row>
<entry>aggtransfn</entry>
- <entry><type>regproc</type> (function)</entry>
+ <entry><type>regproc</type></entry>
<entry>pg_proc.oid</entry>
<entry>Transition function</entry>
</row>
<row>
<entry>aggfinalfn</entry>
- <entry><type>regproc</type> (function)</entry>
+ <entry><type>regproc</type></entry>
<entry>pg_proc.oid</entry>
<entry>Final function</entry>
</row>
<row>
- <entry>aggbasetype</entry>
- <entry><type>oid</type></entry>
- <entry>pg_type.oid</entry>
- <entry>The input data type for this aggregate function</entry>
- </row>
- <row>
<entry>aggtranstype</entry>
<entry><type>oid</type></entry>
<entry>pg_type.oid</entry>
<entry>The type of the aggregate function's internal transition (state) data</entry>
</row>
<row>
- <entry>aggfinaltype</entry>
- <entry><type>oid</type></entry>
- <entry>pg_type.oid</entry>
- <entry>The type of the result</entry>
- </row>
- <row>
<entry>agginitval</entry>
<entry><type>text</type></entry>
<entry></entry>
@@ -263,12 +249,6 @@
functions and the meaning of the transition functions, etc.
</para>
- <para>
- An aggregate function is identified through name
- <emphasis>and</emphasis> argument type. Hence aggname and aggbasetype
- are the composite primary key.
- </para>
-
</sect1>
@@ -1632,6 +1612,12 @@
about the meaning of some fields.
</para>
+ <para>
+ The table contains data for aggregate functions as well as plain functions.
+ If <structfield>proisagg</structfield> is true, there should be a matching
+ row in <structname>pg_aggregate</structname>.
+ </para>
+
<table>
<title>pg_proc Columns</title>
@@ -1677,10 +1663,10 @@
</row>
<row>
- <entry>proisinh</entry>
+ <entry>proisagg</entry>
<entry><type>bool</type></entry>
<entry></entry>
- <entry>unused</entry>
+ <entry>Function is an aggregate function</entry>
</row>
<row>
@@ -1691,6 +1677,13 @@
</row>
<row>
+ <entry>proimplicit</entry>
+ <entry><type>bool</type></entry>
+ <entry></entry>
+ <entry>Function may be invoked as an implicit type coercion</entry>
+ </row>
+
+ <row>
<entry>proisstrict</entry>
<entry><type>bool</type></entry>
<entry></entry>
@@ -1703,6 +1696,14 @@
</row>
<row>
+ <entry>proretset</entry>
+ <entry><type>bool</type></entry>
+ <entry></entry>
+ <entry>Function returns a set (ie, multiple values of the specified
+ data type)</entry>
+ </row>
+
+ <row>
<entry>provolatile</entry>
<entry><type>char</type></entry>
<entry></entry>
@@ -1729,14 +1730,6 @@
</row>
<row>
- <entry>proretset</entry>
- <entry><type>bool</type></entry>
- <entry></entry>
- <entry>Function returns a set (ie, multiple values of the specified
- data type)</entry>
- </row>
-
- <row>
<entry>prorettype</entry>
<entry><type>oid</type></entry>
<entry>pg_type.oid</entry>
diff --git a/doc/src/sgml/ref/create_aggregate.sgml b/doc/src/sgml/ref/create_aggregate.sgml
index 8c5e3f7f481..6a421c2a5fd 100644
--- a/doc/src/sgml/ref/create_aggregate.sgml
+++ b/doc/src/sgml/ref/create_aggregate.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_aggregate.sgml,v 1.16 2001/12/08 03:24:34 thomas Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_aggregate.sgml,v 1.17 2002/04/11 19:59:55 tgl Exp $
PostgreSQL documentation
-->
@@ -168,8 +168,9 @@ CREATE
<para>
An aggregate function is identified by its name and input data type.
Two aggregates can have the same name if they operate on different
- input types. To avoid confusion, do not make an ordinary function
- of the same name and input data type as an aggregate.
+ input types. The
+ name and input data type of an aggregate must also be distinct from
+ the name and input data type of every ordinary function.
</para>
<para>
An aggregate function is made from one or two ordinary
diff --git a/doc/src/sgml/ref/create_function.sgml b/doc/src/sgml/ref/create_function.sgml
index 28c54e1eb89..9c47721dc54 100644
--- a/doc/src/sgml/ref/create_function.sgml
+++ b/doc/src/sgml/ref/create_function.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_function.sgml,v 1.35 2002/04/05 00:31:24 tgl Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_function.sgml,v 1.36 2002/04/11 19:59:55 tgl Exp $
-->
<refentry id="SQL-CREATEFUNCTION">
@@ -214,6 +214,18 @@ CREATE [ OR REPLACE ] FUNCTION <replaceable class="parameter">name</replaceable>
</para>
</listitem>
</varlistentry>
+
+ <varlistentry>
+ <term>implicitCoercion</term>
+ <listitem>
+ <para>
+ <option>implicitCoercion</option> indicates that the function
+ may be used for implicit type conversions.
+ See <xref linkend="coercion-functions"
+ endterm="coercion-functions-title"> for more detail.
+ </para>
+ </listitem>
+ </varlistentry>
</variablelist>
Attribute names are not case-sensitive.
@@ -311,6 +323,54 @@ CREATE [ OR REPLACE ] FUNCTION <replaceable class="parameter">name</replaceable>
</para>
</refsect1>
+ <refsect1 id="COERCION-FUNCTIONS">
+ <refsect1info>
+ <date>2002-04-11</date>
+ </refsect1info>
+ <title id="coercion-functions-title">
+ Type Coercion Functions
+ </title>
+ <para>
+ A function that has one parameter and is named the same as its output
+ datatype is considered to be a <firstterm>type coercion function</>:
+ it can be invoked to convert a value of its input datatype into a value
+ of its output datatype. For example,
+<programlisting>
+ SELECT CAST(42 AS text);
+</programlisting>
+ converts the integer constant 42 to text by invoking a function
+ <literal>text(int4)</>, if such a function exists and returns type
+ text. (If no suitable conversion function can be found, the cast fails.)
+ </para>
+
+ <para>
+ If a potential coercion function is marked <literal>implicitCoercion</>,
+ then it can be invoked in any context where the conversion it defines
+ is required. Coercion functions not so marked can be invoked only by
+ explicit <literal>CAST</>,
+ <replaceable>x</><literal>::</><replaceable>typename</>,
+ or <replaceable>typename</>(<replaceable>x</>) constructs.
+ For example, supposing that foo.f1 is a column of type text, then
+<programlisting>
+ INSERT INTO foo(f1) VALUES(42);
+</programlisting>
+ will be allowed if <literal>text(int4)</> is marked
+ <literal>implicitCoercion</>, otherwise not.
+ </para>
+
+ <para>
+ It is wise to be conservative about marking coercion functions as
+ implicit coercions. An overabundance of implicit coercion paths
+ can cause <productname>PostgreSQL</productname> to choose surprising
+ interpretations of commands,
+ or to be unable to resolve commands at all because there are multiple
+ possible interpretations. A good rule of thumb is to make coercions
+ implicitly invokable only for information-preserving transformations
+ between types in the same general type category. For example, int2
+ to int4 coercion can reasonably be implicit, but be wary of marking
+ int4 to text or float8 to int4 as implicit coercions.
+ </para>
+ </refsect1>
<refsect1 id="sql-createfunction-examples">
<title>Examples</title>
@@ -356,8 +416,8 @@ CREATE TABLE product (
</para>
<para>
- This example creates a function that does type conversion between the
- user-defined type complex, and the internal type point. The
+ This example creates a function that does type conversion from the
+ user-defined type complex to the built-in type point. The
function is implemented by a dynamically loaded object that was
compiled from C source (we illustrate the now-deprecated alternative
of specifying the absolute file name to the shared object file).
diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c
index 04f98449bda..e440489a34a 100644
--- a/src/backend/catalog/aclchk.c
+++ b/src/backend/catalog/aclchk.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/aclchk.c,v 1.63 2002/04/11 05:32:02 petere Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/aclchk.c,v 1.64 2002/04/11 19:59:56 tgl Exp $
*
* NOTES
* See acl.h.
@@ -733,7 +733,7 @@ pg_class_aclcheck(Oid table_oid, Oid userid, AclMode mode)
Acl *acl;
/*
- * Validate userid, find out if he is superuser
+ * Validate userid, find out if he is superuser, also get usecatupd
*/
tuple = SearchSysCache(SHADOWSYSID,
ObjectIdGetDatum(userid),
@@ -1035,29 +1035,3 @@ pg_proc_ownercheck(Oid proc_oid, Oid userid)
return userid == owner_id;
}
-
-/*
- * Ownership check for an aggregate function (specified by OID).
- */
-bool
-pg_aggr_ownercheck(Oid aggr_oid, Oid userid)
-{
- HeapTuple tuple;
- AclId owner_id;
-
- /* Superusers bypass all permission checking. */
- if (superuser_arg(userid))
- return true;
-
- tuple = SearchSysCache(AGGOID,
- ObjectIdGetDatum(aggr_oid),
- 0, 0, 0);
- if (!HeapTupleIsValid(tuple))
- elog(ERROR, "pg_aggr_ownercheck: aggregate %u not found", aggr_oid);
-
- owner_id = ((Form_pg_aggregate) GETSTRUCT(tuple))->aggowner;
-
- ReleaseSysCache(tuple);
-
- return userid == owner_id;
-}
diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c
index 61688793cf4..1d225cc082b 100644
--- a/src/backend/catalog/heap.c
+++ b/src/backend/catalog/heap.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.194 2002/03/31 06:26:29 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.195 2002/04/11 19:59:56 tgl Exp $
*
*
* INTERFACE ROUTINES
@@ -1791,7 +1791,7 @@ cookDefault(ParseState *pstate,
if (type_id != atttypid)
{
if (CoerceTargetExpr(pstate, expr, type_id,
- atttypid, atttypmod) == NULL)
+ atttypid, atttypmod, false) == NULL)
elog(ERROR, "Column \"%s\" is of type %s"
" but default expression is of type %s"
"\n\tYou will need to rewrite or cast the expression",
diff --git a/src/backend/catalog/indexing.c b/src/backend/catalog/indexing.c
index 7ceed7890d3..f0c7ef5a0d0 100644
--- a/src/backend/catalog/indexing.c
+++ b/src/backend/catalog/indexing.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/indexing.c,v 1.87 2002/04/05 00:31:24 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/indexing.c,v 1.88 2002/04/11 19:59:57 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -32,7 +32,7 @@
*/
char *Name_pg_aggregate_indices[Num_pg_aggregate_indices] =
-{AggregateNameTypeIndex, AggregateOidIndex};
+{AggregateFnoidIndex};
char *Name_pg_am_indices[Num_pg_am_indices] =
{AmNameIndex, AmOidIndex};
char *Name_pg_amop_indices[Num_pg_amop_indices] =
diff --git a/src/backend/catalog/pg_aggregate.c b/src/backend/catalog/pg_aggregate.c
index a9f270fccf8..951e45c5ffa 100644
--- a/src/backend/catalog/pg_aggregate.c
+++ b/src/backend/catalog/pg_aggregate.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/pg_aggregate.c,v 1.43 2002/04/09 20:35:47 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/pg_aggregate.c,v 1.44 2002/04/11 19:59:57 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -19,15 +19,16 @@
#include "catalog/indexing.h"
#include "catalog/namespace.h"
#include "catalog/pg_aggregate.h"
+#include "catalog/pg_language.h"
#include "catalog/pg_proc.h"
-#include "catalog/pg_type.h"
-#include "miscadmin.h"
+#include "optimizer/cost.h"
#include "parser/parse_coerce.h"
#include "parser/parse_func.h"
#include "parser/parse_type.h"
#include "utils/builtins.h"
#include "utils/syscache.h"
+
/*
* AggregateCreate
*/
@@ -50,7 +51,7 @@ AggregateCreate(const char *aggName,
Oid finaltype;
Oid fnArgs[FUNC_MAX_ARGS];
int nargs;
- NameData aname;
+ Oid procOid;
TupleDesc tupDesc;
int i;
@@ -61,15 +62,6 @@ AggregateCreate(const char *aggName,
if (!aggtransfnName)
elog(ERROR, "aggregate must have a transition function");
- /* make sure there is no existing agg of same name and base type */
- if (SearchSysCacheExists(AGGNAME,
- PointerGetDatum(aggName),
- ObjectIdGetDatum(aggBaseType),
- 0, 0))
- elog(ERROR,
- "aggregate function \"%s\" with base type %s already exists",
- aggName, typeidTypeName(aggBaseType));
-
/* handle transfn */
MemSet(fnArgs, 0, FUNC_MAX_ARGS * sizeof(Oid));
fnArgs[0] = aggTransType;
@@ -109,8 +101,8 @@ AggregateCreate(const char *aggName,
/* handle finalfn, if supplied */
if (aggfinalfnName)
{
+ MemSet(fnArgs, 0, FUNC_MAX_ARGS * sizeof(Oid));
fnArgs[0] = aggTransType;
- fnArgs[1] = 0;
finalfn = LookupFuncName(aggfinalfnName, 1, fnArgs);
if (!OidIsValid(finalfn))
func_error("AggregateCreate", aggfinalfnName, 1, fnArgs, NULL);
@@ -132,21 +124,47 @@ AggregateCreate(const char *aggName,
}
Assert(OidIsValid(finaltype));
+ /*
+ * Everything looks okay. Try to create the pg_proc entry for the
+ * aggregate. (This could fail if there's already a conflicting entry.)
+ */
+ MemSet(fnArgs, 0, FUNC_MAX_ARGS * sizeof(Oid));
+ fnArgs[0] = aggBaseType;
+
+ procOid = ProcedureCreate(aggName,
+ aggNamespace,
+ false, /* no replacement */
+ false, /* doesn't return a set */
+ finaltype, /* returnType */
+ INTERNALlanguageId, /* languageObjectId */
+ "aggregate_dummy", /* placeholder proc */
+ "-", /* probin */
+ true, /* isAgg */
+ true, /* (obsolete "trusted") */
+ false, /* isImplicit */
+ false, /* isStrict (not needed for agg) */
+ PROVOLATILE_IMMUTABLE, /* volatility (not needed for agg) */
+ BYTE_PCT, /* default cost values */
+ PERBYTE_CPU,
+ PERCALL_CPU,
+ OUTIN_RATIO,
+ 1, /* parameterCount */
+ fnArgs); /* parameterTypes */
+
+ /*
+ * Okay to create the pg_aggregate entry.
+ */
+
/* initialize nulls and values */
for (i = 0; i < Natts_pg_aggregate; i++)
{
nulls[i] = ' ';
values[i] = (Datum) NULL;
}
- namestrcpy(&aname, aggName);
- values[Anum_pg_aggregate_aggname - 1] = NameGetDatum(&aname);
- values[Anum_pg_aggregate_aggowner - 1] = Int32GetDatum(GetUserId());
+ values[Anum_pg_aggregate_aggfnoid - 1] = ObjectIdGetDatum(procOid);
values[Anum_pg_aggregate_aggtransfn - 1] = ObjectIdGetDatum(transfn);
values[Anum_pg_aggregate_aggfinalfn - 1] = ObjectIdGetDatum(finalfn);
- values[Anum_pg_aggregate_aggbasetype - 1] = ObjectIdGetDatum(aggBaseType);
values[Anum_pg_aggregate_aggtranstype - 1] = ObjectIdGetDatum(aggTransType);
- values[Anum_pg_aggregate_aggfinaltype - 1] = ObjectIdGetDatum(finaltype);
-
if (agginitval)
values[Anum_pg_aggregate_agginitval - 1] =
DirectFunctionCall1(textin, CStringGetDatum(agginitval));
@@ -155,12 +173,9 @@ AggregateCreate(const char *aggName,
aggdesc = heap_openr(AggregateRelationName, RowExclusiveLock);
tupDesc = aggdesc->rd_att;
- if (!HeapTupleIsValid(tup = heap_formtuple(tupDesc,
- values,
- nulls)))
- elog(ERROR, "AggregateCreate: heap_formtuple failed");
- if (!OidIsValid(heap_insert(aggdesc, tup)))
- elog(ERROR, "AggregateCreate: heap_insert failed");
+
+ tup = heap_formtuple(tupDesc, values, nulls);
+ heap_insert(aggdesc, tup);
if (RelationGetForm(aggdesc)->relhasindex)
{
@@ -173,62 +188,3 @@ AggregateCreate(const char *aggName,
heap_close(aggdesc, RowExclusiveLock);
}
-
-Datum
-AggNameGetInitVal(char *aggName, Oid basetype, bool *isNull)
-{
- HeapTuple tup;
- Oid transtype,
- typinput,
- typelem;
- Datum textInitVal;
- char *strInitVal;
- Datum initVal;
-
- Assert(PointerIsValid(aggName));
- Assert(PointerIsValid(isNull));
-
- tup = SearchSysCache(AGGNAME,
- PointerGetDatum(aggName),
- ObjectIdGetDatum(basetype),
- 0, 0);
- if (!HeapTupleIsValid(tup))
- elog(ERROR, "AggNameGetInitVal: cache lookup failed for aggregate '%s'",
- aggName);
- transtype = ((Form_pg_aggregate) GETSTRUCT(tup))->aggtranstype;
-
- /*
- * initval is potentially null, so don't try to access it as a struct
- * field. Must do it the hard way with SysCacheGetAttr.
- */
- textInitVal = SysCacheGetAttr(AGGNAME, tup,
- Anum_pg_aggregate_agginitval,
- isNull);
- if (*isNull)
- {
- ReleaseSysCache(tup);
- return (Datum) 0;
- }
-
- strInitVal = DatumGetCString(DirectFunctionCall1(textout, textInitVal));
-
- ReleaseSysCache(tup);
-
- tup = SearchSysCache(TYPEOID,
- ObjectIdGetDatum(transtype),
- 0, 0, 0);
- if (!HeapTupleIsValid(tup))
- elog(ERROR, "AggNameGetInitVal: cache lookup failed on aggregate transition function return type %u", transtype);
-
- typinput = ((Form_pg_type) GETSTRUCT(tup))->typinput;
- typelem = ((Form_pg_type) GETSTRUCT(tup))->typelem;
- ReleaseSysCache(tup);
-
- initVal = OidFunctionCall3(typinput,
- CStringGetDatum(strInitVal),
- ObjectIdGetDatum(typelem),
- Int32GetDatum(-1));
-
- pfree(strInitVal);
- return initVal;
-}
diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c
index 8cb89b979cb..e9fcdc5d8e0 100644
--- a/src/backend/catalog/pg_proc.c
+++ b/src/backend/catalog/pg_proc.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.69 2002/04/09 20:35:47 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.70 2002/04/11 19:59:57 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -19,7 +19,6 @@
#include "catalog/indexing.h"
#include "catalog/pg_language.h"
#include "catalog/pg_proc.h"
-#include "catalog/pg_type.h"
#include "executor/executor.h"
#include "miscadmin.h"
#include "parser/parse_coerce.h"
@@ -48,24 +47,25 @@ ProcedureCreate(const char *procedureName,
Oid languageObjectId,
const char *prosrc,
const char *probin,
+ bool isAgg,
bool trusted,
+ bool isImplicit,
bool isStrict,
char volatility,
int32 byte_pct,
int32 perbyte_cpu,
int32 percall_cpu,
int32 outin_ratio,
- List *argList)
+ int parameterCount,
+ const Oid *parameterTypes)
{
int i;
Relation rel;
HeapTuple tup;
HeapTuple oldtup;
- uint16 parameterCount;
char nulls[Natts_pg_proc];
Datum values[Natts_pg_proc];
char replaces[Natts_pg_proc];
- List *x;
List *querytree_list;
Oid typev[FUNC_MAX_ARGS];
Oid relid;
@@ -79,43 +79,14 @@ ProcedureCreate(const char *procedureName,
Assert(PointerIsValid(prosrc));
Assert(PointerIsValid(probin));
- parameterCount = 0;
- MemSet(typev, 0, FUNC_MAX_ARGS * sizeof(Oid));
- foreach(x, argList)
- {
- TypeName *t = (TypeName *) lfirst(x);
- Oid toid;
-
- if (parameterCount >= FUNC_MAX_ARGS)
- elog(ERROR, "functions cannot have more than %d arguments",
- FUNC_MAX_ARGS);
-
- toid = LookupTypeName(t);
- if (OidIsValid(toid))
- {
- if (!get_typisdefined(toid))
- elog(WARNING, "Argument type \"%s\" is only a shell",
- TypeNameToString(t));
- }
- else
- {
- char *typnam = TypeNameToString(t);
-
- if (strcmp(typnam, "opaque") == 0)
- {
- if (languageObjectId == SQLlanguageId)
- elog(ERROR, "SQL functions cannot have arguments of type \"opaque\"");
- toid = InvalidOid;
- }
- else
- elog(ERROR, "Type \"%s\" does not exist", typnam);
- }
+ if (parameterCount < 0 || parameterCount > FUNC_MAX_ARGS)
+ elog(ERROR, "functions cannot have more than %d arguments",
+ FUNC_MAX_ARGS);
- if (t->setof)
- elog(ERROR, "functions cannot accept set arguments");
-
- typev[parameterCount++] = toid;
- }
+ /* Make sure we have a zero-padded param type array */
+ MemSet(typev, 0, FUNC_MAX_ARGS * sizeof(Oid));
+ if (parameterCount > 0)
+ memcpy(typev, parameterTypes, parameterCount * sizeof(Oid));
if (languageObjectId == SQLlanguageId)
{
@@ -248,12 +219,13 @@ ProcedureCreate(const char *procedureName,
values[i++] = ObjectIdGetDatum(procNamespace); /* pronamespace */
values[i++] = Int32GetDatum(GetUserId()); /* proowner */
values[i++] = ObjectIdGetDatum(languageObjectId); /* prolang */
- values[i++] = BoolGetDatum(false); /* proisinh (unused) */
+ values[i++] = BoolGetDatum(isAgg); /* proisagg */
values[i++] = BoolGetDatum(trusted); /* proistrusted */
+ values[i++] = BoolGetDatum(isImplicit); /* proimplicit */
values[i++] = BoolGetDatum(isStrict); /* proisstrict */
+ values[i++] = BoolGetDatum(returnsSet); /* proretset */
values[i++] = CharGetDatum(volatility); /* provolatile */
values[i++] = UInt16GetDatum(parameterCount); /* pronargs */
- values[i++] = BoolGetDatum(returnsSet); /* proretset */
values[i++] = ObjectIdGetDatum(returnType); /* prorettype */
values[i++] = PointerGetDatum(typev); /* proargtypes */
values[i++] = Int32GetDatum(byte_pct); /* probyte_pct */
@@ -298,6 +270,17 @@ ProcedureCreate(const char *procedureName,
elog(ERROR, "ProcedureCreate: cannot change return type of existing function."
"\n\tUse DROP FUNCTION first.");
+ /* Can't change aggregate status, either */
+ if (oldproc->proisagg != isAgg)
+ {
+ if (oldproc->proisagg)
+ elog(ERROR, "function %s is an aggregate",
+ procedureName);
+ else
+ elog(ERROR, "function %s is not an aggregate",
+ procedureName);
+ }
+
/* do not change existing permissions, either */
replaces[Anum_pg_proc_proacl-1] = ' ';
diff --git a/src/backend/commands/comment.c b/src/backend/commands/comment.c
index b7d57f6cce5..b7de77067db 100644
--- a/src/backend/commands/comment.c
+++ b/src/backend/commands/comment.c
@@ -7,7 +7,7 @@
* Copyright (c) 1999-2001, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/comment.c,v 1.39 2002/04/09 20:35:47 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/comment.c,v 1.40 2002/04/11 19:59:57 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -25,15 +25,11 @@
#include "catalog/pg_operator.h"
#include "catalog/pg_rewrite.h"
#include "catalog/pg_trigger.h"
-#include "catalog/pg_type.h"
#include "commands/comment.h"
#include "miscadmin.h"
-#include "nodes/makefuncs.h"
-#include "parser/parse_agg.h"
#include "parser/parse_func.h"
#include "parser/parse_type.h"
#include "parser/parse.h"
-#include "rewrite/rewriteRemove.h"
#include "utils/acl.h"
#include "utils/builtins.h"
#include "utils/fmgroids.h"
@@ -573,7 +569,6 @@ CommentAggregate(List *aggregate, List *arguments, char *comment)
TypeName *aggtype = (TypeName *) lfirst(arguments);
Oid baseoid,
oid;
- Oid classoid;
/* First, attempt to determine the base aggregate oid */
if (aggtype)
@@ -581,18 +576,13 @@ CommentAggregate(List *aggregate, List *arguments, char *comment)
else
baseoid = InvalidOid;
- /* Now, attempt to find the actual tuple in pg_aggregate */
+ /* Now, attempt to find the actual tuple in pg_proc */
- oid = GetSysCacheOid(AGGNAME,
- PointerGetDatum(strVal(lfirst(aggregate))), /* XXX */
- ObjectIdGetDatum(baseoid),
- 0, 0);
- if (!OidIsValid(oid))
- agg_error("CommentAggregate", aggregate, baseoid);
+ oid = find_aggregate_func("CommentAggregate", aggregate, baseoid);
/* Next, validate the user's attempt to comment */
- if (!pg_aggr_ownercheck(oid, GetUserId()))
+ if (!pg_proc_ownercheck(oid, GetUserId()))
{
if (baseoid == InvalidOid)
elog(ERROR, "you are not permitted to comment on aggregate %s for all types",
@@ -602,14 +592,9 @@ CommentAggregate(List *aggregate, List *arguments, char *comment)
NameListToString(aggregate), format_type_be(baseoid));
}
- /* pg_aggregate doesn't have a hard-coded OID, so must look it up */
-
- classoid = get_relname_relid(AggregateRelationName, PG_CATALOG_NAMESPACE);
- Assert(OidIsValid(classoid));
-
/* Call CreateComments() to create/drop the comments */
- CreateComments(oid, classoid, 0, comment);
+ CreateComments(oid, RelOid_pg_proc, 0, comment);
}
/*
diff --git a/src/backend/commands/define.c b/src/backend/commands/define.c
index cccbcdfaa59..692fc9f957c 100644
--- a/src/backend/commands/define.c
+++ b/src/backend/commands/define.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/define.c,v 1.74 2002/04/09 20:35:47 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/define.c,v 1.75 2002/04/11 19:59:57 tgl Exp $
*
* DESCRIPTION
* The "DefineFoo" routines take the parse tree and pick out the
@@ -141,13 +141,56 @@ compute_return_type(TypeName *returnType, Oid languageOid,
*returnsSet_p = returnType->setof;
}
-
-static void
-compute_full_attributes(List *parameters,
- int32 *byte_pct_p, int32 *perbyte_cpu_p,
- int32 *percall_cpu_p, int32 *outin_ratio_p,
- bool *isStrict_p, char *volatility_p)
+/*
+ * Interpret the argument-types list of the CREATE FUNCTION statement.
+ */
+static int
+compute_parameter_types(List *argTypes, Oid languageOid,
+ Oid *parameterTypes)
{
+ int parameterCount = 0;
+ List *x;
+
+ MemSet(parameterTypes, 0, FUNC_MAX_ARGS * sizeof(Oid));
+ foreach(x, argTypes)
+ {
+ TypeName *t = (TypeName *) lfirst(x);
+ Oid toid;
+
+ if (parameterCount >= FUNC_MAX_ARGS)
+ elog(ERROR, "functions cannot have more than %d arguments",
+ FUNC_MAX_ARGS);
+
+ toid = LookupTypeName(t);
+ if (OidIsValid(toid))
+ {
+ if (!get_typisdefined(toid))
+ elog(WARNING, "Argument type \"%s\" is only a shell",
+ TypeNameToString(t));
+ }
+ else
+ {
+ char *typnam = TypeNameToString(t);
+
+ if (strcmp(typnam, "opaque") == 0)
+ {
+ if (languageOid == SQLlanguageId)
+ elog(ERROR, "SQL functions cannot have arguments of type \"opaque\"");
+ toid = InvalidOid;
+ }
+ else
+ elog(ERROR, "Type \"%s\" does not exist", typnam);
+ }
+
+ if (t->setof)
+ elog(ERROR, "functions cannot accept set arguments");
+
+ parameterTypes[parameterCount++] = toid;
+ }
+
+ return parameterCount;
+}
+
/*-------------
* Interpret the parameters *parameters and return their contents as
* *byte_pct_p, etc.
@@ -155,7 +198,10 @@ compute_full_attributes(List *parameters,
* These parameters supply optional information about a function.
* All have defaults if not specified.
*
- * Note: currently, only two of these parameters actually do anything:
+ * Note: currently, only three of these parameters actually do anything:
+ *
+ * * isImplicit means the function may be used as an implicit type
+ * coercion.
*
* * isStrict means the function should not be called when any NULL
* inputs are present; instead a NULL result value should be assumed.
@@ -168,6 +214,13 @@ compute_full_attributes(List *parameters,
* for a long time.
*------------
*/
+static void
+compute_full_attributes(List *parameters,
+ int32 *byte_pct_p, int32 *perbyte_cpu_p,
+ int32 *percall_cpu_p, int32 *outin_ratio_p,
+ bool *isImplicit_p, bool *isStrict_p,
+ char *volatility_p)
+{
List *pl;
/* the defaults */
@@ -175,6 +228,7 @@ compute_full_attributes(List *parameters,
*perbyte_cpu_p = PERBYTE_CPU;
*percall_cpu_p = PERCALL_CPU;
*outin_ratio_p = OUTIN_RATIO;
+ *isImplicit_p = false;
*isStrict_p = false;
*volatility_p = PROVOLATILE_VOLATILE;
@@ -182,7 +236,9 @@ compute_full_attributes(List *parameters,
{
DefElem *param = (DefElem *) lfirst(pl);
- if (strcasecmp(param->defname, "isstrict") == 0)
+ if (strcasecmp(param->defname, "implicitcoercion") == 0)
+ *isImplicit_p = true;
+ else if (strcasecmp(param->defname, "isstrict") == 0)
*isStrict_p = true;
else if (strcasecmp(param->defname, "isimmutable") == 0)
*volatility_p = PROVOLATILE_IMMUTABLE;
@@ -276,11 +332,14 @@ CreateFunction(ProcedureStmt *stmt)
Oid languageOid;
char *funcname;
Oid namespaceId;
+ int parameterCount;
+ Oid parameterTypes[FUNC_MAX_ARGS];
int32 byte_pct,
perbyte_cpu,
percall_cpu,
outin_ratio;
- bool isStrict;
+ bool isImplicit,
+ isStrict;
char volatility;
HeapTuple languageTuple;
Form_pg_language languageStruct;
@@ -316,9 +375,13 @@ CreateFunction(ProcedureStmt *stmt)
compute_return_type(stmt->returnType, languageOid,
&prorettype, &returnsSet);
+ parameterCount = compute_parameter_types(stmt->argTypes, languageOid,
+ parameterTypes);
+
compute_full_attributes(stmt->withClause,
&byte_pct, &perbyte_cpu, &percall_cpu,
- &outin_ratio, &isStrict, &volatility);
+ &outin_ratio, &isImplicit, &isStrict,
+ &volatility);
interpret_AS_clause(languageOid, languageName, stmt->as,
&prosrc_str, &probin_str);
@@ -335,18 +398,20 @@ CreateFunction(ProcedureStmt *stmt)
languageOid,
prosrc_str, /* converted to text later */
probin_str, /* converted to text later */
+ false, /* not an aggregate */
true, /* (obsolete "trusted") */
+ isImplicit,
isStrict,
volatility,
byte_pct,
perbyte_cpu,
percall_cpu,
outin_ratio,
- stmt->argTypes);
+ parameterCount,
+ parameterTypes);
}
-
/*
* DefineOperator
* this function extracts all the information from the
diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c
index 43539cd625a..0a8ddc1807c 100644
--- a/src/backend/commands/indexcmds.c
+++ b/src/backend/commands/indexcmds.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/indexcmds.c,v 1.68 2002/04/09 20:35:47 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/indexcmds.c,v 1.69 2002/04/11 19:59:58 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -303,7 +303,9 @@ FuncIndexArgs(IndexInfo *indexInfo,
&true_typeids);
if (fdresult != FUNCDETAIL_NORMAL)
{
- if (fdresult == FUNCDETAIL_COERCION)
+ if (fdresult == FUNCDETAIL_AGGREGATE)
+ elog(ERROR, "DefineIndex: functional index may not use an aggregate function");
+ else if (fdresult == FUNCDETAIL_COERCION)
elog(ERROR, "DefineIndex: functional index must use a real function, not a type coercion"
"\n\tTry specifying the index opclass you want to use, instead");
else
diff --git a/src/backend/commands/remove.c b/src/backend/commands/remove.c
index 8969b9cdc13..c32d2b215c5 100644
--- a/src/backend/commands/remove.c
+++ b/src/backend/commands/remove.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/Attic/remove.c,v 1.73 2002/04/09 20:35:48 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/Attic/remove.c,v 1.74 2002/04/11 19:59:58 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -24,7 +24,6 @@
#include "commands/defrem.h"
#include "miscadmin.h"
#include "parser/parse.h"
-#include "parser/parse_agg.h"
#include "parser/parse_func.h"
#include "parser/parse_type.h"
#include "utils/acl.h"
@@ -381,6 +380,11 @@ RemoveFunction(List *functionName, /* function name to be removed */
elog(ERROR, "RemoveFunction: function '%s': permission denied",
NameListToString(functionName));
+ if (((Form_pg_proc) GETSTRUCT(tup))->proisagg)
+ elog(ERROR, "RemoveFunction: function '%s' is an aggregate"
+ "\n\tUse DROP AGGREGATE to remove it",
+ NameListToString(functionName));
+
if (((Form_pg_proc) GETSTRUCT(tup))->prolang == INTERNALlanguageId)
{
/* "Helpful" WARNING when removing a builtin function ... */
@@ -404,6 +408,7 @@ RemoveAggregate(List *aggName, TypeName *aggType)
Relation relation;
HeapTuple tup;
Oid basetypeID;
+ Oid procOid;
/*
* if a basetype is passed in, then attempt to find an aggregate for
@@ -413,23 +418,16 @@ RemoveAggregate(List *aggName, TypeName *aggType)
* a basetype of zero. This is valid. It means that the aggregate is
* to apply to all basetypes (eg, COUNT).
*/
-
if (aggType)
basetypeID = typenameTypeId(aggType);
else
basetypeID = InvalidOid;
- relation = heap_openr(AggregateRelationName, RowExclusiveLock);
+ procOid = find_aggregate_func("RemoveAggregate", aggName, basetypeID);
- tup = SearchSysCache(AGGNAME,
- PointerGetDatum(strVal(llast(aggName))),
- ObjectIdGetDatum(basetypeID),
- 0, 0);
+ /* Permission check */
- if (!HeapTupleIsValid(tup))
- agg_error("RemoveAggregate", aggName, basetypeID);
-
- if (!pg_aggr_ownercheck(tup->t_data->t_oid, GetUserId()))
+ if (!pg_proc_ownercheck(procOid, GetUserId()))
{
if (basetypeID == InvalidOid)
elog(ERROR, "RemoveAggregate: aggregate %s for all types: permission denied",
@@ -439,8 +437,36 @@ RemoveAggregate(List *aggName, TypeName *aggType)
NameListToString(aggName), format_type_be(basetypeID));
}
- /* Remove any comments related to this aggregate */
- DeleteComments(tup->t_data->t_oid, RelationGetRelid(relation));
+ /* Remove the pg_proc tuple */
+
+ relation = heap_openr(ProcedureRelationName, RowExclusiveLock);
+
+ tup = SearchSysCache(PROCOID,
+ ObjectIdGetDatum(procOid),
+ 0, 0, 0);
+ if (!HeapTupleIsValid(tup)) /* should not happen */
+ elog(ERROR, "RemoveAggregate: couldn't find pg_proc tuple for %s",
+ NameListToString(aggName));
+
+ /* Delete any comments associated with this function */
+ DeleteComments(procOid, RelationGetRelid(relation));
+
+ simple_heap_delete(relation, &tup->t_self);
+
+ ReleaseSysCache(tup);
+
+ heap_close(relation, RowExclusiveLock);
+
+ /* Remove the pg_aggregate tuple */
+
+ relation = heap_openr(AggregateRelationName, RowExclusiveLock);
+
+ tup = SearchSysCache(AGGFNOID,
+ ObjectIdGetDatum(procOid),
+ 0, 0, 0);
+ if (!HeapTupleIsValid(tup)) /* should not happen */
+ elog(ERROR, "RemoveAggregate: couldn't find pg_aggregate tuple for %s",
+ NameListToString(aggName));
simple_heap_delete(relation, &tup->t_self);
diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c
index e7da9e5af57..3ccbcd8efc8 100644
--- a/src/backend/executor/nodeAgg.c
+++ b/src/backend/executor/nodeAgg.c
@@ -46,7 +46,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/nodeAgg.c,v 1.80 2002/03/20 19:43:54 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/nodeAgg.c,v 1.81 2002/04/11 19:59:58 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -63,11 +63,13 @@
#include "parser/parse_expr.h"
#include "parser/parse_oper.h"
#include "parser/parse_type.h"
+#include "utils/builtins.h"
#include "utils/lsyscache.h"
#include "utils/syscache.h"
#include "utils/tuplesort.h"
#include "utils/datum.h"
+
/*
* AggStatePerAggData - per-aggregate working state for the Agg scan
*/
@@ -160,6 +162,7 @@ static void process_sorted_aggregate(AggState *aggstate,
AggStatePerAgg peraggstate);
static void finalize_aggregate(AggStatePerAgg peraggstate,
Datum *resultVal, bool *resultIsNull);
+static Datum GetAggInitVal(Datum textInitVal, Oid transtype);
/*
@@ -244,7 +247,7 @@ advance_transition_function(AggStatePerAgg peraggstate,
* transValue has not been initialized. This is the first
* non-NULL input value. We use it as the initial value for
* transValue. (We already checked that the agg's input type
- * is binary- compatible with its transtype, so straight copy
+ * is binary-compatible with its transtype, so straight copy
* here is OK.)
*
* We had better copy the datum if it is pass-by-ref, since the
@@ -838,11 +841,11 @@ ExecInitAgg(Agg *node, EState *estate, Plan *parent)
{
Aggref *aggref = (Aggref *) lfirst(alist);
AggStatePerAgg peraggstate = &peragg[++aggno];
- char *aggname = aggref->aggname;
HeapTuple aggTuple;
Form_pg_aggregate aggform;
Oid transfn_oid,
finalfn_oid;
+ Datum textInitVal;
/* Mark Aggref node with its associated index in the result array */
aggref->aggno = aggno;
@@ -850,28 +853,34 @@ ExecInitAgg(Agg *node, EState *estate, Plan *parent)
/* Fill in the peraggstate data */
peraggstate->aggref = aggref;
- aggTuple = SearchSysCache(AGGNAME,
- PointerGetDatum(aggname),
- ObjectIdGetDatum(aggref->basetype),
- 0, 0);
+ aggTuple = SearchSysCache(AGGFNOID,
+ ObjectIdGetDatum(aggref->aggfnoid),
+ 0, 0, 0);
if (!HeapTupleIsValid(aggTuple))
- elog(ERROR, "ExecAgg: cache lookup failed for aggregate %s(%s)",
- aggname,
- aggref->basetype ?
- typeidTypeName(aggref->basetype) : (char *) "");
+ elog(ERROR, "ExecAgg: cache lookup failed for aggregate %u",
+ aggref->aggfnoid);
aggform = (Form_pg_aggregate) GETSTRUCT(aggTuple);
- get_typlenbyval(aggform->aggfinaltype,
+ get_typlenbyval(aggref->aggtype,
&peraggstate->resulttypeLen,
&peraggstate->resulttypeByVal);
get_typlenbyval(aggform->aggtranstype,
&peraggstate->transtypeLen,
&peraggstate->transtypeByVal);
- peraggstate->initValue =
- AggNameGetInitVal(aggname,
- aggform->aggbasetype,
- &peraggstate->initValueIsNull);
+ /*
+ * initval is potentially null, so don't try to access it as a struct
+ * field. Must do it the hard way with SysCacheGetAttr.
+ */
+ textInitVal = SysCacheGetAttr(AGGFNOID, aggTuple,
+ Anum_pg_aggregate_agginitval,
+ &peraggstate->initValueIsNull);
+
+ if (peraggstate->initValueIsNull)
+ peraggstate->initValue = (Datum) 0;
+ else
+ peraggstate->initValue = GetAggInitVal(textInitVal,
+ aggform->aggtranstype);
peraggstate->transfn_oid = transfn_oid = aggform->aggtransfn;
peraggstate->finalfn_oid = finalfn_oid = aggform->aggfinalfn;
@@ -891,21 +900,21 @@ ExecInitAgg(Agg *node, EState *estate, Plan *parent)
{
/*
* Note: use the type from the input expression here, not
- * aggform->aggbasetype, because the latter might be 0.
+ * from pg_proc.proargtypes, because the latter might be 0.
* (Consider COUNT(*).)
*/
Oid inputType = exprType(aggref->target);
if (!IsBinaryCompatible(inputType, aggform->aggtranstype))
- elog(ERROR, "Aggregate %s needs to have compatible input type and transition type",
- aggname);
+ elog(ERROR, "Aggregate %u needs to have compatible input type and transition type",
+ aggref->aggfnoid);
}
if (aggref->aggdistinct)
{
/*
* Note: use the type from the input expression here, not
- * aggform->aggbasetype, because the latter might be 0.
+ * from pg_proc.proargtypes, because the latter might be 0.
* (Consider COUNT(*).)
*/
Oid inputType = exprType(aggref->target);
@@ -932,6 +941,36 @@ ExecInitAgg(Agg *node, EState *estate, Plan *parent)
return TRUE;
}
+static Datum
+GetAggInitVal(Datum textInitVal, Oid transtype)
+{
+ char *strInitVal;
+ HeapTuple tup;
+ Oid typinput,
+ typelem;
+ Datum initVal;
+
+ strInitVal = DatumGetCString(DirectFunctionCall1(textout, textInitVal));
+
+ tup = SearchSysCache(TYPEOID,
+ ObjectIdGetDatum(transtype),
+ 0, 0, 0);
+ if (!HeapTupleIsValid(tup))
+ elog(ERROR, "GetAggInitVal: cache lookup failed on aggregate transition function return type %u", transtype);
+
+ typinput = ((Form_pg_type) GETSTRUCT(tup))->typinput;
+ typelem = ((Form_pg_type) GETSTRUCT(tup))->typelem;
+ ReleaseSysCache(tup);
+
+ initVal = OidFunctionCall3(typinput,
+ CStringGetDatum(strInitVal),
+ ObjectIdGetDatum(typelem),
+ Int32GetDatum(-1));
+
+ pfree(strInitVal);
+ return initVal;
+}
+
int
ExecCountSlotsAgg(Agg *node)
{
@@ -985,3 +1024,21 @@ ExecReScanAgg(Agg *node, ExprContext *exprCtxt, Plan *parent)
if (((Plan *) node)->lefttree->chgParam == NULL)
ExecReScan(((Plan *) node)->lefttree, exprCtxt, (Plan *) node);
}
+
+/*
+ * aggregate_dummy - dummy execution routine for aggregate functions
+ *
+ * This function is listed as the implementation (prosrc field) of pg_proc
+ * entries for aggregate functions. Its only purpose is to throw an error
+ * if someone mistakenly executes such a function in the normal way.
+ *
+ * Perhaps someday we could assign real meaning to the prosrc field of
+ * an aggregate?
+ */
+Datum
+aggregate_dummy(PG_FUNCTION_ARGS)
+{
+ elog(ERROR, "Aggregate function %u called as normal function",
+ fcinfo->flinfo->fn_oid);
+ return (Datum) 0; /* keep compiler quiet */
+}
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c
index 873658774ca..5eed3a33f51 100644
--- a/src/backend/nodes/copyfuncs.c
+++ b/src/backend/nodes/copyfuncs.c
@@ -15,7 +15,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.176 2002/04/09 20:35:49 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.177 2002/04/11 19:59:59 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -852,11 +852,7 @@ _copyAggref(Aggref *from)
{
Aggref *newnode = makeNode(Aggref);
- /*
- * copy remainder of node
- */
- newnode->aggname = pstrdup(from->aggname);
- newnode->basetype = from->basetype;
+ newnode->aggfnoid = from->aggfnoid;
newnode->aggtype = from->aggtype;
Node_Copy(from, newnode, target);
newnode->aggstar = from->aggstar;
diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c
index 9458ebc5b95..cafd77a8220 100644
--- a/src/backend/nodes/equalfuncs.c
+++ b/src/backend/nodes/equalfuncs.c
@@ -20,7 +20,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.124 2002/04/09 20:35:50 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.125 2002/04/11 19:59:59 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -220,9 +220,7 @@ _equalFunc(Func *a, Func *b)
static bool
_equalAggref(Aggref *a, Aggref *b)
{
- if (strcmp(a->aggname, b->aggname) != 0)
- return false;
- if (a->basetype != b->basetype)
+ if (a->aggfnoid != b->aggfnoid)
return false;
if (a->aggtype != b->aggtype)
return false;
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c
index a495f5ed10b..09a3eb767f2 100644
--- a/src/backend/nodes/outfuncs.c
+++ b/src/backend/nodes/outfuncs.c
@@ -5,7 +5,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.153 2002/04/09 20:35:50 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.154 2002/04/11 19:59:59 tgl Exp $
*
* NOTES
* Every (plan) node in POSTGRES has an associated "out" routine which
@@ -785,10 +785,8 @@ _outConst(StringInfo str, Const *node)
static void
_outAggref(StringInfo str, Aggref *node)
{
- appendStringInfo(str, " AGGREG :aggname ");
- _outToken(str, node->aggname);
- appendStringInfo(str, " :basetype %u :aggtype %u :target ",
- node->basetype, node->aggtype);
+ appendStringInfo(str, " AGGREG :aggfnoid %u :aggtype %u :target ",
+ node->aggfnoid, node->aggtype);
_outNode(str, node->target);
appendStringInfo(str, " :aggstar %s :aggdistinct %s ",
diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c
index 150e98d6e49..f91ba36e5dc 100644
--- a/src/backend/nodes/readfuncs.c
+++ b/src/backend/nodes/readfuncs.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.118 2002/03/22 02:56:32 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.119 2002/04/11 20:00:00 tgl Exp $
*
* NOTES
* Most of the read functions for plan nodes are tested. (In fact, they
@@ -1159,13 +1159,9 @@ _readAggref(void)
local_node = makeNode(Aggref);
- token = pg_strtok(&length); /* eat :aggname */
- token = pg_strtok(&length); /* get aggname */
- local_node->aggname = debackslash(token, length);
-
- token = pg_strtok(&length); /* eat :basetype */
- token = pg_strtok(&length); /* get basetype */
- local_node->basetype = atooid(token);
+ token = pg_strtok(&length); /* eat :aggfnoid */
+ token = pg_strtok(&length); /* get aggfnoid */
+ local_node->aggfnoid = atooid(token);
token = pg_strtok(&length); /* eat :aggtype */
token = pg_strtok(&length); /* get aggtype */
diff --git a/src/backend/optimizer/util/var.c b/src/backend/optimizer/util/var.c
index 568e024d20b..81aad81c0f3 100644
--- a/src/backend/optimizer/util/var.c
+++ b/src/backend/optimizer/util/var.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/var.c,v 1.34 2002/03/12 00:51:51 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/var.c,v 1.35 2002/04/11 20:00:00 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -485,7 +485,7 @@ flatten_join_alias_var(Var *var, Query *root, int expandRTI)
if (subtype != vartype)
{
l_var = coerce_type(NULL, l_var, subtype,
- vartype, vartypmod);
+ vartype, vartypmod, false);
l_var = coerce_type_typmod(NULL, l_var,
vartype, vartypmod);
}
@@ -504,7 +504,7 @@ flatten_join_alias_var(Var *var, Query *root, int expandRTI)
if (subtype != vartype)
{
r_var = coerce_type(NULL, r_var, subtype,
- vartype, vartypmod);
+ vartype, vartypmod, false);
r_var = coerce_type_typmod(NULL, r_var,
vartype, vartypmod);
}
diff --git a/src/backend/parser/parse_agg.c b/src/backend/parser/parse_agg.c
index 3812579a4db..114296baf29 100644
--- a/src/backend/parser/parse_agg.c
+++ b/src/backend/parser/parse_agg.c
@@ -8,24 +8,17 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/parse_agg.c,v 1.48 2002/04/09 20:35:52 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_agg.c,v 1.49 2002/04/11 20:00:00 tgl Exp $
*
*-------------------------------------------------------------------------
*/
-
#include "postgres.h"
-#include "catalog/namespace.h"
-#include "catalog/pg_aggregate.h"
+
#include "optimizer/clauses.h"
#include "optimizer/tlist.h"
#include "parser/parse_agg.h"
-#include "parser/parse_coerce.h"
-#include "parser/parse_expr.h"
#include "parser/parsetree.h"
-#include "parser/parse_type.h"
-#include "utils/builtins.h"
-#include "utils/lsyscache.h"
-#include "utils/syscache.h"
+
typedef struct
{
@@ -185,70 +178,3 @@ parseCheckAggregates(ParseState *pstate, Query *qry, Node *qual)
/* Release the list storage (but not the pointed-to expressions!) */
freeList(groupClauses);
}
-
-
-Aggref *
-ParseAgg(ParseState *pstate, List *aggname, Oid basetype,
- List *args, bool agg_star, bool agg_distinct)
-{
- HeapTuple aggtuple;
- Form_pg_aggregate aggform;
- Aggref *aggref;
-
- aggtuple = SearchSysCache(AGGNAME,
- PointerGetDatum(strVal(llast(aggname))),
- ObjectIdGetDatum(basetype),
- 0, 0);
- /* shouldn't happen --- caller should have checked already */
- if (!HeapTupleIsValid(aggtuple))
- agg_error("ParseAgg", aggname, basetype);
- aggform = (Form_pg_aggregate) GETSTRUCT(aggtuple);
-
- /*
- * There used to be a really ugly hack for count(*) here.
- *
- * It's gone. Now, the grammar transforms count(*) into count(1), which
- * does the right thing. (It didn't use to do the right thing,
- * because the optimizer had the wrong ideas about semantics of
- * queries without explicit variables. Fixed as of Oct 1999 --- tgl.)
- */
-
- /*
- * We assume caller has already checked that given args are compatible
- * with the agg's basetype.
- */
-
- aggref = makeNode(Aggref);
- aggref->aggname = pstrdup(strVal(llast(aggname)));
- aggref->basetype = aggform->aggbasetype;
- aggref->aggtype = aggform->aggfinaltype;
- aggref->target = lfirst(args);
- aggref->aggstar = agg_star;
- aggref->aggdistinct = agg_distinct;
-
- ReleaseSysCache(aggtuple);
-
- pstate->p_hasAggs = true;
-
- return aggref;
-}
-
-/*
- * Error message when aggregate lookup fails that gives details of the
- * basetype
- */
-void
-agg_error(const char *caller, List *aggname, Oid basetypeID)
-{
- /*
- * basetypeID that is Invalid (zero) means aggregate over all types.
- * (count)
- */
-
- if (basetypeID == InvalidOid)
- elog(ERROR, "%s: aggregate '%s' for all types does not exist",
- caller, NameListToString(aggname));
- else
- elog(ERROR, "%s: aggregate '%s' for type %s does not exist",
- caller, NameListToString(aggname), format_type_be(basetypeID));
-}
diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c
index 4dd5777e1e1..aca5afc1243 100644
--- a/src/backend/parser/parse_coerce.c
+++ b/src/backend/parser/parse_coerce.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.69 2002/04/09 20:35:52 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.70 2002/04/11 20:00:00 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -32,7 +32,7 @@ Oid PromoteTypeToNext(Oid inType);
static Oid PreferredType(CATEGORY category, Oid type);
static Node *build_func_call(Oid funcid, Oid rettype, List *args);
static Oid find_coercion_function(Oid targetTypeId, Oid inputTypeId,
- Oid secondArgType);
+ Oid secondArgType, bool isExplicit);
/* coerce_type()
@@ -40,7 +40,7 @@ static Oid find_coercion_function(Oid targetTypeId, Oid inputTypeId,
*/
Node *
coerce_type(ParseState *pstate, Node *node, Oid inputTypeId,
- Oid targetTypeId, int32 atttypmod)
+ Oid targetTypeId, int32 atttypmod, bool isExplicit)
{
Node *result;
@@ -131,7 +131,8 @@ coerce_type(ParseState *pstate, Node *node, Oid inputTypeId,
funcId = find_coercion_function(baseTypeId,
getBaseType(inputTypeId),
- InvalidOid);
+ InvalidOid,
+ isExplicit);
if (!OidIsValid(funcId))
elog(ERROR, "coerce_type: no conversion function from %s to %s",
format_type_be(inputTypeId), format_type_be(targetTypeId));
@@ -171,13 +172,18 @@ coerce_type(ParseState *pstate, Node *node, Oid inputTypeId,
*
* There are a few types which are known apriori to be convertible.
* We will check for those cases first, and then look for possible
- * conversion functions.
+ * conversion functions.
+ *
+ * We must be told whether this is an implicit or explicit coercion
+ * (explicit being a CAST construct, explicit function call, etc).
+ * We will accept a wider set of coercion cases for an explicit coercion.
*
* Notes:
* This uses the same mechanism as the CAST() SQL construct in gram.y.
*/
bool
-can_coerce_type(int nargs, Oid *input_typeids, Oid *func_typeids)
+can_coerce_type(int nargs, Oid *input_typeids, Oid *func_typeids,
+ bool isExplicit)
{
int i;
@@ -230,7 +236,7 @@ can_coerce_type(int nargs, Oid *input_typeids, Oid *func_typeids)
return false;
/*
- * Else, try for explicit conversion using functions: look for a
+ * Else, try for run-time conversion using functions: look for a
* single-argument function named with the target type name and
* accepting the source type.
*
@@ -238,7 +244,8 @@ can_coerce_type(int nargs, Oid *input_typeids, Oid *func_typeids)
*/
funcId = find_coercion_function(getBaseType(targetTypeId),
getBaseType(inputTypeId),
- InvalidOid);
+ InvalidOid,
+ isExplicit);
if (!OidIsValid(funcId))
return false;
}
@@ -279,7 +286,8 @@ coerce_type_typmod(ParseState *pstate, Node *node,
/* If given type is a domain, use base type instead */
baseTypeId = getBaseType(targetTypeId);
- funcId = find_coercion_function(baseTypeId, baseTypeId, INT4OID);
+ /* Note this is always implicit coercion */
+ funcId = find_coercion_function(baseTypeId, baseTypeId, INT4OID, false);
if (OidIsValid(funcId))
{
@@ -321,9 +329,10 @@ coerce_to_boolean(ParseState *pstate, Node **pnode)
if (inputTypeId == BOOLOID)
return true; /* no work */
targetTypeId = BOOLOID;
- if (!can_coerce_type(1, &inputTypeId, &targetTypeId))
+ if (!can_coerce_type(1, &inputTypeId, &targetTypeId, false))
return false; /* fail, but let caller choose error msg */
- *pnode = coerce_type(pstate, *pnode, inputTypeId, targetTypeId, -1);
+ *pnode = coerce_type(pstate, *pnode, inputTypeId, targetTypeId, -1,
+ false);
return true;
}
@@ -378,7 +387,7 @@ select_common_type(List *typeids, const char *context)
}
else if (IsPreferredType(pcategory, ntype)
&& !IsPreferredType(pcategory, ptype)
- && can_coerce_type(1, &ptype, &ntype))
+ && can_coerce_type(1, &ptype, &ntype, false))
{
/*
* new one is preferred and can convert? then take it...
@@ -424,8 +433,9 @@ coerce_to_common_type(ParseState *pstate, Node *node,
if (inputTypeId == targetTypeId)
return node; /* no work */
- if (can_coerce_type(1, &inputTypeId, &targetTypeId))
- node = coerce_type(pstate, node, inputTypeId, targetTypeId, -1);
+ if (can_coerce_type(1, &inputTypeId, &targetTypeId, false))
+ node = coerce_type(pstate, node, inputTypeId, targetTypeId, -1,
+ false);
else
{
elog(ERROR, "%s unable to convert to type \"%s\"",
@@ -659,6 +669,9 @@ PreferredType(CATEGORY category, Oid type)
* A coercion function must be named after (the internal name of) its
* result type, and must accept exactly the specified input type. We
* also require it to be defined in the same namespace as its result type.
+ * Furthermore, unless we are doing explicit coercion the function must
+ * be marked as usable for implicit coercion --- this allows coercion
+ * functions to be provided that aren't implicitly invokable.
*
* This routine is also used to look for length-coercion functions, which
* are similar but accept a second argument. secondArgType is the type
@@ -668,16 +681,16 @@ PreferredType(CATEGORY category, Oid type)
* If a function is found, return its pg_proc OID; else return InvalidOid.
*/
static Oid
-find_coercion_function(Oid targetTypeId, Oid inputTypeId, Oid secondArgType)
+find_coercion_function(Oid targetTypeId, Oid inputTypeId, Oid secondArgType,
+ bool isExplicit)
{
+ Oid funcid = InvalidOid;
Type targetType;
char *typname;
Oid typnamespace;
Oid oid_array[FUNC_MAX_ARGS];
int nargs;
HeapTuple ftup;
- Form_pg_proc pform;
- Oid funcid;
targetType = typeidType(targetTypeId);
typname = NameStr(((Form_pg_type) GETSTRUCT(targetType))->typname);
@@ -698,21 +711,24 @@ find_coercion_function(Oid targetTypeId, Oid inputTypeId, Oid secondArgType)
Int16GetDatum(nargs),
PointerGetDatum(oid_array),
ObjectIdGetDatum(typnamespace));
- if (!HeapTupleIsValid(ftup))
- {
- ReleaseSysCache(targetType);
- return InvalidOid;
- }
- /* Make sure the function's result type is as expected, too */
- pform = (Form_pg_proc) GETSTRUCT(ftup);
- if (pform->prorettype != targetTypeId)
+ if (HeapTupleIsValid(ftup))
{
+ Form_pg_proc pform = (Form_pg_proc) GETSTRUCT(ftup);
+
+ /* Make sure the function's result type is as expected */
+ if (pform->prorettype == targetTypeId && !pform->proretset &&
+ !pform->proisagg)
+ {
+ /* If needed, make sure it can be invoked implicitly */
+ if (isExplicit || pform->proimplicit)
+ {
+ /* Okay to use it */
+ funcid = ftup->t_data->t_oid;
+ }
+ }
ReleaseSysCache(ftup);
- ReleaseSysCache(targetType);
- return InvalidOid;
}
- funcid = ftup->t_data->t_oid;
- ReleaseSysCache(ftup);
+
ReleaseSysCache(targetType);
return funcid;
}
diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c
index f8449716061..916c1da4a68 100644
--- a/src/backend/parser/parse_expr.c
+++ b/src/backend/parser/parse_expr.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.113 2002/04/09 20:35:52 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.114 2002/04/11 20:00:00 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1174,7 +1174,8 @@ parser_typecast_expression(ParseState *pstate,
if (inputType != targetType)
{
expr = CoerceTargetExpr(pstate, expr, inputType,
- targetType, typename->typmod);
+ targetType, typename->typmod,
+ true); /* explicit coercion */
if (expr == NULL)
elog(ERROR, "Cannot cast type '%s' to '%s'",
format_type_be(inputType),
diff --git a/src/backend/parser/parse_func.c b/src/backend/parser/parse_func.c
index a86195126ff..2ab9c9a6898 100644
--- a/src/backend/parser/parse_func.c
+++ b/src/backend/parser/parse_func.c
@@ -8,23 +8,18 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.125 2002/04/09 20:35:53 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.126 2002/04/11 20:00:01 tgl Exp $
*
*-------------------------------------------------------------------------
*/
#include "postgres.h"
-#include "access/genam.h"
#include "access/heapam.h"
#include "catalog/catname.h"
-#include "catalog/indexing.h"
#include "catalog/namespace.h"
-#include "catalog/pg_aggregate.h"
#include "catalog/pg_inherits.h"
-#include "catalog/pg_namespace.h"
#include "catalog/pg_proc.h"
#include "nodes/makefuncs.h"
-#include "parser/parse_agg.h"
#include "parser/parse_coerce.h"
#include "parser/parse_expr.h"
#include "parser/parse_func.h"
@@ -35,6 +30,7 @@
#include "utils/lsyscache.h"
#include "utils/syscache.h"
+
static Node *ParseComplexProjection(ParseState *pstate,
char *funcname,
Node *first_arg);
@@ -54,9 +50,6 @@ static int match_argtypes(int nargs,
static FieldSelect *setup_field_select(Node *input, char *attname, Oid relid);
static FuncCandidateList func_select_candidate(int nargs, Oid *input_typeids,
FuncCandidateList candidates);
-static int agg_get_candidates(List *aggname, Oid typeId,
- FuncCandidateList *candidates);
-static Oid agg_select_candidate(Oid typeid, FuncCandidateList candidates);
/*
@@ -89,14 +82,10 @@ ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
char *refname;
int nargs = length(fargs);
int argn;
- Func *funcnode;
Oid oid_array[FUNC_MAX_ARGS];
Oid *true_oid_array;
Node *retval;
bool retset;
- bool must_be_agg = agg_star || agg_distinct;
- bool could_be_agg;
- Expr *expr;
FuncDetailCode fdresult;
/*
@@ -123,7 +112,7 @@ ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
* then the "function call" could be a projection. We also check
* that there wasn't any aggregate decoration.
*/
- if (nargs == 1 && !must_be_agg && length(funcname) == 1)
+ if (nargs == 1 && !agg_star && !agg_distinct && length(funcname) == 1)
{
char *cname = strVal(lfirst(funcname));
@@ -152,84 +141,6 @@ ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
}
/*
- * See if it's an aggregate.
- */
- if (must_be_agg)
- {
- /* We don't presently cope with, eg, foo(DISTINCT x,y) */
- if (nargs != 1)
- elog(ERROR, "Aggregate functions may only have one parameter");
- /* Agg's argument can't be a relation name, either */
- if (IsA(first_arg, RangeVar))
- elog(ERROR, "Aggregate functions cannot be applied to relation names");
- could_be_agg = true;
- }
- else
- {
- /* Try to parse as an aggregate if above-mentioned checks are OK */
- could_be_agg = (nargs == 1) && !(IsA(first_arg, RangeVar));
- }
-
- if (could_be_agg)
- {
- Oid basetype = exprType(lfirst(fargs));
- int ncandidates;
- FuncCandidateList candidates;
-
- /* try for exact match first... */
- if (SearchSysCacheExists(AGGNAME,
- PointerGetDatum(strVal(llast(funcname))),
- ObjectIdGetDatum(basetype),
- 0, 0))
- return (Node *) ParseAgg(pstate, funcname, basetype,
- fargs, agg_star, agg_distinct);
-
- /* check for aggregate-that-accepts-any-type (eg, COUNT) */
- if (SearchSysCacheExists(AGGNAME,
- PointerGetDatum(strVal(llast(funcname))),
- ObjectIdGetDatum(0),
- 0, 0))
- return (Node *) ParseAgg(pstate, funcname, 0,
- fargs, agg_star, agg_distinct);
-
- /*
- * No exact match yet, so see if there is another entry in the
- * aggregate table that is compatible. - thomas 1998-12-05
- */
- ncandidates = agg_get_candidates(funcname, basetype, &candidates);
- if (ncandidates > 0)
- {
- Oid type;
-
- type = agg_select_candidate(basetype, candidates);
- if (OidIsValid(type))
- {
- lfirst(fargs) = coerce_type(pstate, lfirst(fargs),
- basetype, type, -1);
- basetype = type;
- return (Node *) ParseAgg(pstate, funcname, basetype,
- fargs, agg_star, agg_distinct);
- }
- else
- {
- /* Multiple possible matches --- give up */
- elog(ERROR, "Unable to select an aggregate function %s(%s)",
- NameListToString(funcname), format_type_be(basetype));
- }
- }
-
- if (must_be_agg)
- {
- /*
- * No matching agg, but we had '*' or DISTINCT, so a plain
- * function could not have been meant.
- */
- elog(ERROR, "There is no aggregate function %s(%s)",
- NameListToString(funcname), format_type_be(basetype));
- }
- }
-
- /*
* Okay, it's not a column projection, so it must really be a function.
* Extract arg type info and transform RangeVar arguments into varnodes
* of the appropriate form.
@@ -321,9 +232,22 @@ ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
* these cases, so why duplicate code...
*/
return coerce_type(pstate, lfirst(fargs),
- oid_array[0], rettype, -1);
+ oid_array[0], rettype, -1, true);
}
- if (fdresult != FUNCDETAIL_NORMAL)
+ else if (fdresult == FUNCDETAIL_NORMAL)
+ {
+ /*
+ * Normal function found; was there anything indicating it must be
+ * an aggregate?
+ */
+ if (agg_star)
+ elog(ERROR, "%s(*) specified, but %s is not an aggregate function",
+ NameListToString(funcname), NameListToString(funcname));
+ if (agg_distinct)
+ elog(ERROR, "DISTINCT specified, but %s is not an aggregate function",
+ NameListToString(funcname));
+ }
+ else if (fdresult != FUNCDETAIL_AGGREGATE)
{
/*
* Oops. Time to die.
@@ -341,165 +265,62 @@ ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
"\n\tYou may need to add explicit typecasts");
}
- /* got it */
- funcnode = makeNode(Func);
- funcnode->funcid = funcid;
- funcnode->functype = rettype;
- funcnode->func_fcache = NULL;
-
/* perform the necessary typecasting of arguments */
make_arguments(pstate, nargs, fargs, oid_array, true_oid_array);
- expr = makeNode(Expr);
- expr->typeOid = rettype;
- expr->opType = FUNC_EXPR;
- expr->oper = (Node *) funcnode;
- expr->args = fargs;
- retval = (Node *) expr;
-
- /*
- * if the function returns a set of values, then we need to iterate
- * over all the returned values in the executor, so we stick an iter
- * node here. if it returns a singleton, then we don't need the iter
- * node.
- */
- if (retset)
+ /* build the appropriate output structure */
+ if (fdresult == FUNCDETAIL_NORMAL)
{
- Iter *iter = makeNode(Iter);
-
- iter->itertype = rettype;
- iter->iterexpr = retval;
- retval = (Node *) iter;
- }
+ Expr *expr = makeNode(Expr);
+ Func *funcnode = makeNode(Func);
- return retval;
-}
-
-
-static int
-agg_get_candidates(List *aggname,
- Oid typeId,
- FuncCandidateList *candidates)
-{
- Relation pg_aggregate_desc;
- SysScanDesc pg_aggregate_scan;
- HeapTuple tup;
- int ncandidates = 0;
- ScanKeyData aggKey[1];
+ funcnode->funcid = funcid;
+ funcnode->functype = rettype;
+ funcnode->func_fcache = NULL;
- *candidates = NULL;
+ expr->typeOid = rettype;
+ expr->opType = FUNC_EXPR;
+ expr->oper = (Node *) funcnode;
+ expr->args = fargs;
- ScanKeyEntryInitialize(&aggKey[0], 0,
- Anum_pg_aggregate_aggname,
- F_NAMEEQ,
- NameGetDatum(strVal(llast(aggname))));
-
- pg_aggregate_desc = heap_openr(AggregateRelationName, AccessShareLock);
- pg_aggregate_scan = systable_beginscan(pg_aggregate_desc,
- AggregateNameTypeIndex, true,
- SnapshotNow,
- 1, aggKey);
-
- while (HeapTupleIsValid(tup = systable_getnext(pg_aggregate_scan)))
- {
- Form_pg_aggregate agg = (Form_pg_aggregate) GETSTRUCT(tup);
- FuncCandidateList current_candidate;
-
- current_candidate = (FuncCandidateList)
- palloc(sizeof(struct _FuncCandidateList));
- current_candidate->args[0] = agg->aggbasetype;
- current_candidate->next = *candidates;
- *candidates = current_candidate;
- ncandidates++;
- }
-
- systable_endscan(pg_aggregate_scan);
- heap_close(pg_aggregate_desc, AccessShareLock);
-
- return ncandidates;
-} /* agg_get_candidates() */
-
-/* agg_select_candidate()
- *
- * Try to choose only one candidate aggregate function from a list of
- * possible matches. Return value is Oid of input type of aggregate
- * if successful, else InvalidOid.
- */
-static Oid
-agg_select_candidate(Oid typeid, FuncCandidateList candidates)
-{
- FuncCandidateList current_candidate;
- FuncCandidateList last_candidate;
- Oid current_typeid;
- int ncandidates;
- CATEGORY category,
- current_category;
+ retval = (Node *) expr;
- /*
- * First look for exact matches or binary compatible matches. (Of
- * course exact matches shouldn't even get here, but anyway.)
- */
- ncandidates = 0;
- last_candidate = NULL;
- for (current_candidate = candidates;
- current_candidate != NULL;
- current_candidate = current_candidate->next)
- {
- current_typeid = current_candidate->args[0];
-
- if (IsBinaryCompatible(current_typeid, typeid))
+ /*
+ * if the function returns a set of values, then we need to iterate
+ * over all the returned values in the executor, so we stick an iter
+ * node here. if it returns a singleton, then we don't need the iter
+ * node.
+ */
+ if (retset)
{
- last_candidate = current_candidate;
- ncandidates++;
+ Iter *iter = makeNode(Iter);
+
+ iter->itertype = rettype;
+ iter->iterexpr = retval;
+ retval = (Node *) iter;
}
}
- if (ncandidates == 1)
- return last_candidate->args[0];
-
- /*
- * If no luck that way, look for candidates which allow coercion and
- * have a preferred type. Keep all candidates if none match.
- */
- category = TypeCategory(typeid);
- ncandidates = 0;
- last_candidate = NULL;
- for (current_candidate = candidates;
- current_candidate != NULL;
- current_candidate = current_candidate->next)
+ else
{
- current_typeid = current_candidate->args[0];
- current_category = TypeCategory(current_typeid);
+ /* aggregate function */
+ Aggref *aggref = makeNode(Aggref);
- if (current_category == category
- && IsPreferredType(current_category, current_typeid)
- && can_coerce_type(1, &typeid, &current_typeid))
- {
- /* only one so far? then keep it... */
- if (last_candidate == NULL)
- {
- candidates = current_candidate;
- last_candidate = current_candidate;
- ncandidates = 1;
- }
- /* otherwise, keep this one too... */
- else
- {
- last_candidate->next = current_candidate;
- last_candidate = current_candidate;
- ncandidates++;
- }
- }
- /* otherwise, don't bother keeping this one around... */
- }
+ aggref->aggfnoid = funcid;
+ aggref->aggtype = rettype;
+ aggref->target = lfirst(fargs);
+ aggref->aggstar = agg_star;
+ aggref->aggdistinct = agg_distinct;
- if (last_candidate) /* terminate rebuilt list */
- last_candidate->next = NULL;
+ retval = (Node *) aggref;
- if (ncandidates == 1)
- return candidates->args[0];
+ if (retset)
+ elog(ERROR, "Aggregates may not return sets");
- return InvalidOid;
-} /* agg_select_candidate() */
+ pstate->p_hasAggs = true;
+ }
+
+ return retval;
+}
/* match_argtypes()
@@ -529,7 +350,8 @@ match_argtypes(int nargs,
current_candidate = next_candidate)
{
next_candidate = current_candidate->next;
- if (can_coerce_type(nargs, input_typeids, current_candidate->args))
+ if (can_coerce_type(nargs, input_typeids, current_candidate->args,
+ false))
{
current_candidate->next = *candidates;
*candidates = current_candidate;
@@ -1014,6 +836,7 @@ func_get_detail(List *funcname,
{
HeapTuple ftup;
Form_pg_proc pform;
+ FuncDetailCode result;
*funcid = best_candidate->oid;
*true_typeids = best_candidate->args;
@@ -1026,8 +849,9 @@ func_get_detail(List *funcname,
pform = (Form_pg_proc) GETSTRUCT(ftup);
*rettype = pform->prorettype;
*retset = pform->proretset;
+ result = pform->proisagg ? FUNCDETAIL_AGGREGATE : FUNCDETAIL_NORMAL;
ReleaseSysCache(ftup);
- return FUNCDETAIL_NORMAL;
+ return result;
}
return FUNCDETAIL_NOTFOUND;
@@ -1294,7 +1118,8 @@ make_arguments(ParseState *pstate,
lfirst(current_fargs) = coerce_type(pstate,
lfirst(current_fargs),
input_typeids[i],
- function_typeids[i], -1);
+ function_typeids[i], -1,
+ false);
}
}
}
@@ -1451,6 +1276,58 @@ func_error(const char *caller, List *funcname,
}
/*
+ * find_aggregate_func
+ * Convenience routine to check that a function exists and is an
+ * aggregate.
+ *
+ * Note: basetype is InvalidOid if we are looking for an aggregate on
+ * all types.
+ */
+Oid
+find_aggregate_func(const char *caller, List *aggname, Oid basetype)
+{
+ Oid oid;
+ HeapTuple ftup;
+ Form_pg_proc pform;
+
+ oid = LookupFuncName(aggname, 1, &basetype);
+
+ if (!OidIsValid(oid))
+ {
+ if (basetype == InvalidOid)
+ elog(ERROR, "%s: aggregate '%s' for all types does not exist",
+ caller, NameListToString(aggname));
+ else
+ elog(ERROR, "%s: aggregate '%s' for type %s does not exist",
+ caller, NameListToString(aggname),
+ format_type_be(basetype));
+ }
+
+ /* Make sure it's an aggregate */
+ ftup = SearchSysCache(PROCOID,
+ ObjectIdGetDatum(oid),
+ 0, 0, 0);
+ if (!HeapTupleIsValid(ftup)) /* should not happen */
+ elog(ERROR, "function %u not found", oid);
+ pform = (Form_pg_proc) GETSTRUCT(ftup);
+
+ if (!pform->proisagg)
+ {
+ if (basetype == InvalidOid)
+ elog(ERROR, "%s: function %s(*) is not an aggregate",
+ caller, NameListToString(aggname));
+ else
+ elog(ERROR, "%s: function %s(%s) is not an aggregate",
+ caller, NameListToString(aggname),
+ format_type_be(basetype));
+ }
+
+ ReleaseSysCache(ftup);
+
+ return oid;
+}
+
+/*
* LookupFuncName
* Given a possibly-qualified function name and a set of argument types,
* look up the function. Returns InvalidOid if no such function.
diff --git a/src/backend/parser/parse_node.c b/src/backend/parser/parse_node.c
index 8b259e97c1d..0868f3f0bb8 100644
--- a/src/backend/parser/parse_node.c
+++ b/src/backend/parser/parse_node.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/parse_node.c,v 1.60 2002/03/21 16:01:07 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_node.c,v 1.61 2002/04/11 20:00:01 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -73,7 +73,8 @@ make_operand(char *opname,
{
/* must coerce? */
if (target_typeId != orig_typeId)
- result = coerce_type(NULL, tree, orig_typeId, target_typeId, -1);
+ result = coerce_type(NULL, tree, orig_typeId, target_typeId, -1,
+ false);
else
result = tree;
}
@@ -288,7 +289,7 @@ transformArraySubscripts(ParseState *pstate,
subexpr = transformExpr(pstate, ai->lidx);
/* If it's not int4 already, try to coerce */
subexpr = CoerceTargetExpr(pstate, subexpr, exprType(subexpr),
- INT4OID, -1);
+ INT4OID, -1, false);
if (subexpr == NULL)
elog(ERROR, "array index expressions must be integers");
}
@@ -308,7 +309,7 @@ transformArraySubscripts(ParseState *pstate,
subexpr = transformExpr(pstate, ai->uidx);
/* If it's not int4 already, try to coerce */
subexpr = CoerceTargetExpr(pstate, subexpr, exprType(subexpr),
- INT4OID, -1);
+ INT4OID, -1, false);
if (subexpr == NULL)
elog(ERROR, "array index expressions must be integers");
upperIndexpr = lappend(upperIndexpr, subexpr);
@@ -329,7 +330,7 @@ transformArraySubscripts(ParseState *pstate,
/* XXX fixme: need to get the array's atttypmod? */
assignFrom = CoerceTargetExpr(pstate, assignFrom,
typesource, typeneeded,
- -1);
+ -1, false);
if (assignFrom == NULL)
elog(ERROR, "Array assignment requires type '%s'"
" but expression is of type '%s'"
diff --git a/src/backend/parser/parse_oper.c b/src/backend/parser/parse_oper.c
index 8495f9f9e65..028bfab4319 100644
--- a/src/backend/parser/parse_oper.c
+++ b/src/backend/parser/parse_oper.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/parse_oper.c,v 1.53 2002/03/20 19:44:31 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_oper.c,v 1.54 2002/04/11 20:00:02 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -265,7 +265,8 @@ oper_select_candidate(int nargs,
current_candidate != NULL;
current_candidate = current_candidate->next)
{
- if (can_coerce_type(nargs, input_typeids, current_candidate->args))
+ if (can_coerce_type(nargs, input_typeids, current_candidate->args,
+ false))
{
if (last_candidate == NULL)
{
diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c
index 83c53de5d1d..9f97ab0f4cb 100644
--- a/src/backend/parser/parse_target.c
+++ b/src/backend/parser/parse_target.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.83 2002/04/09 20:35:53 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.84 2002/04/11 20:00:02 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -290,7 +290,8 @@ updateTargetListEntry(ParseState *pstate,
if (type_id != attrtype)
{
tle->expr = CoerceTargetExpr(pstate, tle->expr, type_id,
- attrtype, attrtypmod);
+ attrtype, attrtypmod,
+ false);
if (tle->expr == NULL)
elog(ERROR, "column \"%s\" is of type '%s'"
" but expression is of type '%s'"
@@ -327,10 +328,12 @@ CoerceTargetExpr(ParseState *pstate,
Node *expr,
Oid type_id,
Oid attrtype,
- int32 attrtypmod)
+ int32 attrtypmod,
+ bool isExplicit)
{
- if (can_coerce_type(1, &type_id, &attrtype))
- expr = coerce_type(pstate, expr, type_id, attrtype, attrtypmod);
+ if (can_coerce_type(1, &type_id, &attrtype, isExplicit))
+ expr = coerce_type(pstate, expr, type_id, attrtype, attrtypmod,
+ isExplicit);
#ifndef DISABLE_STRING_HACKS
@@ -345,8 +348,9 @@ CoerceTargetExpr(ParseState *pstate,
if (type_id == TEXTOID)
{
}
- else if (can_coerce_type(1, &type_id, &text_id))
- expr = coerce_type(pstate, expr, type_id, text_id, attrtypmod);
+ else if (can_coerce_type(1, &type_id, &text_id, isExplicit))
+ expr = coerce_type(pstate, expr, type_id, text_id, attrtypmod,
+ isExplicit);
else
expr = NULL;
}
diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c
index 08d93502497..9fe530818ba 100644
--- a/src/backend/rewrite/rewriteHandler.c
+++ b/src/backend/rewrite/rewriteHandler.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.101 2002/04/05 05:47:05 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.102 2002/04/11 20:00:02 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -476,7 +476,7 @@ build_column_default(Relation rel, int attrno)
if (exprtype != atttype)
{
expr = CoerceTargetExpr(NULL, expr, exprtype,
- atttype, atttypmod);
+ atttype, atttypmod, false);
/*
* This really shouldn't fail; should have checked the
diff --git a/src/backend/utils/Gen_fmgrtab.sh b/src/backend/utils/Gen_fmgrtab.sh
index c5034c1cb8f..7855a65b7a0 100644
--- a/src/backend/utils/Gen_fmgrtab.sh
+++ b/src/backend/utils/Gen_fmgrtab.sh
@@ -9,7 +9,7 @@
#
#
# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh,v 1.22 2002/04/05 00:31:28 tgl Exp $
+# $Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh,v 1.23 2002/04/11 20:00:04 tgl Exp $
#
#-------------------------------------------------------------------------
@@ -88,6 +88,8 @@ trap 'echo "Caught signal." ; cleanup ; exit 1' 1 2 15
# deal with preprocessor statements first (before we sort the
# function table by oid).
#
+# Note assumption here that prolang == $5 and INTERNALlanguageId == 12.
+#
$AWK '
BEGIN { raw = 0; }
/^DATA/ { print; next; }
@@ -161,6 +163,8 @@ cat > "$$-$OIDSFILE" <<FuNkYfMgRsTuFf
*/
FuNkYfMgRsTuFf
+# Note assumption here that prosrc == $(NF-2).
+
tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' < $RAWFILE | \
$AWK '
BEGIN { OFS = ""; }
@@ -209,6 +213,8 @@ cat > "$$-$TABLEFILE" <<FuNkYfMgRtAbStUfF
FuNkYfMgRtAbStUfF
+# Note assumption here that prosrc == $(NF-2).
+
$AWK '{ print "extern Datum", $(NF-2), "(PG_FUNCTION_ARGS);"; }' $RAWFILE >> "$$-$TABLEFILE"
if [ $? -ne 0 ]; then
@@ -226,13 +232,16 @@ FuNkYfMgRtAbStUfF
# Note: using awk arrays to translate from pg_proc values to fmgrtab values
# may seem tedious, but avoid the temptation to write a quick x?y:z
# conditional expression instead. Not all awks have conditional expressions.
+#
+# Note assumptions here that prosrc == $(NF-2), pronargs == $12,
+# proisstrict == $9, proretset == $10
$AWK 'BEGIN {
Bool["t"] = "true"
Bool["f"] = "false"
}
{ printf (" { %d, \"%s\", %d, %s, %s, %s },\n"), \
- $1, $(NF-2), $10, Bool[$8], Bool[$11], $(NF-2)
+ $1, $(NF-2), $12, Bool[$9], Bool[$10], $(NF-2)
}' $RAWFILE >> "$$-$TABLEFILE"
if [ $? -ne 0 ]; then
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c
index d8340234397..501d5a2095f 100644
--- a/src/backend/utils/adt/ruleutils.c
+++ b/src/backend/utils/adt/ruleutils.c
@@ -3,7 +3,7 @@
* back to source text
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.95 2002/03/22 02:56:35 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.96 2002/04/11 20:00:04 tgl Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
@@ -130,6 +130,7 @@ static void get_names_for_var(Var *var, deparse_context *context,
char **refname, char **attname);
static void get_rule_expr(Node *node, deparse_context *context);
static void get_func_expr(Expr *expr, deparse_context *context);
+static void get_agg_expr(Aggref *aggref, deparse_context *context);
static Node *strip_type_coercion(Node *expr, Oid resultType);
static void get_tle_expr(TargetEntry *tle, deparse_context *context);
static void get_const_expr(Const *constval, deparse_context *context);
@@ -1694,18 +1695,7 @@ get_rule_expr(Node *node, deparse_context *context)
break;
case T_Aggref:
- {
- Aggref *aggref = (Aggref *) node;
-
- appendStringInfo(buf, "%s(%s",
- quote_identifier(aggref->aggname),
- aggref->aggdistinct ? "DISTINCT " : "");
- if (aggref->aggstar)
- appendStringInfo(buf, "*");
- else
- get_rule_expr(aggref->target, context);
- appendStringInfoChar(buf, ')');
- }
+ get_agg_expr((Aggref *) node, context);
break;
case T_Iter:
@@ -2000,6 +1990,45 @@ get_func_expr(Expr *expr, deparse_context *context)
ReleaseSysCache(proctup);
}
+/* ----------
+ * get_agg_expr - Parse back an Aggref node
+ * ----------
+ */
+static void
+get_agg_expr(Aggref *aggref, deparse_context *context)
+{
+ StringInfo buf = context->buf;
+ HeapTuple proctup;
+ Form_pg_proc procStruct;
+ char *proname;
+
+ /*
+ * Get the aggregate's pg_proc tuple
+ */
+ proctup = SearchSysCache(PROCOID,
+ ObjectIdGetDatum(aggref->aggfnoid),
+ 0, 0, 0);
+ if (!HeapTupleIsValid(proctup))
+ elog(ERROR, "cache lookup for proc %u failed", aggref->aggfnoid);
+
+ procStruct = (Form_pg_proc) GETSTRUCT(proctup);
+ proname = NameStr(procStruct->proname);
+
+ /*
+ * Display it
+ */
+ appendStringInfo(buf, "%s(%s",
+ quote_identifier(proname),
+ aggref->aggdistinct ? "DISTINCT " : "");
+ if (aggref->aggstar)
+ appendStringInfo(buf, "*");
+ else
+ get_rule_expr(aggref->target, context);
+ appendStringInfoChar(buf, ')');
+
+ ReleaseSysCache(proctup);
+}
+
/*
* strip_type_coercion
diff --git a/src/backend/utils/adt/sets.c b/src/backend/utils/adt/sets.c
index 2302928624a..a0403615527 100644
--- a/src/backend/utils/adt/sets.c
+++ b/src/backend/utils/adt/sets.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/sets.c,v 1.42 2002/04/05 00:31:29 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/sets.c,v 1.43 2002/04/11 20:00:05 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -58,16 +58,19 @@ SetDefine(char *querystr, Oid elemType)
true, /* returnsSet */
elemType, /* returnType */
SQLlanguageId, /* language */
- querystr, /* sourceCode */
- fileName, /* fileName */
+ querystr, /* prosrc */
+ fileName, /* probin */
+ false, /* not aggregate */
true, /* trusted */
+ false, /* not implicit coercion */
false, /* isStrict (irrelevant, no args) */
PROVOLATILE_VOLATILE, /* assume unsafe */
100, /* byte_pct */
0, /* perbyte_cpu */
0, /* percall_cpu */
100, /* outin_ratio */
- NIL); /* argList */
+ 0, /* parameterCount */
+ NULL); /* parameterTypes */
/*
* Since we're still inside this command of the transaction, we can't
diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c
index e384b3f6220..f2d318b820b 100644
--- a/src/backend/utils/adt/varchar.c
+++ b/src/backend/utils/adt/varchar.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.88 2002/03/09 17:35:36 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.89 2002/04/11 20:00:05 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -307,19 +307,6 @@ _bpchar(PG_FUNCTION_ARGS)
}
-/* bpchar_char()
- * Convert bpchar(1) to char.
- *
- * If input is multiple chars, only the first is returned.
- */
-Datum
-bpchar_char(PG_FUNCTION_ARGS)
-{
- BpChar *s = PG_GETARG_BPCHAR_P(0);
-
- PG_RETURN_CHAR(*VARDATA(s));
-}
-
/* char_bpchar()
* Convert char to bpchar(1).
*/
diff --git a/src/backend/utils/cache/syscache.c b/src/backend/utils/cache/syscache.c
index 36535bd7fa9..6808c07f4be 100644
--- a/src/backend/utils/cache/syscache.c
+++ b/src/backend/utils/cache/syscache.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/cache/syscache.c,v 1.75 2002/04/09 20:35:54 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/syscache.c,v 1.76 2002/04/11 20:00:06 tgl Exp $
*
* NOTES
* These routines allow the parser/planner/executor to perform
@@ -93,22 +93,12 @@ struct cachedesc
};
static const struct cachedesc cacheinfo[] = {
- {AggregateRelationName, /* AGGNAME */
- AggregateNameTypeIndex,
- 0,
- 2,
- {
- Anum_pg_aggregate_aggname,
- Anum_pg_aggregate_aggbasetype,
- 0,
- 0
- }},
- {AggregateRelationName, /* AGGOID */
- AggregateOidIndex,
+ {AggregateRelationName, /* AGGFNOID */
+ AggregateFnoidIndex,
0,
1,
{
- ObjectIdAttributeNumber,
+ Anum_pg_aggregate_aggfnoid,
0,
0,
0
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 8ebc247dc21..0e54fd80d78 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -22,7 +22,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.246 2002/04/05 11:51:12 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.247 2002/04/11 20:00:06 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1873,7 +1873,7 @@ getAggregates(int *numAggs)
"(select usename from pg_user where aggowner = usesysid) as usename "
"from pg_aggregate");
}
- else
+ else if (g_fout->remoteVersion < 70300)
{
appendPQExpBuffer(query, "SELECT pg_aggregate.oid, aggname, aggtransfn, "
"aggfinalfn, aggtranstype, aggbasetype, "
@@ -1882,6 +1882,16 @@ getAggregates(int *numAggs)
"(select usename from pg_user where aggowner = usesysid) as usename "
"from pg_aggregate");
}
+ else
+ {
+ appendPQExpBuffer(query, "SELECT p.oid, proname as aggname, aggtransfn, "
+ "aggfinalfn, aggtranstype, proargtypes[0] as aggbasetype, "
+ "agginitval, "
+ "'t'::boolean as convertok, "
+ "(select usename from pg_user where proowner = usesysid) as usename "
+ "from pg_aggregate a, pg_proc p "
+ "where a.aggfnoid = p.oid");
+ }
res = PQexec(g_conn, query->data);
if (!res ||
@@ -1960,6 +1970,7 @@ getFuncs(int *numFuncs)
int i_prosrc;
int i_probin;
int i_provolatile;
+ int i_isimplicit;
int i_isstrict;
int i_usename;
@@ -1972,7 +1983,8 @@ getFuncs(int *numFuncs)
"proretset, proargtypes, prosrc, probin, "
"(select usename from pg_user where proowner = usesysid) as usename, "
"case when proiscachable then 'i' else 'v' end as provolatile, "
-"'f'::boolean as proisstrict "
+ "'f'::boolean as proimplicit, "
+ "'f'::boolean as proisstrict "
"from pg_proc "
"where pg_proc.oid > '%u'::oid",
g_last_builtin_oid);
@@ -1984,6 +1996,7 @@ getFuncs(int *numFuncs)
"proretset, proargtypes, prosrc, probin, "
"(select usename from pg_user where proowner = usesysid) as usename, "
"case when proiscachable then 'i' else 'v' end as provolatile, "
+ "'f'::boolean as proimplicit, "
"proisstrict "
"from pg_proc "
"where pg_proc.oid > '%u'::oid",
@@ -1995,9 +2008,9 @@ getFuncs(int *numFuncs)
"SELECT pg_proc.oid, proname, prolang, pronargs, prorettype, "
"proretset, proargtypes, prosrc, probin, "
"(select usename from pg_user where proowner = usesysid) as usename, "
- "provolatile, proisstrict "
+ "provolatile, proimplicit, proisstrict "
"from pg_proc "
- "where pg_proc.oid > '%u'::oid",
+ "where pg_proc.oid > '%u'::oid and not proisagg",
g_last_builtin_oid);
}
@@ -2028,6 +2041,7 @@ getFuncs(int *numFuncs)
i_prosrc = PQfnumber(res, "prosrc");
i_probin = PQfnumber(res, "probin");
i_provolatile = PQfnumber(res, "provolatile");
+ i_isimplicit = PQfnumber(res, "proimplicit");
i_isstrict = PQfnumber(res, "proisstrict");
i_usename = PQfnumber(res, "usename");
@@ -2045,6 +2059,7 @@ getFuncs(int *numFuncs)
finfo[i].lang = atooid(PQgetvalue(res, i, i_prolang));
finfo[i].usename = strdup(PQgetvalue(res, i, i_usename));
finfo[i].provolatile = (PQgetvalue(res, i, i_provolatile))[0];
+ finfo[i].isimplicit = (strcmp(PQgetvalue(res, i, i_isimplicit), "t") == 0);
finfo[i].isstrict = (strcmp(PQgetvalue(res, i, i_isstrict), "t") == 0);
if (strlen(finfo[i].usename) == 0)
@@ -3670,6 +3685,7 @@ dumpOneFunc(Archive *fout, FuncInfo *finfo, int i,
formatStringLiteral(q, func_lang, CONV_ALL);
if (finfo[i].provolatile != PROVOLATILE_VOLATILE ||
+ finfo[i].isimplicit ||
finfo[i].isstrict) /* OR in new attrs here */
{
appendPQExpBuffer(q, " WITH (");
@@ -3692,11 +3708,18 @@ dumpOneFunc(Archive *fout, FuncInfo *finfo, int i,
exit_nicely();
}
+ if (finfo[i].isimplicit)
+ {
+ appendPQExpBuffer(q, "%s implicitCoercion", listSep);
+ listSep = listSepComma;
+ }
+
if (finfo[i].isstrict)
{
appendPQExpBuffer(q, "%s isStrict", listSep);
listSep = listSepComma;
}
+
appendPQExpBuffer(q, " )");
}
@@ -4012,7 +4035,12 @@ dumpAggs(Archive *fout, AggInfo *agginfo, int numAggs,
resetPQExpBuffer(q);
appendPQExpBuffer(q, "AGGREGATE %s", aggSig->data);
- dumpComment(fout, q->data, agginfo[i].oid, "pg_aggregate", 0, NULL);
+ if (g_fout->remoteVersion < 70300)
+ dumpComment(fout, q->data, agginfo[i].oid, "pg_aggregate",
+ 0, NULL);
+ else
+ dumpComment(fout, q->data, agginfo[i].oid, "pg_proc",
+ 0, NULL);
}
destroyPQExpBuffer(q);
diff --git a/src/bin/pg_dump/pg_dump.h b/src/bin/pg_dump/pg_dump.h
index 87bef9ba950..dc67a2efbef 100644
--- a/src/bin/pg_dump/pg_dump.h
+++ b/src/bin/pg_dump/pg_dump.h
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: pg_dump.h,v 1.80 2002/04/05 11:51:13 momjian Exp $
+ * $Id: pg_dump.h,v 1.81 2002/04/11 20:00:08 tgl Exp $
*
* Modifications - 6/12/96 - dave@bensoft.com - version 1.13.dhb.2
*
@@ -73,6 +73,7 @@ typedef struct _funcInfo
char *probin;
char *usename;
char provolatile; /* Attr */
+ bool isimplicit; /* Attr */
bool isstrict; /* Attr */
int dumped; /* 1 if already dumped */
} FuncInfo;
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index 68bbcfb8026..5c00ba87814 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -3,7 +3,7 @@
*
* Copyright 2000 by PostgreSQL Global Development Group
*
- * $Header: /cvsroot/pgsql/src/bin/psql/describe.c,v 1.48 2002/04/05 11:52:38 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/describe.c,v 1.49 2002/04/11 20:00:08 tgl Exp $
*/
#include "postgres_fe.h"
#include "describe.h"
@@ -43,22 +43,23 @@ describeAggregates(const char *name)
/*
* There are two kinds of aggregates: ones that work on particular
- * types ones that work on all
+ * types and ones that work on all (denoted by input type = 0)
*/
snprintf(buf, sizeof(buf),
- "SELECT a.aggname AS \"%s\",\n"
- " CASE a.aggbasetype\n"
+ "SELECT p.proname AS \"%s\",\n"
+ " CASE p.proargtypes[0]\n"
" WHEN 0 THEN CAST('%s' AS text)\n"
- " ELSE format_type(a.aggbasetype, NULL)\n"
+ " ELSE format_type(p.proargtypes[0], NULL)\n"
" END AS \"%s\",\n"
- " obj_description(a.oid, 'pg_aggregate') as \"%s\"\n"
- "FROM pg_aggregate a\n",
+ " obj_description(p.oid, 'pg_proc') as \"%s\"\n"
+ "FROM pg_proc p\n"
+ "WHERE p.proisagg\n",
_("Name"), _("(all types)"),
_("Data type"), _("Description"));
if (name)
{
- strcat(buf, "WHERE a.aggname ~ '^");
+ strcat(buf, " AND p.proname ~ '^");
strncat(buf, name, REGEXP_CUTOFF);
strcat(buf, "'\n");
}
@@ -112,12 +113,12 @@ describeFunctions(const char *name, bool verbose)
if (!verbose)
strcat(buf,
"\nFROM pg_proc p\n"
- "WHERE p.prorettype <> 0 AND (pronargs = 0 OR oidvectortypes(p.proargtypes) <> '')\n");
+ "WHERE p.prorettype <> 0 AND (pronargs = 0 OR oidvectortypes(p.proargtypes) <> '') AND NOT p.proisagg\n");
else
strcat(buf,
"\nFROM pg_proc p, pg_language l, pg_user u\n"
"WHERE p.prolang = l.oid AND p.proowner = u.usesysid\n"
- " AND p.prorettype <> 0 AND (pronargs = 0 OR oidvectortypes(p.proargtypes) <> '')\n");
+ " AND p.prorettype <> 0 AND (pronargs = 0 OR oidvectortypes(p.proargtypes) <> '') AND NOT p.proisagg\n");
if (name)
{
@@ -347,16 +348,17 @@ objectDescription(const char *object)
"FROM (\n"
/* Aggregate descriptions */
- " SELECT a.oid as oid, a.tableoid as tableoid,\n"
- " CAST(a.aggname AS text) as name, CAST('%s' AS text) as object\n"
- " FROM pg_aggregate a\n"
+ " SELECT p.oid as oid, p.tableoid as tableoid,\n"
+ " CAST(p.proname AS text) as name, CAST('%s' AS text) as object\n"
+ " FROM pg_proc p\n"
+ " WHERE p.proisagg\n"
/* Function descriptions (except in/outs for datatypes) */
"UNION ALL\n"
" SELECT p.oid as oid, p.tableoid as tableoid,\n"
" CAST(p.proname AS text) as name, CAST('%s' AS text) as object\n"
" FROM pg_proc p\n"
- " WHERE p.pronargs = 0 or oidvectortypes(p.proargtypes) <> ''\n"
+ " WHERE (p.pronargs = 0 or oidvectortypes(p.proargtypes) <> '') AND NOT p.proisagg\n"
/* Operator descriptions (must get comment via associated function) */
"UNION ALL\n"
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index f25a45ef622..ce75211bbef 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -3,7 +3,7 @@
*
* Copyright 2000 by PostgreSQL Global Development Group
*
- * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v 1.47 2002/04/01 03:34:27 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v 1.48 2002/04/11 20:00:09 tgl Exp $
*/
/*----------------------------------------------------------------------
@@ -132,7 +132,7 @@ typedef struct
} pgsql_thing_t;
pgsql_thing_t words_after_create[] = {
- {"AGGREGATE", "SELECT distinct aggname FROM pg_aggregate WHERE substr(aggname,1,%d)='%s'"},
+ {"AGGREGATE", "SELECT distinct proname FROM pg_proc WHERE proisagg AND substr(proname,1,%d)='%s'"},
{"DATABASE", "SELECT datname FROM pg_database WHERE substr(datname,1,%d)='%s'"},
{"FUNCTION", "SELECT distinct proname FROM pg_proc WHERE substr(proname,1,%d)='%s'"},
{"GROUP", "SELECT groname FROM pg_group WHERE substr(groname,1,%d)='%s'"},
diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h
index 9d89802c561..457bcd43fb9 100644
--- a/src/include/catalog/catversion.h
+++ b/src/include/catalog/catversion.h
@@ -37,7 +37,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: catversion.h,v 1.113 2002/04/05 00:31:32 tgl Exp $
+ * $Id: catversion.h,v 1.114 2002/04/11 20:00:10 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -53,6 +53,6 @@
*/
/* yyyymmddN */
-#define CATALOG_VERSION_NO 200204031
+#define CATALOG_VERSION_NO 200204101
#endif
diff --git a/src/include/catalog/indexing.h b/src/include/catalog/indexing.h
index 6b97e882d90..6aa58ec563e 100644
--- a/src/include/catalog/indexing.h
+++ b/src/include/catalog/indexing.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: indexing.h,v 1.61 2002/04/05 00:31:32 tgl Exp $
+ * $Id: indexing.h,v 1.62 2002/04/11 20:00:10 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -20,7 +20,7 @@
/*
* Number of indices that exist for each system catalog
*/
-#define Num_pg_aggregate_indices 2
+#define Num_pg_aggregate_indices 1
#define Num_pg_am_indices 2
#define Num_pg_amop_indices 2
#define Num_pg_amproc_indices 1
@@ -51,8 +51,7 @@
#define AccessMethodOperatorIndex "pg_amop_opc_opr_index"
#define AccessMethodStrategyIndex "pg_amop_opc_strategy_index"
#define AccessMethodProcedureIndex "pg_amproc_opc_procnum_index"
-#define AggregateNameTypeIndex "pg_aggregate_name_type_index"
-#define AggregateOidIndex "pg_aggregate_oid_index"
+#define AggregateFnoidIndex "pg_aggregate_fnoid_index"
#define AmNameIndex "pg_am_name_index"
#define AmOidIndex "pg_am_oid_index"
#define AttrDefaultIndex "pg_attrdef_adrelid_adnum_index"
@@ -145,8 +144,7 @@ extern void CatalogIndexInsert(Relation *idescs, int nIndices,
* that is just like in a normal 'create index' SQL command.
*/
-DECLARE_UNIQUE_INDEX(pg_aggregate_name_type_index on pg_aggregate using btree(aggname name_ops, aggbasetype oid_ops));
-DECLARE_UNIQUE_INDEX(pg_aggregate_oid_index on pg_aggregate using btree(oid oid_ops));
+DECLARE_UNIQUE_INDEX(pg_aggregate_fnoid_index on pg_aggregate using btree(aggfnoid oid_ops));
DECLARE_UNIQUE_INDEX(pg_am_name_index on pg_am using btree(amname name_ops));
DECLARE_UNIQUE_INDEX(pg_am_oid_index on pg_am using btree(oid oid_ops));
DECLARE_UNIQUE_INDEX(pg_amop_opc_opr_index on pg_amop using btree(amopclaid oid_ops, amopopr oid_ops));
diff --git a/src/include/catalog/pg_aggregate.h b/src/include/catalog/pg_aggregate.h
index 3d44f4c4c0f..252895276e6 100644
--- a/src/include/catalog/pg_aggregate.h
+++ b/src/include/catalog/pg_aggregate.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: pg_aggregate.h,v 1.37 2002/04/09 20:35:54 tgl Exp $
+ * $Id: pg_aggregate.h,v 1.38 2002/04/11 20:00:11 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -31,25 +31,19 @@
*
* cpp turns this into typedef struct FormData_pg_aggregate
*
- * aggname name of the aggregate
- * aggowner owner (creator) of the aggregate
+ * aggfnoid pg_proc OID of the aggregate itself
* aggtransfn transition function
* aggfinalfn final function
- * aggbasetype type of data on which aggregate operates
* aggtranstype type of aggregate's transition (state) data
- * aggfinaltype type of aggregate's final result
* agginitval initial value for transition state
* ----------------------------------------------------------------
*/
-CATALOG(pg_aggregate)
+CATALOG(pg_aggregate) BKI_WITHOUT_OIDS
{
- NameData aggname;
- int4 aggowner;
+ regproc aggfnoid;
regproc aggtransfn;
regproc aggfinalfn;
- Oid aggbasetype;
Oid aggtranstype;
- Oid aggfinaltype;
text agginitval; /* VARIABLE LENGTH FIELD */
} FormData_pg_aggregate;
@@ -65,15 +59,12 @@ typedef FormData_pg_aggregate *Form_pg_aggregate;
* ----------------
*/
-#define Natts_pg_aggregate 8
-#define Anum_pg_aggregate_aggname 1
-#define Anum_pg_aggregate_aggowner 2
-#define Anum_pg_aggregate_aggtransfn 3
-#define Anum_pg_aggregate_aggfinalfn 4
-#define Anum_pg_aggregate_aggbasetype 5
-#define Anum_pg_aggregate_aggtranstype 6
-#define Anum_pg_aggregate_aggfinaltype 7
-#define Anum_pg_aggregate_agginitval 8
+#define Natts_pg_aggregate 5
+#define Anum_pg_aggregate_aggfnoid 1
+#define Anum_pg_aggregate_aggtransfn 2
+#define Anum_pg_aggregate_aggfinalfn 3
+#define Anum_pg_aggregate_aggtranstype 4
+#define Anum_pg_aggregate_agginitval 5
/* ----------------
@@ -81,76 +72,82 @@ typedef FormData_pg_aggregate *Form_pg_aggregate;
* ---------------
*/
-DATA(insert OID = 0 ( avg PGUID int8_accum numeric_avg 20 1231 1700 "{0,0,0}" ));
-DATA(insert OID = 0 ( avg PGUID int4_avg_accum int8_avg 23 1016 1700 "{0,0}" ));
-DATA(insert OID = 0 ( avg PGUID int2_avg_accum int8_avg 21 1016 1700 "{0,0}" ));
-DATA(insert OID = 0 ( avg PGUID numeric_accum numeric_avg 1700 1231 1700 "{0,0,0}" ));
-DATA(insert OID = 0 ( avg PGUID float4_accum float8_avg 700 1022 701 "{0,0,0}" ));
-DATA(insert OID = 0 ( avg PGUID float8_accum float8_avg 701 1022 701 "{0,0,0}" ));
-DATA(insert OID = 0 ( avg PGUID interval_accum interval_avg 1186 1187 1186 "{0 second,0 second}" ));
-
-DATA(insert OID = 0 ( sum PGUID int8_sum - 20 1700 1700 _null_ ));
-DATA(insert OID = 0 ( sum PGUID int4_sum - 23 20 20 _null_ ));
-DATA(insert OID = 0 ( sum PGUID int2_sum - 21 20 20 _null_ ));
-DATA(insert OID = 0 ( sum PGUID float4pl - 700 700 700 _null_ ));
-DATA(insert OID = 0 ( sum PGUID float8pl - 701 701 701 _null_ ));
-DATA(insert OID = 0 ( sum PGUID cash_pl - 790 790 790 _null_ ));
-DATA(insert OID = 0 ( sum PGUID interval_pl - 1186 1186 1186 _null_ ));
-DATA(insert OID = 0 ( sum PGUID numeric_add - 1700 1700 1700 _null_ ));
-
-DATA(insert OID = 0 ( max PGUID int8larger - 20 20 20 _null_ ));
-DATA(insert OID = 0 ( max PGUID int4larger - 23 23 23 _null_ ));
-DATA(insert OID = 0 ( max PGUID int2larger - 21 21 21 _null_ ));
-DATA(insert OID = 0 ( max PGUID oidlarger - 26 26 26 _null_ ));
-DATA(insert OID = 0 ( max PGUID float4larger - 700 700 700 _null_ ));
-DATA(insert OID = 0 ( max PGUID float8larger - 701 701 701 _null_ ));
-DATA(insert OID = 0 ( max PGUID int4larger - 702 702 702 _null_ ));
-DATA(insert OID = 0 ( max PGUID date_larger - 1082 1082 1082 _null_ ));
-DATA(insert OID = 0 ( max PGUID time_larger - 1083 1083 1083 _null_ ));
-DATA(insert OID = 0 ( max PGUID timetz_larger - 1266 1266 1266 _null_ ));
-DATA(insert OID = 0 ( max PGUID cashlarger - 790 790 790 _null_ ));
-DATA(insert OID = 0 ( max PGUID timestamp_larger - 1114 1114 1114 _null_ ));
-DATA(insert OID = 0 ( max PGUID timestamptz_larger - 1184 1184 1184 _null_ ));
-DATA(insert OID = 0 ( max PGUID interval_larger - 1186 1186 1186 _null_ ));
-DATA(insert OID = 0 ( max PGUID text_larger - 25 25 25 _null_ ));
-DATA(insert OID = 0 ( max PGUID numeric_larger - 1700 1700 1700 _null_ ));
-
-DATA(insert OID = 0 ( min PGUID int8smaller - 20 20 20 _null_ ));
-DATA(insert OID = 0 ( min PGUID int4smaller - 23 23 23 _null_ ));
-DATA(insert OID = 0 ( min PGUID int2smaller - 21 21 21 _null_ ));
-DATA(insert OID = 0 ( min PGUID oidsmaller - 26 26 26 _null_ ));
-DATA(insert OID = 0 ( min PGUID float4smaller - 700 700 700 _null_ ));
-DATA(insert OID = 0 ( min PGUID float8smaller - 701 701 701 _null_ ));
-DATA(insert OID = 0 ( min PGUID int4smaller - 702 702 702 _null_ ));
-DATA(insert OID = 0 ( min PGUID date_smaller - 1082 1082 1082 _null_ ));
-DATA(insert OID = 0 ( min PGUID time_smaller - 1083 1083 1083 _null_ ));
-DATA(insert OID = 0 ( min PGUID timetz_smaller - 1266 1266 1266 _null_ ));
-DATA(insert OID = 0 ( min PGUID cashsmaller - 790 790 790 _null_ ));
-DATA(insert OID = 0 ( min PGUID timestamp_smaller - 1114 1114 1114 _null_ ));
-DATA(insert OID = 0 ( min PGUID timestamptz_smaller - 1184 1184 1184 _null_ ));
-DATA(insert OID = 0 ( min PGUID interval_smaller - 1186 1186 1186 _null_ ));
-DATA(insert OID = 0 ( min PGUID text_smaller - 25 25 25 _null_ ));
-DATA(insert OID = 0 ( min PGUID numeric_smaller - 1700 1700 1700 _null_ ));
+/* avg */
+DATA(insert ( 2100 int8_accum numeric_avg 1231 "{0,0,0}" ));
+DATA(insert ( 2101 int4_avg_accum int8_avg 1016 "{0,0}" ));
+DATA(insert ( 2102 int2_avg_accum int8_avg 1016 "{0,0}" ));
+DATA(insert ( 2103 numeric_accum numeric_avg 1231 "{0,0,0}" ));
+DATA(insert ( 2104 float4_accum float8_avg 1022 "{0,0,0}" ));
+DATA(insert ( 2105 float8_accum float8_avg 1022 "{0,0,0}" ));
+DATA(insert ( 2106 interval_accum interval_avg 1187 "{0 second,0 second}" ));
+
+/* sum */
+DATA(insert ( 2107 int8_sum - 1700 _null_ ));
+DATA(insert ( 2108 int4_sum - 20 _null_ ));
+DATA(insert ( 2109 int2_sum - 20 _null_ ));
+DATA(insert ( 2110 float4pl - 700 _null_ ));
+DATA(insert ( 2111 float8pl - 701 _null_ ));
+DATA(insert ( 2112 cash_pl - 790 _null_ ));
+DATA(insert ( 2113 interval_pl - 1186 _null_ ));
+DATA(insert ( 2114 numeric_add - 1700 _null_ ));
+
+/* max */
+DATA(insert ( 2115 int8larger - 20 _null_ ));
+DATA(insert ( 2116 int4larger - 23 _null_ ));
+DATA(insert ( 2117 int2larger - 21 _null_ ));
+DATA(insert ( 2118 oidlarger - 26 _null_ ));
+DATA(insert ( 2119 float4larger - 700 _null_ ));
+DATA(insert ( 2120 float8larger - 701 _null_ ));
+DATA(insert ( 2121 int4larger - 702 _null_ ));
+DATA(insert ( 2122 date_larger - 1082 _null_ ));
+DATA(insert ( 2123 time_larger - 1083 _null_ ));
+DATA(insert ( 2124 timetz_larger - 1266 _null_ ));
+DATA(insert ( 2125 cashlarger - 790 _null_ ));
+DATA(insert ( 2126 timestamp_larger - 1114 _null_ ));
+DATA(insert ( 2127 timestamptz_larger - 1184 _null_ ));
+DATA(insert ( 2128 interval_larger - 1186 _null_ ));
+DATA(insert ( 2129 text_larger - 25 _null_ ));
+DATA(insert ( 2130 numeric_larger - 1700 _null_ ));
+
+/* min */
+DATA(insert ( 2131 int8smaller - 20 _null_ ));
+DATA(insert ( 2132 int4smaller - 23 _null_ ));
+DATA(insert ( 2133 int2smaller - 21 _null_ ));
+DATA(insert ( 2134 oidsmaller - 26 _null_ ));
+DATA(insert ( 2135 float4smaller - 700 _null_ ));
+DATA(insert ( 2136 float8smaller - 701 _null_ ));
+DATA(insert ( 2137 int4smaller - 702 _null_ ));
+DATA(insert ( 2138 date_smaller - 1082 _null_ ));
+DATA(insert ( 2139 time_smaller - 1083 _null_ ));
+DATA(insert ( 2140 timetz_smaller - 1266 _null_ ));
+DATA(insert ( 2141 cashsmaller - 790 _null_ ));
+DATA(insert ( 2142 timestamp_smaller - 1114 _null_ ));
+DATA(insert ( 2143 timestamptz_smaller - 1184 _null_ ));
+DATA(insert ( 2144 interval_smaller - 1186 _null_ ));
+DATA(insert ( 2145 text_smaller - 25 _null_ ));
+DATA(insert ( 2146 numeric_smaller - 1700 _null_ ));
/*
* Using int8inc for count() is cheating a little, since it really only
* takes 1 parameter not 2, but nodeAgg.c won't complain ...
*/
-DATA(insert OID = 0 ( count PGUID int8inc - 0 20 20 0 ));
-
-DATA(insert OID = 0 ( variance PGUID int8_accum numeric_variance 20 1231 1700 "{0,0,0}" ));
-DATA(insert OID = 0 ( variance PGUID int4_accum numeric_variance 23 1231 1700 "{0,0,0}" ));
-DATA(insert OID = 0 ( variance PGUID int2_accum numeric_variance 21 1231 1700 "{0,0,0}" ));
-DATA(insert OID = 0 ( variance PGUID float4_accum float8_variance 700 1022 701 "{0,0,0}" ));
-DATA(insert OID = 0 ( variance PGUID float8_accum float8_variance 701 1022 701 "{0,0,0}" ));
-DATA(insert OID = 0 ( variance PGUID numeric_accum numeric_variance 1700 1231 1700 "{0,0,0}" ));
-
-DATA(insert OID = 0 ( stddev PGUID int8_accum numeric_stddev 20 1231 1700 "{0,0,0}" ));
-DATA(insert OID = 0 ( stddev PGUID int4_accum numeric_stddev 23 1231 1700 "{0,0,0}" ));
-DATA(insert OID = 0 ( stddev PGUID int2_accum numeric_stddev 21 1231 1700 "{0,0,0}" ));
-DATA(insert OID = 0 ( stddev PGUID float4_accum float8_stddev 700 1022 701 "{0,0,0}" ));
-DATA(insert OID = 0 ( stddev PGUID float8_accum float8_stddev 701 1022 701 "{0,0,0}" ));
-DATA(insert OID = 0 ( stddev PGUID numeric_accum numeric_stddev 1700 1231 1700 "{0,0,0}" ));
+DATA(insert ( 2147 int8inc - 20 0 ));
+
+/* variance */
+DATA(insert ( 2148 int8_accum numeric_variance 1231 "{0,0,0}" ));
+DATA(insert ( 2149 int4_accum numeric_variance 1231 "{0,0,0}" ));
+DATA(insert ( 2150 int2_accum numeric_variance 1231 "{0,0,0}" ));
+DATA(insert ( 2151 float4_accum float8_variance 1022 "{0,0,0}" ));
+DATA(insert ( 2152 float8_accum float8_variance 1022 "{0,0,0}" ));
+DATA(insert ( 2153 numeric_accum numeric_variance 1231 "{0,0,0}" ));
+
+/* stddev */
+DATA(insert ( 2154 int8_accum numeric_stddev 1231 "{0,0,0}" ));
+DATA(insert ( 2155 int4_accum numeric_stddev 1231 "{0,0,0}" ));
+DATA(insert ( 2156 int2_accum numeric_stddev 1231 "{0,0,0}" ));
+DATA(insert ( 2157 float4_accum float8_stddev 1022 "{0,0,0}" ));
+DATA(insert ( 2158 float8_accum float8_stddev 1022 "{0,0,0}" ));
+DATA(insert ( 2159 numeric_accum numeric_stddev 1231 "{0,0,0}" ));
/*
* prototypes for functions in pg_aggregate.c
@@ -163,7 +160,4 @@ extern void AggregateCreate(const char *aggName,
Oid aggTransType,
const char *agginitval);
-extern Datum AggNameGetInitVal(char *aggName, Oid basetype,
- bool *isNull);
-
#endif /* PG_AGGREGATE_H */
diff --git a/src/include/catalog/pg_attribute.h b/src/include/catalog/pg_attribute.h
index b65c3a54e15..b39ab3acd57 100644
--- a/src/include/catalog/pg_attribute.h
+++ b/src/include/catalog/pg_attribute.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: pg_attribute.h,v 1.89 2002/04/05 00:31:33 tgl Exp $
+ * $Id: pg_attribute.h,v 1.90 2002/04/11 20:00:11 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -298,41 +298,43 @@ DATA(insert ( 1262 tableoid 26 0 4 -7 0 -1 -1 t p f i f f));
{ 1255, {"pronamespace"}, 26, 0, 4, 2, 0, -1, -1, true, 'p', false, 'i', false, false }, \
{ 1255, {"proowner"}, 23, 0, 4, 3, 0, -1, -1, true, 'p', false, 'i', false, false }, \
{ 1255, {"prolang"}, 26, 0, 4, 4, 0, -1, -1, true, 'p', false, 'i', false, false }, \
-{ 1255, {"proisinh"}, 16, 0, 1, 5, 0, -1, -1, true, 'p', false, 'c', false, false }, \
+{ 1255, {"proisagg"}, 16, 0, 1, 5, 0, -1, -1, true, 'p', false, 'c', false, false }, \
{ 1255, {"proistrusted"}, 16, 0, 1, 6, 0, -1, -1, true, 'p', false, 'c', false, false }, \
-{ 1255, {"proisstrict"}, 16, 0, 1, 7, 0, -1, -1, true, 'p', false, 'c', false, false }, \
-{ 1255, {"provolatile"}, 18, 0, 1, 8, 0, -1, -1, true, 'p', false, 'c', false, false }, \
-{ 1255, {"pronargs"}, 21, 0, 2, 9, 0, -1, -1, true, 'p', false, 's', false, false }, \
-{ 1255, {"proretset"}, 16, 0, 1, 10, 0, -1, -1, true, 'p', false, 'c', false, false }, \
-{ 1255, {"prorettype"}, 26, 0, 4, 11, 0, -1, -1, true, 'p', false, 'i', false, false }, \
-{ 1255, {"proargtypes"}, 30, 0, INDEX_MAX_KEYS*4, 12, 0, -1, -1, false, 'p', false, 'i', false, false }, \
-{ 1255, {"probyte_pct"}, 23, 0, 4, 13, 0, -1, -1, true, 'p', false, 'i', false, false }, \
-{ 1255, {"properbyte_cpu"}, 23, 0, 4, 14, 0, -1, -1, true, 'p', false, 'i', false, false }, \
-{ 1255, {"propercall_cpu"}, 23, 0, 4, 15, 0, -1, -1, true, 'p', false, 'i', false, false }, \
-{ 1255, {"prooutin_ratio"}, 23, 0, 4, 16, 0, -1, -1, true, 'p', false, 'i', false, false }, \
-{ 1255, {"prosrc"}, 25, 0, -1, 17, 0, -1, -1, false, 'x', false, 'i', false, false }, \
-{ 1255, {"probin"}, 17, 0, -1, 18, 0, -1, -1, false, 'x', false, 'i', false, false }, \
-{ 1255, {"proacl"}, 1034, 0, -1, 19, 0, -1, -1, false, 'x', false, 'i', false, false }
+{ 1255, {"proimplicit"}, 16, 0, 1, 7, 0, -1, -1, true, 'p', false, 'c', false, false }, \
+{ 1255, {"proisstrict"}, 16, 0, 1, 8, 0, -1, -1, true, 'p', false, 'c', false, false }, \
+{ 1255, {"proretset"}, 16, 0, 1, 9, 0, -1, -1, true, 'p', false, 'c', false, false }, \
+{ 1255, {"provolatile"}, 18, 0, 1, 10, 0, -1, -1, true, 'p', false, 'c', false, false }, \
+{ 1255, {"pronargs"}, 21, 0, 2, 11, 0, -1, -1, true, 'p', false, 's', false, false }, \
+{ 1255, {"prorettype"}, 26, 0, 4, 12, 0, -1, -1, true, 'p', false, 'i', false, false }, \
+{ 1255, {"proargtypes"}, 30, 0, INDEX_MAX_KEYS*4, 13, 0, -1, -1, false, 'p', false, 'i', false, false }, \
+{ 1255, {"probyte_pct"}, 23, 0, 4, 14, 0, -1, -1, true, 'p', false, 'i', false, false }, \
+{ 1255, {"properbyte_cpu"}, 23, 0, 4, 15, 0, -1, -1, true, 'p', false, 'i', false, false }, \
+{ 1255, {"propercall_cpu"}, 23, 0, 4, 16, 0, -1, -1, true, 'p', false, 'i', false, false }, \
+{ 1255, {"prooutin_ratio"}, 23, 0, 4, 17, 0, -1, -1, true, 'p', false, 'i', false, false }, \
+{ 1255, {"prosrc"}, 25, 0, -1, 18, 0, -1, -1, false, 'x', false, 'i', false, false }, \
+{ 1255, {"probin"}, 17, 0, -1, 19, 0, -1, -1, false, 'x', false, 'i', false, false }, \
+{ 1255, {"proacl"}, 1034, 0, -1, 20, 0, -1, -1, false, 'x', false, 'i', false, false }
DATA(insert ( 1255 proname 19 DEFAULT_ATTSTATTARGET NAMEDATALEN 1 0 -1 -1 f p f i f f));
DATA(insert ( 1255 pronamespace 26 0 4 2 0 -1 -1 t p f i f f));
DATA(insert ( 1255 proowner 23 0 4 3 0 -1 -1 t p f i f f));
DATA(insert ( 1255 prolang 26 0 4 4 0 -1 -1 t p f i f f));
-DATA(insert ( 1255 proisinh 16 0 1 5 0 -1 -1 t p f c f f));
+DATA(insert ( 1255 proisagg 16 0 1 5 0 -1 -1 t p f c f f));
DATA(insert ( 1255 proistrusted 16 0 1 6 0 -1 -1 t p f c f f));
-DATA(insert ( 1255 proisstrict 16 0 1 7 0 -1 -1 t p f c f f));
-DATA(insert ( 1255 provolatile 18 0 1 8 0 -1 -1 t p f c f f));
-DATA(insert ( 1255 pronargs 21 0 2 9 0 -1 -1 t p f s f f));
-DATA(insert ( 1255 proretset 16 0 1 10 0 -1 -1 t p f c f f));
-DATA(insert ( 1255 prorettype 26 0 4 11 0 -1 -1 t p f i f f));
-DATA(insert ( 1255 proargtypes 30 0 INDEX_MAX_KEYS*4 12 0 -1 -1 f p f i f f));
-DATA(insert ( 1255 probyte_pct 23 0 4 13 0 -1 -1 t p f i f f));
-DATA(insert ( 1255 properbyte_cpu 23 0 4 14 0 -1 -1 t p f i f f));
-DATA(insert ( 1255 propercall_cpu 23 0 4 15 0 -1 -1 t p f i f f));
-DATA(insert ( 1255 prooutin_ratio 23 0 4 16 0 -1 -1 t p f i f f));
-DATA(insert ( 1255 prosrc 25 0 -1 17 0 -1 -1 f x f i f f));
-DATA(insert ( 1255 probin 17 0 -1 18 0 -1 -1 f x f i f f));
-DATA(insert ( 1255 proacl 1034 0 -1 19 0 -1 -1 f x f i f f));
+DATA(insert ( 1255 proimplicit 16 0 1 7 0 -1 -1 t p f c f f));
+DATA(insert ( 1255 proisstrict 16 0 1 8 0 -1 -1 t p f c f f));
+DATA(insert ( 1255 proretset 16 0 1 9 0 -1 -1 t p f c f f));
+DATA(insert ( 1255 provolatile 18 0 1 10 0 -1 -1 t p f c f f));
+DATA(insert ( 1255 pronargs 21 0 2 11 0 -1 -1 t p f s f f));
+DATA(insert ( 1255 prorettype 26 0 4 12 0 -1 -1 t p f i f f));
+DATA(insert ( 1255 proargtypes 30 0 INDEX_MAX_KEYS*4 13 0 -1 -1 f p f i f f));
+DATA(insert ( 1255 probyte_pct 23 0 4 14 0 -1 -1 t p f i f f));
+DATA(insert ( 1255 properbyte_cpu 23 0 4 15 0 -1 -1 t p f i f f));
+DATA(insert ( 1255 propercall_cpu 23 0 4 16 0 -1 -1 t p f i f f));
+DATA(insert ( 1255 prooutin_ratio 23 0 4 17 0 -1 -1 t p f i f f));
+DATA(insert ( 1255 prosrc 25 0 -1 18 0 -1 -1 f x f i f f));
+DATA(insert ( 1255 probin 17 0 -1 19 0 -1 -1 f x f i f f));
+DATA(insert ( 1255 proacl 1034 0 -1 20 0 -1 -1 f x f i f f));
DATA(insert ( 1255 ctid 27 0 6 -1 0 -1 -1 f p f i f f));
DATA(insert ( 1255 oid 26 0 4 -2 0 -1 -1 t p f i f f));
DATA(insert ( 1255 xmin 28 0 4 -3 0 -1 -1 t p f i f f));
diff --git a/src/include/catalog/pg_class.h b/src/include/catalog/pg_class.h
index b17197a96da..980c6252f65 100644
--- a/src/include/catalog/pg_class.h
+++ b/src/include/catalog/pg_class.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: pg_class.h,v 1.65 2002/04/05 00:31:33 tgl Exp $
+ * $Id: pg_class.h,v 1.66 2002/04/11 20:00:11 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -138,7 +138,7 @@ DATA(insert OID = 1247 ( pg_type PGNSP 71 PGUID 0 1247 0 0 0 0 f f r 23 0 0 0
DESCR("");
DATA(insert OID = 1249 ( pg_attribute PGNSP 75 PGUID 0 1249 0 0 0 0 f f r 15 0 0 0 0 0 f f f f _null_ ));
DESCR("");
-DATA(insert OID = 1255 ( pg_proc PGNSP 81 PGUID 0 1255 0 0 0 0 f f r 19 0 0 0 0 0 t f f f _null_ ));
+DATA(insert OID = 1255 ( pg_proc PGNSP 81 PGUID 0 1255 0 0 0 0 f f r 20 0 0 0 0 0 t f f f _null_ ));
DESCR("");
DATA(insert OID = 1259 ( pg_class PGNSP 83 PGUID 0 1259 0 0 0 0 f f r 24 0 0 0 0 0 t f f f _null_ ));
DESCR("");
diff --git a/src/include/catalog/pg_operator.h b/src/include/catalog/pg_operator.h
index 00ba73cd762..8fcb3b9ed56 100644
--- a/src/include/catalog/pg_operator.h
+++ b/src/include/catalog/pg_operator.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: pg_operator.h,v 1.100 2002/03/29 19:06:19 tgl Exp $
+ * $Id: pg_operator.h,v 1.101 2002/04/11 20:00:11 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -289,10 +289,10 @@ DATA(insert OID = 612 ( ">=" PGUID 0 b t f 26 26 16 611 609 0 0 oidge s
#define MAX_OIDCMP 612 /* used by cache code */
DATA(insert OID = 644 ( "<>" PGUID 0 b t f 30 30 16 644 649 0 0 oidvectorne neqsel neqjoinsel ));
-DATA(insert OID = 645 ( "<" PGUID 0 b t f 30 30 16 646 648 0 0 oidvectorlt - - ));
-DATA(insert OID = 646 ( ">" PGUID 0 b t f 30 30 16 645 647 0 0 oidvectorgt - - ));
-DATA(insert OID = 647 ( "<=" PGUID 0 b t f 30 30 16 648 646 0 0 oidvectorle - - ));
-DATA(insert OID = 648 ( ">=" PGUID 0 b t f 30 30 16 647 645 0 0 oidvectorge - - ));
+DATA(insert OID = 645 ( "<" PGUID 0 b t f 30 30 16 646 648 0 0 oidvectorlt scalarltsel scalarltjoinsel ));
+DATA(insert OID = 646 ( ">" PGUID 0 b t f 30 30 16 645 647 0 0 oidvectorgt scalargtsel scalargtjoinsel ));
+DATA(insert OID = 647 ( "<=" PGUID 0 b t f 30 30 16 648 646 0 0 oidvectorle scalarltsel scalarltjoinsel ));
+DATA(insert OID = 648 ( ">=" PGUID 0 b t f 30 30 16 647 645 0 0 oidvectorge scalargtsel scalargtjoinsel ));
DATA(insert OID = 649 ( "=" PGUID 0 b t t 30 30 16 649 644 645 645 oidvectoreq eqsel eqjoinsel ));
DATA(insert OID = 613 ( "<->" PGUID 0 b t f 600 628 701 0 0 0 0 dist_pl - - ));
diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h
index ba310f3384b..a7f77f1f7df 100644
--- a/src/include/catalog/pg_proc.h
+++ b/src/include/catalog/pg_proc.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: pg_proc.h,v 1.226 2002/04/05 00:31:34 tgl Exp $
+ * $Id: pg_proc.h,v 1.227 2002/04/11 20:00:12 tgl Exp $
*
* NOTES
* The script catalog/genbki.sh reads this file and generates .bki
@@ -43,12 +43,13 @@ CATALOG(pg_proc) BOOTSTRAP
Oid pronamespace; /* OID of namespace containing this proc */
int4 proowner; /* proc owner */
Oid prolang; /* OID of pg_language entry */
- bool proisinh; /* is inherited? (currently unused) */
+ bool proisagg; /* is it an aggregate? */
bool proistrusted; /* is trusted? (currently unused) */
+ bool proimplicit; /* can be invoked as implicit coercion? */
bool proisstrict; /* strict with respect to NULLs? */
+ bool proretset; /* returns a set? */
char provolatile; /* see PROVOLATILE_ categories below */
int2 pronargs; /* number of arguments */
- bool proretset; /* returns a set? */
Oid prorettype; /* OID of result type */
oidvector proargtypes; /* OIDs of argument types */
int4 probyte_pct; /* currently unused */
@@ -71,26 +72,27 @@ typedef FormData_pg_proc *Form_pg_proc;
* compiler constants for pg_proc
* ----------------
*/
-#define Natts_pg_proc 19
+#define Natts_pg_proc 20
#define Anum_pg_proc_proname 1
#define Anum_pg_proc_pronamespace 2
#define Anum_pg_proc_proowner 3
#define Anum_pg_proc_prolang 4
-#define Anum_pg_proc_proisinh 5
+#define Anum_pg_proc_proisagg 5
#define Anum_pg_proc_proistrusted 6
-#define Anum_pg_proc_proisstrict 7
-#define Anum_pg_proc_provolatile 8
-#define Anum_pg_proc_pronargs 9
-#define Anum_pg_proc_proretset 10
-#define Anum_pg_proc_prorettype 11
-#define Anum_pg_proc_proargtypes 12
-#define Anum_pg_proc_probyte_pct 13
-#define Anum_pg_proc_properbyte_cpu 14
-#define Anum_pg_proc_propercall_cpu 15
-#define Anum_pg_proc_prooutin_ratio 16
-#define Anum_pg_proc_prosrc 17
-#define Anum_pg_proc_probin 18
-#define Anum_pg_proc_proacl 19
+#define Anum_pg_proc_proimplicit 7
+#define Anum_pg_proc_proisstrict 8
+#define Anum_pg_proc_proretset 9
+#define Anum_pg_proc_provolatile 10
+#define Anum_pg_proc_pronargs 11
+#define Anum_pg_proc_prorettype 12
+#define Anum_pg_proc_proargtypes 13
+#define Anum_pg_proc_probyte_pct 14
+#define Anum_pg_proc_properbyte_cpu 15
+#define Anum_pg_proc_propercall_cpu 16
+#define Anum_pg_proc_prooutin_ratio 17
+#define Anum_pg_proc_prosrc 18
+#define Anum_pg_proc_probin 19
+#define Anum_pg_proc_proacl 20
/* ----------------
* initial contents of pg_proc
@@ -101,2778 +103,2818 @@ typedef FormData_pg_proc *Form_pg_proc;
/* OIDS 1 - 99 */
-DATA(insert OID = 1242 ( boolin PGNSP PGUID 12 f t t i 1 f 16 "0" 100 0 0 100 boolin - _null_ ));
+DATA(insert OID = 1242 ( boolin PGNSP PGUID 12 f t f t f i 1 16 "0" 100 0 0 100 boolin - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1243 ( boolout PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 boolout - _null_ ));
+DATA(insert OID = 1243 ( boolout PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 boolout - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1244 ( byteain PGNSP PGUID 12 f t t i 1 f 17 "0" 100 0 0 100 byteain - _null_ ));
+DATA(insert OID = 1244 ( byteain PGNSP PGUID 12 f t f t f i 1 17 "0" 100 0 0 100 byteain - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 31 ( byteaout PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 byteaout - _null_ ));
+DATA(insert OID = 31 ( byteaout PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 byteaout - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1245 ( charin PGNSP PGUID 12 f t t i 1 f 18 "0" 100 0 0 100 charin - _null_ ));
+DATA(insert OID = 1245 ( charin PGNSP PGUID 12 f t f t f i 1 18 "0" 100 0 0 100 charin - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 33 ( charout PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 charout - _null_ ));
+DATA(insert OID = 33 ( charout PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 charout - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 34 ( namein PGNSP PGUID 12 f t t i 1 f 19 "0" 100 0 0 100 namein - _null_ ));
+DATA(insert OID = 34 ( namein PGNSP PGUID 12 f t f t f i 1 19 "0" 100 0 0 100 namein - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 35 ( nameout PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 nameout - _null_ ));
+DATA(insert OID = 35 ( nameout PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 nameout - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 38 ( int2in PGNSP PGUID 12 f t t i 1 f 21 "0" 100 0 0 100 int2in - _null_ ));
+DATA(insert OID = 38 ( int2in PGNSP PGUID 12 f t f t f i 1 21 "0" 100 0 0 100 int2in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 39 ( int2out PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 int2out - _null_ ));
+DATA(insert OID = 39 ( int2out PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 int2out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 40 ( int2vectorin PGNSP PGUID 12 f t t i 1 f 22 "0" 100 0 0 100 int2vectorin - _null_ ));
+DATA(insert OID = 40 ( int2vectorin PGNSP PGUID 12 f t f t f i 1 22 "0" 100 0 0 100 int2vectorin - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 41 ( int2vectorout PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 int2vectorout - _null_ ));
+DATA(insert OID = 41 ( int2vectorout PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 int2vectorout - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 42 ( int4in PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 int4in - _null_ ));
+DATA(insert OID = 42 ( int4in PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 int4in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 43 ( int4out PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 int4out - _null_ ));
+DATA(insert OID = 43 ( int4out PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 int4out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 44 ( regprocin PGNSP PGUID 12 f t t s 1 f 24 "0" 100 0 0 100 regprocin - _null_ ));
+DATA(insert OID = 44 ( regprocin PGNSP PGUID 12 f t f t f s 1 24 "0" 100 0 0 100 regprocin - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 45 ( regprocout PGNSP PGUID 12 f t t s 1 f 23 "0" 100 0 0 100 regprocout - _null_ ));
+DATA(insert OID = 45 ( regprocout PGNSP PGUID 12 f t f t f s 1 23 "0" 100 0 0 100 regprocout - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 46 ( textin PGNSP PGUID 12 f t t i 1 f 25 "0" 100 0 0 100 textin - _null_ ));
+DATA(insert OID = 46 ( textin PGNSP PGUID 12 f t f t f i 1 25 "0" 100 0 0 100 textin - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 47 ( textout PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 textout - _null_ ));
+DATA(insert OID = 47 ( textout PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 textout - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 48 ( tidin PGNSP PGUID 12 f t t i 1 f 27 "0" 100 0 0 100 tidin - _null_ ));
+DATA(insert OID = 48 ( tidin PGNSP PGUID 12 f t f t f i 1 27 "0" 100 0 0 100 tidin - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 49 ( tidout PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 tidout - _null_ ));
+DATA(insert OID = 49 ( tidout PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 tidout - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 50 ( xidin PGNSP PGUID 12 f t t i 1 f 28 "0" 100 0 0 100 xidin - _null_ ));
+DATA(insert OID = 50 ( xidin PGNSP PGUID 12 f t f t f i 1 28 "0" 100 0 0 100 xidin - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 51 ( xidout PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 xidout - _null_ ));
+DATA(insert OID = 51 ( xidout PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 xidout - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 52 ( cidin PGNSP PGUID 12 f t t i 1 f 29 "0" 100 0 0 100 cidin - _null_ ));
+DATA(insert OID = 52 ( cidin PGNSP PGUID 12 f t f t f i 1 29 "0" 100 0 0 100 cidin - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 53 ( cidout PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 cidout - _null_ ));
+DATA(insert OID = 53 ( cidout PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 cidout - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 54 ( oidvectorin PGNSP PGUID 12 f t t i 1 f 30 "0" 100 0 0 100 oidvectorin - _null_ ));
+DATA(insert OID = 54 ( oidvectorin PGNSP PGUID 12 f t f t f i 1 30 "0" 100 0 0 100 oidvectorin - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 55 ( oidvectorout PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 oidvectorout - _null_ ));
+DATA(insert OID = 55 ( oidvectorout PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 oidvectorout - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 56 ( boollt PGNSP PGUID 12 f t t i 2 f 16 "16 16" 100 0 0 100 boollt - _null_ ));
+DATA(insert OID = 56 ( boollt PGNSP PGUID 12 f t f t f i 2 16 "16 16" 100 0 0 100 boollt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 57 ( boolgt PGNSP PGUID 12 f t t i 2 f 16 "16 16" 100 0 0 100 boolgt - _null_ ));
+DATA(insert OID = 57 ( boolgt PGNSP PGUID 12 f t f t f i 2 16 "16 16" 100 0 0 100 boolgt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 60 ( booleq PGNSP PGUID 12 f t t i 2 f 16 "16 16" 100 0 0 100 booleq - _null_ ));
+DATA(insert OID = 60 ( booleq PGNSP PGUID 12 f t f t f i 2 16 "16 16" 100 0 0 100 booleq - _null_ ));
DESCR("equal");
-DATA(insert OID = 61 ( chareq PGNSP PGUID 12 f t t i 2 f 16 "18 18" 100 0 0 100 chareq - _null_ ));
+DATA(insert OID = 61 ( chareq PGNSP PGUID 12 f t f t f i 2 16 "18 18" 100 0 0 100 chareq - _null_ ));
DESCR("equal");
-DATA(insert OID = 62 ( nameeq PGNSP PGUID 12 f t t i 2 f 16 "19 19" 100 0 0 100 nameeq - _null_ ));
+DATA(insert OID = 62 ( nameeq PGNSP PGUID 12 f t f t f i 2 16 "19 19" 100 0 0 100 nameeq - _null_ ));
DESCR("equal");
-DATA(insert OID = 63 ( int2eq PGNSP PGUID 12 f t t i 2 f 16 "21 21" 100 0 0 100 int2eq - _null_ ));
+DATA(insert OID = 63 ( int2eq PGNSP PGUID 12 f t f t f i 2 16 "21 21" 100 0 0 100 int2eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 64 ( int2lt PGNSP PGUID 12 f t t i 2 f 16 "21 21" 100 0 0 100 int2lt - _null_ ));
+DATA(insert OID = 64 ( int2lt PGNSP PGUID 12 f t f t f i 2 16 "21 21" 100 0 0 100 int2lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 65 ( int4eq PGNSP PGUID 12 f t t i 2 f 16 "23 23" 100 0 0 100 int4eq - _null_ ));
+DATA(insert OID = 65 ( int4eq PGNSP PGUID 12 f t f t f i 2 16 "23 23" 100 0 0 100 int4eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 66 ( int4lt PGNSP PGUID 12 f t t i 2 f 16 "23 23" 100 0 0 100 int4lt - _null_ ));
+DATA(insert OID = 66 ( int4lt PGNSP PGUID 12 f t f t f i 2 16 "23 23" 100 0 0 100 int4lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 67 ( texteq PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100 texteq - _null_ ));
+DATA(insert OID = 67 ( texteq PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100 texteq - _null_ ));
DESCR("equal");
-DATA(insert OID = 68 ( xideq PGNSP PGUID 12 f t t i 2 f 16 "28 28" 100 0 0 100 xideq - _null_ ));
+DATA(insert OID = 68 ( xideq PGNSP PGUID 12 f t f t f i 2 16 "28 28" 100 0 0 100 xideq - _null_ ));
DESCR("equal");
-DATA(insert OID = 69 ( cideq PGNSP PGUID 12 f t t i 2 f 16 "29 29" 100 0 0 100 cideq - _null_ ));
+DATA(insert OID = 69 ( cideq PGNSP PGUID 12 f t f t f i 2 16 "29 29" 100 0 0 100 cideq - _null_ ));
DESCR("equal");
-DATA(insert OID = 70 ( charne PGNSP PGUID 12 f t t i 2 f 16 "18 18" 100 0 0 100 charne - _null_ ));
+DATA(insert OID = 70 ( charne PGNSP PGUID 12 f t f t f i 2 16 "18 18" 100 0 0 100 charne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 1246 ( charlt PGNSP PGUID 12 f t t i 2 f 16 "18 18" 100 0 0 100 charlt - _null_ ));
+DATA(insert OID = 1246 ( charlt PGNSP PGUID 12 f t f t f i 2 16 "18 18" 100 0 0 100 charlt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 72 ( charle PGNSP PGUID 12 f t t i 2 f 16 "18 18" 100 0 0 100 charle - _null_ ));
+DATA(insert OID = 72 ( charle PGNSP PGUID 12 f t f t f i 2 16 "18 18" 100 0 0 100 charle - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 73 ( chargt PGNSP PGUID 12 f t t i 2 f 16 "18 18" 100 0 0 100 chargt - _null_ ));
+DATA(insert OID = 73 ( chargt PGNSP PGUID 12 f t f t f i 2 16 "18 18" 100 0 0 100 chargt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 74 ( charge PGNSP PGUID 12 f t t i 2 f 16 "18 18" 100 0 0 100 charge - _null_ ));
+DATA(insert OID = 74 ( charge PGNSP PGUID 12 f t f t f i 2 16 "18 18" 100 0 0 100 charge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 1248 ( charpl PGNSP PGUID 12 f t t i 2 f 18 "18 18" 100 0 0 100 charpl - _null_ ));
+DATA(insert OID = 1248 ( charpl PGNSP PGUID 12 f t f t f i 2 18 "18 18" 100 0 0 100 charpl - _null_ ));
DESCR("add");
-DATA(insert OID = 1250 ( charmi PGNSP PGUID 12 f t t i 2 f 18 "18 18" 100 0 0 100 charmi - _null_ ));
+DATA(insert OID = 1250 ( charmi PGNSP PGUID 12 f t f t f i 2 18 "18 18" 100 0 0 100 charmi - _null_ ));
DESCR("subtract");
-DATA(insert OID = 77 ( charmul PGNSP PGUID 12 f t t i 2 f 18 "18 18" 100 0 0 100 charmul - _null_ ));
+DATA(insert OID = 77 ( charmul PGNSP PGUID 12 f t f t f i 2 18 "18 18" 100 0 0 100 charmul - _null_ ));
DESCR("multiply");
-DATA(insert OID = 78 ( chardiv PGNSP PGUID 12 f t t i 2 f 18 "18 18" 100 0 0 100 chardiv - _null_ ));
+DATA(insert OID = 78 ( chardiv PGNSP PGUID 12 f t f t f i 2 18 "18 18" 100 0 0 100 chardiv - _null_ ));
DESCR("divide");
-DATA(insert OID = 79 ( nameregexeq PGNSP PGUID 12 f t t i 2 f 16 "19 25" 100 0 0 100 nameregexeq - _null_ ));
+DATA(insert OID = 79 ( nameregexeq PGNSP PGUID 12 f t f t f i 2 16 "19 25" 100 0 0 100 nameregexeq - _null_ ));
DESCR("matches regex., case-sensitive");
-DATA(insert OID = 1252 ( nameregexne PGNSP PGUID 12 f t t i 2 f 16 "19 25" 100 0 0 100 nameregexne - _null_ ));
+DATA(insert OID = 1252 ( nameregexne PGNSP PGUID 12 f t f t f i 2 16 "19 25" 100 0 0 100 nameregexne - _null_ ));
DESCR("does not match regex., case-sensitive");
-DATA(insert OID = 1254 ( textregexeq PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100 textregexeq - _null_ ));
+DATA(insert OID = 1254 ( textregexeq PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100 textregexeq - _null_ ));
DESCR("matches regex., case-sensitive");
-DATA(insert OID = 1256 ( textregexne PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100 textregexne - _null_ ));
+DATA(insert OID = 1256 ( textregexne PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100 textregexne - _null_ ));
DESCR("does not match regex., case-sensitive");
-DATA(insert OID = 1257 ( textlen PGNSP PGUID 12 f t t i 1 f 23 "25" 100 0 0 100 textlen - _null_ ));
+DATA(insert OID = 1257 ( textlen PGNSP PGUID 12 f t f t f i 1 23 "25" 100 0 0 100 textlen - _null_ ));
DESCR("length");
-DATA(insert OID = 1258 ( textcat PGNSP PGUID 12 f t t i 2 f 25 "25 25" 100 0 0 100 textcat - _null_ ));
+DATA(insert OID = 1258 ( textcat PGNSP PGUID 12 f t f t f i 2 25 "25 25" 100 0 0 100 textcat - _null_ ));
DESCR("concatenate");
-DATA(insert OID = 84 ( boolne PGNSP PGUID 12 f t t i 2 f 16 "16 16" 100 0 0 100 boolne - _null_ ));
+DATA(insert OID = 84 ( boolne PGNSP PGUID 12 f t f t f i 2 16 "16 16" 100 0 0 100 boolne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 89 ( version PGNSP PGUID 12 f t t s 0 f 25 "" 100 0 0 100 pgsql_version - _null_ ));
+DATA(insert OID = 89 ( version PGNSP PGUID 12 f t f t f s 0 25 "" 100 0 0 100 pgsql_version - _null_ ));
DESCR("PostgreSQL version string");
/* OIDS 100 - 199 */
-DATA(insert OID = 100 ( int8fac PGNSP PGUID 12 f t t i 1 f 20 "20" 100 0 0 100 int8fac - _null_ ));
+DATA(insert OID = 100 ( int8fac PGNSP PGUID 12 f t f t f i 1 20 "20" 100 0 0 100 int8fac - _null_ ));
DESCR("factorial");
-DATA(insert OID = 101 ( eqsel PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100 eqsel - _null_ ));
+DATA(insert OID = 101 ( eqsel PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100 eqsel - _null_ ));
DESCR("restriction selectivity of = and related operators");
-DATA(insert OID = 102 ( neqsel PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100 neqsel - _null_ ));
+DATA(insert OID = 102 ( neqsel PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100 neqsel - _null_ ));
DESCR("restriction selectivity of <> and related operators");
-DATA(insert OID = 103 ( scalarltsel PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100 scalarltsel - _null_ ));
+DATA(insert OID = 103 ( scalarltsel PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100 scalarltsel - _null_ ));
DESCR("restriction selectivity of < and related operators on scalar datatypes");
-DATA(insert OID = 104 ( scalargtsel PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100 scalargtsel - _null_ ));
+DATA(insert OID = 104 ( scalargtsel PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100 scalargtsel - _null_ ));
DESCR("restriction selectivity of > and related operators on scalar datatypes");
-DATA(insert OID = 105 ( eqjoinsel PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100 eqjoinsel - _null_ ));
+DATA(insert OID = 105 ( eqjoinsel PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100 eqjoinsel - _null_ ));
DESCR("join selectivity of = and related operators");
-DATA(insert OID = 106 ( neqjoinsel PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100 neqjoinsel - _null_ ));
+DATA(insert OID = 106 ( neqjoinsel PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100 neqjoinsel - _null_ ));
DESCR("join selectivity of <> and related operators");
-DATA(insert OID = 107 ( scalarltjoinsel PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100 scalarltjoinsel - _null_ ));
+DATA(insert OID = 107 ( scalarltjoinsel PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100 scalarltjoinsel - _null_ ));
DESCR("join selectivity of < and related operators on scalar datatypes");
-DATA(insert OID = 108 ( scalargtjoinsel PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100 scalargtjoinsel - _null_ ));
+DATA(insert OID = 108 ( scalargtjoinsel PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100 scalargtjoinsel - _null_ ));
DESCR("join selectivity of > and related operators on scalar datatypes");
-DATA(insert OID = 112 ( text PGNSP PGUID 12 f t t i 1 f 25 "23" 100 0 0 100 int4_text - _null_ ));
+DATA(insert OID = 112 ( text PGNSP PGUID 12 f t t t f i 1 25 "23" 100 0 0 100 int4_text - _null_ ));
DESCR("convert int4 to text");
-DATA(insert OID = 113 ( text PGNSP PGUID 12 f t t i 1 f 25 "21" 100 0 0 100 int2_text - _null_ ));
+DATA(insert OID = 113 ( text PGNSP PGUID 12 f t t t f i 1 25 "21" 100 0 0 100 int2_text - _null_ ));
DESCR("convert int2 to text");
-DATA(insert OID = 114 ( text PGNSP PGUID 12 f t t i 1 f 25 "26" 100 0 0 100 oid_text - _null_ ));
+DATA(insert OID = 114 ( text PGNSP PGUID 12 f t f t f i 1 25 "26" 100 0 0 100 oid_text - _null_ ));
DESCR("convert oid to text");
-DATA(insert OID = 115 ( box_above PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100 box_above - _null_ ));
+DATA(insert OID = 115 ( box_above PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100 box_above - _null_ ));
DESCR("is above");
-DATA(insert OID = 116 ( box_below PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100 box_below - _null_ ));
+DATA(insert OID = 116 ( box_below PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100 box_below - _null_ ));
DESCR("is below");
-DATA(insert OID = 117 ( point_in PGNSP PGUID 12 f t t i 1 f 600 "0" 100 0 0 100 point_in - _null_ ));
+DATA(insert OID = 117 ( point_in PGNSP PGUID 12 f t f t f i 1 600 "0" 100 0 0 100 point_in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 118 ( point_out PGNSP PGUID 12 f t t i 1 f 23 "600" 100 0 0 100 point_out - _null_ ));
+DATA(insert OID = 118 ( point_out PGNSP PGUID 12 f t f t f i 1 23 "600" 100 0 0 100 point_out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 119 ( lseg_in PGNSP PGUID 12 f t t i 1 f 601 "0" 100 0 0 100 lseg_in - _null_ ));
+DATA(insert OID = 119 ( lseg_in PGNSP PGUID 12 f t f t f i 1 601 "0" 100 0 0 100 lseg_in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 120 ( lseg_out PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 lseg_out - _null_ ));
+DATA(insert OID = 120 ( lseg_out PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 lseg_out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 121 ( path_in PGNSP PGUID 12 f t t i 1 f 602 "0" 100 0 0 100 path_in - _null_ ));
+DATA(insert OID = 121 ( path_in PGNSP PGUID 12 f t f t f i 1 602 "0" 100 0 0 100 path_in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 122 ( path_out PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 path_out - _null_ ));
+DATA(insert OID = 122 ( path_out PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 path_out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 123 ( box_in PGNSP PGUID 12 f t t i 1 f 603 "0" 100 0 0 100 box_in - _null_ ));
+DATA(insert OID = 123 ( box_in PGNSP PGUID 12 f t f t f i 1 603 "0" 100 0 0 100 box_in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 124 ( box_out PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 box_out - _null_ ));
+DATA(insert OID = 124 ( box_out PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 box_out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 125 ( box_overlap PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100 box_overlap - _null_ ));
+DATA(insert OID = 125 ( box_overlap PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100 box_overlap - _null_ ));
DESCR("overlaps");
-DATA(insert OID = 126 ( box_ge PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100 box_ge - _null_ ));
+DATA(insert OID = 126 ( box_ge PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100 box_ge - _null_ ));
DESCR("greater-than-or-equal by area");
-DATA(insert OID = 127 ( box_gt PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100 box_gt - _null_ ));
+DATA(insert OID = 127 ( box_gt PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100 box_gt - _null_ ));
DESCR("greater-than by area");
-DATA(insert OID = 128 ( box_eq PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100 box_eq - _null_ ));
+DATA(insert OID = 128 ( box_eq PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100 box_eq - _null_ ));
DESCR("equal by area");
-DATA(insert OID = 129 ( box_lt PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100 box_lt - _null_ ));
+DATA(insert OID = 129 ( box_lt PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100 box_lt - _null_ ));
DESCR("less-than by area");
-DATA(insert OID = 130 ( box_le PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100 box_le - _null_ ));
+DATA(insert OID = 130 ( box_le PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100 box_le - _null_ ));
DESCR("less-than-or-equal by area");
-DATA(insert OID = 131 ( point_above PGNSP PGUID 12 f t t i 2 f 16 "600 600" 100 0 0 100 point_above - _null_ ));
+DATA(insert OID = 131 ( point_above PGNSP PGUID 12 f t f t f i 2 16 "600 600" 100 0 0 100 point_above - _null_ ));
DESCR("is above");
-DATA(insert OID = 132 ( point_left PGNSP PGUID 12 f t t i 2 f 16 "600 600" 100 0 0 100 point_left - _null_ ));
+DATA(insert OID = 132 ( point_left PGNSP PGUID 12 f t f t f i 2 16 "600 600" 100 0 0 100 point_left - _null_ ));
DESCR("is left of");
-DATA(insert OID = 133 ( point_right PGNSP PGUID 12 f t t i 2 f 16 "600 600" 100 0 0 100 point_right - _null_ ));
+DATA(insert OID = 133 ( point_right PGNSP PGUID 12 f t f t f i 2 16 "600 600" 100 0 0 100 point_right - _null_ ));
DESCR("is right of");
-DATA(insert OID = 134 ( point_below PGNSP PGUID 12 f t t i 2 f 16 "600 600" 100 0 0 100 point_below - _null_ ));
+DATA(insert OID = 134 ( point_below PGNSP PGUID 12 f t f t f i 2 16 "600 600" 100 0 0 100 point_below - _null_ ));
DESCR("is below");
-DATA(insert OID = 135 ( point_eq PGNSP PGUID 12 f t t i 2 f 16 "600 600" 100 0 0 100 point_eq - _null_ ));
+DATA(insert OID = 135 ( point_eq PGNSP PGUID 12 f t f t f i 2 16 "600 600" 100 0 0 100 point_eq - _null_ ));
DESCR("same as");
-DATA(insert OID = 136 ( on_pb PGNSP PGUID 12 f t t i 2 f 16 "600 603" 100 0 0 100 on_pb - _null_ ));
+DATA(insert OID = 136 ( on_pb PGNSP PGUID 12 f t f t f i 2 16 "600 603" 100 0 0 100 on_pb - _null_ ));
DESCR("point is inside");
-DATA(insert OID = 137 ( on_ppath PGNSP PGUID 12 f t t i 2 f 16 "600 602" 100 0 0 100 on_ppath - _null_ ));
+DATA(insert OID = 137 ( on_ppath PGNSP PGUID 12 f t f t f i 2 16 "600 602" 100 0 0 100 on_ppath - _null_ ));
DESCR("contained in");
-DATA(insert OID = 138 ( box_center PGNSP PGUID 12 f t t i 1 f 600 "603" 100 0 0 100 box_center - _null_ ));
+DATA(insert OID = 138 ( box_center PGNSP PGUID 12 f t f t f i 1 600 "603" 100 0 0 100 box_center - _null_ ));
DESCR("center of");
-DATA(insert OID = 139 ( areasel PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100 areasel - _null_ ));
+DATA(insert OID = 139 ( areasel PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100 areasel - _null_ ));
DESCR("restriction selectivity for area-comparison operators");
-DATA(insert OID = 140 ( areajoinsel PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100 areajoinsel - _null_ ));
+DATA(insert OID = 140 ( areajoinsel PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100 areajoinsel - _null_ ));
DESCR("join selectivity for area-comparison operators");
-DATA(insert OID = 141 ( int4mul PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100 int4mul - _null_ ));
+DATA(insert OID = 141 ( int4mul PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100 int4mul - _null_ ));
DESCR("multiply");
-DATA(insert OID = 142 ( int4fac PGNSP PGUID 12 f t t i 1 f 23 "23" 100 0 0 100 int4fac - _null_ ));
+DATA(insert OID = 142 ( int4fac PGNSP PGUID 12 f t f t f i 1 23 "23" 100 0 0 100 int4fac - _null_ ));
DESCR("factorial");
-DATA(insert OID = 144 ( int4ne PGNSP PGUID 12 f t t i 2 f 16 "23 23" 100 0 0 100 int4ne - _null_ ));
+DATA(insert OID = 144 ( int4ne PGNSP PGUID 12 f t f t f i 2 16 "23 23" 100 0 0 100 int4ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 145 ( int2ne PGNSP PGUID 12 f t t i 2 f 16 "21 21" 100 0 0 100 int2ne - _null_ ));
+DATA(insert OID = 145 ( int2ne PGNSP PGUID 12 f t f t f i 2 16 "21 21" 100 0 0 100 int2ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 146 ( int2gt PGNSP PGUID 12 f t t i 2 f 16 "21 21" 100 0 0 100 int2gt - _null_ ));
+DATA(insert OID = 146 ( int2gt PGNSP PGUID 12 f t f t f i 2 16 "21 21" 100 0 0 100 int2gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 147 ( int4gt PGNSP PGUID 12 f t t i 2 f 16 "23 23" 100 0 0 100 int4gt - _null_ ));
+DATA(insert OID = 147 ( int4gt PGNSP PGUID 12 f t f t f i 2 16 "23 23" 100 0 0 100 int4gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 148 ( int2le PGNSP PGUID 12 f t t i 2 f 16 "21 21" 100 0 0 100 int2le - _null_ ));
+DATA(insert OID = 148 ( int2le PGNSP PGUID 12 f t f t f i 2 16 "21 21" 100 0 0 100 int2le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 149 ( int4le PGNSP PGUID 12 f t t i 2 f 16 "23 23" 100 0 0 100 int4le - _null_ ));
+DATA(insert OID = 149 ( int4le PGNSP PGUID 12 f t f t f i 2 16 "23 23" 100 0 0 100 int4le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 150 ( int4ge PGNSP PGUID 12 f t t i 2 f 16 "23 23" 100 0 0 100 int4ge - _null_ ));
+DATA(insert OID = 150 ( int4ge PGNSP PGUID 12 f t f t f i 2 16 "23 23" 100 0 0 100 int4ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 151 ( int2ge PGNSP PGUID 12 f t t i 2 f 16 "21 21" 100 0 0 100 int2ge - _null_ ));
+DATA(insert OID = 151 ( int2ge PGNSP PGUID 12 f t f t f i 2 16 "21 21" 100 0 0 100 int2ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 152 ( int2mul PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100 int2mul - _null_ ));
+DATA(insert OID = 152 ( int2mul PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100 int2mul - _null_ ));
DESCR("multiply");
-DATA(insert OID = 153 ( int2div PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100 int2div - _null_ ));
+DATA(insert OID = 153 ( int2div PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100 int2div - _null_ ));
DESCR("divide");
-DATA(insert OID = 154 ( int4div PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100 int4div - _null_ ));
+DATA(insert OID = 154 ( int4div PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100 int4div - _null_ ));
DESCR("divide");
-DATA(insert OID = 155 ( int2mod PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100 int2mod - _null_ ));
+DATA(insert OID = 155 ( int2mod PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100 int2mod - _null_ ));
DESCR("modulus");
-DATA(insert OID = 156 ( int4mod PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100 int4mod - _null_ ));
+DATA(insert OID = 156 ( int4mod PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100 int4mod - _null_ ));
DESCR("modulus");
-DATA(insert OID = 157 ( textne PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100 textne - _null_ ));
+DATA(insert OID = 157 ( textne PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100 textne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 158 ( int24eq PGNSP PGUID 12 f t t i 2 f 16 "21 23" 100 0 0 100 int24eq - _null_ ));
+DATA(insert OID = 158 ( int24eq PGNSP PGUID 12 f t f t f i 2 16 "21 23" 100 0 0 100 int24eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 159 ( int42eq PGNSP PGUID 12 f t t i 2 f 16 "23 21" 100 0 0 100 int42eq - _null_ ));
+DATA(insert OID = 159 ( int42eq PGNSP PGUID 12 f t f t f i 2 16 "23 21" 100 0 0 100 int42eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 160 ( int24lt PGNSP PGUID 12 f t t i 2 f 16 "21 23" 100 0 0 100 int24lt - _null_ ));
+DATA(insert OID = 160 ( int24lt PGNSP PGUID 12 f t f t f i 2 16 "21 23" 100 0 0 100 int24lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 161 ( int42lt PGNSP PGUID 12 f t t i 2 f 16 "23 21" 100 0 0 100 int42lt - _null_ ));
+DATA(insert OID = 161 ( int42lt PGNSP PGUID 12 f t f t f i 2 16 "23 21" 100 0 0 100 int42lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 162 ( int24gt PGNSP PGUID 12 f t t i 2 f 16 "21 23" 100 0 0 100 int24gt - _null_ ));
+DATA(insert OID = 162 ( int24gt PGNSP PGUID 12 f t f t f i 2 16 "21 23" 100 0 0 100 int24gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 163 ( int42gt PGNSP PGUID 12 f t t i 2 f 16 "23 21" 100 0 0 100 int42gt - _null_ ));
+DATA(insert OID = 163 ( int42gt PGNSP PGUID 12 f t f t f i 2 16 "23 21" 100 0 0 100 int42gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 164 ( int24ne PGNSP PGUID 12 f t t i 2 f 16 "21 23" 100 0 0 100 int24ne - _null_ ));
+DATA(insert OID = 164 ( int24ne PGNSP PGUID 12 f t f t f i 2 16 "21 23" 100 0 0 100 int24ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 165 ( int42ne PGNSP PGUID 12 f t t i 2 f 16 "23 21" 100 0 0 100 int42ne - _null_ ));
+DATA(insert OID = 165 ( int42ne PGNSP PGUID 12 f t f t f i 2 16 "23 21" 100 0 0 100 int42ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 166 ( int24le PGNSP PGUID 12 f t t i 2 f 16 "21 23" 100 0 0 100 int24le - _null_ ));
+DATA(insert OID = 166 ( int24le PGNSP PGUID 12 f t f t f i 2 16 "21 23" 100 0 0 100 int24le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 167 ( int42le PGNSP PGUID 12 f t t i 2 f 16 "23 21" 100 0 0 100 int42le - _null_ ));
+DATA(insert OID = 167 ( int42le PGNSP PGUID 12 f t f t f i 2 16 "23 21" 100 0 0 100 int42le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 168 ( int24ge PGNSP PGUID 12 f t t i 2 f 16 "21 23" 100 0 0 100 int24ge - _null_ ));
+DATA(insert OID = 168 ( int24ge PGNSP PGUID 12 f t f t f i 2 16 "21 23" 100 0 0 100 int24ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 169 ( int42ge PGNSP PGUID 12 f t t i 2 f 16 "23 21" 100 0 0 100 int42ge - _null_ ));
+DATA(insert OID = 169 ( int42ge PGNSP PGUID 12 f t f t f i 2 16 "23 21" 100 0 0 100 int42ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 170 ( int24mul PGNSP PGUID 12 f t t i 2 f 23 "21 23" 100 0 0 100 int24mul - _null_ ));
+DATA(insert OID = 170 ( int24mul PGNSP PGUID 12 f t f t f i 2 23 "21 23" 100 0 0 100 int24mul - _null_ ));
DESCR("multiply");
-DATA(insert OID = 171 ( int42mul PGNSP PGUID 12 f t t i 2 f 23 "23 21" 100 0 0 100 int42mul - _null_ ));
+DATA(insert OID = 171 ( int42mul PGNSP PGUID 12 f t f t f i 2 23 "23 21" 100 0 0 100 int42mul - _null_ ));
DESCR("multiply");
-DATA(insert OID = 172 ( int24div PGNSP PGUID 12 f t t i 2 f 23 "21 23" 100 0 0 100 int24div - _null_ ));
+DATA(insert OID = 172 ( int24div PGNSP PGUID 12 f t f t f i 2 23 "21 23" 100 0 0 100 int24div - _null_ ));
DESCR("divide");
-DATA(insert OID = 173 ( int42div PGNSP PGUID 12 f t t i 2 f 23 "23 21" 100 0 0 100 int42div - _null_ ));
+DATA(insert OID = 173 ( int42div PGNSP PGUID 12 f t f t f i 2 23 "23 21" 100 0 0 100 int42div - _null_ ));
DESCR("divide");
-DATA(insert OID = 174 ( int24mod PGNSP PGUID 12 f t t i 2 f 23 "21 23" 100 0 0 100 int24mod - _null_ ));
+DATA(insert OID = 174 ( int24mod PGNSP PGUID 12 f t f t f i 2 23 "21 23" 100 0 0 100 int24mod - _null_ ));
DESCR("modulus");
-DATA(insert OID = 175 ( int42mod PGNSP PGUID 12 f t t i 2 f 23 "23 21" 100 0 0 100 int42mod - _null_ ));
+DATA(insert OID = 175 ( int42mod PGNSP PGUID 12 f t f t f i 2 23 "23 21" 100 0 0 100 int42mod - _null_ ));
DESCR("modulus");
-DATA(insert OID = 176 ( int2pl PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100 int2pl - _null_ ));
+DATA(insert OID = 176 ( int2pl PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100 int2pl - _null_ ));
DESCR("add");
-DATA(insert OID = 177 ( int4pl PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100 int4pl - _null_ ));
+DATA(insert OID = 177 ( int4pl PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100 int4pl - _null_ ));
DESCR("add");
-DATA(insert OID = 178 ( int24pl PGNSP PGUID 12 f t t i 2 f 23 "21 23" 100 0 0 100 int24pl - _null_ ));
+DATA(insert OID = 178 ( int24pl PGNSP PGUID 12 f t f t f i 2 23 "21 23" 100 0 0 100 int24pl - _null_ ));
DESCR("add");
-DATA(insert OID = 179 ( int42pl PGNSP PGUID 12 f t t i 2 f 23 "23 21" 100 0 0 100 int42pl - _null_ ));
+DATA(insert OID = 179 ( int42pl PGNSP PGUID 12 f t f t f i 2 23 "23 21" 100 0 0 100 int42pl - _null_ ));
DESCR("add");
-DATA(insert OID = 180 ( int2mi PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100 int2mi - _null_ ));
+DATA(insert OID = 180 ( int2mi PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100 int2mi - _null_ ));
DESCR("subtract");
-DATA(insert OID = 181 ( int4mi PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100 int4mi - _null_ ));
+DATA(insert OID = 181 ( int4mi PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100 int4mi - _null_ ));
DESCR("subtract");
-DATA(insert OID = 182 ( int24mi PGNSP PGUID 12 f t t i 2 f 23 "21 23" 100 0 0 100 int24mi - _null_ ));
+DATA(insert OID = 182 ( int24mi PGNSP PGUID 12 f t f t f i 2 23 "21 23" 100 0 0 100 int24mi - _null_ ));
DESCR("subtract");
-DATA(insert OID = 183 ( int42mi PGNSP PGUID 12 f t t i 2 f 23 "23 21" 100 0 0 100 int42mi - _null_ ));
+DATA(insert OID = 183 ( int42mi PGNSP PGUID 12 f t f t f i 2 23 "23 21" 100 0 0 100 int42mi - _null_ ));
DESCR("subtract");
-DATA(insert OID = 184 ( oideq PGNSP PGUID 12 f t t i 2 f 16 "26 26" 100 0 0 100 oideq - _null_ ));
+DATA(insert OID = 184 ( oideq PGNSP PGUID 12 f t f t f i 2 16 "26 26" 100 0 0 100 oideq - _null_ ));
DESCR("equal");
-DATA(insert OID = 185 ( oidne PGNSP PGUID 12 f t t i 2 f 16 "26 26" 100 0 0 100 oidne - _null_ ));
+DATA(insert OID = 185 ( oidne PGNSP PGUID 12 f t f t f i 2 16 "26 26" 100 0 0 100 oidne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 186 ( box_same PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100 box_same - _null_ ));
+DATA(insert OID = 186 ( box_same PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100 box_same - _null_ ));
DESCR("same as");
-DATA(insert OID = 187 ( box_contain PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100 box_contain - _null_ ));
+DATA(insert OID = 187 ( box_contain PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100 box_contain - _null_ ));
DESCR("contains");
-DATA(insert OID = 188 ( box_left PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100 box_left - _null_ ));
+DATA(insert OID = 188 ( box_left PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100 box_left - _null_ ));
DESCR("is left of");
-DATA(insert OID = 189 ( box_overleft PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100 box_overleft - _null_ ));
+DATA(insert OID = 189 ( box_overleft PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100 box_overleft - _null_ ));
DESCR("overlaps, but does not extend to right of");
-DATA(insert OID = 190 ( box_overright PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100 box_overright - _null_ ));
+DATA(insert OID = 190 ( box_overright PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100 box_overright - _null_ ));
DESCR("overlaps, but does not extend to left of");
-DATA(insert OID = 191 ( box_right PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100 box_right - _null_ ));
+DATA(insert OID = 191 ( box_right PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100 box_right - _null_ ));
DESCR("is right of");
-DATA(insert OID = 192 ( box_contained PGNSP PGUID 12 f t t i 2 f 16 "603 603" 100 0 0 100 box_contained - _null_ ));
+DATA(insert OID = 192 ( box_contained PGNSP PGUID 12 f t f t f i 2 16 "603 603" 100 0 0 100 box_contained - _null_ ));
DESCR("contained in");
-DATA(insert OID = 193 ( rt_box_union PGNSP PGUID 12 f t t i 2 f 603 "603 603" 100 0 0 100 rt_box_union - _null_ ));
+DATA(insert OID = 193 ( rt_box_union PGNSP PGUID 12 f t f t f i 2 603 "603 603" 100 0 0 100 rt_box_union - _null_ ));
DESCR("r-tree");
-DATA(insert OID = 194 ( rt_box_inter PGNSP PGUID 12 f t t i 2 f 603 "603 603" 100 0 0 100 rt_box_inter - _null_ ));
+DATA(insert OID = 194 ( rt_box_inter PGNSP PGUID 12 f t f t f i 2 603 "603 603" 100 0 0 100 rt_box_inter - _null_ ));
DESCR("r-tree");
-DATA(insert OID = 195 ( rt_box_size PGNSP PGUID 12 f t t i 2 f 700 "603 700" 100 0 0 100 rt_box_size - _null_ ));
+DATA(insert OID = 195 ( rt_box_size PGNSP PGUID 12 f t f t f i 2 700 "603 700" 100 0 0 100 rt_box_size - _null_ ));
DESCR("r-tree");
-DATA(insert OID = 196 ( rt_bigbox_size PGNSP PGUID 12 f t t i 2 f 700 "603 700" 100 0 0 100 rt_bigbox_size - _null_ ));
+DATA(insert OID = 196 ( rt_bigbox_size PGNSP PGUID 12 f t f t f i 2 700 "603 700" 100 0 0 100 rt_bigbox_size - _null_ ));
DESCR("r-tree");
-DATA(insert OID = 197 ( rt_poly_union PGNSP PGUID 12 f t t i 2 f 604 "604 604" 100 0 0 100 rt_poly_union - _null_ ));
+DATA(insert OID = 197 ( rt_poly_union PGNSP PGUID 12 f t f t f i 2 604 "604 604" 100 0 0 100 rt_poly_union - _null_ ));
DESCR("r-tree");
-DATA(insert OID = 198 ( rt_poly_inter PGNSP PGUID 12 f t t i 2 f 604 "604 604" 100 0 0 100 rt_poly_inter - _null_ ));
+DATA(insert OID = 198 ( rt_poly_inter PGNSP PGUID 12 f t f t f i 2 604 "604 604" 100 0 0 100 rt_poly_inter - _null_ ));
DESCR("r-tree");
-DATA(insert OID = 199 ( rt_poly_size PGNSP PGUID 12 f t t i 2 f 23 "604 700" 100 0 0 100 rt_poly_size - _null_ ));
+DATA(insert OID = 199 ( rt_poly_size PGNSP PGUID 12 f t f t f i 2 23 "604 700" 100 0 0 100 rt_poly_size - _null_ ));
DESCR("r-tree");
/* OIDS 200 - 299 */
-DATA(insert OID = 200 ( float4in PGNSP PGUID 12 f t t i 1 f 700 "0" 100 0 0 100 float4in - _null_ ));
+DATA(insert OID = 200 ( float4in PGNSP PGUID 12 f t f t f i 1 700 "0" 100 0 0 100 float4in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 201 ( float4out PGNSP PGUID 12 f t t i 1 f 23 "700" 100 0 0 100 float4out - _null_ ));
+DATA(insert OID = 201 ( float4out PGNSP PGUID 12 f t f t f i 1 23 "700" 100 0 0 100 float4out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 202 ( float4mul PGNSP PGUID 12 f t t i 2 f 700 "700 700" 100 0 0 100 float4mul - _null_ ));
+DATA(insert OID = 202 ( float4mul PGNSP PGUID 12 f t f t f i 2 700 "700 700" 100 0 0 100 float4mul - _null_ ));
DESCR("multiply");
-DATA(insert OID = 203 ( float4div PGNSP PGUID 12 f t t i 2 f 700 "700 700" 100 0 0 100 float4div - _null_ ));
+DATA(insert OID = 203 ( float4div PGNSP PGUID 12 f t f t f i 2 700 "700 700" 100 0 0 100 float4div - _null_ ));
DESCR("divide");
-DATA(insert OID = 204 ( float4pl PGNSP PGUID 12 f t t i 2 f 700 "700 700" 100 0 0 100 float4pl - _null_ ));
+DATA(insert OID = 204 ( float4pl PGNSP PGUID 12 f t f t f i 2 700 "700 700" 100 0 0 100 float4pl - _null_ ));
DESCR("add");
-DATA(insert OID = 205 ( float4mi PGNSP PGUID 12 f t t i 2 f 700 "700 700" 100 0 0 100 float4mi - _null_ ));
+DATA(insert OID = 205 ( float4mi PGNSP PGUID 12 f t f t f i 2 700 "700 700" 100 0 0 100 float4mi - _null_ ));
DESCR("subtract");
-DATA(insert OID = 206 ( float4um PGNSP PGUID 12 f t t i 1 f 700 "700" 100 0 0 100 float4um - _null_ ));
+DATA(insert OID = 206 ( float4um PGNSP PGUID 12 f t f t f i 1 700 "700" 100 0 0 100 float4um - _null_ ));
DESCR("negate");
-DATA(insert OID = 207 ( float4abs PGNSP PGUID 12 f t t i 1 f 700 "700" 100 0 0 100 float4abs - _null_ ));
+DATA(insert OID = 207 ( float4abs PGNSP PGUID 12 f t f t f i 1 700 "700" 100 0 0 100 float4abs - _null_ ));
DESCR("absolute value");
-DATA(insert OID = 208 ( float4_accum PGNSP PGUID 12 f t t i 2 f 1022 "1022 700" 100 0 0 100 float4_accum - _null_ ));
+DATA(insert OID = 208 ( float4_accum PGNSP PGUID 12 f t f t f i 2 1022 "1022 700" 100 0 0 100 float4_accum - _null_ ));
DESCR("aggregate transition function");
-DATA(insert OID = 209 ( float4larger PGNSP PGUID 12 f t t i 2 f 700 "700 700" 100 0 0 100 float4larger - _null_ ));
+DATA(insert OID = 209 ( float4larger PGNSP PGUID 12 f t f t f i 2 700 "700 700" 100 0 0 100 float4larger - _null_ ));
DESCR("larger of two");
-DATA(insert OID = 211 ( float4smaller PGNSP PGUID 12 f t t i 2 f 700 "700 700" 100 0 0 100 float4smaller - _null_ ));
+DATA(insert OID = 211 ( float4smaller PGNSP PGUID 12 f t f t f i 2 700 "700 700" 100 0 0 100 float4smaller - _null_ ));
DESCR("smaller of two");
-DATA(insert OID = 212 ( int4um PGNSP PGUID 12 f t t i 1 f 23 "23" 100 0 0 100 int4um - _null_ ));
+DATA(insert OID = 212 ( int4um PGNSP PGUID 12 f t f t f i 1 23 "23" 100 0 0 100 int4um - _null_ ));
DESCR("negate");
-DATA(insert OID = 213 ( int2um PGNSP PGUID 12 f t t i 1 f 21 "21" 100 0 0 100 int2um - _null_ ));
+DATA(insert OID = 213 ( int2um PGNSP PGUID 12 f t f t f i 1 21 "21" 100 0 0 100 int2um - _null_ ));
DESCR("negate");
-DATA(insert OID = 214 ( float8in PGNSP PGUID 12 f t t i 1 f 701 "0" 100 0 0 100 float8in - _null_ ));
+DATA(insert OID = 214 ( float8in PGNSP PGUID 12 f t f t f i 1 701 "0" 100 0 0 100 float8in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 215 ( float8out PGNSP PGUID 12 f t t i 1 f 23 "701" 100 0 0 100 float8out - _null_ ));
+DATA(insert OID = 215 ( float8out PGNSP PGUID 12 f t f t f i 1 23 "701" 100 0 0 100 float8out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 216 ( float8mul PGNSP PGUID 12 f t t i 2 f 701 "701 701" 100 0 0 100 float8mul - _null_ ));
+DATA(insert OID = 216 ( float8mul PGNSP PGUID 12 f t f t f i 2 701 "701 701" 100 0 0 100 float8mul - _null_ ));
DESCR("multiply");
-DATA(insert OID = 217 ( float8div PGNSP PGUID 12 f t t i 2 f 701 "701 701" 100 0 0 100 float8div - _null_ ));
+DATA(insert OID = 217 ( float8div PGNSP PGUID 12 f t f t f i 2 701 "701 701" 100 0 0 100 float8div - _null_ ));
DESCR("divide");
-DATA(insert OID = 218 ( float8pl PGNSP PGUID 12 f t t i 2 f 701 "701 701" 100 0 0 100 float8pl - _null_ ));
+DATA(insert OID = 218 ( float8pl PGNSP PGUID 12 f t f t f i 2 701 "701 701" 100 0 0 100 float8pl - _null_ ));
DESCR("add");
-DATA(insert OID = 219 ( float8mi PGNSP PGUID 12 f t t i 2 f 701 "701 701" 100 0 0 100 float8mi - _null_ ));
+DATA(insert OID = 219 ( float8mi PGNSP PGUID 12 f t f t f i 2 701 "701 701" 100 0 0 100 float8mi - _null_ ));
DESCR("subtract");
-DATA(insert OID = 220 ( float8um PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 float8um - _null_ ));
+DATA(insert OID = 220 ( float8um PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 float8um - _null_ ));
DESCR("negate");
-DATA(insert OID = 221 ( float8abs PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 float8abs - _null_ ));
+DATA(insert OID = 221 ( float8abs PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 float8abs - _null_ ));
DESCR("absolute value");
-DATA(insert OID = 222 ( float8_accum PGNSP PGUID 12 f t t i 2 f 1022 "1022 701" 100 0 0 100 float8_accum - _null_ ));
+DATA(insert OID = 222 ( float8_accum PGNSP PGUID 12 f t f t f i 2 1022 "1022 701" 100 0 0 100 float8_accum - _null_ ));
DESCR("aggregate transition function");
-DATA(insert OID = 223 ( float8larger PGNSP PGUID 12 f t t i 2 f 701 "701 701" 100 0 0 100 float8larger - _null_ ));
+DATA(insert OID = 223 ( float8larger PGNSP PGUID 12 f t f t f i 2 701 "701 701" 100 0 0 100 float8larger - _null_ ));
DESCR("larger of two");
-DATA(insert OID = 224 ( float8smaller PGNSP PGUID 12 f t t i 2 f 701 "701 701" 100 0 0 100 float8smaller - _null_ ));
+DATA(insert OID = 224 ( float8smaller PGNSP PGUID 12 f t f t f i 2 701 "701 701" 100 0 0 100 float8smaller - _null_ ));
DESCR("smaller of two");
-DATA(insert OID = 225 ( lseg_center PGNSP PGUID 12 f t t i 1 f 600 "601" 100 0 0 100 lseg_center - _null_ ));
+DATA(insert OID = 225 ( lseg_center PGNSP PGUID 12 f t f t f i 1 600 "601" 100 0 0 100 lseg_center - _null_ ));
DESCR("center of");
-DATA(insert OID = 226 ( path_center PGNSP PGUID 12 f t t i 1 f 600 "602" 100 0 0 100 path_center - _null_ ));
+DATA(insert OID = 226 ( path_center PGNSP PGUID 12 f t f t f i 1 600 "602" 100 0 0 100 path_center - _null_ ));
DESCR("center of");
-DATA(insert OID = 227 ( poly_center PGNSP PGUID 12 f t t i 1 f 600 "604" 100 0 0 100 poly_center - _null_ ));
+DATA(insert OID = 227 ( poly_center PGNSP PGUID 12 f t f t f i 1 600 "604" 100 0 0 100 poly_center - _null_ ));
DESCR("center of");
-DATA(insert OID = 228 ( dround PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 dround - _null_ ));
+DATA(insert OID = 228 ( dround PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 dround - _null_ ));
DESCR("round to nearest integer");
-DATA(insert OID = 229 ( dtrunc PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 dtrunc - _null_ ));
+DATA(insert OID = 229 ( dtrunc PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 dtrunc - _null_ ));
DESCR("truncate to integer");
-DATA(insert OID = 230 ( dsqrt PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 dsqrt - _null_ ));
+DATA(insert OID = 230 ( dsqrt PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 dsqrt - _null_ ));
DESCR("square root");
-DATA(insert OID = 231 ( dcbrt PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 dcbrt - _null_ ));
+DATA(insert OID = 231 ( dcbrt PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 dcbrt - _null_ ));
DESCR("cube root");
-DATA(insert OID = 232 ( dpow PGNSP PGUID 12 f t t i 2 f 701 "701 701" 100 0 0 100 dpow - _null_ ));
+DATA(insert OID = 232 ( dpow PGNSP PGUID 12 f t f t f i 2 701 "701 701" 100 0 0 100 dpow - _null_ ));
DESCR("exponentiation (x^y)");
-DATA(insert OID = 233 ( dexp PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 dexp - _null_ ));
+DATA(insert OID = 233 ( dexp PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 dexp - _null_ ));
DESCR("natural exponential (e^x)");
-DATA(insert OID = 234 ( dlog1 PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 dlog1 - _null_ ));
+DATA(insert OID = 234 ( dlog1 PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 dlog1 - _null_ ));
DESCR("natural logarithm");
-DATA(insert OID = 235 ( float8 PGNSP PGUID 12 f t t i 1 f 701 "21" 100 0 0 100 i2tod - _null_ ));
+DATA(insert OID = 235 ( float8 PGNSP PGUID 12 f t t t f i 1 701 "21" 100 0 0 100 i2tod - _null_ ));
DESCR("convert int2 to float8");
-DATA(insert OID = 236 ( float4 PGNSP PGUID 12 f t t i 1 f 700 "21" 100 0 0 100 i2tof - _null_ ));
+DATA(insert OID = 236 ( float4 PGNSP PGUID 12 f t t t f i 1 700 "21" 100 0 0 100 i2tof - _null_ ));
DESCR("convert int2 to float4");
-DATA(insert OID = 237 ( int2 PGNSP PGUID 12 f t t i 1 f 21 "701" 100 0 0 100 dtoi2 - _null_ ));
+DATA(insert OID = 237 ( int2 PGNSP PGUID 12 f t f t f i 1 21 "701" 100 0 0 100 dtoi2 - _null_ ));
DESCR("convert float8 to int2");
-DATA(insert OID = 238 ( int2 PGNSP PGUID 12 f t t i 1 f 21 "700" 100 0 0 100 ftoi2 - _null_ ));
+DATA(insert OID = 238 ( int2 PGNSP PGUID 12 f t f t f i 1 21 "700" 100 0 0 100 ftoi2 - _null_ ));
DESCR("convert float4 to int2");
-DATA(insert OID = 239 ( line_distance PGNSP PGUID 12 f t t i 2 f 701 "628 628" 100 0 0 100 line_distance - _null_ ));
+DATA(insert OID = 239 ( line_distance PGNSP PGUID 12 f t f t f i 2 701 "628 628" 100 0 0 100 line_distance - _null_ ));
DESCR("distance between");
-DATA(insert OID = 240 ( nabstimein PGNSP PGUID 12 f t t s 1 f 702 "0" 100 0 0 100 nabstimein - _null_ ));
+DATA(insert OID = 240 ( nabstimein PGNSP PGUID 12 f t f t f s 1 702 "0" 100 0 0 100 nabstimein - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 241 ( nabstimeout PGNSP PGUID 12 f t t s 1 f 23 "0" 100 0 0 100 nabstimeout - _null_ ));
+DATA(insert OID = 241 ( nabstimeout PGNSP PGUID 12 f t f t f s 1 23 "0" 100 0 0 100 nabstimeout - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 242 ( reltimein PGNSP PGUID 12 f t t s 1 f 703 "0" 100 0 0 100 reltimein - _null_ ));
+DATA(insert OID = 242 ( reltimein PGNSP PGUID 12 f t f t f s 1 703 "0" 100 0 0 100 reltimein - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 243 ( reltimeout PGNSP PGUID 12 f t t s 1 f 23 "0" 100 0 0 100 reltimeout - _null_ ));
+DATA(insert OID = 243 ( reltimeout PGNSP PGUID 12 f t f t f s 1 23 "0" 100 0 0 100 reltimeout - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 244 ( timepl PGNSP PGUID 12 f t t i 2 f 702 "702 703" 100 0 0 100 timepl - _null_ ));
+DATA(insert OID = 244 ( timepl PGNSP PGUID 12 f t f t f i 2 702 "702 703" 100 0 0 100 timepl - _null_ ));
DESCR("add");
-DATA(insert OID = 245 ( timemi PGNSP PGUID 12 f t t i 2 f 702 "702 703" 100 0 0 100 timemi - _null_ ));
+DATA(insert OID = 245 ( timemi PGNSP PGUID 12 f t f t f i 2 702 "702 703" 100 0 0 100 timemi - _null_ ));
DESCR("subtract");
-DATA(insert OID = 246 ( tintervalin PGNSP PGUID 12 f t t s 1 f 704 "0" 100 0 0 100 tintervalin - _null_ ));
+DATA(insert OID = 246 ( tintervalin PGNSP PGUID 12 f t f t f s 1 704 "0" 100 0 0 100 tintervalin - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 247 ( tintervalout PGNSP PGUID 12 f t t s 1 f 23 "0" 100 0 0 100 tintervalout - _null_ ));
+DATA(insert OID = 247 ( tintervalout PGNSP PGUID 12 f t f t f s 1 23 "0" 100 0 0 100 tintervalout - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 248 ( intinterval PGNSP PGUID 12 f t t i 2 f 16 "702 704" 100 0 0 100 intinterval - _null_ ));
+DATA(insert OID = 248 ( intinterval PGNSP PGUID 12 f t f t f i 2 16 "702 704" 100 0 0 100 intinterval - _null_ ));
DESCR("abstime in tinterval");
-DATA(insert OID = 249 ( tintervalrel PGNSP PGUID 12 f t t i 1 f 703 "704" 100 0 0 100 tintervalrel - _null_ ));
+DATA(insert OID = 249 ( tintervalrel PGNSP PGUID 12 f t f t f i 1 703 "704" 100 0 0 100 tintervalrel - _null_ ));
DESCR("");
-DATA(insert OID = 250 ( timenow PGNSP PGUID 12 f t t s 0 f 702 "0" 100 0 0 100 timenow - _null_ ));
+DATA(insert OID = 250 ( timenow PGNSP PGUID 12 f t f t f s 0 702 "0" 100 0 0 100 timenow - _null_ ));
DESCR("Current date and time (abstime)");
-DATA(insert OID = 251 ( abstimeeq PGNSP PGUID 12 f t t i 2 f 16 "702 702" 100 0 0 100 abstimeeq - _null_ ));
+DATA(insert OID = 251 ( abstimeeq PGNSP PGUID 12 f t f t f i 2 16 "702 702" 100 0 0 100 abstimeeq - _null_ ));
DESCR("equal");
-DATA(insert OID = 252 ( abstimene PGNSP PGUID 12 f t t i 2 f 16 "702 702" 100 0 0 100 abstimene - _null_ ));
+DATA(insert OID = 252 ( abstimene PGNSP PGUID 12 f t f t f i 2 16 "702 702" 100 0 0 100 abstimene - _null_ ));
DESCR("not equal");
-DATA(insert OID = 253 ( abstimelt PGNSP PGUID 12 f t t i 2 f 16 "702 702" 100 0 0 100 abstimelt - _null_ ));
+DATA(insert OID = 253 ( abstimelt PGNSP PGUID 12 f t f t f i 2 16 "702 702" 100 0 0 100 abstimelt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 254 ( abstimegt PGNSP PGUID 12 f t t i 2 f 16 "702 702" 100 0 0 100 abstimegt - _null_ ));
+DATA(insert OID = 254 ( abstimegt PGNSP PGUID 12 f t f t f i 2 16 "702 702" 100 0 0 100 abstimegt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 255 ( abstimele PGNSP PGUID 12 f t t i 2 f 16 "702 702" 100 0 0 100 abstimele - _null_ ));
+DATA(insert OID = 255 ( abstimele PGNSP PGUID 12 f t f t f i 2 16 "702 702" 100 0 0 100 abstimele - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 256 ( abstimege PGNSP PGUID 12 f t t i 2 f 16 "702 702" 100 0 0 100 abstimege - _null_ ));
+DATA(insert OID = 256 ( abstimege PGNSP PGUID 12 f t f t f i 2 16 "702 702" 100 0 0 100 abstimege - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 257 ( reltimeeq PGNSP PGUID 12 f t t i 2 f 16 "703 703" 100 0 0 100 reltimeeq - _null_ ));
+DATA(insert OID = 257 ( reltimeeq PGNSP PGUID 12 f t f t f i 2 16 "703 703" 100 0 0 100 reltimeeq - _null_ ));
DESCR("equal");
-DATA(insert OID = 258 ( reltimene PGNSP PGUID 12 f t t i 2 f 16 "703 703" 100 0 0 100 reltimene - _null_ ));
+DATA(insert OID = 258 ( reltimene PGNSP PGUID 12 f t f t f i 2 16 "703 703" 100 0 0 100 reltimene - _null_ ));
DESCR("not equal");
-DATA(insert OID = 259 ( reltimelt PGNSP PGUID 12 f t t i 2 f 16 "703 703" 100 0 0 100 reltimelt - _null_ ));
+DATA(insert OID = 259 ( reltimelt PGNSP PGUID 12 f t f t f i 2 16 "703 703" 100 0 0 100 reltimelt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 260 ( reltimegt PGNSP PGUID 12 f t t i 2 f 16 "703 703" 100 0 0 100 reltimegt - _null_ ));
+DATA(insert OID = 260 ( reltimegt PGNSP PGUID 12 f t f t f i 2 16 "703 703" 100 0 0 100 reltimegt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 261 ( reltimele PGNSP PGUID 12 f t t i 2 f 16 "703 703" 100 0 0 100 reltimele - _null_ ));
+DATA(insert OID = 261 ( reltimele PGNSP PGUID 12 f t f t f i 2 16 "703 703" 100 0 0 100 reltimele - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 262 ( reltimege PGNSP PGUID 12 f t t i 2 f 16 "703 703" 100 0 0 100 reltimege - _null_ ));
+DATA(insert OID = 262 ( reltimege PGNSP PGUID 12 f t f t f i 2 16 "703 703" 100 0 0 100 reltimege - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 263 ( tintervalsame PGNSP PGUID 12 f t t i 2 f 16 "704 704" 100 0 0 100 tintervalsame - _null_ ));
+DATA(insert OID = 263 ( tintervalsame PGNSP PGUID 12 f t f t f i 2 16 "704 704" 100 0 0 100 tintervalsame - _null_ ));
DESCR("same as");
-DATA(insert OID = 264 ( tintervalct PGNSP PGUID 12 f t t i 2 f 16 "704 704" 100 0 0 100 tintervalct - _null_ ));
+DATA(insert OID = 264 ( tintervalct PGNSP PGUID 12 f t f t f i 2 16 "704 704" 100 0 0 100 tintervalct - _null_ ));
DESCR("less-than");
-DATA(insert OID = 265 ( tintervalov PGNSP PGUID 12 f t t i 2 f 16 "704 704" 100 0 0 100 tintervalov - _null_ ));
+DATA(insert OID = 265 ( tintervalov PGNSP PGUID 12 f t f t f i 2 16 "704 704" 100 0 0 100 tintervalov - _null_ ));
DESCR("overlaps");
-DATA(insert OID = 266 ( tintervalleneq PGNSP PGUID 12 f t t i 2 f 16 "704 703" 100 0 0 100 tintervalleneq - _null_ ));
+DATA(insert OID = 266 ( tintervalleneq PGNSP PGUID 12 f t f t f i 2 16 "704 703" 100 0 0 100 tintervalleneq - _null_ ));
DESCR("length equal");
-DATA(insert OID = 267 ( tintervallenne PGNSP PGUID 12 f t t i 2 f 16 "704 703" 100 0 0 100 tintervallenne - _null_ ));
+DATA(insert OID = 267 ( tintervallenne PGNSP PGUID 12 f t f t f i 2 16 "704 703" 100 0 0 100 tintervallenne - _null_ ));
DESCR("length not equal to");
-DATA(insert OID = 268 ( tintervallenlt PGNSP PGUID 12 f t t i 2 f 16 "704 703" 100 0 0 100 tintervallenlt - _null_ ));
+DATA(insert OID = 268 ( tintervallenlt PGNSP PGUID 12 f t f t f i 2 16 "704 703" 100 0 0 100 tintervallenlt - _null_ ));
DESCR("length less-than");
-DATA(insert OID = 269 ( tintervallengt PGNSP PGUID 12 f t t i 2 f 16 "704 703" 100 0 0 100 tintervallengt - _null_ ));
+DATA(insert OID = 269 ( tintervallengt PGNSP PGUID 12 f t f t f i 2 16 "704 703" 100 0 0 100 tintervallengt - _null_ ));
DESCR("length greater-than");
-DATA(insert OID = 270 ( tintervallenle PGNSP PGUID 12 f t t i 2 f 16 "704 703" 100 0 0 100 tintervallenle - _null_ ));
+DATA(insert OID = 270 ( tintervallenle PGNSP PGUID 12 f t f t f i 2 16 "704 703" 100 0 0 100 tintervallenle - _null_ ));
DESCR("length less-than-or-equal");
-DATA(insert OID = 271 ( tintervallenge PGNSP PGUID 12 f t t i 2 f 16 "704 703" 100 0 0 100 tintervallenge - _null_ ));
+DATA(insert OID = 271 ( tintervallenge PGNSP PGUID 12 f t f t f i 2 16 "704 703" 100 0 0 100 tintervallenge - _null_ ));
DESCR("length greater-than-or-equal");
-DATA(insert OID = 272 ( tintervalstart PGNSP PGUID 12 f t t i 1 f 702 "704" 100 0 0 100 tintervalstart - _null_ ));
+DATA(insert OID = 272 ( tintervalstart PGNSP PGUID 12 f t f t f i 1 702 "704" 100 0 0 100 tintervalstart - _null_ ));
DESCR("start of interval");
-DATA(insert OID = 273 ( tintervalend PGNSP PGUID 12 f t t i 1 f 702 "704" 100 0 0 100 tintervalend - _null_ ));
+DATA(insert OID = 273 ( tintervalend PGNSP PGUID 12 f t f t f i 1 702 "704" 100 0 0 100 tintervalend - _null_ ));
DESCR("");
-DATA(insert OID = 274 ( timeofday PGNSP PGUID 12 f t t v 0 f 25 "0" 100 0 0 100 timeofday - _null_ ));
+DATA(insert OID = 274 ( timeofday PGNSP PGUID 12 f t f t f v 0 25 "0" 100 0 0 100 timeofday - _null_ ));
DESCR("Current date and time - increments during transactions");
-DATA(insert OID = 275 ( isfinite PGNSP PGUID 12 f t t i 1 f 16 "702" 100 0 0 100 abstime_finite - _null_ ));
+DATA(insert OID = 275 ( isfinite PGNSP PGUID 12 f t f t f i 1 16 "702" 100 0 0 100 abstime_finite - _null_ ));
DESCR("");
-DATA(insert OID = 276 ( int2fac PGNSP PGUID 12 f t t i 1 f 23 "21" 100 0 0 100 int2fac - _null_ ));
+DATA(insert OID = 276 ( int2fac PGNSP PGUID 12 f t f t f i 1 23 "21" 100 0 0 100 int2fac - _null_ ));
DESCR("factorial");
-DATA(insert OID = 277 ( inter_sl PGNSP PGUID 12 f t t i 2 f 16 "601 628" 100 0 0 100 inter_sl - _null_ ));
+DATA(insert OID = 277 ( inter_sl PGNSP PGUID 12 f t f t f i 2 16 "601 628" 100 0 0 100 inter_sl - _null_ ));
DESCR("");
-DATA(insert OID = 278 ( inter_lb PGNSP PGUID 12 f t t i 2 f 16 "628 603" 100 0 0 100 inter_lb - _null_ ));
+DATA(insert OID = 278 ( inter_lb PGNSP PGUID 12 f t f t f i 2 16 "628 603" 100 0 0 100 inter_lb - _null_ ));
DESCR("");
-DATA(insert OID = 279 ( float48mul PGNSP PGUID 12 f t t i 2 f 701 "700 701" 100 0 0 100 float48mul - _null_ ));
+DATA(insert OID = 279 ( float48mul PGNSP PGUID 12 f t f t f i 2 701 "700 701" 100 0 0 100 float48mul - _null_ ));
DESCR("multiply");
-DATA(insert OID = 280 ( float48div PGNSP PGUID 12 f t t i 2 f 701 "700 701" 100 0 0 100 float48div - _null_ ));
+DATA(insert OID = 280 ( float48div PGNSP PGUID 12 f t f t f i 2 701 "700 701" 100 0 0 100 float48div - _null_ ));
DESCR("divide");
-DATA(insert OID = 281 ( float48pl PGNSP PGUID 12 f t t i 2 f 701 "700 701" 100 0 0 100 float48pl - _null_ ));
+DATA(insert OID = 281 ( float48pl PGNSP PGUID 12 f t f t f i 2 701 "700 701" 100 0 0 100 float48pl - _null_ ));
DESCR("add");
-DATA(insert OID = 282 ( float48mi PGNSP PGUID 12 f t t i 2 f 701 "700 701" 100 0 0 100 float48mi - _null_ ));
+DATA(insert OID = 282 ( float48mi PGNSP PGUID 12 f t f t f i 2 701 "700 701" 100 0 0 100 float48mi - _null_ ));
DESCR("subtract");
-DATA(insert OID = 283 ( float84mul PGNSP PGUID 12 f t t i 2 f 701 "701 700" 100 0 0 100 float84mul - _null_ ));
+DATA(insert OID = 283 ( float84mul PGNSP PGUID 12 f t f t f i 2 701 "701 700" 100 0 0 100 float84mul - _null_ ));
DESCR("multiply");
-DATA(insert OID = 284 ( float84div PGNSP PGUID 12 f t t i 2 f 701 "701 700" 100 0 0 100 float84div - _null_ ));
+DATA(insert OID = 284 ( float84div PGNSP PGUID 12 f t f t f i 2 701 "701 700" 100 0 0 100 float84div - _null_ ));
DESCR("divide");
-DATA(insert OID = 285 ( float84pl PGNSP PGUID 12 f t t i 2 f 701 "701 700" 100 0 0 100 float84pl - _null_ ));
+DATA(insert OID = 285 ( float84pl PGNSP PGUID 12 f t f t f i 2 701 "701 700" 100 0 0 100 float84pl - _null_ ));
DESCR("add");
-DATA(insert OID = 286 ( float84mi PGNSP PGUID 12 f t t i 2 f 701 "701 700" 100 0 0 100 float84mi - _null_ ));
+DATA(insert OID = 286 ( float84mi PGNSP PGUID 12 f t f t f i 2 701 "701 700" 100 0 0 100 float84mi - _null_ ));
DESCR("subtract");
-DATA(insert OID = 287 ( float4eq PGNSP PGUID 12 f t t i 2 f 16 "700 700" 100 0 0 100 float4eq - _null_ ));
+DATA(insert OID = 287 ( float4eq PGNSP PGUID 12 f t f t f i 2 16 "700 700" 100 0 0 100 float4eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 288 ( float4ne PGNSP PGUID 12 f t t i 2 f 16 "700 700" 100 0 0 100 float4ne - _null_ ));
+DATA(insert OID = 288 ( float4ne PGNSP PGUID 12 f t f t f i 2 16 "700 700" 100 0 0 100 float4ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 289 ( float4lt PGNSP PGUID 12 f t t i 2 f 16 "700 700" 100 0 0 100 float4lt - _null_ ));
+DATA(insert OID = 289 ( float4lt PGNSP PGUID 12 f t f t f i 2 16 "700 700" 100 0 0 100 float4lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 290 ( float4le PGNSP PGUID 12 f t t i 2 f 16 "700 700" 100 0 0 100 float4le - _null_ ));
+DATA(insert OID = 290 ( float4le PGNSP PGUID 12 f t f t f i 2 16 "700 700" 100 0 0 100 float4le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 291 ( float4gt PGNSP PGUID 12 f t t i 2 f 16 "700 700" 100 0 0 100 float4gt - _null_ ));
+DATA(insert OID = 291 ( float4gt PGNSP PGUID 12 f t f t f i 2 16 "700 700" 100 0 0 100 float4gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 292 ( float4ge PGNSP PGUID 12 f t t i 2 f 16 "700 700" 100 0 0 100 float4ge - _null_ ));
+DATA(insert OID = 292 ( float4ge PGNSP PGUID 12 f t f t f i 2 16 "700 700" 100 0 0 100 float4ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 293 ( float8eq PGNSP PGUID 12 f t t i 2 f 16 "701 701" 100 0 0 100 float8eq - _null_ ));
+DATA(insert OID = 293 ( float8eq PGNSP PGUID 12 f t f t f i 2 16 "701 701" 100 0 0 100 float8eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 294 ( float8ne PGNSP PGUID 12 f t t i 2 f 16 "701 701" 100 0 0 100 float8ne - _null_ ));
+DATA(insert OID = 294 ( float8ne PGNSP PGUID 12 f t f t f i 2 16 "701 701" 100 0 0 100 float8ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 295 ( float8lt PGNSP PGUID 12 f t t i 2 f 16 "701 701" 100 0 0 100 float8lt - _null_ ));
+DATA(insert OID = 295 ( float8lt PGNSP PGUID 12 f t f t f i 2 16 "701 701" 100 0 0 100 float8lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 296 ( float8le PGNSP PGUID 12 f t t i 2 f 16 "701 701" 100 0 0 100 float8le - _null_ ));
+DATA(insert OID = 296 ( float8le PGNSP PGUID 12 f t f t f i 2 16 "701 701" 100 0 0 100 float8le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 297 ( float8gt PGNSP PGUID 12 f t t i 2 f 16 "701 701" 100 0 0 100 float8gt - _null_ ));
+DATA(insert OID = 297 ( float8gt PGNSP PGUID 12 f t f t f i 2 16 "701 701" 100 0 0 100 float8gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 298 ( float8ge PGNSP PGUID 12 f t t i 2 f 16 "701 701" 100 0 0 100 float8ge - _null_ ));
+DATA(insert OID = 298 ( float8ge PGNSP PGUID 12 f t f t f i 2 16 "701 701" 100 0 0 100 float8ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 299 ( float48eq PGNSP PGUID 12 f t t i 2 f 16 "700 701" 100 0 0 100 float48eq - _null_ ));
+DATA(insert OID = 299 ( float48eq PGNSP PGUID 12 f t f t f i 2 16 "700 701" 100 0 0 100 float48eq - _null_ ));
DESCR("equal");
/* OIDS 300 - 399 */
-DATA(insert OID = 300 ( float48ne PGNSP PGUID 12 f t t i 2 f 16 "700 701" 100 0 0 100 float48ne - _null_ ));
+DATA(insert OID = 300 ( float48ne PGNSP PGUID 12 f t f t f i 2 16 "700 701" 100 0 0 100 float48ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 301 ( float48lt PGNSP PGUID 12 f t t i 2 f 16 "700 701" 100 0 0 100 float48lt - _null_ ));
+DATA(insert OID = 301 ( float48lt PGNSP PGUID 12 f t f t f i 2 16 "700 701" 100 0 0 100 float48lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 302 ( float48le PGNSP PGUID 12 f t t i 2 f 16 "700 701" 100 0 0 100 float48le - _null_ ));
+DATA(insert OID = 302 ( float48le PGNSP PGUID 12 f t f t f i 2 16 "700 701" 100 0 0 100 float48le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 303 ( float48gt PGNSP PGUID 12 f t t i 2 f 16 "700 701" 100 0 0 100 float48gt - _null_ ));
+DATA(insert OID = 303 ( float48gt PGNSP PGUID 12 f t f t f i 2 16 "700 701" 100 0 0 100 float48gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 304 ( float48ge PGNSP PGUID 12 f t t i 2 f 16 "700 701" 100 0 0 100 float48ge - _null_ ));
+DATA(insert OID = 304 ( float48ge PGNSP PGUID 12 f t f t f i 2 16 "700 701" 100 0 0 100 float48ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 305 ( float84eq PGNSP PGUID 12 f t t i 2 f 16 "701 700" 100 0 0 100 float84eq - _null_ ));
+DATA(insert OID = 305 ( float84eq PGNSP PGUID 12 f t f t f i 2 16 "701 700" 100 0 0 100 float84eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 306 ( float84ne PGNSP PGUID 12 f t t i 2 f 16 "701 700" 100 0 0 100 float84ne - _null_ ));
+DATA(insert OID = 306 ( float84ne PGNSP PGUID 12 f t f t f i 2 16 "701 700" 100 0 0 100 float84ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 307 ( float84lt PGNSP PGUID 12 f t t i 2 f 16 "701 700" 100 0 0 100 float84lt - _null_ ));
+DATA(insert OID = 307 ( float84lt PGNSP PGUID 12 f t f t f i 2 16 "701 700" 100 0 0 100 float84lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 308 ( float84le PGNSP PGUID 12 f t t i 2 f 16 "701 700" 100 0 0 100 float84le - _null_ ));
+DATA(insert OID = 308 ( float84le PGNSP PGUID 12 f t f t f i 2 16 "701 700" 100 0 0 100 float84le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 309 ( float84gt PGNSP PGUID 12 f t t i 2 f 16 "701 700" 100 0 0 100 float84gt - _null_ ));
+DATA(insert OID = 309 ( float84gt PGNSP PGUID 12 f t f t f i 2 16 "701 700" 100 0 0 100 float84gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 310 ( float84ge PGNSP PGUID 12 f t t i 2 f 16 "701 700" 100 0 0 100 float84ge - _null_ ));
+DATA(insert OID = 310 ( float84ge PGNSP PGUID 12 f t f t f i 2 16 "701 700" 100 0 0 100 float84ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 311 ( float8 PGNSP PGUID 12 f t t i 1 f 701 "700" 100 0 0 100 ftod - _null_ ));
+DATA(insert OID = 311 ( float8 PGNSP PGUID 12 f t t t f i 1 701 "700" 100 0 0 100 ftod - _null_ ));
DESCR("convert float4 to float8");
-DATA(insert OID = 312 ( float4 PGNSP PGUID 12 f t t i 1 f 700 "701" 100 0 0 100 dtof - _null_ ));
+DATA(insert OID = 312 ( float4 PGNSP PGUID 12 f t t t f i 1 700 "701" 100 0 0 100 dtof - _null_ ));
DESCR("convert float8 to float4");
-DATA(insert OID = 313 ( int4 PGNSP PGUID 12 f t t i 1 f 23 "21" 100 0 0 100 i2toi4 - _null_ ));
+DATA(insert OID = 313 ( int4 PGNSP PGUID 12 f t t t f i 1 23 "21" 100 0 0 100 i2toi4 - _null_ ));
DESCR("convert int2 to int4");
-DATA(insert OID = 314 ( int2 PGNSP PGUID 12 f t t i 1 f 21 "23" 100 0 0 100 i4toi2 - _null_ ));
+DATA(insert OID = 314 ( int2 PGNSP PGUID 12 f t t t f i 1 21 "23" 100 0 0 100 i4toi2 - _null_ ));
DESCR("convert int4 to int2");
-DATA(insert OID = 315 ( int2vectoreq PGNSP PGUID 12 f t t i 2 f 16 "22 22" 100 0 0 100 int2vectoreq - _null_ ));
+DATA(insert OID = 315 ( int2vectoreq PGNSP PGUID 12 f t f t f i 2 16 "22 22" 100 0 0 100 int2vectoreq - _null_ ));
DESCR("equal");
-DATA(insert OID = 316 ( float8 PGNSP PGUID 12 f t t i 1 f 701 "23" 100 0 0 100 i4tod - _null_ ));
+DATA(insert OID = 316 ( float8 PGNSP PGUID 12 f t t t f i 1 701 "23" 100 0 0 100 i4tod - _null_ ));
DESCR("convert int4 to float8");
-DATA(insert OID = 317 ( int4 PGNSP PGUID 12 f t t i 1 f 23 "701" 100 0 0 100 dtoi4 - _null_ ));
+DATA(insert OID = 317 ( int4 PGNSP PGUID 12 f t f t f i 1 23 "701" 100 0 0 100 dtoi4 - _null_ ));
DESCR("convert float8 to int4");
-DATA(insert OID = 318 ( float4 PGNSP PGUID 12 f t t i 1 f 700 "23" 100 0 0 100 i4tof - _null_ ));
+DATA(insert OID = 318 ( float4 PGNSP PGUID 12 f t t t f i 1 700 "23" 100 0 0 100 i4tof - _null_ ));
DESCR("convert int4 to float4");
-DATA(insert OID = 319 ( int4 PGNSP PGUID 12 f t t i 1 f 23 "700" 100 0 0 100 ftoi4 - _null_ ));
+DATA(insert OID = 319 ( int4 PGNSP PGUID 12 f t f t f i 1 23 "700" 100 0 0 100 ftoi4 - _null_ ));
DESCR("convert float4 to int4");
-DATA(insert OID = 320 ( rtinsert PGNSP PGUID 12 f t t v 5 f 23 "0 0 0 0 0" 100 0 0 100 rtinsert - _null_ ));
+DATA(insert OID = 320 ( rtinsert PGNSP PGUID 12 f t f t f v 5 23 "0 0 0 0 0" 100 0 0 100 rtinsert - _null_ ));
DESCR("r-tree(internal)");
-DATA(insert OID = 322 ( rtgettuple PGNSP PGUID 12 f t t v 2 f 23 "0 0" 100 0 0 100 rtgettuple - _null_ ));
+DATA(insert OID = 322 ( rtgettuple PGNSP PGUID 12 f t f t f v 2 23 "0 0" 100 0 0 100 rtgettuple - _null_ ));
DESCR("r-tree(internal)");
-DATA(insert OID = 323 ( rtbuild PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100 rtbuild - _null_ ));
+DATA(insert OID = 323 ( rtbuild PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100 rtbuild - _null_ ));
DESCR("r-tree(internal)");
-DATA(insert OID = 324 ( rtbeginscan PGNSP PGUID 12 f t t v 4 f 23 "0 0 0 0" 100 0 0 100 rtbeginscan - _null_ ));
+DATA(insert OID = 324 ( rtbeginscan PGNSP PGUID 12 f t f t f v 4 23 "0 0 0 0" 100 0 0 100 rtbeginscan - _null_ ));
DESCR("r-tree(internal)");
-DATA(insert OID = 325 ( rtendscan PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100 rtendscan - _null_ ));
+DATA(insert OID = 325 ( rtendscan PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100 rtendscan - _null_ ));
DESCR("r-tree(internal)");
-DATA(insert OID = 326 ( rtmarkpos PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100 rtmarkpos - _null_ ));
+DATA(insert OID = 326 ( rtmarkpos PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100 rtmarkpos - _null_ ));
DESCR("r-tree(internal)");
-DATA(insert OID = 327 ( rtrestrpos PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100 rtrestrpos - _null_ ));
+DATA(insert OID = 327 ( rtrestrpos PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100 rtrestrpos - _null_ ));
DESCR("r-tree(internal)");
-DATA(insert OID = 328 ( rtrescan PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100 rtrescan - _null_ ));
+DATA(insert OID = 328 ( rtrescan PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100 rtrescan - _null_ ));
DESCR("r-tree(internal)");
-DATA(insert OID = 321 ( rtbulkdelete PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100 rtbulkdelete - _null_ ));
+DATA(insert OID = 321 ( rtbulkdelete PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100 rtbulkdelete - _null_ ));
DESCR("r-tree(internal)");
-DATA(insert OID = 1265 ( rtcostestimate PGNSP PGUID 12 f t t v 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100 rtcostestimate - _null_ ));
+DATA(insert OID = 1265 ( rtcostestimate PGNSP PGUID 12 f t f t f v 8 0 "0 0 0 0 0 0 0 0" 100 0 0 100 rtcostestimate - _null_ ));
DESCR("r-tree(internal)");
-DATA(insert OID = 330 ( btgettuple PGNSP PGUID 12 f t t v 2 f 23 "0 0" 100 0 0 100 btgettuple - _null_ ));
+DATA(insert OID = 330 ( btgettuple PGNSP PGUID 12 f t f t f v 2 23 "0 0" 100 0 0 100 btgettuple - _null_ ));
DESCR("btree(internal)");
-DATA(insert OID = 331 ( btinsert PGNSP PGUID 12 f t t v 5 f 23 "0 0 0 0 0" 100 0 0 100 btinsert - _null_ ));
+DATA(insert OID = 331 ( btinsert PGNSP PGUID 12 f t f t f v 5 23 "0 0 0 0 0" 100 0 0 100 btinsert - _null_ ));
DESCR("btree(internal)");
-DATA(insert OID = 333 ( btbeginscan PGNSP PGUID 12 f t t v 4 f 23 "0 0 0 0" 100 0 0 100 btbeginscan - _null_ ));
+DATA(insert OID = 333 ( btbeginscan PGNSP PGUID 12 f t f t f v 4 23 "0 0 0 0" 100 0 0 100 btbeginscan - _null_ ));
DESCR("btree(internal)");
-DATA(insert OID = 334 ( btrescan PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100 btrescan - _null_ ));
+DATA(insert OID = 334 ( btrescan PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100 btrescan - _null_ ));
DESCR("btree(internal)");
-DATA(insert OID = 335 ( btendscan PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100 btendscan - _null_ ));
+DATA(insert OID = 335 ( btendscan PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100 btendscan - _null_ ));
DESCR("btree(internal)");
-DATA(insert OID = 336 ( btmarkpos PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100 btmarkpos - _null_ ));
+DATA(insert OID = 336 ( btmarkpos PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100 btmarkpos - _null_ ));
DESCR("btree(internal)");
-DATA(insert OID = 337 ( btrestrpos PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100 btrestrpos - _null_ ));
+DATA(insert OID = 337 ( btrestrpos PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100 btrestrpos - _null_ ));
DESCR("btree(internal)");
-DATA(insert OID = 338 ( btbuild PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100 btbuild - _null_ ));
+DATA(insert OID = 338 ( btbuild PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100 btbuild - _null_ ));
DESCR("btree(internal)");
-DATA(insert OID = 332 ( btbulkdelete PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100 btbulkdelete - _null_ ));
+DATA(insert OID = 332 ( btbulkdelete PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100 btbulkdelete - _null_ ));
DESCR("btree(internal)");
-DATA(insert OID = 1268 ( btcostestimate PGNSP PGUID 12 f t t v 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100 btcostestimate - _null_ ));
+DATA(insert OID = 1268 ( btcostestimate PGNSP PGUID 12 f t f t f v 8 0 "0 0 0 0 0 0 0 0" 100 0 0 100 btcostestimate - _null_ ));
DESCR("btree(internal)");
-DATA(insert OID = 339 ( poly_same PGNSP PGUID 12 f t t i 2 f 16 "604 604" 100 0 0 100 poly_same - _null_ ));
+DATA(insert OID = 339 ( poly_same PGNSP PGUID 12 f t f t f i 2 16 "604 604" 100 0 0 100 poly_same - _null_ ));
DESCR("same as");
-DATA(insert OID = 340 ( poly_contain PGNSP PGUID 12 f t t i 2 f 16 "604 604" 100 0 0 100 poly_contain - _null_ ));
+DATA(insert OID = 340 ( poly_contain PGNSP PGUID 12 f t f t f i 2 16 "604 604" 100 0 0 100 poly_contain - _null_ ));
DESCR("contains");
-DATA(insert OID = 341 ( poly_left PGNSP PGUID 12 f t t i 2 f 16 "604 604" 100 0 0 100 poly_left - _null_ ));
+DATA(insert OID = 341 ( poly_left PGNSP PGUID 12 f t f t f i 2 16 "604 604" 100 0 0 100 poly_left - _null_ ));
DESCR("is left of");
-DATA(insert OID = 342 ( poly_overleft PGNSP PGUID 12 f t t i 2 f 16 "604 604" 100 0 0 100 poly_overleft - _null_ ));
+DATA(insert OID = 342 ( poly_overleft PGNSP PGUID 12 f t f t f i 2 16 "604 604" 100 0 0 100 poly_overleft - _null_ ));
DESCR("overlaps, but does not extend to right of");
-DATA(insert OID = 343 ( poly_overright PGNSP PGUID 12 f t t i 2 f 16 "604 604" 100 0 0 100 poly_overright - _null_ ));
+DATA(insert OID = 343 ( poly_overright PGNSP PGUID 12 f t f t f i 2 16 "604 604" 100 0 0 100 poly_overright - _null_ ));
DESCR("overlaps, but does not extend to left of");
-DATA(insert OID = 344 ( poly_right PGNSP PGUID 12 f t t i 2 f 16 "604 604" 100 0 0 100 poly_right - _null_ ));
+DATA(insert OID = 344 ( poly_right PGNSP PGUID 12 f t f t f i 2 16 "604 604" 100 0 0 100 poly_right - _null_ ));
DESCR("is right of");
-DATA(insert OID = 345 ( poly_contained PGNSP PGUID 12 f t t i 2 f 16 "604 604" 100 0 0 100 poly_contained - _null_ ));
+DATA(insert OID = 345 ( poly_contained PGNSP PGUID 12 f t f t f i 2 16 "604 604" 100 0 0 100 poly_contained - _null_ ));
DESCR("contained in");
-DATA(insert OID = 346 ( poly_overlap PGNSP PGUID 12 f t t i 2 f 16 "604 604" 100 0 0 100 poly_overlap - _null_ ));
+DATA(insert OID = 346 ( poly_overlap PGNSP PGUID 12 f t f t f i 2 16 "604 604" 100 0 0 100 poly_overlap - _null_ ));
DESCR("overlaps");
-DATA(insert OID = 347 ( poly_in PGNSP PGUID 12 f t t i 1 f 604 "0" 100 0 0 100 poly_in - _null_ ));
+DATA(insert OID = 347 ( poly_in PGNSP PGUID 12 f t f t f i 1 604 "0" 100 0 0 100 poly_in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 348 ( poly_out PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 poly_out - _null_ ));
+DATA(insert OID = 348 ( poly_out PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 poly_out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 350 ( btint2cmp PGNSP PGUID 12 f t t i 2 f 23 "21 21" 100 0 0 100 btint2cmp - _null_ ));
+DATA(insert OID = 350 ( btint2cmp PGNSP PGUID 12 f t f t f i 2 23 "21 21" 100 0 0 100 btint2cmp - _null_ ));
DESCR("btree less-equal-greater");
-DATA(insert OID = 351 ( btint4cmp PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100 btint4cmp - _null_ ));
+DATA(insert OID = 351 ( btint4cmp PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100 btint4cmp - _null_ ));
DESCR("btree less-equal-greater");
-DATA(insert OID = 842 ( btint8cmp PGNSP PGUID 12 f t t i 2 f 23 "20 20" 100 0 0 100 btint8cmp - _null_ ));
+DATA(insert OID = 842 ( btint8cmp PGNSP PGUID 12 f t f t f i 2 23 "20 20" 100 0 0 100 btint8cmp - _null_ ));
DESCR("btree less-equal-greater");
-DATA(insert OID = 354 ( btfloat4cmp PGNSP PGUID 12 f t t i 2 f 23 "700 700" 100 0 0 100 btfloat4cmp - _null_ ));
+DATA(insert OID = 354 ( btfloat4cmp PGNSP PGUID 12 f t f t f i 2 23 "700 700" 100 0 0 100 btfloat4cmp - _null_ ));
DESCR("btree less-equal-greater");
-DATA(insert OID = 355 ( btfloat8cmp PGNSP PGUID 12 f t t i 2 f 23 "701 701" 100 0 0 100 btfloat8cmp - _null_ ));
+DATA(insert OID = 355 ( btfloat8cmp PGNSP PGUID 12 f t f t f i 2 23 "701 701" 100 0 0 100 btfloat8cmp - _null_ ));
DESCR("btree less-equal-greater");
-DATA(insert OID = 356 ( btoidcmp PGNSP PGUID 12 f t t i 2 f 23 "26 26" 100 0 0 100 btoidcmp - _null_ ));
+DATA(insert OID = 356 ( btoidcmp PGNSP PGUID 12 f t f t f i 2 23 "26 26" 100 0 0 100 btoidcmp - _null_ ));
DESCR("btree less-equal-greater");
-DATA(insert OID = 404 ( btoidvectorcmp PGNSP PGUID 12 f t t i 2 f 23 "30 30" 100 0 0 100 btoidvectorcmp - _null_ ));
+DATA(insert OID = 404 ( btoidvectorcmp PGNSP PGUID 12 f t f t f i 2 23 "30 30" 100 0 0 100 btoidvectorcmp - _null_ ));
DESCR("btree less-equal-greater");
-DATA(insert OID = 357 ( btabstimecmp PGNSP PGUID 12 f t t i 2 f 23 "702 702" 100 0 0 100 btabstimecmp - _null_ ));
+DATA(insert OID = 357 ( btabstimecmp PGNSP PGUID 12 f t f t f i 2 23 "702 702" 100 0 0 100 btabstimecmp - _null_ ));
DESCR("btree less-equal-greater");
-DATA(insert OID = 358 ( btcharcmp PGNSP PGUID 12 f t t i 2 f 23 "18 18" 100 0 0 100 btcharcmp - _null_ ));
+DATA(insert OID = 358 ( btcharcmp PGNSP PGUID 12 f t f t f i 2 23 "18 18" 100 0 0 100 btcharcmp - _null_ ));
DESCR("btree less-equal-greater");
-DATA(insert OID = 359 ( btnamecmp PGNSP PGUID 12 f t t i 2 f 23 "19 19" 100 0 0 100 btnamecmp - _null_ ));
+DATA(insert OID = 359 ( btnamecmp PGNSP PGUID 12 f t f t f i 2 23 "19 19" 100 0 0 100 btnamecmp - _null_ ));
DESCR("btree less-equal-greater");
-DATA(insert OID = 360 ( bttextcmp PGNSP PGUID 12 f t t i 2 f 23 "25 25" 100 0 0 100 bttextcmp - _null_ ));
+DATA(insert OID = 360 ( bttextcmp PGNSP PGUID 12 f t f t f i 2 23 "25 25" 100 0 0 100 bttextcmp - _null_ ));
DESCR("btree less-equal-greater");
-DATA(insert OID = 361 ( lseg_distance PGNSP PGUID 12 f t t i 2 f 701 "601 601" 100 0 0 100 lseg_distance - _null_ ));
+DATA(insert OID = 361 ( lseg_distance PGNSP PGUID 12 f t f t f i 2 701 "601 601" 100 0 0 100 lseg_distance - _null_ ));
DESCR("distance between");
-DATA(insert OID = 362 ( lseg_interpt PGNSP PGUID 12 f t t i 2 f 600 "601 601" 100 0 0 100 lseg_interpt - _null_ ));
+DATA(insert OID = 362 ( lseg_interpt PGNSP PGUID 12 f t f t f i 2 600 "601 601" 100 0 0 100 lseg_interpt - _null_ ));
DESCR("");
-DATA(insert OID = 363 ( dist_ps PGNSP PGUID 12 f t t i 2 f 701 "600 601" 100 0 0 100 dist_ps - _null_ ));
+DATA(insert OID = 363 ( dist_ps PGNSP PGUID 12 f t f t f i 2 701 "600 601" 100 0 0 100 dist_ps - _null_ ));
DESCR("distance between");
-DATA(insert OID = 364 ( dist_pb PGNSP PGUID 12 f t t i 2 f 701 "600 603" 100 0 0 100 dist_pb - _null_ ));
+DATA(insert OID = 364 ( dist_pb PGNSP PGUID 12 f t f t f i 2 701 "600 603" 100 0 0 100 dist_pb - _null_ ));
DESCR("distance between point and box");
-DATA(insert OID = 365 ( dist_sb PGNSP PGUID 12 f t t i 2 f 701 "601 603" 100 0 0 100 dist_sb - _null_ ));
+DATA(insert OID = 365 ( dist_sb PGNSP PGUID 12 f t f t f i 2 701 "601 603" 100 0 0 100 dist_sb - _null_ ));
DESCR("distance between segment and box");
-DATA(insert OID = 366 ( close_ps PGNSP PGUID 12 f t t i 2 f 600 "600 601" 100 0 0 100 close_ps - _null_ ));
+DATA(insert OID = 366 ( close_ps PGNSP PGUID 12 f t f t f i 2 600 "600 601" 100 0 0 100 close_ps - _null_ ));
DESCR("closest point on line segment");
-DATA(insert OID = 367 ( close_pb PGNSP PGUID 12 f t t i 2 f 600 "600 603" 100 0 0 100 close_pb - _null_ ));
+DATA(insert OID = 367 ( close_pb PGNSP PGUID 12 f t f t f i 2 600 "600 603" 100 0 0 100 close_pb - _null_ ));
DESCR("closest point on box");
-DATA(insert OID = 368 ( close_sb PGNSP PGUID 12 f t t i 2 f 600 "601 603" 100 0 0 100 close_sb - _null_ ));
+DATA(insert OID = 368 ( close_sb PGNSP PGUID 12 f t f t f i 2 600 "601 603" 100 0 0 100 close_sb - _null_ ));
DESCR("closest point to line segment on box");
-DATA(insert OID = 369 ( on_ps PGNSP PGUID 12 f t t i 2 f 16 "600 601" 100 0 0 100 on_ps - _null_ ));
+DATA(insert OID = 369 ( on_ps PGNSP PGUID 12 f t f t f i 2 16 "600 601" 100 0 0 100 on_ps - _null_ ));
DESCR("point contained in segment");
-DATA(insert OID = 370 ( path_distance PGNSP PGUID 12 f t t i 2 f 701 "602 602" 100 0 0 100 path_distance - _null_ ));
+DATA(insert OID = 370 ( path_distance PGNSP PGUID 12 f t f t f i 2 701 "602 602" 100 0 0 100 path_distance - _null_ ));
DESCR("distance between paths");
-DATA(insert OID = 371 ( dist_ppath PGNSP PGUID 12 f t t i 2 f 701 "600 602" 100 0 0 100 dist_ppath - _null_ ));
+DATA(insert OID = 371 ( dist_ppath PGNSP PGUID 12 f t f t f i 2 701 "600 602" 100 0 0 100 dist_ppath - _null_ ));
DESCR("distance between point and path");
-DATA(insert OID = 372 ( on_sb PGNSP PGUID 12 f t t i 2 f 16 "601 603" 100 0 0 100 on_sb - _null_ ));
+DATA(insert OID = 372 ( on_sb PGNSP PGUID 12 f t f t f i 2 16 "601 603" 100 0 0 100 on_sb - _null_ ));
DESCR("contained in");
-DATA(insert OID = 373 ( inter_sb PGNSP PGUID 12 f t t i 2 f 16 "601 603" 100 0 0 100 inter_sb - _null_ ));
+DATA(insert OID = 373 ( inter_sb PGNSP PGUID 12 f t f t f i 2 16 "601 603" 100 0 0 100 inter_sb - _null_ ));
DESCR("intersects?");
/* OIDS 400 - 499 */
-DATA(insert OID = 406 ( text PGNSP PGUID 12 f t t i 1 f 25 "19" 100 0 0 100 name_text - _null_ ));
+DATA(insert OID = 406 ( text PGNSP PGUID 12 f t t t f i 1 25 "19" 100 0 0 100 name_text - _null_ ));
DESCR("convert name to text");
-DATA(insert OID = 407 ( name PGNSP PGUID 12 f t t i 1 f 19 "25" 100 0 0 100 text_name - _null_ ));
+DATA(insert OID = 407 ( name PGNSP PGUID 12 f t t t f i 1 19 "25" 100 0 0 100 text_name - _null_ ));
DESCR("convert text to name");
-DATA(insert OID = 408 ( bpchar PGNSP PGUID 12 f t t i 1 f 1042 "19" 100 0 0 100 name_bpchar - _null_ ));
+DATA(insert OID = 408 ( bpchar PGNSP PGUID 12 f t t t f i 1 1042 "19" 100 0 0 100 name_bpchar - _null_ ));
DESCR("convert name to char()");
-DATA(insert OID = 409 ( name PGNSP PGUID 12 f t t i 1 f 19 "1042" 100 0 0 100 bpchar_name - _null_ ));
+DATA(insert OID = 409 ( name PGNSP PGUID 12 f t t t f i 1 19 "1042" 100 0 0 100 bpchar_name - _null_ ));
DESCR("convert char() to name");
-DATA(insert OID = 440 ( hashgettuple PGNSP PGUID 12 f t t v 2 f 23 "0 0" 100 0 0 100 hashgettuple - _null_ ));
+DATA(insert OID = 440 ( hashgettuple PGNSP PGUID 12 f t f t f v 2 23 "0 0" 100 0 0 100 hashgettuple - _null_ ));
DESCR("hash(internal)");
-DATA(insert OID = 441 ( hashinsert PGNSP PGUID 12 f t t v 5 f 23 "0 0 0 0 0" 100 0 0 100 hashinsert - _null_ ));
+DATA(insert OID = 441 ( hashinsert PGNSP PGUID 12 f t f t f v 5 23 "0 0 0 0 0" 100 0 0 100 hashinsert - _null_ ));
DESCR("hash(internal)");
-DATA(insert OID = 443 ( hashbeginscan PGNSP PGUID 12 f t t v 4 f 23 "0 0 0 0" 100 0 0 100 hashbeginscan - _null_ ));
+DATA(insert OID = 443 ( hashbeginscan PGNSP PGUID 12 f t f t f v 4 23 "0 0 0 0" 100 0 0 100 hashbeginscan - _null_ ));
DESCR("hash(internal)");
-DATA(insert OID = 444 ( hashrescan PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100 hashrescan - _null_ ));
+DATA(insert OID = 444 ( hashrescan PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100 hashrescan - _null_ ));
DESCR("hash(internal)");
-DATA(insert OID = 445 ( hashendscan PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100 hashendscan - _null_ ));
+DATA(insert OID = 445 ( hashendscan PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100 hashendscan - _null_ ));
DESCR("hash(internal)");
-DATA(insert OID = 446 ( hashmarkpos PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100 hashmarkpos - _null_ ));
+DATA(insert OID = 446 ( hashmarkpos PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100 hashmarkpos - _null_ ));
DESCR("hash(internal)");
-DATA(insert OID = 447 ( hashrestrpos PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100 hashrestrpos - _null_ ));
+DATA(insert OID = 447 ( hashrestrpos PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100 hashrestrpos - _null_ ));
DESCR("hash(internal)");
-DATA(insert OID = 448 ( hashbuild PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100 hashbuild - _null_ ));
+DATA(insert OID = 448 ( hashbuild PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100 hashbuild - _null_ ));
DESCR("hash(internal)");
-DATA(insert OID = 442 ( hashbulkdelete PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100 hashbulkdelete - _null_ ));
+DATA(insert OID = 442 ( hashbulkdelete PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100 hashbulkdelete - _null_ ));
DESCR("hash(internal)");
-DATA(insert OID = 438 ( hashcostestimate PGNSP PGUID 12 f t t v 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100 hashcostestimate - _null_ ));
+DATA(insert OID = 438 ( hashcostestimate PGNSP PGUID 12 f t f t f v 8 0 "0 0 0 0 0 0 0 0" 100 0 0 100 hashcostestimate - _null_ ));
DESCR("hash(internal)");
-DATA(insert OID = 449 ( hashint2 PGNSP PGUID 12 f t t i 1 f 23 "21" 100 0 0 100 hashint2 - _null_ ));
+DATA(insert OID = 449 ( hashint2 PGNSP PGUID 12 f t f t f i 1 23 "21" 100 0 0 100 hashint2 - _null_ ));
DESCR("hash");
-DATA(insert OID = 450 ( hashint4 PGNSP PGUID 12 f t t i 1 f 23 "23" 100 0 0 100 hashint4 - _null_ ));
+DATA(insert OID = 450 ( hashint4 PGNSP PGUID 12 f t f t f i 1 23 "23" 100 0 0 100 hashint4 - _null_ ));
DESCR("hash");
-DATA(insert OID = 949 ( hashint8 PGNSP PGUID 12 f t t i 1 f 23 "20" 100 0 0 100 hashint8 - _null_ ));
+DATA(insert OID = 949 ( hashint8 PGNSP PGUID 12 f t f t f i 1 23 "20" 100 0 0 100 hashint8 - _null_ ));
DESCR("hash");
-DATA(insert OID = 451 ( hashfloat4 PGNSP PGUID 12 f t t i 1 f 23 "700" 100 0 0 100 hashfloat4 - _null_ ));
+DATA(insert OID = 451 ( hashfloat4 PGNSP PGUID 12 f t f t f i 1 23 "700" 100 0 0 100 hashfloat4 - _null_ ));
DESCR("hash");
-DATA(insert OID = 452 ( hashfloat8 PGNSP PGUID 12 f t t i 1 f 23 "701" 100 0 0 100 hashfloat8 - _null_ ));
+DATA(insert OID = 452 ( hashfloat8 PGNSP PGUID 12 f t f t f i 1 23 "701" 100 0 0 100 hashfloat8 - _null_ ));
DESCR("hash");
-DATA(insert OID = 453 ( hashoid PGNSP PGUID 12 f t t i 1 f 23 "26" 100 0 0 100 hashoid - _null_ ));
+DATA(insert OID = 453 ( hashoid PGNSP PGUID 12 f t f t f i 1 23 "26" 100 0 0 100 hashoid - _null_ ));
DESCR("hash");
-DATA(insert OID = 454 ( hashchar PGNSP PGUID 12 f t t i 1 f 23 "18" 100 0 0 100 hashchar - _null_ ));
+DATA(insert OID = 454 ( hashchar PGNSP PGUID 12 f t f t f i 1 23 "18" 100 0 0 100 hashchar - _null_ ));
DESCR("hash");
-DATA(insert OID = 455 ( hashname PGNSP PGUID 12 f t t i 1 f 23 "19" 100 0 0 100 hashname - _null_ ));
+DATA(insert OID = 455 ( hashname PGNSP PGUID 12 f t f t f i 1 23 "19" 100 0 0 100 hashname - _null_ ));
DESCR("hash");
-DATA(insert OID = 456 ( hashvarlena PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 hashvarlena - _null_ ));
+DATA(insert OID = 456 ( hashvarlena PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 hashvarlena - _null_ ));
DESCR("hash any varlena type");
-DATA(insert OID = 457 ( hashoidvector PGNSP PGUID 12 f t t i 1 f 23 "30" 100 0 0 100 hashoidvector - _null_ ));
+DATA(insert OID = 457 ( hashoidvector PGNSP PGUID 12 f t f t f i 1 23 "30" 100 0 0 100 hashoidvector - _null_ ));
DESCR("hash");
-DATA(insert OID = 399 ( hashmacaddr PGNSP PGUID 12 f t t i 1 f 23 "829" 100 0 0 100 hashmacaddr - _null_ ));
+DATA(insert OID = 399 ( hashmacaddr PGNSP PGUID 12 f t f t f i 1 23 "829" 100 0 0 100 hashmacaddr - _null_ ));
DESCR("hash");
-DATA(insert OID = 458 ( text_larger PGNSP PGUID 12 f t t i 2 f 25 "25 25" 100 0 0 100 text_larger - _null_ ));
+DATA(insert OID = 458 ( text_larger PGNSP PGUID 12 f t f t f i 2 25 "25 25" 100 0 0 100 text_larger - _null_ ));
DESCR("larger of two");
-DATA(insert OID = 459 ( text_smaller PGNSP PGUID 12 f t t i 2 f 25 "25 25" 100 0 0 100 text_smaller - _null_ ));
+DATA(insert OID = 459 ( text_smaller PGNSP PGUID 12 f t f t f i 2 25 "25 25" 100 0 0 100 text_smaller - _null_ ));
DESCR("smaller of two");
-DATA(insert OID = 460 ( int8in PGNSP PGUID 12 f t t i 1 f 20 "0" 100 0 0 100 int8in - _null_ ));
+DATA(insert OID = 460 ( int8in PGNSP PGUID 12 f t f t f i 1 20 "0" 100 0 0 100 int8in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 461 ( int8out PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 int8out - _null_ ));
+DATA(insert OID = 461 ( int8out PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 int8out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 462 ( int8um PGNSP PGUID 12 f t t i 1 f 20 "20" 100 0 0 100 int8um - _null_ ));
+DATA(insert OID = 462 ( int8um PGNSP PGUID 12 f t f t f i 1 20 "20" 100 0 0 100 int8um - _null_ ));
DESCR("negate");
-DATA(insert OID = 463 ( int8pl PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100 int8pl - _null_ ));
+DATA(insert OID = 463 ( int8pl PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100 int8pl - _null_ ));
DESCR("add");
-DATA(insert OID = 464 ( int8mi PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100 int8mi - _null_ ));
+DATA(insert OID = 464 ( int8mi PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100 int8mi - _null_ ));
DESCR("subtract");
-DATA(insert OID = 465 ( int8mul PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100 int8mul - _null_ ));
+DATA(insert OID = 465 ( int8mul PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100 int8mul - _null_ ));
DESCR("multiply");
-DATA(insert OID = 466 ( int8div PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100 int8div - _null_ ));
+DATA(insert OID = 466 ( int8div PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100 int8div - _null_ ));
DESCR("divide");
-DATA(insert OID = 467 ( int8eq PGNSP PGUID 12 f t t i 2 f 16 "20 20" 100 0 0 100 int8eq - _null_ ));
+DATA(insert OID = 467 ( int8eq PGNSP PGUID 12 f t f t f i 2 16 "20 20" 100 0 0 100 int8eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 468 ( int8ne PGNSP PGUID 12 f t t i 2 f 16 "20 20" 100 0 0 100 int8ne - _null_ ));
+DATA(insert OID = 468 ( int8ne PGNSP PGUID 12 f t f t f i 2 16 "20 20" 100 0 0 100 int8ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 469 ( int8lt PGNSP PGUID 12 f t t i 2 f 16 "20 20" 100 0 0 100 int8lt - _null_ ));
+DATA(insert OID = 469 ( int8lt PGNSP PGUID 12 f t f t f i 2 16 "20 20" 100 0 0 100 int8lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 470 ( int8gt PGNSP PGUID 12 f t t i 2 f 16 "20 20" 100 0 0 100 int8gt - _null_ ));
+DATA(insert OID = 470 ( int8gt PGNSP PGUID 12 f t f t f i 2 16 "20 20" 100 0 0 100 int8gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 471 ( int8le PGNSP PGUID 12 f t t i 2 f 16 "20 20" 100 0 0 100 int8le - _null_ ));
+DATA(insert OID = 471 ( int8le PGNSP PGUID 12 f t f t f i 2 16 "20 20" 100 0 0 100 int8le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 472 ( int8ge PGNSP PGUID 12 f t t i 2 f 16 "20 20" 100 0 0 100 int8ge - _null_ ));
+DATA(insert OID = 472 ( int8ge PGNSP PGUID 12 f t f t f i 2 16 "20 20" 100 0 0 100 int8ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 474 ( int84eq PGNSP PGUID 12 f t t i 2 f 16 "20 23" 100 0 0 100 int84eq - _null_ ));
+DATA(insert OID = 474 ( int84eq PGNSP PGUID 12 f t f t f i 2 16 "20 23" 100 0 0 100 int84eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 475 ( int84ne PGNSP PGUID 12 f t t i 2 f 16 "20 23" 100 0 0 100 int84ne - _null_ ));
+DATA(insert OID = 475 ( int84ne PGNSP PGUID 12 f t f t f i 2 16 "20 23" 100 0 0 100 int84ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 476 ( int84lt PGNSP PGUID 12 f t t i 2 f 16 "20 23" 100 0 0 100 int84lt - _null_ ));
+DATA(insert OID = 476 ( int84lt PGNSP PGUID 12 f t f t f i 2 16 "20 23" 100 0 0 100 int84lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 477 ( int84gt PGNSP PGUID 12 f t t i 2 f 16 "20 23" 100 0 0 100 int84gt - _null_ ));
+DATA(insert OID = 477 ( int84gt PGNSP PGUID 12 f t f t f i 2 16 "20 23" 100 0 0 100 int84gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 478 ( int84le PGNSP PGUID 12 f t t i 2 f 16 "20 23" 100 0 0 100 int84le - _null_ ));
+DATA(insert OID = 478 ( int84le PGNSP PGUID 12 f t f t f i 2 16 "20 23" 100 0 0 100 int84le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 479 ( int84ge PGNSP PGUID 12 f t t i 2 f 16 "20 23" 100 0 0 100 int84ge - _null_ ));
+DATA(insert OID = 479 ( int84ge PGNSP PGUID 12 f t f t f i 2 16 "20 23" 100 0 0 100 int84ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 480 ( int4 PGNSP PGUID 12 f t t i 1 f 23 "20" 100 0 0 100 int84 - _null_ ));
+DATA(insert OID = 480 ( int4 PGNSP PGUID 12 f t t t f i 1 23 "20" 100 0 0 100 int84 - _null_ ));
DESCR("convert int8 to int4");
-DATA(insert OID = 481 ( int8 PGNSP PGUID 12 f t t i 1 f 20 "23" 100 0 0 100 int48 - _null_ ));
+DATA(insert OID = 481 ( int8 PGNSP PGUID 12 f t t t f i 1 20 "23" 100 0 0 100 int48 - _null_ ));
DESCR("convert int4 to int8");
-DATA(insert OID = 482 ( float8 PGNSP PGUID 12 f t t i 1 f 701 "20" 100 0 0 100 i8tod - _null_ ));
+DATA(insert OID = 482 ( float8 PGNSP PGUID 12 f t t t f i 1 701 "20" 100 0 0 100 i8tod - _null_ ));
DESCR("convert int8 to float8");
-DATA(insert OID = 483 ( int8 PGNSP PGUID 12 f t t i 1 f 20 "701" 100 0 0 100 dtoi8 - _null_ ));
+DATA(insert OID = 483 ( int8 PGNSP PGUID 12 f t f t f i 1 20 "701" 100 0 0 100 dtoi8 - _null_ ));
DESCR("convert float8 to int8");
-DATA(insert OID = 714 ( int2 PGNSP PGUID 12 f t t i 1 f 21 "20" 100 0 0 100 int82 - _null_ ));
+DATA(insert OID = 714 ( int2 PGNSP PGUID 12 f t t t f i 1 21 "20" 100 0 0 100 int82 - _null_ ));
DESCR("convert int8 to int2");
-DATA(insert OID = 754 ( int8 PGNSP PGUID 12 f t t i 1 f 20 "21" 100 0 0 100 int28 - _null_ ));
+DATA(insert OID = 754 ( int8 PGNSP PGUID 12 f t t t f i 1 20 "21" 100 0 0 100 int28 - _null_ ));
DESCR("convert int2 to int8");
/* OIDS 500 - 599 */
/* OIDS 600 - 699 */
-DATA(insert OID = 1285 ( int4notin PGNSP PGUID 12 f t t s 2 f 16 "23 25" 100 0 0 100 int4notin - _null_ ));
+DATA(insert OID = 1285 ( int4notin PGNSP PGUID 12 f t f t f s 2 16 "23 25" 100 0 0 100 int4notin - _null_ ));
DESCR("not in");
-DATA(insert OID = 1286 ( oidnotin PGNSP PGUID 12 f t t s 2 f 16 "26 25" 100 0 0 100 oidnotin - _null_ ));
+DATA(insert OID = 1286 ( oidnotin PGNSP PGUID 12 f t f t f s 2 16 "26 25" 100 0 0 100 oidnotin - _null_ ));
DESCR("not in");
-DATA(insert OID = 1287 ( int44in PGNSP PGUID 12 f t t i 1 f 22 "0" 100 0 0 100 int44in - _null_ ));
+DATA(insert OID = 1287 ( int44in PGNSP PGUID 12 f t f t f i 1 22 "0" 100 0 0 100 int44in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 653 ( int44out PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 int44out - _null_ ));
+DATA(insert OID = 653 ( int44out PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 int44out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 655 ( namelt PGNSP PGUID 12 f t t i 2 f 16 "19 19" 100 0 0 100 namelt - _null_ ));
+DATA(insert OID = 655 ( namelt PGNSP PGUID 12 f t f t f i 2 16 "19 19" 100 0 0 100 namelt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 656 ( namele PGNSP PGUID 12 f t t i 2 f 16 "19 19" 100 0 0 100 namele - _null_ ));
+DATA(insert OID = 656 ( namele PGNSP PGUID 12 f t f t f i 2 16 "19 19" 100 0 0 100 namele - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 657 ( namegt PGNSP PGUID 12 f t t i 2 f 16 "19 19" 100 0 0 100 namegt - _null_ ));
+DATA(insert OID = 657 ( namegt PGNSP PGUID 12 f t f t f i 2 16 "19 19" 100 0 0 100 namegt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 658 ( namege PGNSP PGUID 12 f t t i 2 f 16 "19 19" 100 0 0 100 namege - _null_ ));
+DATA(insert OID = 658 ( namege PGNSP PGUID 12 f t f t f i 2 16 "19 19" 100 0 0 100 namege - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 659 ( namene PGNSP PGUID 12 f t t i 2 f 16 "19 19" 100 0 0 100 namene - _null_ ));
+DATA(insert OID = 659 ( namene PGNSP PGUID 12 f t f t f i 2 16 "19 19" 100 0 0 100 namene - _null_ ));
DESCR("not equal");
-DATA(insert OID = 668 ( bpchar PGNSP PGUID 12 f t t i 2 f 1042 "1042 23" 100 0 0 100 bpchar - _null_ ));
+DATA(insert OID = 668 ( bpchar PGNSP PGUID 12 f t t t f i 2 1042 "1042 23" 100 0 0 100 bpchar - _null_ ));
DESCR("adjust char() to typmod length");
-DATA(insert OID = 669 ( varchar PGNSP PGUID 12 f t t i 2 f 1043 "1043 23" 100 0 0 100 varchar - _null_ ));
+DATA(insert OID = 669 ( varchar PGNSP PGUID 12 f t t t f i 2 1043 "1043 23" 100 0 0 100 varchar - _null_ ));
DESCR("adjust varchar() to typmod length");
-DATA(insert OID = 676 ( mktinterval PGNSP PGUID 12 f t t i 2 f 704 "702 702" 100 0 0 100 mktinterval - _null_ ));
+DATA(insert OID = 676 ( mktinterval PGNSP PGUID 12 f t f t f i 2 704 "702 702" 100 0 0 100 mktinterval - _null_ ));
DESCR("convert to tinterval");
-DATA(insert OID = 619 ( oidvectorne PGNSP PGUID 12 f t t i 2 f 16 "30 30" 100 0 0 100 oidvectorne - _null_ ));
+DATA(insert OID = 619 ( oidvectorne PGNSP PGUID 12 f t f t f i 2 16 "30 30" 100 0 0 100 oidvectorne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 677 ( oidvectorlt PGNSP PGUID 12 f t t i 2 f 16 "30 30" 100 0 0 100 oidvectorlt - _null_ ));
+DATA(insert OID = 677 ( oidvectorlt PGNSP PGUID 12 f t f t f i 2 16 "30 30" 100 0 0 100 oidvectorlt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 678 ( oidvectorle PGNSP PGUID 12 f t t i 2 f 16 "30 30" 100 0 0 100 oidvectorle - _null_ ));
+DATA(insert OID = 678 ( oidvectorle PGNSP PGUID 12 f t f t f i 2 16 "30 30" 100 0 0 100 oidvectorle - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 679 ( oidvectoreq PGNSP PGUID 12 f t t i 2 f 16 "30 30" 100 0 0 100 oidvectoreq - _null_ ));
+DATA(insert OID = 679 ( oidvectoreq PGNSP PGUID 12 f t f t f i 2 16 "30 30" 100 0 0 100 oidvectoreq - _null_ ));
DESCR("equal");
-DATA(insert OID = 680 ( oidvectorge PGNSP PGUID 12 f t t i 2 f 16 "30 30" 100 0 0 100 oidvectorge - _null_ ));
+DATA(insert OID = 680 ( oidvectorge PGNSP PGUID 12 f t f t f i 2 16 "30 30" 100 0 0 100 oidvectorge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 681 ( oidvectorgt PGNSP PGUID 12 f t t i 2 f 16 "30 30" 100 0 0 100 oidvectorgt - _null_ ));
+DATA(insert OID = 681 ( oidvectorgt PGNSP PGUID 12 f t f t f i 2 16 "30 30" 100 0 0 100 oidvectorgt - _null_ ));
DESCR("greater-than");
/* OIDS 700 - 799 */
-DATA(insert OID = 710 ( getpgusername PGNSP PGUID 12 f t t s 0 f 19 "0" 100 0 0 100 current_user - _null_ ));
+DATA(insert OID = 710 ( getpgusername PGNSP PGUID 12 f t f t f s 0 19 "0" 100 0 0 100 current_user - _null_ ));
DESCR("deprecated -- use current_user");
-DATA(insert OID = 711 ( userfntest PGNSP PGUID 12 f t t i 1 f 23 "23" 100 0 0 100 userfntest - _null_ ));
+DATA(insert OID = 711 ( userfntest PGNSP PGUID 12 f t f t f i 1 23 "23" 100 0 0 100 userfntest - _null_ ));
DESCR("");
-DATA(insert OID = 713 ( oidrand PGNSP PGUID 12 f t t v 2 f 16 "26 23" 100 0 0 100 oidrand - _null_ ));
+DATA(insert OID = 713 ( oidrand PGNSP PGUID 12 f t f t f v 2 16 "26 23" 100 0 0 100 oidrand - _null_ ));
DESCR("random");
-DATA(insert OID = 715 ( oidsrand PGNSP PGUID 12 f t t v 1 f 16 "23" 100 0 0 100 oidsrand - _null_ ));
+DATA(insert OID = 715 ( oidsrand PGNSP PGUID 12 f t f t f v 1 16 "23" 100 0 0 100 oidsrand - _null_ ));
DESCR("seed random number generator");
-DATA(insert OID = 716 ( oidlt PGNSP PGUID 12 f t t i 2 f 16 "26 26" 100 0 0 100 oidlt - _null_ ));
+DATA(insert OID = 716 ( oidlt PGNSP PGUID 12 f t f t f i 2 16 "26 26" 100 0 0 100 oidlt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 717 ( oidle PGNSP PGUID 12 f t t i 2 f 16 "26 26" 100 0 0 100 oidle - _null_ ));
+DATA(insert OID = 717 ( oidle PGNSP PGUID 12 f t f t f i 2 16 "26 26" 100 0 0 100 oidle - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 720 ( octet_length PGNSP PGUID 12 f t t i 1 f 23 "17" 100 0 0 100 byteaoctetlen - _null_ ));
+DATA(insert OID = 720 ( octet_length PGNSP PGUID 12 f t f t f i 1 23 "17" 100 0 0 100 byteaoctetlen - _null_ ));
DESCR("octet length");
-DATA(insert OID = 721 ( get_byte PGNSP PGUID 12 f t t i 2 f 23 "17 23" 100 0 0 100 byteaGetByte - _null_ ));
+DATA(insert OID = 721 ( get_byte PGNSP PGUID 12 f t f t f i 2 23 "17 23" 100 0 0 100 byteaGetByte - _null_ ));
DESCR("");
-DATA(insert OID = 722 ( set_byte PGNSP PGUID 12 f t t i 3 f 17 "17 23 23" 100 0 0 100 byteaSetByte - _null_ ));
+DATA(insert OID = 722 ( set_byte PGNSP PGUID 12 f t f t f i 3 17 "17 23 23" 100 0 0 100 byteaSetByte - _null_ ));
DESCR("");
-DATA(insert OID = 723 ( get_bit PGNSP PGUID 12 f t t i 2 f 23 "17 23" 100 0 0 100 byteaGetBit - _null_ ));
+DATA(insert OID = 723 ( get_bit PGNSP PGUID 12 f t f t f i 2 23 "17 23" 100 0 0 100 byteaGetBit - _null_ ));
DESCR("");
-DATA(insert OID = 724 ( set_bit PGNSP PGUID 12 f t t i 3 f 17 "17 23 23" 100 0 0 100 byteaSetBit - _null_ ));
+DATA(insert OID = 724 ( set_bit PGNSP PGUID 12 f t f t f i 3 17 "17 23 23" 100 0 0 100 byteaSetBit - _null_ ));
DESCR("");
-DATA(insert OID = 725 ( dist_pl PGNSP PGUID 12 f t t i 2 f 701 "600 628" 100 0 0 100 dist_pl - _null_ ));
+DATA(insert OID = 725 ( dist_pl PGNSP PGUID 12 f t f t f i 2 701 "600 628" 100 0 0 100 dist_pl - _null_ ));
DESCR("distance between point and line");
-DATA(insert OID = 726 ( dist_lb PGNSP PGUID 12 f t t i 2 f 701 "628 603" 100 0 0 100 dist_lb - _null_ ));
+DATA(insert OID = 726 ( dist_lb PGNSP PGUID 12 f t f t f i 2 701 "628 603" 100 0 0 100 dist_lb - _null_ ));
DESCR("distance between line and box");
-DATA(insert OID = 727 ( dist_sl PGNSP PGUID 12 f t t i 2 f 701 "601 628" 100 0 0 100 dist_sl - _null_ ));
+DATA(insert OID = 727 ( dist_sl PGNSP PGUID 12 f t f t f i 2 701 "601 628" 100 0 0 100 dist_sl - _null_ ));
DESCR("distance between lseg and line");
-DATA(insert OID = 728 ( dist_cpoly PGNSP PGUID 12 f t t i 2 f 701 "718 604" 100 0 0 100 dist_cpoly - _null_ ));
+DATA(insert OID = 728 ( dist_cpoly PGNSP PGUID 12 f t f t f i 2 701 "718 604" 100 0 0 100 dist_cpoly - _null_ ));
DESCR("distance between");
-DATA(insert OID = 729 ( poly_distance PGNSP PGUID 12 f t t i 2 f 701 "604 604" 100 0 0 100 poly_distance - _null_ ));
+DATA(insert OID = 729 ( poly_distance PGNSP PGUID 12 f t f t f i 2 701 "604 604" 100 0 0 100 poly_distance - _null_ ));
DESCR("distance between");
-DATA(insert OID = 740 ( text_lt PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100 text_lt - _null_ ));
+DATA(insert OID = 740 ( text_lt PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100 text_lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 741 ( text_le PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100 text_le - _null_ ));
+DATA(insert OID = 741 ( text_le PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100 text_le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 742 ( text_gt PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100 text_gt - _null_ ));
+DATA(insert OID = 742 ( text_gt PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100 text_gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 743 ( text_ge PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100 text_ge - _null_ ));
+DATA(insert OID = 743 ( text_ge PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100 text_ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 744 ( array_eq PGNSP PGUID 12 f t t i 2 f 16 "0 0" 100 0 0 100 array_eq - _null_ ));
+DATA(insert OID = 744 ( array_eq PGNSP PGUID 12 f t f t f i 2 16 "0 0" 100 0 0 100 array_eq - _null_ ));
DESCR("array equal");
-DATA(insert OID = 745 ( current_user PGNSP PGUID 12 f t t s 0 f 19 "0" 100 0 0 100 current_user - _null_ ));
+DATA(insert OID = 745 ( current_user PGNSP PGUID 12 f t f t f s 0 19 "0" 100 0 0 100 current_user - _null_ ));
DESCR("current user name");
-DATA(insert OID = 746 ( session_user PGNSP PGUID 12 f t t s 0 f 19 "0" 100 0 0 100 session_user - _null_ ));
+DATA(insert OID = 746 ( session_user PGNSP PGUID 12 f t f t f s 0 19 "0" 100 0 0 100 session_user - _null_ ));
DESCR("session user name");
-DATA(insert OID = 747 ( array_dims PGNSP PGUID 12 f t t i 1 f 25 "0" 100 0 0 100 array_dims - _null_ ));
+DATA(insert OID = 747 ( array_dims PGNSP PGUID 12 f t f t f i 1 25 "0" 100 0 0 100 array_dims - _null_ ));
DESCR("array dimensions");
-DATA(insert OID = 750 ( array_in PGNSP PGUID 12 f t t i 3 f 23 "0 26 23" 100 0 0 100 array_in - _null_ ));
+DATA(insert OID = 750 ( array_in PGNSP PGUID 12 f t f t f i 3 23 "0 26 23" 100 0 0 100 array_in - _null_ ));
DESCR("array");
-DATA(insert OID = 751 ( array_out PGNSP PGUID 12 f t t i 2 f 23 "0 26" 100 0 0 100 array_out - _null_ ));
+DATA(insert OID = 751 ( array_out PGNSP PGUID 12 f t f t f i 2 23 "0 26" 100 0 0 100 array_out - _null_ ));
DESCR("array");
-DATA(insert OID = 760 ( smgrin PGNSP PGUID 12 f t t s 1 f 210 "0" 100 0 0 100 smgrin - _null_ ));
+DATA(insert OID = 760 ( smgrin PGNSP PGUID 12 f t f t f s 1 210 "0" 100 0 0 100 smgrin - _null_ ));
DESCR("storage manager(internal)");
-DATA(insert OID = 761 ( smgrout PGNSP PGUID 12 f t t s 1 f 23 "0" 100 0 0 100 smgrout - _null_ ));
+DATA(insert OID = 761 ( smgrout PGNSP PGUID 12 f t f t f s 1 23 "0" 100 0 0 100 smgrout - _null_ ));
DESCR("storage manager(internal)");
-DATA(insert OID = 762 ( smgreq PGNSP PGUID 12 f t t i 2 f 16 "210 210" 100 0 0 100 smgreq - _null_ ));
+DATA(insert OID = 762 ( smgreq PGNSP PGUID 12 f t f t f i 2 16 "210 210" 100 0 0 100 smgreq - _null_ ));
DESCR("storage manager");
-DATA(insert OID = 763 ( smgrne PGNSP PGUID 12 f t t i 2 f 16 "210 210" 100 0 0 100 smgrne - _null_ ));
+DATA(insert OID = 763 ( smgrne PGNSP PGUID 12 f t f t f i 2 16 "210 210" 100 0 0 100 smgrne - _null_ ));
DESCR("storage manager");
-DATA(insert OID = 764 ( lo_import PGNSP PGUID 12 f t t v 1 f 26 "25" 100 0 0 100 lo_import - _null_ ));
+DATA(insert OID = 764 ( lo_import PGNSP PGUID 12 f t f t f v 1 26 "25" 100 0 0 100 lo_import - _null_ ));
DESCR("large object import");
-DATA(insert OID = 765 ( lo_export PGNSP PGUID 12 f t t v 2 f 23 "26 25" 100 0 0 100 lo_export - _null_ ));
+DATA(insert OID = 765 ( lo_export PGNSP PGUID 12 f t f t f v 2 23 "26 25" 100 0 0 100 lo_export - _null_ ));
DESCR("large object export");
-DATA(insert OID = 766 ( int4inc PGNSP PGUID 12 f t t i 1 f 23 "23" 100 0 0 100 int4inc - _null_ ));
+DATA(insert OID = 766 ( int4inc PGNSP PGUID 12 f t f t f i 1 23 "23" 100 0 0 100 int4inc - _null_ ));
DESCR("increment");
-DATA(insert OID = 768 ( int4larger PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100 int4larger - _null_ ));
+DATA(insert OID = 768 ( int4larger PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100 int4larger - _null_ ));
DESCR("larger of two");
-DATA(insert OID = 769 ( int4smaller PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100 int4smaller - _null_ ));
+DATA(insert OID = 769 ( int4smaller PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100 int4smaller - _null_ ));
DESCR("smaller of two");
-DATA(insert OID = 770 ( int2larger PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100 int2larger - _null_ ));
+DATA(insert OID = 770 ( int2larger PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100 int2larger - _null_ ));
DESCR("larger of two");
-DATA(insert OID = 771 ( int2smaller PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100 int2smaller - _null_ ));
+DATA(insert OID = 771 ( int2smaller PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100 int2smaller - _null_ ));
DESCR("smaller of two");
-DATA(insert OID = 774 ( gistgettuple PGNSP PGUID 12 f t t v 2 f 23 "0 0" 100 0 0 100 gistgettuple - _null_ ));
+DATA(insert OID = 774 ( gistgettuple PGNSP PGUID 12 f t f t f v 2 23 "0 0" 100 0 0 100 gistgettuple - _null_ ));
DESCR("gist(internal)");
-DATA(insert OID = 775 ( gistinsert PGNSP PGUID 12 f t t v 5 f 23 "0 0 0 0 0" 100 0 0 100 gistinsert - _null_ ));
+DATA(insert OID = 775 ( gistinsert PGNSP PGUID 12 f t f t f v 5 23 "0 0 0 0 0" 100 0 0 100 gistinsert - _null_ ));
DESCR("gist(internal)");
-DATA(insert OID = 777 ( gistbeginscan PGNSP PGUID 12 f t t v 4 f 23 "0 0 0 0" 100 0 0 100 gistbeginscan - _null_ ));
+DATA(insert OID = 777 ( gistbeginscan PGNSP PGUID 12 f t f t f v 4 23 "0 0 0 0" 100 0 0 100 gistbeginscan - _null_ ));
DESCR("gist(internal)");
-DATA(insert OID = 778 ( gistrescan PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100 gistrescan - _null_ ));
+DATA(insert OID = 778 ( gistrescan PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100 gistrescan - _null_ ));
DESCR("gist(internal)");
-DATA(insert OID = 779 ( gistendscan PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100 gistendscan - _null_ ));
+DATA(insert OID = 779 ( gistendscan PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100 gistendscan - _null_ ));
DESCR("gist(internal)");
-DATA(insert OID = 780 ( gistmarkpos PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100 gistmarkpos - _null_ ));
+DATA(insert OID = 780 ( gistmarkpos PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100 gistmarkpos - _null_ ));
DESCR("gist(internal)");
-DATA(insert OID = 781 ( gistrestrpos PGNSP PGUID 12 f t t v 1 f 23 "0" 100 0 0 100 gistrestrpos - _null_ ));
+DATA(insert OID = 781 ( gistrestrpos PGNSP PGUID 12 f t f t f v 1 23 "0" 100 0 0 100 gistrestrpos - _null_ ));
DESCR("gist(internal)");
-DATA(insert OID = 782 ( gistbuild PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100 gistbuild - _null_ ));
+DATA(insert OID = 782 ( gistbuild PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100 gistbuild - _null_ ));
DESCR("gist(internal)");
-DATA(insert OID = 776 ( gistbulkdelete PGNSP PGUID 12 f t t v 3 f 23 "0 0 0" 100 0 0 100 gistbulkdelete - _null_ ));
+DATA(insert OID = 776 ( gistbulkdelete PGNSP PGUID 12 f t f t f v 3 23 "0 0 0" 100 0 0 100 gistbulkdelete - _null_ ));
DESCR("gist(internal)");
-DATA(insert OID = 772 ( gistcostestimate PGNSP PGUID 12 f t t v 8 f 0 "0 0 0 0 0 0 0 0" 100 0 0 100 gistcostestimate - _null_ ));
+DATA(insert OID = 772 ( gistcostestimate PGNSP PGUID 12 f t f t f v 8 0 "0 0 0 0 0 0 0 0" 100 0 0 100 gistcostestimate - _null_ ));
DESCR("gist(internal)");
-DATA(insert OID = 784 ( tintervaleq PGNSP PGUID 12 f t t i 2 f 16 "704 704" 100 0 0 100 tintervaleq - _null_ ));
+DATA(insert OID = 784 ( tintervaleq PGNSP PGUID 12 f t f t f i 2 16 "704 704" 100 0 0 100 tintervaleq - _null_ ));
DESCR("equal");
-DATA(insert OID = 785 ( tintervalne PGNSP PGUID 12 f t t i 2 f 16 "704 704" 100 0 0 100 tintervalne - _null_ ));
+DATA(insert OID = 785 ( tintervalne PGNSP PGUID 12 f t f t f i 2 16 "704 704" 100 0 0 100 tintervalne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 786 ( tintervallt PGNSP PGUID 12 f t t i 2 f 16 "704 704" 100 0 0 100 tintervallt - _null_ ));
+DATA(insert OID = 786 ( tintervallt PGNSP PGUID 12 f t f t f i 2 16 "704 704" 100 0 0 100 tintervallt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 787 ( tintervalgt PGNSP PGUID 12 f t t i 2 f 16 "704 704" 100 0 0 100 tintervalgt - _null_ ));
+DATA(insert OID = 787 ( tintervalgt PGNSP PGUID 12 f t f t f i 2 16 "704 704" 100 0 0 100 tintervalgt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 788 ( tintervalle PGNSP PGUID 12 f t t i 2 f 16 "704 704" 100 0 0 100 tintervalle - _null_ ));
+DATA(insert OID = 788 ( tintervalle PGNSP PGUID 12 f t f t f i 2 16 "704 704" 100 0 0 100 tintervalle - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 789 ( tintervalge PGNSP PGUID 12 f t t i 2 f 16 "704 704" 100 0 0 100 tintervalge - _null_ ));
+DATA(insert OID = 789 ( tintervalge PGNSP PGUID 12 f t f t f i 2 16 "704 704" 100 0 0 100 tintervalge - _null_ ));
DESCR("greater-than-or-equal");
/* OIDS 800 - 899 */
-DATA(insert OID = 817 ( oid PGNSP PGUID 12 f t t i 1 f 26 "25" 100 0 0 100 text_oid - _null_ ));
+DATA(insert OID = 817 ( oid PGNSP PGUID 12 f t f t f i 1 26 "25" 100 0 0 100 text_oid - _null_ ));
DESCR("convert text to oid");
-DATA(insert OID = 818 ( int2 PGNSP PGUID 12 f t t i 1 f 21 "25" 100 0 0 100 text_int2 - _null_ ));
+DATA(insert OID = 818 ( int2 PGNSP PGUID 12 f t f t f i 1 21 "25" 100 0 0 100 text_int2 - _null_ ));
DESCR("convert text to int2");
-DATA(insert OID = 819 ( int4 PGNSP PGUID 12 f t t i 1 f 23 "25" 100 0 0 100 text_int4 - _null_ ));
+DATA(insert OID = 819 ( int4 PGNSP PGUID 12 f t f t f i 1 23 "25" 100 0 0 100 text_int4 - _null_ ));
DESCR("convert text to int4");
-DATA(insert OID = 838 ( float8 PGNSP PGUID 12 f t t i 1 f 701 "25" 100 0 0 100 text_float8 - _null_ ));
+DATA(insert OID = 838 ( float8 PGNSP PGUID 12 f t f t f i 1 701 "25" 100 0 0 100 text_float8 - _null_ ));
DESCR("convert text to float8");
-DATA(insert OID = 839 ( float4 PGNSP PGUID 12 f t t i 1 f 700 "25" 100 0 0 100 text_float4 - _null_ ));
+DATA(insert OID = 839 ( float4 PGNSP PGUID 12 f t f t f i 1 700 "25" 100 0 0 100 text_float4 - _null_ ));
DESCR("convert text to float4");
-DATA(insert OID = 840 ( text PGNSP PGUID 12 f t t i 1 f 25 "701" 100 0 0 100 float8_text - _null_ ));
+DATA(insert OID = 840 ( text PGNSP PGUID 12 f t t t f i 1 25 "701" 100 0 0 100 float8_text - _null_ ));
DESCR("convert float8 to text");
-DATA(insert OID = 841 ( text PGNSP PGUID 12 f t t i 1 f 25 "700" 100 0 0 100 float4_text - _null_ ));
+DATA(insert OID = 841 ( text PGNSP PGUID 12 f t t t f i 1 25 "700" 100 0 0 100 float4_text - _null_ ));
DESCR("convert float4 to text");
-DATA(insert OID = 846 ( cash_mul_flt4 PGNSP PGUID 12 f t t i 2 f 790 "790 700" 100 0 0 100 cash_mul_flt4 - _null_ ));
+DATA(insert OID = 846 ( cash_mul_flt4 PGNSP PGUID 12 f t f t f i 2 790 "790 700" 100 0 0 100 cash_mul_flt4 - _null_ ));
DESCR("multiply");
-DATA(insert OID = 847 ( cash_div_flt4 PGNSP PGUID 12 f t t i 2 f 790 "790 700" 100 0 0 100 cash_div_flt4 - _null_ ));
+DATA(insert OID = 847 ( cash_div_flt4 PGNSP PGUID 12 f t f t f i 2 790 "790 700" 100 0 0 100 cash_div_flt4 - _null_ ));
DESCR("divide");
-DATA(insert OID = 848 ( flt4_mul_cash PGNSP PGUID 12 f t t i 2 f 790 "700 790" 100 0 0 100 flt4_mul_cash - _null_ ));
+DATA(insert OID = 848 ( flt4_mul_cash PGNSP PGUID 12 f t f t f i 2 790 "700 790" 100 0 0 100 flt4_mul_cash - _null_ ));
DESCR("multiply");
-DATA(insert OID = 849 ( position PGNSP PGUID 12 f t t i 2 f 23 "25 25" 100 0 0 100 textpos - _null_ ));
+DATA(insert OID = 849 ( position PGNSP PGUID 12 f t f t f i 2 23 "25 25" 100 0 0 100 textpos - _null_ ));
DESCR("return position of substring");
-DATA(insert OID = 850 ( textlike PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100 textlike - _null_ ));
+DATA(insert OID = 850 ( textlike PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100 textlike - _null_ ));
DESCR("matches LIKE expression");
-DATA(insert OID = 851 ( textnlike PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100 textnlike - _null_ ));
+DATA(insert OID = 851 ( textnlike PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100 textnlike - _null_ ));
DESCR("does not match LIKE expression");
-DATA(insert OID = 852 ( int48eq PGNSP PGUID 12 f t t i 2 f 16 "23 20" 100 0 0 100 int48eq - _null_ ));
+DATA(insert OID = 852 ( int48eq PGNSP PGUID 12 f t f t f i 2 16 "23 20" 100 0 0 100 int48eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 853 ( int48ne PGNSP PGUID 12 f t t i 2 f 16 "23 20" 100 0 0 100 int48ne - _null_ ));
+DATA(insert OID = 853 ( int48ne PGNSP PGUID 12 f t f t f i 2 16 "23 20" 100 0 0 100 int48ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 854 ( int48lt PGNSP PGUID 12 f t t i 2 f 16 "23 20" 100 0 0 100 int48lt - _null_ ));
+DATA(insert OID = 854 ( int48lt PGNSP PGUID 12 f t f t f i 2 16 "23 20" 100 0 0 100 int48lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 855 ( int48gt PGNSP PGUID 12 f t t i 2 f 16 "23 20" 100 0 0 100 int48gt - _null_ ));
+DATA(insert OID = 855 ( int48gt PGNSP PGUID 12 f t f t f i 2 16 "23 20" 100 0 0 100 int48gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 856 ( int48le PGNSP PGUID 12 f t t i 2 f 16 "23 20" 100 0 0 100 int48le - _null_ ));
+DATA(insert OID = 856 ( int48le PGNSP PGUID 12 f t f t f i 2 16 "23 20" 100 0 0 100 int48le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 857 ( int48ge PGNSP PGUID 12 f t t i 2 f 16 "23 20" 100 0 0 100 int48ge - _null_ ));
+DATA(insert OID = 857 ( int48ge PGNSP PGUID 12 f t f t f i 2 16 "23 20" 100 0 0 100 int48ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 858 ( namelike PGNSP PGUID 12 f t t i 2 f 16 "19 25" 100 0 0 100 namelike - _null_ ));
+DATA(insert OID = 858 ( namelike PGNSP PGUID 12 f t f t f i 2 16 "19 25" 100 0 0 100 namelike - _null_ ));
DESCR("matches LIKE expression");
-DATA(insert OID = 859 ( namenlike PGNSP PGUID 12 f t t i 2 f 16 "19 25" 100 0 0 100 namenlike - _null_ ));
+DATA(insert OID = 859 ( namenlike PGNSP PGUID 12 f t f t f i 2 16 "19 25" 100 0 0 100 namenlike - _null_ ));
DESCR("does not match LIKE expression");
-DATA(insert OID = 860 ( bpchar PGNSP PGUID 12 f t t i 1 f 1042 "18" 100 0 0 100 char_bpchar - _null_ ));
+DATA(insert OID = 860 ( bpchar PGNSP PGUID 12 f t t t f i 1 1042 "18" 100 0 0 100 char_bpchar - _null_ ));
DESCR("convert char to char()");
-DATA(insert OID = 861 ( char PGNSP PGUID 12 f t t i 1 f 18 "1042" 100 0 0 100 bpchar_char - _null_ ));
-DESCR("convert char() to char");
-DATA(insert OID = 862 ( int4_mul_cash PGNSP PGUID 12 f t t i 2 f 790 "23 790" 100 0 0 100 int4_mul_cash - _null_ ));
+DATA(insert OID = 862 ( int4_mul_cash PGNSP PGUID 12 f t f t f i 2 790 "23 790" 100 0 0 100 int4_mul_cash - _null_ ));
DESCR("multiply");
-DATA(insert OID = 863 ( int2_mul_cash PGNSP PGUID 12 f t t i 2 f 790 "21 790" 100 0 0 100 int2_mul_cash - _null_ ));
+DATA(insert OID = 863 ( int2_mul_cash PGNSP PGUID 12 f t f t f i 2 790 "21 790" 100 0 0 100 int2_mul_cash - _null_ ));
DESCR("multiply");
-DATA(insert OID = 864 ( cash_mul_int4 PGNSP PGUID 12 f t t i 2 f 790 "790 23" 100 0 0 100 cash_mul_int4 - _null_ ));
+DATA(insert OID = 864 ( cash_mul_int4 PGNSP PGUID 12 f t f t f i 2 790 "790 23" 100 0 0 100 cash_mul_int4 - _null_ ));
DESCR("multiply");
-DATA(insert OID = 865 ( cash_div_int4 PGNSP PGUID 12 f t t i 2 f 790 "790 23" 100 0 0 100 cash_div_int4 - _null_ ));
+DATA(insert OID = 865 ( cash_div_int4 PGNSP PGUID 12 f t f t f i 2 790 "790 23" 100 0 0 100 cash_div_int4 - _null_ ));
DESCR("divide");
-DATA(insert OID = 866 ( cash_mul_int2 PGNSP PGUID 12 f t t i 2 f 790 "790 21" 100 0 0 100 cash_mul_int2 - _null_ ));
+DATA(insert OID = 866 ( cash_mul_int2 PGNSP PGUID 12 f t f t f i 2 790 "790 21" 100 0 0 100 cash_mul_int2 - _null_ ));
DESCR("multiply");
-DATA(insert OID = 867 ( cash_div_int2 PGNSP PGUID 12 f t t i 2 f 790 "790 21" 100 0 0 100 cash_div_int2 - _null_ ));
+DATA(insert OID = 867 ( cash_div_int2 PGNSP PGUID 12 f t f t f i 2 790 "790 21" 100 0 0 100 cash_div_int2 - _null_ ));
DESCR("divide");
-DATA(insert OID = 886 ( cash_in PGNSP PGUID 12 f t t i 1 f 790 "0" 100 0 0 100 cash_in - _null_ ));
+DATA(insert OID = 886 ( cash_in PGNSP PGUID 12 f t f t f i 1 790 "0" 100 0 0 100 cash_in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 887 ( cash_out PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 cash_out - _null_ ));
+DATA(insert OID = 887 ( cash_out PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 cash_out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 888 ( cash_eq PGNSP PGUID 12 f t t i 2 f 16 "790 790" 100 0 0 100 cash_eq - _null_ ));
+DATA(insert OID = 888 ( cash_eq PGNSP PGUID 12 f t f t f i 2 16 "790 790" 100 0 0 100 cash_eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 889 ( cash_ne PGNSP PGUID 12 f t t i 2 f 16 "790 790" 100 0 0 100 cash_ne - _null_ ));
+DATA(insert OID = 889 ( cash_ne PGNSP PGUID 12 f t f t f i 2 16 "790 790" 100 0 0 100 cash_ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 890 ( cash_lt PGNSP PGUID 12 f t t i 2 f 16 "790 790" 100 0 0 100 cash_lt - _null_ ));
+DATA(insert OID = 890 ( cash_lt PGNSP PGUID 12 f t f t f i 2 16 "790 790" 100 0 0 100 cash_lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 891 ( cash_le PGNSP PGUID 12 f t t i 2 f 16 "790 790" 100 0 0 100 cash_le - _null_ ));
+DATA(insert OID = 891 ( cash_le PGNSP PGUID 12 f t f t f i 2 16 "790 790" 100 0 0 100 cash_le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 892 ( cash_gt PGNSP PGUID 12 f t t i 2 f 16 "790 790" 100 0 0 100 cash_gt - _null_ ));
+DATA(insert OID = 892 ( cash_gt PGNSP PGUID 12 f t f t f i 2 16 "790 790" 100 0 0 100 cash_gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 893 ( cash_ge PGNSP PGUID 12 f t t i 2 f 16 "790 790" 100 0 0 100 cash_ge - _null_ ));
+DATA(insert OID = 893 ( cash_ge PGNSP PGUID 12 f t f t f i 2 16 "790 790" 100 0 0 100 cash_ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 894 ( cash_pl PGNSP PGUID 12 f t t i 2 f 790 "790 790" 100 0 0 100 cash_pl - _null_ ));
+DATA(insert OID = 894 ( cash_pl PGNSP PGUID 12 f t f t f i 2 790 "790 790" 100 0 0 100 cash_pl - _null_ ));
DESCR("add");
-DATA(insert OID = 895 ( cash_mi PGNSP PGUID 12 f t t i 2 f 790 "790 790" 100 0 0 100 cash_mi - _null_ ));
+DATA(insert OID = 895 ( cash_mi PGNSP PGUID 12 f t f t f i 2 790 "790 790" 100 0 0 100 cash_mi - _null_ ));
DESCR("subtract");
-DATA(insert OID = 896 ( cash_mul_flt8 PGNSP PGUID 12 f t t i 2 f 790 "790 701" 100 0 0 100 cash_mul_flt8 - _null_ ));
+DATA(insert OID = 896 ( cash_mul_flt8 PGNSP PGUID 12 f t f t f i 2 790 "790 701" 100 0 0 100 cash_mul_flt8 - _null_ ));
DESCR("multiply");
-DATA(insert OID = 897 ( cash_div_flt8 PGNSP PGUID 12 f t t i 2 f 790 "790 701" 100 0 0 100 cash_div_flt8 - _null_ ));
+DATA(insert OID = 897 ( cash_div_flt8 PGNSP PGUID 12 f t f t f i 2 790 "790 701" 100 0 0 100 cash_div_flt8 - _null_ ));
DESCR("divide");
-DATA(insert OID = 898 ( cashlarger PGNSP PGUID 12 f t t i 2 f 790 "790 790" 100 0 0 100 cashlarger - _null_ ));
+DATA(insert OID = 898 ( cashlarger PGNSP PGUID 12 f t f t f i 2 790 "790 790" 100 0 0 100 cashlarger - _null_ ));
DESCR("larger of two");
-DATA(insert OID = 899 ( cashsmaller PGNSP PGUID 12 f t t i 2 f 790 "790 790" 100 0 0 100 cashsmaller - _null_ ));
+DATA(insert OID = 899 ( cashsmaller PGNSP PGUID 12 f t f t f i 2 790 "790 790" 100 0 0 100 cashsmaller - _null_ ));
DESCR("smaller of two");
-DATA(insert OID = 919 ( flt8_mul_cash PGNSP PGUID 12 f t t i 2 f 790 "701 790" 100 0 0 100 flt8_mul_cash - _null_ ));
+DATA(insert OID = 919 ( flt8_mul_cash PGNSP PGUID 12 f t f t f i 2 790 "701 790" 100 0 0 100 flt8_mul_cash - _null_ ));
DESCR("multiply");
-DATA(insert OID = 935 ( cash_words PGNSP PGUID 12 f t t i 1 f 25 "790" 100 0 0 100 cash_words - _null_ ));
+DATA(insert OID = 935 ( cash_words PGNSP PGUID 12 f t f t f i 1 25 "790" 100 0 0 100 cash_words - _null_ ));
DESCR("output amount as words");
/* OIDS 900 - 999 */
-DATA(insert OID = 940 ( mod PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100 int2mod - _null_ ));
+DATA(insert OID = 940 ( mod PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100 int2mod - _null_ ));
DESCR("modulus");
-DATA(insert OID = 941 ( mod PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100 int4mod - _null_ ));
+DATA(insert OID = 941 ( mod PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100 int4mod - _null_ ));
DESCR("modulus");
-DATA(insert OID = 942 ( mod PGNSP PGUID 12 f t t i 2 f 23 "21 23" 100 0 0 100 int24mod - _null_ ));
+DATA(insert OID = 942 ( mod PGNSP PGUID 12 f t f t f i 2 23 "21 23" 100 0 0 100 int24mod - _null_ ));
DESCR("modulus");
-DATA(insert OID = 943 ( mod PGNSP PGUID 12 f t t i 2 f 23 "23 21" 100 0 0 100 int42mod - _null_ ));
+DATA(insert OID = 943 ( mod PGNSP PGUID 12 f t f t f i 2 23 "23 21" 100 0 0 100 int42mod - _null_ ));
DESCR("modulus");
-DATA(insert OID = 945 ( int8mod PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100 int8mod - _null_ ));
+DATA(insert OID = 945 ( int8mod PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100 int8mod - _null_ ));
DESCR("modulus");
-DATA(insert OID = 947 ( mod PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100 int8mod - _null_ ));
+DATA(insert OID = 947 ( mod PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100 int8mod - _null_ ));
DESCR("modulus");
-DATA(insert OID = 944 ( char PGNSP PGUID 12 f t t i 1 f 18 "25" 100 0 0 100 text_char - _null_ ));
+DATA(insert OID = 944 ( char PGNSP PGUID 12 f t t t f i 1 18 "25" 100 0 0 100 text_char - _null_ ));
DESCR("convert text to char");
-DATA(insert OID = 946 ( text PGNSP PGUID 12 f t t i 1 f 25 "18" 100 0 0 100 char_text - _null_ ));
+DATA(insert OID = 946 ( text PGNSP PGUID 12 f t t t f i 1 25 "18" 100 0 0 100 char_text - _null_ ));
DESCR("convert char to text");
-DATA(insert OID = 950 ( istrue PGNSP PGUID 12 f t f i 1 f 16 "16" 100 0 0 100 istrue - _null_ ));
+DATA(insert OID = 950 ( istrue PGNSP PGUID 12 f t f f f i 1 16 "16" 100 0 0 100 istrue - _null_ ));
DESCR("bool is true (not false or unknown)");
-DATA(insert OID = 951 ( isfalse PGNSP PGUID 12 f t f i 1 f 16 "16" 100 0 0 100 isfalse - _null_ ));
+DATA(insert OID = 951 ( isfalse PGNSP PGUID 12 f t f f f i 1 16 "16" 100 0 0 100 isfalse - _null_ ));
DESCR("bool is false (not true or unknown)");
-DATA(insert OID = 952 ( lo_open PGNSP PGUID 12 f t t v 2 f 23 "26 23" 100 0 0 100 lo_open - _null_ ));
+DATA(insert OID = 952 ( lo_open PGNSP PGUID 12 f t f t f v 2 23 "26 23" 100 0 0 100 lo_open - _null_ ));
DESCR("large object open");
-DATA(insert OID = 953 ( lo_close PGNSP PGUID 12 f t t v 1 f 23 "23" 100 0 0 100 lo_close - _null_ ));
+DATA(insert OID = 953 ( lo_close PGNSP PGUID 12 f t f t f v 1 23 "23" 100 0 0 100 lo_close - _null_ ));
DESCR("large object close");
-DATA(insert OID = 954 ( loread PGNSP PGUID 12 f t t v 2 f 17 "23 23" 100 0 0 100 loread - _null_ ));
+DATA(insert OID = 954 ( loread PGNSP PGUID 12 f t f t f v 2 17 "23 23" 100 0 0 100 loread - _null_ ));
DESCR("large object read");
-DATA(insert OID = 955 ( lowrite PGNSP PGUID 12 f t t v 2 f 23 "23 17" 100 0 0 100 lowrite - _null_ ));
+DATA(insert OID = 955 ( lowrite PGNSP PGUID 12 f t f t f v 2 23 "23 17" 100 0 0 100 lowrite - _null_ ));
DESCR("large object write");
-DATA(insert OID = 956 ( lo_lseek PGNSP PGUID 12 f t t v 3 f 23 "23 23 23" 100 0 0 100 lo_lseek - _null_ ));
+DATA(insert OID = 956 ( lo_lseek PGNSP PGUID 12 f t f t f v 3 23 "23 23 23" 100 0 0 100 lo_lseek - _null_ ));
DESCR("large object seek");
-DATA(insert OID = 957 ( lo_creat PGNSP PGUID 12 f t t v 1 f 26 "23" 100 0 0 100 lo_creat - _null_ ));
+DATA(insert OID = 957 ( lo_creat PGNSP PGUID 12 f t f t f v 1 26 "23" 100 0 0 100 lo_creat - _null_ ));
DESCR("large object create");
-DATA(insert OID = 958 ( lo_tell PGNSP PGUID 12 f t t v 1 f 23 "23" 100 0 0 100 lo_tell - _null_ ));
+DATA(insert OID = 958 ( lo_tell PGNSP PGUID 12 f t f t f v 1 23 "23" 100 0 0 100 lo_tell - _null_ ));
DESCR("large object position");
-DATA(insert OID = 959 ( on_pl PGNSP PGUID 12 f t t i 2 f 16 "600 628" 100 0 0 100 on_pl - _null_ ));
+DATA(insert OID = 959 ( on_pl PGNSP PGUID 12 f t f t f i 2 16 "600 628" 100 0 0 100 on_pl - _null_ ));
DESCR("point on line?");
-DATA(insert OID = 960 ( on_sl PGNSP PGUID 12 f t t i 2 f 16 "601 628" 100 0 0 100 on_sl - _null_ ));
+DATA(insert OID = 960 ( on_sl PGNSP PGUID 12 f t f t f i 2 16 "601 628" 100 0 0 100 on_sl - _null_ ));
DESCR("lseg on line?");
-DATA(insert OID = 961 ( close_pl PGNSP PGUID 12 f t t i 2 f 600 "600 628" 100 0 0 100 close_pl - _null_ ));
+DATA(insert OID = 961 ( close_pl PGNSP PGUID 12 f t f t f i 2 600 "600 628" 100 0 0 100 close_pl - _null_ ));
DESCR("closest point on line");
-DATA(insert OID = 962 ( close_sl PGNSP PGUID 12 f t t i 2 f 600 "601 628" 100 0 0 100 close_sl - _null_ ));
+DATA(insert OID = 962 ( close_sl PGNSP PGUID 12 f t f t f i 2 600 "601 628" 100 0 0 100 close_sl - _null_ ));
DESCR("closest point to line segment on line");
-DATA(insert OID = 963 ( close_lb PGNSP PGUID 12 f t t i 2 f 600 "628 603" 100 0 0 100 close_lb - _null_ ));
+DATA(insert OID = 963 ( close_lb PGNSP PGUID 12 f t f t f i 2 600 "628 603" 100 0 0 100 close_lb - _null_ ));
DESCR("closest point to line on box");
-DATA(insert OID = 964 ( lo_unlink PGNSP PGUID 12 f t t v 1 f 23 "26" 100 0 0 100 lo_unlink - _null_ ));
+DATA(insert OID = 964 ( lo_unlink PGNSP PGUID 12 f t f t f v 1 23 "26" 100 0 0 100 lo_unlink - _null_ ));
DESCR("large object unlink(delete)");
-DATA(insert OID = 972 ( regproctooid PGNSP PGUID 12 f t t i 1 f 26 "24" 100 0 0 100 regproctooid - _null_ ));
+DATA(insert OID = 972 ( regproctooid PGNSP PGUID 12 f t f t f i 1 26 "24" 100 0 0 100 regproctooid - _null_ ));
DESCR("get oid for regproc");
-DATA(insert OID = 973 ( path_inter PGNSP PGUID 12 f t t i 2 f 16 "602 602" 100 0 0 100 path_inter - _null_ ));
+DATA(insert OID = 973 ( path_inter PGNSP PGUID 12 f t f t f i 2 16 "602 602" 100 0 0 100 path_inter - _null_ ));
DESCR("paths intersect?");
-DATA(insert OID = 975 ( area PGNSP PGUID 12 f t t i 1 f 701 "603" 100 0 0 100 box_area - _null_ ));
+DATA(insert OID = 975 ( area PGNSP PGUID 12 f t f t f i 1 701 "603" 100 0 0 100 box_area - _null_ ));
DESCR("box area");
-DATA(insert OID = 976 ( width PGNSP PGUID 12 f t t i 1 f 701 "603" 100 0 0 100 box_width - _null_ ));
+DATA(insert OID = 976 ( width PGNSP PGUID 12 f t f t f i 1 701 "603" 100 0 0 100 box_width - _null_ ));
DESCR("box width");
-DATA(insert OID = 977 ( height PGNSP PGUID 12 f t t i 1 f 701 "603" 100 0 0 100 box_height - _null_ ));
+DATA(insert OID = 977 ( height PGNSP PGUID 12 f t f t f i 1 701 "603" 100 0 0 100 box_height - _null_ ));
DESCR("box height");
-DATA(insert OID = 978 ( box_distance PGNSP PGUID 12 f t t i 2 f 701 "603 603" 100 0 0 100 box_distance - _null_ ));
+DATA(insert OID = 978 ( box_distance PGNSP PGUID 12 f t f t f i 2 701 "603 603" 100 0 0 100 box_distance - _null_ ));
DESCR("distance between boxes");
-DATA(insert OID = 980 ( box_intersect PGNSP PGUID 12 f t t i 2 f 603 "603 603" 100 0 0 100 box_intersect - _null_ ));
+DATA(insert OID = 980 ( box_intersect PGNSP PGUID 12 f t f t f i 2 603 "603 603" 100 0 0 100 box_intersect - _null_ ));
DESCR("box intersection (another box)");
-DATA(insert OID = 981 ( diagonal PGNSP PGUID 12 f t t i 1 f 601 "603" 100 0 0 100 box_diagonal - _null_ ));
+DATA(insert OID = 981 ( diagonal PGNSP PGUID 12 f t f t f i 1 601 "603" 100 0 0 100 box_diagonal - _null_ ));
DESCR("box diagonal");
-DATA(insert OID = 982 ( path_n_lt PGNSP PGUID 12 f t t i 2 f 16 "602 602" 100 0 0 100 path_n_lt - _null_ ));
+DATA(insert OID = 982 ( path_n_lt PGNSP PGUID 12 f t f t f i 2 16 "602 602" 100 0 0 100 path_n_lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 983 ( path_n_gt PGNSP PGUID 12 f t t i 2 f 16 "602 602" 100 0 0 100 path_n_gt - _null_ ));
+DATA(insert OID = 983 ( path_n_gt PGNSP PGUID 12 f t f t f i 2 16 "602 602" 100 0 0 100 path_n_gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 984 ( path_n_eq PGNSP PGUID 12 f t t i 2 f 16 "602 602" 100 0 0 100 path_n_eq - _null_ ));
+DATA(insert OID = 984 ( path_n_eq PGNSP PGUID 12 f t f t f i 2 16 "602 602" 100 0 0 100 path_n_eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 985 ( path_n_le PGNSP PGUID 12 f t t i 2 f 16 "602 602" 100 0 0 100 path_n_le - _null_ ));
+DATA(insert OID = 985 ( path_n_le PGNSP PGUID 12 f t f t f i 2 16 "602 602" 100 0 0 100 path_n_le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 986 ( path_n_ge PGNSP PGUID 12 f t t i 2 f 16 "602 602" 100 0 0 100 path_n_ge - _null_ ));
+DATA(insert OID = 986 ( path_n_ge PGNSP PGUID 12 f t f t f i 2 16 "602 602" 100 0 0 100 path_n_ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 987 ( path_length PGNSP PGUID 12 f t t i 1 f 701 "602" 100 0 0 100 path_length - _null_ ));
+DATA(insert OID = 987 ( path_length PGNSP PGUID 12 f t f t f i 1 701 "602" 100 0 0 100 path_length - _null_ ));
DESCR("sum of path segments");
-DATA(insert OID = 988 ( point_ne PGNSP PGUID 12 f t t i 2 f 16 "600 600" 100 0 0 100 point_ne - _null_ ));
+DATA(insert OID = 988 ( point_ne PGNSP PGUID 12 f t f t f i 2 16 "600 600" 100 0 0 100 point_ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 989 ( point_vert PGNSP PGUID 12 f t t i 2 f 16 "600 600" 100 0 0 100 point_vert - _null_ ));
+DATA(insert OID = 989 ( point_vert PGNSP PGUID 12 f t f t f i 2 16 "600 600" 100 0 0 100 point_vert - _null_ ));
DESCR("vertically aligned?");
-DATA(insert OID = 990 ( point_horiz PGNSP PGUID 12 f t t i 2 f 16 "600 600" 100 0 0 100 point_horiz - _null_ ));
+DATA(insert OID = 990 ( point_horiz PGNSP PGUID 12 f t f t f i 2 16 "600 600" 100 0 0 100 point_horiz - _null_ ));
DESCR("horizontally aligned?");
-DATA(insert OID = 991 ( point_distance PGNSP PGUID 12 f t t i 2 f 701 "600 600" 100 0 0 100 point_distance - _null_ ));
+DATA(insert OID = 991 ( point_distance PGNSP PGUID 12 f t f t f i 2 701 "600 600" 100 0 0 100 point_distance - _null_ ));
DESCR("distance between");
-DATA(insert OID = 992 ( slope PGNSP PGUID 12 f t t i 2 f 701 "600 600" 100 0 0 100 point_slope - _null_ ));
+DATA(insert OID = 992 ( slope PGNSP PGUID 12 f t f t f i 2 701 "600 600" 100 0 0 100 point_slope - _null_ ));
DESCR("slope between points");
-DATA(insert OID = 993 ( lseg PGNSP PGUID 12 f t t i 2 f 601 "600 600" 100 0 0 100 lseg_construct - _null_ ));
+DATA(insert OID = 993 ( lseg PGNSP PGUID 12 f t f t f i 2 601 "600 600" 100 0 0 100 lseg_construct - _null_ ));
DESCR("convert points to line segment");
-DATA(insert OID = 994 ( lseg_intersect PGNSP PGUID 12 f t t i 2 f 16 "601 601" 100 0 0 100 lseg_intersect - _null_ ));
+DATA(insert OID = 994 ( lseg_intersect PGNSP PGUID 12 f t f t f i 2 16 "601 601" 100 0 0 100 lseg_intersect - _null_ ));
DESCR("intersect?");
-DATA(insert OID = 995 ( lseg_parallel PGNSP PGUID 12 f t t i 2 f 16 "601 601" 100 0 0 100 lseg_parallel - _null_ ));
+DATA(insert OID = 995 ( lseg_parallel PGNSP PGUID 12 f t f t f i 2 16 "601 601" 100 0 0 100 lseg_parallel - _null_ ));
DESCR("parallel?");
-DATA(insert OID = 996 ( lseg_perp PGNSP PGUID 12 f t t i 2 f 16 "601 601" 100 0 0 100 lseg_perp - _null_ ));
+DATA(insert OID = 996 ( lseg_perp PGNSP PGUID 12 f t f t f i 2 16 "601 601" 100 0 0 100 lseg_perp - _null_ ));
DESCR("perpendicular?");
-DATA(insert OID = 997 ( lseg_vertical PGNSP PGUID 12 f t t i 1 f 16 "601" 100 0 0 100 lseg_vertical - _null_ ));
+DATA(insert OID = 997 ( lseg_vertical PGNSP PGUID 12 f t f t f i 1 16 "601" 100 0 0 100 lseg_vertical - _null_ ));
DESCR("vertical?");
-DATA(insert OID = 998 ( lseg_horizontal PGNSP PGUID 12 f t t i 1 f 16 "601" 100 0 0 100 lseg_horizontal - _null_ ));
+DATA(insert OID = 998 ( lseg_horizontal PGNSP PGUID 12 f t f t f i 1 16 "601" 100 0 0 100 lseg_horizontal - _null_ ));
DESCR("horizontal?");
-DATA(insert OID = 999 ( lseg_eq PGNSP PGUID 12 f t t i 2 f 16 "601 601" 100 0 0 100 lseg_eq - _null_ ));
+DATA(insert OID = 999 ( lseg_eq PGNSP PGUID 12 f t f t f i 2 16 "601 601" 100 0 0 100 lseg_eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 748 ( date PGNSP PGUID 12 f t t s 1 f 1082 "25" 100 0 0 100 text_date - _null_ ));
+DATA(insert OID = 748 ( date PGNSP PGUID 12 f t f t f s 1 1082 "25" 100 0 0 100 text_date - _null_ ));
DESCR("convert text to date");
-DATA(insert OID = 749 ( text PGNSP PGUID 12 f t t s 1 f 25 "1082" 100 0 0 100 date_text - _null_ ));
+DATA(insert OID = 749 ( text PGNSP PGUID 12 f t t t f s 1 25 "1082" 100 0 0 100 date_text - _null_ ));
DESCR("convert date to text");
-DATA(insert OID = 837 ( time PGNSP PGUID 12 f t t s 1 f 1083 "25" 100 0 0 100 text_time - _null_ ));
+DATA(insert OID = 837 ( time PGNSP PGUID 12 f t f t f s 1 1083 "25" 100 0 0 100 text_time - _null_ ));
DESCR("convert text to time");
-DATA(insert OID = 948 ( text PGNSP PGUID 12 f t t i 1 f 25 "1083" 100 0 0 100 time_text - _null_ ));
+DATA(insert OID = 948 ( text PGNSP PGUID 12 f t t t f i 1 25 "1083" 100 0 0 100 time_text - _null_ ));
DESCR("convert time to text");
-DATA(insert OID = 938 ( timetz PGNSP PGUID 12 f t t s 1 f 1266 "25" 100 0 0 100 text_timetz - _null_ ));
+DATA(insert OID = 938 ( timetz PGNSP PGUID 12 f t f t f s 1 1266 "25" 100 0 0 100 text_timetz - _null_ ));
DESCR("convert text to timetz");
-DATA(insert OID = 939 ( text PGNSP PGUID 12 f t t i 1 f 25 "1266" 100 0 0 100 timetz_text - _null_ ));
+DATA(insert OID = 939 ( text PGNSP PGUID 12 f t t t f i 1 25 "1266" 100 0 0 100 timetz_text - _null_ ));
DESCR("convert timetz to text");
/* OIDS 1000 - 1999 */
-DATA(insert OID = 1026 ( timezone PGNSP PGUID 12 f t t s 2 f 25 "1186 1184" 100 0 0 100 timestamptz_izone - _null_ ));
+DATA(insert OID = 1026 ( timezone PGNSP PGUID 12 f t f t f s 2 25 "1186 1184" 100 0 0 100 timestamptz_izone - _null_ ));
DESCR("time zone");
-DATA(insert OID = 1029 ( nullvalue PGNSP PGUID 12 f t f i 1 f 16 "0" 100 0 0 100 nullvalue - _null_ ));
+DATA(insert OID = 1029 ( nullvalue PGNSP PGUID 12 f t f f f i 1 16 "0" 100 0 0 100 nullvalue - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1030 ( nonnullvalue PGNSP PGUID 12 f t f i 1 f 16 "0" 100 0 0 100 nonnullvalue - _null_ ));
+DATA(insert OID = 1030 ( nonnullvalue PGNSP PGUID 12 f t f f f i 1 16 "0" 100 0 0 100 nonnullvalue - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1031 ( aclitemin PGNSP PGUID 12 f t t s 1 f 1033 "0" 100 0 0 100 aclitemin - _null_ ));
+DATA(insert OID = 1031 ( aclitemin PGNSP PGUID 12 f t f t f s 1 1033 "0" 100 0 0 100 aclitemin - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1032 ( aclitemout PGNSP PGUID 12 f t t s 1 f 23 "1033" 100 0 0 100 aclitemout - _null_ ));
+DATA(insert OID = 1032 ( aclitemout PGNSP PGUID 12 f t f t f s 1 23 "1033" 100 0 0 100 aclitemout - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1035 ( aclinsert PGNSP PGUID 12 f t t s 2 f 1034 "1034 1033" 100 0 0 100 aclinsert - _null_ ));
+DATA(insert OID = 1035 ( aclinsert PGNSP PGUID 12 f t f t f s 2 1034 "1034 1033" 100 0 0 100 aclinsert - _null_ ));
DESCR("add/update ACL item");
-DATA(insert OID = 1036 ( aclremove PGNSP PGUID 12 f t t s 2 f 1034 "1034 1033" 100 0 0 100 aclremove - _null_ ));
+DATA(insert OID = 1036 ( aclremove PGNSP PGUID 12 f t f t f s 2 1034 "1034 1033" 100 0 0 100 aclremove - _null_ ));
DESCR("remove ACL item");
-DATA(insert OID = 1037 ( aclcontains PGNSP PGUID 12 f t t s 2 f 16 "1034 1033" 100 0 0 100 aclcontains - _null_ ));
+DATA(insert OID = 1037 ( aclcontains PGNSP PGUID 12 f t f t f s 2 16 "1034 1033" 100 0 0 100 aclcontains - _null_ ));
DESCR("does ACL contain item?");
-DATA(insert OID = 1038 ( seteval PGNSP PGUID 12 f t t v 1 t 23 "26" 100 0 0 100 seteval - _null_ ));
+DATA(insert OID = 1038 ( seteval PGNSP PGUID 12 f t f t t v 1 23 "26" 100 0 0 100 seteval - _null_ ));
DESCR("internal function supporting PostQuel-style sets");
-DATA(insert OID = 1044 ( bpcharin PGNSP PGUID 12 f t t i 3 f 1042 "0 26 23" 100 0 0 100 bpcharin - _null_ ));
+DATA(insert OID = 1044 ( bpcharin PGNSP PGUID 12 f t f t f i 3 1042 "0 26 23" 100 0 0 100 bpcharin - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1045 ( bpcharout PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 bpcharout - _null_ ));
+DATA(insert OID = 1045 ( bpcharout PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 bpcharout - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1046 ( varcharin PGNSP PGUID 12 f t t i 3 f 1043 "0 26 23" 100 0 0 100 varcharin - _null_ ));
+DATA(insert OID = 1046 ( varcharin PGNSP PGUID 12 f t f t f i 3 1043 "0 26 23" 100 0 0 100 varcharin - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1047 ( varcharout PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 varcharout - _null_ ));
+DATA(insert OID = 1047 ( varcharout PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 varcharout - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1048 ( bpchareq PGNSP PGUID 12 f t t i 2 f 16 "1042 1042" 100 0 0 100 bpchareq - _null_ ));
+DATA(insert OID = 1048 ( bpchareq PGNSP PGUID 12 f t f t f i 2 16 "1042 1042" 100 0 0 100 bpchareq - _null_ ));
DESCR("equal");
-DATA(insert OID = 1049 ( bpcharlt PGNSP PGUID 12 f t t i 2 f 16 "1042 1042" 100 0 0 100 bpcharlt - _null_ ));
+DATA(insert OID = 1049 ( bpcharlt PGNSP PGUID 12 f t f t f i 2 16 "1042 1042" 100 0 0 100 bpcharlt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 1050 ( bpcharle PGNSP PGUID 12 f t t i 2 f 16 "1042 1042" 100 0 0 100 bpcharle - _null_ ));
+DATA(insert OID = 1050 ( bpcharle PGNSP PGUID 12 f t f t f i 2 16 "1042 1042" 100 0 0 100 bpcharle - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 1051 ( bpchargt PGNSP PGUID 12 f t t i 2 f 16 "1042 1042" 100 0 0 100 bpchargt - _null_ ));
+DATA(insert OID = 1051 ( bpchargt PGNSP PGUID 12 f t f t f i 2 16 "1042 1042" 100 0 0 100 bpchargt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 1052 ( bpcharge PGNSP PGUID 12 f t t i 2 f 16 "1042 1042" 100 0 0 100 bpcharge - _null_ ));
+DATA(insert OID = 1052 ( bpcharge PGNSP PGUID 12 f t f t f i 2 16 "1042 1042" 100 0 0 100 bpcharge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 1053 ( bpcharne PGNSP PGUID 12 f t t i 2 f 16 "1042 1042" 100 0 0 100 bpcharne - _null_ ));
+DATA(insert OID = 1053 ( bpcharne PGNSP PGUID 12 f t f t f i 2 16 "1042 1042" 100 0 0 100 bpcharne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 1070 ( varchareq PGNSP PGUID 12 f t t i 2 f 16 "1043 1043" 100 0 0 100 varchareq - _null_ ));
+DATA(insert OID = 1070 ( varchareq PGNSP PGUID 12 f t f t f i 2 16 "1043 1043" 100 0 0 100 varchareq - _null_ ));
DESCR("equal");
-DATA(insert OID = 1071 ( varcharlt PGNSP PGUID 12 f t t i 2 f 16 "1043 1043" 100 0 0 100 varcharlt - _null_ ));
+DATA(insert OID = 1071 ( varcharlt PGNSP PGUID 12 f t f t f i 2 16 "1043 1043" 100 0 0 100 varcharlt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 1072 ( varcharle PGNSP PGUID 12 f t t i 2 f 16 "1043 1043" 100 0 0 100 varcharle - _null_ ));
+DATA(insert OID = 1072 ( varcharle PGNSP PGUID 12 f t f t f i 2 16 "1043 1043" 100 0 0 100 varcharle - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 1073 ( varchargt PGNSP PGUID 12 f t t i 2 f 16 "1043 1043" 100 0 0 100 varchargt - _null_ ));
+DATA(insert OID = 1073 ( varchargt PGNSP PGUID 12 f t f t f i 2 16 "1043 1043" 100 0 0 100 varchargt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 1074 ( varcharge PGNSP PGUID 12 f t t i 2 f 16 "1043 1043" 100 0 0 100 varcharge - _null_ ));
+DATA(insert OID = 1074 ( varcharge PGNSP PGUID 12 f t f t f i 2 16 "1043 1043" 100 0 0 100 varcharge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 1075 ( varcharne PGNSP PGUID 12 f t t i 2 f 16 "1043 1043" 100 0 0 100 varcharne - _null_ ));
+DATA(insert OID = 1075 ( varcharne PGNSP PGUID 12 f t f t f i 2 16 "1043 1043" 100 0 0 100 varcharne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 1078 ( bpcharcmp PGNSP PGUID 12 f t t i 2 f 23 "1042 1042" 100 0 0 100 bpcharcmp - _null_ ));
+DATA(insert OID = 1078 ( bpcharcmp PGNSP PGUID 12 f t f t f i 2 23 "1042 1042" 100 0 0 100 bpcharcmp - _null_ ));
DESCR("less-equal-greater");
-DATA(insert OID = 1079 ( varcharcmp PGNSP PGUID 12 f t t i 2 f 23 "1043 1043" 100 0 0 100 varcharcmp - _null_ ));
+DATA(insert OID = 1079 ( varcharcmp PGNSP PGUID 12 f t f t f i 2 23 "1043 1043" 100 0 0 100 varcharcmp - _null_ ));
DESCR("less-equal-greater");
-DATA(insert OID = 1080 ( hashbpchar PGNSP PGUID 12 f t t i 1 f 23 "1042" 100 0 0 100 hashbpchar - _null_ ));
+DATA(insert OID = 1080 ( hashbpchar PGNSP PGUID 12 f t f t f i 1 23 "1042" 100 0 0 100 hashbpchar - _null_ ));
DESCR("hash");
-DATA(insert OID = 1081 ( format_type PGNSP PGUID 12 f t f i 2 f 25 "26 23" 100 0 0 100 format_type - _null_ ));
+DATA(insert OID = 1081 ( format_type PGNSP PGUID 12 f t f f f s 2 25 "26 23" 100 0 0 100 format_type - _null_ ));
DESCR("format a type oid and atttypmod to canonical SQL");
-DATA(insert OID = 1084 ( date_in PGNSP PGUID 12 f t t s 1 f 1082 "0" 100 0 0 100 date_in - _null_ ));
+DATA(insert OID = 1084 ( date_in PGNSP PGUID 12 f t f t f s 1 1082 "0" 100 0 0 100 date_in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1085 ( date_out PGNSP PGUID 12 f t t s 1 f 23 "0" 100 0 0 100 date_out - _null_ ));
+DATA(insert OID = 1085 ( date_out PGNSP PGUID 12 f t f t f s 1 23 "0" 100 0 0 100 date_out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1086 ( date_eq PGNSP PGUID 12 f t t i 2 f 16 "1082 1082" 100 0 0 100 date_eq - _null_ ));
+DATA(insert OID = 1086 ( date_eq PGNSP PGUID 12 f t f t f i 2 16 "1082 1082" 100 0 0 100 date_eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 1087 ( date_lt PGNSP PGUID 12 f t t i 2 f 16 "1082 1082" 100 0 0 100 date_lt - _null_ ));
+DATA(insert OID = 1087 ( date_lt PGNSP PGUID 12 f t f t f i 2 16 "1082 1082" 100 0 0 100 date_lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 1088 ( date_le PGNSP PGUID 12 f t t i 2 f 16 "1082 1082" 100 0 0 100 date_le - _null_ ));
+DATA(insert OID = 1088 ( date_le PGNSP PGUID 12 f t f t f i 2 16 "1082 1082" 100 0 0 100 date_le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 1089 ( date_gt PGNSP PGUID 12 f t t i 2 f 16 "1082 1082" 100 0 0 100 date_gt - _null_ ));
+DATA(insert OID = 1089 ( date_gt PGNSP PGUID 12 f t f t f i 2 16 "1082 1082" 100 0 0 100 date_gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 1090 ( date_ge PGNSP PGUID 12 f t t i 2 f 16 "1082 1082" 100 0 0 100 date_ge - _null_ ));
+DATA(insert OID = 1090 ( date_ge PGNSP PGUID 12 f t f t f i 2 16 "1082 1082" 100 0 0 100 date_ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 1091 ( date_ne PGNSP PGUID 12 f t t i 2 f 16 "1082 1082" 100 0 0 100 date_ne - _null_ ));
+DATA(insert OID = 1091 ( date_ne PGNSP PGUID 12 f t f t f i 2 16 "1082 1082" 100 0 0 100 date_ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 1092 ( date_cmp PGNSP PGUID 12 f t t i 2 f 23 "1082 1082" 100 0 0 100 date_cmp - _null_ ));
+DATA(insert OID = 1092 ( date_cmp PGNSP PGUID 12 f t f t f i 2 23 "1082 1082" 100 0 0 100 date_cmp - _null_ ));
DESCR("less-equal-greater");
/* OIDS 1100 - 1199 */
-DATA(insert OID = 1102 ( time_lt PGNSP PGUID 12 f t t i 2 f 16 "1083 1083" 100 0 0 100 time_lt - _null_ ));
+DATA(insert OID = 1102 ( time_lt PGNSP PGUID 12 f t f t f i 2 16 "1083 1083" 100 0 0 100 time_lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 1103 ( time_le PGNSP PGUID 12 f t t i 2 f 16 "1083 1083" 100 0 0 100 time_le - _null_ ));
+DATA(insert OID = 1103 ( time_le PGNSP PGUID 12 f t f t f i 2 16 "1083 1083" 100 0 0 100 time_le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 1104 ( time_gt PGNSP PGUID 12 f t t i 2 f 16 "1083 1083" 100 0 0 100 time_gt - _null_ ));
+DATA(insert OID = 1104 ( time_gt PGNSP PGUID 12 f t f t f i 2 16 "1083 1083" 100 0 0 100 time_gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 1105 ( time_ge PGNSP PGUID 12 f t t i 2 f 16 "1083 1083" 100 0 0 100 time_ge - _null_ ));
+DATA(insert OID = 1105 ( time_ge PGNSP PGUID 12 f t f t f i 2 16 "1083 1083" 100 0 0 100 time_ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 1106 ( time_ne PGNSP PGUID 12 f t t i 2 f 16 "1083 1083" 100 0 0 100 time_ne - _null_ ));
+DATA(insert OID = 1106 ( time_ne PGNSP PGUID 12 f t f t f i 2 16 "1083 1083" 100 0 0 100 time_ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 1107 ( time_cmp PGNSP PGUID 12 f t t i 2 f 23 "1083 1083" 100 0 0 100 time_cmp - _null_ ));
+DATA(insert OID = 1107 ( time_cmp PGNSP PGUID 12 f t f t f i 2 23 "1083 1083" 100 0 0 100 time_cmp - _null_ ));
DESCR("less-equal-greater");
-DATA(insert OID = 1138 ( date_larger PGNSP PGUID 12 f t t i 2 f 1082 "1082 1082" 100 0 0 100 date_larger - _null_ ));
+DATA(insert OID = 1138 ( date_larger PGNSP PGUID 12 f t f t f i 2 1082 "1082 1082" 100 0 0 100 date_larger - _null_ ));
DESCR("larger of two");
-DATA(insert OID = 1139 ( date_smaller PGNSP PGUID 12 f t t i 2 f 1082 "1082 1082" 100 0 0 100 date_smaller - _null_ ));
+DATA(insert OID = 1139 ( date_smaller PGNSP PGUID 12 f t f t f i 2 1082 "1082 1082" 100 0 0 100 date_smaller - _null_ ));
DESCR("smaller of two");
-DATA(insert OID = 1140 ( date_mi PGNSP PGUID 12 f t t i 2 f 23 "1082 1082" 100 0 0 100 date_mi - _null_ ));
+DATA(insert OID = 1140 ( date_mi PGNSP PGUID 12 f t f t f i 2 23 "1082 1082" 100 0 0 100 date_mi - _null_ ));
DESCR("subtract");
-DATA(insert OID = 1141 ( date_pli PGNSP PGUID 12 f t t i 2 f 1082 "1082 23" 100 0 0 100 date_pli - _null_ ));
+DATA(insert OID = 1141 ( date_pli PGNSP PGUID 12 f t f t f i 2 1082 "1082 23" 100 0 0 100 date_pli - _null_ ));
DESCR("add");
-DATA(insert OID = 1142 ( date_mii PGNSP PGUID 12 f t t i 2 f 1082 "1082 23" 100 0 0 100 date_mii - _null_ ));
+DATA(insert OID = 1142 ( date_mii PGNSP PGUID 12 f t f t f i 2 1082 "1082 23" 100 0 0 100 date_mii - _null_ ));
DESCR("subtract");
-DATA(insert OID = 1143 ( time_in PGNSP PGUID 12 f t t s 1 f 1083 "0" 100 0 0 100 time_in - _null_ ));
+DATA(insert OID = 1143 ( time_in PGNSP PGUID 12 f t f t f s 1 1083 "0" 100 0 0 100 time_in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1144 ( time_out PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 time_out - _null_ ));
+DATA(insert OID = 1144 ( time_out PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 time_out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1145 ( time_eq PGNSP PGUID 12 f t t i 2 f 16 "1083 1083" 100 0 0 100 time_eq - _null_ ));
+DATA(insert OID = 1145 ( time_eq PGNSP PGUID 12 f t f t f i 2 16 "1083 1083" 100 0 0 100 time_eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 1146 ( circle_add_pt PGNSP PGUID 12 f t t i 2 f 718 "718 600" 100 0 0 100 circle_add_pt - _null_ ));
+DATA(insert OID = 1146 ( circle_add_pt PGNSP PGUID 12 f t f t f i 2 718 "718 600" 100 0 0 100 circle_add_pt - _null_ ));
DESCR("add");
-DATA(insert OID = 1147 ( circle_sub_pt PGNSP PGUID 12 f t t i 2 f 718 "718 600" 100 0 0 100 circle_sub_pt - _null_ ));
+DATA(insert OID = 1147 ( circle_sub_pt PGNSP PGUID 12 f t f t f i 2 718 "718 600" 100 0 0 100 circle_sub_pt - _null_ ));
DESCR("subtract");
-DATA(insert OID = 1148 ( circle_mul_pt PGNSP PGUID 12 f t t i 2 f 718 "718 600" 100 0 0 100 circle_mul_pt - _null_ ));
+DATA(insert OID = 1148 ( circle_mul_pt PGNSP PGUID 12 f t f t f i 2 718 "718 600" 100 0 0 100 circle_mul_pt - _null_ ));
DESCR("multiply");
-DATA(insert OID = 1149 ( circle_div_pt PGNSP PGUID 12 f t t i 2 f 718 "718 600" 100 0 0 100 circle_div_pt - _null_ ));
+DATA(insert OID = 1149 ( circle_div_pt PGNSP PGUID 12 f t f t f i 2 718 "718 600" 100 0 0 100 circle_div_pt - _null_ ));
DESCR("divide");
-DATA(insert OID = 1150 ( timestamptz_in PGNSP PGUID 12 f t t s 1 f 1184 "0" 100 0 0 100 timestamptz_in - _null_ ));
+DATA(insert OID = 1150 ( timestamptz_in PGNSP PGUID 12 f t f t f s 1 1184 "0" 100 0 0 100 timestamptz_in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1151 ( timestamptz_out PGNSP PGUID 12 f t t s 1 f 23 "0" 100 0 0 100 timestamptz_out - _null_ ));
+DATA(insert OID = 1151 ( timestamptz_out PGNSP PGUID 12 f t f t f s 1 23 "0" 100 0 0 100 timestamptz_out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1152 ( timestamptz_eq PGNSP PGUID 12 f t t i 2 f 16 "1184 1184" 100 0 0 100 timestamp_eq - _null_ ));
+DATA(insert OID = 1152 ( timestamptz_eq PGNSP PGUID 12 f t f t f i 2 16 "1184 1184" 100 0 0 100 timestamp_eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 1153 ( timestamptz_ne PGNSP PGUID 12 f t t i 2 f 16 "1184 1184" 100 0 0 100 timestamp_ne - _null_ ));
+DATA(insert OID = 1153 ( timestamptz_ne PGNSP PGUID 12 f t f t f i 2 16 "1184 1184" 100 0 0 100 timestamp_ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 1154 ( timestamptz_lt PGNSP PGUID 12 f t t i 2 f 16 "1184 1184" 100 0 0 100 timestamp_lt - _null_ ));
+DATA(insert OID = 1154 ( timestamptz_lt PGNSP PGUID 12 f t f t f i 2 16 "1184 1184" 100 0 0 100 timestamp_lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 1155 ( timestamptz_le PGNSP PGUID 12 f t t i 2 f 16 "1184 1184" 100 0 0 100 timestamp_le - _null_ ));
+DATA(insert OID = 1155 ( timestamptz_le PGNSP PGUID 12 f t f t f i 2 16 "1184 1184" 100 0 0 100 timestamp_le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 1156 ( timestamptz_ge PGNSP PGUID 12 f t t i 2 f 16 "1184 1184" 100 0 0 100 timestamp_ge - _null_ ));
+DATA(insert OID = 1156 ( timestamptz_ge PGNSP PGUID 12 f t f t f i 2 16 "1184 1184" 100 0 0 100 timestamp_ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 1157 ( timestamptz_gt PGNSP PGUID 12 f t t i 2 f 16 "1184 1184" 100 0 0 100 timestamp_gt - _null_ ));
+DATA(insert OID = 1157 ( timestamptz_gt PGNSP PGUID 12 f t f t f i 2 16 "1184 1184" 100 0 0 100 timestamp_gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 1159 ( timezone PGNSP PGUID 12 f t t s 2 f 25 "25 1184" 100 0 0 100 timestamptz_zone - _null_ ));
+DATA(insert OID = 1159 ( timezone PGNSP PGUID 12 f t f t f s 2 25 "25 1184" 100 0 0 100 timestamptz_zone - _null_ ));
DESCR("time zone");
-DATA(insert OID = 1160 ( interval_in PGNSP PGUID 12 f t t s 1 f 1186 "0" 100 0 0 100 interval_in - _null_ ));
+DATA(insert OID = 1160 ( interval_in PGNSP PGUID 12 f t f t f s 1 1186 "0" 100 0 0 100 interval_in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1161 ( interval_out PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 interval_out - _null_ ));
+DATA(insert OID = 1161 ( interval_out PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 interval_out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1162 ( interval_eq PGNSP PGUID 12 f t t i 2 f 16 "1186 1186" 100 0 0 100 interval_eq - _null_ ));
+DATA(insert OID = 1162 ( interval_eq PGNSP PGUID 12 f t f t f i 2 16 "1186 1186" 100 0 0 100 interval_eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 1163 ( interval_ne PGNSP PGUID 12 f t t i 2 f 16 "1186 1186" 100 0 0 100 interval_ne - _null_ ));
+DATA(insert OID = 1163 ( interval_ne PGNSP PGUID 12 f t f t f i 2 16 "1186 1186" 100 0 0 100 interval_ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 1164 ( interval_lt PGNSP PGUID 12 f t t i 2 f 16 "1186 1186" 100 0 0 100 interval_lt - _null_ ));
+DATA(insert OID = 1164 ( interval_lt PGNSP PGUID 12 f t f t f i 2 16 "1186 1186" 100 0 0 100 interval_lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 1165 ( interval_le PGNSP PGUID 12 f t t i 2 f 16 "1186 1186" 100 0 0 100 interval_le - _null_ ));
+DATA(insert OID = 1165 ( interval_le PGNSP PGUID 12 f t f t f i 2 16 "1186 1186" 100 0 0 100 interval_le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 1166 ( interval_ge PGNSP PGUID 12 f t t i 2 f 16 "1186 1186" 100 0 0 100 interval_ge - _null_ ));
+DATA(insert OID = 1166 ( interval_ge PGNSP PGUID 12 f t f t f i 2 16 "1186 1186" 100 0 0 100 interval_ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 1167 ( interval_gt PGNSP PGUID 12 f t t i 2 f 16 "1186 1186" 100 0 0 100 interval_gt - _null_ ));
+DATA(insert OID = 1167 ( interval_gt PGNSP PGUID 12 f t f t f i 2 16 "1186 1186" 100 0 0 100 interval_gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 1168 ( interval_um PGNSP PGUID 12 f t t i 1 f 1186 "1186" 100 0 0 100 interval_um - _null_ ));
+DATA(insert OID = 1168 ( interval_um PGNSP PGUID 12 f t f t f i 1 1186 "1186" 100 0 0 100 interval_um - _null_ ));
DESCR("subtract");
-DATA(insert OID = 1169 ( interval_pl PGNSP PGUID 12 f t t i 2 f 1186 "1186 1186" 100 0 0 100 interval_pl - _null_ ));
+DATA(insert OID = 1169 ( interval_pl PGNSP PGUID 12 f t f t f i 2 1186 "1186 1186" 100 0 0 100 interval_pl - _null_ ));
DESCR("add");
-DATA(insert OID = 1170 ( interval_mi PGNSP PGUID 12 f t t i 2 f 1186 "1186 1186" 100 0 0 100 interval_mi - _null_ ));
+DATA(insert OID = 1170 ( interval_mi PGNSP PGUID 12 f t f t f i 2 1186 "1186 1186" 100 0 0 100 interval_mi - _null_ ));
DESCR("subtract");
-DATA(insert OID = 1171 ( date_part PGNSP PGUID 12 f t t s 2 f 701 "25 1184" 100 0 0 100 timestamptz_part - _null_ ));
+DATA(insert OID = 1171 ( date_part PGNSP PGUID 12 f t f t f s 2 701 "25 1184" 100 0 0 100 timestamptz_part - _null_ ));
DESCR("extract field from timestamp with time zone");
-DATA(insert OID = 1172 ( date_part PGNSP PGUID 12 f t t i 2 f 701 "25 1186" 100 0 0 100 interval_part - _null_ ));
+DATA(insert OID = 1172 ( date_part PGNSP PGUID 12 f t f t f i 2 701 "25 1186" 100 0 0 100 interval_part - _null_ ));
DESCR("extract field from interval");
-DATA(insert OID = 1173 ( timestamptz PGNSP PGUID 12 f t t s 1 f 1184 "702" 100 0 0 100 abstime_timestamptz - _null_ ));
+DATA(insert OID = 1173 ( timestamptz PGNSP PGUID 12 f t t t f s 1 1184 "702" 100 0 0 100 abstime_timestamptz - _null_ ));
DESCR("convert abstime to timestamp with time zone");
-DATA(insert OID = 1174 ( timestamptz PGNSP PGUID 12 f t t s 1 f 1184 "1082" 100 0 0 100 date_timestamptz - _null_ ));
+DATA(insert OID = 1174 ( timestamptz PGNSP PGUID 12 f t t t f s 1 1184 "1082" 100 0 0 100 date_timestamptz - _null_ ));
DESCR("convert date to timestamp with time zone");
-DATA(insert OID = 1176 ( timestamptz PGNSP PGUID 14 f t t s 2 f 1184 "1082 1083" 100 0 0 100 "select timestamptz($1 + $2)" - _null_ ));
+DATA(insert OID = 1176 ( timestamptz PGNSP PGUID 14 f t f t f s 2 1184 "1082 1083" 100 0 0 100 "select timestamptz($1 + $2)" - _null_ ));
DESCR("convert date and time to timestamp with time zone");
-DATA(insert OID = 1177 ( interval PGNSP PGUID 12 f t t i 1 f 1186 "703" 100 0 0 100 reltime_interval - _null_ ));
+DATA(insert OID = 1177 ( interval PGNSP PGUID 12 f t t t f i 1 1186 "703" 100 0 0 100 reltime_interval - _null_ ));
DESCR("convert reltime to interval");
-DATA(insert OID = 1178 ( date PGNSP PGUID 12 f t t s 1 f 1082 "1184" 100 0 0 100 timestamptz_date - _null_ ));
+DATA(insert OID = 1178 ( date PGNSP PGUID 12 f t f t f s 1 1082 "1184" 100 0 0 100 timestamptz_date - _null_ ));
DESCR("convert timestamp with time zone to date");
-DATA(insert OID = 1179 ( date PGNSP PGUID 12 f t t s 1 f 1082 "702" 100 0 0 100 abstime_date - _null_ ));
+DATA(insert OID = 1179 ( date PGNSP PGUID 12 f t f t f s 1 1082 "702" 100 0 0 100 abstime_date - _null_ ));
DESCR("convert abstime to date");
-DATA(insert OID = 1180 ( abstime PGNSP PGUID 12 f t t s 1 f 702 "1184" 100 0 0 100 timestamptz_abstime - _null_ ));
+DATA(insert OID = 1180 ( abstime PGNSP PGUID 12 f t f t f s 1 702 "1184" 100 0 0 100 timestamptz_abstime - _null_ ));
DESCR("convert timestamp with time zone to abstime");
-DATA(insert OID = 1181 ( age PGNSP PGUID 12 f t t s 1 f 23 "28" 100 0 0 100 xid_age - _null_ ));
+DATA(insert OID = 1181 ( age PGNSP PGUID 12 f t f t f s 1 23 "28" 100 0 0 100 xid_age - _null_ ));
DESCR("age of a transaction ID, in transactions before current transaction");
-DATA(insert OID = 1188 ( timestamptz_mi PGNSP PGUID 12 f t t i 2 f 1186 "1184 1184" 100 0 0 100 timestamp_mi - _null_ ));
+DATA(insert OID = 1188 ( timestamptz_mi PGNSP PGUID 12 f t f t f i 2 1186 "1184 1184" 100 0 0 100 timestamp_mi - _null_ ));
DESCR("subtract");
-DATA(insert OID = 1189 ( timestamptz_pl_span PGNSP PGUID 12 f t t i 2 f 1184 "1184 1186" 100 0 0 100 timestamptz_pl_span - _null_ ));
+DATA(insert OID = 1189 ( timestamptz_pl_span PGNSP PGUID 12 f t f t f i 2 1184 "1184 1186" 100 0 0 100 timestamptz_pl_span - _null_ ));
DESCR("plus");
-DATA(insert OID = 1190 ( timestamptz_mi_span PGNSP PGUID 12 f t t i 2 f 1184 "1184 1186" 100 0 0 100 timestamptz_mi_span - _null_ ));
+DATA(insert OID = 1190 ( timestamptz_mi_span PGNSP PGUID 12 f t f t f i 2 1184 "1184 1186" 100 0 0 100 timestamptz_mi_span - _null_ ));
DESCR("minus");
-DATA(insert OID = 1191 ( timestamptz PGNSP PGUID 12 f t t s 1 f 1184 "25" 100 0 0 100 text_timestamptz - _null_ ));
+DATA(insert OID = 1191 ( timestamptz PGNSP PGUID 12 f t f t f s 1 1184 "25" 100 0 0 100 text_timestamptz - _null_ ));
DESCR("convert text to timestamp with time zone");
-DATA(insert OID = 1192 ( text PGNSP PGUID 12 f t t s 1 f 25 "1184" 100 0 0 100 timestamptz_text - _null_ ));
+DATA(insert OID = 1192 ( text PGNSP PGUID 12 f t t t f s 1 25 "1184" 100 0 0 100 timestamptz_text - _null_ ));
DESCR("convert timestamp to text");
-DATA(insert OID = 1193 ( text PGNSP PGUID 12 f t t i 1 f 25 "1186" 100 0 0 100 interval_text - _null_ ));
+DATA(insert OID = 1193 ( text PGNSP PGUID 12 f t t t f i 1 25 "1186" 100 0 0 100 interval_text - _null_ ));
DESCR("convert interval to text");
-DATA(insert OID = 1194 ( reltime PGNSP PGUID 12 f t t i 1 f 703 "1186" 100 0 0 100 interval_reltime - _null_ ));
+DATA(insert OID = 1194 ( reltime PGNSP PGUID 12 f t f t f i 1 703 "1186" 100 0 0 100 interval_reltime - _null_ ));
DESCR("convert interval to reltime");
-DATA(insert OID = 1195 ( timestamptz_smaller PGNSP PGUID 12 f t t i 2 f 1184 "1184 1184" 100 0 0 100 timestamp_smaller - _null_ ));
+DATA(insert OID = 1195 ( timestamptz_smaller PGNSP PGUID 12 f t f t f i 2 1184 "1184 1184" 100 0 0 100 timestamp_smaller - _null_ ));
DESCR("smaller of two");
-DATA(insert OID = 1196 ( timestamptz_larger PGNSP PGUID 12 f t t i 2 f 1184 "1184 1184" 100 0 0 100 timestamp_larger - _null_ ));
+DATA(insert OID = 1196 ( timestamptz_larger PGNSP PGUID 12 f t f t f i 2 1184 "1184 1184" 100 0 0 100 timestamp_larger - _null_ ));
DESCR("larger of two");
-DATA(insert OID = 1197 ( interval_smaller PGNSP PGUID 12 f t t i 2 f 1186 "1186 1186" 100 0 0 100 interval_smaller - _null_ ));
+DATA(insert OID = 1197 ( interval_smaller PGNSP PGUID 12 f t f t f i 2 1186 "1186 1186" 100 0 0 100 interval_smaller - _null_ ));
DESCR("smaller of two");
-DATA(insert OID = 1198 ( interval_larger PGNSP PGUID 12 f t t i 2 f 1186 "1186 1186" 100 0 0 100 interval_larger - _null_ ));
+DATA(insert OID = 1198 ( interval_larger PGNSP PGUID 12 f t f t f i 2 1186 "1186 1186" 100 0 0 100 interval_larger - _null_ ));
DESCR("larger of two");
-DATA(insert OID = 1199 ( age PGNSP PGUID 12 f t t i 2 f 1186 "1184 1184" 100 0 0 100 timestamptz_age - _null_ ));
+DATA(insert OID = 1199 ( age PGNSP PGUID 12 f t f t f i 2 1186 "1184 1184" 100 0 0 100 timestamptz_age - _null_ ));
DESCR("date difference preserving months and years");
/* OIDS 1200 - 1299 */
-DATA(insert OID = 1200 ( reltime PGNSP PGUID 12 f t t i 1 f 703 "23" 100 0 0 100 int4reltime - _null_ ));
+DATA(insert OID = 1200 ( reltime PGNSP PGUID 12 f t f t f i 1 703 "23" 100 0 0 100 int4reltime - _null_ ));
DESCR("convert int4 to reltime");
-DATA(insert OID = 1215 ( obj_description PGNSP PGUID 14 f t t s 2 f 25 "26 19" 100 0 0 100 "select description from pg_description where objoid = $1 and classoid = (select oid from pg_class where relname = $2) and objsubid = 0" - _null_ ));
+DATA(insert OID = 1215 ( obj_description PGNSP PGUID 14 f t f t f s 2 25 "26 19" 100 0 0 100 "select description from pg_description where objoid = $1 and classoid = (select oid from pg_class where relname = $2) and objsubid = 0" - _null_ ));
DESCR("get description for object id and catalog name");
-DATA(insert OID = 1216 ( col_description PGNSP PGUID 14 f t t s 2 f 25 "26 23" 100 0 0 100 "select description from pg_description where objoid = $1 and classoid = (select oid from pg_class where relname = \'pg_class\') and objsubid = $2" - _null_ ));
+DATA(insert OID = 1216 ( col_description PGNSP PGUID 14 f t f t f s 2 25 "26 23" 100 0 0 100 "select description from pg_description where objoid = $1 and classoid = (select oid from pg_class where relname = \'pg_class\') and objsubid = $2" - _null_ ));
DESCR("get description for table column");
-DATA(insert OID = 1217 ( date_trunc PGNSP PGUID 12 f t t i 2 f 1184 "25 1184" 100 0 0 100 timestamptz_trunc - _null_ ));
+DATA(insert OID = 1217 ( date_trunc PGNSP PGUID 12 f t f t f i 2 1184 "25 1184" 100 0 0 100 timestamptz_trunc - _null_ ));
DESCR("truncate timestamp with time zone to specified units");
-DATA(insert OID = 1218 ( date_trunc PGNSP PGUID 12 f t t i 2 f 1186 "25 1186" 100 0 0 100 interval_trunc - _null_ ));
+DATA(insert OID = 1218 ( date_trunc PGNSP PGUID 12 f t f t f i 2 1186 "25 1186" 100 0 0 100 interval_trunc - _null_ ));
DESCR("truncate interval to specified units");
-DATA(insert OID = 1219 ( int8inc PGNSP PGUID 12 f t t i 1 f 20 "20" 100 0 0 100 int8inc - _null_ ));
+DATA(insert OID = 1219 ( int8inc PGNSP PGUID 12 f t f t f i 1 20 "20" 100 0 0 100 int8inc - _null_ ));
DESCR("increment");
-DATA(insert OID = 1230 ( int8abs PGNSP PGUID 12 f t t i 1 f 20 "20" 100 0 0 100 int8abs - _null_ ));
+DATA(insert OID = 1230 ( int8abs PGNSP PGUID 12 f t f t f i 1 20 "20" 100 0 0 100 int8abs - _null_ ));
DESCR("absolute value");
-DATA(insert OID = 1236 ( int8larger PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100 int8larger - _null_ ));
+DATA(insert OID = 1236 ( int8larger PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100 int8larger - _null_ ));
DESCR("larger of two");
-DATA(insert OID = 1237 ( int8smaller PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100 int8smaller - _null_ ));
+DATA(insert OID = 1237 ( int8smaller PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100 int8smaller - _null_ ));
DESCR("smaller of two");
-DATA(insert OID = 1238 ( texticregexeq PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100 texticregexeq - _null_ ));
+DATA(insert OID = 1238 ( texticregexeq PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100 texticregexeq - _null_ ));
DESCR("matches regex., case-insensitive");
-DATA(insert OID = 1239 ( texticregexne PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100 texticregexne - _null_ ));
+DATA(insert OID = 1239 ( texticregexne PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100 texticregexne - _null_ ));
DESCR("does not match regex., case-insensitive");
-DATA(insert OID = 1240 ( nameicregexeq PGNSP PGUID 12 f t t i 2 f 16 "19 25" 100 0 0 100 nameicregexeq - _null_ ));
+DATA(insert OID = 1240 ( nameicregexeq PGNSP PGUID 12 f t f t f i 2 16 "19 25" 100 0 0 100 nameicregexeq - _null_ ));
DESCR("matches regex., case-insensitive");
-DATA(insert OID = 1241 ( nameicregexne PGNSP PGUID 12 f t t i 2 f 16 "19 25" 100 0 0 100 nameicregexne - _null_ ));
+DATA(insert OID = 1241 ( nameicregexne PGNSP PGUID 12 f t f t f i 2 16 "19 25" 100 0 0 100 nameicregexne - _null_ ));
DESCR("does not match regex., case-insensitive");
-DATA(insert OID = 1251 ( int4abs PGNSP PGUID 12 f t t i 1 f 23 "23" 100 0 0 100 int4abs - _null_ ));
+DATA(insert OID = 1251 ( int4abs PGNSP PGUID 12 f t f t f i 1 23 "23" 100 0 0 100 int4abs - _null_ ));
DESCR("absolute value");
-DATA(insert OID = 1253 ( int2abs PGNSP PGUID 12 f t t i 1 f 21 "21" 100 0 0 100 int2abs - _null_ ));
+DATA(insert OID = 1253 ( int2abs PGNSP PGUID 12 f t f t f i 1 21 "21" 100 0 0 100 int2abs - _null_ ));
DESCR("absolute value");
-DATA(insert OID = 1263 ( interval PGNSP PGUID 12 f t t s 1 f 1186 "25" 100 0 0 100 text_interval - _null_ ));
+DATA(insert OID = 1263 ( interval PGNSP PGUID 12 f t f t f s 1 1186 "25" 100 0 0 100 text_interval - _null_ ));
DESCR("convert text to interval");
-DATA(insert OID = 1271 ( overlaps PGNSP PGUID 12 f t f i 4 f 16 "1266 1266 1266 1266" 100 0 0 100 overlaps_timetz - _null_ ));
+DATA(insert OID = 1271 ( overlaps PGNSP PGUID 12 f t f f f i 4 16 "1266 1266 1266 1266" 100 0 0 100 overlaps_timetz - _null_ ));
DESCR("SQL92 interval comparison");
-DATA(insert OID = 1272 ( datetime_pl PGNSP PGUID 12 f t t i 2 f 1114 "1082 1083" 100 0 0 100 datetime_timestamp - _null_ ));
+DATA(insert OID = 1272 ( datetime_pl PGNSP PGUID 12 f t f t f i 2 1114 "1082 1083" 100 0 0 100 datetime_timestamp - _null_ ));
DESCR("convert date and time to timestamp");
-DATA(insert OID = 1273 ( date_part PGNSP PGUID 12 f t t i 2 f 701 "25 1266" 100 0 0 100 timetz_part - _null_ ));
+DATA(insert OID = 1273 ( date_part PGNSP PGUID 12 f t f t f i 2 701 "25 1266" 100 0 0 100 timetz_part - _null_ ));
DESCR("extract field from time with time zone");
-DATA(insert OID = 1274 ( int84pl PGNSP PGUID 12 f t t i 2 f 20 "20 23" 100 0 0 100 int84pl - _null_ ));
+DATA(insert OID = 1274 ( int84pl PGNSP PGUID 12 f t f t f i 2 20 "20 23" 100 0 0 100 int84pl - _null_ ));
DESCR("add");
-DATA(insert OID = 1275 ( int84mi PGNSP PGUID 12 f t t i 2 f 20 "20 23" 100 0 0 100 int84mi - _null_ ));
+DATA(insert OID = 1275 ( int84mi PGNSP PGUID 12 f t f t f i 2 20 "20 23" 100 0 0 100 int84mi - _null_ ));
DESCR("subtract");
-DATA(insert OID = 1276 ( int84mul PGNSP PGUID 12 f t t i 2 f 20 "20 23" 100 0 0 100 int84mul - _null_ ));
+DATA(insert OID = 1276 ( int84mul PGNSP PGUID 12 f t f t f i 2 20 "20 23" 100 0 0 100 int84mul - _null_ ));
DESCR("multiply");
-DATA(insert OID = 1277 ( int84div PGNSP PGUID 12 f t t i 2 f 20 "20 23" 100 0 0 100 int84div - _null_ ));
+DATA(insert OID = 1277 ( int84div PGNSP PGUID 12 f t f t f i 2 20 "20 23" 100 0 0 100 int84div - _null_ ));
DESCR("divide");
-DATA(insert OID = 1278 ( int48pl PGNSP PGUID 12 f t t i 2 f 20 "23 20" 100 0 0 100 int48pl - _null_ ));
+DATA(insert OID = 1278 ( int48pl PGNSP PGUID 12 f t f t f i 2 20 "23 20" 100 0 0 100 int48pl - _null_ ));
DESCR("add");
-DATA(insert OID = 1279 ( int48mi PGNSP PGUID 12 f t t i 2 f 20 "23 20" 100 0 0 100 int48mi - _null_ ));
+DATA(insert OID = 1279 ( int48mi PGNSP PGUID 12 f t f t f i 2 20 "23 20" 100 0 0 100 int48mi - _null_ ));
DESCR("subtract");
-DATA(insert OID = 1280 ( int48mul PGNSP PGUID 12 f t t i 2 f 20 "23 20" 100 0 0 100 int48mul - _null_ ));
+DATA(insert OID = 1280 ( int48mul PGNSP PGUID 12 f t f t f i 2 20 "23 20" 100 0 0 100 int48mul - _null_ ));
DESCR("multiply");
-DATA(insert OID = 1281 ( int48div PGNSP PGUID 12 f t t i 2 f 20 "23 20" 100 0 0 100 int48div - _null_ ));
+DATA(insert OID = 1281 ( int48div PGNSP PGUID 12 f t f t f i 2 20 "23 20" 100 0 0 100 int48div - _null_ ));
DESCR("divide");
-DATA(insert OID = 1288 ( text PGNSP PGUID 12 f t t i 1 f 25 "20" 100 0 0 100 int8_text - _null_ ));
+DATA(insert OID = 1288 ( text PGNSP PGUID 12 f t t t f i 1 25 "20" 100 0 0 100 int8_text - _null_ ));
DESCR("convert int8 to text");
-DATA(insert OID = 1289 ( int8 PGNSP PGUID 12 f t t i 1 f 20 "25" 100 0 0 100 text_int8 - _null_ ));
+DATA(insert OID = 1289 ( int8 PGNSP PGUID 12 f t f t f i 1 20 "25" 100 0 0 100 text_int8 - _null_ ));
DESCR("convert text to int8");
-DATA(insert OID = 1290 ( _bpchar PGNSP PGUID 12 f t t i 2 f 1014 "1014 23" 100 0 0 100 _bpchar - _null_ ));
+DATA(insert OID = 1290 ( _bpchar PGNSP PGUID 12 f t t t f i 2 1014 "1014 23" 100 0 0 100 _bpchar - _null_ ));
DESCR("adjust char()[] to typmod length");
-DATA(insert OID = 1291 ( _varchar PGNSP PGUID 12 f t t i 2 f 1015 "1015 23" 100 0 0 100 _varchar - _null_ ));
+DATA(insert OID = 1291 ( _varchar PGNSP PGUID 12 f t t t f i 2 1015 "1015 23" 100 0 0 100 _varchar - _null_ ));
DESCR("adjust varchar()[] to typmod length");
-DATA(insert OID = 1292 ( tideq PGNSP PGUID 12 f t t i 2 f 16 "27 27" 100 0 0 100 tideq - _null_ ));
+DATA(insert OID = 1292 ( tideq PGNSP PGUID 12 f t f t f i 2 16 "27 27" 100 0 0 100 tideq - _null_ ));
DESCR("equal");
-DATA(insert OID = 1293 ( currtid PGNSP PGUID 12 f t t v 2 f 27 "26 27" 100 0 0 100 currtid_byreloid - _null_ ));
+DATA(insert OID = 1293 ( currtid PGNSP PGUID 12 f t f t f v 2 27 "26 27" 100 0 0 100 currtid_byreloid - _null_ ));
DESCR("latest tid of a tuple");
-DATA(insert OID = 1294 ( currtid2 PGNSP PGUID 12 f t t v 2 f 27 "25 27" 100 0 0 100 currtid_byrelname - _null_ ));
+DATA(insert OID = 1294 ( currtid2 PGNSP PGUID 12 f t f t f v 2 27 "25 27" 100 0 0 100 currtid_byrelname - _null_ ));
DESCR("latest tid of a tuple");
-DATA(insert OID = 1296 ( timedate_pl PGNSP PGUID 14 f t t i 2 f 1114 "1083 1082" 100 0 0 100 "select ($2 + $1)" - _null_ ));
+DATA(insert OID = 1296 ( timedate_pl PGNSP PGUID 14 f t f t f i 2 1114 "1083 1082" 100 0 0 100 "select ($2 + $1)" - _null_ ));
DESCR("convert time and date to timestamp");
-DATA(insert OID = 1297 ( datetimetz_pl PGNSP PGUID 12 f t t i 2 f 1184 "1082 1266" 100 0 0 100 datetimetz_timestamptz - _null_ ));
+DATA(insert OID = 1297 ( datetimetz_pl PGNSP PGUID 12 f t f t f i 2 1184 "1082 1266" 100 0 0 100 datetimetz_timestamptz - _null_ ));
DESCR("convert date and time with time zone to timestamp with time zone");
-DATA(insert OID = 1298 ( timetzdate_pl PGNSP PGUID 14 f t t i 2 f 1184 "1266 1082" 100 0 0 100 "select ($2 + $1)" - _null_ ));
+DATA(insert OID = 1298 ( timetzdate_pl PGNSP PGUID 14 f t f t f i 2 1184 "1266 1082" 100 0 0 100 "select ($2 + $1)" - _null_ ));
DESCR("convert time with time zone and date to timestamp");
-DATA(insert OID = 1299 ( now PGNSP PGUID 12 f t t s 0 f 1184 "0" 100 0 0 100 now - _null_ ));
+DATA(insert OID = 1299 ( now PGNSP PGUID 12 f t f t f s 0 1184 "0" 100 0 0 100 now - _null_ ));
DESCR("current transaction time");
/* OIDS 1300 - 1399 */
-DATA(insert OID = 1300 ( positionsel PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100 positionsel - _null_ ));
+DATA(insert OID = 1300 ( positionsel PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100 positionsel - _null_ ));
DESCR("restriction selectivity for position-comparison operators");
-DATA(insert OID = 1301 ( positionjoinsel PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100 positionjoinsel - _null_ ));
+DATA(insert OID = 1301 ( positionjoinsel PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100 positionjoinsel - _null_ ));
DESCR("join selectivity for position-comparison operators");
-DATA(insert OID = 1302 ( contsel PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100 contsel - _null_ ));
+DATA(insert OID = 1302 ( contsel PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100 contsel - _null_ ));
DESCR("restriction selectivity for containment comparison operators");
-DATA(insert OID = 1303 ( contjoinsel PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100 contjoinsel - _null_ ));
+DATA(insert OID = 1303 ( contjoinsel PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100 contjoinsel - _null_ ));
DESCR("join selectivity for containment comparison operators");
-DATA(insert OID = 1304 ( overlaps PGNSP PGUID 12 f t f i 4 f 16 "1184 1184 1184 1184" 100 0 0 100 overlaps_timestamp - _null_ ));
+DATA(insert OID = 1304 ( overlaps PGNSP PGUID 12 f t f f f i 4 16 "1184 1184 1184 1184" 100 0 0 100 overlaps_timestamp - _null_ ));
DESCR("SQL92 interval comparison");
-DATA(insert OID = 1305 ( overlaps PGNSP PGUID 14 f t f i 4 f 16 "1184 1186 1184 1186" 100 0 0 100 "select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" - _null_ ));
+DATA(insert OID = 1305 ( overlaps PGNSP PGUID 14 f t f f f i 4 16 "1184 1186 1184 1186" 100 0 0 100 "select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" - _null_ ));
DESCR("SQL92 interval comparison");
-DATA(insert OID = 1306 ( overlaps PGNSP PGUID 14 f t f i 4 f 16 "1184 1184 1184 1186" 100 0 0 100 "select ($1, $2) overlaps ($3, ($3 + $4))" - _null_ ));
+DATA(insert OID = 1306 ( overlaps PGNSP PGUID 14 f t f f f i 4 16 "1184 1184 1184 1186" 100 0 0 100 "select ($1, $2) overlaps ($3, ($3 + $4))" - _null_ ));
DESCR("SQL92 interval comparison");
-DATA(insert OID = 1307 ( overlaps PGNSP PGUID 14 f t f i 4 f 16 "1184 1186 1184 1184" 100 0 0 100 "select ($1, ($1 + $2)) overlaps ($3, $4)" - _null_ ));
+DATA(insert OID = 1307 ( overlaps PGNSP PGUID 14 f t f f f i 4 16 "1184 1186 1184 1184" 100 0 0 100 "select ($1, ($1 + $2)) overlaps ($3, $4)" - _null_ ));
DESCR("SQL92 interval comparison");
-DATA(insert OID = 1308 ( overlaps PGNSP PGUID 12 f t f i 4 f 16 "1083 1083 1083 1083" 100 0 0 100 overlaps_time - _null_ ));
+DATA(insert OID = 1308 ( overlaps PGNSP PGUID 12 f t f f f i 4 16 "1083 1083 1083 1083" 100 0 0 100 overlaps_time - _null_ ));
DESCR("SQL92 interval comparison");
-DATA(insert OID = 1309 ( overlaps PGNSP PGUID 14 f t f i 4 f 16 "1083 1186 1083 1186" 100 0 0 100 "select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" - _null_ ));
+DATA(insert OID = 1309 ( overlaps PGNSP PGUID 14 f t f f f i 4 16 "1083 1186 1083 1186" 100 0 0 100 "select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" - _null_ ));
DESCR("SQL92 interval comparison");
-DATA(insert OID = 1310 ( overlaps PGNSP PGUID 14 f t f i 4 f 16 "1083 1083 1083 1186" 100 0 0 100 "select ($1, $2) overlaps ($3, ($3 + $4))" - _null_ ));
+DATA(insert OID = 1310 ( overlaps PGNSP PGUID 14 f t f f f i 4 16 "1083 1083 1083 1186" 100 0 0 100 "select ($1, $2) overlaps ($3, ($3 + $4))" - _null_ ));
DESCR("SQL92 interval comparison");
-DATA(insert OID = 1311 ( overlaps PGNSP PGUID 14 f t f i 4 f 16 "1083 1186 1083 1083" 100 0 0 100 "select ($1, ($1 + $2)) overlaps ($3, $4)" - _null_ ));
+DATA(insert OID = 1311 ( overlaps PGNSP PGUID 14 f t f f f i 4 16 "1083 1186 1083 1083" 100 0 0 100 "select ($1, ($1 + $2)) overlaps ($3, $4)" - _null_ ));
DESCR("SQL92 interval comparison");
-DATA(insert OID = 1312 ( timestamp_in PGNSP PGUID 12 f t t s 1 f 1114 "0" 100 0 0 100 timestamp_in - _null_ ));
+DATA(insert OID = 1312 ( timestamp_in PGNSP PGUID 12 f t f t f s 1 1114 "0" 100 0 0 100 timestamp_in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1313 ( timestamp_out PGNSP PGUID 12 f t t s 1 f 23 "0" 100 0 0 100 timestamp_out - _null_ ));
+DATA(insert OID = 1313 ( timestamp_out PGNSP PGUID 12 f t f t f s 1 23 "0" 100 0 0 100 timestamp_out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1314 ( timestamptz_cmp PGNSP PGUID 12 f t t i 2 f 23 "1184 1184" 100 0 0 100 timestamp_cmp - _null_ ));
+DATA(insert OID = 1314 ( timestamptz_cmp PGNSP PGUID 12 f t f t f i 2 23 "1184 1184" 100 0 0 100 timestamp_cmp - _null_ ));
DESCR("less-equal-greater");
-DATA(insert OID = 1315 ( interval_cmp PGNSP PGUID 12 f t t i 2 f 23 "1186 1186" 100 0 0 100 interval_cmp - _null_ ));
+DATA(insert OID = 1315 ( interval_cmp PGNSP PGUID 12 f t f t f i 2 23 "1186 1186" 100 0 0 100 interval_cmp - _null_ ));
DESCR("less-equal-greater");
-DATA(insert OID = 1316 ( time PGNSP PGUID 12 f t t i 1 f 1083 "1114" 100 0 0 100 timestamp_time - _null_ ));
+DATA(insert OID = 1316 ( time PGNSP PGUID 12 f t f t f i 1 1083 "1114" 100 0 0 100 timestamp_time - _null_ ));
DESCR("convert timestamp to time");
-DATA(insert OID = 1317 ( length PGNSP PGUID 12 f t t i 1 f 23 "25" 100 0 0 100 textlen - _null_ ));
+DATA(insert OID = 1317 ( length PGNSP PGUID 12 f t f t f i 1 23 "25" 100 0 0 100 textlen - _null_ ));
DESCR("length");
-DATA(insert OID = 1318 ( length PGNSP PGUID 12 f t t i 1 f 23 "1042" 100 0 0 100 bpcharlen - _null_ ));
+DATA(insert OID = 1318 ( length PGNSP PGUID 12 f t f t f i 1 23 "1042" 100 0 0 100 bpcharlen - _null_ ));
DESCR("character length");
-DATA(insert OID = 1319 ( length PGNSP PGUID 12 f t t i 1 f 23 "1043" 100 0 0 100 varcharlen - _null_ ));
+DATA(insert OID = 1319 ( length PGNSP PGUID 12 f t f t f i 1 23 "1043" 100 0 0 100 varcharlen - _null_ ));
DESCR("character length");
-DATA(insert OID = 1326 ( interval_div PGNSP PGUID 12 f t t i 2 f 1186 "1186 701" 100 0 0 100 interval_div - _null_ ));
+DATA(insert OID = 1326 ( interval_div PGNSP PGUID 12 f t f t f i 2 1186 "1186 701" 100 0 0 100 interval_div - _null_ ));
DESCR("divide");
-DATA(insert OID = 1339 ( dlog10 PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 dlog10 - _null_ ));
+DATA(insert OID = 1339 ( dlog10 PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 dlog10 - _null_ ));
DESCR("base 10 logarithm");
-DATA(insert OID = 1340 ( log PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 dlog10 - _null_ ));
+DATA(insert OID = 1340 ( log PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 dlog10 - _null_ ));
DESCR("base 10 logarithm");
-DATA(insert OID = 1341 ( ln PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 dlog1 - _null_ ));
+DATA(insert OID = 1341 ( ln PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 dlog1 - _null_ ));
DESCR("natural logarithm");
-DATA(insert OID = 1342 ( round PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 dround - _null_ ));
+DATA(insert OID = 1342 ( round PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 dround - _null_ ));
DESCR("round to nearest integer");
-DATA(insert OID = 1343 ( trunc PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 dtrunc - _null_ ));
+DATA(insert OID = 1343 ( trunc PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 dtrunc - _null_ ));
DESCR("truncate to integer");
-DATA(insert OID = 1344 ( sqrt PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 dsqrt - _null_ ));
+DATA(insert OID = 1344 ( sqrt PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 dsqrt - _null_ ));
DESCR("square root");
-DATA(insert OID = 1345 ( cbrt PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 dcbrt - _null_ ));
+DATA(insert OID = 1345 ( cbrt PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 dcbrt - _null_ ));
DESCR("cube root");
-DATA(insert OID = 1346 ( pow PGNSP PGUID 12 f t t i 2 f 701 "701 701" 100 0 0 100 dpow - _null_ ));
+DATA(insert OID = 1346 ( pow PGNSP PGUID 12 f t f t f i 2 701 "701 701" 100 0 0 100 dpow - _null_ ));
DESCR("exponentiation");
-DATA(insert OID = 1347 ( exp PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 dexp - _null_ ));
+DATA(insert OID = 1347 ( exp PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 dexp - _null_ ));
DESCR("exponential");
/*
* This form of obj_description is now deprecated, since it will fail if
* OIDs are not unique across system catalogs. Use the other forms instead.
*/
-DATA(insert OID = 1348 ( obj_description PGNSP PGUID 14 f t t s 1 f 25 "26" 100 0 0 100 "select description from pg_description where objoid = $1 and objsubid = 0" - _null_ ));
+DATA(insert OID = 1348 ( obj_description PGNSP PGUID 14 f t f t f s 1 25 "26" 100 0 0 100 "select description from pg_description where objoid = $1 and objsubid = 0" - _null_ ));
DESCR("get description for object id (deprecated)");
-DATA(insert OID = 1349 ( oidvectortypes PGNSP PGUID 12 f t t s 1 f 25 "30" 100 0 0 100 oidvectortypes - _null_ ));
+DATA(insert OID = 1349 ( oidvectortypes PGNSP PGUID 12 f t f t f s 1 25 "30" 100 0 0 100 oidvectortypes - _null_ ));
DESCR("print type names of oidvector field");
-DATA(insert OID = 1350 ( timetz_in PGNSP PGUID 12 f t t s 1 f 1266 "0" 100 0 0 100 timetz_in - _null_ ));
+DATA(insert OID = 1350 ( timetz_in PGNSP PGUID 12 f t f t f s 1 1266 "0" 100 0 0 100 timetz_in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1351 ( timetz_out PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 timetz_out - _null_ ));
+DATA(insert OID = 1351 ( timetz_out PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 timetz_out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1352 ( timetz_eq PGNSP PGUID 12 f t t i 2 f 16 "1266 1266" 100 0 0 100 timetz_eq - _null_ ));
+DATA(insert OID = 1352 ( timetz_eq PGNSP PGUID 12 f t f t f i 2 16 "1266 1266" 100 0 0 100 timetz_eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 1353 ( timetz_ne PGNSP PGUID 12 f t t i 2 f 16 "1266 1266" 100 0 0 100 timetz_ne - _null_ ));
+DATA(insert OID = 1353 ( timetz_ne PGNSP PGUID 12 f t f t f i 2 16 "1266 1266" 100 0 0 100 timetz_ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 1354 ( timetz_lt PGNSP PGUID 12 f t t i 2 f 16 "1266 1266" 100 0 0 100 timetz_lt - _null_ ));
+DATA(insert OID = 1354 ( timetz_lt PGNSP PGUID 12 f t f t f i 2 16 "1266 1266" 100 0 0 100 timetz_lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 1355 ( timetz_le PGNSP PGUID 12 f t t i 2 f 16 "1266 1266" 100 0 0 100 timetz_le - _null_ ));
+DATA(insert OID = 1355 ( timetz_le PGNSP PGUID 12 f t f t f i 2 16 "1266 1266" 100 0 0 100 timetz_le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 1356 ( timetz_ge PGNSP PGUID 12 f t t i 2 f 16 "1266 1266" 100 0 0 100 timetz_ge - _null_ ));
+DATA(insert OID = 1356 ( timetz_ge PGNSP PGUID 12 f t f t f i 2 16 "1266 1266" 100 0 0 100 timetz_ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 1357 ( timetz_gt PGNSP PGUID 12 f t t i 2 f 16 "1266 1266" 100 0 0 100 timetz_gt - _null_ ));
+DATA(insert OID = 1357 ( timetz_gt PGNSP PGUID 12 f t f t f i 2 16 "1266 1266" 100 0 0 100 timetz_gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 1358 ( timetz_cmp PGNSP PGUID 12 f t t i 2 f 23 "1266 1266" 100 0 0 100 timetz_cmp - _null_ ));
+DATA(insert OID = 1358 ( timetz_cmp PGNSP PGUID 12 f t f t f i 2 23 "1266 1266" 100 0 0 100 timetz_cmp - _null_ ));
DESCR("less-equal-greater");
-DATA(insert OID = 1359 ( timestamptz PGNSP PGUID 12 f t t i 2 f 1184 "1082 1266" 100 0 0 100 datetimetz_timestamptz - _null_ ));
+DATA(insert OID = 1359 ( timestamptz PGNSP PGUID 12 f t f t f i 2 1184 "1082 1266" 100 0 0 100 datetimetz_timestamptz - _null_ ));
DESCR("convert date and time with time zone to timestamp with time zone");
-DATA(insert OID = 1362 ( time PGNSP PGUID 14 f t t i 1 f 1083 "1083" 100 0 0 100 "select $1" - _null_ ));
-DESCR("convert (noop)");
-DATA(insert OID = 1364 ( time PGNSP PGUID 14 f t t i 1 f 1083 "702" 100 0 0 100 "select time(cast($1 as timestamp without time zone))" - _null_ ));
+DATA(insert OID = 1364 ( time PGNSP PGUID 14 f t f t f i 1 1083 "702" 100 0 0 100 "select time(cast($1 as timestamp without time zone))" - _null_ ));
DESCR("convert abstime to time");
-DATA(insert OID = 1365 ( abstime PGNSP PGUID 14 f t t i 1 f 702 "702" 100 0 0 100 "select $1" - _null_ ));
-DESCR("convert (noop)");
-DATA(insert OID = 1367 ( reltime PGNSP PGUID 14 f t t i 1 f 703 "703" 100 0 0 100 "select $1" - _null_ ));
-DESCR("convert (noop)");
-DATA(insert OID = 1368 ( timestamptz PGNSP PGUID 14 f t t i 1 f 1184 "1184" 100 0 0 100 "select $1" - _null_ ));
-DESCR("convert (noop)");
-DATA(insert OID = 1369 ( interval PGNSP PGUID 14 f t t i 1 f 1186 "1186" 100 0 0 100 "select $1" - _null_ ));
-DESCR("convert (noop)");
-DATA(insert OID = 1370 ( interval PGNSP PGUID 12 f t t i 1 f 1186 "1083" 100 0 0 100 time_interval - _null_ ));
+DATA(insert OID = 1370 ( interval PGNSP PGUID 12 f t t t f i 1 1186 "1083" 100 0 0 100 time_interval - _null_ ));
DESCR("convert time to interval");
-DATA(insert OID = 1371 ( date PGNSP PGUID 14 f t t i 1 f 1082 "1082" 100 0 0 100 "select $1" - _null_ ));
-DESCR("convert (noop)");
-DATA(insert OID = 1372 ( char_length PGNSP PGUID 12 f t t i 1 f 23 "1042" 100 0 0 100 bpcharlen - _null_ ));
+DATA(insert OID = 1372 ( char_length PGNSP PGUID 12 f t f t f i 1 23 "1042" 100 0 0 100 bpcharlen - _null_ ));
DESCR("character length");
-DATA(insert OID = 1373 ( char_length PGNSP PGUID 12 f t t i 1 f 23 "1043" 100 0 0 100 varcharlen - _null_ ));
+DATA(insert OID = 1373 ( char_length PGNSP PGUID 12 f t f t f i 1 23 "1043" 100 0 0 100 varcharlen - _null_ ));
DESCR("character length");
-DATA(insert OID = 1374 ( octet_length PGNSP PGUID 12 f t t i 1 f 23 "25" 100 0 0 100 textoctetlen - _null_ ));
+DATA(insert OID = 1374 ( octet_length PGNSP PGUID 12 f t f t f i 1 23 "25" 100 0 0 100 textoctetlen - _null_ ));
DESCR("octet length");
-DATA(insert OID = 1375 ( octet_length PGNSP PGUID 12 f t t i 1 f 23 "1042" 100 0 0 100 bpcharoctetlen - _null_ ));
+DATA(insert OID = 1375 ( octet_length PGNSP PGUID 12 f t f t f i 1 23 "1042" 100 0 0 100 bpcharoctetlen - _null_ ));
DESCR("octet length");
-DATA(insert OID = 1376 ( octet_length PGNSP PGUID 12 f t t i 1 f 23 "1043" 100 0 0 100 varcharoctetlen - _null_ ));
+DATA(insert OID = 1376 ( octet_length PGNSP PGUID 12 f t f t f i 1 23 "1043" 100 0 0 100 varcharoctetlen - _null_ ));
DESCR("octet length");
-DATA(insert OID = 1377 ( time_larger PGNSP PGUID 12 f t t i 2 f 1083 "1083 1083" 100 0 0 100 time_larger - _null_ ));
+DATA(insert OID = 1377 ( time_larger PGNSP PGUID 12 f t f t f i 2 1083 "1083 1083" 100 0 0 100 time_larger - _null_ ));
DESCR("larger of two");
-DATA(insert OID = 1378 ( time_smaller PGNSP PGUID 12 f t t i 2 f 1083 "1083 1083" 100 0 0 100 time_smaller - _null_ ));
+DATA(insert OID = 1378 ( time_smaller PGNSP PGUID 12 f t f t f i 2 1083 "1083 1083" 100 0 0 100 time_smaller - _null_ ));
DESCR("smaller of two");
-DATA(insert OID = 1379 ( timetz_larger PGNSP PGUID 12 f t t i 2 f 1266 "1266 1266" 100 0 0 100 timetz_larger - _null_ ));
+DATA(insert OID = 1379 ( timetz_larger PGNSP PGUID 12 f t f t f i 2 1266 "1266 1266" 100 0 0 100 timetz_larger - _null_ ));
DESCR("larger of two");
-DATA(insert OID = 1380 ( timetz_smaller PGNSP PGUID 12 f t t i 2 f 1266 "1266 1266" 100 0 0 100 timetz_smaller - _null_ ));
+DATA(insert OID = 1380 ( timetz_smaller PGNSP PGUID 12 f t f t f i 2 1266 "1266 1266" 100 0 0 100 timetz_smaller - _null_ ));
DESCR("smaller of two");
-DATA(insert OID = 1381 ( char_length PGNSP PGUID 12 f t t i 1 f 23 "25" 100 0 0 100 textlen - _null_ ));
+DATA(insert OID = 1381 ( char_length PGNSP PGUID 12 f t f t f i 1 23 "25" 100 0 0 100 textlen - _null_ ));
DESCR("length");
-DATA(insert OID = 1382 ( date_part PGNSP PGUID 14 f t t s 2 f 701 "25 702" 100 0 0 100 "select date_part($1, timestamptz($2))" - _null_ ));
+DATA(insert OID = 1382 ( date_part PGNSP PGUID 14 f t f t f s 2 701 "25 702" 100 0 0 100 "select date_part($1, timestamptz($2))" - _null_ ));
DESCR("extract field from abstime");
-DATA(insert OID = 1383 ( date_part PGNSP PGUID 14 f t t s 2 f 701 "25 703" 100 0 0 100 "select date_part($1, cast($2 as interval))" - _null_ ));
+DATA(insert OID = 1383 ( date_part PGNSP PGUID 14 f t f t f s 2 701 "25 703" 100 0 0 100 "select date_part($1, cast($2 as interval))" - _null_ ));
DESCR("extract field from reltime");
-DATA(insert OID = 1384 ( date_part PGNSP PGUID 14 f t t i 2 f 701 "25 1082" 100 0 0 100 "select date_part($1, cast($2 as timestamp without time zone))" - _null_ ));
+DATA(insert OID = 1384 ( date_part PGNSP PGUID 14 f t f t f i 2 701 "25 1082" 100 0 0 100 "select date_part($1, cast($2 as timestamp without time zone))" - _null_ ));
DESCR("extract field from date");
-DATA(insert OID = 1385 ( date_part PGNSP PGUID 14 f t t i 2 f 701 "25 1083" 100 0 0 100 "select date_part($1, cast($2 as time with time zone))" - _null_ ));
+DATA(insert OID = 1385 ( date_part PGNSP PGUID 14 f t f t f i 2 701 "25 1083" 100 0 0 100 "select date_part($1, cast($2 as time with time zone))" - _null_ ));
DESCR("extract field from time");
-DATA(insert OID = 1386 ( age PGNSP PGUID 14 f t t s 1 f 1186 "1184" 100 0 0 100 "select age(cast(current_date as timestamp with time zone), $1)" - _null_ ));
+DATA(insert OID = 1386 ( age PGNSP PGUID 14 f t f t f s 1 1186 "1184" 100 0 0 100 "select age(cast(current_date as timestamp with time zone), $1)" - _null_ ));
DESCR("date difference from today preserving months and years");
-DATA(insert OID = 1387 ( timetz PGNSP PGUID 14 f t t i 1 f 1266 "1266" 100 0 0 100 "select $1" - _null_ ));
-DESCR("noop conversion");
-DATA(insert OID = 1388 ( timetz PGNSP PGUID 12 f t t s 1 f 1266 "1184" 100 0 0 100 timestamptz_timetz - _null_ ));
+DATA(insert OID = 1388 ( timetz PGNSP PGUID 12 f t f t f s 1 1266 "1184" 100 0 0 100 timestamptz_timetz - _null_ ));
DESCR("convert timestamp to timetz");
-DATA(insert OID = 1389 ( isfinite PGNSP PGUID 12 f t t i 1 f 16 "1184" 100 0 0 100 timestamp_finite - _null_ ));
+DATA(insert OID = 1389 ( isfinite PGNSP PGUID 12 f t f t f i 1 16 "1184" 100 0 0 100 timestamp_finite - _null_ ));
DESCR("boolean test");
-DATA(insert OID = 1390 ( isfinite PGNSP PGUID 12 f t t i 1 f 16 "1186" 100 0 0 100 interval_finite - _null_ ));
+DATA(insert OID = 1390 ( isfinite PGNSP PGUID 12 f t f t f i 1 16 "1186" 100 0 0 100 interval_finite - _null_ ));
DESCR("boolean test");
-DATA(insert OID = 1391 ( factorial PGNSP PGUID 12 f t t i 1 f 23 "21" 100 0 0 100 int2fac - _null_ ));
+DATA(insert OID = 1391 ( factorial PGNSP PGUID 12 f t f t f i 1 23 "21" 100 0 0 100 int2fac - _null_ ));
DESCR("factorial");
-DATA(insert OID = 1392 ( factorial PGNSP PGUID 12 f t t i 1 f 23 "23" 100 0 0 100 int4fac - _null_ ));
+DATA(insert OID = 1392 ( factorial PGNSP PGUID 12 f t f t f i 1 23 "23" 100 0 0 100 int4fac - _null_ ));
DESCR("factorial");
-DATA(insert OID = 1393 ( factorial PGNSP PGUID 12 f t t i 1 f 20 "20" 100 0 0 100 int8fac - _null_ ));
+DATA(insert OID = 1393 ( factorial PGNSP PGUID 12 f t f t f i 1 20 "20" 100 0 0 100 int8fac - _null_ ));
DESCR("factorial");
-DATA(insert OID = 1394 ( abs PGNSP PGUID 12 f t t i 1 f 700 "700" 100 0 0 100 float4abs - _null_ ));
+DATA(insert OID = 1394 ( abs PGNSP PGUID 12 f t f t f i 1 700 "700" 100 0 0 100 float4abs - _null_ ));
DESCR("absolute value");
-DATA(insert OID = 1395 ( abs PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 float8abs - _null_ ));
+DATA(insert OID = 1395 ( abs PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 float8abs - _null_ ));
DESCR("absolute value");
-DATA(insert OID = 1396 ( abs PGNSP PGUID 12 f t t i 1 f 20 "20" 100 0 0 100 int8abs - _null_ ));
+DATA(insert OID = 1396 ( abs PGNSP PGUID 12 f t f t f i 1 20 "20" 100 0 0 100 int8abs - _null_ ));
DESCR("absolute value");
-DATA(insert OID = 1397 ( abs PGNSP PGUID 12 f t t i 1 f 23 "23" 100 0 0 100 int4abs - _null_ ));
+DATA(insert OID = 1397 ( abs PGNSP PGUID 12 f t f t f i 1 23 "23" 100 0 0 100 int4abs - _null_ ));
DESCR("absolute value");
-DATA(insert OID = 1398 ( abs PGNSP PGUID 12 f t t i 1 f 21 "21" 100 0 0 100 int2abs - _null_ ));
+DATA(insert OID = 1398 ( abs PGNSP PGUID 12 f t f t f i 1 21 "21" 100 0 0 100 int2abs - _null_ ));
DESCR("absolute value");
/* OIDS 1400 - 1499 */
-DATA(insert OID = 1400 ( name PGNSP PGUID 12 f t t i 1 f 19 "1043" 100 0 0 100 text_name - _null_ ));
+DATA(insert OID = 1400 ( name PGNSP PGUID 12 f t t t f i 1 19 "1043" 100 0 0 100 text_name - _null_ ));
DESCR("convert varchar to name");
-DATA(insert OID = 1401 ( varchar PGNSP PGUID 12 f t t i 1 f 1043 "19" 100 0 0 100 name_text - _null_ ));
+DATA(insert OID = 1401 ( varchar PGNSP PGUID 12 f t t t f i 1 1043 "19" 100 0 0 100 name_text - _null_ ));
DESCR("convert name to varchar");
-DATA(insert OID = 1402 ( float4 PGNSP PGUID 14 f t t i 1 f 700 "700" 100 0 0 100 "select $1" - _null_ ));
-DESCR("convert float4 to float4 (no-op)");
-DATA(insert OID = 1403 ( int2 PGNSP PGUID 14 f t t i 1 f 21 "21" 100 0 0 100 "select $1" - _null_ ));
-DESCR("convert (no-op)");
-DATA(insert OID = 1404 ( float8 PGNSP PGUID 14 f t t i 1 f 701 "701" 100 0 0 100 "select $1" - _null_ ));
-DESCR("convert (no-op)");
-DATA(insert OID = 1405 ( int4 PGNSP PGUID 14 f t t i 1 f 23 "23" 100 0 0 100 "select $1" - _null_ ));
-DESCR("convert (no-op)");
-
-DATA(insert OID = 1406 ( isvertical PGNSP PGUID 12 f t t i 2 f 16 "600 600" 100 0 0 100 point_vert - _null_ ));
+DATA(insert OID = 1406 ( isvertical PGNSP PGUID 12 f t f t f i 2 16 "600 600" 100 0 0 100 point_vert - _null_ ));
DESCR("vertically aligned?");
-DATA(insert OID = 1407 ( ishorizontal PGNSP PGUID 12 f t t i 2 f 16 "600 600" 100 0 0 100 point_horiz - _null_ ));
+DATA(insert OID = 1407 ( ishorizontal PGNSP PGUID 12 f t f t f i 2 16 "600 600" 100 0 0 100 point_horiz - _null_ ));
DESCR("horizontally aligned?");
-DATA(insert OID = 1408 ( isparallel PGNSP PGUID 12 f t t i 2 f 16 "601 601" 100 0 0 100 lseg_parallel - _null_ ));
+DATA(insert OID = 1408 ( isparallel PGNSP PGUID 12 f t f t f i 2 16 "601 601" 100 0 0 100 lseg_parallel - _null_ ));
DESCR("parallel?");
-DATA(insert OID = 1409 ( isperp PGNSP PGUID 12 f t t i 2 f 16 "601 601" 100 0 0 100 lseg_perp - _null_ ));
+DATA(insert OID = 1409 ( isperp PGNSP PGUID 12 f t f t f i 2 16 "601 601" 100 0 0 100 lseg_perp - _null_ ));
DESCR("perpendicular?");
-DATA(insert OID = 1410 ( isvertical PGNSP PGUID 12 f t t i 1 f 16 "601" 100 0 0 100 lseg_vertical - _null_ ));
+DATA(insert OID = 1410 ( isvertical PGNSP PGUID 12 f t f t f i 1 16 "601" 100 0 0 100 lseg_vertical - _null_ ));
DESCR("vertical?");
-DATA(insert OID = 1411 ( ishorizontal PGNSP PGUID 12 f t t i 1 f 16 "601" 100 0 0 100 lseg_horizontal - _null_ ));
+DATA(insert OID = 1411 ( ishorizontal PGNSP PGUID 12 f t f t f i 1 16 "601" 100 0 0 100 lseg_horizontal - _null_ ));
DESCR("horizontal?");
-DATA(insert OID = 1412 ( isparallel PGNSP PGUID 12 f t t i 2 f 16 "628 628" 100 0 0 100 line_parallel - _null_ ));
+DATA(insert OID = 1412 ( isparallel PGNSP PGUID 12 f t f t f i 2 16 "628 628" 100 0 0 100 line_parallel - _null_ ));
DESCR("lines parallel?");
-DATA(insert OID = 1413 ( isperp PGNSP PGUID 12 f t t i 2 f 16 "628 628" 100 0 0 100 line_perp - _null_ ));
+DATA(insert OID = 1413 ( isperp PGNSP PGUID 12 f t f t f i 2 16 "628 628" 100 0 0 100 line_perp - _null_ ));
DESCR("lines perpendicular?");
-DATA(insert OID = 1414 ( isvertical PGNSP PGUID 12 f t t i 1 f 16 "628" 100 0 0 100 line_vertical - _null_ ));
+DATA(insert OID = 1414 ( isvertical PGNSP PGUID 12 f t f t f i 1 16 "628" 100 0 0 100 line_vertical - _null_ ));
DESCR("lines vertical?");
-DATA(insert OID = 1415 ( ishorizontal PGNSP PGUID 12 f t t i 1 f 16 "628" 100 0 0 100 line_horizontal - _null_ ));
+DATA(insert OID = 1415 ( ishorizontal PGNSP PGUID 12 f t f t f i 1 16 "628" 100 0 0 100 line_horizontal - _null_ ));
DESCR("lines horizontal?");
-DATA(insert OID = 1416 ( point PGNSP PGUID 12 f t t i 1 f 600 "718" 100 0 0 100 circle_center - _null_ ));
+DATA(insert OID = 1416 ( point PGNSP PGUID 12 f t f t f i 1 600 "718" 100 0 0 100 circle_center - _null_ ));
DESCR("center of");
-DATA(insert OID = 1417 ( isnottrue PGNSP PGUID 12 f t f i 1 f 16 "16" 100 0 0 100 isnottrue - _null_ ));
+DATA(insert OID = 1417 ( isnottrue PGNSP PGUID 12 f t f f f i 1 16 "16" 100 0 0 100 isnottrue - _null_ ));
DESCR("bool is not true (ie, false or unknown)");
-DATA(insert OID = 1418 ( isnotfalse PGNSP PGUID 12 f t f i 1 f 16 "16" 100 0 0 100 isnotfalse - _null_ ));
+DATA(insert OID = 1418 ( isnotfalse PGNSP PGUID 12 f t f f f i 1 16 "16" 100 0 0 100 isnotfalse - _null_ ));
DESCR("bool is not false (ie, true or unknown)");
-DATA(insert OID = 1419 ( time PGNSP PGUID 12 f t t i 1 f 1083 "1186" 100 0 0 100 interval_time - _null_ ));
+DATA(insert OID = 1419 ( time PGNSP PGUID 12 f t f t f i 1 1083 "1186" 100 0 0 100 interval_time - _null_ ));
DESCR("convert interval to time");
-DATA(insert OID = 1421 ( box PGNSP PGUID 12 f t t i 2 f 603 "600 600" 100 0 0 100 points_box - _null_ ));
+DATA(insert OID = 1421 ( box PGNSP PGUID 12 f t f t f i 2 603 "600 600" 100 0 0 100 points_box - _null_ ));
DESCR("convert points to box");
-DATA(insert OID = 1422 ( box_add PGNSP PGUID 12 f t t i 2 f 603 "603 600" 100 0 0 100 box_add - _null_ ));
+DATA(insert OID = 1422 ( box_add PGNSP PGUID 12 f t f t f i 2 603 "603 600" 100 0 0 100 box_add - _null_ ));
DESCR("add point to box (translate)");
-DATA(insert OID = 1423 ( box_sub PGNSP PGUID 12 f t t i 2 f 603 "603 600" 100 0 0 100 box_sub - _null_ ));
+DATA(insert OID = 1423 ( box_sub PGNSP PGUID 12 f t f t f i 2 603 "603 600" 100 0 0 100 box_sub - _null_ ));
DESCR("subtract point from box (translate)");
-DATA(insert OID = 1424 ( box_mul PGNSP PGUID 12 f t t i 2 f 603 "603 600" 100 0 0 100 box_mul - _null_ ));
+DATA(insert OID = 1424 ( box_mul PGNSP PGUID 12 f t f t f i 2 603 "603 600" 100 0 0 100 box_mul - _null_ ));
DESCR("multiply box by point (scale)");
-DATA(insert OID = 1425 ( box_div PGNSP PGUID 12 f t t i 2 f 603 "603 600" 100 0 0 100 box_div - _null_ ));
+DATA(insert OID = 1425 ( box_div PGNSP PGUID 12 f t f t f i 2 603 "603 600" 100 0 0 100 box_div - _null_ ));
DESCR("divide box by point (scale)");
-DATA(insert OID = 1426 ( path_contain_pt PGNSP PGUID 14 f t t i 2 f 16 "602 600" 100 0 0 100 "select on_ppath($2, $1)" - _null_ ));
+DATA(insert OID = 1426 ( path_contain_pt PGNSP PGUID 14 f t f t f i 2 16 "602 600" 100 0 0 100 "select on_ppath($2, $1)" - _null_ ));
DESCR("path contains point?");
-DATA(insert OID = 1428 ( poly_contain_pt PGNSP PGUID 12 f t t i 2 f 16 "604 600" 100 0 0 100 poly_contain_pt - _null_ ));
+DATA(insert OID = 1428 ( poly_contain_pt PGNSP PGUID 12 f t f t f i 2 16 "604 600" 100 0 0 100 poly_contain_pt - _null_ ));
DESCR("polygon contains point?");
-DATA(insert OID = 1429 ( pt_contained_poly PGNSP PGUID 12 f t t i 2 f 16 "600 604" 100 0 0 100 pt_contained_poly - _null_ ));
+DATA(insert OID = 1429 ( pt_contained_poly PGNSP PGUID 12 f t f t f i 2 16 "600 604" 100 0 0 100 pt_contained_poly - _null_ ));
DESCR("point contained by polygon?");
-DATA(insert OID = 1430 ( isclosed PGNSP PGUID 12 f t t i 1 f 16 "602" 100 0 0 100 path_isclosed - _null_ ));
+DATA(insert OID = 1430 ( isclosed PGNSP PGUID 12 f t f t f i 1 16 "602" 100 0 0 100 path_isclosed - _null_ ));
DESCR("path closed?");
-DATA(insert OID = 1431 ( isopen PGNSP PGUID 12 f t t i 1 f 16 "602" 100 0 0 100 path_isopen - _null_ ));
+DATA(insert OID = 1431 ( isopen PGNSP PGUID 12 f t f t f i 1 16 "602" 100 0 0 100 path_isopen - _null_ ));
DESCR("path open?");
-DATA(insert OID = 1432 ( path_npoints PGNSP PGUID 12 f t t i 1 f 23 "602" 100 0 0 100 path_npoints - _null_ ));
+DATA(insert OID = 1432 ( path_npoints PGNSP PGUID 12 f t f t f i 1 23 "602" 100 0 0 100 path_npoints - _null_ ));
DESCR("# points in path");
/* pclose and popen might better be named close and open, but that crashes initdb.
* - thomas 97/04/20
*/
-DATA(insert OID = 1433 ( pclose PGNSP PGUID 12 f t t i 1 f 602 "602" 100 0 0 100 path_close - _null_ ));
+DATA(insert OID = 1433 ( pclose PGNSP PGUID 12 f t f t f i 1 602 "602" 100 0 0 100 path_close - _null_ ));
DESCR("close path");
-DATA(insert OID = 1434 ( popen PGNSP PGUID 12 f t t i 1 f 602 "602" 100 0 0 100 path_open - _null_ ));
+DATA(insert OID = 1434 ( popen PGNSP PGUID 12 f t f t f i 1 602 "602" 100 0 0 100 path_open - _null_ ));
DESCR("open path");
-DATA(insert OID = 1435 ( path_add PGNSP PGUID 12 f t t i 2 f 602 "602 602" 100 0 0 100 path_add - _null_ ));
+DATA(insert OID = 1435 ( path_add PGNSP PGUID 12 f t f t f i 2 602 "602 602" 100 0 0 100 path_add - _null_ ));
DESCR("concatenate open paths");
-DATA(insert OID = 1436 ( path_add_pt PGNSP PGUID 12 f t t i 2 f 602 "602 600" 100 0 0 100 path_add_pt - _null_ ));
+DATA(insert OID = 1436 ( path_add_pt PGNSP PGUID 12 f t f t f i 2 602 "602 600" 100 0 0 100 path_add_pt - _null_ ));
DESCR("add (translate path)");
-DATA(insert OID = 1437 ( path_sub_pt PGNSP PGUID 12 f t t i 2 f 602 "602 600" 100 0 0 100 path_sub_pt - _null_ ));
+DATA(insert OID = 1437 ( path_sub_pt PGNSP PGUID 12 f t f t f i 2 602 "602 600" 100 0 0 100 path_sub_pt - _null_ ));
DESCR("subtract (translate path)");
-DATA(insert OID = 1438 ( path_mul_pt PGNSP PGUID 12 f t t i 2 f 602 "602 600" 100 0 0 100 path_mul_pt - _null_ ));
+DATA(insert OID = 1438 ( path_mul_pt PGNSP PGUID 12 f t f t f i 2 602 "602 600" 100 0 0 100 path_mul_pt - _null_ ));
DESCR("multiply (rotate/scale path)");
-DATA(insert OID = 1439 ( path_div_pt PGNSP PGUID 12 f t t i 2 f 602 "602 600" 100 0 0 100 path_div_pt - _null_ ));
+DATA(insert OID = 1439 ( path_div_pt PGNSP PGUID 12 f t f t f i 2 602 "602 600" 100 0 0 100 path_div_pt - _null_ ));
DESCR("divide (rotate/scale path)");
-DATA(insert OID = 1440 ( point PGNSP PGUID 12 f t t i 2 f 600 "701 701" 100 0 0 100 construct_point - _null_ ));
+DATA(insert OID = 1440 ( point PGNSP PGUID 12 f t f t f i 2 600 "701 701" 100 0 0 100 construct_point - _null_ ));
DESCR("convert x, y to point");
-DATA(insert OID = 1441 ( point_add PGNSP PGUID 12 f t t i 2 f 600 "600 600" 100 0 0 100 point_add - _null_ ));
+DATA(insert OID = 1441 ( point_add PGNSP PGUID 12 f t f t f i 2 600 "600 600" 100 0 0 100 point_add - _null_ ));
DESCR("add points (translate)");
-DATA(insert OID = 1442 ( point_sub PGNSP PGUID 12 f t t i 2 f 600 "600 600" 100 0 0 100 point_sub - _null_ ));
+DATA(insert OID = 1442 ( point_sub PGNSP PGUID 12 f t f t f i 2 600 "600 600" 100 0 0 100 point_sub - _null_ ));
DESCR("subtract points (translate)");
-DATA(insert OID = 1443 ( point_mul PGNSP PGUID 12 f t t i 2 f 600 "600 600" 100 0 0 100 point_mul - _null_ ));
+DATA(insert OID = 1443 ( point_mul PGNSP PGUID 12 f t f t f i 2 600 "600 600" 100 0 0 100 point_mul - _null_ ));
DESCR("multiply points (scale/rotate)");
-DATA(insert OID = 1444 ( point_div PGNSP PGUID 12 f t t i 2 f 600 "600 600" 100 0 0 100 point_div - _null_ ));
+DATA(insert OID = 1444 ( point_div PGNSP PGUID 12 f t f t f i 2 600 "600 600" 100 0 0 100 point_div - _null_ ));
DESCR("divide points (scale/rotate)");
-DATA(insert OID = 1445 ( poly_npoints PGNSP PGUID 12 f t t i 1 f 23 "604" 100 0 0 100 poly_npoints - _null_ ));
+DATA(insert OID = 1445 ( poly_npoints PGNSP PGUID 12 f t f t f i 1 23 "604" 100 0 0 100 poly_npoints - _null_ ));
DESCR("number of points in polygon");
-DATA(insert OID = 1446 ( box PGNSP PGUID 12 f t t i 1 f 603 "604" 100 0 0 100 poly_box - _null_ ));
+DATA(insert OID = 1446 ( box PGNSP PGUID 12 f t f t f i 1 603 "604" 100 0 0 100 poly_box - _null_ ));
DESCR("convert polygon to bounding box");
-DATA(insert OID = 1447 ( path PGNSP PGUID 12 f t t i 1 f 602 "604" 100 0 0 100 poly_path - _null_ ));
+DATA(insert OID = 1447 ( path PGNSP PGUID 12 f t f t f i 1 602 "604" 100 0 0 100 poly_path - _null_ ));
DESCR("convert polygon to path");
-DATA(insert OID = 1448 ( polygon PGNSP PGUID 12 f t t i 1 f 604 "603" 100 0 0 100 box_poly - _null_ ));
+DATA(insert OID = 1448 ( polygon PGNSP PGUID 12 f t f t f i 1 604 "603" 100 0 0 100 box_poly - _null_ ));
DESCR("convert box to polygon");
-DATA(insert OID = 1449 ( polygon PGNSP PGUID 12 f t t i 1 f 604 "602" 100 0 0 100 path_poly - _null_ ));
+DATA(insert OID = 1449 ( polygon PGNSP PGUID 12 f t f t f i 1 604 "602" 100 0 0 100 path_poly - _null_ ));
DESCR("convert path to polygon");
-DATA(insert OID = 1450 ( circle_in PGNSP PGUID 12 f t t i 1 f 718 "0" 100 0 0 100 circle_in - _null_ ));
+DATA(insert OID = 1450 ( circle_in PGNSP PGUID 12 f t f t f i 1 718 "0" 100 0 0 100 circle_in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1451 ( circle_out PGNSP PGUID 12 f t t i 1 f 23 "718" 100 0 0 100 circle_out - _null_ ));
+DATA(insert OID = 1451 ( circle_out PGNSP PGUID 12 f t f t f i 1 23 "718" 100 0 0 100 circle_out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1452 ( circle_same PGNSP PGUID 12 f t t i 2 f 16 "718 718" 100 0 0 100 circle_same - _null_ ));
+DATA(insert OID = 1452 ( circle_same PGNSP PGUID 12 f t f t f i 2 16 "718 718" 100 0 0 100 circle_same - _null_ ));
DESCR("same as");
-DATA(insert OID = 1453 ( circle_contain PGNSP PGUID 12 f t t i 2 f 16 "718 718" 100 0 0 100 circle_contain - _null_ ));
+DATA(insert OID = 1453 ( circle_contain PGNSP PGUID 12 f t f t f i 2 16 "718 718" 100 0 0 100 circle_contain - _null_ ));
DESCR("contains");
-DATA(insert OID = 1454 ( circle_left PGNSP PGUID 12 f t t i 2 f 16 "718 718" 100 0 0 100 circle_left - _null_ ));
+DATA(insert OID = 1454 ( circle_left PGNSP PGUID 12 f t f t f i 2 16 "718 718" 100 0 0 100 circle_left - _null_ ));
DESCR("is left of");
-DATA(insert OID = 1455 ( circle_overleft PGNSP PGUID 12 f t t i 2 f 16 "718 718" 100 0 0 100 circle_overleft - _null_ ));
+DATA(insert OID = 1455 ( circle_overleft PGNSP PGUID 12 f t f t f i 2 16 "718 718" 100 0 0 100 circle_overleft - _null_ ));
DESCR("overlaps, but does not extend to right of");
-DATA(insert OID = 1456 ( circle_overright PGNSP PGUID 12 f t t i 2 f 16 "718 718" 100 0 0 100 circle_overright - _null_ ));
+DATA(insert OID = 1456 ( circle_overright PGNSP PGUID 12 f t f t f i 2 16 "718 718" 100 0 0 100 circle_overright - _null_ ));
DESCR("");
-DATA(insert OID = 1457 ( circle_right PGNSP PGUID 12 f t t i 2 f 16 "718 718" 100 0 0 100 circle_right - _null_ ));
+DATA(insert OID = 1457 ( circle_right PGNSP PGUID 12 f t f t f i 2 16 "718 718" 100 0 0 100 circle_right - _null_ ));
DESCR("is right of");
-DATA(insert OID = 1458 ( circle_contained PGNSP PGUID 12 f t t i 2 f 16 "718 718" 100 0 0 100 circle_contained - _null_ ));
+DATA(insert OID = 1458 ( circle_contained PGNSP PGUID 12 f t f t f i 2 16 "718 718" 100 0 0 100 circle_contained - _null_ ));
DESCR("");
-DATA(insert OID = 1459 ( circle_overlap PGNSP PGUID 12 f t t i 2 f 16 "718 718" 100 0 0 100 circle_overlap - _null_ ));
+DATA(insert OID = 1459 ( circle_overlap PGNSP PGUID 12 f t f t f i 2 16 "718 718" 100 0 0 100 circle_overlap - _null_ ));
DESCR("overlaps");
-DATA(insert OID = 1460 ( circle_below PGNSP PGUID 12 f t t i 2 f 16 "718 718" 100 0 0 100 circle_below - _null_ ));
+DATA(insert OID = 1460 ( circle_below PGNSP PGUID 12 f t f t f i 2 16 "718 718" 100 0 0 100 circle_below - _null_ ));
DESCR("is below");
-DATA(insert OID = 1461 ( circle_above PGNSP PGUID 12 f t t i 2 f 16 "718 718" 100 0 0 100 circle_above - _null_ ));
+DATA(insert OID = 1461 ( circle_above PGNSP PGUID 12 f t f t f i 2 16 "718 718" 100 0 0 100 circle_above - _null_ ));
DESCR("is above");
-DATA(insert OID = 1462 ( circle_eq PGNSP PGUID 12 f t t i 2 f 16 "718 718" 100 0 0 100 circle_eq - _null_ ));
+DATA(insert OID = 1462 ( circle_eq PGNSP PGUID 12 f t f t f i 2 16 "718 718" 100 0 0 100 circle_eq - _null_ ));
DESCR("equal by area");
-DATA(insert OID = 1463 ( circle_ne PGNSP PGUID 12 f t t i 2 f 16 "718 718" 100 0 0 100 circle_ne - _null_ ));
+DATA(insert OID = 1463 ( circle_ne PGNSP PGUID 12 f t f t f i 2 16 "718 718" 100 0 0 100 circle_ne - _null_ ));
DESCR("not equal by area");
-DATA(insert OID = 1464 ( circle_lt PGNSP PGUID 12 f t t i 2 f 16 "718 718" 100 0 0 100 circle_lt - _null_ ));
+DATA(insert OID = 1464 ( circle_lt PGNSP PGUID 12 f t f t f i 2 16 "718 718" 100 0 0 100 circle_lt - _null_ ));
DESCR("less-than by area");
-DATA(insert OID = 1465 ( circle_gt PGNSP PGUID 12 f t t i 2 f 16 "718 718" 100 0 0 100 circle_gt - _null_ ));
+DATA(insert OID = 1465 ( circle_gt PGNSP PGUID 12 f t f t f i 2 16 "718 718" 100 0 0 100 circle_gt - _null_ ));
DESCR("greater-than by area");
-DATA(insert OID = 1466 ( circle_le PGNSP PGUID 12 f t t i 2 f 16 "718 718" 100 0 0 100 circle_le - _null_ ));
+DATA(insert OID = 1466 ( circle_le PGNSP PGUID 12 f t f t f i 2 16 "718 718" 100 0 0 100 circle_le - _null_ ));
DESCR("less-than-or-equal by area");
-DATA(insert OID = 1467 ( circle_ge PGNSP PGUID 12 f t t i 2 f 16 "718 718" 100 0 0 100 circle_ge - _null_ ));
+DATA(insert OID = 1467 ( circle_ge PGNSP PGUID 12 f t f t f i 2 16 "718 718" 100 0 0 100 circle_ge - _null_ ));
DESCR("greater-than-or-equal by area");
-DATA(insert OID = 1468 ( area PGNSP PGUID 12 f t t i 1 f 701 "718" 100 0 0 100 circle_area - _null_ ));
+DATA(insert OID = 1468 ( area PGNSP PGUID 12 f t f t f i 1 701 "718" 100 0 0 100 circle_area - _null_ ));
DESCR("area of circle");
-DATA(insert OID = 1469 ( diameter PGNSP PGUID 12 f t t i 1 f 701 "718" 100 0 0 100 circle_diameter - _null_ ));
+DATA(insert OID = 1469 ( diameter PGNSP PGUID 12 f t f t f i 1 701 "718" 100 0 0 100 circle_diameter - _null_ ));
DESCR("diameter of circle");
-DATA(insert OID = 1470 ( radius PGNSP PGUID 12 f t t i 1 f 701 "718" 100 0 0 100 circle_radius - _null_ ));
+DATA(insert OID = 1470 ( radius PGNSP PGUID 12 f t f t f i 1 701 "718" 100 0 0 100 circle_radius - _null_ ));
DESCR("radius of circle");
-DATA(insert OID = 1471 ( circle_distance PGNSP PGUID 12 f t t i 2 f 701 "718 718" 100 0 0 100 circle_distance - _null_ ));
+DATA(insert OID = 1471 ( circle_distance PGNSP PGUID 12 f t f t f i 2 701 "718 718" 100 0 0 100 circle_distance - _null_ ));
DESCR("distance between");
-DATA(insert OID = 1472 ( circle_center PGNSP PGUID 12 f t t i 1 f 600 "718" 100 0 0 100 circle_center - _null_ ));
+DATA(insert OID = 1472 ( circle_center PGNSP PGUID 12 f t f t f i 1 600 "718" 100 0 0 100 circle_center - _null_ ));
DESCR("center of");
-DATA(insert OID = 1473 ( circle PGNSP PGUID 12 f t t i 2 f 718 "600 701" 100 0 0 100 cr_circle - _null_ ));
+DATA(insert OID = 1473 ( circle PGNSP PGUID 12 f t f t f i 2 718 "600 701" 100 0 0 100 cr_circle - _null_ ));
DESCR("convert point and radius to circle");
-DATA(insert OID = 1474 ( circle PGNSP PGUID 12 f t t i 1 f 718 "604" 100 0 0 100 poly_circle - _null_ ));
+DATA(insert OID = 1474 ( circle PGNSP PGUID 12 f t f t f i 1 718 "604" 100 0 0 100 poly_circle - _null_ ));
DESCR("convert polygon to circle");
-DATA(insert OID = 1475 ( polygon PGNSP PGUID 12 f t t i 2 f 604 "23 718" 100 0 0 100 circle_poly - _null_ ));
+DATA(insert OID = 1475 ( polygon PGNSP PGUID 12 f t f t f i 2 604 "23 718" 100 0 0 100 circle_poly - _null_ ));
DESCR("convert vertex count and circle to polygon");
-DATA(insert OID = 1476 ( dist_pc PGNSP PGUID 12 f t t i 2 f 701 "600 718" 100 0 0 100 dist_pc - _null_ ));
+DATA(insert OID = 1476 ( dist_pc PGNSP PGUID 12 f t f t f i 2 701 "600 718" 100 0 0 100 dist_pc - _null_ ));
DESCR("distance between point and circle");
-DATA(insert OID = 1477 ( circle_contain_pt PGNSP PGUID 12 f t t i 2 f 16 "718 600" 100 0 0 100 circle_contain_pt - _null_ ));
+DATA(insert OID = 1477 ( circle_contain_pt PGNSP PGUID 12 f t f t f i 2 16 "718 600" 100 0 0 100 circle_contain_pt - _null_ ));
DESCR("circle contains point?");
-DATA(insert OID = 1478 ( pt_contained_circle PGNSP PGUID 12 f t t i 2 f 16 "600 718" 100 0 0 100 pt_contained_circle - _null_ ));
+DATA(insert OID = 1478 ( pt_contained_circle PGNSP PGUID 12 f t f t f i 2 16 "600 718" 100 0 0 100 pt_contained_circle - _null_ ));
DESCR("point inside circle?");
-DATA(insert OID = 1479 ( circle PGNSP PGUID 12 f t t i 1 f 718 "603" 100 0 0 100 box_circle - _null_ ));
+DATA(insert OID = 1479 ( circle PGNSP PGUID 12 f t f t f i 1 718 "603" 100 0 0 100 box_circle - _null_ ));
DESCR("convert box to circle");
-DATA(insert OID = 1480 ( box PGNSP PGUID 12 f t t i 1 f 603 "718" 100 0 0 100 circle_box - _null_ ));
+DATA(insert OID = 1480 ( box PGNSP PGUID 12 f t f t f i 1 603 "718" 100 0 0 100 circle_box - _null_ ));
DESCR("convert circle to box");
-DATA(insert OID = 1481 ( tinterval PGNSP PGUID 12 f t t i 2 f 704 "702 702" 100 0 0 100 mktinterval - _null_ ));
+DATA(insert OID = 1481 ( tinterval PGNSP PGUID 12 f t f t f i 2 704 "702 702" 100 0 0 100 mktinterval - _null_ ));
DESCR("convert to tinterval");
-DATA(insert OID = 1482 ( lseg_ne PGNSP PGUID 12 f t t i 2 f 16 "601 601" 100 0 0 100 lseg_ne - _null_ ));
+DATA(insert OID = 1482 ( lseg_ne PGNSP PGUID 12 f t f t f i 2 16 "601 601" 100 0 0 100 lseg_ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 1483 ( lseg_lt PGNSP PGUID 12 f t t i 2 f 16 "601 601" 100 0 0 100 lseg_lt - _null_ ));
+DATA(insert OID = 1483 ( lseg_lt PGNSP PGUID 12 f t f t f i 2 16 "601 601" 100 0 0 100 lseg_lt - _null_ ));
DESCR("less-than by length");
-DATA(insert OID = 1484 ( lseg_le PGNSP PGUID 12 f t t i 2 f 16 "601 601" 100 0 0 100 lseg_le - _null_ ));
+DATA(insert OID = 1484 ( lseg_le PGNSP PGUID 12 f t f t f i 2 16 "601 601" 100 0 0 100 lseg_le - _null_ ));
DESCR("less-than-or-equal by length");
-DATA(insert OID = 1485 ( lseg_gt PGNSP PGUID 12 f t t i 2 f 16 "601 601" 100 0 0 100 lseg_gt - _null_ ));
+DATA(insert OID = 1485 ( lseg_gt PGNSP PGUID 12 f t f t f i 2 16 "601 601" 100 0 0 100 lseg_gt - _null_ ));
DESCR("greater-than by length");
-DATA(insert OID = 1486 ( lseg_ge PGNSP PGUID 12 f t t i 2 f 16 "601 601" 100 0 0 100 lseg_ge - _null_ ));
+DATA(insert OID = 1486 ( lseg_ge PGNSP PGUID 12 f t f t f i 2 16 "601 601" 100 0 0 100 lseg_ge - _null_ ));
DESCR("greater-than-or-equal by length");
-DATA(insert OID = 1487 ( lseg_length PGNSP PGUID 12 f t t i 1 f 701 "601" 100 0 0 100 lseg_length - _null_ ));
+DATA(insert OID = 1487 ( lseg_length PGNSP PGUID 12 f t f t f i 1 701 "601" 100 0 0 100 lseg_length - _null_ ));
DESCR("distance between endpoints");
-DATA(insert OID = 1488 ( close_ls PGNSP PGUID 12 f t t i 2 f 600 "628 601" 100 0 0 100 close_ls - _null_ ));
+DATA(insert OID = 1488 ( close_ls PGNSP PGUID 12 f t f t f i 2 600 "628 601" 100 0 0 100 close_ls - _null_ ));
DESCR("closest point to line on line segment");
-DATA(insert OID = 1489 ( close_lseg PGNSP PGUID 12 f t t i 2 f 600 "601 601" 100 0 0 100 close_lseg - _null_ ));
+DATA(insert OID = 1489 ( close_lseg PGNSP PGUID 12 f t f t f i 2 600 "601 601" 100 0 0 100 close_lseg - _null_ ));
DESCR("closest point to line segment on line segment");
-DATA(insert OID = 1490 ( line_in PGNSP PGUID 12 f t t i 1 f 628 "0" 100 0 0 100 line_in - _null_ ));
+DATA(insert OID = 1490 ( line_in PGNSP PGUID 12 f t f t f i 1 628 "0" 100 0 0 100 line_in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1491 ( line_out PGNSP PGUID 12 f t t i 1 f 23 "628" 100 0 0 100 line_out - _null_ ));
+DATA(insert OID = 1491 ( line_out PGNSP PGUID 12 f t f t f i 1 23 "628" 100 0 0 100 line_out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1492 ( line_eq PGNSP PGUID 12 f t t i 2 f 16 "628 628" 100 0 0 100 line_eq - _null_ ));
+DATA(insert OID = 1492 ( line_eq PGNSP PGUID 12 f t f t f i 2 16 "628 628" 100 0 0 100 line_eq - _null_ ));
DESCR("lines equal?");
-DATA(insert OID = 1493 ( line PGNSP PGUID 12 f t t i 2 f 628 "600 600" 100 0 0 100 line_construct_pp - _null_ ));
+DATA(insert OID = 1493 ( line PGNSP PGUID 12 f t f t f i 2 628 "600 600" 100 0 0 100 line_construct_pp - _null_ ));
DESCR("line from points");
-DATA(insert OID = 1494 ( line_interpt PGNSP PGUID 12 f t t i 2 f 600 "628 628" 100 0 0 100 line_interpt - _null_ ));
+DATA(insert OID = 1494 ( line_interpt PGNSP PGUID 12 f t f t f i 2 600 "628 628" 100 0 0 100 line_interpt - _null_ ));
DESCR("intersection point");
-DATA(insert OID = 1495 ( line_intersect PGNSP PGUID 12 f t t i 2 f 16 "628 628" 100 0 0 100 line_intersect - _null_ ));
+DATA(insert OID = 1495 ( line_intersect PGNSP PGUID 12 f t f t f i 2 16 "628 628" 100 0 0 100 line_intersect - _null_ ));
DESCR("lines intersect?");
-DATA(insert OID = 1496 ( line_parallel PGNSP PGUID 12 f t t i 2 f 16 "628 628" 100 0 0 100 line_parallel - _null_ ));
+DATA(insert OID = 1496 ( line_parallel PGNSP PGUID 12 f t f t f i 2 16 "628 628" 100 0 0 100 line_parallel - _null_ ));
DESCR("lines parallel?");
-DATA(insert OID = 1497 ( line_perp PGNSP PGUID 12 f t t i 2 f 16 "628 628" 100 0 0 100 line_perp - _null_ ));
+DATA(insert OID = 1497 ( line_perp PGNSP PGUID 12 f t f t f i 2 16 "628 628" 100 0 0 100 line_perp - _null_ ));
DESCR("lines perpendicular?");
-DATA(insert OID = 1498 ( line_vertical PGNSP PGUID 12 f t t i 1 f 16 "628" 100 0 0 100 line_vertical - _null_ ));
+DATA(insert OID = 1498 ( line_vertical PGNSP PGUID 12 f t f t f i 1 16 "628" 100 0 0 100 line_vertical - _null_ ));
DESCR("lines vertical?");
-DATA(insert OID = 1499 ( line_horizontal PGNSP PGUID 12 f t t i 1 f 16 "628" 100 0 0 100 line_horizontal - _null_ ));
+DATA(insert OID = 1499 ( line_horizontal PGNSP PGUID 12 f t f t f i 1 16 "628" 100 0 0 100 line_horizontal - _null_ ));
DESCR("lines horizontal?");
/* OIDS 1500 - 1599 */
-DATA(insert OID = 1530 ( length PGNSP PGUID 12 f t t i 1 f 701 "601" 100 0 0 100 lseg_length - _null_ ));
+DATA(insert OID = 1530 ( length PGNSP PGUID 12 f t f t f i 1 701 "601" 100 0 0 100 lseg_length - _null_ ));
DESCR("distance between endpoints");
-DATA(insert OID = 1531 ( length PGNSP PGUID 12 f t t i 1 f 701 "602" 100 0 0 100 path_length - _null_ ));
+DATA(insert OID = 1531 ( length PGNSP PGUID 12 f t f t f i 1 701 "602" 100 0 0 100 path_length - _null_ ));
DESCR("sum of path segments");
-DATA(insert OID = 1532 ( point PGNSP PGUID 12 f t t i 1 f 600 "601" 100 0 0 100 lseg_center - _null_ ));
+DATA(insert OID = 1532 ( point PGNSP PGUID 12 f t f t f i 1 600 "601" 100 0 0 100 lseg_center - _null_ ));
DESCR("center of");
-DATA(insert OID = 1533 ( point PGNSP PGUID 12 f t t i 1 f 600 "602" 100 0 0 100 path_center - _null_ ));
+DATA(insert OID = 1533 ( point PGNSP PGUID 12 f t f t f i 1 600 "602" 100 0 0 100 path_center - _null_ ));
DESCR("center of");
-DATA(insert OID = 1534 ( point PGNSP PGUID 12 f t t i 1 f 600 "603" 100 0 0 100 box_center - _null_ ));
+DATA(insert OID = 1534 ( point PGNSP PGUID 12 f t f t f i 1 600 "603" 100 0 0 100 box_center - _null_ ));
DESCR("center of");
-DATA(insert OID = 1540 ( point PGNSP PGUID 12 f t t i 1 f 600 "604" 100 0 0 100 poly_center - _null_ ));
+DATA(insert OID = 1540 ( point PGNSP PGUID 12 f t f t f i 1 600 "604" 100 0 0 100 poly_center - _null_ ));
DESCR("center of");
-DATA(insert OID = 1541 ( lseg PGNSP PGUID 12 f t t i 1 f 601 "603" 100 0 0 100 box_diagonal - _null_ ));
+DATA(insert OID = 1541 ( lseg PGNSP PGUID 12 f t f t f i 1 601 "603" 100 0 0 100 box_diagonal - _null_ ));
DESCR("diagonal of");
-DATA(insert OID = 1542 ( center PGNSP PGUID 12 f t t i 1 f 600 "603" 100 0 0 100 box_center - _null_ ));
+DATA(insert OID = 1542 ( center PGNSP PGUID 12 f t f t f i 1 600 "603" 100 0 0 100 box_center - _null_ ));
DESCR("center of");
-DATA(insert OID = 1543 ( center PGNSP PGUID 12 f t t i 1 f 600 "718" 100 0 0 100 circle_center - _null_ ));
+DATA(insert OID = 1543 ( center PGNSP PGUID 12 f t f t f i 1 600 "718" 100 0 0 100 circle_center - _null_ ));
DESCR("center of");
-DATA(insert OID = 1544 ( polygon PGNSP PGUID 14 f t t i 1 f 604 "718" 100 0 0 100 "select polygon(12, $1)" - _null_ ));
+DATA(insert OID = 1544 ( polygon PGNSP PGUID 14 f t f t f i 1 604 "718" 100 0 0 100 "select polygon(12, $1)" - _null_ ));
DESCR("convert circle to 12-vertex polygon");
-DATA(insert OID = 1545 ( npoints PGNSP PGUID 12 f t t i 1 f 23 "602" 100 0 0 100 path_npoints - _null_ ));
+DATA(insert OID = 1545 ( npoints PGNSP PGUID 12 f t f t f i 1 23 "602" 100 0 0 100 path_npoints - _null_ ));
DESCR("# points in path");
-DATA(insert OID = 1556 ( npoints PGNSP PGUID 12 f t t i 1 f 23 "604" 100 0 0 100 poly_npoints - _null_ ));
+DATA(insert OID = 1556 ( npoints PGNSP PGUID 12 f t f t f i 1 23 "604" 100 0 0 100 poly_npoints - _null_ ));
DESCR("number of points in polygon");
-DATA(insert OID = 1564 ( bit_in PGNSP PGUID 12 f t t i 1 f 1560 "0" 100 0 0 100 bit_in - _null_ ));
+DATA(insert OID = 1564 ( bit_in PGNSP PGUID 12 f t f t f i 1 1560 "0" 100 0 0 100 bit_in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1565 ( bit_out PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 bit_out - _null_ ));
+DATA(insert OID = 1565 ( bit_out PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 bit_out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1569 ( like PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100 textlike - _null_ ));
+DATA(insert OID = 1569 ( like PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100 textlike - _null_ ));
DESCR("matches LIKE expression");
-DATA(insert OID = 1570 ( notlike PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100 textnlike - _null_ ));
+DATA(insert OID = 1570 ( notlike PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100 textnlike - _null_ ));
DESCR("does not match LIKE expression");
-DATA(insert OID = 1571 ( like PGNSP PGUID 12 f t t i 2 f 16 "19 25" 100 0 0 100 namelike - _null_ ));
+DATA(insert OID = 1571 ( like PGNSP PGUID 12 f t f t f i 2 16 "19 25" 100 0 0 100 namelike - _null_ ));
DESCR("matches LIKE expression");
-DATA(insert OID = 1572 ( notlike PGNSP PGUID 12 f t t i 2 f 16 "19 25" 100 0 0 100 namenlike - _null_ ));
+DATA(insert OID = 1572 ( notlike PGNSP PGUID 12 f t f t f i 2 16 "19 25" 100 0 0 100 namenlike - _null_ ));
DESCR("does not match LIKE expression");
-DATA(insert OID = 1573 ( int8 PGNSP PGUID 14 f t t i 1 f 20 "20" 100 0 0 100 "select $1" - _null_ ));
-DESCR("convert int8 to int8 (no-op)");
/* SEQUENCEs nextval & currval functions */
-DATA(insert OID = 1574 ( nextval PGNSP PGUID 12 f t t v 1 f 20 "25" 100 0 0 100 nextval - _null_ ));
+DATA(insert OID = 1574 ( nextval PGNSP PGUID 12 f t f t f v 1 20 "25" 100 0 0 100 nextval - _null_ ));
DESCR("sequence next value");
-DATA(insert OID = 1575 ( currval PGNSP PGUID 12 f t t v 1 f 20 "25" 100 0 0 100 currval - _null_ ));
+DATA(insert OID = 1575 ( currval PGNSP PGUID 12 f t f t f v 1 20 "25" 100 0 0 100 currval - _null_ ));
DESCR("sequence current value");
-DATA(insert OID = 1576 ( setval PGNSP PGUID 12 f t t v 2 f 20 "25 20" 100 0 0 100 setval - _null_ ));
+DATA(insert OID = 1576 ( setval PGNSP PGUID 12 f t f t f v 2 20 "25 20" 100 0 0 100 setval - _null_ ));
DESCR("set sequence value");
-DATA(insert OID = 1765 ( setval PGNSP PGUID 12 f t t v 3 f 20 "25 20 16" 100 0 0 100 setval_and_iscalled - _null_ ));
+DATA(insert OID = 1765 ( setval PGNSP PGUID 12 f t f t f v 3 20 "25 20 16" 100 0 0 100 setval_and_iscalled - _null_ ));
DESCR("set sequence value and iscalled status");
-DATA(insert OID = 1579 ( varbit_in PGNSP PGUID 12 f t t i 1 f 1562 "0" 100 0 0 100 varbit_in - _null_ ));
+DATA(insert OID = 1579 ( varbit_in PGNSP PGUID 12 f t f t f i 1 1562 "0" 100 0 0 100 varbit_in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1580 ( varbit_out PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 varbit_out - _null_ ));
+DATA(insert OID = 1580 ( varbit_out PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 varbit_out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1581 ( biteq PGNSP PGUID 12 f t t i 2 f 16 "1560 1560" 100 0 0 100 biteq - _null_ ));
+DATA(insert OID = 1581 ( biteq PGNSP PGUID 12 f t f t f i 2 16 "1560 1560" 100 0 0 100 biteq - _null_ ));
DESCR("equal");
-DATA(insert OID = 1582 ( bitne PGNSP PGUID 12 f t t i 2 f 16 "1560 1560" 100 0 0 100 bitne - _null_ ));
+DATA(insert OID = 1582 ( bitne PGNSP PGUID 12 f t f t f i 2 16 "1560 1560" 100 0 0 100 bitne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 1592 ( bitge PGNSP PGUID 12 f t t i 2 f 16 "1560 1560" 100 0 0 100 bitge - _null_ ));
+DATA(insert OID = 1592 ( bitge PGNSP PGUID 12 f t f t f i 2 16 "1560 1560" 100 0 0 100 bitge - _null_ ));
DESCR("greater than or equal");
-DATA(insert OID = 1593 ( bitgt PGNSP PGUID 12 f t t i 2 f 16 "1560 1560" 100 0 0 100 bitgt - _null_ ));
+DATA(insert OID = 1593 ( bitgt PGNSP PGUID 12 f t f t f i 2 16 "1560 1560" 100 0 0 100 bitgt - _null_ ));
DESCR("greater than");
-DATA(insert OID = 1594 ( bitle PGNSP PGUID 12 f t t i 2 f 16 "1560 1560" 100 0 0 100 bitle - _null_ ));
+DATA(insert OID = 1594 ( bitle PGNSP PGUID 12 f t f t f i 2 16 "1560 1560" 100 0 0 100 bitle - _null_ ));
DESCR("less than or equal");
-DATA(insert OID = 1595 ( bitlt PGNSP PGUID 12 f t t i 2 f 16 "1560 1560" 100 0 0 100 bitlt - _null_ ));
+DATA(insert OID = 1595 ( bitlt PGNSP PGUID 12 f t f t f i 2 16 "1560 1560" 100 0 0 100 bitlt - _null_ ));
DESCR("less than");
-DATA(insert OID = 1596 ( bitcmp PGNSP PGUID 12 f t t i 2 f 23 "1560 1560" 100 0 0 100 bitcmp - _null_ ));
+DATA(insert OID = 1596 ( bitcmp PGNSP PGUID 12 f t f t f i 2 23 "1560 1560" 100 0 0 100 bitcmp - _null_ ));
DESCR("compare");
-DATA(insert OID = 1598 ( random PGNSP PGUID 12 f t t v 0 f 701 "0" 100 0 0 100 drandom - _null_ ));
+DATA(insert OID = 1598 ( random PGNSP PGUID 12 f t f t f v 0 701 "0" 100 0 0 100 drandom - _null_ ));
DESCR("random value");
-DATA(insert OID = 1599 ( setseed PGNSP PGUID 12 f t t v 1 f 23 "701" 100 0 0 100 setseed - _null_ ));
+DATA(insert OID = 1599 ( setseed PGNSP PGUID 12 f t f t f v 1 23 "701" 100 0 0 100 setseed - _null_ ));
DESCR("set random seed");
/* OIDS 1600 - 1699 */
-DATA(insert OID = 1600 ( asin PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 dasin - _null_ ));
+DATA(insert OID = 1600 ( asin PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 dasin - _null_ ));
DESCR("arcsine");
-DATA(insert OID = 1601 ( acos PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 dacos - _null_ ));
+DATA(insert OID = 1601 ( acos PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 dacos - _null_ ));
DESCR("arccosine");
-DATA(insert OID = 1602 ( atan PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 datan - _null_ ));
+DATA(insert OID = 1602 ( atan PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 datan - _null_ ));
DESCR("arctangent");
-DATA(insert OID = 1603 ( atan2 PGNSP PGUID 12 f t t i 2 f 701 "701 701" 100 0 0 100 datan2 - _null_ ));
+DATA(insert OID = 1603 ( atan2 PGNSP PGUID 12 f t f t f i 2 701 "701 701" 100 0 0 100 datan2 - _null_ ));
DESCR("arctangent, two arguments");
-DATA(insert OID = 1604 ( sin PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 dsin - _null_ ));
+DATA(insert OID = 1604 ( sin PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 dsin - _null_ ));
DESCR("sine");
-DATA(insert OID = 1605 ( cos PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 dcos - _null_ ));
+DATA(insert OID = 1605 ( cos PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 dcos - _null_ ));
DESCR("cosine");
-DATA(insert OID = 1606 ( tan PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 dtan - _null_ ));
+DATA(insert OID = 1606 ( tan PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 dtan - _null_ ));
DESCR("tangent");
-DATA(insert OID = 1607 ( cot PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 dcot - _null_ ));
+DATA(insert OID = 1607 ( cot PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 dcot - _null_ ));
DESCR("cotangent");
-DATA(insert OID = 1608 ( degrees PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 degrees - _null_ ));
+DATA(insert OID = 1608 ( degrees PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 degrees - _null_ ));
DESCR("radians to degrees");
-DATA(insert OID = 1609 ( radians PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 radians - _null_ ));
+DATA(insert OID = 1609 ( radians PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 radians - _null_ ));
DESCR("degrees to radians");
-DATA(insert OID = 1610 ( pi PGNSP PGUID 12 f t t i 0 f 701 "0" 100 0 0 100 dpi - _null_ ));
+DATA(insert OID = 1610 ( pi PGNSP PGUID 12 f t f t f i 0 701 "0" 100 0 0 100 dpi - _null_ ));
DESCR("PI");
-DATA(insert OID = 1618 ( interval_mul PGNSP PGUID 12 f t t i 2 f 1186 "1186 701" 100 0 0 100 interval_mul - _null_ ));
+DATA(insert OID = 1618 ( interval_mul PGNSP PGUID 12 f t f t f i 2 1186 "1186 701" 100 0 0 100 interval_mul - _null_ ));
DESCR("multiply interval");
-DATA(insert OID = 1619 ( varchar PGNSP PGUID 12 f t t i 1 f 1043 "23" 100 0 0 100 int4_text - _null_ ));
+DATA(insert OID = 1619 ( varchar PGNSP PGUID 12 f t f t f i 1 1043 "23" 100 0 0 100 int4_text - _null_ ));
DESCR("convert int4 to varchar");
-DATA(insert OID = 1620 ( ascii PGNSP PGUID 12 f t t i 1 f 23 "25" 100 0 0 100 ascii - _null_ ));
+DATA(insert OID = 1620 ( ascii PGNSP PGUID 12 f t f t f i 1 23 "25" 100 0 0 100 ascii - _null_ ));
DESCR("convert first char to int4");
-DATA(insert OID = 1621 ( chr PGNSP PGUID 12 f t t i 1 f 25 "23" 100 0 0 100 chr - _null_ ));
+DATA(insert OID = 1621 ( chr PGNSP PGUID 12 f t f t f i 1 25 "23" 100 0 0 100 chr - _null_ ));
DESCR("convert int4 to char");
-DATA(insert OID = 1622 ( repeat PGNSP PGUID 12 f t t i 2 f 25 "25 23" 100 0 0 100 repeat - _null_ ));
+DATA(insert OID = 1622 ( repeat PGNSP PGUID 12 f t f t f i 2 25 "25 23" 100 0 0 100 repeat - _null_ ));
DESCR("replicate string int4 times");
-DATA(insert OID = 1623 ( varchar PGNSP PGUID 12 f t t i 1 f 1043 "20" 100 0 0 100 int8_text - _null_ ));
+DATA(insert OID = 1623 ( varchar PGNSP PGUID 12 f t f t f i 1 1043 "20" 100 0 0 100 int8_text - _null_ ));
DESCR("convert int8 to varchar");
-DATA(insert OID = 1624 ( mul_d_interval PGNSP PGUID 12 f t t i 2 f 1186 "701 1186" 100 0 0 100 mul_d_interval - _null_ ));
+DATA(insert OID = 1624 ( mul_d_interval PGNSP PGUID 12 f t f t f i 2 1186 "701 1186" 100 0 0 100 mul_d_interval - _null_ ));
-DATA(insert OID = 1633 ( texticlike PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100 texticlike - _null_ ));
+DATA(insert OID = 1633 ( texticlike PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100 texticlike - _null_ ));
DESCR("matches LIKE expression, case-insensitive");
-DATA(insert OID = 1634 ( texticnlike PGNSP PGUID 12 f t t i 2 f 16 "25 25" 100 0 0 100 texticnlike - _null_ ));
+DATA(insert OID = 1634 ( texticnlike PGNSP PGUID 12 f t f t f i 2 16 "25 25" 100 0 0 100 texticnlike - _null_ ));
DESCR("does not match LIKE expression, case-insensitive");
-DATA(insert OID = 1635 ( nameiclike PGNSP PGUID 12 f t t i 2 f 16 "19 25" 100 0 0 100 nameiclike - _null_ ));
+DATA(insert OID = 1635 ( nameiclike PGNSP PGUID 12 f t f t f i 2 16 "19 25" 100 0 0 100 nameiclike - _null_ ));
DESCR("matches LIKE expression, case-insensitive");
-DATA(insert OID = 1636 ( nameicnlike PGNSP PGUID 12 f t t i 2 f 16 "19 25" 100 0 0 100 nameicnlike - _null_ ));
+DATA(insert OID = 1636 ( nameicnlike PGNSP PGUID 12 f t f t f i 2 16 "19 25" 100 0 0 100 nameicnlike - _null_ ));
DESCR("does not match LIKE expression, case-insensitive");
-DATA(insert OID = 1637 ( like_escape PGNSP PGUID 12 f t t i 2 f 25 "25 25" 100 0 0 100 like_escape - _null_ ));
+DATA(insert OID = 1637 ( like_escape PGNSP PGUID 12 f t f t f i 2 25 "25 25" 100 0 0 100 like_escape - _null_ ));
DESCR("convert match pattern to use backslash escapes");
-DATA(insert OID = 1689 ( update_pg_pwd_and_pg_group PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100 update_pg_pwd_and_pg_group - _null_ ));
+DATA(insert OID = 1689 ( update_pg_pwd_and_pg_group PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100 update_pg_pwd_and_pg_group - _null_ ));
DESCR("update pg_pwd and pg_group files");
/* Oracle Compatibility Related Functions - By Edmund Mergl <E.Mergl@bawue.de> */
-DATA(insert OID = 868 ( strpos PGNSP PGUID 12 f t t i 2 f 23 "25 25" 100 0 0 100 textpos - _null_ ));
+DATA(insert OID = 868 ( strpos PGNSP PGUID 12 f t f t f i 2 23 "25 25" 100 0 0 100 textpos - _null_ ));
DESCR("find position of substring");
-DATA(insert OID = 870 ( lower PGNSP PGUID 12 f t t i 1 f 25 "25" 100 0 0 100 lower - _null_ ));
+DATA(insert OID = 870 ( lower PGNSP PGUID 12 f t f t f i 1 25 "25" 100 0 0 100 lower - _null_ ));
DESCR("lowercase");
-DATA(insert OID = 871 ( upper PGNSP PGUID 12 f t t i 1 f 25 "25" 100 0 0 100 upper - _null_ ));
+DATA(insert OID = 871 ( upper PGNSP PGUID 12 f t f t f i 1 25 "25" 100 0 0 100 upper - _null_ ));
DESCR("uppercase");
-DATA(insert OID = 872 ( initcap PGNSP PGUID 12 f t t i 1 f 25 "25" 100 0 0 100 initcap - _null_ ));
+DATA(insert OID = 872 ( initcap PGNSP PGUID 12 f t f t f i 1 25 "25" 100 0 0 100 initcap - _null_ ));
DESCR("capitalize each word");
-DATA(insert OID = 873 ( lpad PGNSP PGUID 12 f t t i 3 f 25 "25 23 25" 100 0 0 100 lpad - _null_ ));
+DATA(insert OID = 873 ( lpad PGNSP PGUID 12 f t f t f i 3 25 "25 23 25" 100 0 0 100 lpad - _null_ ));
DESCR("left-pad string to length");
-DATA(insert OID = 874 ( rpad PGNSP PGUID 12 f t t i 3 f 25 "25 23 25" 100 0 0 100 rpad - _null_ ));
+DATA(insert OID = 874 ( rpad PGNSP PGUID 12 f t f t f i 3 25 "25 23 25" 100 0 0 100 rpad - _null_ ));
DESCR("right-pad string to length");
-DATA(insert OID = 875 ( ltrim PGNSP PGUID 12 f t t i 2 f 25 "25 25" 100 0 0 100 ltrim - _null_ ));
+DATA(insert OID = 875 ( ltrim PGNSP PGUID 12 f t f t f i 2 25 "25 25" 100 0 0 100 ltrim - _null_ ));
DESCR("left-pad string to length");
-DATA(insert OID = 876 ( rtrim PGNSP PGUID 12 f t t i 2 f 25 "25 25" 100 0 0 100 rtrim - _null_ ));
+DATA(insert OID = 876 ( rtrim PGNSP PGUID 12 f t f t f i 2 25 "25 25" 100 0 0 100 rtrim - _null_ ));
DESCR("right-pad string to length");
-DATA(insert OID = 877 ( substr PGNSP PGUID 12 f t t i 3 f 25 "25 23 23" 100 0 0 100 text_substr - _null_ ));
+DATA(insert OID = 877 ( substr PGNSP PGUID 12 f t f t f i 3 25 "25 23 23" 100 0 0 100 text_substr - _null_ ));
DESCR("return portion of string");
-DATA(insert OID = 878 ( translate PGNSP PGUID 12 f t t i 3 f 25 "25 25 25" 100 0 0 100 translate - _null_ ));
+DATA(insert OID = 878 ( translate PGNSP PGUID 12 f t f t f i 3 25 "25 25 25" 100 0 0 100 translate - _null_ ));
DESCR("map a set of character appearing in string");
-DATA(insert OID = 879 ( lpad PGNSP PGUID 14 f t t i 2 f 25 "25 23" 100 0 0 100 "select lpad($1, $2, \' \')" - _null_ ));
+DATA(insert OID = 879 ( lpad PGNSP PGUID 14 f t f t f i 2 25 "25 23" 100 0 0 100 "select lpad($1, $2, \' \')" - _null_ ));
DESCR("left-pad string to length");
-DATA(insert OID = 880 ( rpad PGNSP PGUID 14 f t t i 2 f 25 "25 23" 100 0 0 100 "select rpad($1, $2, \' \')" - _null_ ));
+DATA(insert OID = 880 ( rpad PGNSP PGUID 14 f t f t f i 2 25 "25 23" 100 0 0 100 "select rpad($1, $2, \' \')" - _null_ ));
DESCR("right-pad string to length");
-DATA(insert OID = 881 ( ltrim PGNSP PGUID 14 f t t i 1 f 25 "25" 100 0 0 100 "select ltrim($1, \' \')" - _null_ ));
+DATA(insert OID = 881 ( ltrim PGNSP PGUID 14 f t f t f i 1 25 "25" 100 0 0 100 "select ltrim($1, \' \')" - _null_ ));
DESCR("remove initial characters from string");
-DATA(insert OID = 882 ( rtrim PGNSP PGUID 14 f t t i 1 f 25 "25" 100 0 0 100 "select rtrim($1, \' \')" - _null_ ));
+DATA(insert OID = 882 ( rtrim PGNSP PGUID 14 f t f t f i 1 25 "25" 100 0 0 100 "select rtrim($1, \' \')" - _null_ ));
DESCR("remove trailing characters from string");
-DATA(insert OID = 883 ( substr PGNSP PGUID 14 f t t i 2 f 25 "25 23" 100 0 0 100 "select substr($1, $2, -1)" - _null_ ));
+DATA(insert OID = 883 ( substr PGNSP PGUID 14 f t f t f i 2 25 "25 23" 100 0 0 100 "select substr($1, $2, -1)" - _null_ ));
DESCR("return portion of string");
-DATA(insert OID = 884 ( btrim PGNSP PGUID 12 f t t i 2 f 25 "25 25" 100 0 0 100 btrim - _null_ ));
+DATA(insert OID = 884 ( btrim PGNSP PGUID 12 f t f t f i 2 25 "25 25" 100 0 0 100 btrim - _null_ ));
DESCR("trim both ends of string");
-DATA(insert OID = 885 ( btrim PGNSP PGUID 14 f t t i 1 f 25 "25" 100 0 0 100 "select btrim($1, \' \')" - _null_ ));
+DATA(insert OID = 885 ( btrim PGNSP PGUID 14 f t f t f i 1 25 "25" 100 0 0 100 "select btrim($1, \' \')" - _null_ ));
DESCR("trim both ends of string");
-DATA(insert OID = 936 ( substring PGNSP PGUID 12 f t t i 3 f 25 "25 23 23" 100 0 0 100 text_substr - _null_ ));
+DATA(insert OID = 936 ( substring PGNSP PGUID 12 f t f t f i 3 25 "25 23 23" 100 0 0 100 text_substr - _null_ ));
DESCR("return portion of string");
-DATA(insert OID = 937 ( substring PGNSP PGUID 14 f t t i 2 f 25 "25 23" 100 0 0 100 "select substring($1, $2, -1)" - _null_ ));
+DATA(insert OID = 937 ( substring PGNSP PGUID 14 f t f t f i 2 25 "25 23" 100 0 0 100 "select substring($1, $2, -1)" - _null_ ));
DESCR("return portion of string");
/* for multi-byte support */
/* return database encoding name */
-DATA(insert OID = 1039 ( getdatabaseencoding PGNSP PGUID 12 f t t s 0 f 19 "0" 100 0 0 100 getdatabaseencoding - _null_ ));
+DATA(insert OID = 1039 ( getdatabaseencoding PGNSP PGUID 12 f t f t f s 0 19 "0" 100 0 0 100 getdatabaseencoding - _null_ ));
DESCR("encoding name of current database");
/* return client encoding name i.e. session encoding */
-DATA(insert OID = 810 ( pg_client_encoding PGNSP PGUID 12 f t t s 0 f 19 "0" 100 0 0 100 pg_client_encoding - _null_ ));
+DATA(insert OID = 810 ( pg_client_encoding PGNSP PGUID 12 f t f t f s 0 19 "0" 100 0 0 100 pg_client_encoding - _null_ ));
DESCR("encoding name of current database");
-DATA(insert OID = 1717 ( convert PGNSP PGUID 12 f t t s 2 f 25 "25 19" 100 0 0 100 pg_convert - _null_ ));
+DATA(insert OID = 1717 ( convert PGNSP PGUID 12 f t f t f s 2 25 "25 19" 100 0 0 100 pg_convert - _null_ ));
DESCR("convert string with specified destination encoding name");
-DATA(insert OID = 1813 ( convert PGNSP PGUID 12 f t t s 3 f 25 "25 19 19" 100 0 0 100 pg_convert2 - _null_ ));
+DATA(insert OID = 1813 ( convert PGNSP PGUID 12 f t f t f s 3 25 "25 19 19" 100 0 0 100 pg_convert2 - _null_ ));
DESCR("convert string with specified encoding names");
-DATA(insert OID = 1264 ( pg_char_to_encoding PGNSP PGUID 12 f t t s 1 f 23 "19" 100 0 0 100 PG_char_to_encoding - _null_ ));
+DATA(insert OID = 1264 ( pg_char_to_encoding PGNSP PGUID 12 f t f t f s 1 23 "19" 100 0 0 100 PG_char_to_encoding - _null_ ));
DESCR("convert encoding name to encoding id");
-DATA(insert OID = 1597 ( pg_encoding_to_char PGNSP PGUID 12 f t t s 1 f 19 "23" 100 0 0 100 PG_encoding_to_char - _null_ ));
+DATA(insert OID = 1597 ( pg_encoding_to_char PGNSP PGUID 12 f t f t f s 1 19 "23" 100 0 0 100 PG_encoding_to_char - _null_ ));
DESCR("convert encoding id to encoding name");
-DATA(insert OID = 1638 ( oidgt PGNSP PGUID 12 f t t i 2 f 16 "26 26" 100 0 0 100 oidgt - _null_ ));
+DATA(insert OID = 1638 ( oidgt PGNSP PGUID 12 f t f t f i 2 16 "26 26" 100 0 0 100 oidgt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 1639 ( oidge PGNSP PGUID 12 f t t i 2 f 16 "26 26" 100 0 0 100 oidge - _null_ ));
+DATA(insert OID = 1639 ( oidge PGNSP PGUID 12 f t f t f i 2 16 "26 26" 100 0 0 100 oidge - _null_ ));
DESCR("greater-than-or-equal");
/* System-view support functions */
-DATA(insert OID = 1640 ( pg_get_ruledef PGNSP PGUID 12 f t t s 1 f 25 "19" 100 0 0 100 pg_get_ruledef - _null_ ));
+DATA(insert OID = 1640 ( pg_get_ruledef PGNSP PGUID 12 f t f t f s 1 25 "19" 100 0 0 100 pg_get_ruledef - _null_ ));
DESCR("source text of a rule");
-DATA(insert OID = 1641 ( pg_get_viewdef PGNSP PGUID 12 f t t s 1 f 25 "19" 100 0 0 100 pg_get_viewdef - _null_ ));
+DATA(insert OID = 1641 ( pg_get_viewdef PGNSP PGUID 12 f t f t f s 1 25 "19" 100 0 0 100 pg_get_viewdef - _null_ ));
DESCR("select statement of a view");
-DATA(insert OID = 1642 ( pg_get_userbyid PGNSP PGUID 12 f t t s 1 f 19 "23" 100 0 0 100 pg_get_userbyid - _null_ ));
+DATA(insert OID = 1642 ( pg_get_userbyid PGNSP PGUID 12 f t f t f s 1 19 "23" 100 0 0 100 pg_get_userbyid - _null_ ));
DESCR("user name by UID (with fallback)");
-DATA(insert OID = 1643 ( pg_get_indexdef PGNSP PGUID 12 f t t s 1 f 25 "26" 100 0 0 100 pg_get_indexdef - _null_ ));
+DATA(insert OID = 1643 ( pg_get_indexdef PGNSP PGUID 12 f t f t f s 1 25 "26" 100 0 0 100 pg_get_indexdef - _null_ ));
DESCR("index description");
-DATA(insert OID = 1716 ( pg_get_expr PGNSP PGUID 12 f t t s 2 f 25 "25 26" 100 0 0 100 pg_get_expr - _null_ ));
+DATA(insert OID = 1716 ( pg_get_expr PGNSP PGUID 12 f t f t f s 2 25 "25 26" 100 0 0 100 pg_get_expr - _null_ ));
DESCR("deparse an encoded expression");
/* Generic referential integrity constraint triggers */
-DATA(insert OID = 1644 ( RI_FKey_check_ins PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100 RI_FKey_check_ins - _null_ ));
+DATA(insert OID = 1644 ( RI_FKey_check_ins PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100 RI_FKey_check_ins - _null_ ));
DESCR("referential integrity FOREIGN KEY ... REFERENCES");
-DATA(insert OID = 1645 ( RI_FKey_check_upd PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100 RI_FKey_check_upd - _null_ ));
+DATA(insert OID = 1645 ( RI_FKey_check_upd PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100 RI_FKey_check_upd - _null_ ));
DESCR("referential integrity FOREIGN KEY ... REFERENCES");
-DATA(insert OID = 1646 ( RI_FKey_cascade_del PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100 RI_FKey_cascade_del - _null_ ));
+DATA(insert OID = 1646 ( RI_FKey_cascade_del PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100 RI_FKey_cascade_del - _null_ ));
DESCR("referential integrity ON DELETE CASCADE");
-DATA(insert OID = 1647 ( RI_FKey_cascade_upd PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100 RI_FKey_cascade_upd - _null_ ));
+DATA(insert OID = 1647 ( RI_FKey_cascade_upd PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100 RI_FKey_cascade_upd - _null_ ));
DESCR("referential integrity ON UPDATE CASCADE");
-DATA(insert OID = 1648 ( RI_FKey_restrict_del PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100 RI_FKey_restrict_del - _null_ ));
+DATA(insert OID = 1648 ( RI_FKey_restrict_del PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100 RI_FKey_restrict_del - _null_ ));
DESCR("referential integrity ON DELETE RESTRICT");
-DATA(insert OID = 1649 ( RI_FKey_restrict_upd PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100 RI_FKey_restrict_upd - _null_ ));
+DATA(insert OID = 1649 ( RI_FKey_restrict_upd PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100 RI_FKey_restrict_upd - _null_ ));
DESCR("referential integrity ON UPDATE RESTRICT");
-DATA(insert OID = 1650 ( RI_FKey_setnull_del PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100 RI_FKey_setnull_del - _null_ ));
+DATA(insert OID = 1650 ( RI_FKey_setnull_del PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100 RI_FKey_setnull_del - _null_ ));
DESCR("referential integrity ON DELETE SET NULL");
-DATA(insert OID = 1651 ( RI_FKey_setnull_upd PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100 RI_FKey_setnull_upd - _null_ ));
+DATA(insert OID = 1651 ( RI_FKey_setnull_upd PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100 RI_FKey_setnull_upd - _null_ ));
DESCR("referential integrity ON UPDATE SET NULL");
-DATA(insert OID = 1652 ( RI_FKey_setdefault_del PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100 RI_FKey_setdefault_del - _null_ ));
+DATA(insert OID = 1652 ( RI_FKey_setdefault_del PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100 RI_FKey_setdefault_del - _null_ ));
DESCR("referential integrity ON DELETE SET DEFAULT");
-DATA(insert OID = 1653 ( RI_FKey_setdefault_upd PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100 RI_FKey_setdefault_upd - _null_ ));
+DATA(insert OID = 1653 ( RI_FKey_setdefault_upd PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100 RI_FKey_setdefault_upd - _null_ ));
DESCR("referential integrity ON UPDATE SET DEFAULT");
-DATA(insert OID = 1654 ( RI_FKey_noaction_del PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100 RI_FKey_noaction_del - _null_ ));
+DATA(insert OID = 1654 ( RI_FKey_noaction_del PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100 RI_FKey_noaction_del - _null_ ));
DESCR("referential integrity ON DELETE NO ACTION");
-DATA(insert OID = 1655 ( RI_FKey_noaction_upd PGNSP PGUID 12 f t t v 0 f 0 "" 100 0 0 100 RI_FKey_noaction_upd - _null_ ));
+DATA(insert OID = 1655 ( RI_FKey_noaction_upd PGNSP PGUID 12 f t f t f v 0 0 "" 100 0 0 100 RI_FKey_noaction_upd - _null_ ));
DESCR("referential integrity ON UPDATE NO ACTION");
-DATA(insert OID = 1666 ( varbiteq PGNSP PGUID 12 f t t i 2 f 16 "1562 1562" 100 0 0 100 biteq - _null_ ));
+DATA(insert OID = 1666 ( varbiteq PGNSP PGUID 12 f t f t f i 2 16 "1562 1562" 100 0 0 100 biteq - _null_ ));
DESCR("equal");
-DATA(insert OID = 1667 ( varbitne PGNSP PGUID 12 f t t i 2 f 16 "1562 1562" 100 0 0 100 bitne - _null_ ));
+DATA(insert OID = 1667 ( varbitne PGNSP PGUID 12 f t f t f i 2 16 "1562 1562" 100 0 0 100 bitne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 1668 ( varbitge PGNSP PGUID 12 f t t i 2 f 16 "1562 1562" 100 0 0 100 bitge - _null_ ));
+DATA(insert OID = 1668 ( varbitge PGNSP PGUID 12 f t f t f i 2 16 "1562 1562" 100 0 0 100 bitge - _null_ ));
DESCR("greater than or equal");
-DATA(insert OID = 1669 ( varbitgt PGNSP PGUID 12 f t t i 2 f 16 "1562 1562" 100 0 0 100 bitgt - _null_ ));
+DATA(insert OID = 1669 ( varbitgt PGNSP PGUID 12 f t f t f i 2 16 "1562 1562" 100 0 0 100 bitgt - _null_ ));
DESCR("greater than");
-DATA(insert OID = 1670 ( varbitle PGNSP PGUID 12 f t t i 2 f 16 "1562 1562" 100 0 0 100 bitle - _null_ ));
+DATA(insert OID = 1670 ( varbitle PGNSP PGUID 12 f t f t f i 2 16 "1562 1562" 100 0 0 100 bitle - _null_ ));
DESCR("less than or equal");
-DATA(insert OID = 1671 ( varbitlt PGNSP PGUID 12 f t t i 2 f 16 "1562 1562" 100 0 0 100 bitlt - _null_ ));
+DATA(insert OID = 1671 ( varbitlt PGNSP PGUID 12 f t f t f i 2 16 "1562 1562" 100 0 0 100 bitlt - _null_ ));
DESCR("less than");
-DATA(insert OID = 1672 ( varbitcmp PGNSP PGUID 12 f t t i 2 f 23 "1562 1562" 100 0 0 100 bitcmp - _null_ ));
+DATA(insert OID = 1672 ( varbitcmp PGNSP PGUID 12 f t f t f i 2 23 "1562 1562" 100 0 0 100 bitcmp - _null_ ));
DESCR("compare");
-DATA(insert OID = 1673 ( bitand PGNSP PGUID 12 f t t i 2 f 1560 "1560 1560" 100 0 0 100 bitand - _null_ ));
+DATA(insert OID = 1673 ( bitand PGNSP PGUID 12 f t f t f i 2 1560 "1560 1560" 100 0 0 100 bitand - _null_ ));
DESCR("bitwise and");
-DATA(insert OID = 1674 ( bitor PGNSP PGUID 12 f t t i 2 f 1560 "1560 1560" 100 0 0 100 bitor - _null_ ));
+DATA(insert OID = 1674 ( bitor PGNSP PGUID 12 f t f t f i 2 1560 "1560 1560" 100 0 0 100 bitor - _null_ ));
DESCR("bitwise or");
-DATA(insert OID = 1675 ( bitxor PGNSP PGUID 12 f t t i 2 f 1560 "1560 1560" 100 0 0 100 bitxor - _null_ ));
+DATA(insert OID = 1675 ( bitxor PGNSP PGUID 12 f t f t f i 2 1560 "1560 1560" 100 0 0 100 bitxor - _null_ ));
DESCR("bitwise exclusive or");
-DATA(insert OID = 1676 ( bitnot PGNSP PGUID 12 f t t i 1 f 1560 "1560" 100 0 0 100 bitnot - _null_ ));
+DATA(insert OID = 1676 ( bitnot PGNSP PGUID 12 f t f t f i 1 1560 "1560" 100 0 0 100 bitnot - _null_ ));
DESCR("bitwise negation");
-DATA(insert OID = 1677 ( bitshiftleft PGNSP PGUID 12 f t t i 2 f 1560 "1560 23" 100 0 0 100 bitshiftleft - _null_ ));
+DATA(insert OID = 1677 ( bitshiftleft PGNSP PGUID 12 f t f t f i 2 1560 "1560 23" 100 0 0 100 bitshiftleft - _null_ ));
DESCR("bitwise left shift");
-DATA(insert OID = 1678 ( bitshiftright PGNSP PGUID 12 f t t i 2 f 1560 "1560 23" 100 0 0 100 bitshiftright - _null_ ));
+DATA(insert OID = 1678 ( bitshiftright PGNSP PGUID 12 f t f t f i 2 1560 "1560 23" 100 0 0 100 bitshiftright - _null_ ));
DESCR("bitwise right shift");
-DATA(insert OID = 1679 ( bitcat PGNSP PGUID 12 f t t i 2 f 1560 "1560 1560" 100 0 0 100 bitcat - _null_ ));
+DATA(insert OID = 1679 ( bitcat PGNSP PGUID 12 f t f t f i 2 1560 "1560 1560" 100 0 0 100 bitcat - _null_ ));
DESCR("bitwise concatenation");
-DATA(insert OID = 1680 ( substring PGNSP PGUID 12 f t t i 3 f 1560 "1560 23 23" 100 0 0 100 bitsubstr - _null_ ));
+DATA(insert OID = 1680 ( substring PGNSP PGUID 12 f t f t f i 3 1560 "1560 23 23" 100 0 0 100 bitsubstr - _null_ ));
DESCR("return portion of bitstring");
-DATA(insert OID = 1681 ( length PGNSP PGUID 12 f t t i 1 f 23 "1560" 100 0 0 100 bitlength - _null_ ));
+DATA(insert OID = 1681 ( length PGNSP PGUID 12 f t f t f i 1 23 "1560" 100 0 0 100 bitlength - _null_ ));
DESCR("bitstring length");
-DATA(insert OID = 1682 ( octet_length PGNSP PGUID 12 f t t i 1 f 23 "1560" 100 0 0 100 bitoctetlength - _null_ ));
+DATA(insert OID = 1682 ( octet_length PGNSP PGUID 12 f t f t f i 1 23 "1560" 100 0 0 100 bitoctetlength - _null_ ));
DESCR("octet length");
-DATA(insert OID = 1683 ( bitfromint4 PGNSP PGUID 12 f t t i 1 f 1560 "23" 100 0 0 100 bitfromint4 - _null_ ));
+DATA(insert OID = 1683 ( bitfromint4 PGNSP PGUID 12 f t f t f i 1 1560 "23" 100 0 0 100 bitfromint4 - _null_ ));
DESCR("int4 to bitstring");
-DATA(insert OID = 1684 ( bittoint4 PGNSP PGUID 12 f t t i 1 f 23 "1560" 100 0 0 100 bittoint4 - _null_ ));
+DATA(insert OID = 1684 ( bittoint4 PGNSP PGUID 12 f t f t f i 1 23 "1560" 100 0 0 100 bittoint4 - _null_ ));
DESCR("bitstring to int4");
-DATA(insert OID = 1685 ( bit PGNSP PGUID 12 f t t i 2 f 1560 "1560 23" 100 0 0 100 bit - _null_ ));
+DATA(insert OID = 1685 ( bit PGNSP PGUID 12 f t t t f i 2 1560 "1560 23" 100 0 0 100 bit - _null_ ));
DESCR("adjust bit() to typmod length");
-DATA(insert OID = 1686 ( _bit PGNSP PGUID 12 f t t i 2 f 1561 "1561 23" 100 0 0 100 _bit - _null_ ));
+DATA(insert OID = 1686 ( _bit PGNSP PGUID 12 f t t t f i 2 1561 "1561 23" 100 0 0 100 _bit - _null_ ));
DESCR("adjust bit()[] to typmod length");
-DATA(insert OID = 1687 ( varbit PGNSP PGUID 12 f t t i 2 f 1562 "1562 23" 100 0 0 100 varbit - _null_ ));
+DATA(insert OID = 1687 ( varbit PGNSP PGUID 12 f t t t f i 2 1562 "1562 23" 100 0 0 100 varbit - _null_ ));
DESCR("adjust varbit() to typmod length");
-DATA(insert OID = 1688 ( _varbit PGNSP PGUID 12 f t t i 2 f 1563 "1563 23" 100 0 0 100 _varbit - _null_ ));
+DATA(insert OID = 1688 ( _varbit PGNSP PGUID 12 f t t t f i 2 1563 "1563 23" 100 0 0 100 _varbit - _null_ ));
DESCR("adjust varbit()[] to typmod length");
-DATA(insert OID = 1698 ( position PGNSP PGUID 12 f t t i 2 f 23 "1560 1560" 100 0 0 100 bitposition - _null_ ));
+DATA(insert OID = 1698 ( position PGNSP PGUID 12 f t f t f i 2 23 "1560 1560" 100 0 0 100 bitposition - _null_ ));
DESCR("return position of sub-bitstring");
-DATA(insert OID = 1699 ( substring PGNSP PGUID 14 f t t i 2 f 1560 "1560 23" 100 0 0 100 "select substring($1, $2, -1)" - _null_ ));
+DATA(insert OID = 1699 ( substring PGNSP PGUID 14 f t f t f i 2 1560 "1560 23" 100 0 0 100 "select substring($1, $2, -1)" - _null_ ));
DESCR("return portion of bitstring");
/* for mac type support */
-DATA(insert OID = 436 ( macaddr_in PGNSP PGUID 12 f t t i 1 f 829 "0" 100 0 0 100 macaddr_in - _null_ ));
+DATA(insert OID = 436 ( macaddr_in PGNSP PGUID 12 f t f t f i 1 829 "0" 100 0 0 100 macaddr_in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 437 ( macaddr_out PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 macaddr_out - _null_ ));
+DATA(insert OID = 437 ( macaddr_out PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 macaddr_out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 752 ( text PGNSP PGUID 12 f t t i 1 f 25 "829" 100 0 0 100 macaddr_text - _null_ ));
+DATA(insert OID = 752 ( text PGNSP PGUID 12 f t f t f i 1 25 "829" 100 0 0 100 macaddr_text - _null_ ));
DESCR("MAC address to text");
-DATA(insert OID = 753 ( trunc PGNSP PGUID 12 f t t i 1 f 829 "829" 100 0 0 100 macaddr_trunc - _null_ ));
+DATA(insert OID = 753 ( trunc PGNSP PGUID 12 f t f t f i 1 829 "829" 100 0 0 100 macaddr_trunc - _null_ ));
DESCR("MAC manufacturer fields");
-DATA(insert OID = 767 ( macaddr PGNSP PGUID 12 f t t i 1 f 829 "25" 100 0 0 100 text_macaddr - _null_ ));
+DATA(insert OID = 767 ( macaddr PGNSP PGUID 12 f t f t f i 1 829 "25" 100 0 0 100 text_macaddr - _null_ ));
DESCR("text to MAC address");
-DATA(insert OID = 830 ( macaddr_eq PGNSP PGUID 12 f t t i 2 f 16 "829 829" 100 0 0 100 macaddr_eq - _null_ ));
+DATA(insert OID = 830 ( macaddr_eq PGNSP PGUID 12 f t f t f i 2 16 "829 829" 100 0 0 100 macaddr_eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 831 ( macaddr_lt PGNSP PGUID 12 f t t i 2 f 16 "829 829" 100 0 0 100 macaddr_lt - _null_ ));
+DATA(insert OID = 831 ( macaddr_lt PGNSP PGUID 12 f t f t f i 2 16 "829 829" 100 0 0 100 macaddr_lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 832 ( macaddr_le PGNSP PGUID 12 f t t i 2 f 16 "829 829" 100 0 0 100 macaddr_le - _null_ ));
+DATA(insert OID = 832 ( macaddr_le PGNSP PGUID 12 f t f t f i 2 16 "829 829" 100 0 0 100 macaddr_le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 833 ( macaddr_gt PGNSP PGUID 12 f t t i 2 f 16 "829 829" 100 0 0 100 macaddr_gt - _null_ ));
+DATA(insert OID = 833 ( macaddr_gt PGNSP PGUID 12 f t f t f i 2 16 "829 829" 100 0 0 100 macaddr_gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 834 ( macaddr_ge PGNSP PGUID 12 f t t i 2 f 16 "829 829" 100 0 0 100 macaddr_ge - _null_ ));
+DATA(insert OID = 834 ( macaddr_ge PGNSP PGUID 12 f t f t f i 2 16 "829 829" 100 0 0 100 macaddr_ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 835 ( macaddr_ne PGNSP PGUID 12 f t t i 2 f 16 "829 829" 100 0 0 100 macaddr_ne - _null_ ));
+DATA(insert OID = 835 ( macaddr_ne PGNSP PGUID 12 f t f t f i 2 16 "829 829" 100 0 0 100 macaddr_ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 836 ( macaddr_cmp PGNSP PGUID 12 f t t i 2 f 23 "829 829" 100 0 0 100 macaddr_cmp - _null_ ));
+DATA(insert OID = 836 ( macaddr_cmp PGNSP PGUID 12 f t f t f i 2 23 "829 829" 100 0 0 100 macaddr_cmp - _null_ ));
DESCR("less-equal-greater");
/* for inet type support */
-DATA(insert OID = 910 ( inet_in PGNSP PGUID 12 f t t i 1 f 869 "0" 100 0 0 100 inet_in - _null_ ));
+DATA(insert OID = 910 ( inet_in PGNSP PGUID 12 f t f t f i 1 869 "0" 100 0 0 100 inet_in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 911 ( inet_out PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 inet_out - _null_ ));
+DATA(insert OID = 911 ( inet_out PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 inet_out - _null_ ));
DESCR("(internal)");
/* for cidr type support */
-DATA(insert OID = 1267 ( cidr_in PGNSP PGUID 12 f t t i 1 f 650 "0" 100 0 0 100 cidr_in - _null_ ));
+DATA(insert OID = 1267 ( cidr_in PGNSP PGUID 12 f t f t f i 1 650 "0" 100 0 0 100 cidr_in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1427 ( cidr_out PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 cidr_out - _null_ ));
+DATA(insert OID = 1427 ( cidr_out PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 cidr_out - _null_ ));
DESCR("(internal)");
/* these are used for both inet and cidr */
-DATA(insert OID = 920 ( network_eq PGNSP PGUID 12 f t t i 2 f 16 "869 869" 100 0 0 100 network_eq - _null_ ));
+DATA(insert OID = 920 ( network_eq PGNSP PGUID 12 f t f t f i 2 16 "869 869" 100 0 0 100 network_eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 921 ( network_lt PGNSP PGUID 12 f t t i 2 f 16 "869 869" 100 0 0 100 network_lt - _null_ ));
+DATA(insert OID = 921 ( network_lt PGNSP PGUID 12 f t f t f i 2 16 "869 869" 100 0 0 100 network_lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 922 ( network_le PGNSP PGUID 12 f t t i 2 f 16 "869 869" 100 0 0 100 network_le - _null_ ));
+DATA(insert OID = 922 ( network_le PGNSP PGUID 12 f t f t f i 2 16 "869 869" 100 0 0 100 network_le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 923 ( network_gt PGNSP PGUID 12 f t t i 2 f 16 "869 869" 100 0 0 100 network_gt - _null_ ));
+DATA(insert OID = 923 ( network_gt PGNSP PGUID 12 f t f t f i 2 16 "869 869" 100 0 0 100 network_gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 924 ( network_ge PGNSP PGUID 12 f t t i 2 f 16 "869 869" 100 0 0 100 network_ge - _null_ ));
+DATA(insert OID = 924 ( network_ge PGNSP PGUID 12 f t f t f i 2 16 "869 869" 100 0 0 100 network_ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 925 ( network_ne PGNSP PGUID 12 f t t i 2 f 16 "869 869" 100 0 0 100 network_ne - _null_ ));
+DATA(insert OID = 925 ( network_ne PGNSP PGUID 12 f t f t f i 2 16 "869 869" 100 0 0 100 network_ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 926 ( network_cmp PGNSP PGUID 12 f t t i 2 f 23 "869 869" 100 0 0 100 network_cmp - _null_ ));
+DATA(insert OID = 926 ( network_cmp PGNSP PGUID 12 f t f t f i 2 23 "869 869" 100 0 0 100 network_cmp - _null_ ));
DESCR("less-equal-greater");
-DATA(insert OID = 927 ( network_sub PGNSP PGUID 12 f t t i 2 f 16 "869 869" 100 0 0 100 network_sub - _null_ ));
+DATA(insert OID = 927 ( network_sub PGNSP PGUID 12 f t f t f i 2 16 "869 869" 100 0 0 100 network_sub - _null_ ));
DESCR("is-subnet");
-DATA(insert OID = 928 ( network_subeq PGNSP PGUID 12 f t t i 2 f 16 "869 869" 100 0 0 100 network_subeq - _null_ ));
+DATA(insert OID = 928 ( network_subeq PGNSP PGUID 12 f t f t f i 2 16 "869 869" 100 0 0 100 network_subeq - _null_ ));
DESCR("is-subnet-or-equal");
-DATA(insert OID = 929 ( network_sup PGNSP PGUID 12 f t t i 2 f 16 "869 869" 100 0 0 100 network_sup - _null_ ));
+DATA(insert OID = 929 ( network_sup PGNSP PGUID 12 f t f t f i 2 16 "869 869" 100 0 0 100 network_sup - _null_ ));
DESCR("is-supernet");
-DATA(insert OID = 930 ( network_supeq PGNSP PGUID 12 f t t i 2 f 16 "869 869" 100 0 0 100 network_supeq - _null_ ));
+DATA(insert OID = 930 ( network_supeq PGNSP PGUID 12 f t f t f i 2 16 "869 869" 100 0 0 100 network_supeq - _null_ ));
DESCR("is-supernet-or-equal");
/* inet/cidr functions */
-DATA(insert OID = 605 ( abbrev PGNSP PGUID 12 f t t i 1 f 25 "869" 100 0 0 100 network_abbrev - _null_ ));
+DATA(insert OID = 605 ( abbrev PGNSP PGUID 12 f t f t f i 1 25 "869" 100 0 0 100 network_abbrev - _null_ ));
DESCR("abbreviated display of inet/cidr value");
-DATA(insert OID = 683 ( network PGNSP PGUID 12 f t t i 1 f 650 "869" 100 0 0 100 network_network - _null_ ));
+DATA(insert OID = 683 ( network PGNSP PGUID 12 f t f t f i 1 650 "869" 100 0 0 100 network_network - _null_ ));
DESCR("network part of address");
-DATA(insert OID = 696 ( netmask PGNSP PGUID 12 f t t i 1 f 869 "869" 100 0 0 100 network_netmask - _null_ ));
+DATA(insert OID = 696 ( netmask PGNSP PGUID 12 f t f t f i 1 869 "869" 100 0 0 100 network_netmask - _null_ ));
DESCR("netmask of address");
-DATA(insert OID = 697 ( masklen PGNSP PGUID 12 f t t i 1 f 23 "869" 100 0 0 100 network_masklen - _null_ ));
+DATA(insert OID = 697 ( masklen PGNSP PGUID 12 f t f t f i 1 23 "869" 100 0 0 100 network_masklen - _null_ ));
DESCR("netmask length");
-DATA(insert OID = 698 ( broadcast PGNSP PGUID 12 f t t i 1 f 869 "869" 100 0 0 100 network_broadcast - _null_ ));
+DATA(insert OID = 698 ( broadcast PGNSP PGUID 12 f t f t f i 1 869 "869" 100 0 0 100 network_broadcast - _null_ ));
DESCR("broadcast address of network");
-DATA(insert OID = 699 ( host PGNSP PGUID 12 f t t i 1 f 25 "869" 100 0 0 100 network_host - _null_ ));
+DATA(insert OID = 699 ( host PGNSP PGUID 12 f t f t f i 1 25 "869" 100 0 0 100 network_host - _null_ ));
DESCR("show address octets only");
-DATA(insert OID = 730 ( text PGNSP PGUID 12 f t t i 1 f 25 "869" 100 0 0 100 network_show - _null_ ));
+DATA(insert OID = 730 ( text PGNSP PGUID 12 f t f t f i 1 25 "869" 100 0 0 100 network_show - _null_ ));
DESCR("show all parts of inet/cidr value");
-DATA(insert OID = 1713 ( inet PGNSP PGUID 12 f t t i 1 f 869 "25" 100 0 0 100 text_inet - _null_ ));
+DATA(insert OID = 1713 ( inet PGNSP PGUID 12 f t f t f i 1 869 "25" 100 0 0 100 text_inet - _null_ ));
DESCR("text to inet");
-DATA(insert OID = 1714 ( cidr PGNSP PGUID 12 f t t i 1 f 650 "25" 100 0 0 100 text_cidr - _null_ ));
+DATA(insert OID = 1714 ( cidr PGNSP PGUID 12 f t f t f i 1 650 "25" 100 0 0 100 text_cidr - _null_ ));
DESCR("text to cidr");
-DATA(insert OID = 1715 ( set_masklen PGNSP PGUID 12 f t t i 2 f 869 "869 23" 100 0 0 100 inet_set_masklen - _null_ ));
+DATA(insert OID = 1715 ( set_masklen PGNSP PGUID 12 f t f t f i 2 869 "869 23" 100 0 0 100 inet_set_masklen - _null_ ));
DESCR("change the netmask of an inet");
-DATA(insert OID = 1690 ( time_mi_time PGNSP PGUID 12 f t t i 2 f 1186 "1083 1083" 100 0 0 100 time_mi_time - _null_ ));
+DATA(insert OID = 1690 ( time_mi_time PGNSP PGUID 12 f t f t f i 2 1186 "1083 1083" 100 0 0 100 time_mi_time - _null_ ));
DESCR("minus");
-DATA(insert OID = 1691 ( boolle PGNSP PGUID 12 f t t i 2 f 16 "16 16" 100 0 0 100 boolle - _null_ ));
+DATA(insert OID = 1691 ( boolle PGNSP PGUID 12 f t f t f i 2 16 "16 16" 100 0 0 100 boolle - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 1692 ( boolge PGNSP PGUID 12 f t t i 2 f 16 "16 16" 100 0 0 100 boolge - _null_ ));
+DATA(insert OID = 1692 ( boolge PGNSP PGUID 12 f t f t f i 2 16 "16 16" 100 0 0 100 boolge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 1693 ( btboolcmp PGNSP PGUID 12 f t t i 2 f 23 "16 16" 100 0 0 100 btboolcmp - _null_ ));
+DATA(insert OID = 1693 ( btboolcmp PGNSP PGUID 12 f t f t f i 2 23 "16 16" 100 0 0 100 btboolcmp - _null_ ));
DESCR("btree less-equal-greater");
-DATA(insert OID = 1696 ( timetz_hash PGNSP PGUID 12 f t t i 1 f 23 "1266" 100 0 0 100 timetz_hash - _null_ ));
+DATA(insert OID = 1696 ( timetz_hash PGNSP PGUID 12 f t f t f i 1 23 "1266" 100 0 0 100 timetz_hash - _null_ ));
DESCR("hash");
-DATA(insert OID = 1697 ( interval_hash PGNSP PGUID 12 f t t i 1 f 23 "1186" 100 0 0 100 interval_hash - _null_ ));
+DATA(insert OID = 1697 ( interval_hash PGNSP PGUID 12 f t f t f i 1 23 "1186" 100 0 0 100 interval_hash - _null_ ));
DESCR("hash");
/* OID's 1700 - 1799 NUMERIC data type */
-DATA(insert OID = 1701 ( numeric_in PGNSP PGUID 12 f t t i 3 f 1700 "0 26 23" 100 0 0 100 numeric_in - _null_ ));
+DATA(insert OID = 1701 ( numeric_in PGNSP PGUID 12 f t f t f i 3 1700 "0 26 23" 100 0 0 100 numeric_in - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1702 ( numeric_out PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 numeric_out - _null_ ));
+DATA(insert OID = 1702 ( numeric_out PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 numeric_out - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1703 ( numeric PGNSP PGUID 12 f t t i 2 f 1700 "1700 23" 100 0 0 100 numeric - _null_ ));
+DATA(insert OID = 1703 ( numeric PGNSP PGUID 12 f t t t f i 2 1700 "1700 23" 100 0 0 100 numeric - _null_ ));
DESCR("adjust numeric to typmod precision/scale");
-DATA(insert OID = 1704 ( numeric_abs PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100 numeric_abs - _null_ ));
+DATA(insert OID = 1704 ( numeric_abs PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100 numeric_abs - _null_ ));
DESCR("absolute value");
-DATA(insert OID = 1705 ( abs PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100 numeric_abs - _null_ ));
+DATA(insert OID = 1705 ( abs PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100 numeric_abs - _null_ ));
DESCR("absolute value");
-DATA(insert OID = 1706 ( sign PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100 numeric_sign - _null_ ));
+DATA(insert OID = 1706 ( sign PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100 numeric_sign - _null_ ));
DESCR("sign of value");
-DATA(insert OID = 1707 ( round PGNSP PGUID 12 f t t i 2 f 1700 "1700 23" 100 0 0 100 numeric_round - _null_ ));
+DATA(insert OID = 1707 ( round PGNSP PGUID 12 f t f t f i 2 1700 "1700 23" 100 0 0 100 numeric_round - _null_ ));
DESCR("value rounded to 'scale'");
-DATA(insert OID = 1708 ( round PGNSP PGUID 14 f t t i 1 f 1700 "1700" 100 0 0 100 "select round($1,0)" - _null_ ));
+DATA(insert OID = 1708 ( round PGNSP PGUID 14 f t f t f i 1 1700 "1700" 100 0 0 100 "select round($1,0)" - _null_ ));
DESCR("value rounded to 'scale' of zero");
-DATA(insert OID = 1709 ( trunc PGNSP PGUID 12 f t t i 2 f 1700 "1700 23" 100 0 0 100 numeric_trunc - _null_ ));
+DATA(insert OID = 1709 ( trunc PGNSP PGUID 12 f t f t f i 2 1700 "1700 23" 100 0 0 100 numeric_trunc - _null_ ));
DESCR("value truncated to 'scale'");
-DATA(insert OID = 1710 ( trunc PGNSP PGUID 14 f t t i 1 f 1700 "1700" 100 0 0 100 "select trunc($1,0)" - _null_ ));
+DATA(insert OID = 1710 ( trunc PGNSP PGUID 14 f t f t f i 1 1700 "1700" 100 0 0 100 "select trunc($1,0)" - _null_ ));
DESCR("value truncated to 'scale' of zero");
-DATA(insert OID = 1711 ( ceil PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100 numeric_ceil - _null_ ));
+DATA(insert OID = 1711 ( ceil PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100 numeric_ceil - _null_ ));
DESCR("smallest integer >= value");
-DATA(insert OID = 1712 ( floor PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100 numeric_floor - _null_ ));
+DATA(insert OID = 1712 ( floor PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100 numeric_floor - _null_ ));
DESCR("largest integer <= value");
-DATA(insert OID = 1718 ( numeric_eq PGNSP PGUID 12 f t t i 2 f 16 "1700 1700" 100 0 0 100 numeric_eq - _null_ ));
+DATA(insert OID = 1718 ( numeric_eq PGNSP PGUID 12 f t f t f i 2 16 "1700 1700" 100 0 0 100 numeric_eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 1719 ( numeric_ne PGNSP PGUID 12 f t t i 2 f 16 "1700 1700" 100 0 0 100 numeric_ne - _null_ ));
+DATA(insert OID = 1719 ( numeric_ne PGNSP PGUID 12 f t f t f i 2 16 "1700 1700" 100 0 0 100 numeric_ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 1720 ( numeric_gt PGNSP PGUID 12 f t t i 2 f 16 "1700 1700" 100 0 0 100 numeric_gt - _null_ ));
+DATA(insert OID = 1720 ( numeric_gt PGNSP PGUID 12 f t f t f i 2 16 "1700 1700" 100 0 0 100 numeric_gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 1721 ( numeric_ge PGNSP PGUID 12 f t t i 2 f 16 "1700 1700" 100 0 0 100 numeric_ge - _null_ ));
+DATA(insert OID = 1721 ( numeric_ge PGNSP PGUID 12 f t f t f i 2 16 "1700 1700" 100 0 0 100 numeric_ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 1722 ( numeric_lt PGNSP PGUID 12 f t t i 2 f 16 "1700 1700" 100 0 0 100 numeric_lt - _null_ ));
+DATA(insert OID = 1722 ( numeric_lt PGNSP PGUID 12 f t f t f i 2 16 "1700 1700" 100 0 0 100 numeric_lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 1723 ( numeric_le PGNSP PGUID 12 f t t i 2 f 16 "1700 1700" 100 0 0 100 numeric_le - _null_ ));
+DATA(insert OID = 1723 ( numeric_le PGNSP PGUID 12 f t f t f i 2 16 "1700 1700" 100 0 0 100 numeric_le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 1724 ( numeric_add PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100 numeric_add - _null_ ));
+DATA(insert OID = 1724 ( numeric_add PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100 numeric_add - _null_ ));
DESCR("add");
-DATA(insert OID = 1725 ( numeric_sub PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100 numeric_sub - _null_ ));
+DATA(insert OID = 1725 ( numeric_sub PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100 numeric_sub - _null_ ));
DESCR("subtract");
-DATA(insert OID = 1726 ( numeric_mul PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100 numeric_mul - _null_ ));
+DATA(insert OID = 1726 ( numeric_mul PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100 numeric_mul - _null_ ));
DESCR("multiply");
-DATA(insert OID = 1727 ( numeric_div PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100 numeric_div - _null_ ));
+DATA(insert OID = 1727 ( numeric_div PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100 numeric_div - _null_ ));
DESCR("divide");
-DATA(insert OID = 1728 ( mod PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100 numeric_mod - _null_ ));
+DATA(insert OID = 1728 ( mod PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100 numeric_mod - _null_ ));
DESCR("modulus");
-DATA(insert OID = 1729 ( numeric_mod PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100 numeric_mod - _null_ ));
+DATA(insert OID = 1729 ( numeric_mod PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100 numeric_mod - _null_ ));
DESCR("modulus");
-DATA(insert OID = 1730 ( sqrt PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100 numeric_sqrt - _null_ ));
+DATA(insert OID = 1730 ( sqrt PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100 numeric_sqrt - _null_ ));
DESCR("square root");
-DATA(insert OID = 1731 ( numeric_sqrt PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100 numeric_sqrt - _null_ ));
+DATA(insert OID = 1731 ( numeric_sqrt PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100 numeric_sqrt - _null_ ));
DESCR("square root");
-DATA(insert OID = 1732 ( exp PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100 numeric_exp - _null_ ));
+DATA(insert OID = 1732 ( exp PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100 numeric_exp - _null_ ));
DESCR("e raised to the power of n");
-DATA(insert OID = 1733 ( numeric_exp PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100 numeric_exp - _null_ ));
+DATA(insert OID = 1733 ( numeric_exp PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100 numeric_exp - _null_ ));
DESCR("e raised to the power of n");
-DATA(insert OID = 1734 ( ln PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100 numeric_ln - _null_ ));
+DATA(insert OID = 1734 ( ln PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100 numeric_ln - _null_ ));
DESCR("natural logarithm of n");
-DATA(insert OID = 1735 ( numeric_ln PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100 numeric_ln - _null_ ));
+DATA(insert OID = 1735 ( numeric_ln PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100 numeric_ln - _null_ ));
DESCR("natural logarithm of n");
-DATA(insert OID = 1736 ( log PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100 numeric_log - _null_ ));
+DATA(insert OID = 1736 ( log PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100 numeric_log - _null_ ));
DESCR("logarithm base m of n");
-DATA(insert OID = 1737 ( numeric_log PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100 numeric_log - _null_ ));
+DATA(insert OID = 1737 ( numeric_log PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100 numeric_log - _null_ ));
DESCR("logarithm base m of n");
-DATA(insert OID = 1738 ( pow PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100 numeric_power - _null_ ));
+DATA(insert OID = 1738 ( pow PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100 numeric_power - _null_ ));
DESCR("m raised to the power of n");
-DATA(insert OID = 1739 ( numeric_power PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100 numeric_power - _null_ ));
+DATA(insert OID = 1739 ( numeric_power PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100 numeric_power - _null_ ));
DESCR("m raised to the power of n");
-DATA(insert OID = 1740 ( numeric PGNSP PGUID 12 f t t i 1 f 1700 "23" 100 0 0 100 int4_numeric - _null_ ));
+DATA(insert OID = 1740 ( numeric PGNSP PGUID 12 f t t t f i 1 1700 "23" 100 0 0 100 int4_numeric - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1741 ( log PGNSP PGUID 14 f t t i 1 f 1700 "1700" 100 0 0 100 "select log(10, $1)" - _null_ ));
+DATA(insert OID = 1741 ( log PGNSP PGUID 14 f t f t f i 1 1700 "1700" 100 0 0 100 "select log(10, $1)" - _null_ ));
DESCR("logarithm base 10 of n");
-DATA(insert OID = 1742 ( numeric PGNSP PGUID 12 f t t i 1 f 1700 "700" 100 0 0 100 float4_numeric - _null_ ));
+DATA(insert OID = 1742 ( numeric PGNSP PGUID 12 f t t t f i 1 1700 "700" 100 0 0 100 float4_numeric - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1743 ( numeric PGNSP PGUID 12 f t t i 1 f 1700 "701" 100 0 0 100 float8_numeric - _null_ ));
+DATA(insert OID = 1743 ( numeric PGNSP PGUID 12 f t t t f i 1 1700 "701" 100 0 0 100 float8_numeric - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1744 ( int4 PGNSP PGUID 12 f t t i 1 f 23 "1700" 100 0 0 100 numeric_int4 - _null_ ));
+DATA(insert OID = 1744 ( int4 PGNSP PGUID 12 f t f t f i 1 23 "1700" 100 0 0 100 numeric_int4 - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1745 ( float4 PGNSP PGUID 12 f t t i 1 f 700 "1700" 100 0 0 100 numeric_float4 - _null_ ));
+DATA(insert OID = 1745 ( float4 PGNSP PGUID 12 f t f t f i 1 700 "1700" 100 0 0 100 numeric_float4 - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1746 ( float8 PGNSP PGUID 12 f t t i 1 f 701 "1700" 100 0 0 100 numeric_float8 - _null_ ));
+DATA(insert OID = 1746 ( float8 PGNSP PGUID 12 f t f t f i 1 701 "1700" 100 0 0 100 numeric_float8 - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1747 ( time_pl_interval PGNSP PGUID 12 f t t i 2 f 1083 "1083 1186" 100 0 0 100 time_pl_interval - _null_ ));
+DATA(insert OID = 1747 ( time_pl_interval PGNSP PGUID 12 f t f t f i 2 1083 "1083 1186" 100 0 0 100 time_pl_interval - _null_ ));
DESCR("plus");
-DATA(insert OID = 1748 ( time_mi_interval PGNSP PGUID 12 f t t i 2 f 1083 "1083 1186" 100 0 0 100 time_mi_interval - _null_ ));
+DATA(insert OID = 1748 ( time_mi_interval PGNSP PGUID 12 f t f t f i 2 1083 "1083 1186" 100 0 0 100 time_mi_interval - _null_ ));
DESCR("minus");
-DATA(insert OID = 1749 ( timetz_pl_interval PGNSP PGUID 12 f t t i 2 f 1266 "1266 1186" 100 0 0 100 timetz_pl_interval - _null_ ));
+DATA(insert OID = 1749 ( timetz_pl_interval PGNSP PGUID 12 f t f t f i 2 1266 "1266 1186" 100 0 0 100 timetz_pl_interval - _null_ ));
DESCR("plus");
-DATA(insert OID = 1750 ( timetz_mi_interval PGNSP PGUID 12 f t t i 2 f 1266 "1266 1186" 100 0 0 100 timetz_mi_interval - _null_ ));
+DATA(insert OID = 1750 ( timetz_mi_interval PGNSP PGUID 12 f t f t f i 2 1266 "1266 1186" 100 0 0 100 timetz_mi_interval - _null_ ));
DESCR("minus");
-DATA(insert OID = 1764 ( numeric_inc PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100 numeric_inc - _null_ ));
+DATA(insert OID = 1764 ( numeric_inc PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100 numeric_inc - _null_ ));
DESCR("increment by one");
-DATA(insert OID = 1766 ( numeric_smaller PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100 numeric_smaller - _null_ ));
+DATA(insert OID = 1766 ( numeric_smaller PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100 numeric_smaller - _null_ ));
DESCR("smaller of two numbers");
-DATA(insert OID = 1767 ( numeric_larger PGNSP PGUID 12 f t t i 2 f 1700 "1700 1700" 100 0 0 100 numeric_larger - _null_ ));
+DATA(insert OID = 1767 ( numeric_larger PGNSP PGUID 12 f t f t f i 2 1700 "1700 1700" 100 0 0 100 numeric_larger - _null_ ));
DESCR("larger of two numbers");
-DATA(insert OID = 1769 ( numeric_cmp PGNSP PGUID 12 f t t i 2 f 23 "1700 1700" 100 0 0 100 numeric_cmp - _null_ ));
+DATA(insert OID = 1769 ( numeric_cmp PGNSP PGUID 12 f t f t f i 2 23 "1700 1700" 100 0 0 100 numeric_cmp - _null_ ));
DESCR("compare two numbers");
-DATA(insert OID = 1771 ( numeric_uminus PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100 numeric_uminus - _null_ ));
+DATA(insert OID = 1771 ( numeric_uminus PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100 numeric_uminus - _null_ ));
DESCR("negate");
-DATA(insert OID = 1779 ( int8 PGNSP PGUID 12 f t t i 1 f 20 "1700" 100 0 0 100 numeric_int8 - _null_ ));
+DATA(insert OID = 1779 ( int8 PGNSP PGUID 12 f t f t f i 1 20 "1700" 100 0 0 100 numeric_int8 - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1781 ( numeric PGNSP PGUID 12 f t t i 1 f 1700 "20" 100 0 0 100 int8_numeric - _null_ ));
+DATA(insert OID = 1781 ( numeric PGNSP PGUID 12 f t t t f i 1 1700 "20" 100 0 0 100 int8_numeric - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1782 ( numeric PGNSP PGUID 12 f t t i 1 f 1700 "21" 100 0 0 100 int2_numeric - _null_ ));
+DATA(insert OID = 1782 ( numeric PGNSP PGUID 12 f t t t f i 1 1700 "21" 100 0 0 100 int2_numeric - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1783 ( int2 PGNSP PGUID 12 f t t i 1 f 21 "1700" 100 0 0 100 numeric_int2 - _null_ ));
+DATA(insert OID = 1783 ( int2 PGNSP PGUID 12 f t f t f i 1 21 "1700" 100 0 0 100 numeric_int2 - _null_ ));
DESCR("(internal)");
/* formatting */
-DATA(insert OID = 1770 ( to_char PGNSP PGUID 12 f t t s 2 f 25 "1184 25" 100 0 0 100 timestamptz_to_char - _null_ ));
+DATA(insert OID = 1770 ( to_char PGNSP PGUID 12 f t f t f s 2 25 "1184 25" 100 0 0 100 timestamptz_to_char - _null_ ));
DESCR("format timestamp with time zone to text");
-DATA(insert OID = 1772 ( to_char PGNSP PGUID 12 f t t i 2 f 25 "1700 25" 100 0 0 100 numeric_to_char - _null_ ));
+DATA(insert OID = 1772 ( to_char PGNSP PGUID 12 f t f t f i 2 25 "1700 25" 100 0 0 100 numeric_to_char - _null_ ));
DESCR("format numeric to text");
-DATA(insert OID = 1773 ( to_char PGNSP PGUID 12 f t t i 2 f 25 "23 25" 100 0 0 100 int4_to_char - _null_ ));
+DATA(insert OID = 1773 ( to_char PGNSP PGUID 12 f t f t f i 2 25 "23 25" 100 0 0 100 int4_to_char - _null_ ));
DESCR("format int4 to text");
-DATA(insert OID = 1774 ( to_char PGNSP PGUID 12 f t t i 2 f 25 "20 25" 100 0 0 100 int8_to_char - _null_ ));
+DATA(insert OID = 1774 ( to_char PGNSP PGUID 12 f t f t f i 2 25 "20 25" 100 0 0 100 int8_to_char - _null_ ));
DESCR("format int8 to text");
-DATA(insert OID = 1775 ( to_char PGNSP PGUID 12 f t t i 2 f 25 "700 25" 100 0 0 100 float4_to_char - _null_ ));
+DATA(insert OID = 1775 ( to_char PGNSP PGUID 12 f t f t f i 2 25 "700 25" 100 0 0 100 float4_to_char - _null_ ));
DESCR("format float4 to text");
-DATA(insert OID = 1776 ( to_char PGNSP PGUID 12 f t t i 2 f 25 "701 25" 100 0 0 100 float8_to_char - _null_ ));
+DATA(insert OID = 1776 ( to_char PGNSP PGUID 12 f t f t f i 2 25 "701 25" 100 0 0 100 float8_to_char - _null_ ));
DESCR("format float8 to text");
-DATA(insert OID = 1777 ( to_number PGNSP PGUID 12 f t t i 2 f 1700 "25 25" 100 0 0 100 numeric_to_number - _null_ ));
+DATA(insert OID = 1777 ( to_number PGNSP PGUID 12 f t f t f i 2 1700 "25 25" 100 0 0 100 numeric_to_number - _null_ ));
DESCR("convert text to numeric");
-DATA(insert OID = 1778 ( to_timestamp PGNSP PGUID 12 f t t s 2 f 1184 "25 25" 100 0 0 100 to_timestamp - _null_ ));
+DATA(insert OID = 1778 ( to_timestamp PGNSP PGUID 12 f t f t f s 2 1184 "25 25" 100 0 0 100 to_timestamp - _null_ ));
DESCR("convert text to timestamp");
-DATA(insert OID = 1780 ( to_date PGNSP PGUID 12 f t t i 2 f 1082 "25 25" 100 0 0 100 to_date - _null_ ));
+DATA(insert OID = 1780 ( to_date PGNSP PGUID 12 f t f t f i 2 1082 "25 25" 100 0 0 100 to_date - _null_ ));
DESCR("convert text to date");
-DATA(insert OID = 1768 ( to_char PGNSP PGUID 12 f t t i 2 f 25 "1186 25" 100 0 0 100 interval_to_char - _null_ ));
+DATA(insert OID = 1768 ( to_char PGNSP PGUID 12 f t f t f i 2 25 "1186 25" 100 0 0 100 interval_to_char - _null_ ));
DESCR("format interval to text");
-DATA(insert OID = 1282 ( quote_ident PGNSP PGUID 12 f t t i 1 f 25 "25" 100 0 0 100 quote_ident - _null_ ));
+DATA(insert OID = 1282 ( quote_ident PGNSP PGUID 12 f t f t f i 1 25 "25" 100 0 0 100 quote_ident - _null_ ));
DESCR("quote an identifier for usage in a querystring");
-DATA(insert OID = 1283 ( quote_literal PGNSP PGUID 12 f t t i 1 f 25 "25" 100 0 0 100 quote_literal - _null_ ));
+DATA(insert OID = 1283 ( quote_literal PGNSP PGUID 12 f t f t f i 1 25 "25" 100 0 0 100 quote_literal - _null_ ));
DESCR("quote a literal for usage in a querystring");
-DATA(insert OID = 1798 ( oidin PGNSP PGUID 12 f t t i 1 f 26 "0" 100 0 0 100 oidin - _null_ ));
+DATA(insert OID = 1798 ( oidin PGNSP PGUID 12 f t f t f i 1 26 "0" 100 0 0 100 oidin - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1799 ( oidout PGNSP PGUID 12 f t t i 1 f 23 "0" 100 0 0 100 oidout - _null_ ));
+DATA(insert OID = 1799 ( oidout PGNSP PGUID 12 f t f t f i 1 23 "0" 100 0 0 100 oidout - _null_ ));
DESCR("(internal)");
-DATA(insert OID = 1810 ( bit_length PGNSP PGUID 14 f t t i 1 f 23 "17" 100 0 0 100 "select octet_length($1) * 8" - _null_ ));
+DATA(insert OID = 1810 ( bit_length PGNSP PGUID 14 f t f t f i 1 23 "17" 100 0 0 100 "select octet_length($1) * 8" - _null_ ));
DESCR("length in bits");
-DATA(insert OID = 1811 ( bit_length PGNSP PGUID 14 f t t i 1 f 23 "25" 100 0 0 100 "select octet_length($1) * 8" - _null_ ));
+DATA(insert OID = 1811 ( bit_length PGNSP PGUID 14 f t f t f i 1 23 "25" 100 0 0 100 "select octet_length($1) * 8" - _null_ ));
DESCR("length in bits");
-DATA(insert OID = 1812 ( bit_length PGNSP PGUID 14 f t t i 1 f 23 "1560" 100 0 0 100 "select length($1)" - _null_ ));
+DATA(insert OID = 1812 ( bit_length PGNSP PGUID 14 f t f t f i 1 23 "1560" 100 0 0 100 "select length($1)" - _null_ ));
DESCR("length in bits");
/* Selectivity estimators for LIKE and related operators */
-DATA(insert OID = 1814 ( iclikesel PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100 iclikesel - _null_ ));
+DATA(insert OID = 1814 ( iclikesel PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100 iclikesel - _null_ ));
DESCR("restriction selectivity of ILIKE");
-DATA(insert OID = 1815 ( icnlikesel PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100 icnlikesel - _null_ ));
+DATA(insert OID = 1815 ( icnlikesel PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100 icnlikesel - _null_ ));
DESCR("restriction selectivity of NOT ILIKE");
-DATA(insert OID = 1816 ( iclikejoinsel PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100 iclikejoinsel - _null_ ));
+DATA(insert OID = 1816 ( iclikejoinsel PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100 iclikejoinsel - _null_ ));
DESCR("join selectivity of ILIKE");
-DATA(insert OID = 1817 ( icnlikejoinsel PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100 icnlikejoinsel - _null_ ));
+DATA(insert OID = 1817 ( icnlikejoinsel PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100 icnlikejoinsel - _null_ ));
DESCR("join selectivity of NOT ILIKE");
-DATA(insert OID = 1818 ( regexeqsel PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100 regexeqsel - _null_ ));
+DATA(insert OID = 1818 ( regexeqsel PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100 regexeqsel - _null_ ));
DESCR("restriction selectivity of regex match");
-DATA(insert OID = 1819 ( likesel PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100 likesel - _null_ ));
+DATA(insert OID = 1819 ( likesel PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100 likesel - _null_ ));
DESCR("restriction selectivity of LIKE");
-DATA(insert OID = 1820 ( icregexeqsel PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100 icregexeqsel - _null_ ));
+DATA(insert OID = 1820 ( icregexeqsel PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100 icregexeqsel - _null_ ));
DESCR("restriction selectivity of case-insensitive regex match");
-DATA(insert OID = 1821 ( regexnesel PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100 regexnesel - _null_ ));
+DATA(insert OID = 1821 ( regexnesel PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100 regexnesel - _null_ ));
DESCR("restriction selectivity of regex non-match");
-DATA(insert OID = 1822 ( nlikesel PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100 nlikesel - _null_ ));
+DATA(insert OID = 1822 ( nlikesel PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100 nlikesel - _null_ ));
DESCR("restriction selectivity of NOT LIKE");
-DATA(insert OID = 1823 ( icregexnesel PGNSP PGUID 12 f t t s 4 f 701 "0 26 0 23" 100 0 0 100 icregexnesel - _null_ ));
+DATA(insert OID = 1823 ( icregexnesel PGNSP PGUID 12 f t f t f s 4 701 "0 26 0 23" 100 0 0 100 icregexnesel - _null_ ));
DESCR("restriction selectivity of case-insensitive regex non-match");
-DATA(insert OID = 1824 ( regexeqjoinsel PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100 regexeqjoinsel - _null_ ));
+DATA(insert OID = 1824 ( regexeqjoinsel PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100 regexeqjoinsel - _null_ ));
DESCR("join selectivity of regex match");
-DATA(insert OID = 1825 ( likejoinsel PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100 likejoinsel - _null_ ));
+DATA(insert OID = 1825 ( likejoinsel PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100 likejoinsel - _null_ ));
DESCR("join selectivity of LIKE");
-DATA(insert OID = 1826 ( icregexeqjoinsel PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100 icregexeqjoinsel - _null_ ));
+DATA(insert OID = 1826 ( icregexeqjoinsel PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100 icregexeqjoinsel - _null_ ));
DESCR("join selectivity of case-insensitive regex match");
-DATA(insert OID = 1827 ( regexnejoinsel PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100 regexnejoinsel - _null_ ));
+DATA(insert OID = 1827 ( regexnejoinsel PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100 regexnejoinsel - _null_ ));
DESCR("join selectivity of regex non-match");
-DATA(insert OID = 1828 ( nlikejoinsel PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100 nlikejoinsel - _null_ ));
+DATA(insert OID = 1828 ( nlikejoinsel PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100 nlikejoinsel - _null_ ));
DESCR("join selectivity of NOT LIKE");
-DATA(insert OID = 1829 ( icregexnejoinsel PGNSP PGUID 12 f t t s 3 f 701 "0 26 0" 100 0 0 100 icregexnejoinsel - _null_ ));
+DATA(insert OID = 1829 ( icregexnejoinsel PGNSP PGUID 12 f t f t f s 3 701 "0 26 0" 100 0 0 100 icregexnejoinsel - _null_ ));
DESCR("join selectivity of case-insensitive regex non-match");
/* Aggregate-related functions */
-DATA(insert OID = 1830 ( float8_avg PGNSP PGUID 12 f t t i 1 f 701 "1022" 100 0 0 100 float8_avg - _null_ ));
+DATA(insert OID = 1830 ( float8_avg PGNSP PGUID 12 f t f t f i 1 701 "1022" 100 0 0 100 float8_avg - _null_ ));
DESCR("AVG aggregate final function");
-DATA(insert OID = 1831 ( float8_variance PGNSP PGUID 12 f t t i 1 f 701 "1022" 100 0 0 100 float8_variance - _null_ ));
+DATA(insert OID = 1831 ( float8_variance PGNSP PGUID 12 f t f t f i 1 701 "1022" 100 0 0 100 float8_variance - _null_ ));
DESCR("VARIANCE aggregate final function");
-DATA(insert OID = 1832 ( float8_stddev PGNSP PGUID 12 f t t i 1 f 701 "1022" 100 0 0 100 float8_stddev - _null_ ));
+DATA(insert OID = 1832 ( float8_stddev PGNSP PGUID 12 f t f t f i 1 701 "1022" 100 0 0 100 float8_stddev - _null_ ));
DESCR("STDDEV aggregate final function");
-DATA(insert OID = 1833 ( numeric_accum PGNSP PGUID 12 f t t i 2 f 1231 "1231 1700" 100 0 0 100 numeric_accum - _null_ ));
+DATA(insert OID = 1833 ( numeric_accum PGNSP PGUID 12 f t f t f i 2 1231 "1231 1700" 100 0 0 100 numeric_accum - _null_ ));
DESCR("aggregate transition function");
-DATA(insert OID = 1834 ( int2_accum PGNSP PGUID 12 f t t i 2 f 1231 "1231 21" 100 0 0 100 int2_accum - _null_ ));
+DATA(insert OID = 1834 ( int2_accum PGNSP PGUID 12 f t f t f i 2 1231 "1231 21" 100 0 0 100 int2_accum - _null_ ));
DESCR("aggregate transition function");
-DATA(insert OID = 1835 ( int4_accum PGNSP PGUID 12 f t t i 2 f 1231 "1231 23" 100 0 0 100 int4_accum - _null_ ));
+DATA(insert OID = 1835 ( int4_accum PGNSP PGUID 12 f t f t f i 2 1231 "1231 23" 100 0 0 100 int4_accum - _null_ ));
DESCR("aggregate transition function");
-DATA(insert OID = 1836 ( int8_accum PGNSP PGUID 12 f t t i 2 f 1231 "1231 20" 100 0 0 100 int8_accum - _null_ ));
+DATA(insert OID = 1836 ( int8_accum PGNSP PGUID 12 f t f t f i 2 1231 "1231 20" 100 0 0 100 int8_accum - _null_ ));
DESCR("aggregate transition function");
-DATA(insert OID = 1837 ( numeric_avg PGNSP PGUID 12 f t t i 1 f 1700 "1231" 100 0 0 100 numeric_avg - _null_ ));
+DATA(insert OID = 1837 ( numeric_avg PGNSP PGUID 12 f t f t f i 1 1700 "1231" 100 0 0 100 numeric_avg - _null_ ));
DESCR("AVG aggregate final function");
-DATA(insert OID = 1838 ( numeric_variance PGNSP PGUID 12 f t t i 1 f 1700 "1231" 100 0 0 100 numeric_variance - _null_ ));
+DATA(insert OID = 1838 ( numeric_variance PGNSP PGUID 12 f t f t f i 1 1700 "1231" 100 0 0 100 numeric_variance - _null_ ));
DESCR("VARIANCE aggregate final function");
-DATA(insert OID = 1839 ( numeric_stddev PGNSP PGUID 12 f t t i 1 f 1700 "1231" 100 0 0 100 numeric_stddev - _null_ ));
+DATA(insert OID = 1839 ( numeric_stddev PGNSP PGUID 12 f t f t f i 1 1700 "1231" 100 0 0 100 numeric_stddev - _null_ ));
DESCR("STDDEV aggregate final function");
-DATA(insert OID = 1840 ( int2_sum PGNSP PGUID 12 f t f i 2 f 20 "20 21" 100 0 0 100 int2_sum - _null_ ));
+DATA(insert OID = 1840 ( int2_sum PGNSP PGUID 12 f t f f f i 2 20 "20 21" 100 0 0 100 int2_sum - _null_ ));
DESCR("SUM(int2) transition function");
-DATA(insert OID = 1841 ( int4_sum PGNSP PGUID 12 f t f i 2 f 20 "20 23" 100 0 0 100 int4_sum - _null_ ));
+DATA(insert OID = 1841 ( int4_sum PGNSP PGUID 12 f t f f f i 2 20 "20 23" 100 0 0 100 int4_sum - _null_ ));
DESCR("SUM(int4) transition function");
-DATA(insert OID = 1842 ( int8_sum PGNSP PGUID 12 f t f i 2 f 1700 "1700 20" 100 0 0 100 int8_sum - _null_ ));
+DATA(insert OID = 1842 ( int8_sum PGNSP PGUID 12 f t f f f i 2 1700 "1700 20" 100 0 0 100 int8_sum - _null_ ));
DESCR("SUM(int8) transition function");
-DATA(insert OID = 1843 ( interval_accum PGNSP PGUID 12 f t t i 2 f 1187 "1187 1186" 100 0 0 100 interval_accum - _null_ ));
+DATA(insert OID = 1843 ( interval_accum PGNSP PGUID 12 f t f t f i 2 1187 "1187 1186" 100 0 0 100 interval_accum - _null_ ));
DESCR("aggregate transition function");
-DATA(insert OID = 1844 ( interval_avg PGNSP PGUID 12 f t t i 1 f 1186 "1187" 100 0 0 100 interval_avg - _null_ ));
+DATA(insert OID = 1844 ( interval_avg PGNSP PGUID 12 f t f t f i 1 1186 "1187" 100 0 0 100 interval_avg - _null_ ));
DESCR("AVG aggregate final function");
-DATA(insert OID = 1962 ( int2_avg_accum PGNSP PGUID 12 f t t i 2 f 1016 "1016 21" 100 0 0 100 int2_avg_accum - _null_ ));
+DATA(insert OID = 1962 ( int2_avg_accum PGNSP PGUID 12 f t f t f i 2 1016 "1016 21" 100 0 0 100 int2_avg_accum - _null_ ));
DESCR("AVG(int2) transition function");
-DATA(insert OID = 1963 ( int4_avg_accum PGNSP PGUID 12 f t t i 2 f 1016 "1016 23" 100 0 0 100 int4_avg_accum - _null_ ));
+DATA(insert OID = 1963 ( int4_avg_accum PGNSP PGUID 12 f t f t f i 2 1016 "1016 23" 100 0 0 100 int4_avg_accum - _null_ ));
DESCR("AVG(int4) transition function");
-DATA(insert OID = 1964 ( int8_avg PGNSP PGUID 12 f t t i 1 f 1700 "1016" 100 0 0 100 int8_avg - _null_ ));
+DATA(insert OID = 1964 ( int8_avg PGNSP PGUID 12 f t f t f i 1 1700 "1016" 100 0 0 100 int8_avg - _null_ ));
DESCR("AVG(int) aggregate final function");
/* To ASCII conversion */
-DATA(insert OID = 1845 ( to_ascii PGNSP PGUID 12 f t t i 1 f 25 "25" 100 0 0 100 to_ascii_default - _null_ ));
+DATA(insert OID = 1845 ( to_ascii PGNSP PGUID 12 f t f t f i 1 25 "25" 100 0 0 100 to_ascii_default - _null_ ));
DESCR("encode text from DB encoding to ASCII text");
-DATA(insert OID = 1846 ( to_ascii PGNSP PGUID 12 f t t i 2 f 25 "25 23" 100 0 0 100 to_ascii_enc - _null_ ));
+DATA(insert OID = 1846 ( to_ascii PGNSP PGUID 12 f t f t f i 2 25 "25 23" 100 0 0 100 to_ascii_enc - _null_ ));
DESCR("encode text from encoding to ASCII text");
-DATA(insert OID = 1847 ( to_ascii PGNSP PGUID 12 f t t i 2 f 25 "25 19" 100 0 0 100 to_ascii_encname - _null_ ));
+DATA(insert OID = 1847 ( to_ascii PGNSP PGUID 12 f t f t f i 2 25 "25 19" 100 0 0 100 to_ascii_encname - _null_ ));
DESCR("encode text from encoding to ASCII text");
-DATA(insert OID = 1848 ( interval_pl_time PGNSP PGUID 12 f t t i 2 f 1083 "1186 1083" 100 0 0 100 interval_pl_time - _null_ ));
+DATA(insert OID = 1848 ( interval_pl_time PGNSP PGUID 12 f t f t f i 2 1083 "1186 1083" 100 0 0 100 interval_pl_time - _null_ ));
DESCR("plus");
-DATA(insert OID = 1850 ( int28eq PGNSP PGUID 12 f t t i 2 f 16 "21 20" 100 0 0 100 int28eq - _null_ ));
+DATA(insert OID = 1850 ( int28eq PGNSP PGUID 12 f t f t f i 2 16 "21 20" 100 0 0 100 int28eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 1851 ( int28ne PGNSP PGUID 12 f t t i 2 f 16 "21 20" 100 0 0 100 int28ne - _null_ ));
+DATA(insert OID = 1851 ( int28ne PGNSP PGUID 12 f t f t f i 2 16 "21 20" 100 0 0 100 int28ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 1852 ( int28lt PGNSP PGUID 12 f t t i 2 f 16 "21 20" 100 0 0 100 int28lt - _null_ ));
+DATA(insert OID = 1852 ( int28lt PGNSP PGUID 12 f t f t f i 2 16 "21 20" 100 0 0 100 int28lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 1853 ( int28gt PGNSP PGUID 12 f t t i 2 f 16 "21 20" 100 0 0 100 int28gt - _null_ ));
+DATA(insert OID = 1853 ( int28gt PGNSP PGUID 12 f t f t f i 2 16 "21 20" 100 0 0 100 int28gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 1854 ( int28le PGNSP PGUID 12 f t t i 2 f 16 "21 20" 100 0 0 100 int28le - _null_ ));
+DATA(insert OID = 1854 ( int28le PGNSP PGUID 12 f t f t f i 2 16 "21 20" 100 0 0 100 int28le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 1855 ( int28ge PGNSP PGUID 12 f t t i 2 f 16 "21 20" 100 0 0 100 int28ge - _null_ ));
+DATA(insert OID = 1855 ( int28ge PGNSP PGUID 12 f t f t f i 2 16 "21 20" 100 0 0 100 int28ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 1856 ( int82eq PGNSP PGUID 12 f t t i 2 f 16 "20 21" 100 0 0 100 int82eq - _null_ ));
+DATA(insert OID = 1856 ( int82eq PGNSP PGUID 12 f t f t f i 2 16 "20 21" 100 0 0 100 int82eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 1857 ( int82ne PGNSP PGUID 12 f t t i 2 f 16 "20 21" 100 0 0 100 int82ne - _null_ ));
+DATA(insert OID = 1857 ( int82ne PGNSP PGUID 12 f t f t f i 2 16 "20 21" 100 0 0 100 int82ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 1858 ( int82lt PGNSP PGUID 12 f t t i 2 f 16 "20 21" 100 0 0 100 int82lt - _null_ ));
+DATA(insert OID = 1858 ( int82lt PGNSP PGUID 12 f t f t f i 2 16 "20 21" 100 0 0 100 int82lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 1859 ( int82gt PGNSP PGUID 12 f t t i 2 f 16 "20 21" 100 0 0 100 int82gt - _null_ ));
+DATA(insert OID = 1859 ( int82gt PGNSP PGUID 12 f t f t f i 2 16 "20 21" 100 0 0 100 int82gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 1860 ( int82le PGNSP PGUID 12 f t t i 2 f 16 "20 21" 100 0 0 100 int82le - _null_ ));
+DATA(insert OID = 1860 ( int82le PGNSP PGUID 12 f t f t f i 2 16 "20 21" 100 0 0 100 int82le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 1861 ( int82ge PGNSP PGUID 12 f t t i 2 f 16 "20 21" 100 0 0 100 int82ge - _null_ ));
+DATA(insert OID = 1861 ( int82ge PGNSP PGUID 12 f t f t f i 2 16 "20 21" 100 0 0 100 int82ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 1892 ( int2and PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100 int2and - _null_ ));
+DATA(insert OID = 1892 ( int2and PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100 int2and - _null_ ));
DESCR("binary and");
-DATA(insert OID = 1893 ( int2or PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100 int2or - _null_ ));
+DATA(insert OID = 1893 ( int2or PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100 int2or - _null_ ));
DESCR("binary or");
-DATA(insert OID = 1894 ( int2xor PGNSP PGUID 12 f t t i 2 f 21 "21 21" 100 0 0 100 int2xor - _null_ ));
+DATA(insert OID = 1894 ( int2xor PGNSP PGUID 12 f t f t f i 2 21 "21 21" 100 0 0 100 int2xor - _null_ ));
DESCR("binary xor");
-DATA(insert OID = 1895 ( int2not PGNSP PGUID 12 f t t i 1 f 21 "21" 100 0 0 100 int2not - _null_ ));
+DATA(insert OID = 1895 ( int2not PGNSP PGUID 12 f t f t f i 1 21 "21" 100 0 0 100 int2not - _null_ ));
DESCR("binary not");
-DATA(insert OID = 1896 ( int2shl PGNSP PGUID 12 f t t i 2 f 21 "21 23" 100 0 0 100 int2shl - _null_ ));
+DATA(insert OID = 1896 ( int2shl PGNSP PGUID 12 f t f t f i 2 21 "21 23" 100 0 0 100 int2shl - _null_ ));
DESCR("binary shift left");
-DATA(insert OID = 1897 ( int2shr PGNSP PGUID 12 f t t i 2 f 21 "21 23" 100 0 0 100 int2shr - _null_ ));
+DATA(insert OID = 1897 ( int2shr PGNSP PGUID 12 f t f t f i 2 21 "21 23" 100 0 0 100 int2shr - _null_ ));
DESCR("binary shift right");
-DATA(insert OID = 1898 ( int4and PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100 int4and - _null_ ));
+DATA(insert OID = 1898 ( int4and PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100 int4and - _null_ ));
DESCR("binary and");
-DATA(insert OID = 1899 ( int4or PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100 int4or - _null_ ));
+DATA(insert OID = 1899 ( int4or PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100 int4or - _null_ ));
DESCR("binary or");
-DATA(insert OID = 1900 ( int4xor PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100 int4xor - _null_ ));
+DATA(insert OID = 1900 ( int4xor PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100 int4xor - _null_ ));
DESCR("binary xor");
-DATA(insert OID = 1901 ( int4not PGNSP PGUID 12 f t t i 1 f 23 "23" 100 0 0 100 int4not - _null_ ));
+DATA(insert OID = 1901 ( int4not PGNSP PGUID 12 f t f t f i 1 23 "23" 100 0 0 100 int4not - _null_ ));
DESCR("binary not");
-DATA(insert OID = 1902 ( int4shl PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100 int4shl - _null_ ));
+DATA(insert OID = 1902 ( int4shl PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100 int4shl - _null_ ));
DESCR("binary shift left");
-DATA(insert OID = 1903 ( int4shr PGNSP PGUID 12 f t t i 2 f 23 "23 23" 100 0 0 100 int4shr - _null_ ));
+DATA(insert OID = 1903 ( int4shr PGNSP PGUID 12 f t f t f i 2 23 "23 23" 100 0 0 100 int4shr - _null_ ));
DESCR("binary shift right");
-DATA(insert OID = 1904 ( int8and PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100 int8and - _null_ ));
+DATA(insert OID = 1904 ( int8and PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100 int8and - _null_ ));
DESCR("binary and");
-DATA(insert OID = 1905 ( int8or PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100 int8or - _null_ ));
+DATA(insert OID = 1905 ( int8or PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100 int8or - _null_ ));
DESCR("binary or");
-DATA(insert OID = 1906 ( int8xor PGNSP PGUID 12 f t t i 2 f 20 "20 20" 100 0 0 100 int8xor - _null_ ));
+DATA(insert OID = 1906 ( int8xor PGNSP PGUID 12 f t f t f i 2 20 "20 20" 100 0 0 100 int8xor - _null_ ));
DESCR("binary xor");
-DATA(insert OID = 1907 ( int8not PGNSP PGUID 12 f t t i 1 f 20 "20" 100 0 0 100 int8not - _null_ ));
+DATA(insert OID = 1907 ( int8not PGNSP PGUID 12 f t f t f i 1 20 "20" 100 0 0 100 int8not - _null_ ));
DESCR("binary not");
-DATA(insert OID = 1908 ( int8shl PGNSP PGUID 12 f t t i 2 f 20 "20 23" 100 0 0 100 int8shl - _null_ ));
+DATA(insert OID = 1908 ( int8shl PGNSP PGUID 12 f t f t f i 2 20 "20 23" 100 0 0 100 int8shl - _null_ ));
DESCR("binary shift left");
-DATA(insert OID = 1909 ( int8shr PGNSP PGUID 12 f t t i 2 f 20 "20 23" 100 0 0 100 int8shr - _null_ ));
+DATA(insert OID = 1909 ( int8shr PGNSP PGUID 12 f t f t f i 2 20 "20 23" 100 0 0 100 int8shr - _null_ ));
DESCR("binary shift right");
-DATA(insert OID = 1910 ( int8up PGNSP PGUID 12 f t t i 1 f 20 "20" 100 0 0 100 int8up - _null_ ));
+DATA(insert OID = 1910 ( int8up PGNSP PGUID 12 f t f t f i 1 20 "20" 100 0 0 100 int8up - _null_ ));
DESCR("unary plus");
-DATA(insert OID = 1911 ( int2up PGNSP PGUID 12 f t t i 1 f 21 "21" 100 0 0 100 int2up - _null_ ));
+DATA(insert OID = 1911 ( int2up PGNSP PGUID 12 f t f t f i 1 21 "21" 100 0 0 100 int2up - _null_ ));
DESCR("unary plus");
-DATA(insert OID = 1912 ( int4up PGNSP PGUID 12 f t t i 1 f 23 "23" 100 0 0 100 int4up - _null_ ));
+DATA(insert OID = 1912 ( int4up PGNSP PGUID 12 f t f t f i 1 23 "23" 100 0 0 100 int4up - _null_ ));
DESCR("unary plus");
-DATA(insert OID = 1913 ( float4up PGNSP PGUID 12 f t t i 1 f 700 "700" 100 0 0 100 float4up - _null_ ));
+DATA(insert OID = 1913 ( float4up PGNSP PGUID 12 f t f t f i 1 700 "700" 100 0 0 100 float4up - _null_ ));
DESCR("unary plus");
-DATA(insert OID = 1914 ( float8up PGNSP PGUID 12 f t t i 1 f 701 "701" 100 0 0 100 float8up - _null_ ));
+DATA(insert OID = 1914 ( float8up PGNSP PGUID 12 f t f t f i 1 701 "701" 100 0 0 100 float8up - _null_ ));
DESCR("unary plus");
-DATA(insert OID = 1915 ( numeric_uplus PGNSP PGUID 12 f t t i 1 f 1700 "1700" 100 0 0 100 numeric_uplus - _null_ ));
+DATA(insert OID = 1915 ( numeric_uplus PGNSP PGUID 12 f t f t f i 1 1700 "1700" 100 0 0 100 numeric_uplus - _null_ ));
DESCR("unary plus");
-DATA(insert OID = 1922 ( has_table_privilege PGNSP PGUID 12 f t t s 3 f 16 "19 19 25" 100 0 0 100 has_table_privilege_name_name - _null_ ));
+DATA(insert OID = 1922 ( has_table_privilege PGNSP PGUID 12 f t f t f s 3 16 "19 19 25" 100 0 0 100 has_table_privilege_name_name - _null_ ));
DESCR("user privilege on relation by username, relname");
-DATA(insert OID = 1923 ( has_table_privilege PGNSP PGUID 12 f t t s 3 f 16 "19 26 25" 100 0 0 100 has_table_privilege_name_id - _null_ ));
+DATA(insert OID = 1923 ( has_table_privilege PGNSP PGUID 12 f t f t f s 3 16 "19 26 25" 100 0 0 100 has_table_privilege_name_id - _null_ ));
DESCR("user privilege on relation by username, rel oid");
-DATA(insert OID = 1924 ( has_table_privilege PGNSP PGUID 12 f t t s 3 f 16 "23 19 25" 100 0 0 100 has_table_privilege_id_name - _null_ ));
+DATA(insert OID = 1924 ( has_table_privilege PGNSP PGUID 12 f t f t f s 3 16 "23 19 25" 100 0 0 100 has_table_privilege_id_name - _null_ ));
DESCR("user privilege on relation by usesysid, relname");
-DATA(insert OID = 1925 ( has_table_privilege PGNSP PGUID 12 f t t s 3 f 16 "23 26 25" 100 0 0 100 has_table_privilege_id_id - _null_ ));
+DATA(insert OID = 1925 ( has_table_privilege PGNSP PGUID 12 f t f t f s 3 16 "23 26 25" 100 0 0 100 has_table_privilege_id_id - _null_ ));
DESCR("user privilege on relation by usesysid, rel oid");
-DATA(insert OID = 1926 ( has_table_privilege PGNSP PGUID 12 f t t s 2 f 16 "19 25" 100 0 0 100 has_table_privilege_name - _null_ ));
+DATA(insert OID = 1926 ( has_table_privilege PGNSP PGUID 12 f t f t f s 2 16 "19 25" 100 0 0 100 has_table_privilege_name - _null_ ));
DESCR("current user privilege on relation by relname");
-DATA(insert OID = 1927 ( has_table_privilege PGNSP PGUID 12 f t t s 2 f 16 "26 25" 100 0 0 100 has_table_privilege_id - _null_ ));
+DATA(insert OID = 1927 ( has_table_privilege PGNSP PGUID 12 f t f t f s 2 16 "26 25" 100 0 0 100 has_table_privilege_id - _null_ ));
DESCR("current user privilege on relation by rel oid");
-DATA(insert OID = 1928 ( pg_stat_get_numscans PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100 pg_stat_get_numscans - _null_ ));
+DATA(insert OID = 1928 ( pg_stat_get_numscans PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100 pg_stat_get_numscans - _null_ ));
DESCR("Statistics: Number of scans done for table/index");
-DATA(insert OID = 1929 ( pg_stat_get_tuples_returned PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100 pg_stat_get_tuples_returned - _null_ ));
+DATA(insert OID = 1929 ( pg_stat_get_tuples_returned PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100 pg_stat_get_tuples_returned - _null_ ));
DESCR("Statistics: Number of tuples read by seqscan");
-DATA(insert OID = 1930 ( pg_stat_get_tuples_fetched PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100 pg_stat_get_tuples_fetched - _null_ ));
+DATA(insert OID = 1930 ( pg_stat_get_tuples_fetched PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100 pg_stat_get_tuples_fetched - _null_ ));
DESCR("Statistics: Number of tuples fetched by idxscan");
-DATA(insert OID = 1931 ( pg_stat_get_tuples_inserted PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100 pg_stat_get_tuples_inserted - _null_ ));
+DATA(insert OID = 1931 ( pg_stat_get_tuples_inserted PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100 pg_stat_get_tuples_inserted - _null_ ));
DESCR("Statistics: Number of tuples inserted");
-DATA(insert OID = 1932 ( pg_stat_get_tuples_updated PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100 pg_stat_get_tuples_updated - _null_ ));
+DATA(insert OID = 1932 ( pg_stat_get_tuples_updated PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100 pg_stat_get_tuples_updated - _null_ ));
DESCR("Statistics: Number of tuples updated");
-DATA(insert OID = 1933 ( pg_stat_get_tuples_deleted PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100 pg_stat_get_tuples_deleted - _null_ ));
+DATA(insert OID = 1933 ( pg_stat_get_tuples_deleted PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100 pg_stat_get_tuples_deleted - _null_ ));
DESCR("Statistics: Number of tuples deleted");
-DATA(insert OID = 1934 ( pg_stat_get_blocks_fetched PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100 pg_stat_get_blocks_fetched - _null_ ));
+DATA(insert OID = 1934 ( pg_stat_get_blocks_fetched PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100 pg_stat_get_blocks_fetched - _null_ ));
DESCR("Statistics: Number of blocks fetched");
-DATA(insert OID = 1935 ( pg_stat_get_blocks_hit PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100 pg_stat_get_blocks_hit - _null_ ));
+DATA(insert OID = 1935 ( pg_stat_get_blocks_hit PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100 pg_stat_get_blocks_hit - _null_ ));
DESCR("Statistics: Number of blocks found in cache");
-DATA(insert OID = 1936 ( pg_stat_get_backend_idset PGNSP PGUID 12 f t t s 0 t 23 "" 100 0 0 100 pg_stat_get_backend_idset - _null_ ));
+DATA(insert OID = 1936 ( pg_stat_get_backend_idset PGNSP PGUID 12 f t f t t s 0 23 "" 100 0 0 100 pg_stat_get_backend_idset - _null_ ));
DESCR("Statistics: Currently active backend IDs");
-DATA(insert OID = 1937 ( pg_stat_get_backend_pid PGNSP PGUID 12 f t t s 1 f 23 "23" 100 0 0 100 pg_stat_get_backend_pid - _null_ ));
+DATA(insert OID = 1937 ( pg_stat_get_backend_pid PGNSP PGUID 12 f t f t f s 1 23 "23" 100 0 0 100 pg_stat_get_backend_pid - _null_ ));
DESCR("Statistics: PID of backend");
-DATA(insert OID = 1938 ( pg_stat_get_backend_dbid PGNSP PGUID 12 f t t s 1 f 26 "23" 100 0 0 100 pg_stat_get_backend_dbid - _null_ ));
+DATA(insert OID = 1938 ( pg_stat_get_backend_dbid PGNSP PGUID 12 f t f t f s 1 26 "23" 100 0 0 100 pg_stat_get_backend_dbid - _null_ ));
DESCR("Statistics: Database ID of backend");
-DATA(insert OID = 1939 ( pg_stat_get_backend_userid PGNSP PGUID 12 f t t s 1 f 26 "23" 100 0 0 100 pg_stat_get_backend_userid - _null_ ));
+DATA(insert OID = 1939 ( pg_stat_get_backend_userid PGNSP PGUID 12 f t f t f s 1 26 "23" 100 0 0 100 pg_stat_get_backend_userid - _null_ ));
DESCR("Statistics: User ID of backend");
-DATA(insert OID = 1940 ( pg_stat_get_backend_activity PGNSP PGUID 12 f t t s 1 f 25 "23" 100 0 0 100 pg_stat_get_backend_activity - _null_ ));
+DATA(insert OID = 1940 ( pg_stat_get_backend_activity PGNSP PGUID 12 f t f t f s 1 25 "23" 100 0 0 100 pg_stat_get_backend_activity - _null_ ));
DESCR("Statistics: Current query of backend");
-DATA(insert OID = 1941 ( pg_stat_get_db_numbackends PGNSP PGUID 12 f t t s 1 f 23 "26" 100 0 0 100 pg_stat_get_db_numbackends - _null_ ));
+DATA(insert OID = 1941 ( pg_stat_get_db_numbackends PGNSP PGUID 12 f t f t f s 1 23 "26" 100 0 0 100 pg_stat_get_db_numbackends - _null_ ));
DESCR("Statistics: Number of backends in database");
-DATA(insert OID = 1942 ( pg_stat_get_db_xact_commit PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100 pg_stat_get_db_xact_commit - _null_ ));
+DATA(insert OID = 1942 ( pg_stat_get_db_xact_commit PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100 pg_stat_get_db_xact_commit - _null_ ));
DESCR("Statistics: Transactions committed");
-DATA(insert OID = 1943 ( pg_stat_get_db_xact_rollback PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100 pg_stat_get_db_xact_rollback - _null_ ));
+DATA(insert OID = 1943 ( pg_stat_get_db_xact_rollback PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100 pg_stat_get_db_xact_rollback - _null_ ));
DESCR("Statistics: Transactions rolled back");
-DATA(insert OID = 1944 ( pg_stat_get_db_blocks_fetched PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100 pg_stat_get_db_blocks_fetched - _null_ ));
+DATA(insert OID = 1944 ( pg_stat_get_db_blocks_fetched PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100 pg_stat_get_db_blocks_fetched - _null_ ));
DESCR("Statistics: Blocks fetched for database");
-DATA(insert OID = 1945 ( pg_stat_get_db_blocks_hit PGNSP PGUID 12 f t t s 1 f 20 "26" 100 0 0 100 pg_stat_get_db_blocks_hit - _null_ ));
+DATA(insert OID = 1945 ( pg_stat_get_db_blocks_hit PGNSP PGUID 12 f t f t f s 1 20 "26" 100 0 0 100 pg_stat_get_db_blocks_hit - _null_ ));
DESCR("Statistics: Block found in cache for database");
-DATA(insert OID = 1946 ( encode PGNSP PGUID 12 f t t i 2 f 25 "17 25" 100 0 0 100 binary_encode - _null_ ));
+DATA(insert OID = 1946 ( encode PGNSP PGUID 12 f t f t f i 2 25 "17 25" 100 0 0 100 binary_encode - _null_ ));
DESCR("Convert bytea value into some ascii-only text string");
-DATA(insert OID = 1947 ( decode PGNSP PGUID 12 f t t i 2 f 17 "25 25" 100 0 0 100 binary_decode - _null_ ));
+DATA(insert OID = 1947 ( decode PGNSP PGUID 12 f t f t f i 2 17 "25 25" 100 0 0 100 binary_decode - _null_ ));
DESCR("Convert ascii-encoded text string into bytea value");
-DATA(insert OID = 1948 ( byteaeq PGNSP PGUID 12 f t t i 2 f 16 "17 17" 100 0 0 100 byteaeq - _null_ ));
+DATA(insert OID = 1948 ( byteaeq PGNSP PGUID 12 f t f t f i 2 16 "17 17" 100 0 0 100 byteaeq - _null_ ));
DESCR("equal");
-DATA(insert OID = 1949 ( bytealt PGNSP PGUID 12 f t t i 2 f 16 "17 17" 100 0 0 100 bytealt - _null_ ));
+DATA(insert OID = 1949 ( bytealt PGNSP PGUID 12 f t f t f i 2 16 "17 17" 100 0 0 100 bytealt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 1950 ( byteale PGNSP PGUID 12 f t t i 2 f 16 "17 17" 100 0 0 100 byteale - _null_ ));
+DATA(insert OID = 1950 ( byteale PGNSP PGUID 12 f t f t f i 2 16 "17 17" 100 0 0 100 byteale - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 1951 ( byteagt PGNSP PGUID 12 f t t i 2 f 16 "17 17" 100 0 0 100 byteagt - _null_ ));
+DATA(insert OID = 1951 ( byteagt PGNSP PGUID 12 f t f t f i 2 16 "17 17" 100 0 0 100 byteagt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 1952 ( byteage PGNSP PGUID 12 f t t i 2 f 16 "17 17" 100 0 0 100 byteage - _null_ ));
+DATA(insert OID = 1952 ( byteage PGNSP PGUID 12 f t f t f i 2 16 "17 17" 100 0 0 100 byteage - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 1953 ( byteane PGNSP PGUID 12 f t t i 2 f 16 "17 17" 100 0 0 100 byteane - _null_ ));
+DATA(insert OID = 1953 ( byteane PGNSP PGUID 12 f t f t f i 2 16 "17 17" 100 0 0 100 byteane - _null_ ));
DESCR("not equal");
-DATA(insert OID = 1954 ( byteacmp PGNSP PGUID 12 f t t i 2 f 23 "17 17" 100 0 0 100 byteacmp - _null_ ));
+DATA(insert OID = 1954 ( byteacmp PGNSP PGUID 12 f t f t f i 2 23 "17 17" 100 0 0 100 byteacmp - _null_ ));
DESCR("less-equal-greater");
-DATA(insert OID = 1961 ( timestamp PGNSP PGUID 12 f t t i 2 f 1114 "1114 23" 100 0 0 100 timestamp_scale - _null_ ));
+DATA(insert OID = 1961 ( timestamp PGNSP PGUID 12 f t t t f i 2 1114 "1114 23" 100 0 0 100 timestamp_scale - _null_ ));
DESCR("adjust time precision");
-DATA(insert OID = 1965 ( oidlarger PGNSP PGUID 12 f t t i 2 f 26 "26 26" 100 0 0 100 oidlarger - _null_ ));
+DATA(insert OID = 1965 ( oidlarger PGNSP PGUID 12 f t f t f i 2 26 "26 26" 100 0 0 100 oidlarger - _null_ ));
DESCR("larger of two");
-DATA(insert OID = 1966 ( oidsmaller PGNSP PGUID 12 f t t i 2 f 26 "26 26" 100 0 0 100 oidsmaller - _null_ ));
+DATA(insert OID = 1966 ( oidsmaller PGNSP PGUID 12 f t f t f i 2 26 "26 26" 100 0 0 100 oidsmaller - _null_ ));
DESCR("smaller of two");
-DATA(insert OID = 1967 ( timestamptz PGNSP PGUID 12 f t t i 2 f 1184 "1184 23" 100 0 0 100 timestamptz_scale - _null_ ));
+DATA(insert OID = 1967 ( timestamptz PGNSP PGUID 12 f t t t f i 2 1184 "1184 23" 100 0 0 100 timestamptz_scale - _null_ ));
DESCR("adjust time precision");
-DATA(insert OID = 1968 ( time PGNSP PGUID 12 f t t i 2 f 1083 "1083 23" 100 0 0 100 time_scale - _null_ ));
+DATA(insert OID = 1968 ( time PGNSP PGUID 12 f t t t f i 2 1083 "1083 23" 100 0 0 100 time_scale - _null_ ));
DESCR("adjust time precision");
-DATA(insert OID = 1969 ( timetz PGNSP PGUID 12 f t t i 2 f 1266 "1266 23" 100 0 0 100 timetz_scale - _null_ ));
+DATA(insert OID = 1969 ( timetz PGNSP PGUID 12 f t t t f i 2 1266 "1266 23" 100 0 0 100 timetz_scale - _null_ ));
DESCR("adjust time with time zone precision");
-DATA(insert OID = 2005 ( bytealike PGNSP PGUID 12 f t t i 2 f 16 "17 17" 100 0 0 100 bytealike - _null_ ));
+DATA(insert OID = 2005 ( bytealike PGNSP PGUID 12 f t f t f i 2 16 "17 17" 100 0 0 100 bytealike - _null_ ));
DESCR("matches LIKE expression");
-DATA(insert OID = 2006 ( byteanlike PGNSP PGUID 12 f t t i 2 f 16 "17 17" 100 0 0 100 byteanlike - _null_ ));
+DATA(insert OID = 2006 ( byteanlike PGNSP PGUID 12 f t f t f i 2 16 "17 17" 100 0 0 100 byteanlike - _null_ ));
DESCR("does not match LIKE expression");
-DATA(insert OID = 2007 ( like PGNSP PGUID 12 f t t i 2 f 16 "17 17" 100 0 0 100 bytealike - _null_ ));
+DATA(insert OID = 2007 ( like PGNSP PGUID 12 f t f t f i 2 16 "17 17" 100 0 0 100 bytealike - _null_ ));
DESCR("matches LIKE expression");
-DATA(insert OID = 2008 ( notlike PGNSP PGUID 12 f t t i 2 f 16 "17 17" 100 0 0 100 byteanlike - _null_ ));
+DATA(insert OID = 2008 ( notlike PGNSP PGUID 12 f t f t f i 2 16 "17 17" 100 0 0 100 byteanlike - _null_ ));
DESCR("does not match LIKE expression");
-DATA(insert OID = 2009 ( like_escape PGNSP PGUID 12 f t t i 2 f 17 "17 17" 100 0 0 100 like_escape_bytea - _null_ ));
+DATA(insert OID = 2009 ( like_escape PGNSP PGUID 12 f t f t f i 2 17 "17 17" 100 0 0 100 like_escape_bytea - _null_ ));
DESCR("convert match pattern to use backslash escapes");
-DATA(insert OID = 2010 ( length PGNSP PGUID 12 f t t i 1 f 23 "17" 100 0 0 100 byteaoctetlen - _null_ ));
+DATA(insert OID = 2010 ( length PGNSP PGUID 12 f t f t f i 1 23 "17" 100 0 0 100 byteaoctetlen - _null_ ));
DESCR("octet length");
-DATA(insert OID = 2011 ( byteacat PGNSP PGUID 12 f t t i 2 f 17 "17 17" 100 0 0 100 byteacat - _null_ ));
+DATA(insert OID = 2011 ( byteacat PGNSP PGUID 12 f t f t f i 2 17 "17 17" 100 0 0 100 byteacat - _null_ ));
DESCR("concatenate");
-DATA(insert OID = 2012 ( substring PGNSP PGUID 12 f t t i 3 f 17 "17 23 23" 100 0 0 100 bytea_substr - _null_ ));
+DATA(insert OID = 2012 ( substring PGNSP PGUID 12 f t f t f i 3 17 "17 23 23" 100 0 0 100 bytea_substr - _null_ ));
DESCR("return portion of string");
-DATA(insert OID = 2013 ( substring PGNSP PGUID 14 f t t i 2 f 17 "17 23" 100 0 0 100 "select substring($1, $2, -1)" - _null_ ));
+DATA(insert OID = 2013 ( substring PGNSP PGUID 14 f t f t f i 2 17 "17 23" 100 0 0 100 "select substring($1, $2, -1)" - _null_ ));
DESCR("return portion of string");
-DATA(insert OID = 2014 ( position PGNSP PGUID 12 f t t i 2 f 23 "17 17" 100 0 0 100 byteapos - _null_ ));
+DATA(insert OID = 2014 ( position PGNSP PGUID 12 f t f t f i 2 23 "17 17" 100 0 0 100 byteapos - _null_ ));
DESCR("return position of substring");
-DATA(insert OID = 2015 ( btrim PGNSP PGUID 12 f t t i 2 f 17 "17 17" 100 0 0 100 byteatrim - _null_ ));
+DATA(insert OID = 2015 ( btrim PGNSP PGUID 12 f t f t f i 2 17 "17 17" 100 0 0 100 byteatrim - _null_ ));
DESCR("trim both ends of string");
-DATA(insert OID = 2020 ( date_trunc PGNSP PGUID 12 f t t i 2 f 1114 "25 1114" 100 0 0 100 timestamp_trunc - _null_ ));
+DATA(insert OID = 2020 ( date_trunc PGNSP PGUID 12 f t f t f i 2 1114 "25 1114" 100 0 0 100 timestamp_trunc - _null_ ));
DESCR("truncate timestamp to specified units");
-DATA(insert OID = 2021 ( date_part PGNSP PGUID 12 f t t i 2 f 701 "25 1114" 100 0 0 100 timestamp_part - _null_ ));
+DATA(insert OID = 2021 ( date_part PGNSP PGUID 12 f t f t f i 2 701 "25 1114" 100 0 0 100 timestamp_part - _null_ ));
DESCR("extract field from timestamp");
-DATA(insert OID = 2022 ( timestamp PGNSP PGUID 12 f t t s 1 f 1114 "25" 100 0 0 100 text_timestamp - _null_ ));
+DATA(insert OID = 2022 ( timestamp PGNSP PGUID 12 f t f t f s 1 1114 "25" 100 0 0 100 text_timestamp - _null_ ));
DESCR("convert text to timestamp");
-DATA(insert OID = 2023 ( timestamp PGNSP PGUID 12 f t t s 1 f 1114 "702" 100 0 0 100 abstime_timestamp - _null_ ));
+DATA(insert OID = 2023 ( timestamp PGNSP PGUID 12 f t t t f s 1 1114 "702" 100 0 0 100 abstime_timestamp - _null_ ));
DESCR("convert abstime to timestamp");
-DATA(insert OID = 2024 ( timestamp PGNSP PGUID 12 f t t i 1 f 1114 "1082" 100 0 0 100 date_timestamp - _null_ ));
+DATA(insert OID = 2024 ( timestamp PGNSP PGUID 12 f t t t f i 1 1114 "1082" 100 0 0 100 date_timestamp - _null_ ));
DESCR("convert date to timestamp");
-DATA(insert OID = 2025 ( timestamp PGNSP PGUID 12 f t t i 2 f 1114 "1082 1083" 100 0 0 100 datetime_timestamp - _null_ ));
+DATA(insert OID = 2025 ( timestamp PGNSP PGUID 12 f t f t f i 2 1114 "1082 1083" 100 0 0 100 datetime_timestamp - _null_ ));
DESCR("convert date and time to timestamp");
-DATA(insert OID = 2026 ( timestamp PGNSP PGUID 14 f t t i 1 f 1114 "1114" 100 0 0 100 "select $1" - _null_ ));
-DESCR("convert (noop)");
-DATA(insert OID = 2027 ( timestamp PGNSP PGUID 12 f t t s 1 f 1114 "1184" 100 0 0 100 timestamptz_timestamp - _null_ ));
+DATA(insert OID = 2027 ( timestamp PGNSP PGUID 12 f t t t f s 1 1114 "1184" 100 0 0 100 timestamptz_timestamp - _null_ ));
DESCR("convert date and time with time zone to timestamp");
-DATA(insert OID = 2028 ( timestamptz PGNSP PGUID 12 f t t s 1 f 1184 "1114" 100 0 0 100 timestamp_timestamptz - _null_ ));
+DATA(insert OID = 2028 ( timestamptz PGNSP PGUID 12 f t t t f s 1 1184 "1114" 100 0 0 100 timestamp_timestamptz - _null_ ));
DESCR("convert date and time with time zone to timestamp");
-DATA(insert OID = 2029 ( date PGNSP PGUID 12 f t t i 1 f 1082 "1114" 100 0 0 100 timestamp_date - _null_ ));
+DATA(insert OID = 2029 ( date PGNSP PGUID 12 f t f t f i 1 1082 "1114" 100 0 0 100 timestamp_date - _null_ ));
DESCR("convert timestamp to date");
-DATA(insert OID = 2030 ( abstime PGNSP PGUID 12 f t t s 1 f 702 "1114" 100 0 0 100 timestamp_abstime - _null_ ));
+DATA(insert OID = 2030 ( abstime PGNSP PGUID 12 f t f t f s 1 702 "1114" 100 0 0 100 timestamp_abstime - _null_ ));
DESCR("convert timestamp to abstime");
-DATA(insert OID = 2031 ( timestamp_mi PGNSP PGUID 12 f t t i 2 f 1186 "1114 1114" 100 0 0 100 timestamp_mi - _null_ ));
+DATA(insert OID = 2031 ( timestamp_mi PGNSP PGUID 12 f t f t f i 2 1186 "1114 1114" 100 0 0 100 timestamp_mi - _null_ ));
DESCR("subtract");
-DATA(insert OID = 2032 ( timestamp_pl_span PGNSP PGUID 12 f t t i 2 f 1114 "1114 1186" 100 0 0 100 timestamp_pl_span - _null_ ));
+DATA(insert OID = 2032 ( timestamp_pl_span PGNSP PGUID 12 f t f t f i 2 1114 "1114 1186" 100 0 0 100 timestamp_pl_span - _null_ ));
DESCR("plus");
-DATA(insert OID = 2033 ( timestamp_mi_span PGNSP PGUID 12 f t t i 2 f 1114 "1114 1186" 100 0 0 100 timestamp_mi_span - _null_ ));
+DATA(insert OID = 2033 ( timestamp_mi_span PGNSP PGUID 12 f t f t f i 2 1114 "1114 1186" 100 0 0 100 timestamp_mi_span - _null_ ));
DESCR("minus");
-DATA(insert OID = 2034 ( text PGNSP PGUID 12 f t t s 1 f 25 "1114" 100 0 0 100 timestamp_text - _null_ ));
+DATA(insert OID = 2034 ( text PGNSP PGUID 12 f t t t f s 1 25 "1114" 100 0 0 100 timestamp_text - _null_ ));
DESCR("convert timestamp to text");
-DATA(insert OID = 2035 ( timestamp_smaller PGNSP PGUID 12 f t t i 2 f 1114 "1114 1114" 100 0 0 100 timestamp_smaller - _null_ ));
+DATA(insert OID = 2035 ( timestamp_smaller PGNSP PGUID 12 f t f t f i 2 1114 "1114 1114" 100 0 0 100 timestamp_smaller - _null_ ));
DESCR("smaller of two");
-DATA(insert OID = 2036 ( timestamp_larger PGNSP PGUID 12 f t t i 2 f 1114 "1114 1114" 100 0 0 100 timestamp_larger - _null_ ));
+DATA(insert OID = 2036 ( timestamp_larger PGNSP PGUID 12 f t f t f i 2 1114 "1114 1114" 100 0 0 100 timestamp_larger - _null_ ));
DESCR("larger of two");
-DATA(insert OID = 2037 ( timetz PGNSP PGUID 12 f t t s 2 f 1266 "25 1266" 100 0 0 100 timetz_zone - _null_ ));
+DATA(insert OID = 2037 ( timetz PGNSP PGUID 12 f t f t f s 2 1266 "25 1266" 100 0 0 100 timetz_zone - _null_ ));
DESCR("time with time zone");
-DATA(insert OID = 2038 ( timetz PGNSP PGUID 12 f t t i 2 f 1266 "1186 1266" 100 0 0 100 timetz_izone - _null_ ));
+DATA(insert OID = 2038 ( timetz PGNSP PGUID 12 f t f t f i 2 1266 "1186 1266" 100 0 0 100 timetz_izone - _null_ ));
DESCR("time with time zone");
-DATA(insert OID = 2041 ( overlaps PGNSP PGUID 12 f t f i 4 f 16 "1114 1114 1114 1114" 100 0 0 100 overlaps_timestamp - _null_ ));
+DATA(insert OID = 2041 ( overlaps PGNSP PGUID 12 f t f f f i 4 16 "1114 1114 1114 1114" 100 0 0 100 overlaps_timestamp - _null_ ));
DESCR("SQL92 interval comparison");
-DATA(insert OID = 2042 ( overlaps PGNSP PGUID 14 f t f i 4 f 16 "1114 1186 1114 1186" 100 0 0 100 "select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" - _null_ ));
+DATA(insert OID = 2042 ( overlaps PGNSP PGUID 14 f t f f f i 4 16 "1114 1186 1114 1186" 100 0 0 100 "select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" - _null_ ));
DESCR("SQL92 interval comparison");
-DATA(insert OID = 2043 ( overlaps PGNSP PGUID 14 f t f i 4 f 16 "1114 1114 1114 1186" 100 0 0 100 "select ($1, $2) overlaps ($3, ($3 + $4))" - _null_ ));
+DATA(insert OID = 2043 ( overlaps PGNSP PGUID 14 f t f f f i 4 16 "1114 1114 1114 1186" 100 0 0 100 "select ($1, $2) overlaps ($3, ($3 + $4))" - _null_ ));
DESCR("SQL92 interval comparison");
-DATA(insert OID = 2044 ( overlaps PGNSP PGUID 14 f t f i 4 f 16 "1114 1186 1114 1114" 100 0 0 100 "select ($1, ($1 + $2)) overlaps ($3, $4)" - _null_ ));
+DATA(insert OID = 2044 ( overlaps PGNSP PGUID 14 f t f f f i 4 16 "1114 1186 1114 1114" 100 0 0 100 "select ($1, ($1 + $2)) overlaps ($3, $4)" - _null_ ));
DESCR("SQL92 interval comparison");
-DATA(insert OID = 2045 ( timestamp_cmp PGNSP PGUID 12 f t t i 2 f 23 "1114 1114" 100 0 0 100 timestamp_cmp - _null_ ));
+DATA(insert OID = 2045 ( timestamp_cmp PGNSP PGUID 12 f t f t f i 2 23 "1114 1114" 100 0 0 100 timestamp_cmp - _null_ ));
DESCR("less-equal-greater");
-DATA(insert OID = 2046 ( time PGNSP PGUID 12 f t t i 1 f 1083 "1266" 100 0 0 100 timetz_time - _null_ ));
+DATA(insert OID = 2046 ( time PGNSP PGUID 12 f t t t f i 1 1083 "1266" 100 0 0 100 timetz_time - _null_ ));
DESCR("convert time with time zone to time");
-DATA(insert OID = 2047 ( timetz PGNSP PGUID 12 f t t s 1 f 1266 "1083" 100 0 0 100 time_timetz - _null_ ));
+DATA(insert OID = 2047 ( timetz PGNSP PGUID 12 f t t t f s 1 1266 "1083" 100 0 0 100 time_timetz - _null_ ));
DESCR("convert time to timetz");
-DATA(insert OID = 2048 ( isfinite PGNSP PGUID 12 f t t i 1 f 16 "1114" 100 0 0 100 timestamp_finite - _null_ ));
+DATA(insert OID = 2048 ( isfinite PGNSP PGUID 12 f t f t f i 1 16 "1114" 100 0 0 100 timestamp_finite - _null_ ));
DESCR("boolean test");
-DATA(insert OID = 2049 ( to_char PGNSP PGUID 12 f t t s 2 f 25 "1114 25" 100 0 0 100 timestamp_to_char - _null_ ));
+DATA(insert OID = 2049 ( to_char PGNSP PGUID 12 f t f t f s 2 25 "1114 25" 100 0 0 100 timestamp_to_char - _null_ ));
DESCR("format timestamp to text");
-DATA(insert OID = 2050 ( interval_mi_time PGNSP PGUID 14 f t t i 2 f 1083 "1186 1083" 100 0 0 100 "select $2 - $1" - _null_ ));
+DATA(insert OID = 2050 ( interval_mi_time PGNSP PGUID 14 f t f t f i 2 1083 "1186 1083" 100 0 0 100 "select $2 - $1" - _null_ ));
DESCR("minus");
-DATA(insert OID = 2051 ( interval_mi_timetz PGNSP PGUID 14 f t t i 2 f 1266 "1186 1266" 100 0 0 100 "select $2 - $1" - _null_ ));
+DATA(insert OID = 2051 ( interval_mi_timetz PGNSP PGUID 14 f t f t f i 2 1266 "1186 1266" 100 0 0 100 "select $2 - $1" - _null_ ));
DESCR("minus");
-DATA(insert OID = 2052 ( timestamp_eq PGNSP PGUID 12 f t t i 2 f 16 "1114 1114" 100 0 0 100 timestamp_eq - _null_ ));
+DATA(insert OID = 2052 ( timestamp_eq PGNSP PGUID 12 f t f t f i 2 16 "1114 1114" 100 0 0 100 timestamp_eq - _null_ ));
DESCR("equal");
-DATA(insert OID = 2053 ( timestamp_ne PGNSP PGUID 12 f t t i 2 f 16 "1114 1114" 100 0 0 100 timestamp_ne - _null_ ));
+DATA(insert OID = 2053 ( timestamp_ne PGNSP PGUID 12 f t f t f i 2 16 "1114 1114" 100 0 0 100 timestamp_ne - _null_ ));
DESCR("not equal");
-DATA(insert OID = 2054 ( timestamp_lt PGNSP PGUID 12 f t t i 2 f 16 "1114 1114" 100 0 0 100 timestamp_lt - _null_ ));
+DATA(insert OID = 2054 ( timestamp_lt PGNSP PGUID 12 f t f t f i 2 16 "1114 1114" 100 0 0 100 timestamp_lt - _null_ ));
DESCR("less-than");
-DATA(insert OID = 2055 ( timestamp_le PGNSP PGUID 12 f t t i 2 f 16 "1114 1114" 100 0 0 100 timestamp_le - _null_ ));
+DATA(insert OID = 2055 ( timestamp_le PGNSP PGUID 12 f t f t f i 2 16 "1114 1114" 100 0 0 100 timestamp_le - _null_ ));
DESCR("less-than-or-equal");
-DATA(insert OID = 2056 ( timestamp_ge PGNSP PGUID 12 f t t i 2 f 16 "1114 1114" 100 0 0 100 timestamp_ge - _null_ ));
+DATA(insert OID = 2056 ( timestamp_ge PGNSP PGUID 12 f t f t f i 2 16 "1114 1114" 100 0 0 100 timestamp_ge - _null_ ));
DESCR("greater-than-or-equal");
-DATA(insert OID = 2057 ( timestamp_gt PGNSP PGUID 12 f t t i 2 f 16 "1114 1114" 100 0 0 100 timestamp_gt - _null_ ));
+DATA(insert OID = 2057 ( timestamp_gt PGNSP PGUID 12 f t f t f i 2 16 "1114 1114" 100 0 0 100 timestamp_gt - _null_ ));
DESCR("greater-than");
-DATA(insert OID = 2058 ( age PGNSP PGUID 12 f t t i 2 f 1186 "1114 1114" 100 0 0 100 timestamp_age - _null_ ));
+DATA(insert OID = 2058 ( age PGNSP PGUID 12 f t f t f i 2 1186 "1114 1114" 100 0 0 100 timestamp_age - _null_ ));
DESCR("date difference preserving months and years");
-DATA(insert OID = 2059 ( age PGNSP PGUID 14 f t t s 1 f 1186 "1114" 100 0 0 100 "select age(cast(current_date as timestamp without time zone), $1)" - _null_ ));
+DATA(insert OID = 2059 ( age PGNSP PGUID 14 f t f t f s 1 1186 "1114" 100 0 0 100 "select age(cast(current_date as timestamp without time zone), $1)" - _null_ ));
DESCR("date difference from today preserving months and years");
-DATA(insert OID = 2069 ( timezone PGNSP PGUID 12 f t t s 2 f 1184 "25 1114" 100 0 0 100 timestamp_zone - _null_ ));
+DATA(insert OID = 2069 ( timezone PGNSP PGUID 12 f t f t f s 2 1184 "25 1114" 100 0 0 100 timestamp_zone - _null_ ));
DESCR("time zone");
-DATA(insert OID = 2070 ( timezone PGNSP PGUID 12 f t t s 2 f 1184 "1186 1114" 100 0 0 100 timestamp_izone - _null_ ));
+DATA(insert OID = 2070 ( timezone PGNSP PGUID 12 f t f t f s 2 1184 "1186 1114" 100 0 0 100 timestamp_izone - _null_ ));
DESCR("time zone");
+/* Aggregates (moved here from pg_aggregate for 7.3) */
+
+DATA(insert OID = 2100 ( avg PGNSP PGUID 12 t t f f f i 1 1700 "20" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2101 ( avg PGNSP PGUID 12 t t f f f i 1 1700 "23" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2102 ( avg PGNSP PGUID 12 t t f f f i 1 1700 "21" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2103 ( avg PGNSP PGUID 12 t t f f f i 1 1700 "1700" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2104 ( avg PGNSP PGUID 12 t t f f f i 1 701 "700" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2105 ( avg PGNSP PGUID 12 t t f f f i 1 701 "701" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2106 ( avg PGNSP PGUID 12 t t f f f i 1 1186 "1186" 100 0 0 100 aggregate_dummy - _null_ ));
+
+DATA(insert OID = 2107 ( sum PGNSP PGUID 12 t t f f f i 1 1700 "20" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2108 ( sum PGNSP PGUID 12 t t f f f i 1 20 "23" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2109 ( sum PGNSP PGUID 12 t t f f f i 1 20 "21" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2110 ( sum PGNSP PGUID 12 t t f f f i 1 700 "700" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2111 ( sum PGNSP PGUID 12 t t f f f i 1 701 "701" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2112 ( sum PGNSP PGUID 12 t t f f f i 1 790 "790" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2113 ( sum PGNSP PGUID 12 t t f f f i 1 1186 "1186" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2114 ( sum PGNSP PGUID 12 t t f f f i 1 1700 "1700" 100 0 0 100 aggregate_dummy - _null_ ));
+
+DATA(insert OID = 2115 ( max PGNSP PGUID 12 t t f f f i 1 20 "20" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2116 ( max PGNSP PGUID 12 t t f f f i 1 23 "23" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2117 ( max PGNSP PGUID 12 t t f f f i 1 21 "21" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2118 ( max PGNSP PGUID 12 t t f f f i 1 26 "26" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2119 ( max PGNSP PGUID 12 t t f f f i 1 700 "700" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2120 ( max PGNSP PGUID 12 t t f f f i 1 701 "701" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2121 ( max PGNSP PGUID 12 t t f f f i 1 702 "702" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2122 ( max PGNSP PGUID 12 t t f f f i 1 1082 "1082" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2123 ( max PGNSP PGUID 12 t t f f f i 1 1083 "1083" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2124 ( max PGNSP PGUID 12 t t f f f i 1 1266 "1266" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2125 ( max PGNSP PGUID 12 t t f f f i 1 790 "790" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2126 ( max PGNSP PGUID 12 t t f f f i 1 1114 "1114" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2127 ( max PGNSP PGUID 12 t t f f f i 1 1184 "1184" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2128 ( max PGNSP PGUID 12 t t f f f i 1 1186 "1186" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2129 ( max PGNSP PGUID 12 t t f f f i 1 25 "25" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2130 ( max PGNSP PGUID 12 t t f f f i 1 1700 "1700" 100 0 0 100 aggregate_dummy - _null_ ));
+
+DATA(insert OID = 2131 ( min PGNSP PGUID 12 t t f f f i 1 20 "20" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2132 ( min PGNSP PGUID 12 t t f f f i 1 23 "23" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2133 ( min PGNSP PGUID 12 t t f f f i 1 21 "21" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2134 ( min PGNSP PGUID 12 t t f f f i 1 26 "26" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2135 ( min PGNSP PGUID 12 t t f f f i 1 700 "700" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2136 ( min PGNSP PGUID 12 t t f f f i 1 701 "701" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2137 ( min PGNSP PGUID 12 t t f f f i 1 702 "702" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2138 ( min PGNSP PGUID 12 t t f f f i 1 1082 "1082" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2139 ( min PGNSP PGUID 12 t t f f f i 1 1083 "1083" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2140 ( min PGNSP PGUID 12 t t f f f i 1 1266 "1266" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2141 ( min PGNSP PGUID 12 t t f f f i 1 790 "790" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2142 ( min PGNSP PGUID 12 t t f f f i 1 1114 "1114" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2143 ( min PGNSP PGUID 12 t t f f f i 1 1184 "1184" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2144 ( min PGNSP PGUID 12 t t f f f i 1 1186 "1186" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2145 ( min PGNSP PGUID 12 t t f f f i 1 25 "25" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2146 ( min PGNSP PGUID 12 t t f f f i 1 1700 "1700" 100 0 0 100 aggregate_dummy - _null_ ));
+
+DATA(insert OID = 2147 ( count PGNSP PGUID 12 t t f f f i 1 20 "0" 100 0 0 100 aggregate_dummy - _null_ ));
+
+DATA(insert OID = 2148 ( variance PGNSP PGUID 12 t t f f f i 1 1700 "20" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2149 ( variance PGNSP PGUID 12 t t f f f i 1 1700 "23" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2150 ( variance PGNSP PGUID 12 t t f f f i 1 1700 "21" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2151 ( variance PGNSP PGUID 12 t t f f f i 1 701 "700" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2152 ( variance PGNSP PGUID 12 t t f f f i 1 701 "701" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2153 ( variance PGNSP PGUID 12 t t f f f i 1 1700 "1700" 100 0 0 100 aggregate_dummy - _null_ ));
+
+DATA(insert OID = 2154 ( stddev PGNSP PGUID 12 t t f f f i 1 1700 "20" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2155 ( stddev PGNSP PGUID 12 t t f f f i 1 1700 "23" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2156 ( stddev PGNSP PGUID 12 t t f f f i 1 1700 "21" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2157 ( stddev PGNSP PGUID 12 t t f f f i 1 701 "700" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2158 ( stddev PGNSP PGUID 12 t t f f f i 1 701 "701" 100 0 0 100 aggregate_dummy - _null_ ));
+DATA(insert OID = 2159 ( stddev PGNSP PGUID 12 t t f f f i 1 1700 "1700" 100 0 0 100 aggregate_dummy - _null_ ));
+
/*
* Symbolic values for provolatile column: these indicate whether the result
@@ -2898,13 +2940,16 @@ extern Oid ProcedureCreate(const char *procedureName,
Oid languageObjectId,
const char *prosrc,
const char *probin,
+ bool isAgg,
bool trusted,
+ bool isImplicit,
bool isStrict,
char volatility,
int32 byte_pct,
int32 perbyte_cpu,
int32 percall_cpu,
int32 outin_ratio,
- List *argList);
+ int parameterCount,
+ const Oid *parameterTypes);
#endif /* PG_PROC_H */
diff --git a/src/include/executor/nodeAgg.h b/src/include/executor/nodeAgg.h
index 894edfb0c79..2c3402537fc 100644
--- a/src/include/executor/nodeAgg.h
+++ b/src/include/executor/nodeAgg.h
@@ -7,13 +7,14 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: nodeAgg.h,v 1.15 2001/11/05 17:46:33 momjian Exp $
+ * $Id: nodeAgg.h,v 1.16 2002/04/11 20:00:14 tgl Exp $
*
*-------------------------------------------------------------------------
*/
#ifndef NODEAGG_H
#define NODEAGG_H
+#include "fmgr.h"
#include "nodes/plannodes.h"
extern TupleTableSlot *ExecAgg(Agg *node);
@@ -22,4 +23,6 @@ extern int ExecCountSlotsAgg(Agg *node);
extern void ExecEndAgg(Agg *node);
extern void ExecReScanAgg(Agg *node, ExprContext *exprCtxt, Plan *parent);
+extern Datum aggregate_dummy(PG_FUNCTION_ARGS);
+
#endif /* NODEAGG_H */
diff --git a/src/include/nodes/primnodes.h b/src/include/nodes/primnodes.h
index dc01689e30e..903245cf51f 100644
--- a/src/include/nodes/primnodes.h
+++ b/src/include/nodes/primnodes.h
@@ -10,7 +10,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: primnodes.h,v 1.60 2002/03/26 19:16:53 tgl Exp $
+ * $Id: primnodes.h,v 1.61 2002/04/11 20:00:15 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -322,13 +322,9 @@ typedef struct Iter
typedef struct Aggref
{
NodeTag type;
- char *aggname; /* name of the aggregate */
- Oid basetype; /* base type Oid of the aggregate (ie,
- * input type) */
- Oid aggtype; /* type Oid of final result of the
- * aggregate */
- Node *target; /* attribute or expression we are
- * aggregating on */
+ Oid aggfnoid; /* pg_proc Oid of the aggregate */
+ Oid aggtype; /* type Oid of result of the aggregate */
+ Node *target; /* expression we are aggregating on */
bool aggstar; /* TRUE if argument was really '*' */
bool aggdistinct; /* TRUE if it's agg(DISTINCT ...) */
int aggno; /* workspace for executor (see nodeAgg.c) */
diff --git a/src/include/parser/parse_agg.h b/src/include/parser/parse_agg.h
index 03ac8dc6462..31a5b50b55c 100644
--- a/src/include/parser/parse_agg.h
+++ b/src/include/parser/parse_agg.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: parse_agg.h,v 1.22 2002/04/09 20:35:55 tgl Exp $
+ * $Id: parse_agg.h,v 1.23 2002/04/11 20:00:15 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -16,10 +16,6 @@
#include "parser/parse_node.h"
-extern void AddAggToParseState(ParseState *pstate, Aggref *aggref);
extern void parseCheckAggregates(ParseState *pstate, Query *qry, Node *qual);
-extern Aggref *ParseAgg(ParseState *pstate, List *aggname, Oid basetype,
- List *args, bool agg_star, bool agg_distinct);
-extern void agg_error(const char *caller, List *aggname, Oid basetypeID);
#endif /* PARSE_AGG_H */
diff --git a/src/include/parser/parse_coerce.h b/src/include/parser/parse_coerce.h
index 1c503aed653..47ce9b61c16 100644
--- a/src/include/parser/parse_coerce.h
+++ b/src/include/parser/parse_coerce.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: parse_coerce.h,v 1.41 2002/03/20 19:45:07 tgl Exp $
+ * $Id: parse_coerce.h,v 1.42 2002/04/11 20:00:15 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -38,9 +38,10 @@ extern bool IsBinaryCompatible(Oid type1, Oid type2);
extern bool IsPreferredType(CATEGORY category, Oid type);
extern CATEGORY TypeCategory(Oid type);
-extern bool can_coerce_type(int nargs, Oid *input_typeids, Oid *func_typeids);
+extern bool can_coerce_type(int nargs, Oid *input_typeids, Oid *func_typeids,
+ bool isExplicit);
extern Node *coerce_type(ParseState *pstate, Node *node, Oid inputTypeId,
- Oid targetTypeId, int32 atttypmod);
+ Oid targetTypeId, int32 atttypmod, bool isExplicit);
extern Node *coerce_type_typmod(ParseState *pstate, Node *node,
Oid targetTypeId, int32 atttypmod);
diff --git a/src/include/parser/parse_func.h b/src/include/parser/parse_func.h
index 3a7641e1de7..e6353be34e7 100644
--- a/src/include/parser/parse_func.h
+++ b/src/include/parser/parse_func.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: parse_func.h,v 1.38 2002/04/09 20:35:55 tgl Exp $
+ * $Id: parse_func.h,v 1.39 2002/04/11 20:00:15 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -42,7 +42,8 @@ typedef struct _CandidateList
typedef enum
{
FUNCDETAIL_NOTFOUND, /* no suitable interpretation */
- FUNCDETAIL_NORMAL, /* found a matching function */
+ FUNCDETAIL_NORMAL, /* found a matching regular function */
+ FUNCDETAIL_AGGREGATE, /* found a matching aggregate function */
FUNCDETAIL_COERCION /* it's a type coercion request */
} FuncDetailCode;
@@ -62,6 +63,9 @@ extern void func_error(const char *caller, List *funcname,
int nargs, const Oid *argtypes,
const char *msg);
+extern Oid find_aggregate_func(const char *caller, List *aggname,
+ Oid basetype);
+
extern Oid LookupFuncName(List *funcname, int nargs, const Oid *argtypes);
extern Oid LookupFuncNameTypeNames(List *funcname, List *argtypes,
bool opaqueOK, const char *caller);
diff --git a/src/include/parser/parse_target.h b/src/include/parser/parse_target.h
index a326da72e40..2e5370a4527 100644
--- a/src/include/parser/parse_target.h
+++ b/src/include/parser/parse_target.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: parse_target.h,v 1.23 2001/11/05 17:46:35 momjian Exp $
+ * $Id: parse_target.h,v 1.24 2002/04/11 20:00:16 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -24,7 +24,8 @@ extern void updateTargetListEntry(ParseState *pstate, TargetEntry *tle,
char *colname, int attrno,
List *indirection);
extern Node *CoerceTargetExpr(ParseState *pstate, Node *expr,
- Oid type_id, Oid attrtype, int32 attrtypmod);
+ Oid type_id, Oid attrtype, int32 attrtypmod,
+ bool isExplicit);
extern List *checkInsertTargets(ParseState *pstate, List *cols,
List **attrnos);
diff --git a/src/include/utils/acl.h b/src/include/utils/acl.h
index 2a862af4bdd..16e43f267ed 100644
--- a/src/include/utils/acl.h
+++ b/src/include/utils/acl.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: acl.h,v 1.41 2002/03/21 23:27:25 tgl Exp $
+ * $Id: acl.h,v 1.42 2002/04/11 20:00:17 tgl Exp $
*
* NOTES
* For backward-compatibility purposes we have to allow there
@@ -209,6 +209,5 @@ extern bool pg_class_ownercheck(Oid class_oid, Oid userid);
extern bool pg_type_ownercheck(Oid type_oid, Oid userid);
extern bool pg_oper_ownercheck(Oid oper_oid, Oid userid);
extern bool pg_proc_ownercheck(Oid proc_oid, Oid userid);
-extern bool pg_aggr_ownercheck(Oid aggr_oid, Oid userid);
#endif /* ACL_H */
diff --git a/src/include/utils/builtins.h b/src/include/utils/builtins.h
index 342aa4e99f6..b38f4429cb0 100644
--- a/src/include/utils/builtins.h
+++ b/src/include/utils/builtins.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: builtins.h,v 1.175 2002/04/01 03:34:27 tgl Exp $
+ * $Id: builtins.h,v 1.176 2002/04/11 20:00:17 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -363,7 +363,6 @@ extern Datum bpcharout(PG_FUNCTION_ARGS);
extern Datum bpchar(PG_FUNCTION_ARGS);
extern Datum _bpchar(PG_FUNCTION_ARGS);
extern Datum char_bpchar(PG_FUNCTION_ARGS);
-extern Datum bpchar_char(PG_FUNCTION_ARGS);
extern Datum name_bpchar(PG_FUNCTION_ARGS);
extern Datum bpchar_name(PG_FUNCTION_ARGS);
extern Datum bpchareq(PG_FUNCTION_ARGS);
diff --git a/src/include/utils/syscache.h b/src/include/utils/syscache.h
index 365d9efdb5d..7d31a57be61 100644
--- a/src/include/utils/syscache.h
+++ b/src/include/utils/syscache.h
@@ -9,7 +9,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: syscache.h,v 1.43 2002/04/09 20:35:55 tgl Exp $
+ * $Id: syscache.h,v 1.44 2002/04/11 20:00:17 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -28,37 +28,36 @@
* Keep them in alphabetical order.
*/
-#define AGGNAME 0
-#define AGGOID 1
-#define AMNAME 2
-#define AMOID 3
-#define AMOPOPID 4
-#define AMOPSTRATEGY 5
-#define AMPROCNUM 6
-#define ATTNAME 7
-#define ATTNUM 8
-#define CLAAMNAME 9
-#define CLAOID 10
-#define GRONAME 11
-#define GROSYSID 12
-#define INDEXRELID 13
-#define INHRELID 14
-#define LANGNAME 15
-#define LANGOID 16
-#define NAMESPACENAME 17
-#define NAMESPACEOID 18
-#define OPERNAME 19
-#define OPEROID 20
-#define PROCNAMENSP 21
-#define PROCOID 22
-#define RELNAMENSP 23
-#define RELOID 24
-#define RULENAME 25
-#define SHADOWNAME 26
-#define SHADOWSYSID 27
-#define STATRELATT 28
-#define TYPENAMENSP 29
-#define TYPEOID 30
+#define AGGFNOID 0
+#define AMNAME 1
+#define AMOID 2
+#define AMOPOPID 3
+#define AMOPSTRATEGY 4
+#define AMPROCNUM 5
+#define ATTNAME 6
+#define ATTNUM 7
+#define CLAAMNAME 8
+#define CLAOID 9
+#define GRONAME 10
+#define GROSYSID 11
+#define INDEXRELID 12
+#define INHRELID 13
+#define LANGNAME 14
+#define LANGOID 15
+#define NAMESPACENAME 16
+#define NAMESPACEOID 17
+#define OPERNAME 18
+#define OPEROID 19
+#define PROCNAMENSP 20
+#define PROCOID 21
+#define RELNAMENSP 22
+#define RELOID 23
+#define RULENAME 24
+#define SHADOWNAME 25
+#define SHADOWSYSID 26
+#define STATRELATT 27
+#define TYPENAMENSP 28
+#define TYPEOID 29
extern void InitCatalogCache(void);
diff --git a/src/interfaces/python/tutorial/syscat.py b/src/interfaces/python/tutorial/syscat.py
index 179f3ef6a3e..d2c6e44657e 100755
--- a/src/interfaces/python/tutorial/syscat.py
+++ b/src/interfaces/python/tutorial/syscat.py
@@ -101,10 +101,11 @@ def list_lang_func(pgcnx, l):
# lists all the aggregate functions and the type to which they can be applied
def list_agg_func(pgcnx):
- result = pgcnx.query("""SELECT a.aggname, t.typname
- FROM pg_aggregate a, pg_type t
- WHERE a.aggbasetype = t.oid
- ORDER BY aggname, typname""")
+ result = pgcnx.query("""SELECT p.proname, t.typname
+ FROM pg_aggregate a, pg_proc p, pg_type t
+ WHERE a.aggfnoid = p.oid
+ and p.proargtypes[0] = t.oid
+ ORDER BY proname, typname""")
return result
# lists all the operator classes that can be used with each access method as
diff --git a/src/test/regress/expected/alter_table.out b/src/test/regress/expected/alter_table.out
index 5d7934fa91c..cbf0680a42f 100644
--- a/src/test/regress/expected/alter_table.out
+++ b/src/test/regress/expected/alter_table.out
@@ -292,8 +292,8 @@ ALTER TABLE foo_seq RENAME TO foo_seq_new;
SELECT * FROM foo_seq_new;
sequence_name | last_value | increment_by | max_value | min_value | cache_value | log_cnt | is_cycled | is_called
---------------+------------+--------------+---------------------+-----------+-------------+---------+-----------+-----------
- foo_seq | 1 | 1 | 9223372036854775807 | 1 | 1 | 1 | f | f
- (1 row)
+ foo_seq | 1 | 1 | 9223372036854775807 | 1 | 1 | 1 | f | f
+(1 row)
DROP SEQUENCE foo_seq_new;
-- FOREIGN KEY CONSTRAINT adding TEST
@@ -345,17 +345,17 @@ DROP TABLE tmp2;
-- is run in parallel with foreign_key.sql.
CREATE TEMP TABLE PKTABLE (ptest1 int PRIMARY KEY);
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
-CREATE TEMP TABLE FKTABLE (ftest1 text);
--- This next should fail, because text=int does not exist
+CREATE TEMP TABLE FKTABLE (ftest1 inet);
+-- This next should fail, because inet=int does not exist
ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1) references pktable;
NOTICE: ALTER TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR: Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR: Unable to identify an operator '=' for types 'inet' and 'integer'
You will have to retype this query using an explicit cast
-- This should also fail for the same reason, but here we
-- give the column name
ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1) references pktable(ptest1);
NOTICE: ALTER TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR: Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR: Unable to identify an operator '=' for types 'inet' and 'integer'
You will have to retype this query using an explicit cast
-- This should succeed, even though they are different types
-- because varchar=int does exist
@@ -370,7 +370,7 @@ DROP TABLE pktable;
NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "fktable"
NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "fktable"
DROP TABLE fktable;
-CREATE TEMP TABLE PKTABLE (ptest1 int, ptest2 text,
+CREATE TEMP TABLE PKTABLE (ptest1 int, ptest2 inet,
PRIMARY KEY(ptest1, ptest2));
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
-- This should fail, because we just chose really odd types
@@ -389,17 +389,17 @@ ERROR: Unable to identify an operator '=' for types 'cidr' and 'integer'
You will have to retype this query using an explicit cast
-- This fails because we mixed up the column ordering
DROP TABLE FKTABLE;
-CREATE TEMP TABLE FKTABLE (ftest1 int, ftest2 text);
+CREATE TEMP TABLE FKTABLE (ftest1 int, ftest2 inet);
ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2)
references pktable(ptest2, ptest1);
NOTICE: ALTER TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR: Unable to identify an operator '=' for types 'integer' and 'text'
+ERROR: Unable to identify an operator '=' for types 'integer' and 'inet'
You will have to retype this query using an explicit cast
-- As does this...
ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest2, ftest1)
references pktable(ptest1, ptest2);
NOTICE: ALTER TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR: Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR: Unable to identify an operator '=' for types 'inet' and 'integer'
You will have to retype this query using an explicit cast
-- temp tables should go away by themselves, need not drop them.
-- test check constraint adding
diff --git a/src/test/regress/expected/foreign_key.out b/src/test/regress/expected/foreign_key.out
index fb59fe233c3..0d0b6a6cb83 100644
--- a/src/test/regress/expected/foreign_key.out
+++ b/src/test/regress/expected/foreign_key.out
@@ -718,16 +718,16 @@ DROP TABLE PKTABLE;
-- Basic one column, two table setup
CREATE TABLE PKTABLE (ptest1 int PRIMARY KEY);
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
--- This next should fail, because text=int does not exist
-CREATE TABLE FKTABLE (ftest1 text REFERENCES pktable);
+-- This next should fail, because inet=int does not exist
+CREATE TABLE FKTABLE (ftest1 inet REFERENCES pktable);
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR: Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR: Unable to identify an operator '=' for types 'inet' and 'integer'
You will have to retype this query using an explicit cast
-- This should also fail for the same reason, but here we
-- give the column name
-CREATE TABLE FKTABLE (ftest1 text REFERENCES pktable(ptest1));
+CREATE TABLE FKTABLE (ftest1 inet REFERENCES pktable(ptest1));
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR: Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR: Unable to identify an operator '=' for types 'inet' and 'integer'
You will have to retype this query using an explicit cast
-- This should succeed, even though they are different types
-- because varchar=int does exist
@@ -744,7 +744,7 @@ NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "p
NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable"
DROP TABLE PKTABLE;
-- Two columns, two tables
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, PRIMARY KEY(ptest1, ptest2));
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, PRIMARY KEY(ptest1, ptest2));
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
-- This should fail, because we just chose really odd types
CREATE TABLE FKTABLE (ftest1 cidr, ftest2 datetime, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable);
@@ -757,28 +757,28 @@ NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
ERROR: Unable to identify an operator '=' for types 'cidr' and 'integer'
You will have to retype this query using an explicit cast
-- This fails because we mixed up the column ordering
-CREATE TABLE FKTABLE (ftest1 int, ftest2 text, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable);
+CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable);
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR: Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR: Unable to identify an operator '=' for types 'inet' and 'integer'
You will have to retype this query using an explicit cast
-- As does this...
-CREATE TABLE FKTABLE (ftest1 int, ftest2 text, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable(ptest1, ptest2));
+CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable(ptest1, ptest2));
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR: Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR: Unable to identify an operator '=' for types 'inet' and 'integer'
You will have to retype this query using an explicit cast
-- And again..
-CREATE TABLE FKTABLE (ftest1 int, ftest2 text, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest2, ptest1));
+CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest2, ptest1));
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR: Unable to identify an operator '=' for types 'integer' and 'text'
+ERROR: Unable to identify an operator '=' for types 'integer' and 'inet'
You will have to retype this query using an explicit cast
-- This works...
-CREATE TABLE FKTABLE (ftest1 int, ftest2 text, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable(ptest2, ptest1));
+CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable(ptest2, ptest1));
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
DROP TABLE FKTABLE;
NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable"
NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable"
-- As does this
-CREATE TABLE FKTABLE (ftest1 int, ftest2 text, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest1, ptest2));
+CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest1, ptest2));
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
DROP TABLE FKTABLE;
NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable"
@@ -786,37 +786,37 @@ NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "p
DROP TABLE PKTABLE;
-- Two columns, same table
-- Make sure this still works...
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
ptest4) REFERENCES pktable(ptest1, ptest2));
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
DROP TABLE PKTABLE;
-- And this,
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
ptest4) REFERENCES pktable);
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
DROP TABLE PKTABLE;
-- This shouldn't (mixed up columns)
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
ptest4) REFERENCES pktable(ptest2, ptest1));
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR: Unable to identify an operator '=' for types 'integer' and 'text'
+ERROR: Unable to identify an operator '=' for types 'integer' and 'inet'
You will have to retype this query using an explicit cast
-- Nor should this... (same reason, we have 4,3 referencing 1,2 which mismatches types
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest4,
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest4,
ptest3) REFERENCES pktable(ptest1, ptest2));
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR: Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR: Unable to identify an operator '=' for types 'inet' and 'integer'
You will have to retype this query using an explicit cast
-- Not this one either... Same as the last one except we didn't defined the columns being referenced.
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest4,
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest4,
ptest3) REFERENCES pktable);
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR: Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR: Unable to identify an operator '=' for types 'inet' and 'integer'
You will have to retype this query using an explicit cast
--
-- Now some cases with inheritance
@@ -907,7 +907,7 @@ drop table pktable;
drop table pktable_base;
-- 2 columns (2 tables), mismatched types
create table pktable_base(base1 int not null);
-create table pktable(ptest1 text, primary key(base1, ptest1)) inherits (pktable_base);
+create table pktable(ptest1 inet, primary key(base1, ptest1)) inherits (pktable_base);
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
-- just generally bad types (with and without column references on the referenced table)
create table fktable(ftest1 cidr, ftest2 int[], foreign key (ftest1, ftest2) references pktable);
@@ -919,45 +919,45 @@ NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
ERROR: Unable to identify an operator '=' for types 'cidr' and 'integer'
You will have to retype this query using an explicit cast
-- let's mix up which columns reference which
-create table fktable(ftest1 int, ftest2 text, foreign key(ftest2, ftest1) references pktable);
+create table fktable(ftest1 int, ftest2 inet, foreign key(ftest2, ftest1) references pktable);
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR: Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR: Unable to identify an operator '=' for types 'inet' and 'integer'
You will have to retype this query using an explicit cast
-create table fktable(ftest1 int, ftest2 text, foreign key(ftest2, ftest1) references pktable(base1, ptest1));
+create table fktable(ftest1 int, ftest2 inet, foreign key(ftest2, ftest1) references pktable(base1, ptest1));
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR: Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR: Unable to identify an operator '=' for types 'inet' and 'integer'
You will have to retype this query using an explicit cast
-create table fktable(ftest1 int, ftest2 text, foreign key(ftest1, ftest2) references pktable(ptest1, base1));
+create table fktable(ftest1 int, ftest2 inet, foreign key(ftest1, ftest2) references pktable(ptest1, base1));
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR: Unable to identify an operator '=' for types 'integer' and 'text'
+ERROR: Unable to identify an operator '=' for types 'integer' and 'inet'
You will have to retype this query using an explicit cast
drop table pktable;
drop table pktable_base;
-- 2 columns (1 table), mismatched types
create table pktable_base(base1 int not null, base2 int);
-create table pktable(ptest1 text, ptest2 text[], primary key(base1, ptest1), foreign key(base2, ptest2) references
+create table pktable(ptest1 inet, ptest2 inet[], primary key(base1, ptest1), foreign key(base2, ptest2) references
pktable(base1, ptest1)) inherits (pktable_base);
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR: Unable to identify an operator '=' for types 'text[]' and 'text'
+ERROR: Unable to identify an operator '=' for types 'inet[]' and 'inet'
You will have to retype this query using an explicit cast
-create table pktable(ptest1 text, ptest2 text, primary key(base1, ptest1), foreign key(base2, ptest2) references
+create table pktable(ptest1 inet, ptest2 inet, primary key(base1, ptest1), foreign key(base2, ptest2) references
pktable(ptest1, base1)) inherits (pktable_base);
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR: Unable to identify an operator '=' for types 'integer' and 'text'
+ERROR: Unable to identify an operator '=' for types 'integer' and 'inet'
You will have to retype this query using an explicit cast
-create table pktable(ptest1 text, ptest2 text, primary key(base1, ptest1), foreign key(ptest2, base2) references
+create table pktable(ptest1 inet, ptest2 inet, primary key(base1, ptest1), foreign key(ptest2, base2) references
pktable(base1, ptest1)) inherits (pktable_base);
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR: Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR: Unable to identify an operator '=' for types 'inet' and 'integer'
You will have to retype this query using an explicit cast
-create table pktable(ptest1 text, ptest2 text, primary key(base1, ptest1), foreign key(ptest2, base2) references
+create table pktable(ptest1 inet, ptest2 inet, primary key(base1, ptest1), foreign key(ptest2, base2) references
pktable(base1, ptest1)) inherits (pktable_base);
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable'
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
-ERROR: Unable to identify an operator '=' for types 'text' and 'integer'
+ERROR: Unable to identify an operator '=' for types 'inet' and 'integer'
You will have to retype this query using an explicit cast
drop table pktable;
ERROR: table "pktable" does not exist
diff --git a/src/test/regress/expected/oidjoins.out b/src/test/regress/expected/oidjoins.out
index 933e29c8495..21c1c519f26 100644
--- a/src/test/regress/expected/oidjoins.out
+++ b/src/test/regress/expected/oidjoins.out
@@ -1,6 +1,14 @@
--
-- This is created by pgsql/contrib/findoidjoins/make_oidjoin_check
--
+SELECT ctid, pg_aggregate.aggfnoid
+FROM pg_aggregate
+WHERE pg_aggregate.aggfnoid != 0 AND
+ NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_aggregate.aggfnoid);
+ ctid | aggfnoid
+------+----------
+(0 rows)
+
SELECT ctid, pg_aggregate.aggtransfn
FROM pg_aggregate
WHERE pg_aggregate.aggtransfn != 0 AND
@@ -17,14 +25,6 @@ WHERE pg_aggregate.aggfinalfn != 0 AND
------+------------
(0 rows)
-SELECT ctid, pg_aggregate.aggbasetype
-FROM pg_aggregate
-WHERE pg_aggregate.aggbasetype != 0 AND
- NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggbasetype);
- ctid | aggbasetype
-------+-------------
-(0 rows)
-
SELECT ctid, pg_aggregate.aggtranstype
FROM pg_aggregate
WHERE pg_aggregate.aggtranstype != 0 AND
@@ -33,14 +33,6 @@ WHERE pg_aggregate.aggtranstype != 0 AND
------+--------------
(0 rows)
-SELECT ctid, pg_aggregate.aggfinaltype
-FROM pg_aggregate
-WHERE pg_aggregate.aggfinaltype != 0 AND
- NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggfinaltype);
- ctid | aggfinaltype
-------+--------------
-(0 rows)
-
SELECT ctid, pg_am.amgettuple
FROM pg_am
WHERE pg_am.amgettuple != 0 AND
diff --git a/src/test/regress/expected/opr_sanity.out b/src/test/regress/expected/opr_sanity.out
index c56ec07721b..e7712b13bff 100644
--- a/src/test/regress/expected/opr_sanity.out
+++ b/src/test/regress/expected/opr_sanity.out
@@ -48,7 +48,7 @@ WHERE p1.oid != p2.oid AND
-----+---------+-----+---------
(0 rows)
--- Considering only built-in procs (prolang = 11/12), look for multiple uses
+-- Considering only built-in procs (prolang = 12), look for multiple uses
-- of the same internal function (ie, matching prosrc fields). It's OK to
-- have several entries with different pronames for the same internal function,
-- but conflicts in the number of arguments and other critical items should
@@ -57,14 +57,14 @@ SELECT p1.oid, p1.proname, p2.oid, p2.proname
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
- (p1.prolang = 11 OR p1.prolang = 12) AND
- (p2.prolang = 11 OR p2.prolang = 12) AND
+ p1.prolang = 12 AND p2.prolang = 12 AND
(p1.prolang != p2.prolang OR
- p1.proisinh != p2.proisinh OR
+ p1.proisagg != p2.proisagg OR
p1.proistrusted != p2.proistrusted OR
+ p1.proisstrict != p2.proisstrict OR
+ p1.proretset != p2.proretset OR
p1.provolatile != p2.provolatile OR
- p1.pronargs != p2.pronargs OR
- p1.proretset != p2.proretset);
+ p1.pronargs != p2.pronargs);
oid | proname | oid | proname
-----+---------+-----+---------
(0 rows)
@@ -75,12 +75,14 @@ WHERE p1.oid != p2.oid AND
-- That's not wrong, necessarily, but we make lists of all the types being
-- so treated. Note that the expected output of this part of the test will
-- need to be modified whenever new pairs of types are made binary-equivalent!
+-- Note: ignore aggregate functions here, since they all point to the same
+-- dummy built-in function.
SELECT DISTINCT p1.prorettype, p2.prorettype
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
- (p1.prolang = 11 OR p1.prolang = 12) AND
- (p2.prolang = 11 OR p2.prolang = 12) AND
+ p1.prolang = 12 AND p2.prolang = 12 AND
+ NOT p1.proisagg AND NOT p2.proisagg AND
(p1.prorettype < p2.prorettype);
prorettype | prorettype
------------+------------
@@ -92,8 +94,8 @@ SELECT DISTINCT p1.proargtypes[0], p2.proargtypes[0]
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
- (p1.prolang = 11 OR p1.prolang = 12) AND
- (p2.prolang = 11 OR p2.prolang = 12) AND
+ p1.prolang = 12 AND p2.prolang = 12 AND
+ NOT p1.proisagg AND NOT p2.proisagg AND
(p1.proargtypes[0] < p2.proargtypes[0]);
proargtypes | proargtypes
-------------+-------------
@@ -106,8 +108,8 @@ SELECT DISTINCT p1.proargtypes[1], p2.proargtypes[1]
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
- (p1.prolang = 11 OR p1.prolang = 12) AND
- (p2.prolang = 11 OR p2.prolang = 12) AND
+ p1.prolang = 12 AND p2.prolang = 12 AND
+ NOT p1.proisagg AND NOT p2.proisagg AND
(p1.proargtypes[1] < p2.proargtypes[1]);
proargtypes | proargtypes
-------------+-------------
@@ -119,8 +121,8 @@ SELECT DISTINCT p1.proargtypes[2], p2.proargtypes[2]
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
- (p1.prolang = 11 OR p1.prolang = 12) AND
- (p2.prolang = 11 OR p2.prolang = 12) AND
+ p1.prolang = 12 AND p2.prolang = 12 AND
+ NOT p1.proisagg AND NOT p2.proisagg AND
(p1.proargtypes[2] < p2.proargtypes[2]);
proargtypes | proargtypes
-------------+-------------
@@ -131,8 +133,8 @@ SELECT DISTINCT p1.proargtypes[3], p2.proargtypes[3]
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
- (p1.prolang = 11 OR p1.prolang = 12) AND
- (p2.prolang = 11 OR p2.prolang = 12) AND
+ p1.prolang = 12 AND p2.prolang = 12 AND
+ NOT p1.proisagg AND NOT p2.proisagg AND
(p1.proargtypes[3] < p2.proargtypes[3]);
proargtypes | proargtypes
-------------+-------------
@@ -143,8 +145,8 @@ SELECT DISTINCT p1.proargtypes[4], p2.proargtypes[4]
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
- (p1.prolang = 11 OR p1.prolang = 12) AND
- (p2.prolang = 11 OR p2.prolang = 12) AND
+ p1.prolang = 12 AND p2.prolang = 12 AND
+ NOT p1.proisagg AND NOT p2.proisagg AND
(p1.proargtypes[4] < p2.proargtypes[4]);
proargtypes | proargtypes
-------------+-------------
@@ -154,8 +156,8 @@ SELECT DISTINCT p1.proargtypes[5], p2.proargtypes[5]
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
- (p1.prolang = 11 OR p1.prolang = 12) AND
- (p2.prolang = 11 OR p2.prolang = 12) AND
+ p1.prolang = 12 AND p2.prolang = 12 AND
+ NOT p1.proisagg AND NOT p2.proisagg AND
(p1.proargtypes[5] < p2.proargtypes[5]);
proargtypes | proargtypes
-------------+-------------
@@ -165,8 +167,8 @@ SELECT DISTINCT p1.proargtypes[6], p2.proargtypes[6]
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
- (p1.prolang = 11 OR p1.prolang = 12) AND
- (p2.prolang = 11 OR p2.prolang = 12) AND
+ p1.prolang = 12 AND p2.prolang = 12 AND
+ NOT p1.proisagg AND NOT p2.proisagg AND
(p1.proargtypes[6] < p2.proargtypes[6]);
proargtypes | proargtypes
-------------+-------------
@@ -176,13 +178,29 @@ SELECT DISTINCT p1.proargtypes[7], p2.proargtypes[7]
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
- (p1.prolang = 11 OR p1.prolang = 12) AND
- (p2.prolang = 11 OR p2.prolang = 12) AND
+ p1.prolang = 12 AND p2.prolang = 12 AND
+ NOT p1.proisagg AND NOT p2.proisagg AND
(p1.proargtypes[7] < p2.proargtypes[7]);
proargtypes | proargtypes
-------------+-------------
(0 rows)
+-- If a proc is marked as an implicit cast, then it should be something that
+-- the system might actually use as a cast function: name same as the name
+-- of its output type, and either one arg that's a different type, or two
+-- args where the first is the same as the output type and the second is int4.
+SELECT p1.oid, p1.proname
+FROM pg_proc as p1
+WHERE p1.proimplicit AND
+ (NOT EXISTS (SELECT 1 FROM pg_type t WHERE t.oid = p1.prorettype AND
+ t.typname = p1.proname) OR
+ NOT ((p1.pronargs = 1 AND p1.proargtypes[0] != prorettype) OR
+ (p1.pronargs = 2 AND p1.proargtypes[0] = prorettype AND
+ p1.proargtypes[1] = 23)));
+ oid | proname
+-----+---------
+(0 rows)
+
-- **************** pg_operator ****************
-- Look for illegal values in pg_operator fields.
SELECT p1.oid, p1.oprname
@@ -238,6 +256,7 @@ WHERE p1.oprcom = p2.oid AND
-- single-operand operators.
-- We expect that B will always say that B.oprnegate = A as well; that's not
-- inherently essential, but it would be inefficient not to mark it so.
+-- Also, A and B had better not be the same operator.
SELECT p1.oid, p1.oprcode, p2.oid, p2.oprcode
FROM pg_operator AS p1, pg_operator AS p2
WHERE p1.oprnegate = p2.oid AND
@@ -246,7 +265,8 @@ WHERE p1.oprnegate = p2.oid AND
p1.oprright != p2.oprright OR
p1.oprresult != 16 OR
p2.oprresult != 16 OR
- p1.oid != p2.oprnegate);
+ p1.oid != p2.oprnegate OR
+ p1.oid = p2.oid);
oid | oprcode | oid | oprcode
-----+---------+-----+---------
(0 rows)
@@ -455,19 +475,38 @@ WHERE p1.oprjoin = p2.oid AND
-- **************** pg_aggregate ****************
-- Look for illegal values in pg_aggregate fields.
-SELECT p1.oid, p1.aggname
+SELECT ctid, aggfnoid::oid
FROM pg_aggregate as p1
-WHERE aggtransfn = 0 OR aggtranstype = 0 OR aggfinaltype = 0;
- oid | aggname
+WHERE aggfnoid = 0 OR aggtransfn = 0 OR aggtranstype = 0;
+ ctid | aggfnoid
+------+----------
+(0 rows)
+
+-- Make sure the matching pg_proc entry is sensible, too.
+SELECT a.aggfnoid::oid, p.proname
+FROM pg_aggregate as a, pg_proc as p
+WHERE a.aggfnoid = p.oid AND
+ (NOT p.proisagg OR p.pronargs != 1 OR p.proretset);
+ aggfnoid | proname
+----------+---------
+(0 rows)
+
+-- Make sure there are no proisagg pg_proc entries without matches.
+SELECT oid, proname
+FROM pg_proc as p
+WHERE p.proisagg AND
+ NOT EXISTS (SELECT 1 FROM pg_aggregate a WHERE a.aggfnoid = p.oid);
+ oid | proname
-----+---------
(0 rows)
-- If there is no finalfn then the output type must be the transtype.
-SELECT p1.oid, p1.aggname
-FROM pg_aggregate as p1
-WHERE p1.aggfinalfn = 0 AND p1.aggfinaltype != p1.aggtranstype;
- oid | aggname
------+---------
+SELECT a.aggfnoid::oid, p.proname
+FROM pg_aggregate as a, pg_proc as p
+WHERE a.aggfnoid = p.oid AND
+ a.aggfinalfn = 0 AND p.prorettype != a.aggtranstype;
+ aggfnoid | proname
+----------+---------
(0 rows)
-- Cross-check transfn against its entry in pg_proc.
@@ -476,41 +515,44 @@ WHERE p1.aggfinalfn = 0 AND p1.aggfinaltype != p1.aggtranstype;
-- implemented using int4larger/int4smaller. Until we have
-- some cleaner way of dealing with binary-equivalent types, just leave
-- those two tuples in the expected output.
-SELECT p1.oid, p1.aggname, p2.oid, p2.proname
-FROM pg_aggregate AS p1, pg_proc AS p2
-WHERE p1.aggtransfn = p2.oid AND
+SELECT a.aggfnoid::oid, p.proname, p2.oid, p2.proname
+FROM pg_aggregate AS a, pg_proc AS p, pg_proc AS p2
+WHERE a.aggfnoid = p.oid AND
+ a.aggtransfn = p2.oid AND
(p2.proretset OR
- p1.aggtranstype != p2.prorettype OR
- p1.aggtranstype != p2.proargtypes[0] OR
- NOT ((p2.pronargs = 2 AND p1.aggbasetype = p2.proargtypes[1]) OR
- (p2.pronargs = 1 AND p1.aggbasetype = 0)));
- oid | aggname | oid | proname
--------+---------+-----+-------------
- 10021 | max | 768 | int4larger
- 10037 | min | 769 | int4smaller
+ a.aggtranstype != p2.prorettype OR
+ a.aggtranstype != p2.proargtypes[0] OR
+ NOT ((p2.pronargs = 2 AND p.proargtypes[0] = p2.proargtypes[1]) OR
+ (p2.pronargs = 1 AND p.proargtypes[0] = 0)));
+ aggfnoid | proname | oid | proname
+----------+---------+-----+-------------
+ 2121 | max | 768 | int4larger
+ 2137 | min | 769 | int4smaller
(2 rows)
-- Cross-check finalfn (if present) against its entry in pg_proc.
-- FIXME: what about binary-compatible types?
-SELECT p1.oid, p1.aggname, p2.oid, p2.proname
-FROM pg_aggregate AS p1, pg_proc AS p2
-WHERE p1.aggfinalfn = p2.oid AND
- (p2.proretset OR p1.aggfinaltype != p2.prorettype OR
+SELECT a.aggfnoid::oid, p.proname, p2.oid, p2.proname
+FROM pg_aggregate AS a, pg_proc AS p, pg_proc AS p2
+WHERE a.aggfnoid = p.oid AND
+ a.aggfinalfn = p2.oid AND
+ (p2.proretset OR p.prorettype != p2.prorettype OR
p2.pronargs != 1 OR
- p1.aggtranstype != p2.proargtypes[0]);
- oid | aggname | oid | proname
------+---------+-----+---------
+ a.aggtranstype != p2.proargtypes[0]);
+ aggfnoid | proname | oid | proname
+----------+---------+-----+---------
(0 rows)
-- If transfn is strict then either initval should be non-NULL, or
--- basetype should equal transtype so that the first non-null input
+-- input type should equal transtype so that the first non-null input
-- can be assigned as the state value.
-SELECT p1.oid, p1.aggname, p2.oid, p2.proname
-FROM pg_aggregate AS p1, pg_proc AS p2
-WHERE p1.aggtransfn = p2.oid AND p2.proisstrict AND
- p1.agginitval IS NULL AND p1.aggbasetype != p1.aggtranstype;
- oid | aggname | oid | proname
------+---------+-----+---------
+SELECT a.aggfnoid::oid, p.proname, p2.oid, p2.proname
+FROM pg_aggregate AS a, pg_proc AS p, pg_proc AS p2
+WHERE a.aggfnoid = p.oid AND
+ a.aggtransfn = p2.oid AND p2.proisstrict AND
+ a.agginitval IS NULL AND p.proargtypes[0] != a.aggtranstype;
+ aggfnoid | proname | oid | proname
+----------+---------+-----+---------
(0 rows)
-- **************** pg_opclass ****************
@@ -574,6 +616,17 @@ WHERE p1.amopopr = p2.oid AND
-----------+---------+-----+---------
(0 rows)
+-- Check that all operators linked to by opclass entries have selectivity
+-- estimators. This is not absolutely required, but it seems a reasonable
+-- thing to insist on for all standard datatypes.
+SELECT p1.amopclaid, p1.amopopr, p2.oid, p2.oprname
+FROM pg_amop AS p1, pg_operator AS p2
+WHERE p1.amopopr = p2.oid AND
+ (p2.oprrest = 0 OR p2.oprjoin = 0);
+ amopclaid | amopopr | oid | oprname
+-----------+---------+-----+---------
+(0 rows)
+
-- Check that operator input types match the opclass
SELECT p1.amopclaid, p1.amopopr, p2.oid, p2.oprname, p3.opcname
FROM pg_amop AS p1, pg_operator AS p2, pg_opclass AS p3
diff --git a/src/test/regress/expected/rules.out b/src/test/regress/expected/rules.out
index 8633aa56708..8e0d9e3239b 100644
--- a/src/test/regress/expected/rules.out
+++ b/src/test/regress/expected/rules.out
@@ -1024,7 +1024,7 @@ SELECT * FROM shoe_ready WHERE total_avail >= 2;
NEW.sl_name,
NEW.sl_avail,
'Al Bundy',
- 'epoch'::text
+ 'epoch'
);
UPDATE shoelace_data SET sl_avail = 6 WHERE sl_name = 'sl7';
SELECT * FROM shoelace_log;
@@ -1308,8 +1308,8 @@ SELECT viewname, definition FROM pg_views ORDER BY viewname;
SELECT tablename, rulename, definition FROM pg_rules
ORDER BY tablename, rulename;
- tablename | rulename | definition
----------------+-----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ tablename | rulename | definition
+---------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
rtest_emp | rtest_emp_del | CREATE RULE rtest_emp_del AS ON DELETE TO rtest_emp DO INSERT INTO rtest_emplog (ename, who, "action", newsal, oldsal) VALUES (old.ename, "current_user"(), 'fired '::bpchar, '$0.00'::money, old.salary);
rtest_emp | rtest_emp_ins | CREATE RULE rtest_emp_ins AS ON INSERT TO rtest_emp DO INSERT INTO rtest_emplog (ename, who, "action", newsal, oldsal) VALUES (new.ename, "current_user"(), 'hired '::bpchar, new.salary, '$0.00'::money);
rtest_emp | rtest_emp_upd | CREATE RULE rtest_emp_upd AS ON UPDATE TO rtest_emp WHERE (new.salary <> old.salary) DO INSERT INTO rtest_emplog (ename, who, "action", newsal, oldsal) VALUES (new.ename, "current_user"(), 'honored '::bpchar, new.salary, old.salary);
@@ -1335,7 +1335,7 @@ SELECT tablename, rulename, definition FROM pg_rules
shoelace | shoelace_del | CREATE RULE shoelace_del AS ON DELETE TO shoelace DO INSTEAD DELETE FROM shoelace_data WHERE (shoelace_data.sl_name = old.sl_name);
shoelace | shoelace_ins | CREATE RULE shoelace_ins AS ON INSERT TO shoelace DO INSTEAD INSERT INTO shoelace_data (sl_name, sl_avail, sl_color, sl_len, sl_unit) VALUES (new.sl_name, new.sl_avail, new.sl_color, new.sl_len, new.sl_unit);
shoelace | shoelace_upd | CREATE RULE shoelace_upd AS ON UPDATE TO shoelace DO INSTEAD UPDATE shoelace_data SET sl_name = new.sl_name, sl_avail = new.sl_avail, sl_color = new.sl_color, sl_len = new.sl_len, sl_unit = new.sl_unit WHERE (shoelace_data.sl_name = old.sl_name);
- shoelace_data | log_shoelace | CREATE RULE log_shoelace AS ON UPDATE TO shoelace_data WHERE (new.sl_avail <> old.sl_avail) DO INSERT INTO shoelace_log (sl_name, sl_avail, log_who, log_when) VALUES (new.sl_name, new.sl_avail, 'Al Bundy'::name, "timestamp"('epoch'::text));
+ shoelace_data | log_shoelace | CREATE RULE log_shoelace AS ON UPDATE TO shoelace_data WHERE (new.sl_avail <> old.sl_avail) DO INSERT INTO shoelace_log (sl_name, sl_avail, log_who, log_when) VALUES (new.sl_name, new.sl_avail, 'Al Bundy'::name, 'Thu Jan 01 00:00:00 1970'::"timestamp");
shoelace_ok | shoelace_ok_ins | CREATE RULE shoelace_ok_ins AS ON INSERT TO shoelace_ok DO INSTEAD UPDATE shoelace SET sl_avail = (shoelace.sl_avail + new.ok_quant) WHERE (shoelace.sl_name = new.ok_name);
(27 rows)
diff --git a/src/test/regress/sql/alter_table.sql b/src/test/regress/sql/alter_table.sql
index e23a75cebbe..477f4696b56 100644
--- a/src/test/regress/sql/alter_table.sql
+++ b/src/test/regress/sql/alter_table.sql
@@ -234,8 +234,8 @@ DROP TABLE tmp2;
-- is run in parallel with foreign_key.sql.
CREATE TEMP TABLE PKTABLE (ptest1 int PRIMARY KEY);
-CREATE TEMP TABLE FKTABLE (ftest1 text);
--- This next should fail, because text=int does not exist
+CREATE TEMP TABLE FKTABLE (ftest1 inet);
+-- This next should fail, because inet=int does not exist
ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1) references pktable;
-- This should also fail for the same reason, but here we
-- give the column name
@@ -250,7 +250,7 @@ ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1) references pktable(ptest1);
DROP TABLE pktable;
DROP TABLE fktable;
-CREATE TEMP TABLE PKTABLE (ptest1 int, ptest2 text,
+CREATE TEMP TABLE PKTABLE (ptest1 int, ptest2 inet,
PRIMARY KEY(ptest1, ptest2));
-- This should fail, because we just chose really odd types
CREATE TEMP TABLE FKTABLE (ftest1 cidr, ftest2 datetime);
@@ -262,7 +262,7 @@ ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2)
references pktable(ptest1, ptest2);
-- This fails because we mixed up the column ordering
DROP TABLE FKTABLE;
-CREATE TEMP TABLE FKTABLE (ftest1 int, ftest2 text);
+CREATE TEMP TABLE FKTABLE (ftest1 int, ftest2 inet);
ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2)
references pktable(ptest2, ptest1);
-- As does this...
diff --git a/src/test/regress/sql/foreign_key.sql b/src/test/regress/sql/foreign_key.sql
index 587fd850f72..ce90c7958ba 100644
--- a/src/test/regress/sql/foreign_key.sql
+++ b/src/test/regress/sql/foreign_key.sql
@@ -431,11 +431,11 @@ DROP TABLE PKTABLE;
--
-- Basic one column, two table setup
CREATE TABLE PKTABLE (ptest1 int PRIMARY KEY);
--- This next should fail, because text=int does not exist
-CREATE TABLE FKTABLE (ftest1 text REFERENCES pktable);
+-- This next should fail, because inet=int does not exist
+CREATE TABLE FKTABLE (ftest1 inet REFERENCES pktable);
-- This should also fail for the same reason, but here we
-- give the column name
-CREATE TABLE FKTABLE (ftest1 text REFERENCES pktable(ptest1));
+CREATE TABLE FKTABLE (ftest1 inet REFERENCES pktable(ptest1));
-- This should succeed, even though they are different types
-- because varchar=int does exist
CREATE TABLE FKTABLE (ftest1 varchar REFERENCES pktable);
@@ -446,42 +446,42 @@ DROP TABLE FKTABLE;
DROP TABLE PKTABLE;
-- Two columns, two tables
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, PRIMARY KEY(ptest1, ptest2));
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, PRIMARY KEY(ptest1, ptest2));
-- This should fail, because we just chose really odd types
CREATE TABLE FKTABLE (ftest1 cidr, ftest2 datetime, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable);
-- Again, so should this...
CREATE TABLE FKTABLE (ftest1 cidr, ftest2 datetime, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest1, ptest2));
-- This fails because we mixed up the column ordering
-CREATE TABLE FKTABLE (ftest1 int, ftest2 text, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable);
+CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable);
-- As does this...
-CREATE TABLE FKTABLE (ftest1 int, ftest2 text, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable(ptest1, ptest2));
+CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable(ptest1, ptest2));
-- And again..
-CREATE TABLE FKTABLE (ftest1 int, ftest2 text, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest2, ptest1));
+CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest2, ptest1));
-- This works...
-CREATE TABLE FKTABLE (ftest1 int, ftest2 text, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable(ptest2, ptest1));
+CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable(ptest2, ptest1));
DROP TABLE FKTABLE;
-- As does this
-CREATE TABLE FKTABLE (ftest1 int, ftest2 text, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest1, ptest2));
+CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest1, ptest2));
DROP TABLE FKTABLE;
DROP TABLE PKTABLE;
-- Two columns, same table
-- Make sure this still works...
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
ptest4) REFERENCES pktable(ptest1, ptest2));
DROP TABLE PKTABLE;
-- And this,
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
ptest4) REFERENCES pktable);
DROP TABLE PKTABLE;
-- This shouldn't (mixed up columns)
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest3,
ptest4) REFERENCES pktable(ptest2, ptest1));
-- Nor should this... (same reason, we have 4,3 referencing 1,2 which mismatches types
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest4,
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest4,
ptest3) REFERENCES pktable(ptest1, ptest2));
-- Not this one either... Same as the last one except we didn't defined the columns being referenced.
-CREATE TABLE PKTABLE (ptest1 int, ptest2 text, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest4,
+CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, ptest3 int, ptest4 inet, PRIMARY KEY(ptest1, ptest2), FOREIGN KEY(ptest4,
ptest3) REFERENCES pktable);
--
@@ -557,26 +557,26 @@ drop table pktable_base;
-- 2 columns (2 tables), mismatched types
create table pktable_base(base1 int not null);
-create table pktable(ptest1 text, primary key(base1, ptest1)) inherits (pktable_base);
+create table pktable(ptest1 inet, primary key(base1, ptest1)) inherits (pktable_base);
-- just generally bad types (with and without column references on the referenced table)
create table fktable(ftest1 cidr, ftest2 int[], foreign key (ftest1, ftest2) references pktable);
create table fktable(ftest1 cidr, ftest2 int[], foreign key (ftest1, ftest2) references pktable(base1, ptest1));
-- let's mix up which columns reference which
-create table fktable(ftest1 int, ftest2 text, foreign key(ftest2, ftest1) references pktable);
-create table fktable(ftest1 int, ftest2 text, foreign key(ftest2, ftest1) references pktable(base1, ptest1));
-create table fktable(ftest1 int, ftest2 text, foreign key(ftest1, ftest2) references pktable(ptest1, base1));
+create table fktable(ftest1 int, ftest2 inet, foreign key(ftest2, ftest1) references pktable);
+create table fktable(ftest1 int, ftest2 inet, foreign key(ftest2, ftest1) references pktable(base1, ptest1));
+create table fktable(ftest1 int, ftest2 inet, foreign key(ftest1, ftest2) references pktable(ptest1, base1));
drop table pktable;
drop table pktable_base;
-- 2 columns (1 table), mismatched types
create table pktable_base(base1 int not null, base2 int);
-create table pktable(ptest1 text, ptest2 text[], primary key(base1, ptest1), foreign key(base2, ptest2) references
+create table pktable(ptest1 inet, ptest2 inet[], primary key(base1, ptest1), foreign key(base2, ptest2) references
pktable(base1, ptest1)) inherits (pktable_base);
-create table pktable(ptest1 text, ptest2 text, primary key(base1, ptest1), foreign key(base2, ptest2) references
+create table pktable(ptest1 inet, ptest2 inet, primary key(base1, ptest1), foreign key(base2, ptest2) references
pktable(ptest1, base1)) inherits (pktable_base);
-create table pktable(ptest1 text, ptest2 text, primary key(base1, ptest1), foreign key(ptest2, base2) references
+create table pktable(ptest1 inet, ptest2 inet, primary key(base1, ptest1), foreign key(ptest2, base2) references
pktable(base1, ptest1)) inherits (pktable_base);
-create table pktable(ptest1 text, ptest2 text, primary key(base1, ptest1), foreign key(ptest2, base2) references
+create table pktable(ptest1 inet, ptest2 inet, primary key(base1, ptest1), foreign key(ptest2, base2) references
pktable(base1, ptest1)) inherits (pktable_base);
drop table pktable;
drop table pktable_base;
diff --git a/src/test/regress/sql/oidjoins.sql b/src/test/regress/sql/oidjoins.sql
index 3403215be60..bf638be3d13 100644
--- a/src/test/regress/sql/oidjoins.sql
+++ b/src/test/regress/sql/oidjoins.sql
@@ -1,6 +1,10 @@
--
-- This is created by pgsql/contrib/findoidjoins/make_oidjoin_check
--
+SELECT ctid, pg_aggregate.aggfnoid
+FROM pg_aggregate
+WHERE pg_aggregate.aggfnoid != 0 AND
+ NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_aggregate.aggfnoid);
SELECT ctid, pg_aggregate.aggtransfn
FROM pg_aggregate
WHERE pg_aggregate.aggtransfn != 0 AND
@@ -9,18 +13,10 @@ SELECT ctid, pg_aggregate.aggfinalfn
FROM pg_aggregate
WHERE pg_aggregate.aggfinalfn != 0 AND
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_aggregate.aggfinalfn);
-SELECT ctid, pg_aggregate.aggbasetype
-FROM pg_aggregate
-WHERE pg_aggregate.aggbasetype != 0 AND
- NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggbasetype);
SELECT ctid, pg_aggregate.aggtranstype
FROM pg_aggregate
WHERE pg_aggregate.aggtranstype != 0 AND
NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggtranstype);
-SELECT ctid, pg_aggregate.aggfinaltype
-FROM pg_aggregate
-WHERE pg_aggregate.aggfinaltype != 0 AND
- NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggfinaltype);
SELECT ctid, pg_am.amgettuple
FROM pg_am
WHERE pg_am.amgettuple != 0 AND
diff --git a/src/test/regress/sql/opr_sanity.sql b/src/test/regress/sql/opr_sanity.sql
index a470dff5050..70565e3252a 100644
--- a/src/test/regress/sql/opr_sanity.sql
+++ b/src/test/regress/sql/opr_sanity.sql
@@ -46,7 +46,7 @@ WHERE p1.oid != p2.oid AND
p1.pronargs = p2.pronargs AND
p1.proargtypes = p2.proargtypes;
--- Considering only built-in procs (prolang = 11/12), look for multiple uses
+-- Considering only built-in procs (prolang = 12), look for multiple uses
-- of the same internal function (ie, matching prosrc fields). It's OK to
-- have several entries with different pronames for the same internal function,
-- but conflicts in the number of arguments and other critical items should
@@ -56,14 +56,14 @@ SELECT p1.oid, p1.proname, p2.oid, p2.proname
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
- (p1.prolang = 11 OR p1.prolang = 12) AND
- (p2.prolang = 11 OR p2.prolang = 12) AND
+ p1.prolang = 12 AND p2.prolang = 12 AND
(p1.prolang != p2.prolang OR
- p1.proisinh != p2.proisinh OR
+ p1.proisagg != p2.proisagg OR
p1.proistrusted != p2.proistrusted OR
+ p1.proisstrict != p2.proisstrict OR
+ p1.proretset != p2.proretset OR
p1.provolatile != p2.provolatile OR
- p1.pronargs != p2.pronargs OR
- p1.proretset != p2.proretset);
+ p1.pronargs != p2.pronargs);
-- Look for uses of different type OIDs in the argument/result type fields
-- for different aliases of the same built-in function.
@@ -71,79 +71,95 @@ WHERE p1.oid != p2.oid AND
-- That's not wrong, necessarily, but we make lists of all the types being
-- so treated. Note that the expected output of this part of the test will
-- need to be modified whenever new pairs of types are made binary-equivalent!
+-- Note: ignore aggregate functions here, since they all point to the same
+-- dummy built-in function.
SELECT DISTINCT p1.prorettype, p2.prorettype
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
- (p1.prolang = 11 OR p1.prolang = 12) AND
- (p2.prolang = 11 OR p2.prolang = 12) AND
+ p1.prolang = 12 AND p2.prolang = 12 AND
+ NOT p1.proisagg AND NOT p2.proisagg AND
(p1.prorettype < p2.prorettype);
SELECT DISTINCT p1.proargtypes[0], p2.proargtypes[0]
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
- (p1.prolang = 11 OR p1.prolang = 12) AND
- (p2.prolang = 11 OR p2.prolang = 12) AND
+ p1.prolang = 12 AND p2.prolang = 12 AND
+ NOT p1.proisagg AND NOT p2.proisagg AND
(p1.proargtypes[0] < p2.proargtypes[0]);
SELECT DISTINCT p1.proargtypes[1], p2.proargtypes[1]
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
- (p1.prolang = 11 OR p1.prolang = 12) AND
- (p2.prolang = 11 OR p2.prolang = 12) AND
+ p1.prolang = 12 AND p2.prolang = 12 AND
+ NOT p1.proisagg AND NOT p2.proisagg AND
(p1.proargtypes[1] < p2.proargtypes[1]);
SELECT DISTINCT p1.proargtypes[2], p2.proargtypes[2]
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
- (p1.prolang = 11 OR p1.prolang = 12) AND
- (p2.prolang = 11 OR p2.prolang = 12) AND
+ p1.prolang = 12 AND p2.prolang = 12 AND
+ NOT p1.proisagg AND NOT p2.proisagg AND
(p1.proargtypes[2] < p2.proargtypes[2]);
SELECT DISTINCT p1.proargtypes[3], p2.proargtypes[3]
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
- (p1.prolang = 11 OR p1.prolang = 12) AND
- (p2.prolang = 11 OR p2.prolang = 12) AND
+ p1.prolang = 12 AND p2.prolang = 12 AND
+ NOT p1.proisagg AND NOT p2.proisagg AND
(p1.proargtypes[3] < p2.proargtypes[3]);
SELECT DISTINCT p1.proargtypes[4], p2.proargtypes[4]
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
- (p1.prolang = 11 OR p1.prolang = 12) AND
- (p2.prolang = 11 OR p2.prolang = 12) AND
+ p1.prolang = 12 AND p2.prolang = 12 AND
+ NOT p1.proisagg AND NOT p2.proisagg AND
(p1.proargtypes[4] < p2.proargtypes[4]);
SELECT DISTINCT p1.proargtypes[5], p2.proargtypes[5]
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
- (p1.prolang = 11 OR p1.prolang = 12) AND
- (p2.prolang = 11 OR p2.prolang = 12) AND
+ p1.prolang = 12 AND p2.prolang = 12 AND
+ NOT p1.proisagg AND NOT p2.proisagg AND
(p1.proargtypes[5] < p2.proargtypes[5]);
SELECT DISTINCT p1.proargtypes[6], p2.proargtypes[6]
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
- (p1.prolang = 11 OR p1.prolang = 12) AND
- (p2.prolang = 11 OR p2.prolang = 12) AND
+ p1.prolang = 12 AND p2.prolang = 12 AND
+ NOT p1.proisagg AND NOT p2.proisagg AND
(p1.proargtypes[6] < p2.proargtypes[6]);
SELECT DISTINCT p1.proargtypes[7], p2.proargtypes[7]
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
- (p1.prolang = 11 OR p1.prolang = 12) AND
- (p2.prolang = 11 OR p2.prolang = 12) AND
+ p1.prolang = 12 AND p2.prolang = 12 AND
+ NOT p1.proisagg AND NOT p2.proisagg AND
(p1.proargtypes[7] < p2.proargtypes[7]);
+-- If a proc is marked as an implicit cast, then it should be something that
+-- the system might actually use as a cast function: name same as the name
+-- of its output type, and either one arg that's a different type, or two
+-- args where the first is the same as the output type and the second is int4.
+
+SELECT p1.oid, p1.proname
+FROM pg_proc as p1
+WHERE p1.proimplicit AND
+ (NOT EXISTS (SELECT 1 FROM pg_type t WHERE t.oid = p1.prorettype AND
+ t.typname = p1.proname) OR
+ NOT ((p1.pronargs = 1 AND p1.proargtypes[0] != prorettype) OR
+ (p1.pronargs = 2 AND p1.proargtypes[0] = prorettype AND
+ p1.proargtypes[1] = 23)));
+
-- **************** pg_operator ****************
-- Look for illegal values in pg_operator fields.
@@ -192,6 +208,7 @@ WHERE p1.oprcom = p2.oid AND
-- single-operand operators.
-- We expect that B will always say that B.oprnegate = A as well; that's not
-- inherently essential, but it would be inefficient not to mark it so.
+-- Also, A and B had better not be the same operator.
SELECT p1.oid, p1.oprcode, p2.oid, p2.oprcode
FROM pg_operator AS p1, pg_operator AS p2
@@ -201,7 +218,8 @@ WHERE p1.oprnegate = p2.oid AND
p1.oprright != p2.oprright OR
p1.oprresult != 16 OR
p2.oprresult != 16 OR
- p1.oid != p2.oprnegate);
+ p1.oid != p2.oprnegate OR
+ p1.oid = p2.oid);
-- Look for mergejoin operators that don't match their links.
-- A mergejoin link leads from an '=' operator to the
@@ -378,15 +396,30 @@ WHERE p1.oprjoin = p2.oid AND
-- Look for illegal values in pg_aggregate fields.
-SELECT p1.oid, p1.aggname
+SELECT ctid, aggfnoid::oid
FROM pg_aggregate as p1
-WHERE aggtransfn = 0 OR aggtranstype = 0 OR aggfinaltype = 0;
+WHERE aggfnoid = 0 OR aggtransfn = 0 OR aggtranstype = 0;
+
+-- Make sure the matching pg_proc entry is sensible, too.
+
+SELECT a.aggfnoid::oid, p.proname
+FROM pg_aggregate as a, pg_proc as p
+WHERE a.aggfnoid = p.oid AND
+ (NOT p.proisagg OR p.pronargs != 1 OR p.proretset);
+
+-- Make sure there are no proisagg pg_proc entries without matches.
+
+SELECT oid, proname
+FROM pg_proc as p
+WHERE p.proisagg AND
+ NOT EXISTS (SELECT 1 FROM pg_aggregate a WHERE a.aggfnoid = p.oid);
-- If there is no finalfn then the output type must be the transtype.
-SELECT p1.oid, p1.aggname
-FROM pg_aggregate as p1
-WHERE p1.aggfinalfn = 0 AND p1.aggfinaltype != p1.aggtranstype;
+SELECT a.aggfnoid::oid, p.proname
+FROM pg_aggregate as a, pg_proc as p
+WHERE a.aggfnoid = p.oid AND
+ a.aggfinalfn = 0 AND p.prorettype != a.aggtranstype;
-- Cross-check transfn against its entry in pg_proc.
-- FIXME: what about binary-compatible types?
@@ -394,33 +427,36 @@ WHERE p1.aggfinalfn = 0 AND p1.aggfinaltype != p1.aggtranstype;
-- implemented using int4larger/int4smaller. Until we have
-- some cleaner way of dealing with binary-equivalent types, just leave
-- those two tuples in the expected output.
-SELECT p1.oid, p1.aggname, p2.oid, p2.proname
-FROM pg_aggregate AS p1, pg_proc AS p2
-WHERE p1.aggtransfn = p2.oid AND
+SELECT a.aggfnoid::oid, p.proname, p2.oid, p2.proname
+FROM pg_aggregate AS a, pg_proc AS p, pg_proc AS p2
+WHERE a.aggfnoid = p.oid AND
+ a.aggtransfn = p2.oid AND
(p2.proretset OR
- p1.aggtranstype != p2.prorettype OR
- p1.aggtranstype != p2.proargtypes[0] OR
- NOT ((p2.pronargs = 2 AND p1.aggbasetype = p2.proargtypes[1]) OR
- (p2.pronargs = 1 AND p1.aggbasetype = 0)));
+ a.aggtranstype != p2.prorettype OR
+ a.aggtranstype != p2.proargtypes[0] OR
+ NOT ((p2.pronargs = 2 AND p.proargtypes[0] = p2.proargtypes[1]) OR
+ (p2.pronargs = 1 AND p.proargtypes[0] = 0)));
-- Cross-check finalfn (if present) against its entry in pg_proc.
-- FIXME: what about binary-compatible types?
-SELECT p1.oid, p1.aggname, p2.oid, p2.proname
-FROM pg_aggregate AS p1, pg_proc AS p2
-WHERE p1.aggfinalfn = p2.oid AND
- (p2.proretset OR p1.aggfinaltype != p2.prorettype OR
+SELECT a.aggfnoid::oid, p.proname, p2.oid, p2.proname
+FROM pg_aggregate AS a, pg_proc AS p, pg_proc AS p2
+WHERE a.aggfnoid = p.oid AND
+ a.aggfinalfn = p2.oid AND
+ (p2.proretset OR p.prorettype != p2.prorettype OR
p2.pronargs != 1 OR
- p1.aggtranstype != p2.proargtypes[0]);
+ a.aggtranstype != p2.proargtypes[0]);
-- If transfn is strict then either initval should be non-NULL, or
--- basetype should equal transtype so that the first non-null input
+-- input type should equal transtype so that the first non-null input
-- can be assigned as the state value.
-SELECT p1.oid, p1.aggname, p2.oid, p2.proname
-FROM pg_aggregate AS p1, pg_proc AS p2
-WHERE p1.aggtransfn = p2.oid AND p2.proisstrict AND
- p1.agginitval IS NULL AND p1.aggbasetype != p1.aggtranstype;
+SELECT a.aggfnoid::oid, p.proname, p2.oid, p2.proname
+FROM pg_aggregate AS a, pg_proc AS p, pg_proc AS p2
+WHERE a.aggfnoid = p.oid AND
+ a.aggtransfn = p2.oid AND p2.proisstrict AND
+ a.agginitval IS NULL AND p.proargtypes[0] != a.aggtranstype;
-- **************** pg_opclass ****************
@@ -473,6 +509,15 @@ FROM pg_amop AS p1, pg_operator AS p2
WHERE p1.amopopr = p2.oid AND
(p2.oprkind != 'b' OR p2.oprresult != 16 OR p2.oprleft != p2.oprright);
+-- Check that all operators linked to by opclass entries have selectivity
+-- estimators. This is not absolutely required, but it seems a reasonable
+-- thing to insist on for all standard datatypes.
+
+SELECT p1.amopclaid, p1.amopopr, p2.oid, p2.oprname
+FROM pg_amop AS p1, pg_operator AS p2
+WHERE p1.amopopr = p2.oid AND
+ (p2.oprrest = 0 OR p2.oprjoin = 0);
+
-- Check that operator input types match the opclass
SELECT p1.amopclaid, p1.amopopr, p2.oid, p2.oprname, p3.opcname
diff --git a/src/test/regress/sql/rules.sql b/src/test/regress/sql/rules.sql
index aa9fcbb7288..4322cf6cd2c 100644
--- a/src/test/regress/sql/rules.sql
+++ b/src/test/regress/sql/rules.sql
@@ -604,7 +604,7 @@ SELECT * FROM shoe_ready WHERE total_avail >= 2;
NEW.sl_name,
NEW.sl_avail,
'Al Bundy',
- 'epoch'::text
+ 'epoch'
);
UPDATE shoelace_data SET sl_avail = 6 WHERE sl_name = 'sl7';
diff --git a/src/tutorial/syscat.source b/src/tutorial/syscat.source
index f1be25728ca..a43277f45d1 100644
--- a/src/tutorial/syscat.source
+++ b/src/tutorial/syscat.source
@@ -7,7 +7,7 @@
-- Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
-- Portions Copyright (c) 1994, Regents of the University of California
--
--- $Id: syscat.source,v 1.5 2001/08/21 16:36:06 tgl Exp $
+-- $Id: syscat.source,v 1.6 2002/04/11 20:00:18 tgl Exp $
--
---------------------------------------------------------------------------
@@ -129,10 +129,11 @@ SELECT p.proname, p.pronargs, t.typname
--
-- lists all aggregate functions and the types to which they can be applied
--
-SELECT a.aggname, t.typname
- FROM pg_aggregate a, pg_type t
- WHERE a.aggbasetype = t.oid
- ORDER BY aggname, typname;
+SELECT p.proname, t.typname
+ FROM pg_aggregate a, pg_proc p, pg_type t
+ WHERE a.aggfnoid = p.oid
+ and p.proargtypes[0] = t.oid
+ ORDER BY proname, typname;
--