*** a/doc/src/sgml/errcodes.sgml
--- b/doc/src/sgml/errcodes.sgml
***************
*** 991,996 ****
--- 991,1002 ----
+ 42P36
+ WINDOWING ERROR
+ windowing_error
+
+
+
42P19
INVALID RECURSION
invalid_recursion
*** a/doc/src/sgml/func.sgml
--- b/doc/src/sgml/func.sgml
***************
*** 10149,10154 **** SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
--- 10149,10391 ----
+
+ Window Functions
+
+
+ Window functions provide facilities of
+ windowed table calculation, including window aggregate.
+
+ The built-in window functions are listed in
+ .
+ All of aggregate functions in and
+ can be also used in
+ the windowed table.
+
+
+
+ General-Purpose Window Functions
+
+
+
+
+ Function
+ Argument Type
+ Return Type
+ Description
+
+
+
+
+
+
+
+ rank
+
+ rank()
+
+
+
+ bigint
+
+ number of the row from 1 ordered by sort_expressions in the partition, with gaps
+
+
+
+
+
+ dense_rank
+
+ dense_rank()
+
+
+
+ bigint
+
+ number of the row from 1 ordered by sort_expressions in the partition, without gaps
+
+
+
+
+
+ row_number()
+
+ row_number()
+
+
+
+ bigint
+
+ number of the row from 1 ordered by sort_expressions in the partition, incrementing always
+
+
+
+
+
+ percent_rank()
+
+ percent_rank()
+
+
+
+ double precision
+
+ relative rank of the row between 0 and 1 ordered by sort_expressions in the partition, with gap
+
+
+
+
+
+ cume_dist()
+
+ cume_dist()
+
+
+
+ double precision
+
+ relative rank of the row between 0 and 1 ordered by sort_expressions in the partition, without gap
+
+
+
+
+
+ ntile()
+
+ ntile(integer)
+
+
+ integer
+
+
+ integer
+
+ integer value ranging from 1 to the argument integer, equally dividing the partition
+
+
+
+
+
+ lag
+
+
+ lag(value[, offset[, default]])
+
+
+
+ any[, integer[, any]]
+
+
+ same type as value
+
+
+ returns value evaluated on
+ the row that is offset number of
+ rows before the current row within the partition. If
+ offset is ommited then a default offset of 1 is assumed. If
+ default is specified and the target row is out
+ of the partition, default is returned.
+ Note that default may only be specified
+ if offset is also specified.
+
+
+
+
+
+
+ lead
+
+
+ lead(value[, offset[, default]])
+
+
+
+ any[, integer[, any]]
+
+
+ same type as value
+
+
+ returns value evaluated on
+ the row that is offset number of
+ rows after the current row within the partition. If
+ offset is ommited then a default offset of 1 is assumed. If
+ default is specified and the target row is out
+ of the partition, default is returned.
+ Note that default may only be specified
+ if offset is also specified.
+
+
+
+
+
+
+ first_value
+
+ first_value(value)
+
+
+ any
+
+
+ same type as value
+
+
+ returns value evaluated on the row
+ that is the first row of the frame
+
+
+
+
+
+
+ last_value
+
+ last_value(value)
+
+
+ any
+
+
+ same type as value
+
+
+ returns value evaluated on the row
+ that is the last row of the frame
+
+
+
+
+
+
+ nth_value
+
+
+ nth_value(value, nth)
+
+
+
+ any, integer
+
+
+ same type as value
+
+
+ returns value evaluated on the row
+ that is the nth row of the
+ frame
+
+
+
+
+
+
+
Subquery Expressions
*** a/doc/src/sgml/queries.sgml
--- b/doc/src/sgml/queries.sgml
***************
*** 950,955 **** SELECT product_id, p.name, (sum(s.units) * (p.price - p.cost)) AS profit
--- 950,1021 ----
to be the same in all parts of the query.
+
+
+ The WINDOW Clauses
+
+
+ WINDOW
+
+
+
+ windowing
+
+
+
+ After the WHERE>, GROUP BY> and HAVING>
+ clauses one or more window definitions can be specified by the
+ WINDOW> clause. This will allow window functions to be specified in
+ the SELECT> clause. These window functions can make use of
+ the WINDOW> clauses by making reference to the alias name of
+ the window rather than explicitly specifying the properties of the
+ window in each OVER> clause.
+
+
+
+ SELECT function_call OVER
+ (window_specification)
+ FROM ...
+
+ SELECT function_call OVER window_name
+ FROM ...
+ WHERE ...
+ GROUP BY ...
+ HAVING ...
+ WINDOW window_name AS (window_specification)
+
+
+
+ where window_specification is given as:
+
+
+
+ PARTITION BY partition_expression ORDER BY sort_expression
+
+
+
+ The WINDOW> clause specifies what kind of window can be used in the
+ . Since window
+ functions can specify its own window with OVER> clause, no WINDOW>
+ clause may be needed even if the SELECT> list has window functions.
+ But when more than one function specify the same window specification,
+ the WINDOW> clause saves complexed SQL command.
+
+
+
+ Windowing operations are sometimes done with sort operations. If you
+ need exact ordered result as the final output, you must specify
+ ORDER BY clause. Also, it is better that you don't
+ assume any ordered result based on the subquery or physical table
+ placement.
+
+
+
+ If there is window_name that isn't referred by
+ any window functions in the WINDOW> clause, the
+ window_specification is only ignored.
+
+
*** a/doc/src/sgml/query.sgml
--- b/doc/src/sgml/query.sgml
***************
*** 805,810 **** SELECT city, max(temp_lo)
--- 805,971 ----
+
+ Window Functions
+
+
+ A window function is the operation across a set of rows in
+ a windowed table. This may sound similar to aggregate functions,
+ but contrast to that window functions don't reduce rows.
+ Additionally, window functions can compute different results
+ row by row.
+
+
+
+ Here is an example that shows how to compare each employee's salary
+ with the department average salary.
+
+
+ SELECT depname, empno, salary, avg(salary) OVER (PARTITION BY depname) FROM empsalary;
+
+
+
+ depname | empno | salary | avg
+ -----------+-------+--------+-----------------------
+ develop | 11 | 5200 | 5020.0000000000000000
+ develop | 7 | 4200 | 5020.0000000000000000
+ develop | 9 | 4500 | 5020.0000000000000000
+ develop | 8 | 6000 | 5020.0000000000000000
+ develop | 10 | 5200 | 5020.0000000000000000
+ personnel | 5 | 3500 | 3700.0000000000000000
+ personnel | 2 | 3900 | 3700.0000000000000000
+ sales | 3 | 4800 | 4866.6666666666666667
+ sales | 1 | 5000 | 4866.6666666666666667
+ sales | 4 | 4800 | 4866.6666666666666667
+ (10 rows)
+
+
+ avg works exact same as the aggregate functions
+ except it doesn't reduce rows and returns same result within the
+ same depname. Without reducing rows,
+ it is possible to compare the original salary
+ with each department's average salary.
+
+
+
+ Another example shows different capability of window functions
+ from above.
+
+
+ SELECT depname, empno, salary, rank() OVER (PARTITION BY depname ORDER BY salary DESC) FROM empsalary;
+
+
+
+ depname | empno | salary | rank
+ -----------+-------+--------+------
+ develop | 8 | 6000 | 1
+ develop | 10 | 5200 | 2
+ develop | 11 | 5200 | 2
+ develop | 9 | 4500 | 4
+ develop | 7 | 4200 | 5
+ personnel | 2 | 3900 | 1
+ personnel | 5 | 3500 | 2
+ sales | 1 | 5000 | 1
+ sales | 4 | 4800 | 2
+ sales | 3 | 4800 | 2
+ (10 rows)
+
+
+ rank returns offset position of the row when
+ the rows in the partition are ordered by the specified value. In this case,
+ in each department each employee's salary rank with gap is shown.
+
+
+
+ In addition to partition> there is another concept called
+ frame> as a set of rows. Currently frame> can
+ only be specified by ORDER BY> clause.
+
+
+
+ SELECT salary, sum(salary) OVER() FROM empsalary;
+
+
+
+ salary | sum
+ --------+-------
+ 5200 | 47100
+ 5000 | 47100
+ 3500 | 47100
+ 4800 | 47100
+ 3900 | 47100
+ 4200 | 47100
+ 4500 | 47100
+ 4800 | 47100
+ 6000 | 47100
+ 5200 | 47100
+ (10 rows)
+
+
+
+ The example above has a frame> that contains all rows of
+ the partition>. Since window aggregate functions collects
+ all rows contained in the frame>, the results of each
+ row is sum of the all salary>.
+
+
+
+ SELECT salary, sum(salary) OVER(ORDER BY salary) FROM empsalary;
+
+
+
+ salary | sum
+ --------+-------
+ 3500 | 3500
+ 3900 | 7400
+ 4200 | 11600
+ 4500 | 16100
+ 4800 | 20900
+ 4800 | 25700
+ 5000 | 30700
+ 5200 | 35900
+ 5200 | 41100
+ 6000 | 47100
+ (10 rows)
+
+
+
+ Contrast to that example, this one specifies ORDER BY> explicitly,
+ and there is a frame> including rows that is returned between
+ the first row and the current row. So the results of the sum
+ is cumulative total from the first row. This is because the frame>
+ contains not all the rows in the partition>.
+
+
+
+ Window functions are only permitted in the SELECT and
+ the ORDER BY> clause of the query. They are forbidden
+ anywhere else such as GROUP BY>, HAVING>
+ and WHERE clauses.
+ The arguments passed to window functions and the expressions in
+ PARTITION BY and ORDER BY
+ of a window definition can be the results of aggregate functions.
+ But window functions may not be placed as aggregate functions'
+ arguments. All of window functions are evaluated after aggregate.
+
+
+
+ In a query, windows can be defined as many as needed. The order
+ of the evaluation for each window is implicitly determined by
+ backend, which means there is no way to predict its order.
+
+
+
+ The same window definitions can be named and put together into one
+ definition using .
+
+
+ SELECT sum(salary) OVER w, avg(salary) OVER w FROM empsalary WINDOW w AS (PARTITION BY depname);
+
+
+ The two of functions are evaluated in the same window.
+
+
Updates
*** a/doc/src/sgml/ref/select.sgml
--- b/doc/src/sgml/ref/select.sgml
***************
*** 39,44 **** SELECT [ ALL | DISTINCT [ ON ( expressioncondition ]
[ GROUP BY expression [, ...] ]
[ HAVING condition [, ...] ]
+ [ WINDOW window_name AS ( window_definition ) [, ...] ]
[ { UNION | INTERSECT | EXCEPT } [ ALL ] select ]
[ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ] [, ...] ]
[ LIMIT { count | ALL } ]
***************
*** 566,571 **** HAVING condition
--- 567,604 ----
+
+ WINDOW Clause
+
+
+ The optional WINDOW clause has the general form
+
+ WINDOW window_name AS (window_definition) [, ...]
+
+ where window_name is
+ the window name that is referred from windowed functions, and
+ window_definition is described as follows:
+
+
+ [ PARTITION BY expression [, ...] ]
+ [ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ] [, ...] ]
+
+ where the first expression is the same as
+ one in GROUP BY and the second is the same as
+ one in ORDER BY of the SELECT.
+ Both of these can be omitted.
+
+
+
+ When the window functions with OVER clause in the
+ SELECT list refers to a window name, WINDOW
+ clause must describe what the windowed table is like. If some of the
+ window names are not referred from any of the window function calls,
+ they will be just ignored. In the window definition the
+ expressions are allowed to be aggregated.
+
+
+
SELECT List
*** a/doc/src/sgml/syntax.sgml
--- b/doc/src/sgml/syntax.sgml
***************
*** 1539,1544 **** sqrt(2)
--- 1539,1618 ----
+
+ Windowed Tables
+
+
+ A windowed table is a table with one or more windows.
+ A window is a transient set of rows split within a table
+ described by a window definition. The windowed table allows
+ to process values across multiple rows within the window.
+
+
+
+ The windowed table comes with window function calls.
+
+
+ function_call ([arg]) OVER (PARTITION BY partition_column [ , ... ] ORDER BY order_column [ , ... ])
+ function_call ([arg]) OVER window_name
+
+
+ where arg,
+ partition_column and
+ order_column are normal target
+ list such as table column and subquery result as well as
+ the result of GROUP BY process. Either
+ PARTITION clause or
+ ORDER clause must be specified in a
+ window definition. The window_name
+ in the second form indicates use of a window that is defined
+ later WINDOW clause. In the windowed tables
+ any of aggregate function can be called. Additionally predefined
+ window functions may be used to calculate rank values.
+
+
+
+ The predefined ranking window functions are described in
+ . Currently, window functions
+ cannot be defined by the user.
+
+
+
+ Window functions, unlike normal aggregate functions, do not allow
+ DISTINCT> or ALL> to be used within the function
+ argument list.
+
+
+
+ Window functions cannot be used in the WHERE>,
+ GROUP BY> or HAVING> clauses of the query.
+ If there is a need to filter rows, group results or filter
+ rows after aggregation takes place (HAVING>) then the
+ query must be nested. The query should contain the window
+ functions in the inner query and apply the additional clauses that
+ contain the results from the window function in the outer query, such as:
+
+
+ SELECT depname,
+ empno,
+ salary,
+ enroll_date
+ FROM (SELECT depname,
+ empno,
+ salary,
+ enroll_date,
+ ROW_NUMBER() OVER (PARTITION BY depname ORDER BY salary,empno) AS pos
+ FROM empsalary
+ ) AS e
+ WHERE pos < 3;
+
+
+ In the above query we're filtering and only showing the
+ results from the inner query where the pos> of
+ each depname> is less than 3>.
+
+
+
Type Casts
*** a/src/backend/catalog/pg_aggregate.c
--- b/src/backend/catalog/pg_aggregate.c
***************
*** 308,313 **** lookup_agg_function(List *fnName,
--- 308,315 ----
Oid fnOid;
bool retset;
int nvargs;
+ bool isagg;
+ bool iswfunc;
Oid *true_oid_array;
FuncDetailCode fdresult;
AclResult aclresult;
***************
*** 322,327 **** lookup_agg_function(List *fnName,
--- 324,330 ----
*/
fdresult = func_get_detail(fnName, NIL, nargs, input_types, false,
&fnOid, rettype, &retset, &nvargs,
+ &isagg, &iswfunc,
&true_oid_array, NULL);
/* only valid case is a normal function not returning a set */
*** a/src/backend/catalog/pg_proc.c
--- b/src/backend/catalog/pg_proc.c
***************
*** 291,296 **** ProcedureCreate(const char *procedureName,
--- 291,297 ----
values[Anum_pg_proc_prorows - 1] = Float4GetDatum(prorows);
values[Anum_pg_proc_provariadic - 1] = ObjectIdGetDatum(variadicType);
values[Anum_pg_proc_proisagg - 1] = BoolGetDatum(isAgg);
+ values[Anum_pg_proc_proiswfunc - 1] = BoolGetDatum(false); /* temporarily */
values[Anum_pg_proc_prosecdef - 1] = BoolGetDatum(security_definer);
values[Anum_pg_proc_proisstrict - 1] = BoolGetDatum(isStrict);
values[Anum_pg_proc_proretset - 1] = BoolGetDatum(returnsSet);
*** a/src/backend/commands/explain.c
--- b/src/backend/commands/explain.c
***************
*** 644,649 **** explain_outNode(StringInfo str,
--- 644,652 ----
case T_Limit:
pname = "Limit";
break;
+ case T_Window:
+ pname = "Window";
+ break;
case T_Hash:
pname = "Hash";
break;
***************
*** 930,935 **** explain_outNode(StringInfo str,
--- 933,940 ----
show_sort_info((SortState *) planstate,
str, indent, es);
break;
+ case T_Window:
+ break;
case T_Result:
show_upper_qual((List *) ((Result *) plan)->resconstantqual,
"One-Time Filter", plan,
*** a/src/backend/executor/Makefile
--- b/src/backend/executor/Makefile
***************
*** 20,26 **** OBJS = execAmi.o execCurrent.o execGrouping.o execJunk.o execMain.o \
nodeHashjoin.o nodeIndexscan.o nodeMaterial.o nodeMergejoin.o \
nodeNestloop.o nodeFunctionscan.o nodeRecursiveunion.o nodeResult.o \
nodeSeqscan.o nodeSetOp.o nodeSort.o nodeUnique.o \
! nodeValuesscan.o nodeCtescan.o nodeWorktablescan.o \
nodeLimit.o nodeGroup.o nodeSubplan.o nodeSubqueryscan.o nodeTidscan.o \
tstoreReceiver.o spi.o
--- 20,26 ----
nodeHashjoin.o nodeIndexscan.o nodeMaterial.o nodeMergejoin.o \
nodeNestloop.o nodeFunctionscan.o nodeRecursiveunion.o nodeResult.o \
nodeSeqscan.o nodeSetOp.o nodeSort.o nodeUnique.o \
! nodeValuesscan.o nodeCtescan.o nodeWindow.o nodeWorktablescan.o \
nodeLimit.o nodeGroup.o nodeSubplan.o nodeSubqueryscan.o nodeTidscan.o \
tstoreReceiver.o spi.o
*** a/src/backend/executor/execAmi.c
--- b/src/backend/executor/execAmi.c
***************
*** 42,47 ****
--- 42,48 ----
#include "executor/nodeValuesscan.h"
#include "executor/nodeCtescan.h"
#include "executor/nodeWorktablescan.h"
+ #include "executor/nodeWindow.h"
#include "nodes/nodeFuncs.h"
#include "utils/syscache.h"
***************
*** 226,231 **** ExecReScan(PlanState *node, ExprContext *exprCtxt)
--- 227,236 ----
ExecReScanLimit((LimitState *) node, exprCtxt);
break;
+ case T_WindowState:
+ ExecReScanWindow((WindowState *) node, exprCtxt);
+ break;
+
default:
elog(ERROR, "unrecognized node type: %d", (int) nodeTag(node));
break;
*** a/src/backend/executor/execProcnode.c
--- b/src/backend/executor/execProcnode.c
***************
*** 106,111 ****
--- 106,112 ----
#include "executor/nodeValuesscan.h"
#include "executor/nodeCtescan.h"
#include "executor/nodeWorktablescan.h"
+ #include "executor/nodeWindow.h"
#include "miscadmin.h"
***************
*** 280,285 **** ExecInitNode(Plan *node, EState *estate, int eflags)
--- 281,291 ----
estate, eflags);
break;
+ case T_Window:
+ result = (PlanState *) ExecInitWindow((Window *) node,
+ estate, eflags);
+ break;
+
default:
elog(ERROR, "unrecognized node type: %d", (int) nodeTag(node));
result = NULL; /* keep compiler quiet */
***************
*** 441,446 **** ExecProcNode(PlanState *node)
--- 447,456 ----
result = ExecLimit((LimitState *) node);
break;
+ case T_WindowState:
+ result = ExecWindow((WindowState *) node);
+ break;
+
default:
elog(ERROR, "unrecognized node type: %d", (int) nodeTag(node));
result = NULL;
***************
*** 613,618 **** ExecCountSlotsNode(Plan *node)
--- 623,632 ----
case T_Limit:
return ExecCountSlotsLimit((Limit *) node);
+ case T_Window:
+ return ExecCountSlotsWindow((Window *) node);
+ break;
+
default:
elog(ERROR, "unrecognized node type: %d", (int) nodeTag(node));
break;
***************
*** 765,770 **** ExecEndNode(PlanState *node)
--- 779,788 ----
ExecEndLimit((LimitState *) node);
break;
+ case T_WindowState:
+ ExecEndWindow((WindowState *) node);
+ break;
+
default:
elog(ERROR, "unrecognized node type: %d", (int) nodeTag(node));
break;
*** a/src/backend/executor/execQual.c
--- b/src/backend/executor/execQual.c
***************
*** 62,67 **** static Datum ExecEvalArrayRef(ArrayRefExprState *astate,
--- 62,70 ----
static Datum ExecEvalAggref(AggrefExprState *aggref,
ExprContext *econtext,
bool *isNull, ExprDoneCond *isDone);
+ static Datum ExecEvalWindowFunc(WindowFuncExprState *wfunc,
+ ExprContext *econtext,
+ bool *isNull, ExprDoneCond *isDone);
static Datum ExecEvalVar(ExprState *exprstate, ExprContext *econtext,
bool *isNull, ExprDoneCond *isDone);
static Datum ExecEvalScalarVar(ExprState *exprstate, ExprContext *econtext,
***************
*** 444,449 **** ExecEvalAggref(AggrefExprState *aggref, ExprContext *econtext,
--- 447,476 ----
}
/* ----------------------------------------------------------------
+ * ExecEvalWindowFunc
+ *
+ * Returns a Datum whose value is the value of the precomputed
+ * window function found in the given expression context.
+ *
+ * Note: WindowFunc uses ecxt_aggvalues for stored result
+ * because Window node never contains Aggref node.
+ * ----------------------------------------------------------------
+ */
+ static Datum
+ ExecEvalWindowFunc(WindowFuncExprState *wfunc, ExprContext *econtext,
+ bool *isNull, ExprDoneCond *isDone)
+ {
+ if (isDone)
+ *isDone = ExprSingleResult;
+
+ if (econtext->ecxt_aggvalues == NULL) /* safety check */
+ elog(ERROR, "no aggregates in this expression context");
+
+ *isNull = econtext->ecxt_aggnulls[wfunc->funcno];
+ return econtext->ecxt_aggvalues[wfunc->funcno];
+ }
+
+ /* ----------------------------------------------------------------
* ExecEvalVar
*
* Returns a Datum whose value is the value of a range
***************
*** 4150,4155 **** ExecInitExpr(Expr *node, PlanState *parent)
--- 4177,4224 ----
state = (ExprState *) astate;
}
break;
+ case T_WindowFunc:
+ {
+ WindowFunc *wfunc = (WindowFunc *) node;
+ WindowFuncExprState *wfstate = makeNode(WindowFuncExprState);
+
+ wfstate->xprstate.evalfunc = (ExprStateEvalFunc) ExecEvalWindowFunc;
+ if (parent && IsA(parent, WindowState))
+ {
+ WindowState *winstate = (WindowState *) parent;
+ int nfuncs = winstate->numfuncs,
+ naggs = winstate->numaggs;
+
+ winstate->funcs = lcons(wfstate, winstate->funcs);
+ nfuncs = ++winstate->numfuncs;
+ if(wfunc->winagg)
+ naggs = ++winstate->numaggs;
+
+ wfstate->args = (List *) ExecInitExpr((Expr *) wfunc->args,
+ parent);
+ /*
+ * Complain if the wfunc's arguments contain any
+ * wfuncs; nested agg functions are semantically
+ * nonsensical. (This should have been caught earlier,
+ * but we defend against it here anyway.)
+ */
+ if (nfuncs != winstate->numfuncs)
+ ereport(ERROR,
+ (errcode(ERRCODE_WINDOWING_ERROR),
+ errmsg("window function calls cannot be nested")));
+ if (naggs != winstate->numaggs)
+ ereport(ERROR,
+ (errcode(ERRCODE_WINDOWING_ERROR),
+ errmsg("window function calls cannot be nested")));
+ }
+ else
+ {
+ /* planner messed up */
+ elog(ERROR, "wfunc found in non-Window plan node");
+ }
+ state = (ExprState *) wfstate;
+ }
+ break;
case T_ArrayRef:
{
ArrayRef *aref = (ArrayRef *) node;
*** /dev/null
--- b/src/backend/executor/nodeWindow.c
***************
*** 0 ****
--- 1,1666 ----
+ /*-------------------------------------------------------------------------
+ *
+ * nodeWindow.c
+ * routines to handle Window nodes.
+ *
+ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1994, Regents of the University of California
+ *
+ *
+ * All window functions operate on a partition of tuples. The current partition
+ * is stored in a tuplestore.
+ *
+ * Window node evaluates only target entries that contain WindowFunc expression.
+ * Any other entries including WindowFunc's arguments are retrieved from the outer
+ * node as Var or Const node. This is based on the fact that Window nodes may
+ * be stacked more than one.
+ *
+ * A window function is a function that has capability to use the window function
+ * API. This allows access arbitrary random rows within the window. These
+ * functions are identified by the proiswfunc column in pg_proc.
+ *
+ * XXX: The stuff in this paragraph about shrinking and extending isn't
+ * relevant right now, but might be in the future.
+ * Window node can aggregate function as well, treating it as special case.
+ * The aggregated result is cached in a WindowStatePerAgg struct and is
+ * recycled if the frame wasn't either shrinked nor extended. If not shrinked
+ * but extended, the unprocessed rows are passed to trans function and the result
+ * would be finalized again. If not shrinked and not extended, the result is
+ * reused without additional trans/final function calls. If shrinked, the cached
+ * result values cannot be used so the node initializes state and
+ * aggregate values from the head of the frame again. This is not efficient
+ * so the aggregate function can be a window function, which can subtract
+ * values from the shrinking rows for the next execution, in order to avoid
+ * whole the aggregate process is processed again. fcinfo->context will be
+ * a WindowState instead of AggState if the aggregate function is called as
+ * a window function.
+ *
+ * Window node assumes that its input is sorted appropriately.
+ *
+ * IDENTIFICATION
+ * $PostgreSQL$
+ *
+ *-------------------------------------------------------------------------
+ */
+
+ #include "postgres.h"
+
+ #include "catalog/pg_aggregate.h"
+ #include "catalog/pg_proc.h"
+ #include "catalog/pg_type.h"
+ #include "executor/executor.h"
+ #include "executor/nodeWindow.h"
+ #include "miscadmin.h"
+ #include "nodes/nodeFuncs.h"
+ #include "optimizer/clauses.h"
+ #include "parser/parse_agg.h"
+ #include "parser/parse_coerce.h"
+ #include "parser/parse_expr.h"
+ #include "parser/parse_oper.h"
+ #include "utils/acl.h"
+ #include "utils/builtins.h"
+ #include "utils/lsyscache.h"
+ #include "utils/memutils.h"
+ #include "utils/syscache.h"
+ #include "utils/tuplestore.h"
+ #include "utils/datum.h"
+
+ typedef struct WindowStatePerAggData
+ {
+ /* number of input arguments for aggregate */
+ int numArguments;
+
+ /* Oids of transfer functions */
+ Oid transfn_oid;
+ Oid finalfn_oid; /* may be InvalidOid */
+
+ /*
+ * fmgr lookup data for transfer functions --- only valid when
+ * corresponding oid is not InvalidOid. Note in particular that fn_strict
+ * flags are kept here.
+ */
+ FmgrInfo transfn;
+ FmgrInfo finalfn;
+
+ /*
+ * initial value from pg_aggregate entry
+ */
+ Datum initValue;
+ bool initValueIsNull;
+
+ /*
+ * cached value for non-moving frame
+ */
+ Datum resultValue;
+ bool resultValueIsNull;
+ bool hasResult;
+
+ /*
+ * We need the len and byval info for the agg's input, result, and
+ * transition data types in order to know how to copy/delete values.
+ */
+ int16 inputtypeLen,
+ resulttypeLen,
+ transtypeLen;
+ bool inputtypeByVal,
+ resulttypeByVal,
+ transtypeByVal;
+
+ /* point to perfuncstate */
+ int funcno;
+
+ /* Current transaition value */
+ Datum transValue; /* current transition value */
+ bool transValueIsNull;
+
+ bool noTransValue; /* true if transValue not set yet */
+ } WindowStatePerAggData;
+
+ /*
+ * We have one WindowStatePerFunc struct for every window function and
+ * window aggregate handled by this node.
+ */
+ typedef struct WindowStatePerFuncData
+ {
+ /* Links to WindowFunc expr and state nodes this working state is for */
+ WindowFuncExprState *wfuncstate;
+ WindowFunc *wfunc;
+
+ /* number of input arguments for aggregate */
+ int numArguments;
+
+ /*
+ * fmgr lookup data for transfer functions --- only valid when
+ * corresponding oid is not InvalidOid. Note in particular that fn_strict
+ * flags are kept here.
+ */
+ FmgrInfo flinfo;
+
+ /*
+ * We need the len and byval info for the result of each function
+ * in order to know how to copy/delete values.
+ */
+ int16 resulttypeLen;
+ bool resulttypeByVal;
+
+ /* not window supported (normal aggregate) function? */
+ bool pure_agg;
+ int aggno;
+
+ struct WindowObjectData *winobj; /* window object used in window API */
+ } WindowStatePerFuncData;
+
+ /*
+ * All the window function APIs are called with this object.
+ */
+ typedef struct WindowObjectData
+ {
+ WindowState *winstate; /* parent WindowState */
+
+ /* ExprState nodes for evaluating arguments */
+ List *argstates;
+
+ /* read pointer */
+ int readptr;
+ int64 seekpos; /* row that readptr is positioned on */
+ } WindowObjectData;
+
+ static void initialize_windowaggregate(WindowState *winstate,
+ WindowStatePerFunc perfuncstate, WindowStatePerAgg peraggstate);
+ static void advance_windowaggregate(WindowState *winstate,
+ WindowStatePerFunc perfuncstate,
+ WindowStatePerAgg peraggstate);
+ static void finalize_windowaggregate(WindowState *winstate,
+ WindowStatePerFunc perfuncstate, WindowStatePerAgg peraggstate,
+ Datum *result, bool *isnull);
+
+ static void eval_windowaggregates(WindowState *winstate);
+ static void eval_windowfunction(WindowState *winstate, WindowObject winobj,
+ WindowStatePerFunc perfuncstate, Datum *result, bool *isnull);
+
+ static void begin_partition(WindowState *winstate);
+ static void spool_tuples(WindowState *winstate, int64 pos);
+ static void release_partition(WindowState *winstate);
+
+ static WindowStatePerAggData *initialize_peragg(WindowState *winstate,
+ WindowFunc *wfunc,
+ WindowStatePerAgg peraggstate);
+ static Datum GetAggInitVal(Datum textInitVal, Oid transtype);
+
+ static bool is_peer(WindowState *winstate, TupleTableSlot *slot1,
+ TupleTableSlot *slot2);
+ static bool window_gettupleslot(WindowObject winobj, int64 pos,
+ TupleTableSlot *slot);
+
+
+ /*
+ * initialize_windowaggregate
+ * parallel to initialize_aggregate in nodeAgg.c
+ */
+ static void
+ initialize_windowaggregate(WindowState *winstate,
+ WindowStatePerFunc perfuncstate,
+ WindowStatePerAgg peraggstate)
+ {
+ MemoryContext oldContext;
+
+ if (peraggstate->initValueIsNull)
+ peraggstate->transValue = peraggstate->initValue;
+ else
+ {
+ oldContext = MemoryContextSwitchTo(winstate->wincontext);
+ peraggstate->transValue = datumCopy(peraggstate->initValue,
+ peraggstate->transtypeByVal,
+ peraggstate->transtypeLen);
+ MemoryContextSwitchTo(oldContext);
+ }
+ peraggstate->transValueIsNull = peraggstate->initValueIsNull;
+ peraggstate->noTransValue = peraggstate->initValueIsNull;
+ }
+
+ /*
+ * advance_windowaggregate
+ * parallel to advance_aggregate in nodeAgg.c
+ *
+ * Contrast to nodeAgg.c, arguments of the function are not preloaded
+ * by caller, but advance_windowaggregate evaluates them.
+ */
+ static void
+ advance_windowaggregate(WindowState *winstate,
+ WindowStatePerFunc perfuncstate,
+ WindowStatePerAgg peraggstate)
+ {
+ WindowFuncExprState *wfuncstate = perfuncstate->wfuncstate;
+ int numArguments = perfuncstate->numArguments;
+ FunctionCallInfoData fcinfodata;
+ FunctionCallInfo fcinfo = &fcinfodata;
+ Datum newVal;
+ ListCell *arg;
+ int i;
+ MemoryContext oldContext;
+ ExprContext *econtext = winstate->tmpcontext;
+
+ oldContext = MemoryContextSwitchTo(econtext->ecxt_per_tuple_memory);
+
+ /* We start from 1, since the 0th arg will be the transition value */
+ i = 1;
+ foreach(arg, wfuncstate->args)
+ {
+ ExprState *argstate = (ExprState *) lfirst(arg);
+
+ /*
+ * we assume the argument expressions are always static nodes.
+ */
+ Assert(IsA(argstate->expr, Var) || IsA(argstate->expr, Const));
+
+ fcinfo->arg[i] = ExecEvalExpr(argstate, econtext,
+ &fcinfo->argnull[i], NULL);
+ i++;
+ }
+
+ if (peraggstate->transfn.fn_strict)
+ {
+ /*
+ * For a strict transfn, nothing happens when there's a NULL input; we
+ * just keep the prior transValue.
+ */
+ for(i = 1; i <= numArguments; i++)
+ {
+ if (fcinfo->argnull[i])
+ {
+ MemoryContextSwitchTo(oldContext);
+ return;
+ }
+ }
+ if (peraggstate->noTransValue)
+ {
+ /*
+ * 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 here is OK.)
+ *
+ * We must copy the datum into aggcontext if it is pass-by-ref. We
+ * do not need to pfree the old transValue, since it's NULL.
+ */
+ MemoryContextSwitchTo(winstate->wincontext);
+ peraggstate->transValue = datumCopy(fcinfo->arg[1],
+ peraggstate->transtypeByVal,
+ peraggstate->transtypeLen);
+ peraggstate->transValueIsNull = false;
+ peraggstate->noTransValue = false;
+ MemoryContextSwitchTo(oldContext);
+ return;
+ }
+ if (peraggstate->transValueIsNull)
+ {
+ /*
+ * Don't call a strict function with NULL inputs. Note it is
+ * possible to get here despite the above tests, if the transfn is
+ * strict *and* returned a NULL on a prior cycle. If that happens
+ * we will propagate the NULL all the way to the end.
+ */
+ MemoryContextSwitchTo(oldContext);
+ return;
+ }
+ }
+
+ /*
+ * OK to call the transition function
+ */
+ InitFunctionCallInfoData(*fcinfo, &(peraggstate->transfn),
+ numArguments + 1,
+ (void *) winstate, NULL);
+ fcinfo->arg[0] = peraggstate->transValue;
+ fcinfo->argnull[0] = peraggstate->transValueIsNull;
+ newVal = FunctionCallInvoke(fcinfo);
+
+ /*
+ * If pass-by-ref datatype, must copy the new value into aggcontext and
+ * pfree the prior transValue. But if transfn returned a pointer to its
+ * first input, we don't need to do anything.
+ */
+ if (!peraggstate->transtypeByVal &&
+ DatumGetPointer(newVal) != DatumGetPointer(peraggstate->transValue))
+ {
+ if (!fcinfo->isnull)
+ {
+ MemoryContextSwitchTo(winstate->wincontext);
+ newVal = datumCopy(newVal,
+ peraggstate->transtypeByVal,
+ peraggstate->transtypeLen);
+ }
+ if (!peraggstate->transValueIsNull)
+ pfree(DatumGetPointer(peraggstate->transValue));
+ }
+
+ MemoryContextSwitchTo(oldContext);
+ peraggstate->transValue = newVal;
+ peraggstate->transValueIsNull = fcinfo->isnull;
+ }
+
+ /*
+ * finalize_windowaggregate
+ * parallel to finalize_aggregate in nodeAgg.c
+ */
+ static void
+ finalize_windowaggregate(WindowState *winstate,
+ WindowStatePerFunc perfuncstate,
+ WindowStatePerAgg peraggstate,
+ Datum *result, bool *isnull)
+ {
+ MemoryContext oldContext;
+
+ oldContext = MemoryContextSwitchTo(winstate->ss.ps.ps_ExprContext->ecxt_per_tuple_memory);
+
+ /*
+ * Apply the agg's finalfn if one is provided, else return transValue.
+ */
+ if (OidIsValid(peraggstate->finalfn_oid))
+ {
+ FunctionCallInfoData fcinfo;
+
+ InitFunctionCallInfoData(fcinfo, &(peraggstate->finalfn), 1,
+ (void *) winstate, NULL);
+ fcinfo.arg[0] = peraggstate->transValue;
+ fcinfo.argnull[0] = peraggstate->transValueIsNull;
+ if (fcinfo.flinfo->fn_strict && peraggstate->transValueIsNull)
+ {
+ /* don't call a strict function with NULL inputs */
+ *result = (Datum) 0;
+ *isnull = true;
+ }
+ else
+ {
+ *result = FunctionCallInvoke(&fcinfo);
+ *isnull = fcinfo.isnull;
+ }
+ }
+ else
+ {
+ *result = peraggstate->transValue;
+ *isnull = peraggstate->transValueIsNull;
+ }
+
+ /*
+ * If result is pass-by-ref, make sure it is in the right context.
+ */
+ if (!peraggstate->resulttypeByVal && !*isnull &&
+ !MemoryContextContains(CurrentMemoryContext,
+ DatumGetPointer(*result)))
+ *result = datumCopy(*result,
+ peraggstate->resulttypeByVal,
+ peraggstate->resulttypeLen);
+ MemoryContextSwitchTo(oldContext);
+ }
+
+ /*
+ * eval_windowaggregates
+ * evaluate normal aggregates (proiswfunc is false but proisagg is true).
+ *
+ * Many flows and ideas are ported from nodeAgg.c.
+ *
+ * NB: Unlike in nodeAgg.c, the aggragate finalize function is called many
+ * times.
+ */
+ static void
+ eval_windowaggregates(WindowState *winstate)
+ {
+ WindowStatePerAgg peraggstate;
+ int funcno, numaggs;
+ int i;
+ MemoryContext oldContext;
+ ExprContext *econtext;
+ Datum *result;
+ bool *isnull;
+ TupleTableSlot *first_peer_slot = winstate->first_peer_slot;
+ bool first;
+
+ numaggs = winstate->numaggs;
+
+ if(numaggs == 0)
+ return; /* nothing to do. */
+
+ /* final output execution is on ps_ExprContext */
+ econtext = winstate->ss.ps.ps_ExprContext;
+
+ /*
+ * We don't currently support explicitly specified window frames.
+ * That means that the window frame always includes all the rows
+ * in the partition preceding and including the current row, and
+ * all its peers. As a special case, if there's no ORDER BY, all
+ * rows are peers, so the window frame includes all rows in the
+ * partition.
+ *
+ * 'aggregatedupto' keeps track of the last row that has already
+ * been accumulated in the aggregate. If there's no peer rows,
+ * it will always be the same as the current row after this
+ * function. If there is peer rows, all peers will be accumulated
+ * in one call of this function, and aggregatedupto will be ahead
+ * of the current position. If there's no ORDER BY, and thus all
+ * rows are peer, the first call will aggregate all rows in the
+ * partition.
+ *
+ * When there's peer rows, all the peers will have the same value.
+ * The value will be calculated when current position reaches the
+ * first peer row, and on all the following peer rows we will just
+ * return the saved result.
+ *
+ * TODO: In the future, we could implement sliding frames by
+ * recalculating the aggregate whenever a row exits the frame. That
+ * would be pretty slow, though, so for aggregates like SUM and,
+ * COUNT we could implement a "negative transition function", that
+ * would be called for all the rows that exit the frame.
+ */
+
+ /*
+ * If we've already aggregated up to current row, reuse the
+ * saved result value
+ */
+ if (winstate->aggregatedupto > winstate->currentpos)
+ {
+ for(i = 0; i < numaggs; i++)
+ {
+ peraggstate = &winstate->peragg[i];
+
+ funcno = peraggstate->funcno;
+ result = &econtext->ecxt_aggvalues[funcno];
+ isnull = &econtext->ecxt_aggnulls[funcno];
+
+ *result = peraggstate->resultValue;
+ *isnull = peraggstate->resultValueIsNull;
+ }
+ return;
+ }
+
+ /* Initialize aggregates on first call */
+ for (i = 0; i < numaggs; i++)
+ {
+ peraggstate = &winstate->peragg[i];
+
+ funcno = peraggstate->funcno;
+ result = &econtext->ecxt_aggvalues[funcno];
+ isnull = &econtext->ecxt_aggnulls[funcno];
+
+ if (!peraggstate->hasResult)
+ initialize_windowaggregate(winstate,
+ &winstate->perfunc[funcno],
+ &winstate->peragg[i]);
+ }
+
+ /*
+ * If this is the first call for this partition, fetch the first row
+ * for comparing peer rows. On subsequent calls, we'll always read
+ * ahead until we reach the first non-peer row, and store that row in
+ * first_peer_slot, for use in the next call.
+ */
+ if (TupIsNull(first_peer_slot))
+ {
+ spool_tuples(winstate, winstate->aggregatedupto);
+ tuplestore_select_read_pointer(winstate->buffer, winstate->agg_ptr);
+ if (!tuplestore_gettupleslot(winstate->buffer, true, first_peer_slot))
+ elog(ERROR, "unexpected end of tuplestore");
+ }
+
+ /*
+ * Advance until we reach the next non-peer row
+ */
+ first = true;
+ for(;;)
+ {
+ if (!first)
+ {
+ /* Fetch the next row, and see if it's peer */
+ spool_tuples(winstate, winstate->aggregatedupto);
+ tuplestore_select_read_pointer(winstate->buffer, winstate->agg_ptr);
+ if (!tuplestore_gettupleslot(winstate->buffer, true,
+ econtext->ecxt_outertuple))
+ break;
+
+ if (!is_peer(winstate, first_peer_slot, econtext->ecxt_outertuple))
+ {
+ ExecCopySlot(first_peer_slot, econtext->ecxt_outertuple);
+ break;
+ }
+
+ winstate->tmpcontext->ecxt_outertuple = econtext->ecxt_outertuple;
+ }
+ else
+ {
+ /*
+ * On first iteration, just accumulate the tuple saved from
+ * last call
+ */
+ winstate->tmpcontext->ecxt_outertuple = first_peer_slot;
+ first = false;
+ }
+
+ for(i = 0; i < numaggs; i++)
+ {
+ funcno = winstate->peragg[i].funcno;
+
+ advance_windowaggregate(winstate,
+ &winstate->perfunc[funcno],
+ &winstate->peragg[i]);
+
+ }
+ /* Reset per-input-tuple context after each tuple */
+ ResetExprContext(winstate->tmpcontext);
+ winstate->aggregatedupto++;
+ }
+
+ /*
+ * finalize aggregates and fill result/isnull fields.
+ */
+ for(i = 0; i < numaggs; i++)
+ {
+ peraggstate = &winstate->peragg[i];
+
+ funcno = peraggstate->funcno;
+ result = &econtext->ecxt_aggvalues[funcno];
+ isnull = &econtext->ecxt_aggnulls[funcno];
+ finalize_windowaggregate(winstate,
+ &winstate->perfunc[funcno],
+ peraggstate, result, isnull);
+
+ /*
+ * save the result for the next (non-shrinking frame) call.
+ */
+ if (!peraggstate->resulttypeByVal && !*isnull)
+ {
+ /*
+ * clear old resultValue in order not to leak memory.
+ */
+ if (peraggstate->hasResult &&
+ (DatumGetPointer(peraggstate->resultValue) !=
+ DatumGetPointer(*result)) &&
+ !peraggstate->resultValueIsNull)
+ pfree(DatumGetPointer(peraggstate->resultValue));
+
+ /*
+ * If pass-by-ref, copy it into our global context.
+ */
+ oldContext = MemoryContextSwitchTo(winstate->wincontext);
+ peraggstate->resultValue = datumCopy(*result,
+ peraggstate->resulttypeByVal,
+ peraggstate->resulttypeLen);
+ MemoryContextSwitchTo(oldContext);
+ }
+ else
+ {
+ peraggstate->resultValue = *result;
+ }
+ peraggstate->resultValueIsNull = *isnull;
+ peraggstate->hasResult = true;
+ }
+ }
+
+ /*
+ * eval_windowfunction
+ *
+ * Arguments of window functions are not evaluated here, because
+ * a window function can need random access to arbitrary rows in the
+ * partition. The window function uses the special WinPartGetArg and
+ * WinFrameGetArg functions to evaluate the arguments for the rows it wants.
+ */
+ static void
+ eval_windowfunction(WindowState *winstate, WindowObject winobj,
+ WindowStatePerFunc perfuncstate,
+ Datum *result, bool *isnull)
+ {
+ WindowFuncExprState *wfuncstate = perfuncstate->wfuncstate;
+ FunctionCallInfoData fcinfo;
+ MemoryContext oldContext;
+
+ oldContext = MemoryContextSwitchTo(winstate->ss.ps.ps_ExprContext->ecxt_per_tuple_memory);
+ InitFunctionCallInfoData(fcinfo, &(perfuncstate->flinfo),
+ perfuncstate->numArguments,
+ (void *) perfuncstate->winobj, NULL);
+
+ /* Arguments are passed differently to window functions */
+ winobj->argstates = wfuncstate->args;
+
+ *result = FunctionCallInvoke(&fcinfo);
+ *isnull = fcinfo.isnull;
+
+ /*
+ * make sure the pass-by-ref datum is allocated in the appropriate context.
+ */
+ if (!perfuncstate->resulttypeByVal && !fcinfo.isnull &&
+ !MemoryContextContains(CurrentMemoryContext,
+ DatumGetPointer(*result)))
+ *result = datumCopy(*result,
+ perfuncstate->resulttypeByVal,
+ perfuncstate->resulttypeLen);
+
+ MemoryContextSwitchTo(oldContext);
+ }
+
+ /*
+ * begin_partition
+ * Start buffering rows of the next partition.
+ */
+ static void
+ begin_partition(WindowState *winstate)
+ {
+ PlanState *outerPlan;
+ ExprContext *econtext;
+ int numfuncs = winstate->numfuncs;
+ int i;
+
+ outerPlan = outerPlanState(winstate);
+ econtext = winstate->ss.ps.ps_ExprContext;
+
+ winstate->partition_spooled = false;
+ winstate->currentpos = -1;
+ winstate->frametailpos = -1;
+
+ /*
+ * see if the partition is the first one?
+ */
+ if (TupIsNull(winstate->first_part_slot))
+ {
+ TupleTableSlot *outerslot = ExecProcNode(outerPlan);
+ if (!TupIsNull(outerslot))
+ ExecCopySlot(winstate->first_part_slot, outerslot);
+ else
+ {
+ /* nothing will be returned */
+ winstate->partition_spooled = true;
+ winstate->more_partitions = false;
+ return;
+ }
+ }
+
+ /*
+ * The tail, current, and agg pointers don't need randomAccess, but the
+ * per-window function read pointers do.
+ */
+ winstate->buffer = tuplestore_begin_heap(false, false, work_mem);
+ winstate->current_ptr = 0;
+
+ /* reset REWIND */
+ tuplestore_set_eflags(winstate->buffer, 0);
+
+ if (winstate->numaggs > 0)
+ winstate->agg_ptr = tuplestore_alloc_read_pointer(winstate->buffer, 0);
+
+ for(i = 0; i < numfuncs; i++)
+ {
+ if (!winstate->perfunc[i].pure_agg)
+ {
+ WindowStatePerFunc perfuncstate = &(winstate->perfunc[i]);
+ WindowObject winobj = perfuncstate->winobj;
+
+ MemSet(winobj, 0, sizeof(WindowObjectData));
+ winobj->winstate = winstate;
+ winobj->seekpos = -1;
+ winobj->readptr = tuplestore_alloc_read_pointer(winstate->buffer,
+ EXEC_FLAG_BACKWARD);
+ }
+ }
+
+ winstate->spooled_rows = 0;
+
+ /*
+ * Store the first tuple into the tuplestore, saved at the end of
+ * previous partition
+ */
+ tuplestore_puttupleslot(winstate->buffer, winstate->first_part_slot);
+ winstate->spooled_rows++;
+ }
+
+ /*
+ * Read tuples from the outer node, up to position 'pos', and store them
+ * into the tuplestore. If pos is -1, reads the whole partition.
+ */
+ static void
+ spool_tuples(WindowState *winstate, int64 pos)
+ {
+ PlanState *outerPlan;
+ TupleTableSlot *outerslot;
+ Window *node = (Window *) winstate->ss.ps.plan;
+ ExprContext *econtext;
+ MemoryContext oldcontext;
+
+ outerPlan = outerPlanState(winstate);
+ econtext = winstate->ss.ps.ps_ExprContext;
+
+ if (!winstate->buffer)
+ return;
+
+ /*
+ * If tuplestore is spilled out to file, random writing kills
+ * its performance since switching between read and write causes
+ * BufFile dirty flush frequently. So the alternative is to
+ * spool all the rows of the partition at once.
+ */
+ if (!tuplestore_in_memory(winstate->buffer))
+ pos = -1;
+
+ while ((winstate->spooled_rows <= pos || pos == -1) &&
+ !winstate->partition_spooled)
+ {
+ outerslot = ExecProcNode(outerPlan);
+ if (TupIsNull(outerslot))
+ {
+ /* hit the bottom of the last partition. */
+ winstate->partition_spooled = true;
+ winstate->more_partitions = false;
+ break;
+ }
+
+ if (node->prtNumCols > 0)
+ {
+ /* Check if this tuple still belongs to the current partition */
+ if (!execTuplesMatch(winstate->first_part_slot,
+ outerslot,
+ node->prtNumCols, node->prtColIdx,
+ winstate->prtEqfunctions,
+ winstate->tmpcontext->ecxt_per_tuple_memory))
+ {
+ /*
+ * at the end of each partition
+ * copy the tuple for the next partition cycle.
+ */
+ ExecCopySlot(winstate->first_part_slot, outerslot);
+ winstate->partition_spooled = true;
+ winstate->more_partitions = true;
+ break;
+ }
+ }
+
+ oldcontext = MemoryContextSwitchTo(winstate->ss.ps.ps_ExprContext->ecxt_per_query_memory);
+ tuplestore_puttupleslot(winstate->buffer, outerslot);
+ winstate->spooled_rows++;
+ MemoryContextSwitchTo(oldcontext);
+ }
+ }
+
+ /*
+ * release_partition
+ * clear information kept within a partition, including
+ * funcstate/fn_extra, tuplestore and aggregate result.
+ */
+ static void
+ release_partition(WindowState *winstate)
+ {
+ int i;
+
+ for (i = 0; i < winstate->numfuncs; i++)
+ {
+ WindowStatePerFunc perfuncstate = &(winstate->perfunc[i]);
+
+ if (perfuncstate->flinfo.fn_extra != NULL)
+ {
+ pfree(perfuncstate->flinfo.fn_extra);
+ /*
+ * Be sure to set NULL, which is one of the signs
+ * that the partition is brand new.
+ */
+ perfuncstate->flinfo.fn_extra = NULL;
+ }
+
+ /*
+ * reset agg result cache
+ */
+ if (perfuncstate->pure_agg)
+ {
+ int aggno = perfuncstate->aggno;
+ WindowStatePerAggData *peraggstate = &winstate->peragg[aggno];
+
+ if (!peraggstate->resulttypeByVal &&
+ peraggstate->hasResult &&
+ !peraggstate->resultValueIsNull)
+ {
+ pfree(DatumGetPointer(peraggstate->resultValue));
+ peraggstate->resultValueIsNull = true;
+ }
+ peraggstate->hasResult = false;
+ }
+ }
+
+ winstate->aggregatedupto = 0;
+
+ ExecClearTuple(winstate->first_peer_slot);
+
+ if (winstate->buffer)
+ tuplestore_end(winstate->buffer);
+ winstate->buffer = NULL;
+ winstate->partition_spooled = false;
+ }
+
+
+ /* -----------------
+ * ExecWindow
+ *
+ * ExecWindow receives tuples from its outer subplan and
+ * creates or feeds the WindowObject then process window functions
+ * with the WindowObject. This node doesn't reduce nor qualify any row
+ * so the number of returned rows are exactly same as its outer
+ * subplan's result.
+ * XXX: A WindowObject is tied to each window function now.
+ * The WindowObject works as if some temporary table that stores row values
+ * and provides evaluation functionality, which needs an econtext so that
+ * window functions use it as the core executor does. Thus, we need
+ * two econtext for both of this purpose and the result tuple evaluation purpose.
+ *
+ * -----------------
+ */
+ TupleTableSlot *
+ ExecWindow(WindowState *winstate)
+ {
+ ExprContext *econtext;
+ ProjectionInfo *projInfo;
+ int i;
+ int numfuncs;
+
+ if (winstate->all_done)
+ return NULL;
+
+ if (winstate->buffer == NULL)
+ {
+ begin_partition(winstate);
+ winstate->currentpos = 0;
+ }
+ else
+ winstate->currentpos++;
+
+ /* Spool up to the current row */
+ spool_tuples(winstate, winstate->currentpos);
+
+ /* Move to the next partition if we reached the end of this partition */
+ if (winstate->partition_spooled &&
+ winstate->currentpos >= winstate->spooled_rows)
+ {
+ release_partition(winstate);
+
+ if (winstate->more_partitions)
+ {
+ begin_partition(winstate);
+ winstate->currentpos = 0;
+ }
+ else
+ {
+ winstate->all_done = true;
+ return NULL;
+ }
+ }
+
+ /* final output execution is on ps_ExprContext */
+ econtext = winstate->ss.ps.ps_ExprContext;
+ numfuncs = winstate->numfuncs;
+
+ /* Clear the per-output-tuple context for current row */
+ ResetExprContext(econtext);
+
+ econtext->ecxt_outertuple = winstate->ss.ss_ScanTupleSlot;
+
+ for(i = 0; i < numfuncs; i++)
+ {
+ WindowStatePerFunc perfuncstate;
+ Datum *result;
+ bool *isnull;
+
+ perfuncstate = &(winstate->perfunc[i]);
+
+ /*
+ * We're only interested in window functions here. Aggregates are
+ * processed in one go after this loop.
+ */
+ if (perfuncstate->pure_agg)
+ continue;
+
+ result = &(econtext->ecxt_aggvalues[perfuncstate->wfuncstate->funcno]);
+ isnull = &(econtext->ecxt_aggnulls[perfuncstate->wfuncstate->funcno]);
+ eval_windowfunction(winstate, perfuncstate->winobj, perfuncstate,
+ result, isnull);
+ }
+
+ /*
+ * process aggregates with trans and final functions, if any.
+ */
+ if (winstate->numaggs > 0)
+ eval_windowaggregates(winstate);
+
+ /*
+ * read the current row from the frame to econtext as an outer tuple.
+ * econtext->ecxt_outertuple is used in the projection (evaluation of the
+ * current row after window function executions).
+ */
+ projInfo = winstate->ss.ps.ps_ProjInfo;
+
+ econtext->ecxt_outertuple = winstate->ss.ss_ScanTupleSlot;
+
+ /* current row must be in the tuplestore, since we spooled above. */
+ tuplestore_select_read_pointer(winstate->buffer, winstate->current_ptr);
+ if (tuplestore_gettupleslot(winstate->buffer, true,
+ econtext->ecxt_outertuple))
+ {
+ return ExecProject(projInfo, NULL);
+ }
+ else
+ return NULL;
+ }
+
+ /* -----------------
+ * ExecInitWindow
+ *
+ * Creates the run-time information for the Window node produced by the
+ * planner and initializes its outer subtree
+ * -----------------
+ */
+ WindowState *
+ ExecInitWindow(Window *node, EState *estate, int eflags)
+ {
+ WindowState *winstate;
+ Plan *outerPlan;
+ ExprContext *econtext;
+ ExprContext *tmpcontext;
+ WindowStatePerFunc perfunc;
+ WindowStatePerAgg peragg;
+ int numfuncs = 0, funcno,
+ numaggs = 0, aggno;
+ ListCell *l;
+
+ /* check for unsupported flags */
+ Assert(!(eflags & (EXEC_FLAG_BACKWARD | EXEC_FLAG_MARK)));
+
+ winstate = makeNode(WindowState);
+ winstate->ss.ps.plan = (Plan *) node;
+ winstate->ss.ps.state = estate;
+ winstate->eflags = (EXEC_FLAG_REWIND | EXEC_FLAG_BACKWARD | EXEC_FLAG_MARK);
+
+ /*
+ * Create expression contexts. We need two, one for per-input-tuple
+ * processing and one for per-output-tuple processing. We cheat a little
+ * by using ExecAssignExprContext() to build both.
+ */
+ ExecAssignExprContext(estate, &winstate->ss.ps);
+ tmpcontext = winstate->ss.ps.ps_ExprContext;
+ winstate->tmpcontext = tmpcontext;
+ ExecAssignExprContext(estate, &winstate->ss.ps);
+
+ winstate->wincontext =
+ AllocSetContextCreate(CurrentMemoryContext,
+ "WinContext",
+ ALLOCSET_DEFAULT_MINSIZE,
+ ALLOCSET_DEFAULT_INITSIZE,
+ ALLOCSET_DEFAULT_MAXSIZE);
+
+ #define WINDOW_NSLOTS 7
+
+ /*
+ * tuple table initialization
+ */
+ ExecInitScanTupleSlot(estate, &winstate->ss);
+ ExecInitResultTupleSlot(estate, &winstate->ss.ps);
+ winstate->first_part_slot = ExecInitExtraTupleSlot(estate);
+
+ winstate->first_peer_slot = ExecInitExtraTupleSlot(estate);
+
+ winstate->is_peer_slot1 = ExecInitExtraTupleSlot(estate);
+ winstate->is_peer_slot2 = ExecInitExtraTupleSlot(estate);
+
+ /*
+ * This slot is used as the frame current row, and
+ * some temporary row in window functions.
+ */
+ tmpcontext->ecxt_outertuple = ExecInitExtraTupleSlot(estate);
+
+ winstate->ss.ps.targetlist = (List *)
+ ExecInitExpr((Expr *) node->plan.targetlist,
+ (PlanState *) winstate);
+ winstate->ss.ps.qual = NIL;
+
+ /*
+ * initialize child nodes
+ *
+ * We shield the child node from the need to support REWIND, BACKWARD, or
+ * MARK/RESTORE.
+ */
+ eflags &= ~(EXEC_FLAG_REWIND | EXEC_FLAG_BACKWARD | EXEC_FLAG_MARK);
+ outerPlan = outerPlan(node);
+ outerPlanState(winstate) = ExecInitNode(outerPlan, estate, eflags);
+
+ /*
+ * initialize result tuple type and projection info.
+ */
+ ExecAssignScanTypeFromOuterPlan(&winstate->ss);
+
+ /*
+ * initialize result tuple type and projection info.
+ */
+ ExecAssignResultTypeFromTL(&winstate->ss.ps);
+ ExecAssignProjectionInfo(&winstate->ss.ps, NULL);
+ ExecSetSlotDescriptor(tmpcontext->ecxt_outertuple,
+ winstate->ss.ss_ScanTupleSlot->tts_tupleDescriptor);
+ ExecStoreAllNullTuple(tmpcontext->ecxt_outertuple);
+
+ ExecSetSlotDescriptor(winstate->first_part_slot,
+ winstate->ss.ss_ScanTupleSlot->tts_tupleDescriptor);
+
+ ExecSetSlotDescriptor(winstate->first_peer_slot,
+ winstate->ss.ss_ScanTupleSlot->tts_tupleDescriptor);
+
+ ExecSetSlotDescriptor(winstate->is_peer_slot1,
+ winstate->ss.ss_ScanTupleSlot->tts_tupleDescriptor);
+ ExecSetSlotDescriptor(winstate->is_peer_slot2,
+ winstate->ss.ss_ScanTupleSlot->tts_tupleDescriptor);
+
+ numfuncs = winstate->numfuncs;
+ numaggs = winstate->numaggs;
+ if (node->prtNumCols > 0)
+ winstate->prtEqfunctions = execTuplesMatchPrepare(node->prtNumCols,
+ node->prtOperators);
+ if (node->ordNumCols > 0)
+ winstate->ordEqfunctions = execTuplesMatchPrepare(node->ordNumCols,
+ node->ordOperators);
+
+ /*
+ * Window functions use aggvalues and aggnulls as well as Agg node.
+ */
+ econtext = winstate->ss.ps.ps_ExprContext;
+ econtext->ecxt_aggvalues = (Datum *) palloc0(sizeof(Datum) * numfuncs);
+ econtext->ecxt_aggnulls = (bool *) palloc0(sizeof(bool) * numfuncs);
+
+ /*
+ * allocate per-wfunc/per-agg state information.
+ */
+ perfunc = (WindowStatePerFunc) palloc0(sizeof(WindowStatePerFuncData) * numfuncs);
+ peragg = (WindowStatePerAgg) palloc0(sizeof(WindowStatePerAggData) * numaggs);
+ winstate->perfunc = perfunc;
+ winstate->peragg = peragg;
+
+ winstate->partition_spooled = false;
+ winstate->more_partitions = false;
+
+ funcno = -1;
+ aggno = -1;
+ foreach(l, winstate->funcs)
+ {
+ WindowFuncExprState *wfuncstate = (WindowFuncExprState *) lfirst(l);
+ WindowFunc *wfunc = (WindowFunc *) wfuncstate->xprstate.expr;
+ WindowStatePerFunc perfuncstate;
+ int numArguments;
+ int i;
+
+ Assert(wfunc->winlevelsup == 0);
+
+ /* Look for a previous duplicate window function */
+ for (i = 0; i <= funcno; i++)
+ {
+ if (equal(wfunc, perfunc[i].wfunc) &&
+ !contain_volatile_functions((Node *) wfunc))
+ break;
+ }
+ if (i <= funcno)
+ {
+ /* Found a match to an existing entry, so just mark it */
+ wfuncstate->funcno = i;
+ continue;
+ }
+
+ /* Nope, so assign a new PerAgg record */
+ perfuncstate = &perfunc[++funcno];
+
+ /* Mark WindowFunc state node with assigned index in the result array */
+ wfuncstate->funcno = funcno;
+
+ /* Fill in the perfuncstate data */
+ perfuncstate->wfuncstate = wfuncstate;
+ perfuncstate->wfunc = wfunc;
+ numArguments = list_length(wfunc->args);
+ perfuncstate->numArguments = numArguments;
+
+ fmgr_info_cxt(wfunc->winfnoid, &(perfuncstate->flinfo),
+ tmpcontext->ecxt_per_query_memory);
+ get_typlenbyval(wfunc->wintype,
+ &perfuncstate->resulttypeLen,
+ &perfuncstate->resulttypeByVal);
+
+ /*
+ * if the function doesn't have capability of window function
+ * but of aggregate, we emulate Agg environment for it.
+ */
+ perfuncstate->pure_agg = wfunc->winagg;
+ if (wfunc->winagg)
+ {
+ WindowStatePerAgg peraggstate;
+
+ perfuncstate->aggno = ++aggno;
+ peraggstate = &winstate->peragg[aggno];
+ initialize_peragg(winstate, wfunc, peraggstate);
+ peraggstate->funcno = funcno;
+ }
+ else
+ {
+ WindowObject winobj = palloc(sizeof(WindowObjectData));
+ perfuncstate->winobj = winobj;
+ }
+ }
+
+ /* Update numfuncs to match number of unique function found */
+ winstate->numfuncs = funcno + 1;
+ winstate->numaggs = aggno + 1;
+
+ return winstate;
+ }
+
+ /* -----------------
+ * ExecCountSlotsWindow
+ * -----------------
+ */
+ int
+ ExecCountSlotsWindow(Window *node)
+ {
+ return ExecCountSlotsNode(outerPlan(node)) +
+ ExecCountSlotsNode(innerPlan(node)) +
+ WINDOW_NSLOTS;
+ }
+
+ /* -----------------
+ * ExecEndWindow
+ * -----------------
+ */
+ void
+ ExecEndWindow(WindowState *node)
+ {
+ PlanState *outerPlan;
+
+ if (node->buffer)
+ release_partition(node);
+
+ pfree(node->perfunc);
+ pfree(node->peragg);
+
+ /*
+ * clear tuple before freeing expr context because
+ * tmpcontext is invalid after freeing.
+ */
+ ExecClearTuple(node->ss.ss_ScanTupleSlot);
+ ExecClearTuple(node->tmpcontext->ecxt_outertuple);
+
+ /*
+ * Free both the expr contexts.
+ */
+ ExecFreeExprContext(&node->ss.ps);
+ node->ss.ps.ps_ExprContext = node->tmpcontext;
+ ExecFreeExprContext(&node->ss.ps);
+
+ MemoryContextDelete(node->wincontext);
+
+ outerPlan = outerPlanState(node);
+ ExecEndNode(outerPlan);
+ }
+
+ /* -----------------
+ * ExecRescanWindow
+ * -----------------
+ */
+ void
+ ExecReScanWindow(WindowState *node, ExprContext *exprCtxt)
+ {
+ ExprContext *econtext = node->ss.ps.ps_ExprContext;
+ int aggno;
+
+ if (node->buffer)
+ release_partition(node);
+
+ for(aggno = 0; aggno < node->numaggs; aggno++)
+ {
+ WindowStatePerAgg peraggstate = &node->peragg[aggno];
+
+ if (peraggstate->hasResult &&
+ !peraggstate->resulttypeByVal &&
+ !peraggstate->resultValueIsNull)
+ pfree(DatumGetPointer(peraggstate->resultValue));
+ peraggstate->hasResult = false;
+ }
+
+ MemSet(econtext->ecxt_aggvalues, 0, sizeof(Datum) * node->numfuncs);
+ MemSet(econtext->ecxt_aggnulls, 0, sizeof(bool) * node->numfuncs);
+ }
+
+ /*
+ * initialize_peragg
+ *
+ * Almost same as the nodeAgg.c. We don't care DISTINCT of the aggregate
+ * argument currenlty.
+ */
+ static WindowStatePerAggData *
+ initialize_peragg(WindowState *winstate, WindowFunc *wfunc, WindowStatePerAgg peraggstate)
+ {
+ Oid inputTypes[FUNC_MAX_ARGS];
+ int numArguments;
+ HeapTuple aggTuple;
+ Form_pg_aggregate aggform;
+ Oid aggtranstype;
+ AclResult aclresult;
+ Oid transfn_oid,
+ finalfn_oid;
+ Expr *transfnexpr,
+ *finalfnexpr;
+ Datum textInitVal;
+ int i;
+ ListCell *lc;
+
+ numArguments = list_length(wfunc->args);
+ peraggstate->numArguments = numArguments;
+
+ i = 0;
+ foreach(lc, wfunc->args)
+ {
+ inputTypes[i++] = exprType((Node *) lfirst(lc));
+ }
+
+ aggTuple = SearchSysCache(AGGFNOID,
+ ObjectIdGetDatum(wfunc->winfnoid),
+ 0, 0, 0);
+ if (!HeapTupleIsValid(aggTuple))
+ elog(ERROR, "cache lookup failed for aggregate %u",
+ wfunc->winfnoid);
+ aggform = (Form_pg_aggregate) GETSTRUCT(aggTuple);
+
+ /* Check permission to call aggregate function */
+ aclresult = pg_proc_aclcheck(wfunc->winfnoid, GetUserId(),
+ ACL_EXECUTE);
+ if (aclresult != ACLCHECK_OK)
+ aclcheck_error(aclresult, ACL_KIND_PROC,
+ get_func_name(wfunc->winfnoid));
+
+ peraggstate->transfn_oid = transfn_oid = aggform->aggtransfn;
+ peraggstate->finalfn_oid = finalfn_oid = aggform->aggfinalfn;
+
+ /* Check that aggregate owner has permission to call component fns */
+ {
+ HeapTuple procTuple;
+ Oid aggOwner;
+
+ procTuple = SearchSysCache(PROCOID,
+ ObjectIdGetDatum(wfunc->winfnoid),
+ 0, 0, 0);
+ if (!HeapTupleIsValid(procTuple))
+ elog(ERROR, "cache lookup failed for function %u",
+ wfunc->winfnoid);
+ aggOwner = ((Form_pg_proc) GETSTRUCT(procTuple))->proowner;
+ ReleaseSysCache(procTuple);
+
+ aclresult = pg_proc_aclcheck(transfn_oid, aggOwner,
+ ACL_EXECUTE);
+ if (aclresult != ACLCHECK_OK)
+ aclcheck_error(aclresult, ACL_KIND_PROC,
+ get_func_name(transfn_oid));
+ if (OidIsValid(finalfn_oid))
+ {
+ aclresult = pg_proc_aclcheck(finalfn_oid, aggOwner,
+ ACL_EXECUTE);
+ if (aclresult != ACLCHECK_OK)
+ aclcheck_error(aclresult, ACL_KIND_PROC,
+ get_func_name(finalfn_oid));
+ }
+ }
+
+ /* resolve actual type of transition state, if polymorphic */
+ aggtranstype = aggform->aggtranstype;
+ if (IsPolymorphicType(aggtranstype))
+ {
+ /* have to fetch the agg's declared input types... */
+ Oid *declaredArgTypes;
+ int agg_nargs;
+
+ get_func_signature(wfunc->winfnoid,
+ &declaredArgTypes, &agg_nargs);
+ Assert(agg_nargs == numArguments);
+ aggtranstype = enforce_generic_type_consistency(inputTypes,
+ declaredArgTypes,
+ agg_nargs,
+ aggtranstype,
+ false);
+ pfree(declaredArgTypes);
+ }
+
+ /* build expression trees using actual argument & result types */
+ build_aggregate_fnexprs(inputTypes,
+ numArguments,
+ aggtranstype,
+ wfunc->wintype,
+ transfn_oid,
+ finalfn_oid,
+ &transfnexpr,
+ &finalfnexpr);
+
+ fmgr_info(transfn_oid, &peraggstate->transfn);
+ peraggstate->transfn.fn_expr = (Node *) transfnexpr;
+
+ if (OidIsValid(finalfn_oid))
+ {
+ fmgr_info(finalfn_oid, &peraggstate->finalfn);
+ peraggstate->finalfn.fn_expr = (Node *) finalfnexpr;
+ }
+
+ get_typlenbyval(wfunc->wintype,
+ &peraggstate->resulttypeLen,
+ &peraggstate->resulttypeByVal);
+ get_typlenbyval(aggtranstype,
+ &peraggstate->transtypeLen,
+ &peraggstate->transtypeByVal);
+
+ /*
+ * 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,
+ aggtranstype);
+
+ /*
+ * If the transfn is strict and the initval is NULL, make sure input
+ * type and transtype are the same (or at least binary-compatible), so
+ * that it's OK to use the first input value as the initial
+ * transValue. This should have been checked at agg definition time,
+ * but just in case...
+ */
+ if (peraggstate->transfn.fn_strict && peraggstate->initValueIsNull)
+ {
+ if (numArguments < 1 ||
+ !IsBinaryCoercible(inputTypes[0], aggtranstype))
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_FUNCTION_DEFINITION),
+ errmsg("aggregate %u needs to have compatible input type and transition type",
+ wfunc->winfnoid)));
+ }
+
+ ReleaseSysCache(aggTuple);
+
+ return peraggstate;
+ }
+
+ static Datum
+ GetAggInitVal(Datum textInitVal, Oid transtype)
+ {
+ Oid typinput,
+ typioparam;
+ char *strInitVal;
+ Datum initVal;
+
+ getTypeInputInfo(transtype, &typinput, &typioparam);
+ strInitVal = TextDatumGetCString(textInitVal);
+ initVal = OidInputFunctionCall(typinput, strInitVal,
+ typioparam, -1);
+ pfree(strInitVal);
+ return initVal;
+ }
+
+ /*
+ * is_peer
+ * compare two rows in the ORDER BY clause
+ */
+ static bool
+ is_peer(WindowState *winstate, TupleTableSlot *slot1, TupleTableSlot *slot2)
+ {
+ Window *node = (Window *) winstate->ss.ps.plan;
+
+ /* If no ORDER BY, all rows are peer with each other */
+ if (node->ordNumCols == 0)
+ return true;
+
+ return execTuplesMatch(slot1, slot2,
+ node->ordNumCols, node->ordColIdx,
+ winstate->ordEqfunctions,
+ winstate->tmpcontext->ecxt_per_tuple_memory);
+ }
+
+ static bool
+ window_gettupleslot(WindowObject winobj, int64 pos, TupleTableSlot *slot)
+ {
+ MemoryContext oldcontext;
+
+ spool_tuples(winobj->winstate, pos);
+
+ if (pos >= winobj->winstate->spooled_rows || pos < 0)
+ return false;
+
+ oldcontext = MemoryContextSwitchTo(winobj->winstate->wincontext);
+
+ tuplestore_select_read_pointer(winobj->winstate->buffer, winobj->readptr);
+
+ /*
+ * There's no API to refetch the tuple at the current position. We
+ * have to move one tuple backward, and then one forward.
+ */
+ if (winobj->seekpos == pos)
+ {
+ tuplestore_advance(winobj->winstate->buffer, false);
+ winobj->seekpos--;
+ }
+
+ while(winobj->seekpos > pos)
+ {
+ if (!tuplestore_gettupleslot(winobj->winstate->buffer, false, slot))
+ elog(ERROR, "out of tuples");
+ winobj->seekpos--;
+ }
+
+ while (winobj->seekpos < pos)
+ {
+ if (!tuplestore_gettupleslot(winobj->winstate->buffer, true, slot))
+ elog(ERROR, "out of tuples");
+ winobj->seekpos++;
+ }
+
+ MemoryContextSwitchTo(oldcontext);
+
+ return true;
+ }
+
+ /* API exposed to window functions */
+
+ /*
+ * WinRowCurrentPos
+ * return the position of CURRENT ROW in the partition.
+ */
+ int64
+ WinRowCurrentPos(WindowObject winobj)
+ {
+ return winobj->winstate->currentpos;
+ }
+
+ /*
+ * WinRowIsPeer
+ * compare two rows in the ORDER BY clause
+ */
+ bool
+ WinRowIsPeer(WindowObject winobj, int64 pos1, int64 pos2)
+ {
+ WindowState *winstate = winobj->winstate;
+ TupleTableSlot *slot1 = winstate->is_peer_slot1;
+ TupleTableSlot *slot2 = winstate->is_peer_slot2;
+ bool res;
+
+ if (!window_gettupleslot(winobj, pos1, slot1))
+ elog(ERROR, "out of window");
+ if (!window_gettupleslot(winobj, pos2, slot2))
+ elog(ERROR, "out of window");
+
+ res = is_peer(winstate, slot1, slot2);
+ ExecClearTuple(slot1);
+ ExecClearTuple(slot2);
+ return res;
+ }
+
+ /*
+ * WinPartGetRowNum
+ * return number of rows contained in the partition.
+ */
+ int64
+ WinPartGetRowNum(WindowObject winobj)
+ {
+ spool_tuples(winobj->winstate, -1);
+
+ return winobj->winstate->spooled_rows;
+ }
+
+ /*
+ * WinPartGetArg
+ * return datum from the specified row in the partition.
+ * If the target row is out of the partition, isout will be true as
+ * well as isnull.
+ */
+ Datum
+ WinPartGetArg(WindowObject winobj, int argno,
+ int relpos, int seektype, bool *isnull, bool *isout)
+ {
+ ExprContext *econtext = winobj->winstate->ss.ps.ps_ExprContext;
+ TupleTableSlot *slot = econtext->ecxt_outertuple;
+ bool result;
+ int64 abs_pos;
+
+ switch(seektype)
+ {
+ case WINDOW_SEEK_CURRENT:
+ abs_pos = winobj->winstate->currentpos + relpos;
+ break;
+ case WINDOW_SEEK_HEAD:
+ abs_pos = relpos;
+ break;
+ case WINDOW_SEEK_TAIL:
+ spool_tuples(winobj->winstate, -1);
+ abs_pos = winobj->winstate->spooled_rows - 1 + relpos;
+ break;
+ default:
+ elog(ERROR, "unknown window seek type: %d", seektype);
+ abs_pos = 0; /* keep compiler quiet */
+ }
+
+ if (abs_pos >= 0)
+ result = window_gettupleslot(winobj, abs_pos, slot);
+ else
+ result = false;
+
+ if (!result)
+ {
+ if (isout)
+ *isout = true;
+ *isnull = true;
+ return (Datum) 0;
+ }
+ else
+ {
+ if (isout)
+ *isout = false;
+ return ExecEvalExpr((ExprState *) list_nth(winobj->argstates, argno),
+ econtext, isnull, NULL);
+ }
+ }
+
+ /*
+ * WinFrameGetArg
+ * return datum from the specified row in the partition.
+ * If the target row is out of the frame, isout will be true as
+ * well as isnull.
+ */
+ Datum
+ WinFrameGetArg(WindowObject winobj, int argno,
+ int relpos, int seektype, bool *isnull, bool *isout)
+ {
+ ExprContext *econtext = winobj->winstate->ss.ps.ps_ExprContext;
+ TupleTableSlot *slot = econtext->ecxt_outertuple;
+ bool result;
+ int64 abs_pos;
+ int64 frametailpos = winobj->winstate->frametailpos;
+
+ if (((Window *) winobj->winstate->ss.ps.plan)->ordNumCols == 0)
+ return WinPartGetArg(winobj, argno, relpos, seektype, isnull, isout);
+
+ switch(seektype)
+ {
+ case WINDOW_SEEK_CURRENT:
+ abs_pos = winobj->winstate->currentpos + relpos;
+ break;
+ case WINDOW_SEEK_HEAD:
+ abs_pos = relpos;
+ break;
+ case WINDOW_SEEK_TAIL:
+ /* abs_pos is calculated later */
+ abs_pos = 0; /* keep compiler quiet */
+ break;
+ default:
+ elog(ERROR, "unknown window seek type: %d", seektype);
+ abs_pos = 0; /* keep compiler quiet */
+ }
+
+ /*
+ * Seek for frame tail. If the tail position is before current,
+ * always check if the tail is after the current or not.
+ */
+ if (frametailpos <= winobj->winstate->currentpos)
+ {
+ int64 add = 1;
+
+ for(;;)
+ {
+ spool_tuples(winobj->winstate, winobj->winstate->currentpos + add);
+ if (winobj->winstate->spooled_rows > winobj->winstate->currentpos + add)
+ {
+ /*
+ * When seektype is not TAIL, we may optimize not to
+ * spool unnecessary tuples. In TAIL, we need to check
+ * until the peer is over.
+ */
+ if (!WinRowIsPeer(winobj, winobj->winstate->currentpos,
+ winobj->winstate->currentpos + add) ||
+ (seektype != WINDOW_SEEK_TAIL &&
+ winobj->winstate->currentpos + add < abs_pos))
+ break;
+ add++;
+ }
+ else
+ {
+ /*
+ * If hit the partition end, the last row is the frame tail.
+ */
+ break;
+ }
+ }
+ frametailpos = winobj->winstate->currentpos + add - 1;
+ winobj->winstate->frametailpos = frametailpos;
+ }
+
+ if (seektype == WINDOW_SEEK_TAIL)
+ {
+ abs_pos = frametailpos + relpos;
+ }
+
+ /*
+ * If there is an ORDER BY (we don't support other window frame
+ * specifications yet), the frame runs from first row of the partition
+ * to the current row and its all peers. Otherwise the frame is the
+ * whole partition.
+ */
+ if (abs_pos < 0 || abs_pos > frametailpos)
+ result = false;
+ else
+ result = window_gettupleslot(winobj, abs_pos, slot);
+
+ if (!result)
+ {
+ if (isout)
+ *isout = true;
+ *isnull = true;
+ return (Datum) 0;
+ }
+ else
+ {
+ if (isout)
+ *isout = false;
+ return ExecEvalExpr((ExprState *) list_nth(winobj->argstates, argno),
+ econtext, isnull, NULL);
+ }
+ }
*** a/src/backend/nodes/copyfuncs.c
--- b/src/backend/nodes/copyfuncs.c
***************
*** 762,767 **** _copyLimit(Limit *from)
--- 762,789 ----
}
/*
+ * _copyWindow
+ */
+ static Window *
+ _copyWindow(Window *from)
+ {
+ Window *newnode = makeNode(Window);
+
+ CopyPlanFields((Plan *) from, (Plan *) newnode);
+
+ COPY_SCALAR_FIELD(prtNumCols);
+ COPY_POINTER_FIELD(prtColIdx, from->prtNumCols * sizeof(AttrNumber));
+ COPY_POINTER_FIELD(prtOperators, from->prtNumCols * sizeof(Oid));
+ COPY_SCALAR_FIELD(ordNumCols);
+ COPY_POINTER_FIELD(ordColIdx, from->ordNumCols * sizeof(AttrNumber));
+ COPY_NODE_FIELD(preceding);
+ COPY_NODE_FIELD(following);
+ COPY_SCALAR_FIELD(winref);
+
+ return newnode;
+ }
+
+ /*
* _copyPlanInvalItem
*/
static PlanInvalItem *
***************
*** 932,937 **** _copyAggref(Aggref *from)
--- 954,979 ----
}
/*
+ * _copyWindowFunc
+ */
+ static WindowFunc *
+ _copyWindowFunc(WindowFunc *from)
+ {
+ WindowFunc *newnode = makeNode(WindowFunc);
+
+ COPY_SCALAR_FIELD(winfnoid);
+ COPY_SCALAR_FIELD(wintype);
+ COPY_NODE_FIELD(args);
+ COPY_SCALAR_FIELD(winlevelsup);
+ COPY_SCALAR_FIELD(winstar);
+ COPY_SCALAR_FIELD(winref);
+ COPY_SCALAR_FIELD(winagg);
+ COPY_LOCATION_FIELD(location);
+
+ return newnode;
+ }
+
+ /*
* _copyArrayRef
*/
static ArrayRef *
***************
*** 1729,1734 **** _copySortGroupClause(SortGroupClause *from)
--- 1771,1804 ----
return newnode;
}
+ static WindowDef *
+ _copyWindowDef(WindowDef *from)
+ {
+ WindowDef *newnode = makeNode(WindowDef);
+
+ COPY_NODE_FIELD(partitionClause);
+ COPY_NODE_FIELD(orderClause);
+ COPY_NODE_FIELD(wfunc);
+ COPY_STRING_FIELD(name);
+ COPY_LOCATION_FIELD(location);
+
+ return newnode;
+ }
+
+ static WindowClause *
+ _copyWindowClause(WindowClause *from)
+ {
+ WindowClause *newnode = makeNode(WindowClause);
+
+ COPY_NODE_FIELD(partitionClause);
+ COPY_NODE_FIELD(orderClause);
+ COPY_STRING_FIELD(name);
+ COPY_SCALAR_FIELD(has_wfunc);
+ COPY_SCALAR_FIELD(winref);
+
+ return newnode;
+ }
+
static RowMarkClause *
_copyRowMarkClause(RowMarkClause *from)
{
***************
*** 1850,1855 **** _copyFuncCall(FuncCall *from)
--- 1920,1926 ----
COPY_SCALAR_FIELD(agg_star);
COPY_SCALAR_FIELD(agg_distinct);
COPY_SCALAR_FIELD(func_variadic);
+ COPY_NODE_FIELD(win_definition);
COPY_LOCATION_FIELD(location);
return newnode;
***************
*** 2072,2077 **** _copyQuery(Query *from)
--- 2143,2149 ----
COPY_SCALAR_FIELD(hasAggs);
COPY_SCALAR_FIELD(hasSubLinks);
COPY_SCALAR_FIELD(hasDistinctOn);
+ COPY_SCALAR_FIELD(hasWindow);
COPY_SCALAR_FIELD(hasRecursive);
COPY_NODE_FIELD(cteList);
COPY_NODE_FIELD(rtable);
***************
*** 2082,2087 **** _copyQuery(Query *from)
--- 2154,2160 ----
COPY_NODE_FIELD(havingQual);
COPY_NODE_FIELD(distinctClause);
COPY_NODE_FIELD(sortClause);
+ COPY_NODE_FIELD(windowList);
COPY_NODE_FIELD(limitOffset);
COPY_NODE_FIELD(limitCount);
COPY_NODE_FIELD(rowMarks);
***************
*** 2142,2147 **** _copySelectStmt(SelectStmt *from)
--- 2215,2221 ----
COPY_NODE_FIELD(whereClause);
COPY_NODE_FIELD(groupClause);
COPY_NODE_FIELD(havingClause);
+ COPY_NODE_FIELD(windowClause);
COPY_NODE_FIELD(withClause);
COPY_NODE_FIELD(valuesLists);
COPY_NODE_FIELD(sortClause);
***************
*** 3330,3335 **** copyObject(void *from)
--- 3404,3412 ----
case T_Limit:
retval = _copyLimit(from);
break;
+ case T_Window:
+ retval = _copyWindow(from);
+ break;
case T_PlanInvalItem:
retval = _copyPlanInvalItem(from);
break;
***************
*** 3358,3363 **** copyObject(void *from)
--- 3435,3443 ----
case T_Aggref:
retval = _copyAggref(from);
break;
+ case T_WindowFunc:
+ retval = _copyWindowFunc(from);
+ break;
case T_ArrayRef:
retval = _copyArrayRef(from);
break;
***************
*** 3832,3837 **** copyObject(void *from)
--- 3912,3923 ----
case T_SortGroupClause:
retval = _copySortGroupClause(from);
break;
+ case T_WindowDef:
+ retval = _copyWindowDef(from);
+ break;
+ case T_WindowClause:
+ retval = _copyWindowClause(from);
+ break;
case T_RowMarkClause:
retval = _copyRowMarkClause(from);
break;
*** a/src/backend/nodes/equalfuncs.c
--- b/src/backend/nodes/equalfuncs.c
***************
*** 192,197 **** _equalAggref(Aggref *a, Aggref *b)
--- 192,212 ----
}
static bool
+ _equalWindowFunc(WindowFunc *a, WindowFunc *b)
+ {
+ COMPARE_SCALAR_FIELD(winfnoid);
+ COMPARE_SCALAR_FIELD(wintype);
+ COMPARE_NODE_FIELD(args);
+ COMPARE_SCALAR_FIELD(winlevelsup);
+ COMPARE_SCALAR_FIELD(winstar);
+ COMPARE_SCALAR_FIELD(winref);
+ COMPARE_SCALAR_FIELD(winagg);
+ COMPARE_LOCATION_FIELD(location);
+
+ return true;
+ }
+
+ static bool
_equalArrayRef(ArrayRef *a, ArrayRef *b)
{
COMPARE_SCALAR_FIELD(refarraytype);
***************
*** 841,846 **** _equalQuery(Query *a, Query *b)
--- 856,862 ----
COMPARE_SCALAR_FIELD(hasAggs);
COMPARE_SCALAR_FIELD(hasSubLinks);
COMPARE_SCALAR_FIELD(hasDistinctOn);
+ COMPARE_SCALAR_FIELD(hasWindow);
COMPARE_SCALAR_FIELD(hasRecursive);
COMPARE_NODE_FIELD(cteList);
COMPARE_NODE_FIELD(rtable);
***************
*** 851,856 **** _equalQuery(Query *a, Query *b)
--- 867,873 ----
COMPARE_NODE_FIELD(havingQual);
COMPARE_NODE_FIELD(distinctClause);
COMPARE_NODE_FIELD(sortClause);
+ COMPARE_NODE_FIELD(windowList);
COMPARE_NODE_FIELD(limitOffset);
COMPARE_NODE_FIELD(limitCount);
COMPARE_NODE_FIELD(rowMarks);
***************
*** 903,908 **** _equalSelectStmt(SelectStmt *a, SelectStmt *b)
--- 920,926 ----
COMPARE_NODE_FIELD(whereClause);
COMPARE_NODE_FIELD(groupClause);
COMPARE_NODE_FIELD(havingClause);
+ COMPARE_NODE_FIELD(windowClause);
COMPARE_NODE_FIELD(withClause);
COMPARE_NODE_FIELD(valuesLists);
COMPARE_NODE_FIELD(sortClause);
***************
*** 1801,1806 **** _equalFuncCall(FuncCall *a, FuncCall *b)
--- 1819,1825 ----
COMPARE_SCALAR_FIELD(agg_star);
COMPARE_SCALAR_FIELD(agg_distinct);
COMPARE_SCALAR_FIELD(func_variadic);
+ COMPARE_NODE_FIELD(win_definition);
COMPARE_LOCATION_FIELD(location);
return true;
***************
*** 2005,2010 **** _equalSortGroupClause(SortGroupClause *a, SortGroupClause *b)
--- 2024,2053 ----
}
static bool
+ _equalWindowDef(WindowDef *a, WindowDef *b)
+ {
+ COMPARE_NODE_FIELD(partitionClause);
+ COMPARE_NODE_FIELD(orderClause);
+ COMPARE_NODE_FIELD(wfunc);
+ COMPARE_STRING_FIELD(name);
+ COMPARE_LOCATION_FIELD(location);
+
+ return true;
+ }
+
+ static bool
+ _equalWindowClause(WindowClause *a, WindowClause *b)
+ {
+ COMPARE_NODE_FIELD(partitionClause);
+ COMPARE_NODE_FIELD(orderClause);
+ COMPARE_STRING_FIELD(name);
+ COMPARE_SCALAR_FIELD(has_wfunc);
+ COMPARE_SCALAR_FIELD(winref);
+
+ return true;
+ }
+
+ static bool
_equalRowMarkClause(RowMarkClause *a, RowMarkClause *b)
{
COMPARE_SCALAR_FIELD(rti);
***************
*** 2209,2214 **** equal(void *a, void *b)
--- 2252,2260 ----
case T_Aggref:
retval = _equalAggref(a, b);
break;
+ case T_WindowFunc:
+ retval = _equalWindowFunc(a, b);
+ break;
case T_ArrayRef:
retval = _equalArrayRef(a, b);
break;
***************
*** 2314,2319 **** equal(void *a, void *b)
--- 2360,2368 ----
case T_JoinExpr:
retval = _equalJoinExpr(a, b);
break;
+ case T_WindowClause:
+ retval = _equalWindowClause(a, b);
+ break;
/*
* RELATION NODES
***************
*** 2670,2675 **** equal(void *a, void *b)
--- 2719,2727 ----
case T_SortGroupClause:
retval = _equalSortGroupClause(a, b);
break;
+ case T_WindowDef:
+ retval = _equalWindowDef(a, b);
+ break;
case T_RowMarkClause:
retval = _equalRowMarkClause(a, b);
break;
*** a/src/backend/nodes/nodeFuncs.c
--- b/src/backend/nodes/nodeFuncs.c
***************
*** 52,57 **** exprType(Node *expr)
--- 52,60 ----
case T_Aggref:
type = ((Aggref *) expr)->aggtype;
break;
+ case T_WindowFunc:
+ type = ((WindowFunc *) expr)->wintype;
+ break;
case T_ArrayRef:
{
ArrayRef *arrayref = (ArrayRef *) expr;
***************
*** 548,553 **** expression_returns_set_walker(Node *node, void *context)
--- 551,558 ----
/* Avoid recursion for some cases that can't return a set */
if (IsA(node, Aggref))
return false;
+ if (IsA(node, WindowFunc))
+ return false;
if (IsA(node, DistinctExpr))
return false;
if (IsA(node, ScalarArrayOpExpr))
***************
*** 634,639 **** exprLocation(Node *expr)
--- 639,647 ----
/* function name should always be the first thing */
loc = ((Aggref *) expr)->location;
break;
+ case T_WindowFunc:
+ loc = ((WindowFunc *) expr)->location;
+ break;
case T_ArrayRef:
/* just use array argument's location */
loc = exprLocation((Node *) ((ArrayRef *) expr)->refexpr);
***************
*** 1045,1050 **** expression_tree_walker(Node *node,
--- 1053,1066 ----
return true;
}
break;
+ case T_WindowFunc:
+ {
+ WindowFunc *expr = (WindowFunc *) node;
+ if(expression_tree_walker((Node *) expr->args,
+ walker, context))
+ return true;
+ }
+ break;
case T_ArrayRef:
{
ArrayRef *aref = (ArrayRef *) node;
***************
*** 1539,1544 **** expression_tree_mutator(Node *node,
--- 1555,1570 ----
return (Node *) newnode;
}
break;
+ case T_WindowFunc:
+ {
+ WindowFunc *wfunc = (WindowFunc *) node;
+ WindowFunc *newnode;
+
+ FLATCOPY(newnode, wfunc, WindowFunc);
+ MUTATE(newnode->args, wfunc->args, List *);
+ return (Node *) newnode;
+ }
+ break;
case T_ArrayRef:
{
ArrayRef *arrayref = (ArrayRef *) node;
*** a/src/backend/nodes/outfuncs.c
--- b/src/backend/nodes/outfuncs.c
***************
*** 684,689 **** _outLimit(StringInfo str, Limit *node)
--- 684,715 ----
}
static void
+ _outWindow(StringInfo str, Window *node)
+ {
+ int i;
+
+ WRITE_NODE_TYPE("WINDOW");
+
+ _outPlanInfo(str, (Plan *) node);
+
+ appendStringInfo(str, " :prtColIdx");
+ for (i = 0; i < node->prtNumCols; i++)
+ appendStringInfo(str, " %d", node->prtColIdx[i]);
+
+ appendStringInfo(str, " :prtOperations");
+ for (i = 0; i < node->prtNumCols; i++)
+ appendStringInfo(str, " %d", node->prtOperators[i]);
+
+ appendStringInfo(str, " :ordColIdx");
+ for (i = 0; i< node->ordNumCols; i++)
+ appendStringInfo(str, " %d", node->ordColIdx[i]);
+
+ appendStringInfo(str, " :ordOperations");
+ for (i = 0; i < node->ordNumCols; i++)
+ appendStringInfo(str, " %d", node->ordOperators[i]);
+ }
+
+ static void
_outPlanInvalItem(StringInfo str, PlanInvalItem *node)
{
WRITE_NODE_TYPE("PLANINVALITEM");
***************
*** 799,804 **** _outAggref(StringInfo str, Aggref *node)
--- 825,845 ----
}
static void
+ _outWindowFunc(StringInfo str, WindowFunc *node)
+ {
+ WRITE_NODE_TYPE("WINDOWFUNC");
+
+ WRITE_OID_FIELD(winfnoid);
+ WRITE_OID_FIELD(wintype);
+ WRITE_NODE_FIELD(args);
+ WRITE_UINT_FIELD(winlevelsup);
+ WRITE_BOOL_FIELD(winstar);
+ WRITE_UINT_FIELD(winref);
+ WRITE_BOOL_FIELD(winagg);
+ WRITE_LOCATION_FIELD(location);
+ }
+
+ static void
_outArrayRef(StringInfo str, ArrayRef *node)
{
WRITE_NODE_TYPE("ARRAYREF");
***************
*** 1442,1447 **** _outPlannerInfo(StringInfo str, PlannerInfo *node)
--- 1483,1489 ----
WRITE_NODE_FIELD(group_pathkeys);
WRITE_NODE_FIELD(distinct_pathkeys);
WRITE_NODE_FIELD(sort_pathkeys);
+ WRITE_NODE_FIELD(window_pathkeys);
WRITE_FLOAT_FIELD(total_table_pages, "%.0f");
WRITE_FLOAT_FIELD(tuple_fraction, "%.4f");
WRITE_BOOL_FIELD(hasJoinRTEs);
***************
*** 1723,1728 **** _outSelectStmt(StringInfo str, SelectStmt *node)
--- 1765,1771 ----
WRITE_NODE_FIELD(groupClause);
WRITE_NODE_FIELD(havingClause);
WRITE_NODE_FIELD(withClause);
+ WRITE_NODE_FIELD(windowClause);
WRITE_NODE_FIELD(valuesLists);
WRITE_NODE_FIELD(sortClause);
WRITE_NODE_FIELD(limitOffset);
***************
*** 1744,1749 **** _outFuncCall(StringInfo str, FuncCall *node)
--- 1787,1793 ----
WRITE_BOOL_FIELD(agg_star);
WRITE_BOOL_FIELD(agg_distinct);
WRITE_BOOL_FIELD(func_variadic);
+ WRITE_NODE_FIELD(win_definition);
WRITE_LOCATION_FIELD(location);
}
***************
*** 1868,1873 **** _outQuery(StringInfo str, Query *node)
--- 1912,1918 ----
WRITE_BOOL_FIELD(hasAggs);
WRITE_BOOL_FIELD(hasSubLinks);
WRITE_BOOL_FIELD(hasDistinctOn);
+ WRITE_BOOL_FIELD(hasWindow);
WRITE_BOOL_FIELD(hasRecursive);
WRITE_NODE_FIELD(cteList);
WRITE_NODE_FIELD(rtable);
***************
*** 1878,1883 **** _outQuery(StringInfo str, Query *node)
--- 1923,1929 ----
WRITE_NODE_FIELD(havingQual);
WRITE_NODE_FIELD(distinctClause);
WRITE_NODE_FIELD(sortClause);
+ WRITE_NODE_FIELD(windowList);
WRITE_NODE_FIELD(limitOffset);
WRITE_NODE_FIELD(limitCount);
WRITE_NODE_FIELD(rowMarks);
***************
*** 1896,1901 **** _outSortGroupClause(StringInfo str, SortGroupClause *node)
--- 1942,1971 ----
}
static void
+ _outWindowDef(StringInfo str, WindowDef *node)
+ {
+ WRITE_NODE_TYPE("WINDOWDEF");
+
+ WRITE_NODE_FIELD(partitionClause);
+ WRITE_NODE_FIELD(orderClause);
+ WRITE_NODE_FIELD(wfunc);
+ WRITE_STRING_FIELD(name);
+ WRITE_LOCATION_FIELD(location);
+ }
+
+ static void
+ _outWindowClause(StringInfo str, WindowClause *node)
+ {
+ WRITE_NODE_TYPE("WINDOWCLAUSE");
+
+ WRITE_NODE_FIELD(partitionClause);
+ WRITE_NODE_FIELD(orderClause);
+ WRITE_STRING_FIELD(name);
+ WRITE_BOOL_FIELD(has_wfunc);
+ WRITE_UINT_FIELD(winref);
+ }
+
+ static void
_outRowMarkClause(StringInfo str, RowMarkClause *node)
{
WRITE_NODE_TYPE("ROWMARKCLAUSE");
***************
*** 2368,2373 **** _outNode(StringInfo str, void *obj)
--- 2438,2446 ----
case T_Limit:
_outLimit(str, obj);
break;
+ case T_Window:
+ _outWindow(str, obj);
+ break;
case T_PlanInvalItem:
_outPlanInvalItem(str, obj);
break;
***************
*** 2392,2397 **** _outNode(StringInfo str, void *obj)
--- 2465,2473 ----
case T_Aggref:
_outAggref(str, obj);
break;
+ case T_WindowFunc:
+ _outWindowFunc(str, obj);
+ break;
case T_ArrayRef:
_outArrayRef(str, obj);
break;
***************
*** 2616,2621 **** _outNode(StringInfo str, void *obj)
--- 2692,2703 ----
case T_SortGroupClause:
_outSortGroupClause(str, obj);
break;
+ case T_WindowDef:
+ _outWindowDef(str, obj);
+ break;
+ case T_WindowClause:
+ _outWindowClause(str, obj);
+ break;
case T_RowMarkClause:
_outRowMarkClause(str, obj);
break;
*** a/src/backend/nodes/readfuncs.c
--- b/src/backend/nodes/readfuncs.c
***************
*** 155,160 **** _readQuery(void)
--- 155,161 ----
READ_BOOL_FIELD(hasAggs);
READ_BOOL_FIELD(hasSubLinks);
READ_BOOL_FIELD(hasDistinctOn);
+ READ_BOOL_FIELD(hasWindow);
READ_BOOL_FIELD(hasRecursive);
READ_NODE_FIELD(cteList);
READ_NODE_FIELD(rtable);
***************
*** 165,170 **** _readQuery(void)
--- 166,172 ----
READ_NODE_FIELD(havingQual);
READ_NODE_FIELD(distinctClause);
READ_NODE_FIELD(sortClause);
+ READ_NODE_FIELD(windowList);
READ_NODE_FIELD(limitOffset);
READ_NODE_FIELD(limitCount);
READ_NODE_FIELD(rowMarks);
***************
*** 218,223 **** _readSortGroupClause(void)
--- 220,259 ----
}
/*
+ * _readWindowDef
+ */
+ static WindowDef *
+ _readWindowDef(void)
+ {
+ READ_LOCALS(WindowDef);
+
+ READ_NODE_FIELD(partitionClause);
+ READ_NODE_FIELD(orderClause);
+ READ_NODE_FIELD(wfunc);
+ READ_STRING_FIELD(name);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+ }
+
+ /*
+ * _readWindowClause
+ */
+ static WindowClause *
+ _readWindowClause(void)
+ {
+ READ_LOCALS(WindowClause);
+
+ READ_NODE_FIELD(partitionClause);
+ READ_NODE_FIELD(orderClause);
+ READ_STRING_FIELD(name);
+ READ_BOOL_FIELD(has_wfunc);
+ READ_UINT_FIELD(winref);
+
+ READ_DONE();
+ }
+
+ /*
* _readRowMarkClause
*/
static RowMarkClause *
***************
*** 403,408 **** _readAggref(void)
--- 439,464 ----
}
/*
+ * _readWindowFunc
+ */
+ static WindowFunc *
+ _readWindowFunc(void)
+ {
+ READ_LOCALS(WindowFunc);
+
+ READ_OID_FIELD(winfnoid);
+ READ_OID_FIELD(wintype);
+ READ_NODE_FIELD(args);
+ READ_UINT_FIELD(winlevelsup);
+ READ_BOOL_FIELD(winstar);
+ READ_UINT_FIELD(winref);
+ READ_BOOL_FIELD(winagg);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+ }
+
+ /*
* _readArrayRef
*/
static ArrayRef *
***************
*** 1091,1096 **** parseNodeString(void)
--- 1147,1156 ----
return_value = _readQuery();
else if (MATCH("SORTGROUPCLAUSE", 15))
return_value = _readSortGroupClause();
+ else if (MATCH("WINDOWDEF", 9))
+ return_value = _readWindowDef();
+ else if (MATCH("WINDOWCLAUSE", 12))
+ return_value = _readWindowClause();
else if (MATCH("ROWMARKCLAUSE", 13))
return_value = _readRowMarkClause();
else if (MATCH("COMMONTABLEEXPR", 15))
***************
*** 1111,1116 **** parseNodeString(void)
--- 1171,1178 ----
return_value = _readParam();
else if (MATCH("AGGREF", 6))
return_value = _readAggref();
+ else if (MATCH("WINDOWFUNC", 10))
+ return_value = _readWindowFunc();
else if (MATCH("ARRAYREF", 8))
return_value = _readArrayRef();
else if (MATCH("FUNCEXPR", 8))
*** a/src/backend/optimizer/path/allpaths.c
--- b/src/backend/optimizer/path/allpaths.c
***************
*** 926,932 **** standard_join_search(PlannerInfo *root, int levels_needed, List *initial_rels)
*
* Conditions checked here:
*
! * 1. If the subquery has a LIMIT clause, we must not push down any quals,
* since that could change the set of rows returned.
*
* 2. If the subquery contains EXCEPT or EXCEPT ALL set ops we cannot push
--- 926,932 ----
*
* Conditions checked here:
*
! * 1. If the subquery has a LIMIT or WINDOW clause, we must not push down any quals,
* since that could change the set of rows returned.
*
* 2. If the subquery contains EXCEPT or EXCEPT ALL set ops we cannot push
***************
*** 947,953 **** subquery_is_pushdown_safe(Query *subquery, Query *topquery,
SetOperationStmt *topop;
/* Check point 1 */
! if (subquery->limitOffset != NULL || subquery->limitCount != NULL)
return false;
/* Are we at top level, or looking at a setop component? */
--- 947,954 ----
SetOperationStmt *topop;
/* Check point 1 */
! if (subquery->limitOffset != NULL || subquery->limitCount != NULL ||
! subquery->hasWindow)
return false;
/* Are we at top level, or looking at a setop component? */
*** a/src/backend/optimizer/path/equivclass.c
--- b/src/backend/optimizer/path/equivclass.c
***************
*** 438,451 **** get_eclass_for_sort_expr(PlannerInfo *root,
/*
* add_eq_member doesn't check for volatile functions, set-returning
! * functions, or aggregates, but such could appear in sort expressions; so
! * we have to check whether its const-marking was correct.
*/
if (newec->ec_has_const)
{
if (newec->ec_has_volatile ||
expression_returns_set((Node *) expr) ||
! contain_agg_clause((Node *) expr))
{
newec->ec_has_const = false;
newem->em_is_const = false;
--- 438,454 ----
/*
* add_eq_member doesn't check for volatile functions, set-returning
! * functions, aggregates, or window functions, but such could appear
! * in sort expressions; so we have to check whether its const-marking
! * was correct.
! * XXX: need consider stable function?
*/
if (newec->ec_has_const)
{
if (newec->ec_has_volatile ||
expression_returns_set((Node *) expr) ||
! contain_agg_clause((Node *) expr) ||
! find_wfunc((Node *) expr) != NULL)
{
newec->ec_has_const = false;
newem->em_is_const = false;
*** a/src/backend/optimizer/plan/createplan.c
--- b/src/backend/optimizer/plan/createplan.c
***************
*** 3521,3526 **** make_limit(Plan *lefttree, Node *limitOffset, Node *limitCount,
--- 3521,3652 ----
return node;
}
+ /*
+ * make_window
+ * Almost same as make_agg in the meaning of partition columns
+ */
+ Window *
+ make_window(PlannerInfo *root,
+ List *tlist,
+ WindowClause *parse,
+ Oid *prtOperators,
+ Oid *ordOperators,
+ Plan *lefttree)
+ {
+ Window *node = makeNode(Window);
+ Plan *plan = &node->plan;
+ List *sub_tlist = lefttree->targetlist;
+ ListCell *lc;
+ int numCols;
+ int numWfuncs;
+
+ /*
+ * count up window functions
+ */
+ numWfuncs = 0;
+ foreach(lc, tlist)
+ {
+ TargetEntry *tle = (TargetEntry *) lfirst(lc);
+ Node *wfunc;
+
+ wfunc = find_wfunc((Node *) tle->expr);
+ if(wfunc)
+ numWfuncs++;
+ }
+
+ copy_plan_costsize(plan, lefttree);
+
+ /*
+ * Charge one cpu_operator_cost per comparison per input tuple. We assume
+ * all columns get compared at most of the tuples.
+ */
+ numCols = list_length(tlist);
+ plan->total_cost += cpu_operator_cost * lefttree->plan_rows * numCols;
+ plan->total_cost += cpu_operator_cost * numWfuncs * lefttree->plan_rows;
+
+ plan->lefttree = lefttree;
+ plan->targetlist = tlist;
+ plan->qual = NIL;
+
+ numCols = list_length(parse->partitionClause);
+ node->prtNumCols = numCols;
+ if (parse->partitionClause)
+ {
+ int keyno = 0;
+ AttrNumber *prtColIdx = NULL;
+ ListCell *pl;
+
+ prtColIdx = (AttrNumber *) palloc(sizeof(AttrNumber) * numCols);
+
+ foreach(pl, parse->partitionClause)
+ {
+ SortGroupClause *prtcl = (SortGroupClause *) lfirst(pl);
+ Node *prtexpr = get_sortgroupclause_expr(prtcl, sub_tlist);
+ TargetEntry *te = NULL;
+ ListCell *l;
+
+ foreach(l, sub_tlist)
+ {
+ te = (TargetEntry *) lfirst(l);
+ if (equal(prtexpr, te->expr))
+ break;
+ }
+
+ Assert(te);
+ prtColIdx[keyno++] = te->resno;
+ }
+ node->prtColIdx = prtColIdx;
+ node->prtOperators = prtOperators;
+ }
+
+ numCols = list_length(parse->orderClause);
+ node->ordNumCols = numCols;
+ if (parse->orderClause)
+ {
+ int keyno = 0;
+ AttrNumber *ordColIdx = NULL;
+ ListCell *ol;
+
+ ordColIdx = (AttrNumber *) palloc(sizeof(AttrNumber) * numCols);
+ foreach(ol, parse->orderClause)
+ {
+ SortGroupClause *ordcl = (SortGroupClause *) lfirst(ol);
+ Node *ordexpr = get_sortgroupclause_expr(ordcl, sub_tlist);
+ TargetEntry *te = NULL;
+ ListCell *l;
+
+ foreach(l, sub_tlist)
+ {
+ te = (TargetEntry *) lfirst(l);
+ if (equal(ordexpr, te->expr))
+ break;
+ }
+
+ Assert(te);
+ ordColIdx[keyno++] = te->resno;
+ }
+ /* orderClause columns will be used as "key columns". */
+ node->ordColIdx = ordColIdx;
+ node->ordOperators = ordOperators;
+ }
+
+ /*
+ * Currently, the parser doesn't accept frame clause.
+ * This is for future implementation.
+ */
+ node->bound1_type = FRAME_UNBOUNDED;
+ node->bound2_type = (node->ordNumCols > 0 ?
+ FRAME_CURRENT_RANGE : FRAME_UNBOUNDED);
+
+ node->bound1_rows = 0;
+ node->bound2_rows = 0;
+ node->preceding = NULL;
+ node->following = NULL;
+
+ node->winref = parse->winref;
+
+ return node;
+ }
/*
* make_result
*** a/src/backend/optimizer/plan/planmain.c
--- b/src/backend/optimizer/plan/planmain.c
***************
*** 233,238 **** query_planner(PlannerInfo *root, List *tlist,
--- 233,239 ----
*/
root->query_pathkeys = canonicalize_pathkeys(root, root->query_pathkeys);
root->group_pathkeys = canonicalize_pathkeys(root, root->group_pathkeys);
+ root->window_pathkeys = canonicalize_pathkeys(root, root->window_pathkeys);
root->distinct_pathkeys = canonicalize_pathkeys(root, root->distinct_pathkeys);
root->sort_pathkeys = canonicalize_pathkeys(root, root->sort_pathkeys);
*** a/src/backend/optimizer/plan/planner.c
--- b/src/backend/optimizer/plan/planner.c
***************
*** 22,27 ****
--- 22,28 ----
#include "executor/nodeAgg.h"
#include "miscadmin.h"
#include "nodes/makefuncs.h"
+ #include "nodes/nodeFuncs.h"
#include "optimizer/clauses.h"
#include "optimizer/cost.h"
#include "optimizer/pathnode.h"
***************
*** 82,87 **** static void locate_grouping_columns(PlannerInfo *root,
--- 83,90 ----
List *sub_tlist,
AttrNumber *groupColIdx);
static List *postprocess_setop_tlist(List *new_tlist, List *orig_tlist);
+ static List *preprocess_window(List *tlist, Plan *subplan);
+ static List *window_tlist(List *tlist, Index winref, bool *has_win);
/*****************************************************************************
***************
*** 899,904 **** grouping_planner(PlannerInfo *root, double tuple_fraction)
--- 902,948 ----
else
root->group_pathkeys = NIL;
+ /*
+ * Currently we don't relocate each Window node based on
+ * cost estimation; it'd be better to think about the order
+ * of each node execution. But for now we only think about
+ * the bottom node pathkeys. This should be fixed.
+ */
+ if (parse->windowList)
+ {
+ ListCell *l;
+
+ foreach(l, parse->windowList)
+ {
+ List *partition_pathkeys = NIL;
+ List *order_pathkeys = NIL;
+ WindowClause *wc = (WindowClause *) lfirst(l);
+
+ if (wc->partitionClause &&
+ grouping_is_sortable(wc->partitionClause))
+ partition_pathkeys =
+ make_pathkeys_for_sortclauses(root,
+ wc->partitionClause,
+ tlist,
+ false);
+
+ if (wc->orderClause &&
+ grouping_is_sortable(wc->orderClause))
+ order_pathkeys =
+ make_pathkeys_for_sortclauses(root,
+ wc->orderClause,
+ tlist,
+ false);
+
+ root->window_pathkeys = list_concat(partition_pathkeys, order_pathkeys);
+ /*
+ * Window node may be stacked more than one, but
+ * what is effective to query_planner() is only the bottom pathkeys.
+ */
+ break;
+ }
+ }
+
if (parse->distinctClause &&
grouping_is_sortable(parse->distinctClause))
root->distinct_pathkeys =
***************
*** 951,956 **** grouping_planner(PlannerInfo *root, double tuple_fraction)
--- 995,1002 ----
*/
if (root->group_pathkeys)
root->query_pathkeys = root->group_pathkeys;
+ else if (root->window_pathkeys)
+ root->query_pathkeys = root->window_pathkeys;
else if (list_length(root->distinct_pathkeys) >
list_length(root->sort_pathkeys))
root->query_pathkeys = root->distinct_pathkeys;
***************
*** 1237,1242 **** grouping_planner(PlannerInfo *root, double tuple_fraction)
--- 1283,1369 ----
} /* end of if (setOperations) */
/*
+ * Window nodes are stacked one by one for each window because Window
+ * functions are evaluated in the appropriate window. Hence, in a window
+ * level, upper window expressions are replaced by nulls so as to be
+ * evaluated in the upper Window node. For lower expressions, setrefs
+ * will replace them to Var nodes.
+ */
+ if (parse->windowList)
+ {
+ ListCell *l;
+ List *window_pathkeys = NIL;
+
+ /*
+ * If the top-level plan node is one that cannot do expression
+ * evaluation, we must insert a Result node to project the
+ * desired tlist.
+ */
+ if (!is_projection_capable_plan(result_plan))
+ {
+ result_plan = (Plan *) make_result(root,
+ tlist,
+ NULL,
+ result_plan);
+ }
+ result_plan->targetlist = preprocess_window(tlist, result_plan);
+ foreach(l, parse->windowList)
+ {
+ List *current_tlist;
+ List *partition_pathkeys = NIL;
+ List *order_pathkeys = NIL;
+ WindowClause *wc = (WindowClause *) lfirst(l);
+ bool has_win = false;
+
+ current_tlist = window_tlist(tlist, wc->winref, &has_win);
+ if (!has_win)
+ continue;
+
+ /*
+ * Currently, Window partitioning is only by Sort.
+ * So just join partitionClause and orderClause
+ * to match Grouping. Hashing algorithm will be considered later.
+ */
+ if (wc->partitionClause)
+ {
+ partition_pathkeys = make_pathkeys_for_sortclauses(root,
+ wc->partitionClause,
+ result_plan->targetlist,
+ false);
+ }
+
+ if (wc->orderClause)
+ {
+ order_pathkeys = make_pathkeys_for_sortclauses(root,
+ wc->orderClause,
+ result_plan->targetlist,
+ false);
+ }
+
+ /*
+ * create Sort node under Window, so PARTITION BY works
+ */
+ window_pathkeys = list_concat(partition_pathkeys, order_pathkeys);
+ window_pathkeys = canonicalize_pathkeys(root, window_pathkeys);
+ if (!pathkeys_contained_in(window_pathkeys, current_pathkeys))
+ {
+ result_plan = (Plan *) make_sort_from_pathkeys(root,
+ result_plan,
+ window_pathkeys,
+ -1);
+ current_pathkeys = window_pathkeys;
+ }
+
+ result_plan = (Plan *) make_window(root,
+ current_tlist,
+ wc,
+ extract_grouping_ops(wc->partitionClause),
+ extract_grouping_ops(wc->orderClause),
+ result_plan);
+ }
+ }
+
+ /*
* If there is a DISTINCT clause, add the necessary node(s).
*/
if (parse->distinctClause)
***************
*** 2039,2045 **** make_subplanTargetList(PlannerInfo *root,
* If we're not grouping or aggregating, there's nothing to do here;
* query_planner should receive the unmodified target list.
*/
! if (!parse->hasAggs && !parse->groupClause && !root->hasHavingQual)
{
*need_tlist_eval = true;
return tlist;
--- 2166,2172 ----
* If we're not grouping or aggregating, there's nothing to do here;
* query_planner should receive the unmodified target list.
*/
! if (!parse->hasAggs && !parse->groupClause && !root->hasHavingQual && !parse->hasWindow)
{
*need_tlist_eval = true;
return tlist;
***************
*** 2199,2201 **** postprocess_setop_tlist(List *new_tlist, List *orig_tlist)
--- 2326,2516 ----
elog(ERROR, "resjunk output columns are not implemented");
return new_tlist;
}
+
+ /*
+ * preprocess_window -
+ * given parser tlist, returns recomposed tlist for current top plan.
+ *
+ * Before create Window nodes, window expressions are removed from current
+ * tlist because current plan must not be a Window node. These expressions
+ * are evaluated in appropriate window later.
+ *
+ * There are two main cases to be considered.
+ * 1. Agg/Group
+ * Vars from scan node required by any of expression should have been pulled
+ * up to now. So there's no need to consider it.
+ *
+ * 2. Other Scan
+ * The situation resembles to the one in Agg/Group. Var expressions are pulled
+ * (tlist is flattened), and other evaluation expressions but window expression
+ * are as well, since in Window nodes we take care of only window expression.
+ *
+ * common in both
+ * WindowFunc args are also pulled and appended to the subplan. The window
+ * functions assume their arguments must be Var or Const, retrieved from outer plan.
+ */
+ static List *
+ preprocess_window(List *tlist, Plan *subplan)
+ {
+ ListCell *l;
+ List *pulled_exprs = NIL;
+ List *output_targetlist = NIL;
+ AttrNumber resno,
+ tlist_resno;
+
+ /*
+ * Agg/Group has already flatten its tlist. Only other nodes
+ * must consider pulling vars.
+ */
+ if (!(IsA(subplan, Agg) || IsA(subplan, Group)))
+ {
+ /*
+ * copyObject() is required, as in tlist = lappend(tlist, tle);
+ * Without this, it may fall into an infinte loop.
+ */
+ output_targetlist = copyObject(flatten_tlist(tlist));
+ tlist_resno = list_length(tlist);
+
+ foreach(l, output_targetlist)
+ {
+ TargetEntry *tle = (TargetEntry *) lfirst(l);
+ TargetEntry *member;
+ Var *var = (Var *) tle->expr;
+
+ /*
+ * tlist must have full set of vars required
+ * by any window functions up to the top Window node.
+ */
+ member = tlist_member((Node *) var, tlist);
+ if (!member)
+ {
+ tlist_resno++;
+ tle = makeTargetEntry(copyObject(var),
+ tlist_resno,
+ NULL,
+ true);
+ tlist = lappend(tlist, tle);
+ }
+ else
+ {
+ /*
+ * It is necessary since flatten_tlist() doesn't pull
+ * their resosortgroupref.
+ */
+ tle->ressortgroupref = member->ressortgroupref;
+ }
+ }
+ }
+
+ resno = list_length(output_targetlist);
+ foreach(l, tlist)
+ {
+ TargetEntry *tle = (TargetEntry *) lfirst(l);
+ TargetEntry *newtle;
+ WindowFunc *wfunc;
+
+ /*
+ * WindowFuncs doesn't work in the current top plan. So
+ * we replace these nodes to NullConst but save their
+ * args in order that WindowFuncs argument evaluations contain
+ * only Var and Const.
+ */
+ wfunc = (WindowFunc *) find_wfunc((Node *) tle->expr);
+ if (wfunc)
+ {
+ /*
+ * must copyObject() to avoid args concatenating with each other.
+ */
+ pulled_exprs = list_concat(pulled_exprs, copyObject(wfunc->args));
+ tle = flatCopyTargetEntry(tle);
+ tle->expr = (Expr *) makeNullConst(exprType((Node *) tle->expr),
+ exprTypmod((Node *) tle->expr));
+ }
+
+ if (tlist_member((Node *) tle->expr, output_targetlist))
+ continue;
+
+ /*
+ * If an entry isn't in flatten tlist nor window expression,
+ * it must be evaluated here before any of Window nodes.
+ */
+ newtle = flatCopyTargetEntry(tle);
+ resno++;
+ newtle->resno = resno;
+ output_targetlist = lappend(output_targetlist, newtle);
+ }
+
+ tlist_resno = list_length(tlist);
+ /*
+ * finally pulled arguments are appended to the current tlist so that
+ * each window function can take Var or Const arguments.
+ */
+ foreach(l, pulled_exprs)
+ {
+ TargetEntry *tle;
+ Expr *expr = (Expr *) lfirst(l);
+
+ resno++;
+ tle = makeTargetEntry(expr,
+ resno,
+ NULL,
+ true);
+ output_targetlist = lappend(output_targetlist, tle);
+
+ /*
+ * We also need the entry in the middle windows,
+ * so that upper window can take them as arguments.
+ */
+ if (!tlist_member((Node *) tle->expr, tlist))
+ {
+ tle = flatCopyTargetEntry(tle);
+ tlist_resno++;
+ tle->resno = tlist_resno;
+ tlist = lappend(tlist, tle);
+ }
+ }
+
+ return output_targetlist;
+ }
+
+ /*
+ * window_tlist -
+ *
+ * creates tlist suitable for the current window, indicated by winref.
+ * For the upper window expressions than current, they are relpaced
+ * by NullConst, so that setrefs can understand where the references
+ * may stop.
+ * With window clause syntax, there may be a window in which none of
+ * window evaluations is executed. In this case, we can pass by the window.
+ */
+ static List *
+ window_tlist(List *tlist, Index winref, bool *has_win)
+ {
+ List *output_targetlist = NIL;
+ ListCell *l;
+
+ foreach(l, tlist)
+ {
+ TargetEntry *tle = (TargetEntry *) lfirst(l);
+ WindowFunc *wfunc;
+
+ tle = flatCopyTargetEntry(tle);
+ wfunc = (WindowFunc *) find_wfunc_greater((Node *) tle->expr);
+ if (wfunc && winref == wfunc->winref)
+ *has_win = true;
+
+ /*
+ * window that contains evaluation on upper than current window is set null.
+ * for the lower ones, setrefs will fix them to Vars pointing to OUTER.
+ */
+ if (wfunc && winref < wfunc->winref)
+ {
+ tle->expr = (Expr *) makeNullConst(exprType((Node *) tle->expr),
+ exprTypmod((Node *) tle->expr));
+ }
+
+ output_targetlist = lappend(output_targetlist, tle);
+ }
+
+ return output_targetlist;
+ }
*** a/src/backend/optimizer/plan/setrefs.c
--- b/src/backend/optimizer/plan/setrefs.c
***************
*** 416,421 **** set_plan_refs(PlannerGlobal *glob, Plan *plan, int rtoffset)
--- 416,422 ----
break;
case T_Agg:
case T_Group:
+ case T_Window:
set_upper_references(glob, plan, rtoffset);
break;
case T_Result:
***************
*** 679,684 **** fix_expr_common(PlannerGlobal *glob, Node *node)
--- 680,690 ----
record_plan_function_dependency(glob,
((Aggref *) node)->aggfnoid);
}
+ else if (IsA(node, WindowFunc))
+ {
+ record_plan_function_dependency(glob,
+ ((WindowFunc *) node)->winfnoid);
+ }
else if (IsA(node, FuncExpr))
{
record_plan_function_dependency(glob,
*** a/src/backend/optimizer/plan/subselect.c
--- b/src/backend/optimizer/plan/subselect.c
***************
*** 1954,1959 **** finalize_plan(PlannerInfo *root, Plan *plan, Bitmapset *valid_params)
--- 1954,1960 ----
case T_Unique:
case T_SetOp:
case T_Group:
+ case T_Window:
break;
default:
*** a/src/backend/optimizer/prep/prepjointree.c
--- b/src/backend/optimizer/prep/prepjointree.c
***************
*** 931,936 **** is_simple_subquery(Query *subquery)
--- 931,937 ----
* limiting, or WITH. (XXX WITH could possibly be allowed later)
*/
if (subquery->hasAggs ||
+ subquery->hasWindow ||
subquery->groupClause ||
subquery->havingQual ||
subquery->sortClause ||
*** a/src/backend/optimizer/util/clauses.c
--- b/src/backend/optimizer/util/clauses.c
***************
*** 49,54 ****
--- 49,60 ----
typedef struct
{
+ Node *node;
+ int prefer;
+ } find_wfunc_context;
+
+ typedef struct
+ {
ParamListInfo boundParams;
PlannerGlobal *glob;
List *active_fns;
***************
*** 72,77 **** typedef struct
--- 78,85 ----
static bool contain_agg_clause_walker(Node *node, void *context);
static bool count_agg_clauses_walker(Node *node, AggClauseCounts *counts);
+ static Node *find_wfunc_inner(Node *node, int prefer);
+ static bool find_wfunc_walker(Node *node, find_wfunc_context *context);
static bool expression_returns_set_rows_walker(Node *node, double *count);
static bool contain_subplans_walker(Node *node, void *context);
static bool contain_mutable_functions_walker(Node *node, void *context);
***************
*** 517,522 **** count_agg_clauses_walker(Node *node, AggClauseCounts *counts)
--- 525,615 ----
/*****************************************************************************
+ * Window-function clause manipulation
+ *****************************************************************************/
+
+ /*
+ * Since a target entry may contain more than one window function,
+ * caller can specify which window function is demanded.
+ */
+ Node *
+ find_wfunc_greater(Node *node)
+ {
+ return find_wfunc_inner(node, 1);
+ }
+
+ Node *
+ find_wfunc_lesser(Node *node)
+ {
+ return find_wfunc_inner(node, -1);
+ }
+
+ Node *
+ find_wfunc(Node *node)
+ {
+ return find_wfunc_inner(node, 0);
+ }
+
+ /*
+ * find_wfunc -
+ * find window function node in the given TargetEntry.
+ * parameter prefer means caller prefers greater winref in > 0 and
+ * lesser winref in < 0. prefer 0 means no care.
+ */
+ static Node *
+ find_wfunc_inner(Node *node, int prefer)
+ {
+ find_wfunc_context context;
+
+ context.node = NULL;
+ context.prefer = prefer;
+ find_wfunc_walker(node, &context);
+
+ return context.node;
+ }
+
+ /*
+ * find_wfunc_walker -
+ */
+ static bool
+ find_wfunc_walker(Node *node, find_wfunc_context *context)
+ {
+ if (node == NULL)
+ return false;
+
+ if (IsA(node, WindowFunc))
+ {
+ if (context->node)
+ {
+ if (context->prefer > 0)
+ {
+ if (((WindowFunc *) context->node)->winref <
+ ((WindowFunc *) node)->winref)
+ context->node = node;
+ }
+ else
+ {
+ /* context->node != NULL && context->prefer == 0 doesn't make sense */
+ if (((WindowFunc *) context->node)->winref >
+ ((WindowFunc *) node)->winref)
+ context->node = node;
+ }
+ }
+ else
+ context->node = node;
+
+ /*
+ * no prefer, which means no need to search others.
+ * let's return the first found node.
+ */
+ if (context->prefer == 0)
+ return true;
+ }
+
+ return expression_tree_walker(node, find_wfunc_walker, (void *) context);
+ }
+
+ /*****************************************************************************
* Support for expressions returning sets
*****************************************************************************/
***************
*** 780,785 **** contain_volatile_functions_walker(Node *node, void *context)
--- 873,886 ----
return true;
/* else fall through to check args */
}
+ else if (IsA(node, WindowFunc))
+ {
+ WindowFunc *winagg = (WindowFunc *) node;
+
+ if (func_volatile(winagg->winfnoid) == PROVOLATILE_VOLATILE)
+ return true;
+ /* else fall through to check args */
+ }
else if (IsA(node, OpExpr))
{
OpExpr *expr = (OpExpr *) node;
*** a/src/backend/parser/analyze.c
--- b/src/backend/parser/analyze.c
***************
*** 779,784 **** transformSelectStmt(ParseState *pstate, SelectStmt *stmt)
--- 779,793 ----
qry->hasDistinctOn = true;
}
+ /*
+ * The order of window definitions is important; Named window clauses
+ * shall be transformed first, so that function can refer to them.
+ */
+ pstate->p_windef_list = list_concat(stmt->windowClause, pstate->p_windef_list);
+ qry->windowList = transformWindowDef(pstate,
+ pstate->p_windef_list,
+ &qry->targetList);
+
/* transform LIMIT */
qry->limitOffset = transformLimitClause(pstate, stmt->limitOffset,
"OFFSET");
***************
*** 798,806 **** transformSelectStmt(ParseState *pstate, SelectStmt *stmt)
--- 807,819 ----
qry->hasSubLinks = pstate->p_hasSubLinks;
qry->hasAggs = pstate->p_hasAggs;
+ qry->hasWindow = pstate->p_hasWindow;
if (pstate->p_hasAggs || qry->groupClause || qry->havingQual)
parseCheckAggregates(pstate, qry);
+ if (pstate->p_hasWindow)
+ parseCheckWindow(pstate, qry);
+
foreach(l, stmt->lockingClause)
{
transformLockingClause(pstate, qry, (LockingClause *) lfirst(l));
***************
*** 1564,1571 **** transformUpdateStmt(ParseState *pstate, UpdateStmt *stmt)
qry->hasSubLinks = pstate->p_hasSubLinks;
/*
! * Top-level aggregates are simply disallowed in UPDATE, per spec. (From
! * an implementation point of view, this is forced because the implicit
* ctid reference would otherwise be an ungrouped variable.)
*/
if (pstate->p_hasAggs)
--- 1577,1584 ----
qry->hasSubLinks = pstate->p_hasSubLinks;
/*
! * Top-level aggregates and window are simply disallowed in UPDATE, per spec.
! * (From an implementation point of view, this is forced because the implicit
* ctid reference would otherwise be an ungrouped variable.)
*/
if (pstate->p_hasAggs)
***************
*** 1575,1580 **** transformUpdateStmt(ParseState *pstate, UpdateStmt *stmt)
--- 1588,1598 ----
parser_errposition(pstate,
locate_agg_of_level((Node *) qry, 0))));
+ if (pstate->p_hasWindow)
+ ereport(ERROR,
+ (errcode(ERRCODE_WINDOWING_ERROR),
+ errmsg("cannot use window function in UPDATE")));
+
/*
* Now we are done with SELECT-like processing, and can get on with
* transforming the target list to match the UPDATE target columns.
***************
*** 1674,1679 **** transformReturningList(ParseState *pstate, List *returningList)
--- 1692,1703 ----
parser_errposition(pstate,
locate_agg_of_level((Node *) rlist, 0))));
+ /* window functions not allowed in returning clause */
+ if (pstate->p_hasWindow)
+ ereport(ERROR,
+ (errcode(ERRCODE_WINDOWING_ERROR),
+ errmsg("cannot use window function in RETURNING")));
+
/* no new relation references please */
if (list_length(pstate->p_rtable) != length_rtable)
{
*** a/src/backend/parser/gram.y
--- b/src/backend/parser/gram.y
***************
*** 387,392 **** static TypeName *TableFuncTypeName(List *columns);
--- 387,397 ----
%type with_clause
%type cte_list
+ %type partition_clause opt_partition_clause window_clause window_definition_list
+ %type window_definition window_specification over_clause
+ /* since these are not implemented, types may be unmatched actually. */
+ %type opt_frame_clause frame_clause frame_extent
+ %type frame_bound_const frame_bound opt_frame_exclusion
/*
* If you make any token changes, update the keyword table in
***************
*** 416,425 **** static TypeName *TableFuncTypeName(List *columns);
DEFERRABLE DEFERRED DEFINER DELETE_P DELIMITER DELIMITERS DESC
DICTIONARY DISABLE_P DISCARD DISTINCT DO DOCUMENT_P DOMAIN_P DOUBLE_P DROP
! EACH ELSE ENABLE_P ENCODING ENCRYPTED END_P ENUM_P ESCAPE EXCEPT EXCLUDING
! EXCLUSIVE EXECUTE EXISTS EXPLAIN EXTERNAL EXTRACT
! FALSE_P FAMILY FETCH FIRST_P FLOAT_P FOR FORCE FOREIGN FORWARD
FREEZE FROM FULL FUNCTION
GLOBAL GRANT GRANTED GREATEST GROUP_P
--- 421,430 ----
DEFERRABLE DEFERRED DEFINER DELETE_P DELIMITER DELIMITERS DESC
DICTIONARY DISABLE_P DISCARD DISTINCT DO DOCUMENT_P DOMAIN_P DOUBLE_P DROP
! EACH ELSE ENABLE_P ENCODING ENCRYPTED END_P ENUM_P ESCAPE EXCEPT EXCLUDE
! EXCLUDING EXCLUSIVE EXECUTE EXISTS EXPLAIN EXTERNAL EXTRACT
! FALSE_P FAMILY FETCH FIRST_P FLOAT_P FOLLOWING FOR FORCE FOREIGN FORWARD
FREEZE FROM FULL FUNCTION
GLOBAL GRANT GRANTED GREATEST GROUP_P
***************
*** 446,460 **** static TypeName *TableFuncTypeName(List *columns);
NOT NOTHING NOTIFY NOTNULL NOWAIT NULL_P NULLIF NULLS_P NUMERIC
OBJECT_P OF OFF OFFSET OIDS OLD ON ONLY OPERATOR OPTION OR
! ORDER OUT_P OUTER_P OVERLAPS OVERLAY OWNED OWNER
! PARSER PARTIAL PASSWORD PLACING PLANS POSITION
! PRECISION PRESERVE PREPARE PREPARED PRIMARY
PRIOR PRIVILEGES PROCEDURAL PROCEDURE
QUOTE
! READ REAL REASSIGN RECHECK RECURSIVE REFERENCES REINDEX RELATIVE_P RELEASE
RENAME REPEATABLE REPLACE REPLICA RESET RESTART RESTRICT RETURNING RETURNS
REVOKE RIGHT ROLE ROLLBACK ROW ROWS RULE
--- 451,465 ----
NOT NOTHING NOTIFY NOTNULL NOWAIT NULL_P NULLIF NULLS_P NUMERIC
OBJECT_P OF OFF OFFSET OIDS OLD ON ONLY OPERATOR OPTION OR
! ORDER OTHERS OUT_P OUTER_P OVER OVERLAPS OVERLAY OWNED OWNER
! PARSER PARTIAL PARTITION PASSWORD PLACING PLANS POSITION
! PRECEDING PRECISION PRESERVE PREPARE PREPARED PRIMARY
PRIOR PRIVILEGES PROCEDURAL PROCEDURE
QUOTE
! RANGE READ REAL REASSIGN RECHECK RECURSIVE REFERENCES REINDEX RELATIVE_P RELEASE
RENAME REPEATABLE REPLACE REPLICA RESET RESTART RESTRICT RETURNING RETURNS
REVOKE RIGHT ROLE ROLLBACK ROW ROWS RULE
***************
*** 464,480 **** static TypeName *TableFuncTypeName(List *columns);
STATISTICS STDIN STDOUT STORAGE STRICT_P STRIP_P SUBSTRING SUPERUSER_P
SYMMETRIC SYSID SYSTEM_P
! TABLE TABLESPACE TEMP TEMPLATE TEMPORARY TEXT_P THEN TIME TIMESTAMP
TO TRAILING TRANSACTION TREAT TRIGGER TRIM TRUE_P
TRUNCATE TRUSTED TYPE_P
! UNCOMMITTED UNENCRYPTED UNION UNIQUE UNKNOWN UNLISTEN UNTIL
UPDATE USER USING
VACUUM VALID VALIDATOR VALUE_P VALUES VARCHAR VARIADIC VARYING
VERBOSE VERSION_P VIEW VOLATILE
! WHEN WHERE WHITESPACE_P WITH WITHOUT WORK WRITE
XML_P XMLATTRIBUTES XMLCONCAT XMLELEMENT XMLFOREST XMLPARSE
XMLPI XMLROOT XMLSERIALIZE
--- 469,485 ----
STATISTICS STDIN STDOUT STORAGE STRICT_P STRIP_P SUBSTRING SUPERUSER_P
SYMMETRIC SYSID SYSTEM_P
! TABLE TABLESPACE TEMP TEMPLATE TEMPORARY TEXT_P THEN TIES TIME TIMESTAMP
TO TRAILING TRANSACTION TREAT TRIGGER TRIM TRUE_P
TRUNCATE TRUSTED TYPE_P
! UNBOUNDED UNCOMMITTED UNENCRYPTED UNION UNIQUE UNKNOWN UNLISTEN UNTIL
UPDATE USER USING
VACUUM VALID VALIDATOR VALUE_P VALUES VARCHAR VARIADIC VARYING
VERBOSE VERSION_P VIEW VOLATILE
! WHEN WHERE WHITESPACE_P WINDOW WITH WITHOUT WORK WRITE
XML_P XMLATTRIBUTES XMLCONCAT XMLELEMENT XMLFOREST XMLPARSE
XMLPI XMLROOT XMLSERIALIZE
***************
*** 508,514 **** static TypeName *TableFuncTypeName(List *columns);
%nonassoc BETWEEN
%nonassoc IN_P
%left POSTFIXOP /* dummy for postfix Op rules */
! %nonassoc IDENT /* to support target_el without AS */
%left Op OPERATOR /* multi-character ops and user-defined operators */
%nonassoc NOTNULL
%nonassoc ISNULL
--- 513,523 ----
%nonassoc BETWEEN
%nonassoc IN_P
%left POSTFIXOP /* dummy for postfix Op rules */
! /*
! * - to support target_el without AS (IDENT)
! * - to support frame_clause starting ROWS/RANGE
! */
! %nonassoc IDENT ROWS RANGE
%left Op OPERATOR /* multi-character ops and user-defined operators */
%nonassoc NOTNULL
%nonassoc ISNULL
***************
*** 6463,6469 **** select_clause:
simple_select:
SELECT opt_distinct target_list
into_clause from_clause where_clause
! group_clause having_clause
{
SelectStmt *n = makeNode(SelectStmt);
n->distinctClause = $2;
--- 6472,6478 ----
simple_select:
SELECT opt_distinct target_list
into_clause from_clause where_clause
! group_clause having_clause window_clause
{
SelectStmt *n = makeNode(SelectStmt);
n->distinctClause = $2;
***************
*** 6473,6478 **** simple_select:
--- 6482,6488 ----
n->whereClause = $6;
n->groupClause = $7;
n->havingClause = $8;
+ n->windowClause = $9;
$$ = (Node *)n;
}
| values_clause { $$ = $1; }
***************
*** 8260,8266 **** c_expr: columnref { $$ = $1; }
* (Note that many of the special SQL functions wouldn't actually make any
* sense as functional index entries, but we ignore that consideration here.)
*/
! func_expr: func_name '(' ')'
{
FuncCall *n = makeNode(FuncCall);
n->funcname = $1;
--- 8270,8276 ----
* (Note that many of the special SQL functions wouldn't actually make any
* sense as functional index entries, but we ignore that consideration here.)
*/
! func_expr: func_name '(' ')' over_clause
{
FuncCall *n = makeNode(FuncCall);
n->funcname = $1;
***************
*** 8268,8277 **** func_expr: func_name '(' ')'
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->location = @1;
$$ = (Node *)n;
}
! | func_name '(' expr_list ')'
{
FuncCall *n = makeNode(FuncCall);
n->funcname = $1;
--- 8278,8288 ----
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
+ n->win_definition = (WindowDef *) $4;
n->location = @1;
$$ = (Node *)n;
}
! | func_name '(' expr_list ')' over_clause
{
FuncCall *n = makeNode(FuncCall);
n->funcname = $1;
***************
*** 8279,8288 **** func_expr: func_name '(' ')'
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->location = @1;
$$ = (Node *)n;
}
! | func_name '(' VARIADIC a_expr ')'
{
FuncCall *n = makeNode(FuncCall);
n->funcname = $1;
--- 8290,8300 ----
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
+ n->win_definition = (WindowDef *) $5;
n->location = @1;
$$ = (Node *)n;
}
! | func_name '(' VARIADIC a_expr ')' /* intentionally not accept over_clause */
{
FuncCall *n = makeNode(FuncCall);
n->funcname = $1;
***************
*** 8290,8299 **** func_expr: func_name '(' ')'
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = TRUE;
n->location = @1;
$$ = (Node *)n;
}
! | func_name '(' expr_list ',' VARIADIC a_expr ')'
{
FuncCall *n = makeNode(FuncCall);
n->funcname = $1;
--- 8302,8312 ----
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = TRUE;
+ n->win_definition = NULL;
n->location = @1;
$$ = (Node *)n;
}
! | func_name '(' expr_list ',' VARIADIC a_expr ')' /* intentionally not accept over_clause */
{
FuncCall *n = makeNode(FuncCall);
n->funcname = $1;
***************
*** 8301,8310 **** func_expr: func_name '(' ')'
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = TRUE;
n->location = @1;
$$ = (Node *)n;
}
! | func_name '(' ALL expr_list ')'
{
FuncCall *n = makeNode(FuncCall);
n->funcname = $1;
--- 8314,8324 ----
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = TRUE;
+ n->win_definition = NULL;
n->location = @1;
$$ = (Node *)n;
}
! | func_name '(' ALL expr_list ')' /* intentionally not accept over_clause */
{
FuncCall *n = makeNode(FuncCall);
n->funcname = $1;
***************
*** 8316,8325 **** func_expr: func_name '(' ')'
* for that in FuncCall at the moment.
*/
n->func_variadic = FALSE;
n->location = @1;
$$ = (Node *)n;
}
! | func_name '(' DISTINCT expr_list ')'
{
FuncCall *n = makeNode(FuncCall);
n->funcname = $1;
--- 8330,8340 ----
* for that in FuncCall at the moment.
*/
n->func_variadic = FALSE;
+ n->win_definition = NULL;
n->location = @1;
$$ = (Node *)n;
}
! | func_name '(' DISTINCT expr_list ')' /* intentionally not accept over_clause */
{
FuncCall *n = makeNode(FuncCall);
n->funcname = $1;
***************
*** 8327,8336 **** func_expr: func_name '(' ')'
n->agg_star = FALSE;
n->agg_distinct = TRUE;
n->func_variadic = FALSE;
n->location = @1;
$$ = (Node *)n;
}
! | func_name '(' '*' ')'
{
/*
* We consider AGGREGATE(*) to invoke a parameterless
--- 8342,8352 ----
n->agg_star = FALSE;
n->agg_distinct = TRUE;
n->func_variadic = FALSE;
+ n->win_definition = NULL;
n->location = @1;
$$ = (Node *)n;
}
! | func_name '(' '*' ')' over_clause
{
/*
* We consider AGGREGATE(*) to invoke a parameterless
***************
*** 8348,8353 **** func_expr: func_name '(' ')'
--- 8364,8370 ----
n->agg_star = TRUE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
+ n->win_definition = (WindowDef *) $5;
n->location = @1;
$$ = (Node *)n;
}
***************
*** 8795,8800 **** xml_whitespace_option: PRESERVE WHITESPACE_P { $$ = TRUE; }
--- 8812,8966 ----
;
/*
+ * Window Definitions
+ *
+ * In SQL2003 window may appear after a function call or after HAVING, with the same syntax.
+ * If there is window syntax after HAVING, some of the windows can refer to it.
+ */
+ over_clause: OVER window_specification { $$ = $2; }
+ | OVER IDENT
+ {
+ WindowDef *n = makeNode(WindowDef);
+ n->partitionClause = NIL;
+ n->orderClause = NIL;
+ n->wfunc = NULL;
+ n->name = pstrdup($2);
+ n->location = @1;
+ $$ = (Node *) n;
+ }
+ | /*EMPTY*/ { $$ = NULL; }
+ ;
+ window_specification: '(' opt_partition_clause opt_sort_clause opt_frame_clause')'
+ {
+ WindowDef *n = makeNode(WindowDef);
+ n->partitionClause = $2;
+ n->orderClause = $3;
+ n->wfunc = NULL;
+ n->name = NULL;
+ n->location = @1;
+ $$ = (Node *) n;
+ }
+ ;
+
+ opt_partition_clause:
+ partition_clause { $$ = $1; }
+ | /*EMPTY*/ { $$ = NIL; }
+ ;
+ partition_clause: PARTITION BY expr_list
+ {
+ $$ = $3;
+ }
+ ;
+
+ /* Frame clause is not supported but we must recognize its grammar to report errors */
+ opt_frame_clause:
+ frame_clause
+ {
+ /* Frame clause should be called "FRAME clause" or "ROWS/RANGE clause"? */
+ ereport(ERROR,
+ (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+ errmsg("ROWS/RANGE clause of window functions not yet implemented")));
+ }
+ | /*EMPTY*/ { $$ = NULL; }
+ ;
+ frame_clause:
+ ROWS frame_extent opt_frame_exclusion
+ {
+ $$ = NULL;
+ }
+ | RANGE frame_extent opt_frame_exclusion
+ {
+ $$ = NULL;
+ }
+ ;
+ /*
+ * frame_bound_const is redundant but needed instead of AexprConst, since
+ * AexprConst contains func_name which is sometimes BETWEEN
+ * and if so shift/reduce conflict occurs. But frame_bound doesn't
+ * need func_name.
+ */
+ frame_extent:
+ UNBOUNDED PRECEDING { $$ = NULL; }
+ | CURRENT_P ROW { $$ = NULL; }
+ | frame_bound_const PRECEDING { $$ = NULL; }
+ | BETWEEN frame_bound AND frame_bound { $$ = NULL; }
+ ;
+ frame_bound:
+ UNBOUNDED PRECEDING { $$ = NULL; }
+ | CURRENT_P ROW { $$ = NULL; }
+ | frame_bound_const PRECEDING { $$ = NULL; }
+ | UNBOUNDED FOLLOWING { $$ = NULL; }
+ | frame_bound_const FOLLOWING { $$ = NULL; }
+ ;
+ /*
+ * similar to AexprConst except func_name
+ */
+ frame_bound_const:
+ Iconst { $$ = makeIntConst($1, @1); }
+ | FCONST { $$ = makeFloatConst($1, @1); }
+ | Sconst { $$ = makeStringConst($1, @1); }
+ | BCONST { $$ = makeBitStringConst($1, @1); }
+ | XCONST { $$ = makeBitStringConst($1, @1); }
+ | ConstTypename Sconst { $$ = makeStringConstCast($2, @2, $1); }
+ | ConstInterval Sconst opt_interval
+ {
+ TypeName *t = $1;
+ t->typmods = $3;
+ $$ = makeStringConstCast($2, @2, t);
+ }
+ | ConstInterval '(' Iconst ')' Sconst opt_interval
+ {
+ TypeName *t = $1;
+ if ($6 != NIL)
+ {
+ if (list_length($6) != 1)
+ ereport(ERROR,
+ (errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("interval precision specified twice"),
+ scanner_errposition(@1)));
+ t->typmods = lappend($6, makeIntConst($3, @3));
+ }
+ else
+ t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
+ makeIntConst($3, @3));
+ $$ = makeStringConstCast($5, @5, t);
+ }
+ | TRUE_P { $$ = makeBoolAConst(TRUE, @1); }
+ | FALSE_P { $$ = makeBoolAConst(FALSE, @1); }
+ | NULL_P { $$ = makeNullAConst(@1); }
+ ;
+ opt_frame_exclusion:
+ EXCLUDE CURRENT_P ROW { $$ = NULL; }
+ | EXCLUDE GROUP_P { $$ = NULL; }
+ | EXCLUDE TIES { $$ = NULL; }
+ | EXCLUDE NO OTHERS { $$ = NULL; }
+ | /*EMPTY*/ { $$ = NULL; }
+ ;
+
+ window_clause:
+ WINDOW window_definition_list { $$ = $2; }
+ | /*EMPTY*/ { $$ = NIL; }
+ ;
+ window_definition_list:
+ window_definition
+ {
+ $$ = list_make1($1);
+ }
+ | window_definition_list ',' window_definition
+ {
+ $$ = lappend($1, $3);
+ }
+ ;
+ window_definition:
+ IDENT AS window_specification
+ {
+ WindowDef *n = (WindowDef *) $3;
+ n->name = pstrdup($1);
+ $$ = (Node *) n;
+ }
+ ;
+
+ /*
* Supporting nonterminals for expressions.
*/
***************
*** 9521,9526 **** unreserved_keyword:
--- 9687,9693 ----
| ENCRYPTED
| ENUM_P
| ESCAPE
+ | EXCLUDE
| EXCLUDING
| EXCLUSIVE
| EXECUTE
***************
*** 9528,9533 **** unreserved_keyword:
--- 9695,9701 ----
| EXTERNAL
| FAMILY
| FIRST_P
+ | FOLLOWING
| FORCE
| FORWARD
| FUNCTION
***************
*** 9593,9604 **** unreserved_keyword:
--- 9761,9775 ----
| OIDS
| OPERATOR
| OPTION
+ | OTHERS
| OWNED
| OWNER
| PARSER
| PARTIAL
| PASSWORD
| PLANS
+ | PARTITION
+ | PRECEDING
| PREPARE
| PREPARED
| PRESERVE
***************
*** 9607,9612 **** unreserved_keyword:
--- 9778,9784 ----
| PROCEDURAL
| PROCEDURE
| QUOTE
+ | RANGE
| READ
| REASSIGN
| RECHECK
***************
*** 9658,9668 **** unreserved_keyword:
--- 9830,9842 ----
| TEMPLATE
| TEMPORARY
| TEXT_P
+ | TIES
| TRANSACTION
| TRIGGER
| TRUNCATE
| TRUSTED
| TYPE_P
+ | UNBOUNDED
| UNCOMMITTED
| UNENCRYPTED
| UNKNOWN
***************
*** 9843,9848 **** reserved_keyword:
--- 10017,10023 ----
| ONLY
| OR
| ORDER
+ | OVER
| PLACING
| PRIMARY
| REFERENCES
***************
*** 9863,9868 **** reserved_keyword:
--- 10038,10044 ----
| VARIADIC
| WHEN
| WHERE
+ | WINDOW
| WITH
;
*** a/src/backend/parser/keywords.c
--- b/src/backend/parser/keywords.c
***************
*** 160,165 **** const ScanKeyword ScanKeywords[] = {
--- 160,166 ----
{"enum", ENUM_P, UNRESERVED_KEYWORD},
{"escape", ESCAPE, UNRESERVED_KEYWORD},
{"except", EXCEPT, RESERVED_KEYWORD},
+ {"exclude", EXCLUDE, UNRESERVED_KEYWORD},
{"excluding", EXCLUDING, UNRESERVED_KEYWORD},
{"exclusive", EXCLUSIVE, UNRESERVED_KEYWORD},
{"execute", EXECUTE, UNRESERVED_KEYWORD},
***************
*** 172,177 **** const ScanKeyword ScanKeywords[] = {
--- 173,179 ----
{"fetch", FETCH, RESERVED_KEYWORD},
{"first", FIRST_P, UNRESERVED_KEYWORD},
{"float", FLOAT_P, COL_NAME_KEYWORD},
+ {"following", FOLLOWING, UNRESERVED_KEYWORD},
{"for", FOR, RESERVED_KEYWORD},
{"force", FORCE, UNRESERVED_KEYWORD},
{"foreign", FOREIGN, RESERVED_KEYWORD},
***************
*** 283,300 **** const ScanKeyword ScanKeywords[] = {
--- 285,306 ----
{"option", OPTION, UNRESERVED_KEYWORD},
{"or", OR, RESERVED_KEYWORD},
{"order", ORDER, RESERVED_KEYWORD},
+ {"others", OTHERS, UNRESERVED_KEYWORD},
{"out", OUT_P, COL_NAME_KEYWORD},
{"outer", OUTER_P, TYPE_FUNC_NAME_KEYWORD},
+ {"over", OVER, RESERVED_KEYWORD},
{"overlaps", OVERLAPS, TYPE_FUNC_NAME_KEYWORD},
{"overlay", OVERLAY, COL_NAME_KEYWORD},
{"owned", OWNED, UNRESERVED_KEYWORD},
{"owner", OWNER, UNRESERVED_KEYWORD},
{"parser", PARSER, UNRESERVED_KEYWORD},
{"partial", PARTIAL, UNRESERVED_KEYWORD},
+ {"partition", PARTITION, UNRESERVED_KEYWORD},
{"password", PASSWORD, UNRESERVED_KEYWORD},
{"placing", PLACING, RESERVED_KEYWORD},
{"plans", PLANS, UNRESERVED_KEYWORD},
{"position", POSITION, COL_NAME_KEYWORD},
+ {"preceding", PRECEDING, UNRESERVED_KEYWORD},
{"precision", PRECISION, COL_NAME_KEYWORD},
{"prepare", PREPARE, UNRESERVED_KEYWORD},
{"prepared", PREPARED, UNRESERVED_KEYWORD},
***************
*** 305,310 **** const ScanKeyword ScanKeywords[] = {
--- 311,317 ----
{"procedural", PROCEDURAL, UNRESERVED_KEYWORD},
{"procedure", PROCEDURE, UNRESERVED_KEYWORD},
{"quote", QUOTE, UNRESERVED_KEYWORD},
+ {"range", RANGE, UNRESERVED_KEYWORD},
{"read", READ, UNRESERVED_KEYWORD},
{"real", REAL, COL_NAME_KEYWORD},
{"reassign", REASSIGN, UNRESERVED_KEYWORD},
***************
*** 371,376 **** const ScanKeyword ScanKeywords[] = {
--- 378,384 ----
{"temporary", TEMPORARY, UNRESERVED_KEYWORD},
{"text", TEXT_P, UNRESERVED_KEYWORD},
{"then", THEN, RESERVED_KEYWORD},
+ {"ties", TIES, UNRESERVED_KEYWORD},
{"time", TIME, COL_NAME_KEYWORD},
{"timestamp", TIMESTAMP, COL_NAME_KEYWORD},
{"to", TO, RESERVED_KEYWORD},
***************
*** 383,388 **** const ScanKeyword ScanKeywords[] = {
--- 391,397 ----
{"truncate", TRUNCATE, UNRESERVED_KEYWORD},
{"trusted", TRUSTED, UNRESERVED_KEYWORD},
{"type", TYPE_P, UNRESERVED_KEYWORD},
+ {"unbounded", UNBOUNDED, UNRESERVED_KEYWORD},
{"uncommitted", UNCOMMITTED, UNRESERVED_KEYWORD},
{"unencrypted", UNENCRYPTED, UNRESERVED_KEYWORD},
{"union", UNION, RESERVED_KEYWORD},
***************
*** 408,413 **** const ScanKeyword ScanKeywords[] = {
--- 417,423 ----
{"when", WHEN, RESERVED_KEYWORD},
{"where", WHERE, RESERVED_KEYWORD},
{"whitespace", WHITESPACE_P, UNRESERVED_KEYWORD},
+ {"window", WINDOW, RESERVED_KEYWORD},
{"with", WITH, RESERVED_KEYWORD},
{"without", WITHOUT, UNRESERVED_KEYWORD},
{"work", WORK, UNRESERVED_KEYWORD},
*** a/src/backend/parser/parse_agg.c
--- b/src/backend/parser/parse_agg.c
***************
*** 1,7 ****
/*-------------------------------------------------------------------------
*
* parse_agg.c
! * handle aggregates in parser
*
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
--- 1,7 ----
/*-------------------------------------------------------------------------
*
* parse_agg.c
! * handle aggregates and window functions in parser
*
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
***************
*** 73,78 **** transformAggregateCall(ParseState *pstate, Aggref *agg)
--- 73,84 ----
errmsg("aggregate function calls cannot be nested"),
parser_errposition(pstate,
locate_agg_of_level((Node *) agg->args, 0))));
+ if (checkExprHasWindowFuncs((Node *) agg->args))
+ ereport(ERROR,
+ (errcode(ERRCODE_GROUPING_ERROR),
+ errmsg("aggregate function calls cannot take window functions as arguments"),
+ parser_errposition(pstate,
+ locate_agg_of_level((Node *) agg->args, 0))));
}
if (min_varlevel < 0)
***************
*** 85,90 **** transformAggregateCall(ParseState *pstate, Aggref *agg)
--- 91,130 ----
pstate->p_hasAggs = true;
}
+ /*
+ * transformWindowCall -
+ *
+ */
+ void
+ transformWindowCall(ParseState *pstate, WindowFunc *wfunc)
+ {
+ int min_varlevel;
+
+ /*
+ * The aggregate's level is the same as the level of the lowest-level
+ * variable or aggregate in its arguments; or if it contains no variables
+ * at all, we presume it to be local.
+ */
+ min_varlevel = find_minimum_var_level((Node *) wfunc->args);
+
+ /*
+ * An aggregate can't directly contain another aggregate call of the same
+ * level (though outer aggs are okay). We can skip this check if we
+ * didn't find any local vars or aggs.
+ */
+ if (min_varlevel == 0)
+ {
+ if (checkExprHasWindowFuncs((Node *) wfunc->args))
+ ereport(ERROR,
+ (errcode(ERRCODE_WINDOWING_ERROR),
+ errmsg("window function calls cannot be nested")));
+ }
+
+ if (min_varlevel < 0)
+ min_varlevel = 0;
+ wfunc->winlevelsup = min_varlevel;
+ pstate->p_hasWindow = true;
+ }
/*
* parseCheckAggregates
***************
*** 231,236 **** parseCheckAggregates(ParseState *pstate, Query *qry)
--- 271,311 ----
locate_agg_of_level((Node *) qry, 0))));
}
+ /*
+ * Window functions must not be in either WHERE, HAVING, or GRUP BY clauses.
+ */
+ void
+ parseCheckWindow(ParseState *pstate, Query *qry)
+ {
+ ListCell *l;
+
+ if (checkExprHasWindowFuncs(qry->jointree->quals))
+ ereport(ERROR,
+ (errcode(ERRCODE_WINDOWING_ERROR),
+ errmsg("window functions not allowed in WHERE clause")));
+ if (checkExprHasWindowFuncs((Node *) qry->jointree->fromlist))
+ ereport(ERROR,
+ (errcode(ERRCODE_WINDOWING_ERROR),
+ errmsg("window functions not allowed in JOIN conditions")));
+ if (checkExprHasWindowFuncs(qry->havingQual))
+ ereport(ERROR,
+ (errcode(ERRCODE_WINDOWING_ERROR),
+ errmsg("window functions not allowed in HAVING clause")));
+
+ foreach(l, qry->groupClause)
+ {
+ SortGroupClause *grpcl = (SortGroupClause *) lfirst(l);
+ Node *expr;
+
+ expr = get_sortgroupclause_expr(grpcl, qry->targetList);
+ if (expr == NULL)
+ continue; /* probably cannot happen */
+ if (checkExprHasWindowFuncs(expr))
+ ereport(ERROR,
+ (errcode(ERRCODE_WINDOWING_ERROR),
+ errmsg("window functions not allowed in GROUP BY clause")));
+ }
+ }
/*
* check_ungrouped_columns -
*** a/src/backend/parser/parse_clause.c
--- b/src/backend/parser/parse_clause.c
***************
*** 40,47 ****
#define ORDER_CLAUSE 0
#define GROUP_CLAUSE 1
#define DISTINCT_ON_CLAUSE 2
! static char *clauseText[] = {"ORDER BY", "GROUP BY", "DISTINCT ON"};
static void extractRemainingColumns(List *common_colnames,
List *src_colnames, List *src_colvars,
--- 40,49 ----
#define ORDER_CLAUSE 0
#define GROUP_CLAUSE 1
#define DISTINCT_ON_CLAUSE 2
+ #define WINDOW_PARTITION_CLAUSE 3
+ #define WINDOW_ORDER_CLAUSE 4
! static char *clauseText[] = {"ORDER BY", "GROUP BY", "DISTINCT ON", "PARTITION BY", "ORDER BY"};
static void extractRemainingColumns(List *common_colnames,
List *src_colnames, List *src_colvars,
***************
*** 68,73 **** static Node *buildMergedJoinVar(ParseState *pstate, JoinType jointype,
--- 70,77 ----
Var *l_colvar, Var *r_colvar);
static TargetEntry *findTargetlistEntry(ParseState *pstate, Node *node,
List **tlist, int clause);
+ static WindowClause *findWindowClause(List *wclist, const char *name,
+ List *partitionClause, List *orderClause);
static int get_matching_location(int sortgroupref,
List *sortgrouprefs, List *exprs);
static List *addTargetToSortList(ParseState *pstate, TargetEntry *tle,
***************
*** 565,570 **** transformRangeFunction(ParseState *pstate, RangeFunction *r)
--- 569,582 ----
locate_agg_of_level(funcexpr, 0))));
}
+ if (pstate->p_hasWindow)
+ {
+ if (checkExprHasWindowFuncs(funcexpr))
+ ereport(ERROR,
+ (errcode(ERRCODE_WINDOWING_ERROR),
+ errmsg("cannot use window function in function expression in FROM")));
+ }
+
/*
* OK, build an RTE for the function.
*/
***************
*** 1301,1306 **** findTargetlistEntry(ParseState *pstate, Node *node, List **tlist, int clause)
--- 1313,1343 ----
clauseText[clause]),
parser_errposition(pstate, location)));
+ /*
+ * In ORDER BY clause of a window, simple integer means
+ * integer data, not target pos.
+ */
+ if (clause == WINDOW_ORDER_CLAUSE)
+ {
+ TargetEntry *tle;
+ Const *cons;
+ AttrNumber resno;
+
+ resno = list_length(*tlist) + 1;
+ cons = makeConst(INT4OID,
+ -1,
+ sizeof(int32),
+ Int32GetDatum(intVal(val)),
+ false,
+ true);
+ tle = makeTargetEntry((Expr *) cons,
+ resno,
+ NULL,
+ true);
+ *tlist = lappend(*tlist, tle);
+ return tle;
+ }
+
target_pos = intVal(val);
foreach(tl, *tlist)
{
***************
*** 1452,1457 **** transformSortClause(ParseState *pstate,
--- 1489,1714 ----
}
/*
+ * transformWindowOrderClause -
+ *
+ * OrderClause is a set of SortBys. Only tag type is different.
+ */
+ List *
+ transformWindowOrderClause(ParseState *pstate,
+ List *orderlist,
+ List **targetlist,
+ bool resolveUnknown)
+ {
+ List *result = NIL;
+ ListCell *l;
+ TargetEntry *tle;
+
+ foreach(l, orderlist)
+ {
+ SortBy *sortby = lfirst(l);
+
+ tle = findTargetlistEntry(pstate, sortby->node,
+ targetlist, WINDOW_ORDER_CLAUSE);
+ result = addTargetToSortList(pstate, tle,
+ result, *targetlist,
+ sortby, resolveUnknown);
+ }
+
+ return result;
+ }
+
+ /*
+ * transformWindowPartitionClause -
+ *
+ * Almost everything PartitionClause has is the same as GroupClause.
+ */
+ List *
+ transformWindowPartitionClause(ParseState *pstate,
+ List *partitionlist,
+ List **targetlist)
+ {
+ List *result = NIL;
+ ListCell *l;
+ TargetEntry *tle;
+
+ foreach(l, partitionlist)
+ {
+ Oid restype;
+ Oid sortop;
+ Oid eqop;
+ SortGroupClause *pc;
+
+ tle = findTargetlistEntry(pstate, lfirst(l), targetlist,
+ WINDOW_PARTITION_CLAUSE);
+
+ restype = exprType((Node *) tle->expr);
+
+ if (restype == UNKNOWNOID)
+ tle->expr = (Expr *) coerce_type(pstate, (Node *) tle->expr,
+ restype, TEXTOID, -1,
+ COERCION_IMPLICIT,
+ COERCE_IMPLICIT_CAST,
+ -1);
+ pc = makeNode(SortGroupClause);
+ pc->tleSortGroupRef = assignSortGroupRef(tle, *targetlist);
+ get_sort_group_operators(restype,
+ false, true, false,
+ &sortop, &eqop, NULL);
+ pc->eqop = eqop;
+ pc->sortop = sortop;
+ pc->nulls_first = false;
+ result = lappend(result, pc);
+ }
+
+ return result;
+ }
+
+ /*
+ * transformWindowDef -
+ *
+ * PARTITION BY and ORDER BY clauses are transformed and WindowFuncs are tied with
+ * WindowClause here. During this process, WindowClause that has not any window
+ * functions (this case would happen when using WINDOW clause) is removed.
+ * Note that there are two types of WindowDef. The ones with function call and
+ * others in the WINDOW clause. The former doesn't have wfunc whereas the latter
+ * has it.
+ */
+ List *
+ transformWindowDef(ParseState *pstate,
+ List *windefinition,
+ List **targetlist)
+ {
+ List *result = NIL, *window_clauses = NIL;
+ List *transfer_src = NIL, *transfer_dst = NIL;
+ ListCell *l;
+ Index winref = 1;
+
+ foreach(l, windefinition)
+ {
+ WindowDef *windef = (WindowDef *) lfirst(l);
+ List *partitionClause = NIL;
+ List *orderClause = NIL;
+ WindowClause *wc;
+
+ if (!windef->wfunc)
+ {
+ /*
+ * check if WINDOW clause has ambiguous window names.
+ */
+ if (findWindowClause(window_clauses, windef->name, NIL, NIL))
+ ereport(ERROR,
+ (errcode(ERRCODE_WINDOWING_ERROR),
+ errmsg("window name(%s) is ambiguous", windef->name)));
+ }
+
+ partitionClause = transformWindowPartitionClause(pstate,
+ windef->partitionClause,
+ targetlist);
+ orderClause = transformWindowOrderClause(pstate,
+ windef->orderClause,
+ targetlist,
+ true);
+
+ /*
+ * If there is the same node that has been in the list,
+ * refer to it.
+ */
+ wc = findWindowClause(window_clauses, windef->name, partitionClause, orderClause);
+ if (!wc)
+ {
+ if (windef->name && windef->wfunc)
+ {
+ ListCell *lsrc, *ldst;
+ WindowDef *src;
+ WindowClause *dst;
+
+ /*
+ * The window name attached with function could not find the predefined window.
+ * There is still chance that its name can refer another identical window.
+ */
+ forboth(lsrc, transfer_src, ldst, transfer_dst)
+ {
+ src = lfirst(lsrc);
+ dst = lfirst(ldst);
+ if (strcmp(windef->name, src->name) == 0)
+ {
+ wc = findWindowClause(window_clauses, dst->name, NIL, NIL);
+ if (wc)
+ break;
+ }
+ }
+
+ if (!wc)
+ {
+ /*
+ * Though OVER clause uses window name, there's
+ * no definition in WINDOW clause.
+ */
+ ereport(ERROR,
+ (errcode(ERRCODE_WRONG_OBJECT_TYPE),
+ errmsg("window name(%s) is not found in WINDOW clause",
+ windef->name)));
+ }
+ }
+ else
+ {
+ /*
+ * new window is created.
+ */
+ wc = makeNode(WindowClause);
+ wc->partitionClause = partitionClause;
+ wc->orderClause = orderClause;
+ wc->name = windef->name;
+ wc->has_wfunc = false;
+ wc->winref = winref++;
+
+ window_clauses = lappend(window_clauses, wc);
+ }
+ }
+ else if (!windef->wfunc)
+ {
+ /*
+ * different name windows are identical.
+ * so do not duplicate but be prepared so that
+ * functions can refer the transferred window later.
+ */
+ transfer_src = lappend(transfer_src, windef);
+ transfer_dst = lappend(transfer_dst, wc);
+ }
+
+ /*
+ * Tie the function with the appropriate window
+ */
+ if (windef->wfunc)
+ {
+ windef->wfunc->winref = wc->winref;
+ wc->has_wfunc = true;
+ /*
+ * we now recognize Window operation will be needed.
+ */
+ pstate->p_hasWindow = true;
+ }
+ }
+
+ /*
+ * filter those which isn't tied with any functions
+ */
+ foreach(l, window_clauses)
+ {
+ WindowClause *wc = (WindowClause *) lfirst(l);
+
+ if (wc->has_wfunc)
+ result = lappend(result, wc);
+ else
+ pfree(wc);
+ }
+
+ list_free(window_clauses);
+
+ return result;
+ }
+
+ /*
* transformDistinctClause -
* transform a DISTINCT clause
*
***************
*** 1919,1921 **** targetIsInSortList(TargetEntry *tle, Oid sortop, List *sortList)
--- 2176,2206 ----
}
return false;
}
+
+ /*
+ * find_window_clause -
+ *
+ * search for the WindowClause which has already been in the list.
+ * It is done by name or by the set of partition and order.
+ */
+ static WindowClause *
+ findWindowClause(List *wclist, const char *name, List *partitionClause, List *orderClause)
+ {
+ ListCell *l;
+
+ foreach(l, wclist)
+ {
+ WindowClause *wc = (WindowClause *) lfirst(l);
+ if (wc->name && name)
+ {
+ if (strcmp(wc->name, name) == 0)
+ return wc;
+ }
+
+ if (equal(wc->partitionClause, partitionClause) &&
+ equal(wc->orderClause, orderClause))
+ return wc;
+ }
+
+ return NULL;
+ }
*** a/src/backend/parser/parse_expr.c
--- b/src/backend/parser/parse_expr.c
***************
*** 361,367 **** transformIndirection(ParseState *pstate, Node *basenode, List *indirection)
list_make1(n),
list_make1(result),
false, false, false,
! true, -1);
}
}
/* process trailing subscripts, if any */
--- 361,367 ----
list_make1(n),
list_make1(result),
false, false, false,
! true, NULL, -1);
}
}
/* process trailing subscripts, if any */
***************
*** 505,511 **** transformColumnRef(ParseState *pstate, ColumnRef *cref)
list_make1(makeString(name2)),
list_make1(node),
false, false, false,
! true, cref->location);
}
break;
}
--- 505,511 ----
list_make1(makeString(name2)),
list_make1(node),
false, false, false,
! true, NULL, cref->location);
}
break;
}
***************
*** 546,552 **** transformColumnRef(ParseState *pstate, ColumnRef *cref)
list_make1(makeString(name3)),
list_make1(node),
false, false, false,
! true, cref->location);
}
break;
}
--- 546,552 ----
list_make1(makeString(name3)),
list_make1(node),
false, false, false,
! true, NULL, cref->location);
}
break;
}
***************
*** 601,607 **** transformColumnRef(ParseState *pstate, ColumnRef *cref)
list_make1(makeString(name4)),
list_make1(node),
false, false, false,
! true, cref->location);
}
break;
}
--- 601,607 ----
list_make1(makeString(name4)),
list_make1(node),
false, false, false,
! true, NULL, cref->location);
}
break;
}
***************
*** 1109,1114 **** transformFuncCall(ParseState *pstate, FuncCall *fn)
--- 1109,1115 ----
fn->agg_distinct,
fn->func_variadic,
false,
+ fn->win_definition,
fn->location);
}
*** a/src/backend/parser/parse_func.c
--- b/src/backend/parser/parse_func.c
***************
*** 63,69 **** static void unknown_attribute(ParseState *pstate, Node *relref, char *attname,
Node *
ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
bool agg_star, bool agg_distinct, bool func_variadic,
! bool is_column, int location)
{
Oid rettype;
Oid funcid;
--- 63,69 ----
Node *
ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
bool agg_star, bool agg_distinct, bool func_variadic,
! bool is_column, WindowDef *windef, int location)
{
Oid rettype;
Oid funcid;
***************
*** 76,81 **** ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
--- 76,83 ----
Node *retval;
bool retset;
int nvargs;
+ bool isagg;
+ bool iswfunc;
FuncDetailCode fdresult;
List *argdefaults;
***************
*** 165,170 **** ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
--- 167,173 ----
fdresult = func_get_detail(funcname, fargs, nargs, actual_arg_types,
!func_variadic,
&funcid, &rettype, &retset, &nvargs,
+ &isagg, &iswfunc,
&declared_arg_types, &argdefaults);
if (fdresult == FUNCDETAIL_COERCION)
{
***************
*** 196,202 **** ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
NameListToString(funcname)),
parser_errposition(pstate, location)));
}
! else if (fdresult != FUNCDETAIL_AGGREGATE)
{
/*
* Oops. Time to die.
--- 199,205 ----
NameListToString(funcname)),
parser_errposition(pstate, location)));
}
! else if (fdresult != FUNCDETAIL_AGG_OR_WFUNC)
{
/*
* Oops. Time to die.
***************
*** 307,346 **** ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
funcexpr->location = location;
retval = (Node *) funcexpr;
}
else
{
! /* aggregate function */
! Aggref *aggref = makeNode(Aggref);
! aggref->aggfnoid = funcid;
! aggref->aggtype = rettype;
! aggref->args = fargs;
! aggref->aggstar = agg_star;
! aggref->aggdistinct = agg_distinct;
! aggref->location = location;
! /*
! * Reject attempt to call a parameterless aggregate without (*)
! * syntax. This is mere pedantry but some folks insisted ...
! */
! if (fargs == NIL && !agg_star)
! ereport(ERROR,
! (errcode(ERRCODE_WRONG_OBJECT_TYPE),
! errmsg("%s(*) must be used to call a parameterless aggregate function",
! NameListToString(funcname)),
! parser_errposition(pstate, location)));
! /* parse_agg.c does additional aggregate-specific processing */
! transformAggregateCall(pstate, aggref);
! retval = (Node *) aggref;
! if (retset)
! ereport(ERROR,
! (errcode(ERRCODE_INVALID_FUNCTION_DEFINITION),
! errmsg("aggregates cannot return sets"),
! parser_errposition(pstate, location)));
}
return retval;
--- 310,419 ----
funcexpr->location = location;
retval = (Node *) funcexpr;
+
+ if (windef)
+ ereport(ERROR,
+ (errcode(ERRCODE_WRONG_OBJECT_TYPE),
+ errmsg("%s is not a window function nor an aggregate function",
+ NameListToString(funcname)),
+ parser_errposition(pstate, location)));
}
else
{
! Assert(fdresult == FUNCDETAIL_AGG_OR_WFUNC);
! if (isagg && !windef)
! {
! /* aggregate function */
! Aggref *aggref = makeNode(Aggref);
! aggref->aggfnoid = funcid;
! aggref->aggtype = rettype;
! aggref->args = fargs;
! aggref->aggstar = agg_star;
! aggref->aggdistinct = agg_distinct;
! aggref->location = location;
! /*
! * Reject attempt to call a parameterless aggregate without (*)
! * syntax. This is mere pedantry but some folks insisted ...
! */
! if (fargs == NIL && !agg_star)
! ereport(ERROR,
! (errcode(ERRCODE_WRONG_OBJECT_TYPE),
! errmsg("%s(*) must be used to call a parameterless aggregate function",
! NameListToString(funcname)),
! parser_errposition(pstate, location)));
!
! /* parse_agg.c does additional aggregate-specific processing */
! transformAggregateCall(pstate, aggref);
!
! retval = (Node *) aggref;
!
! if (retset)
! ereport(ERROR,
! (errcode(ERRCODE_INVALID_FUNCTION_DEFINITION),
! errmsg("aggregates cannot return sets"),
! parser_errposition(pstate, location)));
! }
! else
! {
! /* window function */
! WindowFunc *wfunc = makeNode(WindowFunc);
! /*
! * Window functions must be called with window definition.
! */
! if (!windef)
! ereport(ERROR,
! (errcode(ERRCODE_INVALID_FUNCTION_DEFINITION),
! errmsg("window function call need window definition"),
! parser_errposition(pstate, location)));
! /*
! * normal aggregate can be called as window function by
! * the special aggregate wrapper function. By using wrappepr,
! * the performance is dropped but result is same.
! */
! if (isagg && !iswfunc)
! wfunc->winagg = true;
! wfunc->winfnoid = funcid;
! wfunc->wintype = rettype;
! wfunc->args = fargs;
! wfunc->location = location;
! /*
! * agg_star is acceptable for aggregate functions
! * but distinct sould be rejected in parser though checked here again.
! */
! wfunc->winstar = agg_star;
! if (agg_distinct)
! ereport(ERROR,
! (errcode(ERRCODE_SYNTAX_ERROR),
! errmsg("windowing functions cannot accept DISTINCT argument.")));
! /*
! * Reject attempt to call a parameterless aggregate without (*)
! * syntax. This is mere pedantry but some folks insisted ...
! */
! if (wfunc->winagg && fargs == NIL && !agg_star)
! ereport(ERROR,
! (errcode(ERRCODE_WRONG_OBJECT_TYPE),
! errmsg("%s(*) must be used to call a parameterless aggregate function",
! NameListToString(funcname)),
! parser_errposition(pstate, location)));
!
! transformWindowCall(pstate, wfunc);
!
! retval = (Node *) wfunc;
!
! pstate->p_windef_list = lappend(pstate->p_windef_list, windef);
! windef->wfunc = wfunc;
!
! if (retset)
! ereport(ERROR,
! (errcode(ERRCODE_INVALID_FUNCTION_DEFINITION),
! errmsg("window functions cannot return sets"),
! parser_errposition(pstate, location)));
! }
}
return retval;
***************
*** 745,750 **** func_get_detail(List *funcname,
--- 818,825 ----
Oid *rettype, /* return value */
bool *retset, /* return value */
int *nvargs, /* return value */
+ bool *isagg, /* return value */
+ bool *iswfunc, /* return value */
Oid **true_typeids, /* return value */
List **argdefaults) /* return value */
{
***************
*** 899,905 **** 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 result;
}
--- 974,990 ----
pform = (Form_pg_proc) GETSTRUCT(ftup);
*rettype = pform->prorettype;
*retset = pform->proretset;
! *isagg = pform->proisagg;
! *iswfunc = pform->proiswfunc;
! /*
! * agg and wfunc are similar to each other
! * and overlaps as well. So we return agg_or_wfunc then
! * delegate to caller the detail process depending on which.
! */
! if (pform->proisagg || pform->proiswfunc)
! result = FUNCDETAIL_AGG_OR_WFUNC;
! else
! result = FUNCDETAIL_NORMAL;
ReleaseSysCache(ftup);
return result;
}
*** a/src/backend/rewrite/rewriteManip.c
--- b/src/backend/rewrite/rewriteManip.c
***************
*** 36,41 **** typedef struct
--- 36,43 ----
static bool contain_aggs_of_level_walker(Node *node,
contain_aggs_of_level_context *context);
+ static bool checkExprHasWindowFuncs_walker(Node *node,
+ contain_aggs_of_level_context *context);
static bool locate_agg_of_level_walker(Node *node,
locate_agg_of_level_context *context);
static bool checkExprHasSubLink_walker(Node *node, void *context);
***************
*** 110,115 **** contain_aggs_of_level_walker(Node *node,
--- 112,161 ----
(void *) context);
}
+ bool
+ checkExprHasWindowFuncs(Node *node)
+ {
+ contain_aggs_of_level_context context;
+
+ context.sublevels_up = 0;
+
+ /*
+ * Must be prepared to start with a Query or a bare expression tree; if
+ * it's a Query, we don't want to increment sublevels_up.
+ */
+ return query_or_expression_tree_walker(node,
+ checkExprHasWindowFuncs_walker,
+ (void *) &context,
+ 0);
+ }
+
+ static bool
+ checkExprHasWindowFuncs_walker(Node *node, contain_aggs_of_level_context *context)
+ {
+ if (node == NULL)
+ return false;
+ if (IsA(node, WindowFunc))
+ {
+ if (((WindowFunc *) node)->winlevelsup == context->sublevels_up)
+ return true; /* abort the tree traversal and return true */
+ /* else fall through to examine argument */
+ }
+ if (IsA(node, Query))
+ {
+ /* Recurse into subselects */
+ bool result;
+
+ context->sublevels_up++;
+ result = query_tree_walker((Query *) node,
+ checkExprHasWindowFuncs_walker,
+ (void *) context, 0);
+ context->sublevels_up--;
+ return result;
+ }
+ return expression_tree_walker(node, checkExprHasWindowFuncs_walker,
+ (void *) context);
+ }
+
/*
* locate_agg_of_level -
* Find the parse location of any aggregate of the specified query level.
*** a/src/backend/utils/adt/Makefile
--- b/src/backend/utils/adt/Makefile
***************
*** 29,35 **** OBJS = acl.o arrayfuncs.o array_userfuncs.o arrayutils.o bool.o \
tsginidx.o tsgistidx.o tsquery.o tsquery_cleanup.o tsquery_gist.o \
tsquery_op.o tsquery_rewrite.o tsquery_util.o tsrank.o \
tsvector.o tsvector_op.o tsvector_parser.o \
! txid.o uuid.o xml.o
like.o: like.c like_match.c
--- 29,35 ----
tsginidx.o tsgistidx.o tsquery.o tsquery_cleanup.o tsquery_gist.o \
tsquery_op.o tsquery_rewrite.o tsquery_util.o tsrank.o \
tsvector.o tsvector_op.o tsvector_parser.o \
! txid.o uuid.o wfunc.o xml.o
like.o: like.c like_match.c
*** a/src/backend/utils/adt/ruleutils.c
--- b/src/backend/utils/adt/ruleutils.c
***************
*** 184,189 **** static void get_oper_expr(OpExpr *expr, deparse_context *context);
--- 184,190 ----
static void get_func_expr(FuncExpr *expr, deparse_context *context,
bool showimplicit);
static void get_agg_expr(Aggref *aggref, deparse_context *context);
+ static void get_wfunc_expr(WindowFunc *wfunc, deparse_context *context);
static void get_coercion_expr(Node *arg, deparse_context *context,
Oid resulttype, int32 resulttypmod,
Node *parentNode);
***************
*** 4084,4089 **** get_rule_expr(Node *node, deparse_context *context,
--- 4085,4094 ----
get_agg_expr((Aggref *) node, context);
break;
+ case T_WindowFunc:
+ get_wfunc_expr((WindowFunc *) node, context);
+ break;
+
case T_ArrayRef:
{
ArrayRef *aref = (ArrayRef *) node;
***************
*** 5042,5047 **** get_agg_expr(Aggref *aggref, deparse_context *context)
--- 5047,5085 ----
appendStringInfoChar(buf, ')');
}
+ /*
+ * get_wfunc_expr - Parse back an WindowFunc node
+ */
+ static void
+ get_wfunc_expr(WindowFunc *wfunc, deparse_context *context)
+ {
+ StringInfo buf = context->buf;
+ Oid argtypes[FUNC_MAX_ARGS];
+ int nargs;
+ ListCell *l;
+
+ nargs = 0;
+ foreach(l, wfunc->args)
+ {
+ if (nargs >= FUNC_MAX_ARGS)
+ ereport(ERROR,
+ (errcode(ERRCODE_TOO_MANY_ARGUMENTS),
+ errmsg("too many arguments")));
+ argtypes[nargs] = exprType((Node *) lfirst(l));
+ nargs++;
+ }
+
+ appendStringInfo(buf, "%s(%s",
+ generate_function_name(wfunc->winfnoid,
+ nargs, argtypes, NULL), "");
+ /* winstar can be set only in zero-argument aggregates */
+ if (wfunc->winstar)
+ appendStringInfoChar(buf, '*');
+ else
+ get_rule_expr((Node *) wfunc->args, context, true);
+ appendStringInfoChar(buf, ')');
+ }
+
/* ----------
* get_coercion_expr
*
***************
*** 6053,6058 **** generate_function_name(Oid funcid, int nargs, Oid *argtypes,
--- 6091,6098 ----
Oid p_rettype;
bool p_retset;
int p_nvargs;
+ bool p_isagg;
+ bool p_iswfunc;
Oid *p_true_typeids;
proctup = SearchSysCache(PROCOID,
***************
*** 6072,6079 **** generate_function_name(Oid funcid, int nargs, Oid *argtypes,
p_result = func_get_detail(list_make1(makeString(proname)),
NIL, nargs, argtypes, false,
&p_funcid, &p_rettype,
! &p_retset, &p_nvargs, &p_true_typeids, NULL);
! if ((p_result == FUNCDETAIL_NORMAL || p_result == FUNCDETAIL_AGGREGATE) &&
p_funcid == funcid)
nspname = NULL;
else
--- 6112,6120 ----
p_result = func_get_detail(list_make1(makeString(proname)),
NIL, nargs, argtypes, false,
&p_funcid, &p_rettype,
! &p_retset, &p_nvargs,
! &p_isagg, &p_iswfunc, &p_true_typeids, NULL);
! if ((p_result == FUNCDETAIL_NORMAL || p_result == FUNCDETAIL_AGG_OR_WFUNC) &&
p_funcid == funcid)
nspname = NULL;
else
*** /dev/null
--- b/src/backend/utils/adt/wfunc.c
***************
*** 0 ****
--- 1,494 ----
+ /*-------------------------------------------------------------------------
+ *
+ * wfunc.c
+ * Builtin window functions defined in SQL spec.
+ *
+ * Portions Copyright (c) 2000-2008, PostgreSQL Global Development Group
+ *
+ *
+ * IDENTIFICATION
+ * $PostgreSQL$
+ *
+ *-------------------------------------------------------------------------
+ */
+
+ #include "postgres.h"
+ #include "executor/executor.h"
+ #include "executor/nodeWindow.h"
+ #include "utils/builtins.h"
+
+ static bool rank_up(FunctionCallInfo fcinfo);
+ static Datum leadlag_common(FunctionCallInfo fcinfo,
+ bool forward, bool fetchdefault, bool withoffset);
+
+ /*
+ * SQL spec window functions
+ */
+ Datum row_number(PG_FUNCTION_ARGS);
+ Datum rank(PG_FUNCTION_ARGS);
+ Datum dense_rank(PG_FUNCTION_ARGS);
+ Datum percent_rank(PG_FUNCTION_ARGS);
+ Datum cume_dist(PG_FUNCTION_ARGS);
+ Datum ntile(PG_FUNCTION_ARGS);
+ Datum lag(PG_FUNCTION_ARGS);
+ Datum lag_with_offset(PG_FUNCTION_ARGS);
+ Datum lag_with_offset_and_default(PG_FUNCTION_ARGS);
+ Datum lead(PG_FUNCTION_ARGS);
+ Datum lead_with_offset(PG_FUNCTION_ARGS);
+ Datum lead_with_offset_and_default(PG_FUNCTION_ARGS);
+ Datum first_value(PG_FUNCTION_ARGS);
+ Datum last_value(PG_FUNCTION_ARGS);
+ Datum nth_value(PG_FUNCTION_ARGS);
+
+
+ /*
+ * ranking process information
+ */
+ typedef struct rank_context
+ {
+ int64 rank; /* current rank */
+ } rank_context;
+
+ /*
+ * ntile process information
+ */
+ typedef struct
+ {
+ int32 ntile; /* current result */
+ int64 rows_per_bucket; /* row number of current bucket */
+ int64 boundary; /* how many rows should be in the bucket */
+ int64 remainder; /* (total rows) % (bucket num) */
+ } ntile_context;
+
+
+ /*
+ * allocate new user space for the bran new function call.
+ */
+ #define allocate_if_new(fcinfo, size) do{ \
+ if ((fcinfo)->flinfo->fn_extra == NULL) \
+ { \
+ MemoryContext __oldContext; \
+ __oldContext = MemoryContextSwitchTo((fcinfo)->flinfo->fn_mcxt); \
+ (fcinfo)->flinfo->fn_extra = palloc0(size); \
+ MemoryContextSwitchTo(__oldContext); \
+ } \
+ }while(0)
+
+ /*
+ * utility routine for *_rank functions.
+ */
+ static bool
+ rank_up(FunctionCallInfo fcinfo)
+ {
+ WindowObject winobj = PG_WINDOW_OBJECT();
+ rank_context *context;
+ bool up = false; /* should rank up? */
+
+ allocate_if_new(fcinfo, sizeof(rank_context));
+
+ context = (rank_context *) fcinfo->flinfo->fn_extra;
+
+ if (context->rank == 0)
+ {
+ /* first call */
+ context->rank = 1;
+ }
+ else
+ {
+ int64 curpos = WinRowCurrentPos(winobj);
+
+ /* tuples matching by ORDER BY clause */
+ if (!WinRowIsPeer(winobj, curpos - 1, curpos))
+ up = true;
+ }
+
+ return up;
+ }
+
+
+ /*
+ * row_number
+ * just increment up from 1 until current partition finishes.
+ */
+ Datum
+ row_number(PG_FUNCTION_ARGS)
+ {
+ WindowObject winobj = PG_WINDOW_OBJECT();
+
+ PG_RETURN_INT64(WinRowCurrentPos(winobj) + 1);
+ }
+
+
+ /*
+ * rank
+ * increment up if key tuple changes. The new rank number is as the current row number.
+ */
+ Datum
+ rank(PG_FUNCTION_ARGS)
+ {
+ WindowObject winobj = PG_WINDOW_OBJECT();
+ rank_context *context;
+ bool up;
+
+ up = rank_up(fcinfo);
+ context = (rank_context *) fcinfo->flinfo->fn_extra;
+ if (up)
+ {
+ context->rank = WinRowCurrentPos(winobj) + 1;
+ }
+
+ PG_RETURN_INT64(context->rank);
+ }
+
+ /*
+ * dense_rank
+ * increment up if key tuple changes. The new rank number is as added up 1.
+ */
+ Datum
+ dense_rank(PG_FUNCTION_ARGS)
+ {
+ rank_context *context;
+ bool up;
+
+ up = rank_up(fcinfo);
+ context = (rank_context *) fcinfo->flinfo->fn_extra;
+ if (up)
+ context->rank += 1;
+
+ PG_RETURN_INT64(context->rank);
+ }
+
+ /*
+ * percent_rank
+ * return fraction between 0 and 1 inclusive, which
+ * is described as (RK - 1) / (NR - 1), where RK is the rank and NR is
+ * the number of total row, per spec.
+ */
+ Datum
+ percent_rank(PG_FUNCTION_ARGS)
+ {
+ WindowObject winobj = PG_WINDOW_OBJECT();
+ rank_context *context;
+ bool up;
+ int64 totalrow;
+
+ up = rank_up(fcinfo);
+ context = (rank_context *) fcinfo->flinfo->fn_extra;
+ if (up)
+ context->rank = WinRowCurrentPos(winobj) + 1;
+
+ totalrow = WinPartGetRowNum(winobj);
+ Assert(totalrow > 0);
+
+ /* result is as the first row, per spec */
+ if (totalrow == 1)
+ PG_RETURN_FLOAT8(0.0);
+
+ PG_RETURN_FLOAT8((float8) (context->rank - 1) / (float8) (totalrow - 1));
+ }
+
+ /*
+ * cume_dist
+ * return fraction betweeen 0 and 1 inclusive, which
+ * is described as NP / NR, where NP is the number of row preceeding or peers to
+ * the current row, and NR is the number of total row of the partition, per spec.
+ */
+ Datum
+ cume_dist(PG_FUNCTION_ARGS)
+ {
+ WindowObject winobj = PG_WINDOW_OBJECT();
+ rank_context *context;
+ bool up;
+ int64 totalrow = WinPartGetRowNum(winobj);
+
+ Assert(totalrow > 0);
+
+ up = rank_up(fcinfo);
+ context = (rank_context *) fcinfo->flinfo->fn_extra;
+ if (up || context->rank == 1)
+ {
+ /*
+ * The saved row is not peer to the current row or just the first,
+ * so count up the number of rows that are peer to the current.
+ */
+ int64 row;
+
+ context->rank = WinRowCurrentPos(winobj) + 1;
+
+ /*
+ * start from current + 1
+ */
+ for (row = context->rank; row < totalrow; row++)
+ {
+ if (!WinRowIsPeer(winobj, row - 1, row))
+ break;
+ context->rank++;
+ }
+ }
+
+ PG_RETURN_FLOAT8((float8) (context->rank) / (float8) totalrow);
+ }
+
+ /*
+ * ntile
+ * compute an exact numeric value with scale0 (zero),
+ * ranging from 1 (one) to n, per spec.
+ */
+ Datum
+ ntile(PG_FUNCTION_ARGS)
+ {
+ WindowObject winobj = PG_WINDOW_OBJECT();
+ ntile_context *context;
+
+ allocate_if_new(fcinfo, sizeof(ntile_context));
+
+ context = (ntile_context *) fcinfo->flinfo->fn_extra;
+
+ if (context->ntile == 0)
+ {
+ /* first call */
+ int64 total;
+ int32 nbuckets;
+ bool isnull;
+
+ total = WinPartGetRowNum(winobj);
+ nbuckets = WinRowGetArg(winobj, 0, &isnull);
+
+ /*
+ * per spec:
+ * If NT is the null value, then the result is the null value.
+ */
+ if (isnull)
+ PG_RETURN_NULL();
+
+ /*
+ * per spec:
+ * If NT is less than or equal to 0 (zero), then an exception
+ * condition is raised.
+ */
+ if (nbuckets < 1)
+ elog(ERROR, "negative or zero ntile argument not allowed");
+
+ context->ntile = 1;
+ context->rows_per_bucket = 0;
+ context->boundary = total / nbuckets;
+ if (context->boundary <= 0)
+ context->boundary = 1;
+ else
+ {
+ /*
+ * If the total number is not divisible, add 1 row to
+ * leading buckets.
+ */
+ context->remainder = total % nbuckets;
+ if (context->remainder != 0)
+ context->boundary++;
+ }
+ }
+
+ context->rows_per_bucket++;
+ if (context->boundary < context->rows_per_bucket)
+ {
+ /* ntile up */
+ if (context->remainder != 0 && context->ntile == context->remainder)
+ {
+ context->remainder = 0;
+ context->boundary -= 1;
+ }
+ context->ntile += 1;
+ context->rows_per_bucket = 1;
+ }
+
+ PG_RETURN_INT32(context->ntile);
+ }
+
+ /*
+ * leadlag_common
+ * common operation of lead() and lag()
+ * for lead() forward argument is set to true, whereas lag() is to false,
+ * and if fetchdefault is true, the third argument is taken if the target
+ * datum is out of range.
+ */
+ static Datum
+ leadlag_common(FunctionCallInfo fcinfo, bool forward, bool fetchdefault, bool withoffset)
+ {
+ WindowObject winobj = PG_WINDOW_OBJECT();
+ int4 offset;
+ Datum result;
+ bool isnull;
+ bool isout;
+
+ if (withoffset)
+ {
+ offset = WinRowGetArg(winobj, 1, &isnull);
+ if (isnull)
+ PG_RETURN_NULL();
+ }
+ else
+ offset = 1;
+
+ result = WinPartGetArg(winobj, 0,
+ (forward ? offset : -offset),
+ WINDOW_SEEK_CURRENT, &isnull, &isout);
+
+ if (isout)
+ {
+ /*
+ * target row is out of the partition, so going to fetch
+ * default value if demanded.
+ */
+ if (fetchdefault)
+ result = WinRowGetArg(winobj, 2, &isnull);
+ }
+
+ if (isnull)
+ PG_RETURN_NULL();
+
+ PG_RETURN_DATUM(result);
+ }
+
+ /*
+ * lag
+ * returns the value of VE evaluated on a row that is 1
+ * row before the current row within a partition,
+ * per spec.
+ */
+ Datum
+ lag(PG_FUNCTION_ARGS)
+ {
+ return leadlag_common(fcinfo, false, false, false);
+ }
+
+ /*
+ * lag_with_offset
+ * returns the value of VE evelulated on a row that is OFFSET
+ * rows before the current row within a partition,
+ * per spec.
+ */
+ Datum
+ lag_with_offset(PG_FUNCTION_ARGS)
+ {
+ return leadlag_common(fcinfo, false, false, true);
+ }
+
+ /*
+ * lag_with_offset_and_default
+ * same as lag_with_offset but accepts default value
+ * as its third argument.
+ */
+ Datum
+ lag_with_offset_and_default(PG_FUNCTION_ARGS)
+ {
+ return leadlag_common(fcinfo, false, true, true);
+ }
+
+ /*
+ * lead
+ * returns the value of VE evaluated on a row that is 1
+ * row after the current row within a partition,
+ * per spec.
+ */
+ Datum
+ lead(PG_FUNCTION_ARGS)
+ {
+ return leadlag_common(fcinfo, true, false, false);
+ }
+
+ /*
+ * lead_with_offset
+ * returns the value of VE evaluated on a row that is OFFSET
+ * number of rows after the current row within a partition,
+ * per spec.
+ */
+ Datum
+ lead_with_offset(PG_FUNCTION_ARGS)
+ {
+ return leadlag_common(fcinfo, true, false, true);
+ }
+
+ /*
+ * lead_with_offset_and_default
+ * same as lead_with_offset but accepts default value
+ * as its third argument.
+ */
+ Datum
+ lead_with_offset_and_default(PG_FUNCTION_ARGS)
+ {
+ return leadlag_common(fcinfo, true, true, true);
+ }
+
+ /*
+ * first_value
+ * return the value of VE evaluated on the first row of the
+ * window frame, per spec.
+ */
+ Datum
+ first_value(PG_FUNCTION_ARGS)
+ {
+ WindowObject winobj = PG_WINDOW_OBJECT();
+ Datum result;
+ bool isnull;
+ bool isout;
+
+ result = WinFrameGetArg(winobj, 0,
+ 0, WINDOW_SEEK_HEAD, &isnull, &isout);
+
+ if (isnull)
+ PG_RETURN_NULL();
+
+ PG_RETURN_DATUM(result);
+ }
+
+ /*
+ * last_value
+ * return the value of VE evaluated on the last row of the
+ * window frame, per spec.
+ */
+ Datum
+ last_value(PG_FUNCTION_ARGS)
+ {
+ WindowObject winobj = PG_WINDOW_OBJECT();
+ Datum result;
+ bool isnull;
+ bool isout;
+
+ result = WinFrameGetArg(winobj, 0,
+ 0, WINDOW_SEEK_TAIL, &isnull, &isout);
+
+ if (isnull)
+ PG_RETURN_NULL();
+
+ PG_RETURN_DATUM(result);
+ }
+
+ /*
+ * nth_value
+ * return the value of VE evaluated on the n-th row from the first
+ * row of the window frame, per spec.
+ * The argument "nth" is an exact numeric value n with scale 0 (zero).
+ */
+ Datum
+ nth_value(PG_FUNCTION_ARGS)
+ {
+ WindowObject winobj = PG_WINDOW_OBJECT();
+ Datum result;
+ bool isnull;
+ bool isout;
+ int4 nth;
+
+ nth = WinRowGetArg(winobj, 1, &isnull);
+
+ if (isnull)
+ PG_RETURN_NULL();
+
+ if (nth <= 0)
+ elog(ERROR, "negative or zero nth_value argument not allowed");
+
+ result = WinFrameGetArg(winobj, 0,
+ nth - 1, WINDOW_SEEK_HEAD, &isnull, &isout);
+
+ if (isnull)
+ PG_RETURN_NULL();
+
+ PG_RETURN_DATUM(result);
+ }
*** a/src/backend/utils/sort/tuplestore.c
--- b/src/backend/utils/sort/tuplestore.c
***************
*** 449,456 **** tuplestore_select_read_pointer(Tuplestorestate *state, int ptr)
switch (state->status)
{
case TSS_INMEM:
case TSS_WRITEFILE:
- /* no work */
break;
case TSS_READFILE:
/*
--- 449,458 ----
switch (state->status)
{
case TSS_INMEM:
+ /* We might be able to truncate the tuplestore */
+ tuplestore_trim(state);
+ break;
case TSS_WRITEFILE:
break;
case TSS_READFILE:
/*
***************
*** 505,510 **** tuplestore_ateof(Tuplestorestate *state)
--- 507,523 ----
}
/*
+ * tuplestore_in_memory
+ *
+ * Returns if the state is within memory.
+ */
+ bool
+ tuplestore_in_memory(Tuplestorestate *state)
+ {
+ return state->status == TSS_INMEM;
+ }
+
+ /*
* Accept one tuple and append it to the tuplestore.
*
* Note that the input tuple is always copied; the caller need not save it.
*** a/src/include/catalog/pg_attribute.h
--- b/src/include/catalog/pg_attribute.h
***************
*** 295,316 **** DATA(insert ( 1247 tableoid 26 0 4 -7 0 -1 -1 t p i t f f t 0));
{ 1255, {"prorows"}, 700, -1, 4, 6, 0, -1, -1, FLOAT4PASSBYVAL, 'p', 'i', true, false, false, true, 0 }, \
{ 1255, {"provariadic"}, 26, -1, 4, 7, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ 1255, {"proisagg"}, 16, -1, 1, 8, 0, -1, -1, true, 'p', 'c', true, false, false, true, 0 }, \
! { 1255, {"prosecdef"}, 16, -1, 1, 9, 0, -1, -1, true, 'p', 'c', true, false, false, true, 0 }, \
! { 1255, {"proisstrict"}, 16, -1, 1, 10, 0, -1, -1, true, 'p', 'c', true, false, false, true, 0 }, \
! { 1255, {"proretset"}, 16, -1, 1, 11, 0, -1, -1, true, 'p', 'c', true, false, false, true, 0 }, \
! { 1255, {"provolatile"}, 18, -1, 1, 12, 0, -1, -1, true, 'p', 'c', true, false, false, true, 0 }, \
! { 1255, {"pronargs"}, 21, -1, 2, 13, 0, -1, -1, true, 'p', 's', true, false, false, true, 0 }, \
! { 1255, {"pronargdefaults"}, 21, -1, 2, 14, 0, -1, -1, true, 'p', 's', true, false, false, true, 0 }, \
! { 1255, {"prorettype"}, 26, -1, 4, 15, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
! { 1255, {"proargtypes"}, 30, -1, -1, 16, 1, -1, -1, false, 'p', 'i', true, false, false, true, 0 }, \
! { 1255, {"proallargtypes"}, 1028, -1, -1, 17, 1, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \
! { 1255, {"proargmodes"}, 1002, -1, -1, 18, 1, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \
! { 1255, {"proargnames"}, 1009, -1, -1, 19, 1, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \
! { 1255, {"proargdefaults"}, 25, -1, -1, 20, 0, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \
! { 1255, {"prosrc"}, 25, -1, -1, 21, 0, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \
! { 1255, {"probin"}, 17, -1, -1, 22, 0, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \
! { 1255, {"proconfig"}, 1009, -1, -1, 23, 1, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \
! { 1255, {"proacl"}, 1034, -1, -1, 24, 1, -1, -1, false, 'x', 'i', false, false, false, true, 0 }
DATA(insert ( 1255 proname 19 -1 NAMEDATALEN 1 0 -1 -1 f p c t f f t 0));
DATA(insert ( 1255 pronamespace 26 -1 4 2 0 -1 -1 t p i t f f t 0));
--- 295,317 ----
{ 1255, {"prorows"}, 700, -1, 4, 6, 0, -1, -1, FLOAT4PASSBYVAL, 'p', 'i', true, false, false, true, 0 }, \
{ 1255, {"provariadic"}, 26, -1, 4, 7, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ 1255, {"proisagg"}, 16, -1, 1, 8, 0, -1, -1, true, 'p', 'c', true, false, false, true, 0 }, \
! { 1255, {"proiswfunc"}, 16, -1, 1, 9, 0, -1, -1, true, 'p', 'c', true, false, false, true, 0 }, \
! { 1255, {"prosecdef"}, 16, -1, 1, 10, 0, -1, -1, true, 'p', 'c', true, false, false, true, 0 }, \
! { 1255, {"proisstrict"}, 16, -1, 1, 11, 0, -1, -1, true, 'p', 'c', true, false, false, true, 0 }, \
! { 1255, {"proretset"}, 16, -1, 1, 12, 0, -1, -1, true, 'p', 'c', true, false, false, true, 0 }, \
! { 1255, {"provolatile"}, 18, -1, 1, 13, 0, -1, -1, true, 'p', 'c', true, false, false, true, 0 }, \
! { 1255, {"pronargs"}, 21, -1, 2, 14, 0, -1, -1, true, 'p', 's', true, false, false, true, 0 }, \
! { 1255, {"pronargdefaults"}, 21, -1, 2, 15, 0, -1, -1, true, 'p', 's', true, false, false, true, 0 }, \
! { 1255, {"prorettype"}, 26, -1, 4, 16, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
! { 1255, {"proargtypes"}, 30, -1, -1, 17, 1, -1, -1, false, 'p', 'i', true, false, false, true, 0 }, \
! { 1255, {"proallargtypes"}, 1028, -1, -1, 18, 1, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \
! { 1255, {"proargmodes"}, 1002, -1, -1, 19, 1, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \
! { 1255, {"proargnames"}, 1009, -1, -1, 20, 1, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \
! { 1255, {"proargdefaults"}, 25, -1, -1, 21, 0, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \
! { 1255, {"prosrc"}, 25, -1, -1, 22, 0, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \
! { 1255, {"probin"}, 17, -1, -1, 23, 0, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \
! { 1255, {"proconfig"}, 1009, -1, -1, 24, 1, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \
! { 1255, {"proacl"}, 1034, -1, -1, 25, 1, -1, -1, false, 'x', 'i', false, false, false, true, 0 }
DATA(insert ( 1255 proname 19 -1 NAMEDATALEN 1 0 -1 -1 f p c t f f t 0));
DATA(insert ( 1255 pronamespace 26 -1 4 2 0 -1 -1 t p i t f f t 0));
***************
*** 320,341 **** DATA(insert ( 1255 procost 700 -1 4 5 0 -1 -1 FLOAT4PASSBYVAL p i t f f t
DATA(insert ( 1255 prorows 700 -1 4 6 0 -1 -1 FLOAT4PASSBYVAL p i t f f t 0));
DATA(insert ( 1255 provariadic 26 -1 4 7 0 -1 -1 t p i t f f t 0));
DATA(insert ( 1255 proisagg 16 -1 1 8 0 -1 -1 t p c t f f t 0));
! DATA(insert ( 1255 prosecdef 16 -1 1 9 0 -1 -1 t p c t f f t 0));
! DATA(insert ( 1255 proisstrict 16 -1 1 10 0 -1 -1 t p c t f f t 0));
! DATA(insert ( 1255 proretset 16 -1 1 11 0 -1 -1 t p c t f f t 0));
! DATA(insert ( 1255 provolatile 18 -1 1 12 0 -1 -1 t p c t f f t 0));
! DATA(insert ( 1255 pronargs 21 -1 2 13 0 -1 -1 t p s t f f t 0));
! DATA(insert ( 1255 pronargdefaults 21 -1 2 14 0 -1 -1 t p s t f f t 0));
! DATA(insert ( 1255 prorettype 26 -1 4 15 0 -1 -1 t p i t f f t 0));
! DATA(insert ( 1255 proargtypes 30 -1 -1 16 1 -1 -1 f p i t f f t 0));
! DATA(insert ( 1255 proallargtypes 1028 -1 -1 17 1 -1 -1 f x i f f f t 0));
! DATA(insert ( 1255 proargmodes 1002 -1 -1 18 1 -1 -1 f x i f f f t 0));
! DATA(insert ( 1255 proargnames 1009 -1 -1 19 1 -1 -1 f x i f f f t 0));
! DATA(insert ( 1255 proargdefaults 25 -1 -1 20 0 -1 -1 f x i f f f t 0));
! DATA(insert ( 1255 prosrc 25 -1 -1 21 0 -1 -1 f x i f f f t 0));
! DATA(insert ( 1255 probin 17 -1 -1 22 0 -1 -1 f x i f f f t 0));
! DATA(insert ( 1255 proconfig 1009 -1 -1 23 1 -1 -1 f x i f f f t 0));
! DATA(insert ( 1255 proacl 1034 -1 -1 24 1 -1 -1 f x i f f f t 0));
DATA(insert ( 1255 ctid 27 0 6 -1 0 -1 -1 f p s t f f t 0));
DATA(insert ( 1255 oid 26 0 4 -2 0 -1 -1 t p i t f f t 0));
DATA(insert ( 1255 xmin 28 0 4 -3 0 -1 -1 t p i t f f t 0));
--- 321,343 ----
DATA(insert ( 1255 prorows 700 -1 4 6 0 -1 -1 FLOAT4PASSBYVAL p i t f f t 0));
DATA(insert ( 1255 provariadic 26 -1 4 7 0 -1 -1 t p i t f f t 0));
DATA(insert ( 1255 proisagg 16 -1 1 8 0 -1 -1 t p c t f f t 0));
! DATA(insert ( 1255 proiswfunc 16 -1 1 9 0 -1 -1 t p c t f f t 0));
! DATA(insert ( 1255 prosecdef 16 -1 1 10 0 -1 -1 t p c t f f t 0));
! DATA(insert ( 1255 proisstrict 16 -1 1 11 0 -1 -1 t p c t f f t 0));
! DATA(insert ( 1255 proretset 16 -1 1 12 0 -1 -1 t p c t f f t 0));
! DATA(insert ( 1255 provolatile 18 -1 1 13 0 -1 -1 t p c t f f t 0));
! DATA(insert ( 1255 pronargs 21 -1 2 14 0 -1 -1 t p s t f f t 0));
! DATA(insert ( 1255 pronargdefaults 21 -1 2 15 0 -1 -1 t p s t f f t 0));
! DATA(insert ( 1255 prorettype 26 -1 4 16 0 -1 -1 t p i t f f t 0));
! DATA(insert ( 1255 proargtypes 30 -1 -1 17 1 -1 -1 f p i t f f t 0));
! DATA(insert ( 1255 proallargtypes 1028 -1 -1 18 1 -1 -1 f x i f f f t 0));
! DATA(insert ( 1255 proargmodes 1002 -1 -1 19 1 -1 -1 f x i f f f t 0));
! DATA(insert ( 1255 proargnames 1009 -1 -1 20 1 -1 -1 f x i f f f t 0));
! DATA(insert ( 1255 proargdefaults 25 -1 -1 21 0 -1 -1 f x i f f f t 0));
! DATA(insert ( 1255 prosrc 25 -1 -1 22 0 -1 -1 f x i f f f t 0));
! DATA(insert ( 1255 probin 17 -1 -1 23 0 -1 -1 f x i f f f t 0));
! DATA(insert ( 1255 proconfig 1009 -1 -1 24 1 -1 -1 f x i f f f t 0));
! DATA(insert ( 1255 proacl 1034 -1 -1 25 1 -1 -1 f x i f f f t 0));
DATA(insert ( 1255 ctid 27 0 6 -1 0 -1 -1 f p s t f f t 0));
DATA(insert ( 1255 oid 26 0 4 -2 0 -1 -1 t p i t f f t 0));
DATA(insert ( 1255 xmin 28 0 4 -3 0 -1 -1 t p i t f f t 0));
*** a/src/include/catalog/pg_class.h
--- b/src/include/catalog/pg_class.h
***************
*** 125,131 **** DATA(insert OID = 1247 ( pg_type PGNSP 71 PGUID 0 1247 0 0 0 0 0 f f r 28 0 t
DESCR("");
DATA(insert OID = 1249 ( pg_attribute PGNSP 75 PGUID 0 1249 0 0 0 0 0 f f r 17 0 f f f f f 3 _null_ _null_ ));
DESCR("");
! DATA(insert OID = 1255 ( pg_proc PGNSP 81 PGUID 0 1255 0 0 0 0 0 f f r 24 0 t f f f f 3 _null_ _null_ ));
DESCR("");
DATA(insert OID = 1259 ( pg_class PGNSP 83 PGUID 0 1259 0 0 0 0 0 f f r 24 0 t f f f f 3 _null_ _null_ ));
DESCR("");
--- 125,131 ----
DESCR("");
DATA(insert OID = 1249 ( pg_attribute PGNSP 75 PGUID 0 1249 0 0 0 0 0 f f r 17 0 f f f f f 3 _null_ _null_ ));
DESCR("");
! DATA(insert OID = 1255 ( pg_proc PGNSP 81 PGUID 0 1255 0 0 0 0 0 f f r 25 0 t f f f f 3 _null_ _null_ ));
DESCR("");
DATA(insert OID = 1259 ( pg_class PGNSP 83 PGUID 0 1259 0 0 0 0 0 f f r 24 0 t f f f f 3 _null_ _null_ ));
DESCR("");
*** a/src/include/catalog/pg_proc.h
--- b/src/include/catalog/pg_proc.h
***************
*** 42,47 **** CATALOG(pg_proc,1255) BKI_BOOTSTRAP
--- 42,48 ----
float4 prorows; /* estimated # of rows out (if proretset) */
Oid provariadic; /* element type of variadic array, or 0 */
bool proisagg; /* is it an aggregate? */
+ bool proiswfunc; /* is it a window function? */
bool prosecdef; /* security definer */
bool proisstrict; /* strict with respect to NULLs? */
bool proretset; /* returns a set? */
***************
*** 72,78 **** typedef FormData_pg_proc *Form_pg_proc;
* compiler constants for pg_proc
* ----------------
*/
! #define Natts_pg_proc 24
#define Anum_pg_proc_proname 1
#define Anum_pg_proc_pronamespace 2
#define Anum_pg_proc_proowner 3
--- 73,79 ----
* compiler constants for pg_proc
* ----------------
*/
! #define Natts_pg_proc 25
#define Anum_pg_proc_proname 1
#define Anum_pg_proc_pronamespace 2
#define Anum_pg_proc_proowner 3
***************
*** 81,102 **** typedef FormData_pg_proc *Form_pg_proc;
#define Anum_pg_proc_prorows 6
#define Anum_pg_proc_provariadic 7
#define Anum_pg_proc_proisagg 8
! #define Anum_pg_proc_prosecdef 9
! #define Anum_pg_proc_proisstrict 10
! #define Anum_pg_proc_proretset 11
! #define Anum_pg_proc_provolatile 12
! #define Anum_pg_proc_pronargs 13
! #define Anum_pg_proc_pronargdefaults 14
! #define Anum_pg_proc_prorettype 15
! #define Anum_pg_proc_proargtypes 16
! #define Anum_pg_proc_proallargtypes 17
! #define Anum_pg_proc_proargmodes 18
! #define Anum_pg_proc_proargnames 19
! #define Anum_pg_proc_proargdefaults 20
! #define Anum_pg_proc_prosrc 21
! #define Anum_pg_proc_probin 22
! #define Anum_pg_proc_proconfig 23
! #define Anum_pg_proc_proacl 24
/* ----------------
* initial contents of pg_proc
--- 82,104 ----
#define Anum_pg_proc_prorows 6
#define Anum_pg_proc_provariadic 7
#define Anum_pg_proc_proisagg 8
! #define Anum_pg_proc_proiswfunc 9
! #define Anum_pg_proc_prosecdef 10
! #define Anum_pg_proc_proisstrict 11
! #define Anum_pg_proc_proretset 12
! #define Anum_pg_proc_provolatile 13
! #define Anum_pg_proc_pronargs 14
! #define Anum_pg_proc_pronargdefaults 15
! #define Anum_pg_proc_prorettype 16
! #define Anum_pg_proc_proargtypes 17
! #define Anum_pg_proc_proallargtypes 18
! #define Anum_pg_proc_proargmodes 19
! #define Anum_pg_proc_proargnames 20
! #define Anum_pg_proc_proargdefaults 21
! #define Anum_pg_proc_prosrc 22
! #define Anum_pg_proc_probin 23
! #define Anum_pg_proc_proconfig 24
! #define Anum_pg_proc_proacl 25
/* ----------------
* initial contents of pg_proc
***************
*** 107,4607 **** typedef FormData_pg_proc *Form_pg_proc;
/* OIDS 1 - 99 */
! DATA(insert OID = 1242 ( boolin PGNSP PGUID 12 1 0 0 f f t f i 1 0 16 "2275" _null_ _null_ _null_ _null_ boolin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1243 ( boolout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "16" _null_ _null_ _null_ _null_ boolout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1244 ( byteain PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "2275" _null_ _null_ _null_ _null_ byteain _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 31 ( byteaout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "17" _null_ _null_ _null_ _null_ byteaout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1245 ( charin PGNSP PGUID 12 1 0 0 f f t f i 1 0 18 "2275" _null_ _null_ _null_ _null_ charin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 33 ( charout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "18" _null_ _null_ _null_ _null_ charout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 34 ( namein PGNSP PGUID 12 1 0 0 f f t f i 1 0 19 "2275" _null_ _null_ _null_ _null_ namein _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 35 ( nameout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "19" _null_ _null_ _null_ _null_ nameout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 38 ( int2in PGNSP PGUID 12 1 0 0 f f t f i 1 0 21 "2275" _null_ _null_ _null_ _null_ int2in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 39 ( int2out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "21" _null_ _null_ _null_ _null_ int2out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 40 ( int2vectorin PGNSP PGUID 12 1 0 0 f f t f i 1 0 22 "2275" _null_ _null_ _null_ _null_ int2vectorin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 41 ( int2vectorout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "22" _null_ _null_ _null_ _null_ int2vectorout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 42 ( int4in PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "2275" _null_ _null_ _null_ _null_ int4in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 43 ( int4out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ int4out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 44 ( regprocin PGNSP PGUID 12 1 0 0 f f t f s 1 0 24 "2275" _null_ _null_ _null_ _null_ regprocin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 45 ( regprocout PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "24" _null_ _null_ _null_ _null_ regprocout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 46 ( textin PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "2275" _null_ _null_ _null_ _null_ textin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 47 ( textout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "25" _null_ _null_ _null_ _null_ textout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 48 ( tidin PGNSP PGUID 12 1 0 0 f f t f i 1 0 27 "2275" _null_ _null_ _null_ _null_ tidin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 49 ( tidout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "27" _null_ _null_ _null_ _null_ tidout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 50 ( xidin PGNSP PGUID 12 1 0 0 f f t f i 1 0 28 "2275" _null_ _null_ _null_ _null_ xidin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 51 ( xidout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "28" _null_ _null_ _null_ _null_ xidout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 52 ( cidin PGNSP PGUID 12 1 0 0 f f t f i 1 0 29 "2275" _null_ _null_ _null_ _null_ cidin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 53 ( cidout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "29" _null_ _null_ _null_ _null_ cidout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 54 ( oidvectorin PGNSP PGUID 12 1 0 0 f f t f i 1 0 30 "2275" _null_ _null_ _null_ _null_ oidvectorin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 55 ( oidvectorout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "30" _null_ _null_ _null_ _null_ oidvectorout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 56 ( boollt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "16 16" _null_ _null_ _null_ _null_ boollt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 57 ( boolgt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "16 16" _null_ _null_ _null_ _null_ boolgt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 60 ( booleq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "16 16" _null_ _null_ _null_ _null_ booleq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 61 ( chareq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "18 18" _null_ _null_ _null_ _null_ chareq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 62 ( nameeq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "19 19" _null_ _null_ _null_ _null_ nameeq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 63 ( int2eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "21 21" _null_ _null_ _null_ _null_ int2eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 64 ( int2lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "21 21" _null_ _null_ _null_ _null_ int2lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 65 ( int4eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "23 23" _null_ _null_ _null_ _null_ int4eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 66 ( int4lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "23 23" _null_ _null_ _null_ _null_ int4lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 67 ( texteq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ texteq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 68 ( xideq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "28 28" _null_ _null_ _null_ _null_ xideq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 69 ( cideq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "29 29" _null_ _null_ _null_ _null_ cideq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 70 ( charne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "18 18" _null_ _null_ _null_ _null_ charne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1246 ( charlt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "18 18" _null_ _null_ _null_ _null_ charlt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 72 ( charle PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "18 18" _null_ _null_ _null_ _null_ charle _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 73 ( chargt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "18 18" _null_ _null_ _null_ _null_ chargt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 74 ( charge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "18 18" _null_ _null_ _null_ _null_ charge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 77 ( int4 PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "18" _null_ _null_ _null_ _null_ chartoi4 _null_ _null_ _null_ ));
DESCR("convert char to int4");
! DATA(insert OID = 78 ( char PGNSP PGUID 12 1 0 0 f f t f i 1 0 18 "23" _null_ _null_ _null_ _null_ i4tochar _null_ _null_ _null_ ));
DESCR("convert int4 to char");
! DATA(insert OID = 79 ( nameregexeq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "19 25" _null_ _null_ _null_ _null_ nameregexeq _null_ _null_ _null_ ));
DESCR("matches regex., case-sensitive");
! DATA(insert OID = 1252 ( nameregexne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "19 25" _null_ _null_ _null_ _null_ nameregexne _null_ _null_ _null_ ));
DESCR("does not match regex., case-sensitive");
! DATA(insert OID = 1254 ( textregexeq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ textregexeq _null_ _null_ _null_ ));
DESCR("matches regex., case-sensitive");
! DATA(insert OID = 1256 ( textregexne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ textregexne _null_ _null_ _null_ ));
DESCR("does not match regex., case-sensitive");
! DATA(insert OID = 1257 ( textlen PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "25" _null_ _null_ _null_ _null_ textlen _null_ _null_ _null_ ));
DESCR("length");
! DATA(insert OID = 1258 ( textcat PGNSP PGUID 12 1 0 0 f f t f i 2 0 25 "25 25" _null_ _null_ _null_ _null_ textcat _null_ _null_ _null_ ));
DESCR("concatenate");
! DATA(insert OID = 84 ( boolne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "16 16" _null_ _null_ _null_ _null_ boolne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 89 ( version PGNSP PGUID 12 1 0 0 f f t f s 0 0 25 "" _null_ _null_ _null_ _null_ pgsql_version _null_ _null_ _null_ ));
DESCR("PostgreSQL version string");
/* OIDS 100 - 199 */
! DATA(insert OID = 101 ( eqsel PGNSP PGUID 12 1 0 0 f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ eqsel _null_ _null_ _null_ ));
DESCR("restriction selectivity of = and related operators");
! DATA(insert OID = 102 ( neqsel PGNSP PGUID 12 1 0 0 f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ neqsel _null_ _null_ _null_ ));
DESCR("restriction selectivity of <> and related operators");
! DATA(insert OID = 103 ( scalarltsel PGNSP PGUID 12 1 0 0 f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ scalarltsel _null_ _null_ _null_ ));
DESCR("restriction selectivity of < and related operators on scalar datatypes");
! DATA(insert OID = 104 ( scalargtsel PGNSP PGUID 12 1 0 0 f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ scalargtsel _null_ _null_ _null_ ));
DESCR("restriction selectivity of > and related operators on scalar datatypes");
! DATA(insert OID = 105 ( eqjoinsel PGNSP PGUID 12 1 0 0 f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ eqjoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of = and related operators");
! DATA(insert OID = 106 ( neqjoinsel PGNSP PGUID 12 1 0 0 f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ neqjoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of <> and related operators");
! DATA(insert OID = 107 ( scalarltjoinsel PGNSP PGUID 12 1 0 0 f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ scalarltjoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of < and related operators on scalar datatypes");
! DATA(insert OID = 108 ( scalargtjoinsel PGNSP PGUID 12 1 0 0 f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ scalargtjoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of > and related operators on scalar datatypes");
! DATA(insert OID = 109 ( unknownin PGNSP PGUID 12 1 0 0 f f t f i 1 0 705 "2275" _null_ _null_ _null_ _null_ unknownin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 110 ( unknownout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "705" _null_ _null_ _null_ _null_ unknownout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 111 ( numeric_fac PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "20" _null_ _null_ _null_ _null_ numeric_fac _null_ _null_ _null_ ));
DESCR("equivalent to factorial");
! DATA(insert OID = 115 ( box_above_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_above_eq _null_ _null_ _null_ ));
DESCR("is above (allows touching)");
! DATA(insert OID = 116 ( box_below_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_below_eq _null_ _null_ _null_ ));
DESCR("is below (allows touching)");
! DATA(insert OID = 117 ( point_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 600 "2275" _null_ _null_ _null_ _null_ point_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 118 ( point_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "600" _null_ _null_ _null_ _null_ point_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 119 ( lseg_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 601 "2275" _null_ _null_ _null_ _null_ lseg_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 120 ( lseg_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "601" _null_ _null_ _null_ _null_ lseg_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 121 ( path_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 602 "2275" _null_ _null_ _null_ _null_ path_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 122 ( path_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "602" _null_ _null_ _null_ _null_ path_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 123 ( box_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 603 "2275" _null_ _null_ _null_ _null_ box_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 124 ( box_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "603" _null_ _null_ _null_ _null_ box_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 125 ( box_overlap PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_overlap _null_ _null_ _null_ ));
DESCR("overlaps");
! DATA(insert OID = 126 ( box_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal by area");
! DATA(insert OID = 127 ( box_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_gt _null_ _null_ _null_ ));
DESCR("greater-than by area");
! DATA(insert OID = 128 ( box_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_eq _null_ _null_ _null_ ));
DESCR("equal by area");
! DATA(insert OID = 129 ( box_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_lt _null_ _null_ _null_ ));
DESCR("less-than by area");
! DATA(insert OID = 130 ( box_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal by area");
! DATA(insert OID = 131 ( point_above PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "600 600" _null_ _null_ _null_ _null_ point_above _null_ _null_ _null_ ));
DESCR("is above");
! DATA(insert OID = 132 ( point_left PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "600 600" _null_ _null_ _null_ _null_ point_left _null_ _null_ _null_ ));
DESCR("is left of");
! DATA(insert OID = 133 ( point_right PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "600 600" _null_ _null_ _null_ _null_ point_right _null_ _null_ _null_ ));
DESCR("is right of");
! DATA(insert OID = 134 ( point_below PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "600 600" _null_ _null_ _null_ _null_ point_below _null_ _null_ _null_ ));
DESCR("is below");
! DATA(insert OID = 135 ( point_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "600 600" _null_ _null_ _null_ _null_ point_eq _null_ _null_ _null_ ));
DESCR("same as?");
! DATA(insert OID = 136 ( on_pb PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "600 603" _null_ _null_ _null_ _null_ on_pb _null_ _null_ _null_ ));
DESCR("point inside box?");
! DATA(insert OID = 137 ( on_ppath PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "600 602" _null_ _null_ _null_ _null_ on_ppath _null_ _null_ _null_ ));
DESCR("point within closed path, or point on open path");
! DATA(insert OID = 138 ( box_center PGNSP PGUID 12 1 0 0 f f t f i 1 0 600 "603" _null_ _null_ _null_ _null_ box_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 139 ( areasel PGNSP PGUID 12 1 0 0 f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ areasel _null_ _null_ _null_ ));
DESCR("restriction selectivity for area-comparison operators");
! DATA(insert OID = 140 ( areajoinsel PGNSP PGUID 12 1 0 0 f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ areajoinsel _null_ _null_ _null_ ));
DESCR("join selectivity for area-comparison operators");
! DATA(insert OID = 141 ( int4mul PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 144 ( int4ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "23 23" _null_ _null_ _null_ _null_ int4ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 145 ( int2ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "21 21" _null_ _null_ _null_ _null_ int2ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 146 ( int2gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "21 21" _null_ _null_ _null_ _null_ int2gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 147 ( int4gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "23 23" _null_ _null_ _null_ _null_ int4gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 148 ( int2le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "21 21" _null_ _null_ _null_ _null_ int2le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 149 ( int4le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "23 23" _null_ _null_ _null_ _null_ int4le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 150 ( int4ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "23 23" _null_ _null_ _null_ _null_ int4ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 151 ( int2ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "21 21" _null_ _null_ _null_ _null_ int2ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 152 ( int2mul PGNSP PGUID 12 1 0 0 f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 153 ( int2div PGNSP PGUID 12 1 0 0 f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 154 ( int4div PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 155 ( int2mod PGNSP PGUID 12 1 0 0 f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2mod _null_ _null_ _null_ ));
DESCR("modulus");
! DATA(insert OID = 156 ( int4mod PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4mod _null_ _null_ _null_ ));
DESCR("modulus");
! DATA(insert OID = 157 ( textne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ textne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 158 ( int24eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "21 23" _null_ _null_ _null_ _null_ int24eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 159 ( int42eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "23 21" _null_ _null_ _null_ _null_ int42eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 160 ( int24lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "21 23" _null_ _null_ _null_ _null_ int24lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 161 ( int42lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "23 21" _null_ _null_ _null_ _null_ int42lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 162 ( int24gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "21 23" _null_ _null_ _null_ _null_ int24gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 163 ( int42gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "23 21" _null_ _null_ _null_ _null_ int42gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 164 ( int24ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "21 23" _null_ _null_ _null_ _null_ int24ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 165 ( int42ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "23 21" _null_ _null_ _null_ _null_ int42ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 166 ( int24le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "21 23" _null_ _null_ _null_ _null_ int24le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 167 ( int42le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "23 21" _null_ _null_ _null_ _null_ int42le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 168 ( int24ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "21 23" _null_ _null_ _null_ _null_ int24ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 169 ( int42ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "23 21" _null_ _null_ _null_ _null_ int42ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 170 ( int24mul PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "21 23" _null_ _null_ _null_ _null_ int24mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 171 ( int42mul PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "23 21" _null_ _null_ _null_ _null_ int42mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 172 ( int24div PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "21 23" _null_ _null_ _null_ _null_ int24div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 173 ( int42div PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "23 21" _null_ _null_ _null_ _null_ int42div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 176 ( int2pl PGNSP PGUID 12 1 0 0 f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 177 ( int4pl PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 178 ( int24pl PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "21 23" _null_ _null_ _null_ _null_ int24pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 179 ( int42pl PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "23 21" _null_ _null_ _null_ _null_ int42pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 180 ( int2mi PGNSP PGUID 12 1 0 0 f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 181 ( int4mi PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 182 ( int24mi PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "21 23" _null_ _null_ _null_ _null_ int24mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 183 ( int42mi PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "23 21" _null_ _null_ _null_ _null_ int42mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 184 ( oideq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "26 26" _null_ _null_ _null_ _null_ oideq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 185 ( oidne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "26 26" _null_ _null_ _null_ _null_ oidne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 186 ( box_same PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_same _null_ _null_ _null_ ));
DESCR("same as?");
! DATA(insert OID = 187 ( box_contain PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_contain _null_ _null_ _null_ ));
DESCR("contains?");
! DATA(insert OID = 188 ( box_left PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_left _null_ _null_ _null_ ));
DESCR("is left of");
! DATA(insert OID = 189 ( box_overleft PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_overleft _null_ _null_ _null_ ));
DESCR("overlaps or is left of");
! DATA(insert OID = 190 ( box_overright PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_overright _null_ _null_ _null_ ));
DESCR("overlaps or is right of");
! DATA(insert OID = 191 ( box_right PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_right _null_ _null_ _null_ ));
DESCR("is right of");
! DATA(insert OID = 192 ( box_contained PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_contained _null_ _null_ _null_ ));
DESCR("is contained by?");
/* OIDS 200 - 299 */
! DATA(insert OID = 200 ( float4in PGNSP PGUID 12 1 0 0 f f t f i 1 0 700 "2275" _null_ _null_ _null_ _null_ float4in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 201 ( float4out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "700" _null_ _null_ _null_ _null_ float4out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 202 ( float4mul PGNSP PGUID 12 1 0 0 f f t f i 2 0 700 "700 700" _null_ _null_ _null_ _null_ float4mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 203 ( float4div PGNSP PGUID 12 1 0 0 f f t f i 2 0 700 "700 700" _null_ _null_ _null_ _null_ float4div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 204 ( float4pl PGNSP PGUID 12 1 0 0 f f t f i 2 0 700 "700 700" _null_ _null_ _null_ _null_ float4pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 205 ( float4mi PGNSP PGUID 12 1 0 0 f f t f i 2 0 700 "700 700" _null_ _null_ _null_ _null_ float4mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 206 ( float4um PGNSP PGUID 12 1 0 0 f f t f i 1 0 700 "700" _null_ _null_ _null_ _null_ float4um _null_ _null_ _null_ ));
DESCR("negate");
! DATA(insert OID = 207 ( float4abs PGNSP PGUID 12 1 0 0 f f t f i 1 0 700 "700" _null_ _null_ _null_ _null_ float4abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 208 ( float4_accum PGNSP PGUID 12 1 0 0 f f t f i 2 0 1022 "1022 700" _null_ _null_ _null_ _null_ float4_accum _null_ _null_ _null_ ));
DESCR("aggregate transition function");
! DATA(insert OID = 209 ( float4larger PGNSP PGUID 12 1 0 0 f f t f i 2 0 700 "700 700" _null_ _null_ _null_ _null_ float4larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 211 ( float4smaller PGNSP PGUID 12 1 0 0 f f t f i 2 0 700 "700 700" _null_ _null_ _null_ _null_ float4smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 212 ( int4um PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "23" _null_ _null_ _null_ _null_ int4um _null_ _null_ _null_ ));
DESCR("negate");
! DATA(insert OID = 213 ( int2um PGNSP PGUID 12 1 0 0 f f t f i 1 0 21 "21" _null_ _null_ _null_ _null_ int2um _null_ _null_ _null_ ));
DESCR("negate");
! DATA(insert OID = 214 ( float8in PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "2275" _null_ _null_ _null_ _null_ float8in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 215 ( float8out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "701" _null_ _null_ _null_ _null_ float8out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 216 ( float8mul PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ float8mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 217 ( float8div PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ float8div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 218 ( float8pl PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ float8pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 219 ( float8mi PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ float8mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 220 ( float8um PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ float8um _null_ _null_ _null_ ));
DESCR("negate");
! DATA(insert OID = 221 ( float8abs PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ float8abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 222 ( float8_accum PGNSP PGUID 12 1 0 0 f f t f i 2 0 1022 "1022 701" _null_ _null_ _null_ _null_ float8_accum _null_ _null_ _null_ ));
DESCR("aggregate transition function");
! DATA(insert OID = 223 ( float8larger PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ float8larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 224 ( float8smaller PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ float8smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 225 ( lseg_center PGNSP PGUID 12 1 0 0 f f t f i 1 0 600 "601" _null_ _null_ _null_ _null_ lseg_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 226 ( path_center PGNSP PGUID 12 1 0 0 f f t f i 1 0 600 "602" _null_ _null_ _null_ _null_ path_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 227 ( poly_center PGNSP PGUID 12 1 0 0 f f t f i 1 0 600 "604" _null_ _null_ _null_ _null_ poly_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 228 ( dround PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dround _null_ _null_ _null_ ));
DESCR("round to nearest integer");
! DATA(insert OID = 229 ( dtrunc PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dtrunc _null_ _null_ _null_ ));
DESCR("truncate to integer");
! DATA(insert OID = 2308 ( ceil PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dceil _null_ _null_ _null_ ));
DESCR("smallest integer >= value");
! DATA(insert OID = 2320 ( ceiling PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dceil _null_ _null_ _null_ ));
DESCR("smallest integer >= value");
! DATA(insert OID = 2309 ( floor PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dfloor _null_ _null_ _null_ ));
DESCR("largest integer <= value");
! DATA(insert OID = 2310 ( sign PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dsign _null_ _null_ _null_ ));
DESCR("sign of value");
! DATA(insert OID = 230 ( dsqrt PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dsqrt _null_ _null_ _null_ ));
DESCR("square root");
! DATA(insert OID = 231 ( dcbrt PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dcbrt _null_ _null_ _null_ ));
DESCR("cube root");
! DATA(insert OID = 232 ( dpow PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ dpow _null_ _null_ _null_ ));
DESCR("exponentiation (x^y)");
! DATA(insert OID = 233 ( dexp PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dexp _null_ _null_ _null_ ));
DESCR("natural exponential (e^x)");
! DATA(insert OID = 234 ( dlog1 PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dlog1 _null_ _null_ _null_ ));
DESCR("natural logarithm");
! DATA(insert OID = 235 ( float8 PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "21" _null_ _null_ _null_ _null_ i2tod _null_ _null_ _null_ ));
DESCR("convert int2 to float8");
! DATA(insert OID = 236 ( float4 PGNSP PGUID 12 1 0 0 f f t f i 1 0 700 "21" _null_ _null_ _null_ _null_ i2tof _null_ _null_ _null_ ));
DESCR("convert int2 to float4");
! DATA(insert OID = 237 ( int2 PGNSP PGUID 12 1 0 0 f f t f i 1 0 21 "701" _null_ _null_ _null_ _null_ dtoi2 _null_ _null_ _null_ ));
DESCR("convert float8 to int2");
! DATA(insert OID = 238 ( int2 PGNSP PGUID 12 1 0 0 f f t f i 1 0 21 "700" _null_ _null_ _null_ _null_ ftoi2 _null_ _null_ _null_ ));
DESCR("convert float4 to int2");
! DATA(insert OID = 239 ( line_distance PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "628 628" _null_ _null_ _null_ _null_ line_distance _null_ _null_ _null_ ));
DESCR("distance between");
! DATA(insert OID = 240 ( abstimein PGNSP PGUID 12 1 0 0 f f t f s 1 0 702 "2275" _null_ _null_ _null_ _null_ abstimein _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 241 ( abstimeout PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "702" _null_ _null_ _null_ _null_ abstimeout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 242 ( reltimein PGNSP PGUID 12 1 0 0 f f t f s 1 0 703 "2275" _null_ _null_ _null_ _null_ reltimein _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 243 ( reltimeout PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "703" _null_ _null_ _null_ _null_ reltimeout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 244 ( timepl PGNSP PGUID 12 1 0 0 f f t f i 2 0 702 "702 703" _null_ _null_ _null_ _null_ timepl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 245 ( timemi PGNSP PGUID 12 1 0 0 f f t f i 2 0 702 "702 703" _null_ _null_ _null_ _null_ timemi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 246 ( tintervalin PGNSP PGUID 12 1 0 0 f f t f s 1 0 704 "2275" _null_ _null_ _null_ _null_ tintervalin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 247 ( tintervalout PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "704" _null_ _null_ _null_ _null_ tintervalout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 248 ( intinterval PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "702 704" _null_ _null_ _null_ _null_ intinterval _null_ _null_ _null_ ));
DESCR("abstime in tinterval");
! DATA(insert OID = 249 ( tintervalrel PGNSP PGUID 12 1 0 0 f f t f i 1 0 703 "704" _null_ _null_ _null_ _null_ tintervalrel _null_ _null_ _null_ ));
DESCR("tinterval to reltime");
! DATA(insert OID = 250 ( timenow PGNSP PGUID 12 1 0 0 f f t f s 0 0 702 "" _null_ _null_ _null_ _null_ timenow _null_ _null_ _null_ ));
DESCR("current date and time (abstime)");
! DATA(insert OID = 251 ( abstimeeq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "702 702" _null_ _null_ _null_ _null_ abstimeeq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 252 ( abstimene PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "702 702" _null_ _null_ _null_ _null_ abstimene _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 253 ( abstimelt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "702 702" _null_ _null_ _null_ _null_ abstimelt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 254 ( abstimegt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "702 702" _null_ _null_ _null_ _null_ abstimegt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 255 ( abstimele PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "702 702" _null_ _null_ _null_ _null_ abstimele _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 256 ( abstimege PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "702 702" _null_ _null_ _null_ _null_ abstimege _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 257 ( reltimeeq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "703 703" _null_ _null_ _null_ _null_ reltimeeq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 258 ( reltimene PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "703 703" _null_ _null_ _null_ _null_ reltimene _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 259 ( reltimelt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "703 703" _null_ _null_ _null_ _null_ reltimelt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 260 ( reltimegt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "703 703" _null_ _null_ _null_ _null_ reltimegt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 261 ( reltimele PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "703 703" _null_ _null_ _null_ _null_ reltimele _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 262 ( reltimege PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "703 703" _null_ _null_ _null_ _null_ reltimege _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 263 ( tintervalsame PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "704 704" _null_ _null_ _null_ _null_ tintervalsame _null_ _null_ _null_ ));
DESCR("same as?");
! DATA(insert OID = 264 ( tintervalct PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "704 704" _null_ _null_ _null_ _null_ tintervalct _null_ _null_ _null_ ));
DESCR("contains?");
! DATA(insert OID = 265 ( tintervalov PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "704 704" _null_ _null_ _null_ _null_ tintervalov _null_ _null_ _null_ ));
DESCR("overlaps");
! DATA(insert OID = 266 ( tintervalleneq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "704 703" _null_ _null_ _null_ _null_ tintervalleneq _null_ _null_ _null_ ));
DESCR("length equal");
! DATA(insert OID = 267 ( tintervallenne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "704 703" _null_ _null_ _null_ _null_ tintervallenne _null_ _null_ _null_ ));
DESCR("length not equal to");
! DATA(insert OID = 268 ( tintervallenlt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "704 703" _null_ _null_ _null_ _null_ tintervallenlt _null_ _null_ _null_ ));
DESCR("length less-than");
! DATA(insert OID = 269 ( tintervallengt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "704 703" _null_ _null_ _null_ _null_ tintervallengt _null_ _null_ _null_ ));
DESCR("length greater-than");
! DATA(insert OID = 270 ( tintervallenle PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "704 703" _null_ _null_ _null_ _null_ tintervallenle _null_ _null_ _null_ ));
DESCR("length less-than-or-equal");
! DATA(insert OID = 271 ( tintervallenge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "704 703" _null_ _null_ _null_ _null_ tintervallenge _null_ _null_ _null_ ));
DESCR("length greater-than-or-equal");
! DATA(insert OID = 272 ( tintervalstart PGNSP PGUID 12 1 0 0 f f t f i 1 0 702 "704" _null_ _null_ _null_ _null_ tintervalstart _null_ _null_ _null_ ));
DESCR("start of interval");
! DATA(insert OID = 273 ( tintervalend PGNSP PGUID 12 1 0 0 f f t f i 1 0 702 "704" _null_ _null_ _null_ _null_ tintervalend _null_ _null_ _null_ ));
DESCR("end of interval");
! DATA(insert OID = 274 ( timeofday PGNSP PGUID 12 1 0 0 f f t f v 0 0 25 "" _null_ _null_ _null_ _null_ timeofday _null_ _null_ _null_ ));
DESCR("current date and time - increments during transactions");
! DATA(insert OID = 275 ( isfinite PGNSP PGUID 12 1 0 0 f f t f i 1 0 16 "702" _null_ _null_ _null_ _null_ abstime_finite _null_ _null_ _null_ ));
DESCR("finite abstime?");
! DATA(insert OID = 277 ( inter_sl PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "601 628" _null_ _null_ _null_ _null_ inter_sl _null_ _null_ _null_ ));
DESCR("intersect?");
! DATA(insert OID = 278 ( inter_lb PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "628 603" _null_ _null_ _null_ _null_ inter_lb _null_ _null_ _null_ ));
DESCR("intersect?");
! DATA(insert OID = 279 ( float48mul PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "700 701" _null_ _null_ _null_ _null_ float48mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 280 ( float48div PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "700 701" _null_ _null_ _null_ _null_ float48div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 281 ( float48pl PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "700 701" _null_ _null_ _null_ _null_ float48pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 282 ( float48mi PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "700 701" _null_ _null_ _null_ _null_ float48mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 283 ( float84mul PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "701 700" _null_ _null_ _null_ _null_ float84mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 284 ( float84div PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "701 700" _null_ _null_ _null_ _null_ float84div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 285 ( float84pl PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "701 700" _null_ _null_ _null_ _null_ float84pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 286 ( float84mi PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "701 700" _null_ _null_ _null_ _null_ float84mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 287 ( float4eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "700 700" _null_ _null_ _null_ _null_ float4eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 288 ( float4ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "700 700" _null_ _null_ _null_ _null_ float4ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 289 ( float4lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "700 700" _null_ _null_ _null_ _null_ float4lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 290 ( float4le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "700 700" _null_ _null_ _null_ _null_ float4le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 291 ( float4gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "700 700" _null_ _null_ _null_ _null_ float4gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 292 ( float4ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "700 700" _null_ _null_ _null_ _null_ float4ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 293 ( float8eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "701 701" _null_ _null_ _null_ _null_ float8eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 294 ( float8ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "701 701" _null_ _null_ _null_ _null_ float8ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 295 ( float8lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "701 701" _null_ _null_ _null_ _null_ float8lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 296 ( float8le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "701 701" _null_ _null_ _null_ _null_ float8le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 297 ( float8gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "701 701" _null_ _null_ _null_ _null_ float8gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 298 ( float8ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "701 701" _null_ _null_ _null_ _null_ float8ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 299 ( float48eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "700 701" _null_ _null_ _null_ _null_ float48eq _null_ _null_ _null_ ));
DESCR("equal");
/* OIDS 300 - 399 */
! DATA(insert OID = 300 ( float48ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "700 701" _null_ _null_ _null_ _null_ float48ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 301 ( float48lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "700 701" _null_ _null_ _null_ _null_ float48lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 302 ( float48le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "700 701" _null_ _null_ _null_ _null_ float48le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 303 ( float48gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "700 701" _null_ _null_ _null_ _null_ float48gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 304 ( float48ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "700 701" _null_ _null_ _null_ _null_ float48ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 305 ( float84eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "701 700" _null_ _null_ _null_ _null_ float84eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 306 ( float84ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "701 700" _null_ _null_ _null_ _null_ float84ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 307 ( float84lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "701 700" _null_ _null_ _null_ _null_ float84lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 308 ( float84le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "701 700" _null_ _null_ _null_ _null_ float84le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 309 ( float84gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "701 700" _null_ _null_ _null_ _null_ float84gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 310 ( float84ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "701 700" _null_ _null_ _null_ _null_ float84ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 320 ( width_bucket PGNSP PGUID 12 1 0 0 f f t f i 4 0 23 "701 701 701 23" _null_ _null_ _null_ _null_ width_bucket_float8 _null_ _null_ _null_ ));
DESCR("bucket number of operand in equidepth histogram");
! DATA(insert OID = 311 ( float8 PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "700" _null_ _null_ _null_ _null_ ftod _null_ _null_ _null_ ));
DESCR("convert float4 to float8");
! DATA(insert OID = 312 ( float4 PGNSP PGUID 12 1 0 0 f f t f i 1 0 700 "701" _null_ _null_ _null_ _null_ dtof _null_ _null_ _null_ ));
DESCR("convert float8 to float4");
! DATA(insert OID = 313 ( int4 PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "21" _null_ _null_ _null_ _null_ i2toi4 _null_ _null_ _null_ ));
DESCR("convert int2 to int4");
! DATA(insert OID = 314 ( int2 PGNSP PGUID 12 1 0 0 f f t f i 1 0 21 "23" _null_ _null_ _null_ _null_ i4toi2 _null_ _null_ _null_ ));
DESCR("convert int4 to int2");
! DATA(insert OID = 315 ( int2vectoreq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "22 22" _null_ _null_ _null_ _null_ int2vectoreq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 316 ( float8 PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "23" _null_ _null_ _null_ _null_ i4tod _null_ _null_ _null_ ));
DESCR("convert int4 to float8");
! DATA(insert OID = 317 ( int4 PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "701" _null_ _null_ _null_ _null_ dtoi4 _null_ _null_ _null_ ));
DESCR("convert float8 to int4");
! DATA(insert OID = 318 ( float4 PGNSP PGUID 12 1 0 0 f f t f i 1 0 700 "23" _null_ _null_ _null_ _null_ i4tof _null_ _null_ _null_ ));
DESCR("convert int4 to float4");
! DATA(insert OID = 319 ( int4 PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "700" _null_ _null_ _null_ _null_ ftoi4 _null_ _null_ _null_ ));
DESCR("convert float4 to int4");
! DATA(insert OID = 330 ( btgettuple PGNSP PGUID 12 1 0 0 f f t f v 2 0 16 "2281 2281" _null_ _null_ _null_ _null_ btgettuple _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 636 ( btgetbitmap PGNSP PGUID 12 1 0 0 f f t f v 2 0 20 "2281 2281" _null_ _null_ _null_ _null_ btgetbitmap _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 331 ( btinsert PGNSP PGUID 12 1 0 0 f f t f v 6 0 16 "2281 2281 2281 2281 2281 2281" _null_ _null_ _null_ _null_ btinsert _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 333 ( btbeginscan PGNSP PGUID 12 1 0 0 f f t f v 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ btbeginscan _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 334 ( btrescan PGNSP PGUID 12 1 0 0 f f t f v 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ btrescan _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 335 ( btendscan PGNSP PGUID 12 1 0 0 f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ btendscan _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 336 ( btmarkpos PGNSP PGUID 12 1 0 0 f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ btmarkpos _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 337 ( btrestrpos PGNSP PGUID 12 1 0 0 f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ btrestrpos _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 338 ( btbuild PGNSP PGUID 12 1 0 0 f f t f v 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ btbuild _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 332 ( btbulkdelete PGNSP PGUID 12 1 0 0 f f t f v 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ btbulkdelete _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 972 ( btvacuumcleanup PGNSP PGUID 12 1 0 0 f f t f v 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ btvacuumcleanup _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 1268 ( btcostestimate PGNSP PGUID 12 1 0 0 f f t f v 8 0 2278 "2281 2281 2281 2281 2281 2281 2281 2281" _null_ _null_ _null_ _null_ btcostestimate _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 2785 ( btoptions PGNSP PGUID 12 1 0 0 f f t f s 2 0 17 "1009 16" _null_ _null_ _null_ _null_ btoptions _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 339 ( poly_same PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_same _null_ _null_ _null_ ));
DESCR("same as?");
! DATA(insert OID = 340 ( poly_contain PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_contain _null_ _null_ _null_ ));
DESCR("contains?");
! DATA(insert OID = 341 ( poly_left PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_left _null_ _null_ _null_ ));
DESCR("is left of");
! DATA(insert OID = 342 ( poly_overleft PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_overleft _null_ _null_ _null_ ));
DESCR("overlaps or is left of");
! DATA(insert OID = 343 ( poly_overright PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_overright _null_ _null_ _null_ ));
DESCR("overlaps or is right of");
! DATA(insert OID = 344 ( poly_right PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_right _null_ _null_ _null_ ));
DESCR("is right of");
! DATA(insert OID = 345 ( poly_contained PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_contained _null_ _null_ _null_ ));
DESCR("is contained by?");
! DATA(insert OID = 346 ( poly_overlap PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_overlap _null_ _null_ _null_ ));
DESCR("overlaps");
! DATA(insert OID = 347 ( poly_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 604 "2275" _null_ _null_ _null_ _null_ poly_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 348 ( poly_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "604" _null_ _null_ _null_ _null_ poly_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 350 ( btint2cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "21 21" _null_ _null_ _null_ _null_ btint2cmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 351 ( btint4cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ btint4cmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 842 ( btint8cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "20 20" _null_ _null_ _null_ _null_ btint8cmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 354 ( btfloat4cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "700 700" _null_ _null_ _null_ _null_ btfloat4cmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 355 ( btfloat8cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "701 701" _null_ _null_ _null_ _null_ btfloat8cmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 356 ( btoidcmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "26 26" _null_ _null_ _null_ _null_ btoidcmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 404 ( btoidvectorcmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "30 30" _null_ _null_ _null_ _null_ btoidvectorcmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 357 ( btabstimecmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "702 702" _null_ _null_ _null_ _null_ btabstimecmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 358 ( btcharcmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "18 18" _null_ _null_ _null_ _null_ btcharcmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 359 ( btnamecmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "19 19" _null_ _null_ _null_ _null_ btnamecmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 360 ( bttextcmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "25 25" _null_ _null_ _null_ _null_ bttextcmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 377 ( cash_cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "790 790" _null_ _null_ _null_ _null_ cash_cmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 380 ( btreltimecmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "703 703" _null_ _null_ _null_ _null_ btreltimecmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 381 ( bttintervalcmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "704 704" _null_ _null_ _null_ _null_ bttintervalcmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 382 ( btarraycmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "2277 2277" _null_ _null_ _null_ _null_ btarraycmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 361 ( lseg_distance PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "601 601" _null_ _null_ _null_ _null_ lseg_distance _null_ _null_ _null_ ));
DESCR("distance between");
! DATA(insert OID = 362 ( lseg_interpt PGNSP PGUID 12 1 0 0 f f t f i 2 0 600 "601 601" _null_ _null_ _null_ _null_ lseg_interpt _null_ _null_ _null_ ));
DESCR("intersection point");
! DATA(insert OID = 363 ( dist_ps PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "600 601" _null_ _null_ _null_ _null_ dist_ps _null_ _null_ _null_ ));
DESCR("distance between");
! DATA(insert OID = 364 ( dist_pb PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "600 603" _null_ _null_ _null_ _null_ dist_pb _null_ _null_ _null_ ));
DESCR("distance between point and box");
! DATA(insert OID = 365 ( dist_sb PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "601 603" _null_ _null_ _null_ _null_ dist_sb _null_ _null_ _null_ ));
DESCR("distance between segment and box");
! DATA(insert OID = 366 ( close_ps PGNSP PGUID 12 1 0 0 f f t f i 2 0 600 "600 601" _null_ _null_ _null_ _null_ close_ps _null_ _null_ _null_ ));
DESCR("closest point on line segment");
! DATA(insert OID = 367 ( close_pb PGNSP PGUID 12 1 0 0 f f t f i 2 0 600 "600 603" _null_ _null_ _null_ _null_ close_pb _null_ _null_ _null_ ));
DESCR("closest point on box");
! DATA(insert OID = 368 ( close_sb PGNSP PGUID 12 1 0 0 f f t f i 2 0 600 "601 603" _null_ _null_ _null_ _null_ close_sb _null_ _null_ _null_ ));
DESCR("closest point to line segment on box");
! DATA(insert OID = 369 ( on_ps PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "600 601" _null_ _null_ _null_ _null_ on_ps _null_ _null_ _null_ ));
DESCR("point contained in segment?");
! DATA(insert OID = 370 ( path_distance PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "602 602" _null_ _null_ _null_ _null_ path_distance _null_ _null_ _null_ ));
DESCR("distance between paths");
! DATA(insert OID = 371 ( dist_ppath PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "600 602" _null_ _null_ _null_ _null_ dist_ppath _null_ _null_ _null_ ));
DESCR("distance between point and path");
! DATA(insert OID = 372 ( on_sb PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "601 603" _null_ _null_ _null_ _null_ on_sb _null_ _null_ _null_ ));
DESCR("lseg contained in box?");
! DATA(insert OID = 373 ( inter_sb PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "601 603" _null_ _null_ _null_ _null_ inter_sb _null_ _null_ _null_ ));
DESCR("intersect?");
/* OIDS 400 - 499 */
! DATA(insert OID = 401 ( text PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "1042" _null_ _null_ _null_ _null_ rtrim1 _null_ _null_ _null_ ));
DESCR("convert char(n) to text");
! DATA(insert OID = 406 ( text PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "19" _null_ _null_ _null_ _null_ name_text _null_ _null_ _null_ ));
DESCR("convert name to text");
! DATA(insert OID = 407 ( name PGNSP PGUID 12 1 0 0 f f t f i 1 0 19 "25" _null_ _null_ _null_ _null_ text_name _null_ _null_ _null_ ));
DESCR("convert text to name");
! DATA(insert OID = 408 ( bpchar PGNSP PGUID 12 1 0 0 f f t f i 1 0 1042 "19" _null_ _null_ _null_ _null_ name_bpchar _null_ _null_ _null_ ));
DESCR("convert name to char(n)");
! DATA(insert OID = 409 ( name PGNSP PGUID 12 1 0 0 f f t f i 1 0 19 "1042" _null_ _null_ _null_ _null_ bpchar_name _null_ _null_ _null_ ));
DESCR("convert char(n) to name");
! DATA(insert OID = 440 ( hashgettuple PGNSP PGUID 12 1 0 0 f f t f v 2 0 16 "2281 2281" _null_ _null_ _null_ _null_ hashgettuple _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 637 ( hashgetbitmap PGNSP PGUID 12 1 0 0 f f t f v 2 0 20 "2281 2281" _null_ _null_ _null_ _null_ hashgetbitmap _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 441 ( hashinsert PGNSP PGUID 12 1 0 0 f f t f v 6 0 16 "2281 2281 2281 2281 2281 2281" _null_ _null_ _null_ _null_ hashinsert _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 443 ( hashbeginscan PGNSP PGUID 12 1 0 0 f f t f v 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ hashbeginscan _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 444 ( hashrescan PGNSP PGUID 12 1 0 0 f f t f v 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ hashrescan _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 445 ( hashendscan PGNSP PGUID 12 1 0 0 f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ hashendscan _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 446 ( hashmarkpos PGNSP PGUID 12 1 0 0 f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ hashmarkpos _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 447 ( hashrestrpos PGNSP PGUID 12 1 0 0 f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ hashrestrpos _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 448 ( hashbuild PGNSP PGUID 12 1 0 0 f f t f v 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ hashbuild _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 442 ( hashbulkdelete PGNSP PGUID 12 1 0 0 f f t f v 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ hashbulkdelete _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 425 ( hashvacuumcleanup PGNSP PGUID 12 1 0 0 f f t f v 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ hashvacuumcleanup _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 438 ( hashcostestimate PGNSP PGUID 12 1 0 0 f f t f v 8 0 2278 "2281 2281 2281 2281 2281 2281 2281 2281" _null_ _null_ _null_ _null_ hashcostestimate _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 2786 ( hashoptions PGNSP PGUID 12 1 0 0 f f t f s 2 0 17 "1009 16" _null_ _null_ _null_ _null_ hashoptions _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 449 ( hashint2 PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "21" _null_ _null_ _null_ _null_ hashint2 _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 450 ( hashint4 PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "23" _null_ _null_ _null_ _null_ hashint4 _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 949 ( hashint8 PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "20" _null_ _null_ _null_ _null_ hashint8 _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 451 ( hashfloat4 PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "700" _null_ _null_ _null_ _null_ hashfloat4 _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 452 ( hashfloat8 PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "701" _null_ _null_ _null_ _null_ hashfloat8 _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 453 ( hashoid PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "26" _null_ _null_ _null_ _null_ hashoid _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 454 ( hashchar PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "18" _null_ _null_ _null_ _null_ hashchar _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 455 ( hashname PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "19" _null_ _null_ _null_ _null_ hashname _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 400 ( hashtext PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "25" _null_ _null_ _null_ _null_ hashtext _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 456 ( hashvarlena PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "2281" _null_ _null_ _null_ _null_ hashvarlena _null_ _null_ _null_ ));
DESCR("hash any varlena type");
! DATA(insert OID = 457 ( hashoidvector PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "30" _null_ _null_ _null_ _null_ hashoidvector _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 329 ( hash_aclitem PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1033" _null_ _null_ _null_ _null_ hash_aclitem _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 398 ( hashint2vector PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "22" _null_ _null_ _null_ _null_ hashint2vector _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 399 ( hashmacaddr PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "829" _null_ _null_ _null_ _null_ hashmacaddr _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 422 ( hashinet PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "869" _null_ _null_ _null_ _null_ hashinet _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 432 ( hash_numeric PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1700" _null_ _null_ _null_ _null_ hash_numeric _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 458 ( text_larger PGNSP PGUID 12 1 0 0 f f t f i 2 0 25 "25 25" _null_ _null_ _null_ _null_ text_larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 459 ( text_smaller PGNSP PGUID 12 1 0 0 f f t f i 2 0 25 "25 25" _null_ _null_ _null_ _null_ text_smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 460 ( int8in PGNSP PGUID 12 1 0 0 f f t f i 1 0 20 "2275" _null_ _null_ _null_ _null_ int8in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 461 ( int8out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "20" _null_ _null_ _null_ _null_ int8out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 462 ( int8um PGNSP PGUID 12 1 0 0 f f t f i 1 0 20 "20" _null_ _null_ _null_ _null_ int8um _null_ _null_ _null_ ));
DESCR("negate");
! DATA(insert OID = 463 ( int8pl PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 464 ( int8mi PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 465 ( int8mul PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 466 ( int8div PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 467 ( int8eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "20 20" _null_ _null_ _null_ _null_ int8eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 468 ( int8ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "20 20" _null_ _null_ _null_ _null_ int8ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 469 ( int8lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "20 20" _null_ _null_ _null_ _null_ int8lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 470 ( int8gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "20 20" _null_ _null_ _null_ _null_ int8gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 471 ( int8le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "20 20" _null_ _null_ _null_ _null_ int8le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 472 ( int8ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "20 20" _null_ _null_ _null_ _null_ int8ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 474 ( int84eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "20 23" _null_ _null_ _null_ _null_ int84eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 475 ( int84ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "20 23" _null_ _null_ _null_ _null_ int84ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 476 ( int84lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "20 23" _null_ _null_ _null_ _null_ int84lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 477 ( int84gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "20 23" _null_ _null_ _null_ _null_ int84gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 478 ( int84le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "20 23" _null_ _null_ _null_ _null_ int84le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 479 ( int84ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "20 23" _null_ _null_ _null_ _null_ int84ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 480 ( int4 PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "20" _null_ _null_ _null_ _null_ int84 _null_ _null_ _null_ ));
DESCR("convert int8 to int4");
! DATA(insert OID = 481 ( int8 PGNSP PGUID 12 1 0 0 f f t f i 1 0 20 "23" _null_ _null_ _null_ _null_ int48 _null_ _null_ _null_ ));
DESCR("convert int4 to int8");
! DATA(insert OID = 482 ( float8 PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "20" _null_ _null_ _null_ _null_ i8tod _null_ _null_ _null_ ));
DESCR("convert int8 to float8");
! DATA(insert OID = 483 ( int8 PGNSP PGUID 12 1 0 0 f f t f i 1 0 20 "701" _null_ _null_ _null_ _null_ dtoi8 _null_ _null_ _null_ ));
DESCR("convert float8 to int8");
/* OIDS 500 - 599 */
/* OIDS 600 - 699 */
! DATA(insert OID = 652 ( float4 PGNSP PGUID 12 1 0 0 f f t f i 1 0 700 "20" _null_ _null_ _null_ _null_ i8tof _null_ _null_ _null_ ));
DESCR("convert int8 to float4");
! DATA(insert OID = 653 ( int8 PGNSP PGUID 12 1 0 0 f f t f i 1 0 20 "700" _null_ _null_ _null_ _null_ ftoi8 _null_ _null_ _null_ ));
DESCR("convert float4 to int8");
! DATA(insert OID = 714 ( int2 PGNSP PGUID 12 1 0 0 f f t f i 1 0 21 "20" _null_ _null_ _null_ _null_ int82 _null_ _null_ _null_ ));
DESCR("convert int8 to int2");
! DATA(insert OID = 754 ( int8 PGNSP PGUID 12 1 0 0 f f t f i 1 0 20 "21" _null_ _null_ _null_ _null_ int28 _null_ _null_ _null_ ));
DESCR("convert int2 to int8");
! DATA(insert OID = 655 ( namelt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "19 19" _null_ _null_ _null_ _null_ namelt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 656 ( namele PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "19 19" _null_ _null_ _null_ _null_ namele _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 657 ( namegt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "19 19" _null_ _null_ _null_ _null_ namegt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 658 ( namege PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "19 19" _null_ _null_ _null_ _null_ namege _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 659 ( namene PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "19 19" _null_ _null_ _null_ _null_ namene _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 668 ( bpchar PGNSP PGUID 12 1 0 0 f f t f i 3 0 1042 "1042 23 16" _null_ _null_ _null_ _null_ bpchar _null_ _null_ _null_ ));
DESCR("adjust char() to typmod length");
! DATA(insert OID = 669 ( varchar PGNSP PGUID 12 1 0 0 f f t f i 3 0 1043 "1043 23 16" _null_ _null_ _null_ _null_ varchar _null_ _null_ _null_ ));
DESCR("adjust varchar() to typmod length");
! DATA(insert OID = 676 ( mktinterval PGNSP PGUID 12 1 0 0 f f t f i 2 0 704 "702 702" _null_ _null_ _null_ _null_ mktinterval _null_ _null_ _null_ ));
DESCR("convert to tinterval");
! DATA(insert OID = 619 ( oidvectorne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "30 30" _null_ _null_ _null_ _null_ oidvectorne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 677 ( oidvectorlt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "30 30" _null_ _null_ _null_ _null_ oidvectorlt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 678 ( oidvectorle PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "30 30" _null_ _null_ _null_ _null_ oidvectorle _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 679 ( oidvectoreq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "30 30" _null_ _null_ _null_ _null_ oidvectoreq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 680 ( oidvectorge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "30 30" _null_ _null_ _null_ _null_ oidvectorge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 681 ( oidvectorgt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "30 30" _null_ _null_ _null_ _null_ oidvectorgt _null_ _null_ _null_ ));
DESCR("greater-than");
/* OIDS 700 - 799 */
! DATA(insert OID = 710 ( getpgusername PGNSP PGUID 12 1 0 0 f f t f s 0 0 19 "" _null_ _null_ _null_ _null_ current_user _null_ _null_ _null_ ));
DESCR("deprecated -- use current_user");
! DATA(insert OID = 716 ( oidlt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "26 26" _null_ _null_ _null_ _null_ oidlt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 717 ( oidle PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "26 26" _null_ _null_ _null_ _null_ oidle _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 720 ( octet_length PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "17" _null_ _null_ _null_ _null_ byteaoctetlen _null_ _null_ _null_ ));
DESCR("octet length");
! DATA(insert OID = 721 ( get_byte PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "17 23" _null_ _null_ _null_ _null_ byteaGetByte _null_ _null_ _null_ ));
DESCR("get byte");
! DATA(insert OID = 722 ( set_byte PGNSP PGUID 12 1 0 0 f f t f i 3 0 17 "17 23 23" _null_ _null_ _null_ _null_ byteaSetByte _null_ _null_ _null_ ));
DESCR("set byte");
! DATA(insert OID = 723 ( get_bit PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "17 23" _null_ _null_ _null_ _null_ byteaGetBit _null_ _null_ _null_ ));
DESCR("get bit");
! DATA(insert OID = 724 ( set_bit PGNSP PGUID 12 1 0 0 f f t f i 3 0 17 "17 23 23" _null_ _null_ _null_ _null_ byteaSetBit _null_ _null_ _null_ ));
DESCR("set bit");
! DATA(insert OID = 725 ( dist_pl PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "600 628" _null_ _null_ _null_ _null_ dist_pl _null_ _null_ _null_ ));
DESCR("distance between point and line");
! DATA(insert OID = 726 ( dist_lb PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "628 603" _null_ _null_ _null_ _null_ dist_lb _null_ _null_ _null_ ));
DESCR("distance between line and box");
! DATA(insert OID = 727 ( dist_sl PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "601 628" _null_ _null_ _null_ _null_ dist_sl _null_ _null_ _null_ ));
DESCR("distance between lseg and line");
! DATA(insert OID = 728 ( dist_cpoly PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "718 604" _null_ _null_ _null_ _null_ dist_cpoly _null_ _null_ _null_ ));
DESCR("distance between");
! DATA(insert OID = 729 ( poly_distance PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "604 604" _null_ _null_ _null_ _null_ poly_distance _null_ _null_ _null_ ));
DESCR("distance between");
! DATA(insert OID = 740 ( text_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ text_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 741 ( text_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ text_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 742 ( text_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ text_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 743 ( text_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ text_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 745 ( current_user PGNSP PGUID 12 1 0 0 f f t f s 0 0 19 "" _null_ _null_ _null_ _null_ current_user _null_ _null_ _null_ ));
DESCR("current user name");
! DATA(insert OID = 746 ( session_user PGNSP PGUID 12 1 0 0 f f t f s 0 0 19 "" _null_ _null_ _null_ _null_ session_user _null_ _null_ _null_ ));
DESCR("session user name");
! DATA(insert OID = 744 ( array_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ array_eq _null_ _null_ _null_ ));
DESCR("array equal");
! DATA(insert OID = 390 ( array_ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ array_ne _null_ _null_ _null_ ));
DESCR("array not equal");
! DATA(insert OID = 391 ( array_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ array_lt _null_ _null_ _null_ ));
DESCR("array less than");
! DATA(insert OID = 392 ( array_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ array_gt _null_ _null_ _null_ ));
DESCR("array greater than");
! DATA(insert OID = 393 ( array_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ array_le _null_ _null_ _null_ ));
DESCR("array less than or equal");
! DATA(insert OID = 396 ( array_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ array_ge _null_ _null_ _null_ ));
DESCR("array greater than or equal");
! DATA(insert OID = 748 ( array_ndims PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "2277" _null_ _null_ _null_ _null_ array_ndims _null_ _null_ _null_ ));
! DATA(insert OID = 747 ( array_dims PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "2277" _null_ _null_ _null_ _null_ array_dims _null_ _null_ _null_ ));
DESCR("array dimensions");
! DATA(insert OID = 750 ( array_in PGNSP PGUID 12 1 0 0 f f t f s 3 0 2277 "2275 26 23" _null_ _null_ _null_ _null_ array_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 751 ( array_out PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "2277" _null_ _null_ _null_ _null_ array_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2091 ( array_lower PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "2277 23" _null_ _null_ _null_ _null_ array_lower _null_ _null_ _null_ ));
DESCR("array lower dimension");
! DATA(insert OID = 2092 ( array_upper PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "2277 23" _null_ _null_ _null_ _null_ array_upper _null_ _null_ _null_ ));
DESCR("array upper dimension");
! DATA(insert OID = 2176 ( array_length PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "2277 23" _null_ _null_ _null_ _null_ array_length _null_ _null_ _null_ ));
DESCR("array length");
! DATA(insert OID = 2179 ( cardinality PGNSP PGUID 14 1 0 0 f f t f i 1 0 23 "2277" _null_ _null_ _null_ _null_ "select pg_catalog.array_length($1, 1)" _null_ _null_ _null_ ));
DESCR("array length");
! DATA(insert OID = 378 ( array_append PGNSP PGUID 12 1 0 0 f f f f i 2 0 2277 "2277 2283" _null_ _null_ _null_ _null_ array_push _null_ _null_ _null_ ));
DESCR("append element onto end of array");
! DATA(insert OID = 379 ( array_prepend PGNSP PGUID 12 1 0 0 f f f f i 2 0 2277 "2283 2277" _null_ _null_ _null_ _null_ array_push _null_ _null_ _null_ ));
DESCR("prepend element onto front of array");
! DATA(insert OID = 383 ( array_cat PGNSP PGUID 12 1 0 0 f f f f i 2 0 2277 "2277 2277" _null_ _null_ _null_ _null_ array_cat _null_ _null_ _null_ ));
DESCR("concatenate two arrays");
! DATA(insert OID = 394 ( string_to_array PGNSP PGUID 12 1 0 0 f f t f i 2 0 1009 "25 25" _null_ _null_ _null_ _null_ text_to_array _null_ _null_ _null_ ));
DESCR("split delimited text into text[]");
! DATA(insert OID = 395 ( array_to_string PGNSP PGUID 12 1 0 0 f f t f i 2 0 25 "2277 25" _null_ _null_ _null_ _null_ array_to_text _null_ _null_ _null_ ));
DESCR("concatenate array elements, using delimiter, into text");
! DATA(insert OID = 515 ( array_larger PGNSP PGUID 12 1 0 0 f f t f i 2 0 2277 "2277 2277" _null_ _null_ _null_ _null_ array_larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 516 ( array_smaller PGNSP PGUID 12 1 0 0 f f t f i 2 0 2277 "2277 2277" _null_ _null_ _null_ _null_ array_smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 1191 ( generate_subscripts PGNSP PGUID 12 1 1000 0 f f t t i 3 0 23 "2277 23 16" _null_ _null_ _null_ _null_ generate_subscripts _null_ _null_ _null_ ));
DESCR("array subscripts generator");
! DATA(insert OID = 1192 ( generate_subscripts PGNSP PGUID 12 1 1000 0 f f t t i 2 0 23 "2277 23" _null_ _null_ _null_ _null_ generate_subscripts_nodir _null_ _null_ _null_ ));
DESCR("array subscripts generator");
! DATA(insert OID = 1193 ( array_fill PGNSP PGUID 12 1 0 0 f f f f i 2 0 2277 "2283 1007" _null_ _null_ _null_ _null_ array_fill _null_ _null_ _null_ ));
DESCR("array constructor with value");
! DATA(insert OID = 1286 ( array_fill PGNSP PGUID 12 1 0 0 f f f f i 3 0 2277 "2283 1007 1007" _null_ _null_ _null_ _null_ array_fill_with_lower_bounds _null_ _null_ _null_ ));
DESCR("array constructor with value");
! DATA(insert OID = 2331 ( unnest PGNSP PGUID 12 1 100 0 f f t t i 1 0 2283 "2277" _null_ _null_ _null_ _null_ array_unnest _null_ _null_ _null_ ));
DESCR("expand array to set of rows");
! DATA(insert OID = 2333 ( array_agg_transfn PGNSP PGUID 12 1 0 0 f f f f i 2 0 2281 "2281 2283" _null_ _null_ _null_ _null_ array_agg_transfn _null_ _null_ _null_ ));
DESCR("array_agg transition function");
! DATA(insert OID = 2334 ( array_agg_finalfn PGNSP PGUID 12 1 0 0 f f f f i 1 0 2277 "2281" _null_ _null_ _null_ _null_ array_agg_finalfn _null_ _null_ _null_ ));
DESCR("array_agg final function");
! DATA(insert OID = 2335 ( array_agg PGNSP PGUID 12 1 0 0 t f f f i 1 0 2277 "2283" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("concatenate aggregate input into an array");
! DATA(insert OID = 760 ( smgrin PGNSP PGUID 12 1 0 0 f f t f s 1 0 210 "2275" _null_ _null_ _null_ _null_ smgrin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 761 ( smgrout PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "210" _null_ _null_ _null_ _null_ smgrout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 762 ( smgreq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "210 210" _null_ _null_ _null_ _null_ smgreq _null_ _null_ _null_ ));
DESCR("storage manager");
! DATA(insert OID = 763 ( smgrne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "210 210" _null_ _null_ _null_ _null_ smgrne _null_ _null_ _null_ ));
DESCR("storage manager");
! DATA(insert OID = 764 ( lo_import PGNSP PGUID 12 1 0 0 f f t f v 1 0 26 "25" _null_ _null_ _null_ _null_ lo_import _null_ _null_ _null_ ));
DESCR("large object import");
! DATA(insert OID = 767 ( lo_import PGNSP PGUID 12 1 0 0 f f t f v 2 0 26 "25 26" _null_ _null_ _null_ _null_ lo_import_with_oid _null_ _null_ _null_ ));
DESCR("large object import");
! DATA(insert OID = 765 ( lo_export PGNSP PGUID 12 1 0 0 f f t f v 2 0 23 "26 25" _null_ _null_ _null_ _null_ lo_export _null_ _null_ _null_ ));
DESCR("large object export");
! DATA(insert OID = 766 ( int4inc PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "23" _null_ _null_ _null_ _null_ int4inc _null_ _null_ _null_ ));
DESCR("increment");
! DATA(insert OID = 768 ( int4larger PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 769 ( int4smaller PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 770 ( int2larger PGNSP PGUID 12 1 0 0 f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 771 ( int2smaller PGNSP PGUID 12 1 0 0 f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 774 ( gistgettuple PGNSP PGUID 12 1 0 0 f f t f v 2 0 16 "2281 2281" _null_ _null_ _null_ _null_ gistgettuple _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 638 ( gistgetbitmap PGNSP PGUID 12 1 0 0 f f t f v 2 0 20 "2281 2281" _null_ _null_ _null_ _null_ gistgetbitmap _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 775 ( gistinsert PGNSP PGUID 12 1 0 0 f f t f v 6 0 16 "2281 2281 2281 2281 2281 2281" _null_ _null_ _null_ _null_ gistinsert _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 777 ( gistbeginscan PGNSP PGUID 12 1 0 0 f f t f v 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ gistbeginscan _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 778 ( gistrescan PGNSP PGUID 12 1 0 0 f f t f v 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ gistrescan _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 779 ( gistendscan PGNSP PGUID 12 1 0 0 f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ gistendscan _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 780 ( gistmarkpos PGNSP PGUID 12 1 0 0 f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ gistmarkpos _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 781 ( gistrestrpos PGNSP PGUID 12 1 0 0 f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ gistrestrpos _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 782 ( gistbuild PGNSP PGUID 12 1 0 0 f f t f v 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ gistbuild _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 776 ( gistbulkdelete PGNSP PGUID 12 1 0 0 f f t f v 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ gistbulkdelete _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 2561 ( gistvacuumcleanup PGNSP PGUID 12 1 0 0 f f t f v 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ gistvacuumcleanup _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 772 ( gistcostestimate PGNSP PGUID 12 1 0 0 f f t f v 8 0 2278 "2281 2281 2281 2281 2281 2281 2281 2281" _null_ _null_ _null_ _null_ gistcostestimate _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 2787 ( gistoptions PGNSP PGUID 12 1 0 0 f f t f s 2 0 17 "1009 16" _null_ _null_ _null_ _null_ gistoptions _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 784 ( tintervaleq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "704 704" _null_ _null_ _null_ _null_ tintervaleq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 785 ( tintervalne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "704 704" _null_ _null_ _null_ _null_ tintervalne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 786 ( tintervallt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "704 704" _null_ _null_ _null_ _null_ tintervallt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 787 ( tintervalgt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "704 704" _null_ _null_ _null_ _null_ tintervalgt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 788 ( tintervalle PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "704 704" _null_ _null_ _null_ _null_ tintervalle _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 789 ( tintervalge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "704 704" _null_ _null_ _null_ _null_ tintervalge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
/* OIDS 800 - 899 */
! DATA(insert OID = 846 ( cash_mul_flt4 PGNSP PGUID 12 1 0 0 f f t f i 2 0 790 "790 700" _null_ _null_ _null_ _null_ cash_mul_flt4 _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 847 ( cash_div_flt4 PGNSP PGUID 12 1 0 0 f f t f i 2 0 790 "790 700" _null_ _null_ _null_ _null_ cash_div_flt4 _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 848 ( flt4_mul_cash PGNSP PGUID 12 1 0 0 f f t f i 2 0 790 "700 790" _null_ _null_ _null_ _null_ flt4_mul_cash _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 849 ( position PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "25 25" _null_ _null_ _null_ _null_ textpos _null_ _null_ _null_ ));
DESCR("return position of substring");
! DATA(insert OID = 850 ( textlike PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ textlike _null_ _null_ _null_ ));
DESCR("matches LIKE expression");
! DATA(insert OID = 851 ( textnlike PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ textnlike _null_ _null_ _null_ ));
DESCR("does not match LIKE expression");
! DATA(insert OID = 852 ( int48eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "23 20" _null_ _null_ _null_ _null_ int48eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 853 ( int48ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "23 20" _null_ _null_ _null_ _null_ int48ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 854 ( int48lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "23 20" _null_ _null_ _null_ _null_ int48lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 855 ( int48gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "23 20" _null_ _null_ _null_ _null_ int48gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 856 ( int48le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "23 20" _null_ _null_ _null_ _null_ int48le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 857 ( int48ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "23 20" _null_ _null_ _null_ _null_ int48ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 858 ( namelike PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "19 25" _null_ _null_ _null_ _null_ namelike _null_ _null_ _null_ ));
DESCR("matches LIKE expression");
! DATA(insert OID = 859 ( namenlike PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "19 25" _null_ _null_ _null_ _null_ namenlike _null_ _null_ _null_ ));
DESCR("does not match LIKE expression");
! DATA(insert OID = 860 ( bpchar PGNSP PGUID 12 1 0 0 f f t f i 1 0 1042 "18" _null_ _null_ _null_ _null_ char_bpchar _null_ _null_ _null_ ));
DESCR("convert char to char()");
! DATA(insert OID = 861 ( current_database PGNSP PGUID 12 1 0 0 f f t f s 0 0 19 "" _null_ _null_ _null_ _null_ current_database _null_ _null_ _null_ ));
DESCR("returns the current database");
! DATA(insert OID = 817 ( current_query PGNSP PGUID 12 1 0 0 f f f f v 0 0 25 "" _null_ _null_ _null_ _null_ current_query _null_ _null_ _null_ ));
DESCR("returns the currently executing query");
! DATA(insert OID = 862 ( int4_mul_cash PGNSP PGUID 12 1 0 0 f f t f i 2 0 790 "23 790" _null_ _null_ _null_ _null_ int4_mul_cash _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 863 ( int2_mul_cash PGNSP PGUID 12 1 0 0 f f t f i 2 0 790 "21 790" _null_ _null_ _null_ _null_ int2_mul_cash _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 864 ( cash_mul_int4 PGNSP PGUID 12 1 0 0 f f t f i 2 0 790 "790 23" _null_ _null_ _null_ _null_ cash_mul_int4 _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 865 ( cash_div_int4 PGNSP PGUID 12 1 0 0 f f t f i 2 0 790 "790 23" _null_ _null_ _null_ _null_ cash_div_int4 _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 866 ( cash_mul_int2 PGNSP PGUID 12 1 0 0 f f t f i 2 0 790 "790 21" _null_ _null_ _null_ _null_ cash_mul_int2 _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 867 ( cash_div_int2 PGNSP PGUID 12 1 0 0 f f t f i 2 0 790 "790 21" _null_ _null_ _null_ _null_ cash_div_int2 _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 886 ( cash_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 790 "2275" _null_ _null_ _null_ _null_ cash_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 887 ( cash_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "790" _null_ _null_ _null_ _null_ cash_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 888 ( cash_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "790 790" _null_ _null_ _null_ _null_ cash_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 889 ( cash_ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "790 790" _null_ _null_ _null_ _null_ cash_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 890 ( cash_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "790 790" _null_ _null_ _null_ _null_ cash_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 891 ( cash_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "790 790" _null_ _null_ _null_ _null_ cash_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 892 ( cash_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "790 790" _null_ _null_ _null_ _null_ cash_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 893 ( cash_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "790 790" _null_ _null_ _null_ _null_ cash_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 894 ( cash_pl PGNSP PGUID 12 1 0 0 f f t f i 2 0 790 "790 790" _null_ _null_ _null_ _null_ cash_pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 895 ( cash_mi PGNSP PGUID 12 1 0 0 f f t f i 2 0 790 "790 790" _null_ _null_ _null_ _null_ cash_mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 896 ( cash_mul_flt8 PGNSP PGUID 12 1 0 0 f f t f i 2 0 790 "790 701" _null_ _null_ _null_ _null_ cash_mul_flt8 _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 897 ( cash_div_flt8 PGNSP PGUID 12 1 0 0 f f t f i 2 0 790 "790 701" _null_ _null_ _null_ _null_ cash_div_flt8 _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 898 ( cashlarger PGNSP PGUID 12 1 0 0 f f t f i 2 0 790 "790 790" _null_ _null_ _null_ _null_ cashlarger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 899 ( cashsmaller PGNSP PGUID 12 1 0 0 f f t f i 2 0 790 "790 790" _null_ _null_ _null_ _null_ cashsmaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 919 ( flt8_mul_cash PGNSP PGUID 12 1 0 0 f f t f i 2 0 790 "701 790" _null_ _null_ _null_ _null_ flt8_mul_cash _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 935 ( cash_words PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "790" _null_ _null_ _null_ _null_ cash_words _null_ _null_ _null_ ));
DESCR("output amount as words");
/* OIDS 900 - 999 */
! DATA(insert OID = 940 ( mod PGNSP PGUID 12 1 0 0 f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2mod _null_ _null_ _null_ ));
DESCR("modulus");
! DATA(insert OID = 941 ( mod PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4mod _null_ _null_ _null_ ));
DESCR("modulus");
! DATA(insert OID = 945 ( int8mod PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8mod _null_ _null_ _null_ ));
DESCR("modulus");
! DATA(insert OID = 947 ( mod PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8mod _null_ _null_ _null_ ));
DESCR("modulus");
! DATA(insert OID = 944 ( char PGNSP PGUID 12 1 0 0 f f t f i 1 0 18 "25" _null_ _null_ _null_ _null_ text_char _null_ _null_ _null_ ));
DESCR("convert text to char");
! DATA(insert OID = 946 ( text PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "18" _null_ _null_ _null_ _null_ char_text _null_ _null_ _null_ ));
DESCR("convert char to text");
! DATA(insert OID = 952 ( lo_open PGNSP PGUID 12 1 0 0 f f t f v 2 0 23 "26 23" _null_ _null_ _null_ _null_ lo_open _null_ _null_ _null_ ));
DESCR("large object open");
! DATA(insert OID = 953 ( lo_close PGNSP PGUID 12 1 0 0 f f t f v 1 0 23 "23" _null_ _null_ _null_ _null_ lo_close _null_ _null_ _null_ ));
DESCR("large object close");
! DATA(insert OID = 954 ( loread PGNSP PGUID 12 1 0 0 f f t f v 2 0 17 "23 23" _null_ _null_ _null_ _null_ loread _null_ _null_ _null_ ));
DESCR("large object read");
! DATA(insert OID = 955 ( lowrite PGNSP PGUID 12 1 0 0 f f t f v 2 0 23 "23 17" _null_ _null_ _null_ _null_ lowrite _null_ _null_ _null_ ));
DESCR("large object write");
! DATA(insert OID = 956 ( lo_lseek PGNSP PGUID 12 1 0 0 f f t f v 3 0 23 "23 23 23" _null_ _null_ _null_ _null_ lo_lseek _null_ _null_ _null_ ));
DESCR("large object seek");
! DATA(insert OID = 957 ( lo_creat PGNSP PGUID 12 1 0 0 f f t f v 1 0 26 "23" _null_ _null_ _null_ _null_ lo_creat _null_ _null_ _null_ ));
DESCR("large object create");
! DATA(insert OID = 715 ( lo_create PGNSP PGUID 12 1 0 0 f f t f v 1 0 26 "26" _null_ _null_ _null_ _null_ lo_create _null_ _null_ _null_ ));
DESCR("large object create");
! DATA(insert OID = 958 ( lo_tell PGNSP PGUID 12 1 0 0 f f t f v 1 0 23 "23" _null_ _null_ _null_ _null_ lo_tell _null_ _null_ _null_ ));
DESCR("large object position");
! DATA(insert OID = 1004 ( lo_truncate PGNSP PGUID 12 1 0 0 f f t f v 2 0 23 "23 23" _null_ _null_ _null_ _null_ lo_truncate _null_ _null_ _null_ ));
DESCR("truncate large object");
! DATA(insert OID = 959 ( on_pl PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "600 628" _null_ _null_ _null_ _null_ on_pl _null_ _null_ _null_ ));
DESCR("point on line?");
! DATA(insert OID = 960 ( on_sl PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "601 628" _null_ _null_ _null_ _null_ on_sl _null_ _null_ _null_ ));
DESCR("lseg on line?");
! DATA(insert OID = 961 ( close_pl PGNSP PGUID 12 1 0 0 f f t f i 2 0 600 "600 628" _null_ _null_ _null_ _null_ close_pl _null_ _null_ _null_ ));
DESCR("closest point on line");
! DATA(insert OID = 962 ( close_sl PGNSP PGUID 12 1 0 0 f f t f i 2 0 600 "601 628" _null_ _null_ _null_ _null_ close_sl _null_ _null_ _null_ ));
DESCR("closest point to line segment on line");
! DATA(insert OID = 963 ( close_lb PGNSP PGUID 12 1 0 0 f f t f i 2 0 600 "628 603" _null_ _null_ _null_ _null_ close_lb _null_ _null_ _null_ ));
DESCR("closest point to line on box");
! DATA(insert OID = 964 ( lo_unlink PGNSP PGUID 12 1 0 0 f f t f v 1 0 23 "26" _null_ _null_ _null_ _null_ lo_unlink _null_ _null_ _null_ ));
DESCR("large object unlink(delete)");
! DATA(insert OID = 973 ( path_inter PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "602 602" _null_ _null_ _null_ _null_ path_inter _null_ _null_ _null_ ));
DESCR("intersect?");
! DATA(insert OID = 975 ( area PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "603" _null_ _null_ _null_ _null_ box_area _null_ _null_ _null_ ));
DESCR("box area");
! DATA(insert OID = 976 ( width PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "603" _null_ _null_ _null_ _null_ box_width _null_ _null_ _null_ ));
DESCR("box width");
! DATA(insert OID = 977 ( height PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "603" _null_ _null_ _null_ _null_ box_height _null_ _null_ _null_ ));
DESCR("box height");
! DATA(insert OID = 978 ( box_distance PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "603 603" _null_ _null_ _null_ _null_ box_distance _null_ _null_ _null_ ));
DESCR("distance between boxes");
! DATA(insert OID = 979 ( area PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "602" _null_ _null_ _null_ _null_ path_area _null_ _null_ _null_ ));
DESCR("area of a closed path");
! DATA(insert OID = 980 ( box_intersect PGNSP PGUID 12 1 0 0 f f t f i 2 0 603 "603 603" _null_ _null_ _null_ _null_ box_intersect _null_ _null_ _null_ ));
DESCR("box intersection (another box)");
! DATA(insert OID = 981 ( diagonal PGNSP PGUID 12 1 0 0 f f t f i 1 0 601 "603" _null_ _null_ _null_ _null_ box_diagonal _null_ _null_ _null_ ));
DESCR("box diagonal");
! DATA(insert OID = 982 ( path_n_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "602 602" _null_ _null_ _null_ _null_ path_n_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 983 ( path_n_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "602 602" _null_ _null_ _null_ _null_ path_n_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 984 ( path_n_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "602 602" _null_ _null_ _null_ _null_ path_n_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 985 ( path_n_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "602 602" _null_ _null_ _null_ _null_ path_n_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 986 ( path_n_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "602 602" _null_ _null_ _null_ _null_ path_n_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 987 ( path_length PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "602" _null_ _null_ _null_ _null_ path_length _null_ _null_ _null_ ));
DESCR("sum of path segment lengths");
! DATA(insert OID = 988 ( point_ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "600 600" _null_ _null_ _null_ _null_ point_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 989 ( point_vert PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "600 600" _null_ _null_ _null_ _null_ point_vert _null_ _null_ _null_ ));
DESCR("vertically aligned?");
! DATA(insert OID = 990 ( point_horiz PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "600 600" _null_ _null_ _null_ _null_ point_horiz _null_ _null_ _null_ ));
DESCR("horizontally aligned?");
! DATA(insert OID = 991 ( point_distance PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "600 600" _null_ _null_ _null_ _null_ point_distance _null_ _null_ _null_ ));
DESCR("distance between");
! DATA(insert OID = 992 ( slope PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "600 600" _null_ _null_ _null_ _null_ point_slope _null_ _null_ _null_ ));
DESCR("slope between points");
! DATA(insert OID = 993 ( lseg PGNSP PGUID 12 1 0 0 f f t f i 2 0 601 "600 600" _null_ _null_ _null_ _null_ lseg_construct _null_ _null_ _null_ ));
DESCR("convert points to line segment");
! DATA(insert OID = 994 ( lseg_intersect PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_intersect _null_ _null_ _null_ ));
DESCR("intersect?");
! DATA(insert OID = 995 ( lseg_parallel PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_parallel _null_ _null_ _null_ ));
DESCR("parallel?");
! DATA(insert OID = 996 ( lseg_perp PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_perp _null_ _null_ _null_ ));
DESCR("perpendicular?");
! DATA(insert OID = 997 ( lseg_vertical PGNSP PGUID 12 1 0 0 f f t f i 1 0 16 "601" _null_ _null_ _null_ _null_ lseg_vertical _null_ _null_ _null_ ));
DESCR("vertical?");
! DATA(insert OID = 998 ( lseg_horizontal PGNSP PGUID 12 1 0 0 f f t f i 1 0 16 "601" _null_ _null_ _null_ _null_ lseg_horizontal _null_ _null_ _null_ ));
DESCR("horizontal?");
! DATA(insert OID = 999 ( lseg_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_eq _null_ _null_ _null_ ));
DESCR("equal");
/* OIDS 1000 - 1999 */
! DATA(insert OID = 1026 ( timezone PGNSP PGUID 12 1 0 0 f f t f i 2 0 1114 "1186 1184" _null_ _null_ _null_ _null_ timestamptz_izone _null_ _null_ _null_ ));
DESCR("adjust timestamp to new time zone");
! DATA(insert OID = 1031 ( aclitemin PGNSP PGUID 12 1 0 0 f f t f s 1 0 1033 "2275" _null_ _null_ _null_ _null_ aclitemin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1032 ( aclitemout PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "1033" _null_ _null_ _null_ _null_ aclitemout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1035 ( aclinsert PGNSP PGUID 12 1 0 0 f f t f i 2 0 1034 "1034 1033" _null_ _null_ _null_ _null_ aclinsert _null_ _null_ _null_ ));
DESCR("add/update ACL item");
! DATA(insert OID = 1036 ( aclremove PGNSP PGUID 12 1 0 0 f f t f i 2 0 1034 "1034 1033" _null_ _null_ _null_ _null_ aclremove _null_ _null_ _null_ ));
DESCR("remove ACL item");
! DATA(insert OID = 1037 ( aclcontains PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1034 1033" _null_ _null_ _null_ _null_ aclcontains _null_ _null_ _null_ ));
DESCR("ACL contains item?");
! DATA(insert OID = 1062 ( aclitemeq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1033 1033" _null_ _null_ _null_ _null_ aclitem_eq _null_ _null_ _null_ ));
DESCR("equality operator for ACL items");
! DATA(insert OID = 1365 ( makeaclitem PGNSP PGUID 12 1 0 0 f f t f i 4 0 1033 "26 26 25 16" _null_ _null_ _null_ _null_ makeaclitem _null_ _null_ _null_ ));
DESCR("make ACL item");
! DATA(insert OID = 1044 ( bpcharin PGNSP PGUID 12 1 0 0 f f t f i 3 0 1042 "2275 26 23" _null_ _null_ _null_ _null_ bpcharin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1045 ( bpcharout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "1042" _null_ _null_ _null_ _null_ bpcharout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2913 ( bpchartypmodin PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1263" _null_ _null_ _null_ _null_ bpchartypmodin _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 2914 ( bpchartypmodout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ bpchartypmodout _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 1046 ( varcharin PGNSP PGUID 12 1 0 0 f f t f i 3 0 1043 "2275 26 23" _null_ _null_ _null_ _null_ varcharin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1047 ( varcharout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "1043" _null_ _null_ _null_ _null_ varcharout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2915 ( varchartypmodin PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1263" _null_ _null_ _null_ _null_ varchartypmodin _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 2916 ( varchartypmodout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ varchartypmodout _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 1048 ( bpchareq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ bpchareq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1049 ( bpcharlt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ bpcharlt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 1050 ( bpcharle PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ bpcharle _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1051 ( bpchargt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ bpchargt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1052 ( bpcharge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ bpcharge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1053 ( bpcharne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ bpcharne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1063 ( bpchar_larger PGNSP PGUID 12 1 0 0 f f t f i 2 0 1042 "1042 1042" _null_ _null_ _null_ _null_ bpchar_larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 1064 ( bpchar_smaller PGNSP PGUID 12 1 0 0 f f t f i 2 0 1042 "1042 1042" _null_ _null_ _null_ _null_ bpchar_smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 1078 ( bpcharcmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "1042 1042" _null_ _null_ _null_ _null_ bpcharcmp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 1080 ( hashbpchar PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1042" _null_ _null_ _null_ _null_ hashbpchar _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 1081 ( format_type PGNSP PGUID 12 1 0 0 f f f f s 2 0 25 "26 23" _null_ _null_ _null_ _null_ format_type _null_ _null_ _null_ ));
DESCR("format a type oid and atttypmod to canonical SQL");
! DATA(insert OID = 1084 ( date_in PGNSP PGUID 12 1 0 0 f f t f s 1 0 1082 "2275" _null_ _null_ _null_ _null_ date_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1085 ( date_out PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "1082" _null_ _null_ _null_ _null_ date_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1086 ( date_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1082 1082" _null_ _null_ _null_ _null_ date_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1087 ( date_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1082 1082" _null_ _null_ _null_ _null_ date_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 1088 ( date_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1082 1082" _null_ _null_ _null_ _null_ date_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1089 ( date_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1082 1082" _null_ _null_ _null_ _null_ date_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1090 ( date_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1082 1082" _null_ _null_ _null_ _null_ date_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1091 ( date_ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1082 1082" _null_ _null_ _null_ _null_ date_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1092 ( date_cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "1082 1082" _null_ _null_ _null_ _null_ date_cmp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
/* OIDS 1100 - 1199 */
! DATA(insert OID = 1102 ( time_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1083 1083" _null_ _null_ _null_ _null_ time_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 1103 ( time_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1083 1083" _null_ _null_ _null_ _null_ time_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1104 ( time_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1083 1083" _null_ _null_ _null_ _null_ time_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1105 ( time_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1083 1083" _null_ _null_ _null_ _null_ time_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1106 ( time_ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1083 1083" _null_ _null_ _null_ _null_ time_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1107 ( time_cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "1083 1083" _null_ _null_ _null_ _null_ time_cmp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 1138 ( date_larger PGNSP PGUID 12 1 0 0 f f t f i 2 0 1082 "1082 1082" _null_ _null_ _null_ _null_ date_larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 1139 ( date_smaller PGNSP PGUID 12 1 0 0 f f t f i 2 0 1082 "1082 1082" _null_ _null_ _null_ _null_ date_smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 1140 ( date_mi PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "1082 1082" _null_ _null_ _null_ _null_ date_mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 1141 ( date_pli PGNSP PGUID 12 1 0 0 f f t f i 2 0 1082 "1082 23" _null_ _null_ _null_ _null_ date_pli _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 1142 ( date_mii PGNSP PGUID 12 1 0 0 f f t f i 2 0 1082 "1082 23" _null_ _null_ _null_ _null_ date_mii _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 1143 ( time_in PGNSP PGUID 12 1 0 0 f f t f s 3 0 1083 "2275 26 23" _null_ _null_ _null_ _null_ time_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1144 ( time_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "1083" _null_ _null_ _null_ _null_ time_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2909 ( timetypmodin PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1263" _null_ _null_ _null_ _null_ timetypmodin _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 2910 ( timetypmodout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ timetypmodout _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 1145 ( time_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1083 1083" _null_ _null_ _null_ _null_ time_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1146 ( circle_add_pt PGNSP PGUID 12 1 0 0 f f t f i 2 0 718 "718 600" _null_ _null_ _null_ _null_ circle_add_pt _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 1147 ( circle_sub_pt PGNSP PGUID 12 1 0 0 f f t f i 2 0 718 "718 600" _null_ _null_ _null_ _null_ circle_sub_pt _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 1148 ( circle_mul_pt PGNSP PGUID 12 1 0 0 f f t f i 2 0 718 "718 600" _null_ _null_ _null_ _null_ circle_mul_pt _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 1149 ( circle_div_pt PGNSP PGUID 12 1 0 0 f f t f i 2 0 718 "718 600" _null_ _null_ _null_ _null_ circle_div_pt _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 1150 ( timestamptz_in PGNSP PGUID 12 1 0 0 f f t f s 3 0 1184 "2275 26 23" _null_ _null_ _null_ _null_ timestamptz_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1151 ( timestamptz_out PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "1184" _null_ _null_ _null_ _null_ timestamptz_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2907 ( timestamptztypmodin PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1263" _null_ _null_ _null_ _null_ timestamptztypmodin _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 2908 ( timestamptztypmodout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ timestamptztypmodout _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 1152 ( timestamptz_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1184 1184" _null_ _null_ _null_ _null_ timestamp_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1153 ( timestamptz_ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1184 1184" _null_ _null_ _null_ _null_ timestamp_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1154 ( timestamptz_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1184 1184" _null_ _null_ _null_ _null_ timestamp_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 1155 ( timestamptz_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1184 1184" _null_ _null_ _null_ _null_ timestamp_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1156 ( timestamptz_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1184 1184" _null_ _null_ _null_ _null_ timestamp_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1157 ( timestamptz_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1184 1184" _null_ _null_ _null_ _null_ timestamp_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1158 ( to_timestamp PGNSP PGUID 14 1 0 0 f f t f i 1 0 1184 "701" _null_ _null_ _null_ _null_ "select (''epoch''::pg_catalog.timestamptz + $1 * ''1 second''::pg_catalog.interval)" _null_ _null_ _null_ ));
DESCR("convert UNIX epoch to timestamptz");
! DATA(insert OID = 1159 ( timezone PGNSP PGUID 12 1 0 0 f f t f i 2 0 1114 "25 1184" _null_ _null_ _null_ _null_ timestamptz_zone _null_ _null_ _null_ ));
DESCR("adjust timestamp to new time zone");
! DATA(insert OID = 1160 ( interval_in PGNSP PGUID 12 1 0 0 f f t f s 3 0 1186 "2275 26 23" _null_ _null_ _null_ _null_ interval_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1161 ( interval_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "1186" _null_ _null_ _null_ _null_ interval_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2903 ( intervaltypmodin PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1263" _null_ _null_ _null_ _null_ intervaltypmodin _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 2904 ( intervaltypmodout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ intervaltypmodout _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 1162 ( interval_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1186 1186" _null_ _null_ _null_ _null_ interval_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1163 ( interval_ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1186 1186" _null_ _null_ _null_ _null_ interval_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1164 ( interval_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1186 1186" _null_ _null_ _null_ _null_ interval_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 1165 ( interval_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1186 1186" _null_ _null_ _null_ _null_ interval_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1166 ( interval_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1186 1186" _null_ _null_ _null_ _null_ interval_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1167 ( interval_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1186 1186" _null_ _null_ _null_ _null_ interval_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1168 ( interval_um PGNSP PGUID 12 1 0 0 f f t f i 1 0 1186 "1186" _null_ _null_ _null_ _null_ interval_um _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 1169 ( interval_pl PGNSP PGUID 12 1 0 0 f f t f i 2 0 1186 "1186 1186" _null_ _null_ _null_ _null_ interval_pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 1170 ( interval_mi PGNSP PGUID 12 1 0 0 f f t f i 2 0 1186 "1186 1186" _null_ _null_ _null_ _null_ interval_mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 1171 ( date_part PGNSP PGUID 12 1 0 0 f f t f s 2 0 701 "25 1184" _null_ _null_ _null_ _null_ timestamptz_part _null_ _null_ _null_ ));
DESCR("extract field from timestamp with time zone");
! DATA(insert OID = 1172 ( date_part PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "25 1186" _null_ _null_ _null_ _null_ interval_part _null_ _null_ _null_ ));
DESCR("extract field from interval");
! DATA(insert OID = 1173 ( timestamptz PGNSP PGUID 12 1 0 0 f f t f i 1 0 1184 "702" _null_ _null_ _null_ _null_ abstime_timestamptz _null_ _null_ _null_ ));
DESCR("convert abstime to timestamp with time zone");
! DATA(insert OID = 1174 ( timestamptz PGNSP PGUID 12 1 0 0 f f t f s 1 0 1184 "1082" _null_ _null_ _null_ _null_ date_timestamptz _null_ _null_ _null_ ));
DESCR("convert date to timestamp with time zone");
! DATA(insert OID = 2711 ( justify_interval PGNSP PGUID 12 1 0 0 f f t f i 1 0 1186 "1186" _null_ _null_ _null_ _null_ interval_justify_interval _null_ _null_ _null_ ));
DESCR("promote groups of 24 hours to numbers of days and promote groups of 30 days to numbers of months");
! DATA(insert OID = 1175 ( justify_hours PGNSP PGUID 12 1 0 0 f f t f i 1 0 1186 "1186" _null_ _null_ _null_ _null_ interval_justify_hours _null_ _null_ _null_ ));
DESCR("promote groups of 24 hours to numbers of days");
! DATA(insert OID = 1295 ( justify_days PGNSP PGUID 12 1 0 0 f f t f i 1 0 1186 "1186" _null_ _null_ _null_ _null_ interval_justify_days _null_ _null_ _null_ ));
DESCR("promote groups of 30 days to numbers of months");
! DATA(insert OID = 1176 ( timestamptz PGNSP PGUID 14 1 0 0 f f t f s 2 0 1184 "1082 1083" _null_ _null_ _null_ _null_ "select cast(($1 + $2) as timestamp with time zone)" _null_ _null_ _null_ ));
DESCR("convert date and time to timestamp with time zone");
! DATA(insert OID = 1177 ( interval PGNSP PGUID 12 1 0 0 f f t f i 1 0 1186 "703" _null_ _null_ _null_ _null_ reltime_interval _null_ _null_ _null_ ));
DESCR("convert reltime to interval");
! DATA(insert OID = 1178 ( date PGNSP PGUID 12 1 0 0 f f t f s 1 0 1082 "1184" _null_ _null_ _null_ _null_ timestamptz_date _null_ _null_ _null_ ));
DESCR("convert timestamp with time zone to date");
! DATA(insert OID = 1179 ( date PGNSP PGUID 12 1 0 0 f f t f s 1 0 1082 "702" _null_ _null_ _null_ _null_ abstime_date _null_ _null_ _null_ ));
DESCR("convert abstime to date");
! DATA(insert OID = 1180 ( abstime PGNSP PGUID 12 1 0 0 f f t f i 1 0 702 "1184" _null_ _null_ _null_ _null_ timestamptz_abstime _null_ _null_ _null_ ));
DESCR("convert timestamp with time zone to abstime");
! DATA(insert OID = 1181 ( age PGNSP PGUID 12 1 0 0 f f t f s 1 0 23 "28" _null_ _null_ _null_ _null_ xid_age _null_ _null_ _null_ ));
DESCR("age of a transaction ID, in transactions before current transaction");
! DATA(insert OID = 1188 ( timestamptz_mi PGNSP PGUID 12 1 0 0 f f t f i 2 0 1186 "1184 1184" _null_ _null_ _null_ _null_ timestamp_mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 1189 ( timestamptz_pl_interval PGNSP PGUID 12 1 0 0 f f t f s 2 0 1184 "1184 1186" _null_ _null_ _null_ _null_ timestamptz_pl_interval _null_ _null_ _null_ ));
DESCR("plus");
! DATA(insert OID = 1190 ( timestamptz_mi_interval PGNSP PGUID 12 1 0 0 f f t f s 2 0 1184 "1184 1186" _null_ _null_ _null_ _null_ timestamptz_mi_interval _null_ _null_ _null_ ));
DESCR("minus");
! DATA(insert OID = 1194 ( reltime PGNSP PGUID 12 1 0 0 f f t f i 1 0 703 "1186" _null_ _null_ _null_ _null_ interval_reltime _null_ _null_ _null_ ));
DESCR("convert interval to reltime");
! DATA(insert OID = 1195 ( timestamptz_smaller PGNSP PGUID 12 1 0 0 f f t f i 2 0 1184 "1184 1184" _null_ _null_ _null_ _null_ timestamp_smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 1196 ( timestamptz_larger PGNSP PGUID 12 1 0 0 f f t f i 2 0 1184 "1184 1184" _null_ _null_ _null_ _null_ timestamp_larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 1197 ( interval_smaller PGNSP PGUID 12 1 0 0 f f t f i 2 0 1186 "1186 1186" _null_ _null_ _null_ _null_ interval_smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 1198 ( interval_larger PGNSP PGUID 12 1 0 0 f f t f i 2 0 1186 "1186 1186" _null_ _null_ _null_ _null_ interval_larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 1199 ( age PGNSP PGUID 12 1 0 0 f f t f i 2 0 1186 "1184 1184" _null_ _null_ _null_ _null_ timestamptz_age _null_ _null_ _null_ ));
DESCR("date difference preserving months and years");
/* OIDS 1200 - 1299 */
! DATA(insert OID = 1200 ( interval PGNSP PGUID 12 1 0 0 f f t f i 2 0 1186 "1186 23" _null_ _null_ _null_ _null_ interval_scale _null_ _null_ _null_ ));
DESCR("adjust interval precision");
! DATA(insert OID = 1215 ( obj_description PGNSP PGUID 14 100 0 0 f f t f s 2 0 25 "26 19" _null_ _null_ _null_ _null_ "select description from pg_catalog.pg_description where objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and relnamespace = PGNSP) and objsubid = 0" _null_ _null_ _null_ ));
DESCR("get description for object id and catalog name");
! DATA(insert OID = 1216 ( col_description PGNSP PGUID 14 100 0 0 f f t f s 2 0 25 "26 23" _null_ _null_ _null_ _null_ "select description from pg_catalog.pg_description where objoid = $1 and classoid = ''pg_catalog.pg_class''::pg_catalog.regclass and objsubid = $2" _null_ _null_ _null_ ));
DESCR("get description for table column");
! DATA(insert OID = 1993 ( shobj_description PGNSP PGUID 14 100 0 0 f f t f s 2 0 25 "26 19" _null_ _null_ _null_ _null_ "select description from pg_catalog.pg_shdescription where objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and relnamespace = PGNSP)" _null_ _null_ _null_ ));
DESCR("get description for object id and shared catalog name");
! DATA(insert OID = 1217 ( date_trunc PGNSP PGUID 12 1 0 0 f f t f s 2 0 1184 "25 1184" _null_ _null_ _null_ _null_ timestamptz_trunc _null_ _null_ _null_ ));
DESCR("truncate timestamp with time zone to specified units");
! DATA(insert OID = 1218 ( date_trunc PGNSP PGUID 12 1 0 0 f f t f i 2 0 1186 "25 1186" _null_ _null_ _null_ _null_ interval_trunc _null_ _null_ _null_ ));
DESCR("truncate interval to specified units");
! DATA(insert OID = 1219 ( int8inc PGNSP PGUID 12 1 0 0 f f t f i 1 0 20 "20" _null_ _null_ _null_ _null_ int8inc _null_ _null_ _null_ ));
DESCR("increment");
! DATA(insert OID = 2804 ( int8inc_any PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 2276" _null_ _null_ _null_ _null_ int8inc_any _null_ _null_ _null_ ));
DESCR("increment, ignores second argument");
! DATA(insert OID = 1230 ( int8abs PGNSP PGUID 12 1 0 0 f f t f i 1 0 20 "20" _null_ _null_ _null_ _null_ int8abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 1236 ( int8larger PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 1237 ( int8smaller PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 1238 ( texticregexeq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ texticregexeq _null_ _null_ _null_ ));
DESCR("matches regex., case-insensitive");
! DATA(insert OID = 1239 ( texticregexne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ texticregexne _null_ _null_ _null_ ));
DESCR("does not match regex., case-insensitive");
! DATA(insert OID = 1240 ( nameicregexeq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "19 25" _null_ _null_ _null_ _null_ nameicregexeq _null_ _null_ _null_ ));
DESCR("matches regex., case-insensitive");
! DATA(insert OID = 1241 ( nameicregexne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "19 25" _null_ _null_ _null_ _null_ nameicregexne _null_ _null_ _null_ ));
DESCR("does not match regex., case-insensitive");
! DATA(insert OID = 1251 ( int4abs PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "23" _null_ _null_ _null_ _null_ int4abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 1253 ( int2abs PGNSP PGUID 12 1 0 0 f f t f i 1 0 21 "21" _null_ _null_ _null_ _null_ int2abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 1271 ( overlaps PGNSP PGUID 12 1 0 0 f f f f i 4 0 16 "1266 1266 1266 1266" _null_ _null_ _null_ _null_ overlaps_timetz _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 1272 ( datetime_pl PGNSP PGUID 12 1 0 0 f f t f i 2 0 1114 "1082 1083" _null_ _null_ _null_ _null_ datetime_timestamp _null_ _null_ _null_ ));
DESCR("convert date and time to timestamp");
! DATA(insert OID = 1273 ( date_part PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "25 1266" _null_ _null_ _null_ _null_ timetz_part _null_ _null_ _null_ ));
DESCR("extract field from time with time zone");
! DATA(insert OID = 1274 ( int84pl PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 23" _null_ _null_ _null_ _null_ int84pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 1275 ( int84mi PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 23" _null_ _null_ _null_ _null_ int84mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 1276 ( int84mul PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 23" _null_ _null_ _null_ _null_ int84mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 1277 ( int84div PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 23" _null_ _null_ _null_ _null_ int84div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 1278 ( int48pl PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "23 20" _null_ _null_ _null_ _null_ int48pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 1279 ( int48mi PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "23 20" _null_ _null_ _null_ _null_ int48mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 1280 ( int48mul PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "23 20" _null_ _null_ _null_ _null_ int48mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 1281 ( int48div PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "23 20" _null_ _null_ _null_ _null_ int48div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 837 ( int82pl PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 21" _null_ _null_ _null_ _null_ int82pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 838 ( int82mi PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 21" _null_ _null_ _null_ _null_ int82mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 839 ( int82mul PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 21" _null_ _null_ _null_ _null_ int82mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 840 ( int82div PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 21" _null_ _null_ _null_ _null_ int82div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 841 ( int28pl PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "21 20" _null_ _null_ _null_ _null_ int28pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 942 ( int28mi PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "21 20" _null_ _null_ _null_ _null_ int28mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 943 ( int28mul PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "21 20" _null_ _null_ _null_ _null_ int28mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 948 ( int28div PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "21 20" _null_ _null_ _null_ _null_ int28div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 1287 ( oid PGNSP PGUID 12 1 0 0 f f t f i 1 0 26 "20" _null_ _null_ _null_ _null_ i8tooid _null_ _null_ _null_ ));
DESCR("convert int8 to oid");
! DATA(insert OID = 1288 ( int8 PGNSP PGUID 12 1 0 0 f f t f i 1 0 20 "26" _null_ _null_ _null_ _null_ oidtoi8 _null_ _null_ _null_ ));
DESCR("convert oid to int8");
! DATA(insert OID = 1291 ( suppress_redundant_updates_trigger PGNSP PGUID 12 1 0 0 f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ suppress_redundant_updates_trigger _null_ _null_ _null_ ));
DESCR("trigger to suppress updates when new and old records match");
! DATA(insert OID = 1292 ( tideq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "27 27" _null_ _null_ _null_ _null_ tideq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1293 ( currtid PGNSP PGUID 12 1 0 0 f f t f v 2 0 27 "26 27" _null_ _null_ _null_ _null_ currtid_byreloid _null_ _null_ _null_ ));
DESCR("latest tid of a tuple");
! DATA(insert OID = 1294 ( currtid2 PGNSP PGUID 12 1 0 0 f f t f v 2 0 27 "25 27" _null_ _null_ _null_ _null_ currtid_byrelname _null_ _null_ _null_ ));
DESCR("latest tid of a tuple");
! DATA(insert OID = 1265 ( tidne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "27 27" _null_ _null_ _null_ _null_ tidne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 2790 ( tidgt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "27 27" _null_ _null_ _null_ _null_ tidgt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 2791 ( tidlt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "27 27" _null_ _null_ _null_ _null_ tidlt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 2792 ( tidge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "27 27" _null_ _null_ _null_ _null_ tidge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 2793 ( tidle PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "27 27" _null_ _null_ _null_ _null_ tidle _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 2794 ( bttidcmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "27 27" _null_ _null_ _null_ _null_ bttidcmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 2795 ( tidlarger PGNSP PGUID 12 1 0 0 f f t f i 2 0 27 "27 27" _null_ _null_ _null_ _null_ tidlarger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 2796 ( tidsmaller PGNSP PGUID 12 1 0 0 f f t f i 2 0 27 "27 27" _null_ _null_ _null_ _null_ tidsmaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 1296 ( timedate_pl PGNSP PGUID 14 1 0 0 f f t f i 2 0 1114 "1083 1082" _null_ _null_ _null_ _null_ "select ($2 + $1)" _null_ _null_ _null_ ));
DESCR("convert time and date to timestamp");
! DATA(insert OID = 1297 ( datetimetz_pl PGNSP PGUID 12 1 0 0 f f t f i 2 0 1184 "1082 1266" _null_ _null_ _null_ _null_ datetimetz_timestamptz _null_ _null_ _null_ ));
DESCR("convert date and time with time zone to timestamp with time zone");
! DATA(insert OID = 1298 ( timetzdate_pl PGNSP PGUID 14 1 0 0 f f t f i 2 0 1184 "1266 1082" _null_ _null_ _null_ _null_ "select ($2 + $1)" _null_ _null_ _null_ ));
DESCR("convert time with time zone and date to timestamp with time zone");
! DATA(insert OID = 1299 ( now PGNSP PGUID 12 1 0 0 f f t f s 0 0 1184 "" _null_ _null_ _null_ _null_ now _null_ _null_ _null_ ));
DESCR("current transaction time");
! DATA(insert OID = 2647 ( transaction_timestamp PGNSP PGUID 12 1 0 0 f f t f s 0 0 1184 "" _null_ _null_ _null_ _null_ now _null_ _null_ _null_ ));
DESCR("current transaction time");
! DATA(insert OID = 2648 ( statement_timestamp PGNSP PGUID 12 1 0 0 f f t f s 0 0 1184 "" _null_ _null_ _null_ _null_ statement_timestamp _null_ _null_ _null_ ));
DESCR("current statement time");
! DATA(insert OID = 2649 ( clock_timestamp PGNSP PGUID 12 1 0 0 f f t f v 0 0 1184 "" _null_ _null_ _null_ _null_ clock_timestamp _null_ _null_ _null_ ));
DESCR("current clock time");
/* OIDS 1300 - 1399 */
! DATA(insert OID = 1300 ( positionsel PGNSP PGUID 12 1 0 0 f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ positionsel _null_ _null_ _null_ ));
DESCR("restriction selectivity for position-comparison operators");
! DATA(insert OID = 1301 ( positionjoinsel PGNSP PGUID 12 1 0 0 f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ positionjoinsel _null_ _null_ _null_ ));
DESCR("join selectivity for position-comparison operators");
! DATA(insert OID = 1302 ( contsel PGNSP PGUID 12 1 0 0 f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ contsel _null_ _null_ _null_ ));
DESCR("restriction selectivity for containment comparison operators");
! DATA(insert OID = 1303 ( contjoinsel PGNSP PGUID 12 1 0 0 f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ contjoinsel _null_ _null_ _null_ ));
DESCR("join selectivity for containment comparison operators");
! DATA(insert OID = 1304 ( overlaps PGNSP PGUID 12 1 0 0 f f f f i 4 0 16 "1184 1184 1184 1184" _null_ _null_ _null_ _null_ overlaps_timestamp _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 1305 ( overlaps PGNSP PGUID 14 1 0 0 f f f f s 4 0 16 "1184 1186 1184 1186" _null_ _null_ _null_ _null_ "select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 1306 ( overlaps PGNSP PGUID 14 1 0 0 f f f f s 4 0 16 "1184 1184 1184 1186" _null_ _null_ _null_ _null_ "select ($1, $2) overlaps ($3, ($3 + $4))" _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 1307 ( overlaps PGNSP PGUID 14 1 0 0 f f f f s 4 0 16 "1184 1186 1184 1184" _null_ _null_ _null_ _null_ "select ($1, ($1 + $2)) overlaps ($3, $4)" _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 1308 ( overlaps PGNSP PGUID 12 1 0 0 f f f f i 4 0 16 "1083 1083 1083 1083" _null_ _null_ _null_ _null_ overlaps_time _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 1309 ( overlaps PGNSP PGUID 14 1 0 0 f f f f i 4 0 16 "1083 1186 1083 1186" _null_ _null_ _null_ _null_ "select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 1310 ( overlaps PGNSP PGUID 14 1 0 0 f f f f i 4 0 16 "1083 1083 1083 1186" _null_ _null_ _null_ _null_ "select ($1, $2) overlaps ($3, ($3 + $4))" _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 1311 ( overlaps PGNSP PGUID 14 1 0 0 f f f f i 4 0 16 "1083 1186 1083 1083" _null_ _null_ _null_ _null_ "select ($1, ($1 + $2)) overlaps ($3, $4)" _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 1312 ( timestamp_in PGNSP PGUID 12 1 0 0 f f t f s 3 0 1114 "2275 26 23" _null_ _null_ _null_ _null_ timestamp_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1313 ( timestamp_out PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "1114" _null_ _null_ _null_ _null_ timestamp_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2905 ( timestamptypmodin PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1263" _null_ _null_ _null_ _null_ timestamptypmodin _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 2906 ( timestamptypmodout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ timestamptypmodout _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 1314 ( timestamptz_cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "1184 1184" _null_ _null_ _null_ _null_ timestamp_cmp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 1315 ( interval_cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "1186 1186" _null_ _null_ _null_ _null_ interval_cmp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 1316 ( time PGNSP PGUID 12 1 0 0 f f t f i 1 0 1083 "1114" _null_ _null_ _null_ _null_ timestamp_time _null_ _null_ _null_ ));
DESCR("convert timestamp to time");
! DATA(insert OID = 1317 ( length PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "25" _null_ _null_ _null_ _null_ textlen _null_ _null_ _null_ ));
DESCR("length");
! DATA(insert OID = 1318 ( length PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1042" _null_ _null_ _null_ _null_ bpcharlen _null_ _null_ _null_ ));
DESCR("character length");
! DATA(insert OID = 1319 ( xideqint4 PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "28 23" _null_ _null_ _null_ _null_ xideq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1326 ( interval_div PGNSP PGUID 12 1 0 0 f f t f i 2 0 1186 "1186 701" _null_ _null_ _null_ _null_ interval_div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 1339 ( dlog10 PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dlog10 _null_ _null_ _null_ ));
DESCR("base 10 logarithm");
! DATA(insert OID = 1340 ( log PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dlog10 _null_ _null_ _null_ ));
DESCR("base 10 logarithm");
! DATA(insert OID = 1341 ( ln PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dlog1 _null_ _null_ _null_ ));
DESCR("natural logarithm");
! DATA(insert OID = 1342 ( round PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dround _null_ _null_ _null_ ));
DESCR("round to nearest integer");
! DATA(insert OID = 1343 ( trunc PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dtrunc _null_ _null_ _null_ ));
DESCR("truncate to integer");
! DATA(insert OID = 1344 ( sqrt PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dsqrt _null_ _null_ _null_ ));
DESCR("square root");
! DATA(insert OID = 1345 ( cbrt PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dcbrt _null_ _null_ _null_ ));
DESCR("cube root");
! DATA(insert OID = 1346 ( pow PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ dpow _null_ _null_ _null_ ));
DESCR("exponentiation");
! DATA(insert OID = 1368 ( power PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ dpow _null_ _null_ _null_ ));
DESCR("exponentiation");
! DATA(insert OID = 1347 ( exp PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dexp _null_ _null_ _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 100 0 0 f f t f s 1 0 25 "26" _null_ _null_ _null_ _null_ "select description from pg_catalog.pg_description where objoid = $1 and objsubid = 0" _null_ _null_ _null_ ));
DESCR("get description for object id (deprecated)");
! DATA(insert OID = 1349 ( oidvectortypes PGNSP PGUID 12 1 0 0 f f t f s 1 0 25 "30" _null_ _null_ _null_ _null_ oidvectortypes _null_ _null_ _null_ ));
DESCR("print type names of oidvector field");
! DATA(insert OID = 1350 ( timetz_in PGNSP PGUID 12 1 0 0 f f t f s 3 0 1266 "2275 26 23" _null_ _null_ _null_ _null_ timetz_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1351 ( timetz_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "1266" _null_ _null_ _null_ _null_ timetz_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2911 ( timetztypmodin PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1263" _null_ _null_ _null_ _null_ timetztypmodin _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 2912 ( timetztypmodout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ timetztypmodout _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 1352 ( timetz_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1266 1266" _null_ _null_ _null_ _null_ timetz_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1353 ( timetz_ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1266 1266" _null_ _null_ _null_ _null_ timetz_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1354 ( timetz_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1266 1266" _null_ _null_ _null_ _null_ timetz_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 1355 ( timetz_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1266 1266" _null_ _null_ _null_ _null_ timetz_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1356 ( timetz_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1266 1266" _null_ _null_ _null_ _null_ timetz_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1357 ( timetz_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1266 1266" _null_ _null_ _null_ _null_ timetz_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1358 ( timetz_cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "1266 1266" _null_ _null_ _null_ _null_ timetz_cmp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 1359 ( timestamptz PGNSP PGUID 12 1 0 0 f f t f i 2 0 1184 "1082 1266" _null_ _null_ _null_ _null_ datetimetz_timestamptz _null_ _null_ _null_ ));
DESCR("convert date and time with time zone to timestamp with time zone");
! DATA(insert OID = 1364 ( time PGNSP PGUID 14 1 0 0 f f t f s 1 0 1083 "702" _null_ _null_ _null_ _null_ "select cast(cast($1 as timestamp without time zone) as pg_catalog.time)" _null_ _null_ _null_ ));
DESCR("convert abstime to time");
! DATA(insert OID = 1367 ( character_length PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1042" _null_ _null_ _null_ _null_ bpcharlen _null_ _null_ _null_ ));
DESCR("character length");
! DATA(insert OID = 1369 ( character_length PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "25" _null_ _null_ _null_ _null_ textlen _null_ _null_ _null_ ));
DESCR("character length");
! DATA(insert OID = 1370 ( interval PGNSP PGUID 12 1 0 0 f f t f i 1 0 1186 "1083" _null_ _null_ _null_ _null_ time_interval _null_ _null_ _null_ ));
DESCR("convert time to interval");
! DATA(insert OID = 1372 ( char_length PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1042" _null_ _null_ _null_ _null_ bpcharlen _null_ _null_ _null_ ));
DESCR("character length");
! DATA(insert OID = 1374 ( octet_length PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "25" _null_ _null_ _null_ _null_ textoctetlen _null_ _null_ _null_ ));
DESCR("octet length");
! DATA(insert OID = 1375 ( octet_length PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1042" _null_ _null_ _null_ _null_ bpcharoctetlen _null_ _null_ _null_ ));
DESCR("octet length");
! DATA(insert OID = 1377 ( time_larger PGNSP PGUID 12 1 0 0 f f t f i 2 0 1083 "1083 1083" _null_ _null_ _null_ _null_ time_larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 1378 ( time_smaller PGNSP PGUID 12 1 0 0 f f t f i 2 0 1083 "1083 1083" _null_ _null_ _null_ _null_ time_smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 1379 ( timetz_larger PGNSP PGUID 12 1 0 0 f f t f i 2 0 1266 "1266 1266" _null_ _null_ _null_ _null_ timetz_larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 1380 ( timetz_smaller PGNSP PGUID 12 1 0 0 f f t f i 2 0 1266 "1266 1266" _null_ _null_ _null_ _null_ timetz_smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 1381 ( char_length PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "25" _null_ _null_ _null_ _null_ textlen _null_ _null_ _null_ ));
DESCR("character length");
! DATA(insert OID = 1382 ( date_part PGNSP PGUID 14 1 0 0 f f t f s 2 0 701 "25 702" _null_ _null_ _null_ _null_ "select pg_catalog.date_part($1, cast($2 as timestamp with time zone))" _null_ _null_ _null_ ));
DESCR("extract field from abstime");
! DATA(insert OID = 1383 ( date_part PGNSP PGUID 14 1 0 0 f f t f s 2 0 701 "25 703" _null_ _null_ _null_ _null_ "select pg_catalog.date_part($1, cast($2 as pg_catalog.interval))" _null_ _null_ _null_ ));
DESCR("extract field from reltime");
! DATA(insert OID = 1384 ( date_part PGNSP PGUID 14 1 0 0 f f t f i 2 0 701 "25 1082" _null_ _null_ _null_ _null_ "select pg_catalog.date_part($1, cast($2 as timestamp without time zone))" _null_ _null_ _null_ ));
DESCR("extract field from date");
! DATA(insert OID = 1385 ( date_part PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "25 1083" _null_ _null_ _null_ _null_ time_part _null_ _null_ _null_ ));
DESCR("extract field from time");
! DATA(insert OID = 1386 ( age PGNSP PGUID 14 1 0 0 f f t f s 1 0 1186 "1184" _null_ _null_ _null_ _null_ "select pg_catalog.age(cast(current_date as timestamp with time zone), $1)" _null_ _null_ _null_ ));
DESCR("date difference from today preserving months and years");
! DATA(insert OID = 1388 ( timetz PGNSP PGUID 12 1 0 0 f f t f s 1 0 1266 "1184" _null_ _null_ _null_ _null_ timestamptz_timetz _null_ _null_ _null_ ));
DESCR("convert timestamptz to timetz");
! DATA(insert OID = 1373 ( isfinite PGNSP PGUID 12 1 0 0 f f t f i 1 0 16 "1082" _null_ _null_ _null_ _null_ date_finite _null_ _null_ _null_ ));
DESCR("finite date?");
! DATA(insert OID = 1389 ( isfinite PGNSP PGUID 12 1 0 0 f f t f i 1 0 16 "1184" _null_ _null_ _null_ _null_ timestamp_finite _null_ _null_ _null_ ));
DESCR("finite timestamp?");
! DATA(insert OID = 1390 ( isfinite PGNSP PGUID 12 1 0 0 f f t f i 1 0 16 "1186" _null_ _null_ _null_ _null_ interval_finite _null_ _null_ _null_ ));
DESCR("finite interval?");
! DATA(insert OID = 1376 ( factorial PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "20" _null_ _null_ _null_ _null_ numeric_fac _null_ _null_ _null_ ));
DESCR("factorial");
! DATA(insert OID = 1394 ( abs PGNSP PGUID 12 1 0 0 f f t f i 1 0 700 "700" _null_ _null_ _null_ _null_ float4abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 1395 ( abs PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ float8abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 1396 ( abs PGNSP PGUID 12 1 0 0 f f t f i 1 0 20 "20" _null_ _null_ _null_ _null_ int8abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 1397 ( abs PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "23" _null_ _null_ _null_ _null_ int4abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 1398 ( abs PGNSP PGUID 12 1 0 0 f f t f i 1 0 21 "21" _null_ _null_ _null_ _null_ int2abs _null_ _null_ _null_ ));
DESCR("absolute value");
/* OIDS 1400 - 1499 */
! DATA(insert OID = 1400 ( name PGNSP PGUID 12 1 0 0 f f t f i 1 0 19 "1043" _null_ _null_ _null_ _null_ text_name _null_ _null_ _null_ ));
DESCR("convert varchar to name");
! DATA(insert OID = 1401 ( varchar PGNSP PGUID 12 1 0 0 f f t f i 1 0 1043 "19" _null_ _null_ _null_ _null_ name_text _null_ _null_ _null_ ));
DESCR("convert name to varchar");
! DATA(insert OID = 1402 ( current_schema PGNSP PGUID 12 1 0 0 f f t f s 0 0 19 "" _null_ _null_ _null_ _null_ current_schema _null_ _null_ _null_ ));
DESCR("current schema name");
! DATA(insert OID = 1403 ( current_schemas PGNSP PGUID 12 1 0 0 f f t f s 1 0 1003 "16" _null_ _null_ _null_ _null_ current_schemas _null_ _null_ _null_ ));
DESCR("current schema search list");
! DATA(insert OID = 1404 ( overlay PGNSP PGUID 14 1 0 0 f f t f i 4 0 25 "25 25 23 23" _null_ _null_ _null_ _null_ "select pg_catalog.substring($1, 1, ($3 - 1)) || $2 || pg_catalog.substring($1, ($3 + $4))" _null_ _null_ _null_ ));
DESCR("substitute portion of string");
! DATA(insert OID = 1405 ( overlay PGNSP PGUID 14 1 0 0 f f t f i 3 0 25 "25 25 23" _null_ _null_ _null_ _null_ "select pg_catalog.substring($1, 1, ($3 - 1)) || $2 || pg_catalog.substring($1, ($3 + pg_catalog.char_length($2)))" _null_ _null_ _null_ ));
DESCR("substitute portion of string");
! DATA(insert OID = 1406 ( isvertical PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "600 600" _null_ _null_ _null_ _null_ point_vert _null_ _null_ _null_ ));
DESCR("vertically aligned?");
! DATA(insert OID = 1407 ( ishorizontal PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "600 600" _null_ _null_ _null_ _null_ point_horiz _null_ _null_ _null_ ));
DESCR("horizontally aligned?");
! DATA(insert OID = 1408 ( isparallel PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_parallel _null_ _null_ _null_ ));
DESCR("parallel?");
! DATA(insert OID = 1409 ( isperp PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_perp _null_ _null_ _null_ ));
DESCR("perpendicular?");
! DATA(insert OID = 1410 ( isvertical PGNSP PGUID 12 1 0 0 f f t f i 1 0 16 "601" _null_ _null_ _null_ _null_ lseg_vertical _null_ _null_ _null_ ));
DESCR("vertical?");
! DATA(insert OID = 1411 ( ishorizontal PGNSP PGUID 12 1 0 0 f f t f i 1 0 16 "601" _null_ _null_ _null_ _null_ lseg_horizontal _null_ _null_ _null_ ));
DESCR("horizontal?");
! DATA(insert OID = 1412 ( isparallel PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "628 628" _null_ _null_ _null_ _null_ line_parallel _null_ _null_ _null_ ));
DESCR("parallel?");
! DATA(insert OID = 1413 ( isperp PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "628 628" _null_ _null_ _null_ _null_ line_perp _null_ _null_ _null_ ));
DESCR("perpendicular?");
! DATA(insert OID = 1414 ( isvertical PGNSP PGUID 12 1 0 0 f f t f i 1 0 16 "628" _null_ _null_ _null_ _null_ line_vertical _null_ _null_ _null_ ));
DESCR("vertical?");
! DATA(insert OID = 1415 ( ishorizontal PGNSP PGUID 12 1 0 0 f f t f i 1 0 16 "628" _null_ _null_ _null_ _null_ line_horizontal _null_ _null_ _null_ ));
DESCR("horizontal?");
! DATA(insert OID = 1416 ( point PGNSP PGUID 12 1 0 0 f f t f i 1 0 600 "718" _null_ _null_ _null_ _null_ circle_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 1419 ( time PGNSP PGUID 12 1 0 0 f f t f i 1 0 1083 "1186" _null_ _null_ _null_ _null_ interval_time _null_ _null_ _null_ ));
DESCR("convert interval to time");
! DATA(insert OID = 1421 ( box PGNSP PGUID 12 1 0 0 f f t f i 2 0 603 "600 600" _null_ _null_ _null_ _null_ points_box _null_ _null_ _null_ ));
DESCR("convert points to box");
! DATA(insert OID = 1422 ( box_add PGNSP PGUID 12 1 0 0 f f t f i 2 0 603 "603 600" _null_ _null_ _null_ _null_ box_add _null_ _null_ _null_ ));
DESCR("add point to box (translate)");
! DATA(insert OID = 1423 ( box_sub PGNSP PGUID 12 1 0 0 f f t f i 2 0 603 "603 600" _null_ _null_ _null_ _null_ box_sub _null_ _null_ _null_ ));
DESCR("subtract point from box (translate)");
! DATA(insert OID = 1424 ( box_mul PGNSP PGUID 12 1 0 0 f f t f i 2 0 603 "603 600" _null_ _null_ _null_ _null_ box_mul _null_ _null_ _null_ ));
DESCR("multiply box by point (scale)");
! DATA(insert OID = 1425 ( box_div PGNSP PGUID 12 1 0 0 f f t f i 2 0 603 "603 600" _null_ _null_ _null_ _null_ box_div _null_ _null_ _null_ ));
DESCR("divide box by point (scale)");
! DATA(insert OID = 1426 ( path_contain_pt PGNSP PGUID 14 1 0 0 f f t f i 2 0 16 "602 600" _null_ _null_ _null_ _null_ "select pg_catalog.on_ppath($2, $1)" _null_ _null_ _null_ ));
DESCR("path contains point?");
! DATA(insert OID = 1428 ( poly_contain_pt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "604 600" _null_ _null_ _null_ _null_ poly_contain_pt _null_ _null_ _null_ ));
DESCR("polygon contains point?");
! DATA(insert OID = 1429 ( pt_contained_poly PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "600 604" _null_ _null_ _null_ _null_ pt_contained_poly _null_ _null_ _null_ ));
DESCR("point contained in polygon?");
! DATA(insert OID = 1430 ( isclosed PGNSP PGUID 12 1 0 0 f f t f i 1 0 16 "602" _null_ _null_ _null_ _null_ path_isclosed _null_ _null_ _null_ ));
DESCR("path closed?");
! DATA(insert OID = 1431 ( isopen PGNSP PGUID 12 1 0 0 f f t f i 1 0 16 "602" _null_ _null_ _null_ _null_ path_isopen _null_ _null_ _null_ ));
DESCR("path open?");
! DATA(insert OID = 1432 ( path_npoints PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "602" _null_ _null_ _null_ _null_ path_npoints _null_ _null_ _null_ ));
DESCR("number of 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 1 0 0 f f t f i 1 0 602 "602" _null_ _null_ _null_ _null_ path_close _null_ _null_ _null_ ));
DESCR("close path");
! DATA(insert OID = 1434 ( popen PGNSP PGUID 12 1 0 0 f f t f i 1 0 602 "602" _null_ _null_ _null_ _null_ path_open _null_ _null_ _null_ ));
DESCR("open path");
! DATA(insert OID = 1435 ( path_add PGNSP PGUID 12 1 0 0 f f t f i 2 0 602 "602 602" _null_ _null_ _null_ _null_ path_add _null_ _null_ _null_ ));
DESCR("concatenate open paths");
! DATA(insert OID = 1436 ( path_add_pt PGNSP PGUID 12 1 0 0 f f t f i 2 0 602 "602 600" _null_ _null_ _null_ _null_ path_add_pt _null_ _null_ _null_ ));
DESCR("add (translate path)");
! DATA(insert OID = 1437 ( path_sub_pt PGNSP PGUID 12 1 0 0 f f t f i 2 0 602 "602 600" _null_ _null_ _null_ _null_ path_sub_pt _null_ _null_ _null_ ));
DESCR("subtract (translate path)");
! DATA(insert OID = 1438 ( path_mul_pt PGNSP PGUID 12 1 0 0 f f t f i 2 0 602 "602 600" _null_ _null_ _null_ _null_ path_mul_pt _null_ _null_ _null_ ));
DESCR("multiply (rotate/scale path)");
! DATA(insert OID = 1439 ( path_div_pt PGNSP PGUID 12 1 0 0 f f t f i 2 0 602 "602 600" _null_ _null_ _null_ _null_ path_div_pt _null_ _null_ _null_ ));
DESCR("divide (rotate/scale path)");
! DATA(insert OID = 1440 ( point PGNSP PGUID 12 1 0 0 f f t f i 2 0 600 "701 701" _null_ _null_ _null_ _null_ construct_point _null_ _null_ _null_ ));
DESCR("convert x, y to point");
! DATA(insert OID = 1441 ( point_add PGNSP PGUID 12 1 0 0 f f t f i 2 0 600 "600 600" _null_ _null_ _null_ _null_ point_add _null_ _null_ _null_ ));
DESCR("add points (translate)");
! DATA(insert OID = 1442 ( point_sub PGNSP PGUID 12 1 0 0 f f t f i 2 0 600 "600 600" _null_ _null_ _null_ _null_ point_sub _null_ _null_ _null_ ));
DESCR("subtract points (translate)");
! DATA(insert OID = 1443 ( point_mul PGNSP PGUID 12 1 0 0 f f t f i 2 0 600 "600 600" _null_ _null_ _null_ _null_ point_mul _null_ _null_ _null_ ));
DESCR("multiply points (scale/rotate)");
! DATA(insert OID = 1444 ( point_div PGNSP PGUID 12 1 0 0 f f t f i 2 0 600 "600 600" _null_ _null_ _null_ _null_ point_div _null_ _null_ _null_ ));
DESCR("divide points (scale/rotate)");
! DATA(insert OID = 1445 ( poly_npoints PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "604" _null_ _null_ _null_ _null_ poly_npoints _null_ _null_ _null_ ));
DESCR("number of points in polygon");
! DATA(insert OID = 1446 ( box PGNSP PGUID 12 1 0 0 f f t f i 1 0 603 "604" _null_ _null_ _null_ _null_ poly_box _null_ _null_ _null_ ));
DESCR("convert polygon to bounding box");
! DATA(insert OID = 1447 ( path PGNSP PGUID 12 1 0 0 f f t f i 1 0 602 "604" _null_ _null_ _null_ _null_ poly_path _null_ _null_ _null_ ));
DESCR("convert polygon to path");
! DATA(insert OID = 1448 ( polygon PGNSP PGUID 12 1 0 0 f f t f i 1 0 604 "603" _null_ _null_ _null_ _null_ box_poly _null_ _null_ _null_ ));
DESCR("convert box to polygon");
! DATA(insert OID = 1449 ( polygon PGNSP PGUID 12 1 0 0 f f t f i 1 0 604 "602" _null_ _null_ _null_ _null_ path_poly _null_ _null_ _null_ ));
DESCR("convert path to polygon");
! DATA(insert OID = 1450 ( circle_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 718 "2275" _null_ _null_ _null_ _null_ circle_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1451 ( circle_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "718" _null_ _null_ _null_ _null_ circle_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1452 ( circle_same PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_same _null_ _null_ _null_ ));
DESCR("same as?");
! DATA(insert OID = 1453 ( circle_contain PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_contain _null_ _null_ _null_ ));
DESCR("contains?");
! DATA(insert OID = 1454 ( circle_left PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_left _null_ _null_ _null_ ));
DESCR("is left of");
! DATA(insert OID = 1455 ( circle_overleft PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_overleft _null_ _null_ _null_ ));
DESCR("overlaps or is left of");
! DATA(insert OID = 1456 ( circle_overright PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_overright _null_ _null_ _null_ ));
DESCR("overlaps or is right of");
! DATA(insert OID = 1457 ( circle_right PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_right _null_ _null_ _null_ ));
DESCR("is right of");
! DATA(insert OID = 1458 ( circle_contained PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_contained _null_ _null_ _null_ ));
DESCR("is contained by?");
! DATA(insert OID = 1459 ( circle_overlap PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_overlap _null_ _null_ _null_ ));
DESCR("overlaps");
! DATA(insert OID = 1460 ( circle_below PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_below _null_ _null_ _null_ ));
DESCR("is below");
! DATA(insert OID = 1461 ( circle_above PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_above _null_ _null_ _null_ ));
DESCR("is above");
! DATA(insert OID = 1462 ( circle_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_eq _null_ _null_ _null_ ));
DESCR("equal by area");
! DATA(insert OID = 1463 ( circle_ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_ne _null_ _null_ _null_ ));
DESCR("not equal by area");
! DATA(insert OID = 1464 ( circle_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_lt _null_ _null_ _null_ ));
DESCR("less-than by area");
! DATA(insert OID = 1465 ( circle_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_gt _null_ _null_ _null_ ));
DESCR("greater-than by area");
! DATA(insert OID = 1466 ( circle_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal by area");
! DATA(insert OID = 1467 ( circle_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal by area");
! DATA(insert OID = 1468 ( area PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "718" _null_ _null_ _null_ _null_ circle_area _null_ _null_ _null_ ));
DESCR("area of circle");
! DATA(insert OID = 1469 ( diameter PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "718" _null_ _null_ _null_ _null_ circle_diameter _null_ _null_ _null_ ));
DESCR("diameter of circle");
! DATA(insert OID = 1470 ( radius PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "718" _null_ _null_ _null_ _null_ circle_radius _null_ _null_ _null_ ));
DESCR("radius of circle");
! DATA(insert OID = 1471 ( circle_distance PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "718 718" _null_ _null_ _null_ _null_ circle_distance _null_ _null_ _null_ ));
DESCR("distance between");
! DATA(insert OID = 1472 ( circle_center PGNSP PGUID 12 1 0 0 f f t f i 1 0 600 "718" _null_ _null_ _null_ _null_ circle_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 1473 ( circle PGNSP PGUID 12 1 0 0 f f t f i 2 0 718 "600 701" _null_ _null_ _null_ _null_ cr_circle _null_ _null_ _null_ ));
DESCR("convert point and radius to circle");
! DATA(insert OID = 1474 ( circle PGNSP PGUID 12 1 0 0 f f t f i 1 0 718 "604" _null_ _null_ _null_ _null_ poly_circle _null_ _null_ _null_ ));
DESCR("convert polygon to circle");
! DATA(insert OID = 1475 ( polygon PGNSP PGUID 12 1 0 0 f f t f i 2 0 604 "23 718" _null_ _null_ _null_ _null_ circle_poly _null_ _null_ _null_ ));
DESCR("convert vertex count and circle to polygon");
! DATA(insert OID = 1476 ( dist_pc PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "600 718" _null_ _null_ _null_ _null_ dist_pc _null_ _null_ _null_ ));
DESCR("distance between point and circle");
! DATA(insert OID = 1477 ( circle_contain_pt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "718 600" _null_ _null_ _null_ _null_ circle_contain_pt _null_ _null_ _null_ ));
DESCR("circle contains point?");
! DATA(insert OID = 1478 ( pt_contained_circle PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "600 718" _null_ _null_ _null_ _null_ pt_contained_circle _null_ _null_ _null_ ));
DESCR("point contained in circle?");
! DATA(insert OID = 1479 ( circle PGNSP PGUID 12 1 0 0 f f t f i 1 0 718 "603" _null_ _null_ _null_ _null_ box_circle _null_ _null_ _null_ ));
DESCR("convert box to circle");
! DATA(insert OID = 1480 ( box PGNSP PGUID 12 1 0 0 f f t f i 1 0 603 "718" _null_ _null_ _null_ _null_ circle_box _null_ _null_ _null_ ));
DESCR("convert circle to box");
! DATA(insert OID = 1481 ( tinterval PGNSP PGUID 12 1 0 0 f f t f i 2 0 704 "702 702" _null_ _null_ _null_ _null_ mktinterval _null_ _null_ _null_ ));
DESCR("convert to tinterval");
! DATA(insert OID = 1482 ( lseg_ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1483 ( lseg_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_lt _null_ _null_ _null_ ));
DESCR("less-than by length");
! DATA(insert OID = 1484 ( lseg_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal by length");
! DATA(insert OID = 1485 ( lseg_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_gt _null_ _null_ _null_ ));
DESCR("greater-than by length");
! DATA(insert OID = 1486 ( lseg_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal by length");
! DATA(insert OID = 1487 ( lseg_length PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "601" _null_ _null_ _null_ _null_ lseg_length _null_ _null_ _null_ ));
DESCR("distance between endpoints");
! DATA(insert OID = 1488 ( close_ls PGNSP PGUID 12 1 0 0 f f t f i 2 0 600 "628 601" _null_ _null_ _null_ _null_ close_ls _null_ _null_ _null_ ));
DESCR("closest point to line on line segment");
! DATA(insert OID = 1489 ( close_lseg PGNSP PGUID 12 1 0 0 f f t f i 2 0 600 "601 601" _null_ _null_ _null_ _null_ close_lseg _null_ _null_ _null_ ));
DESCR("closest point to line segment on line segment");
! DATA(insert OID = 1490 ( line_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 628 "2275" _null_ _null_ _null_ _null_ line_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1491 ( line_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "628" _null_ _null_ _null_ _null_ line_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1492 ( line_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "628 628" _null_ _null_ _null_ _null_ line_eq _null_ _null_ _null_ ));
DESCR("lines equal?");
! DATA(insert OID = 1493 ( line PGNSP PGUID 12 1 0 0 f f t f i 2 0 628 "600 600" _null_ _null_ _null_ _null_ line_construct_pp _null_ _null_ _null_ ));
DESCR("line from points");
! DATA(insert OID = 1494 ( line_interpt PGNSP PGUID 12 1 0 0 f f t f i 2 0 600 "628 628" _null_ _null_ _null_ _null_ line_interpt _null_ _null_ _null_ ));
DESCR("intersection point");
! DATA(insert OID = 1495 ( line_intersect PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "628 628" _null_ _null_ _null_ _null_ line_intersect _null_ _null_ _null_ ));
DESCR("intersect?");
! DATA(insert OID = 1496 ( line_parallel PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "628 628" _null_ _null_ _null_ _null_ line_parallel _null_ _null_ _null_ ));
DESCR("parallel?");
! DATA(insert OID = 1497 ( line_perp PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "628 628" _null_ _null_ _null_ _null_ line_perp _null_ _null_ _null_ ));
DESCR("perpendicular?");
! DATA(insert OID = 1498 ( line_vertical PGNSP PGUID 12 1 0 0 f f t f i 1 0 16 "628" _null_ _null_ _null_ _null_ line_vertical _null_ _null_ _null_ ));
DESCR("vertical?");
! DATA(insert OID = 1499 ( line_horizontal PGNSP PGUID 12 1 0 0 f f t f i 1 0 16 "628" _null_ _null_ _null_ _null_ line_horizontal _null_ _null_ _null_ ));
DESCR("horizontal?");
/* OIDS 1500 - 1599 */
! DATA(insert OID = 1530 ( length PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "601" _null_ _null_ _null_ _null_ lseg_length _null_ _null_ _null_ ));
DESCR("distance between endpoints");
! DATA(insert OID = 1531 ( length PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "602" _null_ _null_ _null_ _null_ path_length _null_ _null_ _null_ ));
DESCR("sum of path segments");
! DATA(insert OID = 1532 ( point PGNSP PGUID 12 1 0 0 f f t f i 1 0 600 "601" _null_ _null_ _null_ _null_ lseg_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 1533 ( point PGNSP PGUID 12 1 0 0 f f t f i 1 0 600 "602" _null_ _null_ _null_ _null_ path_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 1534 ( point PGNSP PGUID 12 1 0 0 f f t f i 1 0 600 "603" _null_ _null_ _null_ _null_ box_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 1540 ( point PGNSP PGUID 12 1 0 0 f f t f i 1 0 600 "604" _null_ _null_ _null_ _null_ poly_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 1541 ( lseg PGNSP PGUID 12 1 0 0 f f t f i 1 0 601 "603" _null_ _null_ _null_ _null_ box_diagonal _null_ _null_ _null_ ));
DESCR("diagonal of");
! DATA(insert OID = 1542 ( center PGNSP PGUID 12 1 0 0 f f t f i 1 0 600 "603" _null_ _null_ _null_ _null_ box_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 1543 ( center PGNSP PGUID 12 1 0 0 f f t f i 1 0 600 "718" _null_ _null_ _null_ _null_ circle_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 1544 ( polygon PGNSP PGUID 14 1 0 0 f f t f i 1 0 604 "718" _null_ _null_ _null_ _null_ "select pg_catalog.polygon(12, $1)" _null_ _null_ _null_ ));
DESCR("convert circle to 12-vertex polygon");
! DATA(insert OID = 1545 ( npoints PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "602" _null_ _null_ _null_ _null_ path_npoints _null_ _null_ _null_ ));
DESCR("number of points in path");
! DATA(insert OID = 1556 ( npoints PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "604" _null_ _null_ _null_ _null_ poly_npoints _null_ _null_ _null_ ));
DESCR("number of points in polygon");
! DATA(insert OID = 1564 ( bit_in PGNSP PGUID 12 1 0 0 f f t f i 3 0 1560 "2275 26 23" _null_ _null_ _null_ _null_ bit_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1565 ( bit_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "1560" _null_ _null_ _null_ _null_ bit_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2919 ( bittypmodin PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1263" _null_ _null_ _null_ _null_ bittypmodin _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 2920 ( bittypmodout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ bittypmodout _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 1569 ( like PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ textlike _null_ _null_ _null_ ));
DESCR("matches LIKE expression");
! DATA(insert OID = 1570 ( notlike PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ textnlike _null_ _null_ _null_ ));
DESCR("does not match LIKE expression");
! DATA(insert OID = 1571 ( like PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "19 25" _null_ _null_ _null_ _null_ namelike _null_ _null_ _null_ ));
DESCR("matches LIKE expression");
! DATA(insert OID = 1572 ( notlike PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "19 25" _null_ _null_ _null_ _null_ namenlike _null_ _null_ _null_ ));
DESCR("does not match LIKE expression");
/* SEQUENCE functions */
! DATA(insert OID = 1574 ( nextval PGNSP PGUID 12 1 0 0 f f t f v 1 0 20 "2205" _null_ _null_ _null_ _null_ nextval_oid _null_ _null_ _null_ ));
DESCR("sequence next value");
! DATA(insert OID = 1575 ( currval PGNSP PGUID 12 1 0 0 f f t f v 1 0 20 "2205" _null_ _null_ _null_ _null_ currval_oid _null_ _null_ _null_ ));
DESCR("sequence current value");
! DATA(insert OID = 1576 ( setval PGNSP PGUID 12 1 0 0 f f t f v 2 0 20 "2205 20" _null_ _null_ _null_ _null_ setval_oid _null_ _null_ _null_ ));
DESCR("set sequence value");
! DATA(insert OID = 1765 ( setval PGNSP PGUID 12 1 0 0 f f t f v 3 0 20 "2205 20 16" _null_ _null_ _null_ _null_ setval3_oid _null_ _null_ _null_ ));
DESCR("set sequence value and iscalled status");
! DATA(insert OID = 1579 ( varbit_in PGNSP PGUID 12 1 0 0 f f t f i 3 0 1562 "2275 26 23" _null_ _null_ _null_ _null_ varbit_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1580 ( varbit_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "1562" _null_ _null_ _null_ _null_ varbit_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2902 ( varbittypmodin PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1263" _null_ _null_ _null_ _null_ varbittypmodin _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 2921 ( varbittypmodout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ varbittypmodout _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 1581 ( biteq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1560 1560" _null_ _null_ _null_ _null_ biteq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1582 ( bitne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1560 1560" _null_ _null_ _null_ _null_ bitne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1592 ( bitge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1560 1560" _null_ _null_ _null_ _null_ bitge _null_ _null_ _null_ ));
DESCR("greater than or equal");
! DATA(insert OID = 1593 ( bitgt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1560 1560" _null_ _null_ _null_ _null_ bitgt _null_ _null_ _null_ ));
DESCR("greater than");
! DATA(insert OID = 1594 ( bitle PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1560 1560" _null_ _null_ _null_ _null_ bitle _null_ _null_ _null_ ));
DESCR("less than or equal");
! DATA(insert OID = 1595 ( bitlt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1560 1560" _null_ _null_ _null_ _null_ bitlt _null_ _null_ _null_ ));
DESCR("less than");
! DATA(insert OID = 1596 ( bitcmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "1560 1560" _null_ _null_ _null_ _null_ bitcmp _null_ _null_ _null_ ));
DESCR("compare");
! DATA(insert OID = 1598 ( random PGNSP PGUID 12 1 0 0 f f t f v 0 0 701 "" _null_ _null_ _null_ _null_ drandom _null_ _null_ _null_ ));
DESCR("random value");
! DATA(insert OID = 1599 ( setseed PGNSP PGUID 12 1 0 0 f f t f v 1 0 2278 "701" _null_ _null_ _null_ _null_ setseed _null_ _null_ _null_ ));
DESCR("set random seed");
/* OIDS 1600 - 1699 */
! DATA(insert OID = 1600 ( asin PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dasin _null_ _null_ _null_ ));
DESCR("arcsine");
! DATA(insert OID = 1601 ( acos PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dacos _null_ _null_ _null_ ));
DESCR("arccosine");
! DATA(insert OID = 1602 ( atan PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ datan _null_ _null_ _null_ ));
DESCR("arctangent");
! DATA(insert OID = 1603 ( atan2 PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ datan2 _null_ _null_ _null_ ));
DESCR("arctangent, two arguments");
! DATA(insert OID = 1604 ( sin PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dsin _null_ _null_ _null_ ));
DESCR("sine");
! DATA(insert OID = 1605 ( cos PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dcos _null_ _null_ _null_ ));
DESCR("cosine");
! DATA(insert OID = 1606 ( tan PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dtan _null_ _null_ _null_ ));
DESCR("tangent");
! DATA(insert OID = 1607 ( cot PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dcot _null_ _null_ _null_ ));
DESCR("cotangent");
! DATA(insert OID = 1608 ( degrees PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ degrees _null_ _null_ _null_ ));
DESCR("radians to degrees");
! DATA(insert OID = 1609 ( radians PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ radians _null_ _null_ _null_ ));
DESCR("degrees to radians");
! DATA(insert OID = 1610 ( pi PGNSP PGUID 12 1 0 0 f f t f i 0 0 701 "" _null_ _null_ _null_ _null_ dpi _null_ _null_ _null_ ));
DESCR("PI");
! DATA(insert OID = 1618 ( interval_mul PGNSP PGUID 12 1 0 0 f f t f i 2 0 1186 "1186 701" _null_ _null_ _null_ _null_ interval_mul _null_ _null_ _null_ ));
DESCR("multiply interval");
! DATA(insert OID = 1620 ( ascii PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "25" _null_ _null_ _null_ _null_ ascii _null_ _null_ _null_ ));
DESCR("convert first char to int4");
! DATA(insert OID = 1621 ( chr PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "23" _null_ _null_ _null_ _null_ chr _null_ _null_ _null_ ));
DESCR("convert int4 to char");
! DATA(insert OID = 1622 ( repeat PGNSP PGUID 12 1 0 0 f f t f i 2 0 25 "25 23" _null_ _null_ _null_ _null_ repeat _null_ _null_ _null_ ));
DESCR("replicate string int4 times");
! DATA(insert OID = 1623 ( similar_escape PGNSP PGUID 12 1 0 0 f f f f i 2 0 25 "25 25" _null_ _null_ _null_ _null_ similar_escape _null_ _null_ _null_ ));
DESCR("convert SQL99 regexp pattern to POSIX style");
! DATA(insert OID = 1624 ( mul_d_interval PGNSP PGUID 12 1 0 0 f f t f i 2 0 1186 "701 1186" _null_ _null_ _null_ _null_ mul_d_interval _null_ _null_ _null_ ));
! DATA(insert OID = 1631 ( bpcharlike PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1042 25" _null_ _null_ _null_ _null_ textlike _null_ _null_ _null_ ));
DESCR("matches LIKE expression");
! DATA(insert OID = 1632 ( bpcharnlike PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1042 25" _null_ _null_ _null_ _null_ textnlike _null_ _null_ _null_ ));
DESCR("does not match LIKE expression");
! DATA(insert OID = 1633 ( texticlike PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ texticlike _null_ _null_ _null_ ));
DESCR("matches LIKE expression, case-insensitive");
! DATA(insert OID = 1634 ( texticnlike PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ texticnlike _null_ _null_ _null_ ));
DESCR("does not match LIKE expression, case-insensitive");
! DATA(insert OID = 1635 ( nameiclike PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "19 25" _null_ _null_ _null_ _null_ nameiclike _null_ _null_ _null_ ));
DESCR("matches LIKE expression, case-insensitive");
! DATA(insert OID = 1636 ( nameicnlike PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "19 25" _null_ _null_ _null_ _null_ nameicnlike _null_ _null_ _null_ ));
DESCR("does not match LIKE expression, case-insensitive");
! DATA(insert OID = 1637 ( like_escape PGNSP PGUID 12 1 0 0 f f t f i 2 0 25 "25 25" _null_ _null_ _null_ _null_ like_escape _null_ _null_ _null_ ));
DESCR("convert LIKE pattern to use backslash escapes");
! DATA(insert OID = 1656 ( bpcharicregexeq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1042 25" _null_ _null_ _null_ _null_ texticregexeq _null_ _null_ _null_ ));
DESCR("matches regex., case-insensitive");
! DATA(insert OID = 1657 ( bpcharicregexne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1042 25" _null_ _null_ _null_ _null_ texticregexne _null_ _null_ _null_ ));
DESCR("does not match regex., case-insensitive");
! DATA(insert OID = 1658 ( bpcharregexeq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1042 25" _null_ _null_ _null_ _null_ textregexeq _null_ _null_ _null_ ));
DESCR("matches regex., case-sensitive");
! DATA(insert OID = 1659 ( bpcharregexne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1042 25" _null_ _null_ _null_ _null_ textregexne _null_ _null_ _null_ ));
DESCR("does not match regex., case-sensitive");
! DATA(insert OID = 1660 ( bpchariclike PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1042 25" _null_ _null_ _null_ _null_ texticlike _null_ _null_ _null_ ));
DESCR("matches LIKE expression, case-insensitive");
! DATA(insert OID = 1661 ( bpcharicnlike PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1042 25" _null_ _null_ _null_ _null_ texticnlike _null_ _null_ _null_ ));
DESCR("does not match LIKE expression, case-insensitive");
! DATA(insert OID = 1689 ( flatfile_update_trigger PGNSP PGUID 12 1 0 0 f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ flatfile_update_trigger _null_ _null_ _null_ ));
DESCR("update flat-file copy of a shared catalog");
/* Oracle Compatibility Related Functions - By Edmund Mergl */
! DATA(insert OID = 868 ( strpos PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "25 25" _null_ _null_ _null_ _null_ textpos _null_ _null_ _null_ ));
DESCR("find position of substring");
! DATA(insert OID = 870 ( lower PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ lower _null_ _null_ _null_ ));
DESCR("lowercase");
! DATA(insert OID = 871 ( upper PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ upper _null_ _null_ _null_ ));
DESCR("uppercase");
! DATA(insert OID = 872 ( initcap PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ initcap _null_ _null_ _null_ ));
DESCR("capitalize each word");
! DATA(insert OID = 873 ( lpad PGNSP PGUID 12 1 0 0 f f t f i 3 0 25 "25 23 25" _null_ _null_ _null_ _null_ lpad _null_ _null_ _null_ ));
DESCR("left-pad string to length");
! DATA(insert OID = 874 ( rpad PGNSP PGUID 12 1 0 0 f f t f i 3 0 25 "25 23 25" _null_ _null_ _null_ _null_ rpad _null_ _null_ _null_ ));
DESCR("right-pad string to length");
! DATA(insert OID = 875 ( ltrim PGNSP PGUID 12 1 0 0 f f t f i 2 0 25 "25 25" _null_ _null_ _null_ _null_ ltrim _null_ _null_ _null_ ));
DESCR("trim selected characters from left end of string");
! DATA(insert OID = 876 ( rtrim PGNSP PGUID 12 1 0 0 f f t f i 2 0 25 "25 25" _null_ _null_ _null_ _null_ rtrim _null_ _null_ _null_ ));
DESCR("trim selected characters from right end of string");
! DATA(insert OID = 877 ( substr PGNSP PGUID 12 1 0 0 f f t f i 3 0 25 "25 23 23" _null_ _null_ _null_ _null_ text_substr _null_ _null_ _null_ ));
DESCR("return portion of string");
! DATA(insert OID = 878 ( translate PGNSP PGUID 12 1 0 0 f f t f i 3 0 25 "25 25 25" _null_ _null_ _null_ _null_ translate _null_ _null_ _null_ ));
DESCR("map a set of character appearing in string");
! DATA(insert OID = 879 ( lpad PGNSP PGUID 14 1 0 0 f f t f i 2 0 25 "25 23" _null_ _null_ _null_ _null_ "select pg_catalog.lpad($1, $2, '' '')" _null_ _null_ _null_ ));
DESCR("left-pad string to length");
! DATA(insert OID = 880 ( rpad PGNSP PGUID 14 1 0 0 f f t f i 2 0 25 "25 23" _null_ _null_ _null_ _null_ "select pg_catalog.rpad($1, $2, '' '')" _null_ _null_ _null_ ));
DESCR("right-pad string to length");
! DATA(insert OID = 881 ( ltrim PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ ltrim1 _null_ _null_ _null_ ));
DESCR("trim spaces from left end of string");
! DATA(insert OID = 882 ( rtrim PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ rtrim1 _null_ _null_ _null_ ));
DESCR("trim spaces from right end of string");
! DATA(insert OID = 883 ( substr PGNSP PGUID 12 1 0 0 f f t f i 2 0 25 "25 23" _null_ _null_ _null_ _null_ text_substr_no_len _null_ _null_ _null_ ));
DESCR("return portion of string");
! DATA(insert OID = 884 ( btrim PGNSP PGUID 12 1 0 0 f f t f i 2 0 25 "25 25" _null_ _null_ _null_ _null_ btrim _null_ _null_ _null_ ));
DESCR("trim selected characters from both ends of string");
! DATA(insert OID = 885 ( btrim PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ btrim1 _null_ _null_ _null_ ));
DESCR("trim spaces from both ends of string");
! DATA(insert OID = 936 ( substring PGNSP PGUID 12 1 0 0 f f t f i 3 0 25 "25 23 23" _null_ _null_ _null_ _null_ text_substr _null_ _null_ _null_ ));
DESCR("return portion of string");
! DATA(insert OID = 937 ( substring PGNSP PGUID 12 1 0 0 f f t f i 2 0 25 "25 23" _null_ _null_ _null_ _null_ text_substr_no_len _null_ _null_ _null_ ));
DESCR("return portion of string");
! DATA(insert OID = 2087 ( replace PGNSP PGUID 12 1 0 0 f f t f i 3 0 25 "25 25 25" _null_ _null_ _null_ _null_ replace_text _null_ _null_ _null_ ));
DESCR("replace all occurrences in string of old_substr with new_substr");
! DATA(insert OID = 2284 ( regexp_replace PGNSP PGUID 12 1 0 0 f f t f i 3 0 25 "25 25 25" _null_ _null_ _null_ _null_ textregexreplace_noopt _null_ _null_ _null_ ));
DESCR("replace text using regexp");
! DATA(insert OID = 2285 ( regexp_replace PGNSP PGUID 12 1 0 0 f f t f i 4 0 25 "25 25 25 25" _null_ _null_ _null_ _null_ textregexreplace _null_ _null_ _null_ ));
DESCR("replace text using regexp");
! DATA(insert OID = 2763 ( regexp_matches PGNSP PGUID 12 1 1 0 f f t t i 2 0 1009 "25 25" _null_ _null_ _null_ _null_ regexp_matches_no_flags _null_ _null_ _null_ ));
DESCR("return all match groups for regexp");
! DATA(insert OID = 2764 ( regexp_matches PGNSP PGUID 12 1 10 0 f f t t i 3 0 1009 "25 25 25" _null_ _null_ _null_ _null_ regexp_matches _null_ _null_ _null_ ));
DESCR("return all match groups for regexp");
! DATA(insert OID = 2088 ( split_part PGNSP PGUID 12 1 0 0 f f t f i 3 0 25 "25 25 23" _null_ _null_ _null_ _null_ split_text _null_ _null_ _null_ ));
DESCR("split string by field_sep and return field_num");
! DATA(insert OID = 2765 ( regexp_split_to_table PGNSP PGUID 12 1 1000 0 f f t t i 2 0 25 "25 25" _null_ _null_ _null_ _null_ regexp_split_to_table_no_flags _null_ _null_ _null_ ));
DESCR("split string by pattern");
! DATA(insert OID = 2766 ( regexp_split_to_table PGNSP PGUID 12 1 1000 0 f f t t i 3 0 25 "25 25 25" _null_ _null_ _null_ _null_ regexp_split_to_table _null_ _null_ _null_ ));
DESCR("split string by pattern");
! DATA(insert OID = 2767 ( regexp_split_to_array PGNSP PGUID 12 1 0 0 f f t f i 2 0 1009 "25 25" _null_ _null_ _null_ _null_ regexp_split_to_array_no_flags _null_ _null_ _null_ ));
DESCR("split string by pattern");
! DATA(insert OID = 2768 ( regexp_split_to_array PGNSP PGUID 12 1 0 0 f f t f i 3 0 1009 "25 25 25" _null_ _null_ _null_ _null_ regexp_split_to_array _null_ _null_ _null_ ));
DESCR("split string by pattern");
! DATA(insert OID = 2089 ( to_hex PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "23" _null_ _null_ _null_ _null_ to_hex32 _null_ _null_ _null_ ));
DESCR("convert int4 number to hex");
! DATA(insert OID = 2090 ( to_hex PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "20" _null_ _null_ _null_ _null_ to_hex64 _null_ _null_ _null_ ));
DESCR("convert int8 number to hex");
/* for character set encoding support */
/* return database encoding name */
! DATA(insert OID = 1039 ( getdatabaseencoding PGNSP PGUID 12 1 0 0 f f t f s 0 0 19 "" _null_ _null_ _null_ _null_ getdatabaseencoding _null_ _null_ _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 1 0 0 f f t f s 0 0 19 "" _null_ _null_ _null_ _null_ pg_client_encoding _null_ _null_ _null_ ));
DESCR("encoding name of current database");
! DATA(insert OID = 1713 ( length PGNSP PGUID 12 1 0 0 f f t f s 2 0 23 "17 19" _null_ _null_ _null_ _null_ length_in_encoding _null_ _null_ _null_ ));
DESCR("length of string in specified encoding");
! DATA(insert OID = 1714 ( convert_from PGNSP PGUID 12 1 0 0 f f t f s 2 0 25 "17 19" _null_ _null_ _null_ _null_ pg_convert_from _null_ _null_ _null_ ));
DESCR("convert string with specified source encoding name");
! DATA(insert OID = 1717 ( convert_to PGNSP PGUID 12 1 0 0 f f t f s 2 0 17 "25 19" _null_ _null_ _null_ _null_ pg_convert_to _null_ _null_ _null_ ));
DESCR("convert string with specified destination encoding name");
! DATA(insert OID = 1813 ( convert PGNSP PGUID 12 1 0 0 f f t f s 3 0 17 "17 19 19" _null_ _null_ _null_ _null_ pg_convert _null_ _null_ _null_ ));
DESCR("convert string with specified encoding names");
! DATA(insert OID = 1264 ( pg_char_to_encoding PGNSP PGUID 12 1 0 0 f f t f s 1 0 23 "19" _null_ _null_ _null_ _null_ PG_char_to_encoding _null_ _null_ _null_ ));
DESCR("convert encoding name to encoding id");
! DATA(insert OID = 1597 ( pg_encoding_to_char PGNSP PGUID 12 1 0 0 f f t f s 1 0 19 "23" _null_ _null_ _null_ _null_ PG_encoding_to_char _null_ _null_ _null_ ));
DESCR("convert encoding id to encoding name");
! DATA(insert OID = 1638 ( oidgt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "26 26" _null_ _null_ _null_ _null_ oidgt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1639 ( oidge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "26 26" _null_ _null_ _null_ _null_ oidge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
/* System-view support functions */
! DATA(insert OID = 1573 ( pg_get_ruledef PGNSP PGUID 12 1 0 0 f f t f s 1 0 25 "26" _null_ _null_ _null_ _null_ pg_get_ruledef _null_ _null_ _null_ ));
DESCR("source text of a rule");
! DATA(insert OID = 1640 ( pg_get_viewdef PGNSP PGUID 12 1 0 0 f f t f s 1 0 25 "25" _null_ _null_ _null_ _null_ pg_get_viewdef_name _null_ _null_ _null_ ));
DESCR("select statement of a view");
! DATA(insert OID = 1641 ( pg_get_viewdef PGNSP PGUID 12 1 0 0 f f t f s 1 0 25 "26" _null_ _null_ _null_ _null_ pg_get_viewdef _null_ _null_ _null_ ));
DESCR("select statement of a view");
! DATA(insert OID = 1642 ( pg_get_userbyid PGNSP PGUID 12 1 0 0 f f t f s 1 0 19 "26" _null_ _null_ _null_ _null_ pg_get_userbyid _null_ _null_ _null_ ));
DESCR("role name by OID (with fallback)");
! DATA(insert OID = 1643 ( pg_get_indexdef PGNSP PGUID 12 1 0 0 f f t f s 1 0 25 "26" _null_ _null_ _null_ _null_ pg_get_indexdef _null_ _null_ _null_ ));
DESCR("index description");
! DATA(insert OID = 1662 ( pg_get_triggerdef PGNSP PGUID 12 1 0 0 f f t f s 1 0 25 "26" _null_ _null_ _null_ _null_ pg_get_triggerdef _null_ _null_ _null_ ));
DESCR("trigger description");
! DATA(insert OID = 1387 ( pg_get_constraintdef PGNSP PGUID 12 1 0 0 f f t f s 1 0 25 "26" _null_ _null_ _null_ _null_ pg_get_constraintdef _null_ _null_ _null_ ));
DESCR("constraint description");
! DATA(insert OID = 1716 ( pg_get_expr PGNSP PGUID 12 1 0 0 f f t f s 2 0 25 "25 26" _null_ _null_ _null_ _null_ pg_get_expr _null_ _null_ _null_ ));
DESCR("deparse an encoded expression");
! DATA(insert OID = 1665 ( pg_get_serial_sequence PGNSP PGUID 12 1 0 0 f f t f s 2 0 25 "25 25" _null_ _null_ _null_ _null_ pg_get_serial_sequence _null_ _null_ _null_ ));
DESCR("name of sequence for a serial column");
! DATA(insert OID = 2098 ( pg_get_functiondef PGNSP PGUID 12 1 0 0 f f t f s 1 0 25 "26" _null_ _null_ _null_ _null_ pg_get_functiondef _null_ _null_ _null_ ));
DESCR("definition of a function");
! DATA(insert OID = 2162 ( pg_get_function_arguments PGNSP PGUID 12 1 0 0 f f t f s 1 0 25 "26" _null_ _null_ _null_ _null_ pg_get_function_arguments _null_ _null_ _null_ ));
DESCR("argument list of a function");
! DATA(insert OID = 2232 ( pg_get_function_identity_arguments PGNSP PGUID 12 1 0 0 f f t f s 1 0 25 "26" _null_ _null_ _null_ _null_ pg_get_function_identity_arguments _null_ _null_ _null_ ));
DESCR("identity argument list of a function");
! DATA(insert OID = 2165 ( pg_get_function_result PGNSP PGUID 12 1 0 0 f f t f s 1 0 25 "26" _null_ _null_ _null_ _null_ pg_get_function_result _null_ _null_ _null_ ));
DESCR("result type of a function");
! DATA(insert OID = 1686 ( pg_get_keywords PGNSP PGUID 12 10 400 0 f f t t s 0 0 2249 "" "{25,18,25}" "{o,o,o}" "{word,catcode,catdesc}" _null_ pg_get_keywords _null_ _null_ _null_ ));
DESCR("list of SQL keywords");
! DATA(insert OID = 1619 ( pg_typeof PGNSP PGUID 12 1 0 0 f f f f s 1 0 2206 "2276" _null_ _null_ _null_ _null_ pg_typeof _null_ _null_ _null_ ));
DESCR("returns the type of the argument");
/* Generic referential integrity constraint triggers */
! DATA(insert OID = 1644 ( RI_FKey_check_ins PGNSP PGUID 12 1 0 0 f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_check_ins _null_ _null_ _null_ ));
DESCR("referential integrity FOREIGN KEY ... REFERENCES");
! DATA(insert OID = 1645 ( RI_FKey_check_upd PGNSP PGUID 12 1 0 0 f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_check_upd _null_ _null_ _null_ ));
DESCR("referential integrity FOREIGN KEY ... REFERENCES");
! DATA(insert OID = 1646 ( RI_FKey_cascade_del PGNSP PGUID 12 1 0 0 f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_cascade_del _null_ _null_ _null_ ));
DESCR("referential integrity ON DELETE CASCADE");
! DATA(insert OID = 1647 ( RI_FKey_cascade_upd PGNSP PGUID 12 1 0 0 f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_cascade_upd _null_ _null_ _null_ ));
DESCR("referential integrity ON UPDATE CASCADE");
! DATA(insert OID = 1648 ( RI_FKey_restrict_del PGNSP PGUID 12 1 0 0 f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_restrict_del _null_ _null_ _null_ ));
DESCR("referential integrity ON DELETE RESTRICT");
! DATA(insert OID = 1649 ( RI_FKey_restrict_upd PGNSP PGUID 12 1 0 0 f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_restrict_upd _null_ _null_ _null_ ));
DESCR("referential integrity ON UPDATE RESTRICT");
! DATA(insert OID = 1650 ( RI_FKey_setnull_del PGNSP PGUID 12 1 0 0 f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_setnull_del _null_ _null_ _null_ ));
DESCR("referential integrity ON DELETE SET NULL");
! DATA(insert OID = 1651 ( RI_FKey_setnull_upd PGNSP PGUID 12 1 0 0 f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_setnull_upd _null_ _null_ _null_ ));
DESCR("referential integrity ON UPDATE SET NULL");
! DATA(insert OID = 1652 ( RI_FKey_setdefault_del PGNSP PGUID 12 1 0 0 f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_setdefault_del _null_ _null_ _null_ ));
DESCR("referential integrity ON DELETE SET DEFAULT");
! DATA(insert OID = 1653 ( RI_FKey_setdefault_upd PGNSP PGUID 12 1 0 0 f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_setdefault_upd _null_ _null_ _null_ ));
DESCR("referential integrity ON UPDATE SET DEFAULT");
! DATA(insert OID = 1654 ( RI_FKey_noaction_del PGNSP PGUID 12 1 0 0 f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_noaction_del _null_ _null_ _null_ ));
DESCR("referential integrity ON DELETE NO ACTION");
! DATA(insert OID = 1655 ( RI_FKey_noaction_upd PGNSP PGUID 12 1 0 0 f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_noaction_upd _null_ _null_ _null_ ));
DESCR("referential integrity ON UPDATE NO ACTION");
! DATA(insert OID = 1666 ( varbiteq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1562 1562" _null_ _null_ _null_ _null_ biteq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1667 ( varbitne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1562 1562" _null_ _null_ _null_ _null_ bitne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1668 ( varbitge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1562 1562" _null_ _null_ _null_ _null_ bitge _null_ _null_ _null_ ));
DESCR("greater than or equal");
! DATA(insert OID = 1669 ( varbitgt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1562 1562" _null_ _null_ _null_ _null_ bitgt _null_ _null_ _null_ ));
DESCR("greater than");
! DATA(insert OID = 1670 ( varbitle PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1562 1562" _null_ _null_ _null_ _null_ bitle _null_ _null_ _null_ ));
DESCR("less than or equal");
! DATA(insert OID = 1671 ( varbitlt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1562 1562" _null_ _null_ _null_ _null_ bitlt _null_ _null_ _null_ ));
DESCR("less than");
! DATA(insert OID = 1672 ( varbitcmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "1562 1562" _null_ _null_ _null_ _null_ bitcmp _null_ _null_ _null_ ));
DESCR("compare");
! DATA(insert OID = 1673 ( bitand PGNSP PGUID 12 1 0 0 f f t f i 2 0 1560 "1560 1560" _null_ _null_ _null_ _null_ bitand _null_ _null_ _null_ ));
DESCR("bitwise and");
! DATA(insert OID = 1674 ( bitor PGNSP PGUID 12 1 0 0 f f t f i 2 0 1560 "1560 1560" _null_ _null_ _null_ _null_ bitor _null_ _null_ _null_ ));
DESCR("bitwise or");
! DATA(insert OID = 1675 ( bitxor PGNSP PGUID 12 1 0 0 f f t f i 2 0 1560 "1560 1560" _null_ _null_ _null_ _null_ bitxor _null_ _null_ _null_ ));
DESCR("bitwise exclusive or");
! DATA(insert OID = 1676 ( bitnot PGNSP PGUID 12 1 0 0 f f t f i 1 0 1560 "1560" _null_ _null_ _null_ _null_ bitnot _null_ _null_ _null_ ));
DESCR("bitwise not");
! DATA(insert OID = 1677 ( bitshiftleft PGNSP PGUID 12 1 0 0 f f t f i 2 0 1560 "1560 23" _null_ _null_ _null_ _null_ bitshiftleft _null_ _null_ _null_ ));
DESCR("bitwise left shift");
! DATA(insert OID = 1678 ( bitshiftright PGNSP PGUID 12 1 0 0 f f t f i 2 0 1560 "1560 23" _null_ _null_ _null_ _null_ bitshiftright _null_ _null_ _null_ ));
DESCR("bitwise right shift");
! DATA(insert OID = 1679 ( bitcat PGNSP PGUID 12 1 0 0 f f t f i 2 0 1562 "1562 1562" _null_ _null_ _null_ _null_ bitcat _null_ _null_ _null_ ));
DESCR("bitwise concatenation");
! DATA(insert OID = 1680 ( substring PGNSP PGUID 12 1 0 0 f f t f i 3 0 1560 "1560 23 23" _null_ _null_ _null_ _null_ bitsubstr _null_ _null_ _null_ ));
DESCR("return portion of bitstring");
! DATA(insert OID = 1681 ( length PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1560" _null_ _null_ _null_ _null_ bitlength _null_ _null_ _null_ ));
DESCR("bitstring length");
! DATA(insert OID = 1682 ( octet_length PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1560" _null_ _null_ _null_ _null_ bitoctetlength _null_ _null_ _null_ ));
DESCR("octet length");
! DATA(insert OID = 1683 ( bit PGNSP PGUID 12 1 0 0 f f t f i 2 0 1560 "23 23" _null_ _null_ _null_ _null_ bitfromint4 _null_ _null_ _null_ ));
DESCR("int4 to bitstring");
! DATA(insert OID = 1684 ( int4 PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1560" _null_ _null_ _null_ _null_ bittoint4 _null_ _null_ _null_ ));
DESCR("bitstring to int4");
! DATA(insert OID = 1685 ( bit PGNSP PGUID 12 1 0 0 f f t f i 3 0 1560 "1560 23 16" _null_ _null_ _null_ _null_ bit _null_ _null_ _null_ ));
DESCR("adjust bit() to typmod length");
! DATA(insert OID = 1687 ( varbit PGNSP PGUID 12 1 0 0 f f t f i 3 0 1562 "1562 23 16" _null_ _null_ _null_ _null_ varbit _null_ _null_ _null_ ));
DESCR("adjust varbit() to typmod length");
! DATA(insert OID = 1698 ( position PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "1560 1560" _null_ _null_ _null_ _null_ bitposition _null_ _null_ _null_ ));
DESCR("return position of sub-bitstring");
! DATA(insert OID = 1699 ( substring PGNSP PGUID 14 1 0 0 f f t f i 2 0 1560 "1560 23" _null_ _null_ _null_ _null_ "select pg_catalog.substring($1, $2, -1)" _null_ _null_ _null_ ));
DESCR("return portion of bitstring");
/* for mac type support */
! DATA(insert OID = 436 ( macaddr_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 829 "2275" _null_ _null_ _null_ _null_ macaddr_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 437 ( macaddr_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "829" _null_ _null_ _null_ _null_ macaddr_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 753 ( trunc PGNSP PGUID 12 1 0 0 f f t f i 1 0 829 "829" _null_ _null_ _null_ _null_ macaddr_trunc _null_ _null_ _null_ ));
DESCR("MAC manufacturer fields");
! DATA(insert OID = 830 ( macaddr_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "829 829" _null_ _null_ _null_ _null_ macaddr_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 831 ( macaddr_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "829 829" _null_ _null_ _null_ _null_ macaddr_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 832 ( macaddr_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "829 829" _null_ _null_ _null_ _null_ macaddr_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 833 ( macaddr_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "829 829" _null_ _null_ _null_ _null_ macaddr_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 834 ( macaddr_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "829 829" _null_ _null_ _null_ _null_ macaddr_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 835 ( macaddr_ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "829 829" _null_ _null_ _null_ _null_ macaddr_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 836 ( macaddr_cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "829 829" _null_ _null_ _null_ _null_ macaddr_cmp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
/* for inet type support */
! DATA(insert OID = 910 ( inet_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 869 "2275" _null_ _null_ _null_ _null_ inet_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 911 ( inet_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "869" _null_ _null_ _null_ _null_ inet_out _null_ _null_ _null_ ));
DESCR("I/O");
/* for cidr type support */
! DATA(insert OID = 1267 ( cidr_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 650 "2275" _null_ _null_ _null_ _null_ cidr_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1427 ( cidr_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "650" _null_ _null_ _null_ _null_ cidr_out _null_ _null_ _null_ ));
DESCR("I/O");
/* these are used for both inet and cidr */
! DATA(insert OID = 920 ( network_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "869 869" _null_ _null_ _null_ _null_ network_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 921 ( network_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "869 869" _null_ _null_ _null_ _null_ network_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 922 ( network_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "869 869" _null_ _null_ _null_ _null_ network_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 923 ( network_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "869 869" _null_ _null_ _null_ _null_ network_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 924 ( network_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "869 869" _null_ _null_ _null_ _null_ network_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 925 ( network_ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "869 869" _null_ _null_ _null_ _null_ network_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 926 ( network_cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "869 869" _null_ _null_ _null_ _null_ network_cmp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 927 ( network_sub PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "869 869" _null_ _null_ _null_ _null_ network_sub _null_ _null_ _null_ ));
DESCR("is-subnet");
! DATA(insert OID = 928 ( network_subeq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "869 869" _null_ _null_ _null_ _null_ network_subeq _null_ _null_ _null_ ));
DESCR("is-subnet-or-equal");
! DATA(insert OID = 929 ( network_sup PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "869 869" _null_ _null_ _null_ _null_ network_sup _null_ _null_ _null_ ));
DESCR("is-supernet");
! DATA(insert OID = 930 ( network_supeq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "869 869" _null_ _null_ _null_ _null_ network_supeq _null_ _null_ _null_ ));
DESCR("is-supernet-or-equal");
/* inet/cidr functions */
! DATA(insert OID = 598 ( abbrev PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "869" _null_ _null_ _null_ _null_ inet_abbrev _null_ _null_ _null_ ));
DESCR("abbreviated display of inet value");
! DATA(insert OID = 599 ( abbrev PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "650" _null_ _null_ _null_ _null_ cidr_abbrev _null_ _null_ _null_ ));
DESCR("abbreviated display of cidr value");
! DATA(insert OID = 605 ( set_masklen PGNSP PGUID 12 1 0 0 f f t f i 2 0 869 "869 23" _null_ _null_ _null_ _null_ inet_set_masklen _null_ _null_ _null_ ));
DESCR("change netmask of inet");
! DATA(insert OID = 635 ( set_masklen PGNSP PGUID 12 1 0 0 f f t f i 2 0 650 "650 23" _null_ _null_ _null_ _null_ cidr_set_masklen _null_ _null_ _null_ ));
DESCR("change netmask of cidr");
! DATA(insert OID = 711 ( family PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "869" _null_ _null_ _null_ _null_ network_family _null_ _null_ _null_ ));
DESCR("address family (4 for IPv4, 6 for IPv6)");
! DATA(insert OID = 683 ( network PGNSP PGUID 12 1 0 0 f f t f i 1 0 650 "869" _null_ _null_ _null_ _null_ network_network _null_ _null_ _null_ ));
DESCR("network part of address");
! DATA(insert OID = 696 ( netmask PGNSP PGUID 12 1 0 0 f f t f i 1 0 869 "869" _null_ _null_ _null_ _null_ network_netmask _null_ _null_ _null_ ));
DESCR("netmask of address");
! DATA(insert OID = 697 ( masklen PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "869" _null_ _null_ _null_ _null_ network_masklen _null_ _null_ _null_ ));
DESCR("netmask length");
! DATA(insert OID = 698 ( broadcast PGNSP PGUID 12 1 0 0 f f t f i 1 0 869 "869" _null_ _null_ _null_ _null_ network_broadcast _null_ _null_ _null_ ));
DESCR("broadcast address of network");
! DATA(insert OID = 699 ( host PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "869" _null_ _null_ _null_ _null_ network_host _null_ _null_ _null_ ));
DESCR("show address octets only");
! DATA(insert OID = 730 ( text PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "869" _null_ _null_ _null_ _null_ network_show _null_ _null_ _null_ ));
DESCR("show all parts of inet/cidr value");
! DATA(insert OID = 1362 ( hostmask PGNSP PGUID 12 1 0 0 f f t f i 1 0 869 "869" _null_ _null_ _null_ _null_ network_hostmask _null_ _null_ _null_ ));
DESCR("hostmask of address");
! DATA(insert OID = 1715 ( cidr PGNSP PGUID 12 1 0 0 f f t f i 1 0 650 "869" _null_ _null_ _null_ _null_ inet_to_cidr _null_ _null_ _null_ ));
DESCR("coerce inet to cidr");
! DATA(insert OID = 2196 ( inet_client_addr PGNSP PGUID 12 1 0 0 f f f f s 0 0 869 "" _null_ _null_ _null_ _null_ inet_client_addr _null_ _null_ _null_ ));
DESCR("inet address of the client");
! DATA(insert OID = 2197 ( inet_client_port PGNSP PGUID 12 1 0 0 f f f f s 0 0 23 "" _null_ _null_ _null_ _null_ inet_client_port _null_ _null_ _null_ ));
DESCR("client's port number for this connection");
! DATA(insert OID = 2198 ( inet_server_addr PGNSP PGUID 12 1 0 0 f f f f s 0 0 869 "" _null_ _null_ _null_ _null_ inet_server_addr _null_ _null_ _null_ ));
DESCR("inet address of the server");
! DATA(insert OID = 2199 ( inet_server_port PGNSP PGUID 12 1 0 0 f f f f s 0 0 23 "" _null_ _null_ _null_ _null_ inet_server_port _null_ _null_ _null_ ));
DESCR("server's port number for this connection");
! DATA(insert OID = 2627 ( inetnot PGNSP PGUID 12 1 0 0 f f t f i 1 0 869 "869" _null_ _null_ _null_ _null_ inetnot _null_ _null_ _null_ ));
DESCR("bitwise not");
! DATA(insert OID = 2628 ( inetand PGNSP PGUID 12 1 0 0 f f t f i 2 0 869 "869 869" _null_ _null_ _null_ _null_ inetand _null_ _null_ _null_ ));
DESCR("bitwise and");
! DATA(insert OID = 2629 ( inetor PGNSP PGUID 12 1 0 0 f f t f i 2 0 869 "869 869" _null_ _null_ _null_ _null_ inetor _null_ _null_ _null_ ));
DESCR("bitwise or");
! DATA(insert OID = 2630 ( inetpl PGNSP PGUID 12 1 0 0 f f t f i 2 0 869 "869 20" _null_ _null_ _null_ _null_ inetpl _null_ _null_ _null_ ));
DESCR("add integer to inet value");
! DATA(insert OID = 2631 ( int8pl_inet PGNSP PGUID 14 1 0 0 f f t f i 2 0 869 "20 869" _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ ));
DESCR("add integer to inet value");
! DATA(insert OID = 2632 ( inetmi_int8 PGNSP PGUID 12 1 0 0 f f t f i 2 0 869 "869 20" _null_ _null_ _null_ _null_ inetmi_int8 _null_ _null_ _null_ ));
DESCR("subtract integer from inet value");
! DATA(insert OID = 2633 ( inetmi PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "869 869" _null_ _null_ _null_ _null_ inetmi _null_ _null_ _null_ ));
DESCR("subtract inet values");
! DATA(insert OID = 1690 ( time_mi_time PGNSP PGUID 12 1 0 0 f f t f i 2 0 1186 "1083 1083" _null_ _null_ _null_ _null_ time_mi_time _null_ _null_ _null_ ));
DESCR("minus");
! DATA(insert OID = 1691 ( boolle PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "16 16" _null_ _null_ _null_ _null_ boolle _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1692 ( boolge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "16 16" _null_ _null_ _null_ _null_ boolge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1693 ( btboolcmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "16 16" _null_ _null_ _null_ _null_ btboolcmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 1688 ( time_hash PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1083" _null_ _null_ _null_ _null_ time_hash _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 1696 ( timetz_hash PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1266" _null_ _null_ _null_ _null_ timetz_hash _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 1697 ( interval_hash PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1186" _null_ _null_ _null_ _null_ interval_hash _null_ _null_ _null_ ));
DESCR("hash");
/* OID's 1700 - 1799 NUMERIC data type */
! DATA(insert OID = 1701 ( numeric_in PGNSP PGUID 12 1 0 0 f f t f i 3 0 1700 "2275 26 23" _null_ _null_ _null_ _null_ numeric_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1702 ( numeric_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "1700" _null_ _null_ _null_ _null_ numeric_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2917 ( numerictypmodin PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1263" _null_ _null_ _null_ _null_ numerictypmodin _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 2918 ( numerictypmodout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ numerictypmodout _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 1703 ( numeric PGNSP PGUID 12 1 0 0 f f t f i 2 0 1700 "1700 23" _null_ _null_ _null_ _null_ numeric _null_ _null_ _null_ ));
DESCR("adjust numeric to typmod precision/scale");
! DATA(insert OID = 1704 ( numeric_abs PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 1705 ( abs PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 1706 ( sign PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_sign _null_ _null_ _null_ ));
DESCR("sign of value");
! DATA(insert OID = 1707 ( round PGNSP PGUID 12 1 0 0 f f t f i 2 0 1700 "1700 23" _null_ _null_ _null_ _null_ numeric_round _null_ _null_ _null_ ));
DESCR("value rounded to 'scale'");
! DATA(insert OID = 1708 ( round PGNSP PGUID 14 1 0 0 f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ "select pg_catalog.round($1,0)" _null_ _null_ _null_ ));
DESCR("value rounded to 'scale' of zero");
! DATA(insert OID = 1709 ( trunc PGNSP PGUID 12 1 0 0 f f t f i 2 0 1700 "1700 23" _null_ _null_ _null_ _null_ numeric_trunc _null_ _null_ _null_ ));
DESCR("value truncated to 'scale'");
! DATA(insert OID = 1710 ( trunc PGNSP PGUID 14 1 0 0 f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ "select pg_catalog.trunc($1,0)" _null_ _null_ _null_ ));
DESCR("value truncated to 'scale' of zero");
! DATA(insert OID = 1711 ( ceil PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_ceil _null_ _null_ _null_ ));
DESCR("smallest integer >= value");
! DATA(insert OID = 2167 ( ceiling PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_ceil _null_ _null_ _null_ ));
DESCR("smallest integer >= value");
! DATA(insert OID = 1712 ( floor PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_floor _null_ _null_ _null_ ));
DESCR("largest integer <= value");
! DATA(insert OID = 1718 ( numeric_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1700 1700" _null_ _null_ _null_ _null_ numeric_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1719 ( numeric_ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1700 1700" _null_ _null_ _null_ _null_ numeric_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1720 ( numeric_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1700 1700" _null_ _null_ _null_ _null_ numeric_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1721 ( numeric_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1700 1700" _null_ _null_ _null_ _null_ numeric_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1722 ( numeric_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1700 1700" _null_ _null_ _null_ _null_ numeric_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 1723 ( numeric_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1700 1700" _null_ _null_ _null_ _null_ numeric_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1724 ( numeric_add PGNSP PGUID 12 1 0 0 f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_add _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 1725 ( numeric_sub PGNSP PGUID 12 1 0 0 f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_sub _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 1726 ( numeric_mul PGNSP PGUID 12 1 0 0 f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 1727 ( numeric_div PGNSP PGUID 12 1 0 0 f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 1728 ( mod PGNSP PGUID 12 1 0 0 f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_mod _null_ _null_ _null_ ));
DESCR("modulus");
! DATA(insert OID = 1729 ( numeric_mod PGNSP PGUID 12 1 0 0 f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_mod _null_ _null_ _null_ ));
DESCR("modulus");
! DATA(insert OID = 1730 ( sqrt PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_sqrt _null_ _null_ _null_ ));
DESCR("square root");
! DATA(insert OID = 1731 ( numeric_sqrt PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_sqrt _null_ _null_ _null_ ));
DESCR("square root");
! DATA(insert OID = 1732 ( exp PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_exp _null_ _null_ _null_ ));
DESCR("e raised to the power of n");
! DATA(insert OID = 1733 ( numeric_exp PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_exp _null_ _null_ _null_ ));
DESCR("e raised to the power of n");
! DATA(insert OID = 1734 ( ln PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_ln _null_ _null_ _null_ ));
DESCR("natural logarithm of n");
! DATA(insert OID = 1735 ( numeric_ln PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_ln _null_ _null_ _null_ ));
DESCR("natural logarithm of n");
! DATA(insert OID = 1736 ( log PGNSP PGUID 12 1 0 0 f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_log _null_ _null_ _null_ ));
DESCR("logarithm base m of n");
! DATA(insert OID = 1737 ( numeric_log PGNSP PGUID 12 1 0 0 f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_log _null_ _null_ _null_ ));
DESCR("logarithm base m of n");
! DATA(insert OID = 1738 ( pow PGNSP PGUID 12 1 0 0 f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_power _null_ _null_ _null_ ));
DESCR("m raised to the power of n");
! DATA(insert OID = 2169 ( power PGNSP PGUID 12 1 0 0 f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_power _null_ _null_ _null_ ));
DESCR("m raised to the power of n");
! DATA(insert OID = 1739 ( numeric_power PGNSP PGUID 12 1 0 0 f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_power _null_ _null_ _null_ ));
DESCR("m raised to the power of n");
! DATA(insert OID = 1740 ( numeric PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "23" _null_ _null_ _null_ _null_ int4_numeric _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 1741 ( log PGNSP PGUID 14 1 0 0 f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ "select pg_catalog.log(10, $1)" _null_ _null_ _null_ ));
DESCR("logarithm base 10 of n");
! DATA(insert OID = 1742 ( numeric PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "700" _null_ _null_ _null_ _null_ float4_numeric _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 1743 ( numeric PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "701" _null_ _null_ _null_ _null_ float8_numeric _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 1744 ( int4 PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1700" _null_ _null_ _null_ _null_ numeric_int4 _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 1745 ( float4 PGNSP PGUID 12 1 0 0 f f t f i 1 0 700 "1700" _null_ _null_ _null_ _null_ numeric_float4 _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 1746 ( float8 PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "1700" _null_ _null_ _null_ _null_ numeric_float8 _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 1973 ( div PGNSP PGUID 12 1 0 0 f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_div_trunc _null_ _null_ _null_ ));
DESCR("trunc(x/y)");
! DATA(insert OID = 1980 ( numeric_div_trunc PGNSP PGUID 12 1 0 0 f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_div_trunc _null_ _null_ _null_ ));
DESCR("trunc(x/y)");
! DATA(insert OID = 2170 ( width_bucket PGNSP PGUID 12 1 0 0 f f t f i 4 0 23 "1700 1700 1700 23" _null_ _null_ _null_ _null_ width_bucket_numeric _null_ _null_ _null_ ));
DESCR("bucket number of operand in equidepth histogram");
! DATA(insert OID = 1747 ( time_pl_interval PGNSP PGUID 12 1 0 0 f f t f i 2 0 1083 "1083 1186" _null_ _null_ _null_ _null_ time_pl_interval _null_ _null_ _null_ ));
DESCR("plus");
! DATA(insert OID = 1748 ( time_mi_interval PGNSP PGUID 12 1 0 0 f f t f i 2 0 1083 "1083 1186" _null_ _null_ _null_ _null_ time_mi_interval _null_ _null_ _null_ ));
DESCR("minus");
! DATA(insert OID = 1749 ( timetz_pl_interval PGNSP PGUID 12 1 0 0 f f t f i 2 0 1266 "1266 1186" _null_ _null_ _null_ _null_ timetz_pl_interval _null_ _null_ _null_ ));
DESCR("plus");
! DATA(insert OID = 1750 ( timetz_mi_interval PGNSP PGUID 12 1 0 0 f f t f i 2 0 1266 "1266 1186" _null_ _null_ _null_ _null_ timetz_mi_interval _null_ _null_ _null_ ));
DESCR("minus");
! DATA(insert OID = 1764 ( numeric_inc PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_inc _null_ _null_ _null_ ));
DESCR("increment by one");
! DATA(insert OID = 1766 ( numeric_smaller PGNSP PGUID 12 1 0 0 f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_smaller _null_ _null_ _null_ ));
DESCR("smaller of two numbers");
! DATA(insert OID = 1767 ( numeric_larger PGNSP PGUID 12 1 0 0 f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_larger _null_ _null_ _null_ ));
DESCR("larger of two numbers");
! DATA(insert OID = 1769 ( numeric_cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "1700 1700" _null_ _null_ _null_ _null_ numeric_cmp _null_ _null_ _null_ ));
DESCR("compare two numbers");
! DATA(insert OID = 1771 ( numeric_uminus PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_uminus _null_ _null_ _null_ ));
DESCR("negate");
! DATA(insert OID = 1779 ( int8 PGNSP PGUID 12 1 0 0 f f t f i 1 0 20 "1700" _null_ _null_ _null_ _null_ numeric_int8 _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 1781 ( numeric PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "20" _null_ _null_ _null_ _null_ int8_numeric _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 1782 ( numeric PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "21" _null_ _null_ _null_ _null_ int2_numeric _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 1783 ( int2 PGNSP PGUID 12 1 0 0 f f t f i 1 0 21 "1700" _null_ _null_ _null_ _null_ numeric_int2 _null_ _null_ _null_ ));
DESCR("(internal)");
/* formatting */
! DATA(insert OID = 1770 ( to_char PGNSP PGUID 12 1 0 0 f f t f s 2 0 25 "1184 25" _null_ _null_ _null_ _null_ timestamptz_to_char _null_ _null_ _null_ ));
DESCR("format timestamp with time zone to text");
! DATA(insert OID = 1772 ( to_char PGNSP PGUID 12 1 0 0 f f t f s 2 0 25 "1700 25" _null_ _null_ _null_ _null_ numeric_to_char _null_ _null_ _null_ ));
DESCR("format numeric to text");
! DATA(insert OID = 1773 ( to_char PGNSP PGUID 12 1 0 0 f f t f s 2 0 25 "23 25" _null_ _null_ _null_ _null_ int4_to_char _null_ _null_ _null_ ));
DESCR("format int4 to text");
! DATA(insert OID = 1774 ( to_char PGNSP PGUID 12 1 0 0 f f t f s 2 0 25 "20 25" _null_ _null_ _null_ _null_ int8_to_char _null_ _null_ _null_ ));
DESCR("format int8 to text");
! DATA(insert OID = 1775 ( to_char PGNSP PGUID 12 1 0 0 f f t f s 2 0 25 "700 25" _null_ _null_ _null_ _null_ float4_to_char _null_ _null_ _null_ ));
DESCR("format float4 to text");
! DATA(insert OID = 1776 ( to_char PGNSP PGUID 12 1 0 0 f f t f s 2 0 25 "701 25" _null_ _null_ _null_ _null_ float8_to_char _null_ _null_ _null_ ));
DESCR("format float8 to text");
! DATA(insert OID = 1777 ( to_number PGNSP PGUID 12 1 0 0 f f t f s 2 0 1700 "25 25" _null_ _null_ _null_ _null_ numeric_to_number _null_ _null_ _null_ ));
DESCR("convert text to numeric");
! DATA(insert OID = 1778 ( to_timestamp PGNSP PGUID 12 1 0 0 f f t f s 2 0 1184 "25 25" _null_ _null_ _null_ _null_ to_timestamp _null_ _null_ _null_ ));
DESCR("convert text to timestamp with time zone");
! DATA(insert OID = 1780 ( to_date PGNSP PGUID 12 1 0 0 f f t f s 2 0 1082 "25 25" _null_ _null_ _null_ _null_ to_date _null_ _null_ _null_ ));
DESCR("convert text to date");
! DATA(insert OID = 1768 ( to_char PGNSP PGUID 12 1 0 0 f f t f s 2 0 25 "1186 25" _null_ _null_ _null_ _null_ interval_to_char _null_ _null_ _null_ ));
DESCR("format interval to text");
! DATA(insert OID = 1282 ( quote_ident PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ quote_ident _null_ _null_ _null_ ));
DESCR("quote an identifier for usage in a querystring");
! DATA(insert OID = 1283 ( quote_literal PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ quote_literal _null_ _null_ _null_ ));
DESCR("quote a literal for usage in a querystring");
! DATA(insert OID = 1285 ( quote_literal PGNSP PGUID 14 1 0 0 f f t f v 1 0 25 "2283" _null_ _null_ _null_ _null_ "select pg_catalog.quote_literal($1::pg_catalog.text)" _null_ _null_ _null_ ));
DESCR("quote a data value for usage in a querystring");
! DATA(insert OID = 1289 ( quote_nullable PGNSP PGUID 12 1 0 0 f f f f i 1 0 25 "25" _null_ _null_ _null_ _null_ quote_nullable _null_ _null_ _null_ ));
DESCR("quote a possibly-null literal for usage in a querystring");
! DATA(insert OID = 1290 ( quote_nullable PGNSP PGUID 14 1 0 0 f f f f v 1 0 25 "2283" _null_ _null_ _null_ _null_ "select pg_catalog.quote_nullable($1::pg_catalog.text)" _null_ _null_ _null_ ));
DESCR("quote a possibly-null data value for usage in a querystring");
! DATA(insert OID = 1798 ( oidin PGNSP PGUID 12 1 0 0 f f t f i 1 0 26 "2275" _null_ _null_ _null_ _null_ oidin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1799 ( oidout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "26" _null_ _null_ _null_ _null_ oidout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1810 ( bit_length PGNSP PGUID 14 1 0 0 f f t f i 1 0 23 "17" _null_ _null_ _null_ _null_ "select pg_catalog.octet_length($1) * 8" _null_ _null_ _null_ ));
DESCR("length in bits");
! DATA(insert OID = 1811 ( bit_length PGNSP PGUID 14 1 0 0 f f t f i 1 0 23 "25" _null_ _null_ _null_ _null_ "select pg_catalog.octet_length($1) * 8" _null_ _null_ _null_ ));
DESCR("length in bits");
! DATA(insert OID = 1812 ( bit_length PGNSP PGUID 14 1 0 0 f f t f i 1 0 23 "1560" _null_ _null_ _null_ _null_ "select pg_catalog.length($1)" _null_ _null_ _null_ ));
DESCR("length in bits");
/* Selectivity estimators for LIKE and related operators */
! DATA(insert OID = 1814 ( iclikesel PGNSP PGUID 12 1 0 0 f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ iclikesel _null_ _null_ _null_ ));
DESCR("restriction selectivity of ILIKE");
! DATA(insert OID = 1815 ( icnlikesel PGNSP PGUID 12 1 0 0 f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ icnlikesel _null_ _null_ _null_ ));
DESCR("restriction selectivity of NOT ILIKE");
! DATA(insert OID = 1816 ( iclikejoinsel PGNSP PGUID 12 1 0 0 f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ iclikejoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of ILIKE");
! DATA(insert OID = 1817 ( icnlikejoinsel PGNSP PGUID 12 1 0 0 f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ icnlikejoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of NOT ILIKE");
! DATA(insert OID = 1818 ( regexeqsel PGNSP PGUID 12 1 0 0 f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ regexeqsel _null_ _null_ _null_ ));
DESCR("restriction selectivity of regex match");
! DATA(insert OID = 1819 ( likesel PGNSP PGUID 12 1 0 0 f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ likesel _null_ _null_ _null_ ));
DESCR("restriction selectivity of LIKE");
! DATA(insert OID = 1820 ( icregexeqsel PGNSP PGUID 12 1 0 0 f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ icregexeqsel _null_ _null_ _null_ ));
DESCR("restriction selectivity of case-insensitive regex match");
! DATA(insert OID = 1821 ( regexnesel PGNSP PGUID 12 1 0 0 f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ regexnesel _null_ _null_ _null_ ));
DESCR("restriction selectivity of regex non-match");
! DATA(insert OID = 1822 ( nlikesel PGNSP PGUID 12 1 0 0 f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ nlikesel _null_ _null_ _null_ ));
DESCR("restriction selectivity of NOT LIKE");
! DATA(insert OID = 1823 ( icregexnesel PGNSP PGUID 12 1 0 0 f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ icregexnesel _null_ _null_ _null_ ));
DESCR("restriction selectivity of case-insensitive regex non-match");
! DATA(insert OID = 1824 ( regexeqjoinsel PGNSP PGUID 12 1 0 0 f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ regexeqjoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of regex match");
! DATA(insert OID = 1825 ( likejoinsel PGNSP PGUID 12 1 0 0 f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ likejoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of LIKE");
! DATA(insert OID = 1826 ( icregexeqjoinsel PGNSP PGUID 12 1 0 0 f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ icregexeqjoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of case-insensitive regex match");
! DATA(insert OID = 1827 ( regexnejoinsel PGNSP PGUID 12 1 0 0 f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ regexnejoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of regex non-match");
! DATA(insert OID = 1828 ( nlikejoinsel PGNSP PGUID 12 1 0 0 f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ nlikejoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of NOT LIKE");
! DATA(insert OID = 1829 ( icregexnejoinsel PGNSP PGUID 12 1 0 0 f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ icregexnejoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of case-insensitive regex non-match");
/* Aggregate-related functions */
! DATA(insert OID = 1830 ( float8_avg PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_avg _null_ _null_ _null_ ));
DESCR("AVG aggregate final function");
! DATA(insert OID = 2512 ( float8_var_pop PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_var_pop _null_ _null_ _null_ ));
DESCR("VAR_POP aggregate final function");
! DATA(insert OID = 1831 ( float8_var_samp PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_var_samp _null_ _null_ _null_ ));
DESCR("VAR_SAMP aggregate final function");
! DATA(insert OID = 2513 ( float8_stddev_pop PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_stddev_pop _null_ _null_ _null_ ));
DESCR("STDDEV_POP aggregate final function");
! DATA(insert OID = 1832 ( float8_stddev_samp PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_stddev_samp _null_ _null_ _null_ ));
DESCR("STDDEV_SAMP aggregate final function");
! DATA(insert OID = 1833 ( numeric_accum PGNSP PGUID 12 1 0 0 f f t f i 2 0 1231 "1231 1700" _null_ _null_ _null_ _null_ numeric_accum _null_ _null_ _null_ ));
DESCR("aggregate transition function");
! DATA(insert OID = 2858 ( numeric_avg_accum PGNSP PGUID 12 1 0 0 f f t f i 2 0 1231 "1231 1700" _null_ _null_ _null_ _null_ numeric_avg_accum _null_ _null_ _null_ ));
DESCR("aggregate transition function");
! DATA(insert OID = 1834 ( int2_accum PGNSP PGUID 12 1 0 0 f f t f i 2 0 1231 "1231 21" _null_ _null_ _null_ _null_ int2_accum _null_ _null_ _null_ ));
DESCR("aggregate transition function");
! DATA(insert OID = 1835 ( int4_accum PGNSP PGUID 12 1 0 0 f f t f i 2 0 1231 "1231 23" _null_ _null_ _null_ _null_ int4_accum _null_ _null_ _null_ ));
DESCR("aggregate transition function");
! DATA(insert OID = 1836 ( int8_accum PGNSP PGUID 12 1 0 0 f f t f i 2 0 1231 "1231 20" _null_ _null_ _null_ _null_ int8_accum _null_ _null_ _null_ ));
DESCR("aggregate transition function");
! DATA(insert OID = 2746 ( int8_avg_accum PGNSP PGUID 12 1 0 0 f f t f i 2 0 1231 "1231 20" _null_ _null_ _null_ _null_ int8_avg_accum _null_ _null_ _null_ ));
DESCR("aggregate transition function");
! DATA(insert OID = 1837 ( numeric_avg PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1231" _null_ _null_ _null_ _null_ numeric_avg _null_ _null_ _null_ ));
DESCR("AVG aggregate final function");
! DATA(insert OID = 2514 ( numeric_var_pop PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1231" _null_ _null_ _null_ _null_ numeric_var_pop _null_ _null_ _null_ ));
DESCR("VAR_POP aggregate final function");
! DATA(insert OID = 1838 ( numeric_var_samp PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1231" _null_ _null_ _null_ _null_ numeric_var_samp _null_ _null_ _null_ ));
DESCR("VAR_SAMP aggregate final function");
! DATA(insert OID = 2596 ( numeric_stddev_pop PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1231" _null_ _null_ _null_ _null_ numeric_stddev_pop _null_ _null_ _null_ ));
DESCR("STDDEV_POP aggregate final function");
! DATA(insert OID = 1839 ( numeric_stddev_samp PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1231" _null_ _null_ _null_ _null_ numeric_stddev_samp _null_ _null_ _null_ ));
DESCR("STDDEV_SAMP aggregate final function");
! DATA(insert OID = 1840 ( int2_sum PGNSP PGUID 12 1 0 0 f f f f i 2 0 20 "20 21" _null_ _null_ _null_ _null_ int2_sum _null_ _null_ _null_ ));
DESCR("SUM(int2) transition function");
! DATA(insert OID = 1841 ( int4_sum PGNSP PGUID 12 1 0 0 f f f f i 2 0 20 "20 23" _null_ _null_ _null_ _null_ int4_sum _null_ _null_ _null_ ));
DESCR("SUM(int4) transition function");
! DATA(insert OID = 1842 ( int8_sum PGNSP PGUID 12 1 0 0 f f f f i 2 0 1700 "1700 20" _null_ _null_ _null_ _null_ int8_sum _null_ _null_ _null_ ));
DESCR("SUM(int8) transition function");
! DATA(insert OID = 1843 ( interval_accum PGNSP PGUID 12 1 0 0 f f t f i 2 0 1187 "1187 1186" _null_ _null_ _null_ _null_ interval_accum _null_ _null_ _null_ ));
DESCR("aggregate transition function");
! DATA(insert OID = 1844 ( interval_avg PGNSP PGUID 12 1 0 0 f f t f i 1 0 1186 "1187" _null_ _null_ _null_ _null_ interval_avg _null_ _null_ _null_ ));
DESCR("AVG aggregate final function");
! DATA(insert OID = 1962 ( int2_avg_accum PGNSP PGUID 12 1 0 0 f f t f i 2 0 1016 "1016 21" _null_ _null_ _null_ _null_ int2_avg_accum _null_ _null_ _null_ ));
DESCR("AVG(int2) transition function");
! DATA(insert OID = 1963 ( int4_avg_accum PGNSP PGUID 12 1 0 0 f f t f i 2 0 1016 "1016 23" _null_ _null_ _null_ _null_ int4_avg_accum _null_ _null_ _null_ ));
DESCR("AVG(int4) transition function");
! DATA(insert OID = 1964 ( int8_avg PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1016" _null_ _null_ _null_ _null_ int8_avg _null_ _null_ _null_ ));
DESCR("AVG(int) aggregate final function");
! DATA(insert OID = 2805 ( int8inc_float8_float8 PGNSP PGUID 12 1 0 0 f f t f i 3 0 20 "20 701 701" _null_ _null_ _null_ _null_ int8inc_float8_float8 _null_ _null_ _null_ ));
DESCR("REGR_COUNT(double, double) transition function");
! DATA(insert OID = 2806 ( float8_regr_accum PGNSP PGUID 12 1 0 0 f f t f i 3 0 1022 "1022 701 701" _null_ _null_ _null_ _null_ float8_regr_accum _null_ _null_ _null_ ));
DESCR("REGR_...(double, double) transition function");
! DATA(insert OID = 2807 ( float8_regr_sxx PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_regr_sxx _null_ _null_ _null_ ));
DESCR("REGR_SXX(double, double) aggregate final function");
! DATA(insert OID = 2808 ( float8_regr_syy PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_regr_syy _null_ _null_ _null_ ));
DESCR("REGR_SYY(double, double) aggregate final function");
! DATA(insert OID = 2809 ( float8_regr_sxy PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_regr_sxy _null_ _null_ _null_ ));
DESCR("REGR_SXY(double, double) aggregate final function");
! DATA(insert OID = 2810 ( float8_regr_avgx PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_regr_avgx _null_ _null_ _null_ ));
DESCR("REGR_AVGX(double, double) aggregate final function");
! DATA(insert OID = 2811 ( float8_regr_avgy PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_regr_avgy _null_ _null_ _null_ ));
DESCR("REGR_AVGY(double, double) aggregate final function");
! DATA(insert OID = 2812 ( float8_regr_r2 PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_regr_r2 _null_ _null_ _null_ ));
DESCR("REGR_R2(double, double) aggregate final function");
! DATA(insert OID = 2813 ( float8_regr_slope PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_regr_slope _null_ _null_ _null_ ));
DESCR("REGR_SLOPE(double, double) aggregate final function");
! DATA(insert OID = 2814 ( float8_regr_intercept PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_regr_intercept _null_ _null_ _null_ ));
DESCR("REGR_INTERCEPT(double, double) aggregate final function");
! DATA(insert OID = 2815 ( float8_covar_pop PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_covar_pop _null_ _null_ _null_ ));
DESCR("COVAR_POP(double, double) aggregate final function");
! DATA(insert OID = 2816 ( float8_covar_samp PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_covar_samp _null_ _null_ _null_ ));
DESCR("COVAR_SAMP(double, double) aggregate final function");
! DATA(insert OID = 2817 ( float8_corr PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_corr _null_ _null_ _null_ ));
DESCR("CORR(double, double) aggregate final function");
/* To ASCII conversion */
! DATA(insert OID = 1845 ( to_ascii PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ to_ascii_default _null_ _null_ _null_ ));
DESCR("encode text from DB encoding to ASCII text");
! DATA(insert OID = 1846 ( to_ascii PGNSP PGUID 12 1 0 0 f f t f i 2 0 25 "25 23" _null_ _null_ _null_ _null_ to_ascii_enc _null_ _null_ _null_ ));
DESCR("encode text from encoding to ASCII text");
! DATA(insert OID = 1847 ( to_ascii PGNSP PGUID 12 1 0 0 f f t f i 2 0 25 "25 19" _null_ _null_ _null_ _null_ to_ascii_encname _null_ _null_ _null_ ));
DESCR("encode text from encoding to ASCII text");
! DATA(insert OID = 1848 ( interval_pl_time PGNSP PGUID 14 1 0 0 f f t f i 2 0 1083 "1186 1083" _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ ));
DESCR("plus");
! DATA(insert OID = 1850 ( int28eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "21 20" _null_ _null_ _null_ _null_ int28eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1851 ( int28ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "21 20" _null_ _null_ _null_ _null_ int28ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1852 ( int28lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "21 20" _null_ _null_ _null_ _null_ int28lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 1853 ( int28gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "21 20" _null_ _null_ _null_ _null_ int28gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1854 ( int28le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "21 20" _null_ _null_ _null_ _null_ int28le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1855 ( int28ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "21 20" _null_ _null_ _null_ _null_ int28ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1856 ( int82eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "20 21" _null_ _null_ _null_ _null_ int82eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1857 ( int82ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "20 21" _null_ _null_ _null_ _null_ int82ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1858 ( int82lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "20 21" _null_ _null_ _null_ _null_ int82lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 1859 ( int82gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "20 21" _null_ _null_ _null_ _null_ int82gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1860 ( int82le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "20 21" _null_ _null_ _null_ _null_ int82le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1861 ( int82ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "20 21" _null_ _null_ _null_ _null_ int82ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1892 ( int2and PGNSP PGUID 12 1 0 0 f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2and _null_ _null_ _null_ ));
DESCR("bitwise and");
! DATA(insert OID = 1893 ( int2or PGNSP PGUID 12 1 0 0 f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2or _null_ _null_ _null_ ));
DESCR("bitwise or");
! DATA(insert OID = 1894 ( int2xor PGNSP PGUID 12 1 0 0 f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2xor _null_ _null_ _null_ ));
DESCR("bitwise xor");
! DATA(insert OID = 1895 ( int2not PGNSP PGUID 12 1 0 0 f f t f i 1 0 21 "21" _null_ _null_ _null_ _null_ int2not _null_ _null_ _null_ ));
DESCR("bitwise not");
! DATA(insert OID = 1896 ( int2shl PGNSP PGUID 12 1 0 0 f f t f i 2 0 21 "21 23" _null_ _null_ _null_ _null_ int2shl _null_ _null_ _null_ ));
DESCR("bitwise shift left");
! DATA(insert OID = 1897 ( int2shr PGNSP PGUID 12 1 0 0 f f t f i 2 0 21 "21 23" _null_ _null_ _null_ _null_ int2shr _null_ _null_ _null_ ));
DESCR("bitwise shift right");
! DATA(insert OID = 1898 ( int4and PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4and _null_ _null_ _null_ ));
DESCR("bitwise and");
! DATA(insert OID = 1899 ( int4or PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4or _null_ _null_ _null_ ));
DESCR("bitwise or");
! DATA(insert OID = 1900 ( int4xor PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4xor _null_ _null_ _null_ ));
DESCR("bitwise xor");
! DATA(insert OID = 1901 ( int4not PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "23" _null_ _null_ _null_ _null_ int4not _null_ _null_ _null_ ));
DESCR("bitwise not");
! DATA(insert OID = 1902 ( int4shl PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4shl _null_ _null_ _null_ ));
DESCR("bitwise shift left");
! DATA(insert OID = 1903 ( int4shr PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4shr _null_ _null_ _null_ ));
DESCR("bitwise shift right");
! DATA(insert OID = 1904 ( int8and PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8and _null_ _null_ _null_ ));
DESCR("bitwise and");
! DATA(insert OID = 1905 ( int8or PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8or _null_ _null_ _null_ ));
DESCR("bitwise or");
! DATA(insert OID = 1906 ( int8xor PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8xor _null_ _null_ _null_ ));
DESCR("bitwise xor");
! DATA(insert OID = 1907 ( int8not PGNSP PGUID 12 1 0 0 f f t f i 1 0 20 "20" _null_ _null_ _null_ _null_ int8not _null_ _null_ _null_ ));
DESCR("bitwise not");
! DATA(insert OID = 1908 ( int8shl PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 23" _null_ _null_ _null_ _null_ int8shl _null_ _null_ _null_ ));
DESCR("bitwise shift left");
! DATA(insert OID = 1909 ( int8shr PGNSP PGUID 12 1 0 0 f f t f i 2 0 20 "20 23" _null_ _null_ _null_ _null_ int8shr _null_ _null_ _null_ ));
DESCR("bitwise shift right");
! DATA(insert OID = 1910 ( int8up PGNSP PGUID 12 1 0 0 f f t f i 1 0 20 "20" _null_ _null_ _null_ _null_ int8up _null_ _null_ _null_ ));
DESCR("unary plus");
! DATA(insert OID = 1911 ( int2up PGNSP PGUID 12 1 0 0 f f t f i 1 0 21 "21" _null_ _null_ _null_ _null_ int2up _null_ _null_ _null_ ));
DESCR("unary plus");
! DATA(insert OID = 1912 ( int4up PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "23" _null_ _null_ _null_ _null_ int4up _null_ _null_ _null_ ));
DESCR("unary plus");
! DATA(insert OID = 1913 ( float4up PGNSP PGUID 12 1 0 0 f f t f i 1 0 700 "700" _null_ _null_ _null_ _null_ float4up _null_ _null_ _null_ ));
DESCR("unary plus");
! DATA(insert OID = 1914 ( float8up PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ float8up _null_ _null_ _null_ ));
DESCR("unary plus");
! DATA(insert OID = 1915 ( numeric_uplus PGNSP PGUID 12 1 0 0 f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_uplus _null_ _null_ _null_ ));
DESCR("unary plus");
! DATA(insert OID = 1922 ( has_table_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ has_table_privilege_name_name _null_ _null_ _null_ ));
DESCR("user privilege on relation by username, rel name");
! DATA(insert OID = 1923 ( has_table_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ has_table_privilege_name_id _null_ _null_ _null_ ));
DESCR("user privilege on relation by username, rel oid");
! DATA(insert OID = 1924 ( has_table_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ has_table_privilege_id_name _null_ _null_ _null_ ));
DESCR("user privilege on relation by user oid, rel name");
! DATA(insert OID = 1925 ( has_table_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ has_table_privilege_id_id _null_ _null_ _null_ ));
DESCR("user privilege on relation by user oid, rel oid");
! DATA(insert OID = 1926 ( has_table_privilege PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "25 25" _null_ _null_ _null_ _null_ has_table_privilege_name _null_ _null_ _null_ ));
DESCR("current user privilege on relation by rel name");
! DATA(insert OID = 1927 ( has_table_privilege PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "26 25" _null_ _null_ _null_ _null_ has_table_privilege_id _null_ _null_ _null_ ));
DESCR("current user privilege on relation by rel oid");
! DATA(insert OID = 1928 ( pg_stat_get_numscans PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_numscans _null_ _null_ _null_ ));
DESCR("statistics: number of scans done for table/index");
! DATA(insert OID = 1929 ( pg_stat_get_tuples_returned PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_tuples_returned _null_ _null_ _null_ ));
DESCR("statistics: number of tuples read by seqscan");
! DATA(insert OID = 1930 ( pg_stat_get_tuples_fetched PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_tuples_fetched _null_ _null_ _null_ ));
DESCR("statistics: number of tuples fetched by idxscan");
! DATA(insert OID = 1931 ( pg_stat_get_tuples_inserted PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_tuples_inserted _null_ _null_ _null_ ));
DESCR("statistics: number of tuples inserted");
! DATA(insert OID = 1932 ( pg_stat_get_tuples_updated PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_tuples_updated _null_ _null_ _null_ ));
DESCR("statistics: number of tuples updated");
! DATA(insert OID = 1933 ( pg_stat_get_tuples_deleted PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_tuples_deleted _null_ _null_ _null_ ));
DESCR("statistics: number of tuples deleted");
! DATA(insert OID = 1972 ( pg_stat_get_tuples_hot_updated PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_tuples_hot_updated _null_ _null_ _null_ ));
DESCR("statistics: number of tuples hot updated");
! DATA(insert OID = 2878 ( pg_stat_get_live_tuples PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_live_tuples _null_ _null_ _null_ ));
DESCR("statistics: number of live tuples");
! DATA(insert OID = 2879 ( pg_stat_get_dead_tuples PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_dead_tuples _null_ _null_ _null_ ));
DESCR("statistics: number of dead tuples");
! DATA(insert OID = 1934 ( pg_stat_get_blocks_fetched PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_blocks_fetched _null_ _null_ _null_ ));
DESCR("statistics: number of blocks fetched");
! DATA(insert OID = 1935 ( pg_stat_get_blocks_hit PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_blocks_hit _null_ _null_ _null_ ));
DESCR("statistics: number of blocks found in cache");
! DATA(insert OID = 2781 ( pg_stat_get_last_vacuum_time PGNSP PGUID 12 1 0 0 f f t f s 1 0 1184 "26" _null_ _null_ _null_ _null_ pg_stat_get_last_vacuum_time _null_ _null_ _null_ ));
DESCR("statistics: last manual vacuum time for a table");
! DATA(insert OID = 2782 ( pg_stat_get_last_autovacuum_time PGNSP PGUID 12 1 0 0 f f t f s 1 0 1184 "26" _null_ _null_ _null_ _null_ pg_stat_get_last_autovacuum_time _null_ _null_ _null_ ));
DESCR("statistics: last auto vacuum time for a table");
! DATA(insert OID = 2783 ( pg_stat_get_last_analyze_time PGNSP PGUID 12 1 0 0 f f t f s 1 0 1184 "26" _null_ _null_ _null_ _null_ pg_stat_get_last_analyze_time _null_ _null_ _null_ ));
DESCR("statistics: last manual analyze time for a table");
! DATA(insert OID = 2784 ( pg_stat_get_last_autoanalyze_time PGNSP PGUID 12 1 0 0 f f t f s 1 0 1184 "26" _null_ _null_ _null_ _null_ pg_stat_get_last_autoanalyze_time _null_ _null_ _null_ ));
DESCR("statistics: last auto analyze time for a table");
! DATA(insert OID = 1936 ( pg_stat_get_backend_idset PGNSP PGUID 12 1 100 0 f f t t s 0 0 23 "" _null_ _null_ _null_ _null_ pg_stat_get_backend_idset _null_ _null_ _null_ ));
DESCR("statistics: currently active backend IDs");
! DATA(insert OID = 2022 ( pg_stat_get_activity PGNSP PGUID 12 1 100 0 f f f t s 1 0 2249 "23" "{23,26,23,26,25,16,1184,1184,1184,869,23}" "{i,o,o,o,o,o,o,o,o,o,o}" "{pid,datid,procpid,usesysid,current_query,waiting,xact_start,query_start,backend_start,client_addr,client_port}" _null_ pg_stat_get_activity _null_ _null_ _null_ ));
DESCR("statistics: information about currently active backends");
! DATA(insert OID = 2026 ( pg_backend_pid PGNSP PGUID 12 1 0 0 f f t f s 0 0 23 "" _null_ _null_ _null_ _null_ pg_backend_pid _null_ _null_ _null_ ));
DESCR("statistics: current backend PID");
! DATA(insert OID = 1937 ( pg_stat_get_backend_pid PGNSP PGUID 12 1 0 0 f f t f s 1 0 23 "23" _null_ _null_ _null_ _null_ pg_stat_get_backend_pid _null_ _null_ _null_ ));
DESCR("statistics: PID of backend");
! DATA(insert OID = 1938 ( pg_stat_get_backend_dbid PGNSP PGUID 12 1 0 0 f f t f s 1 0 26 "23" _null_ _null_ _null_ _null_ pg_stat_get_backend_dbid _null_ _null_ _null_ ));
DESCR("statistics: database ID of backend");
! DATA(insert OID = 1939 ( pg_stat_get_backend_userid PGNSP PGUID 12 1 0 0 f f t f s 1 0 26 "23" _null_ _null_ _null_ _null_ pg_stat_get_backend_userid _null_ _null_ _null_ ));
DESCR("statistics: user ID of backend");
! DATA(insert OID = 1940 ( pg_stat_get_backend_activity PGNSP PGUID 12 1 0 0 f f t f s 1 0 25 "23" _null_ _null_ _null_ _null_ pg_stat_get_backend_activity _null_ _null_ _null_ ));
DESCR("statistics: current query of backend");
! DATA(insert OID = 2853 ( pg_stat_get_backend_waiting PGNSP PGUID 12 1 0 0 f f t f s 1 0 16 "23" _null_ _null_ _null_ _null_ pg_stat_get_backend_waiting _null_ _null_ _null_ ));
DESCR("statistics: is backend currently waiting for a lock");
! DATA(insert OID = 2094 ( pg_stat_get_backend_activity_start PGNSP PGUID 12 1 0 0 f f t f s 1 0 1184 "23" _null_ _null_ _null_ _null_ pg_stat_get_backend_activity_start _null_ _null_ _null_ ));
DESCR("statistics: start time for current query of backend");
! DATA(insert OID = 2857 ( pg_stat_get_backend_xact_start PGNSP PGUID 12 1 0 0 f f t f s 1 0 1184 "23" _null_ _null_ _null_ _null_ pg_stat_get_backend_xact_start _null_ _null_ _null_ ));
DESCR("statistics: start time for backend's current transaction");
! DATA(insert OID = 1391 ( pg_stat_get_backend_start PGNSP PGUID 12 1 0 0 f f t f s 1 0 1184 "23" _null_ _null_ _null_ _null_ pg_stat_get_backend_start _null_ _null_ _null_ ));
DESCR("statistics: start time for current backend session");
! DATA(insert OID = 1392 ( pg_stat_get_backend_client_addr PGNSP PGUID 12 1 0 0 f f t f s 1 0 869 "23" _null_ _null_ _null_ _null_ pg_stat_get_backend_client_addr _null_ _null_ _null_ ));
DESCR("statistics: address of client connected to backend");
! DATA(insert OID = 1393 ( pg_stat_get_backend_client_port PGNSP PGUID 12 1 0 0 f f t f s 1 0 23 "23" _null_ _null_ _null_ _null_ pg_stat_get_backend_client_port _null_ _null_ _null_ ));
DESCR("statistics: port number of client connected to backend");
! DATA(insert OID = 1941 ( pg_stat_get_db_numbackends PGNSP PGUID 12 1 0 0 f f t f s 1 0 23 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_numbackends _null_ _null_ _null_ ));
DESCR("statistics: number of backends in database");
! DATA(insert OID = 1942 ( pg_stat_get_db_xact_commit PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_xact_commit _null_ _null_ _null_ ));
DESCR("statistics: transactions committed");
! DATA(insert OID = 1943 ( pg_stat_get_db_xact_rollback PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_xact_rollback _null_ _null_ _null_ ));
DESCR("statistics: transactions rolled back");
! DATA(insert OID = 1944 ( pg_stat_get_db_blocks_fetched PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_blocks_fetched _null_ _null_ _null_ ));
DESCR("statistics: blocks fetched for database");
! DATA(insert OID = 1945 ( pg_stat_get_db_blocks_hit PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_blocks_hit _null_ _null_ _null_ ));
DESCR("statistics: blocks found in cache for database");
! DATA(insert OID = 2758 ( pg_stat_get_db_tuples_returned PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_tuples_returned _null_ _null_ _null_ ));
DESCR("statistics: tuples returned for database");
! DATA(insert OID = 2759 ( pg_stat_get_db_tuples_fetched PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_tuples_fetched _null_ _null_ _null_ ));
DESCR("statistics: tuples fetched for database");
! DATA(insert OID = 2760 ( pg_stat_get_db_tuples_inserted PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_tuples_inserted _null_ _null_ _null_ ));
DESCR("statistics: tuples inserted in database");
! DATA(insert OID = 2761 ( pg_stat_get_db_tuples_updated PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_tuples_updated _null_ _null_ _null_ ));
DESCR("statistics: tuples updated in database");
! DATA(insert OID = 2762 ( pg_stat_get_db_tuples_deleted PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_tuples_deleted _null_ _null_ _null_ ));
DESCR("statistics: tuples deleted in database");
! DATA(insert OID = 2769 ( pg_stat_get_bgwriter_timed_checkpoints PGNSP PGUID 12 1 0 0 f f t f s 0 0 20 "" _null_ _null_ _null_ _null_ pg_stat_get_bgwriter_timed_checkpoints _null_ _null_ _null_ ));
DESCR("statistics: number of timed checkpoints started by the bgwriter");
! DATA(insert OID = 2770 ( pg_stat_get_bgwriter_requested_checkpoints PGNSP PGUID 12 1 0 0 f f t f s 0 0 20 "" _null_ _null_ _null_ _null_ pg_stat_get_bgwriter_requested_checkpoints _null_ _null_ _null_ ));
DESCR("statistics: number of backend requested checkpoints started by the bgwriter");
! DATA(insert OID = 2771 ( pg_stat_get_bgwriter_buf_written_checkpoints PGNSP PGUID 12 1 0 0 f f t f s 0 0 20 "" _null_ _null_ _null_ _null_ pg_stat_get_bgwriter_buf_written_checkpoints _null_ _null_ _null_ ));
DESCR("statistics: number of buffers written by the bgwriter during checkpoints");
! DATA(insert OID = 2772 ( pg_stat_get_bgwriter_buf_written_clean PGNSP PGUID 12 1 0 0 f f t f s 0 0 20 "" _null_ _null_ _null_ _null_ pg_stat_get_bgwriter_buf_written_clean _null_ _null_ _null_ ));
DESCR("statistics: number of buffers written by the bgwriter for cleaning dirty buffers");
! DATA(insert OID = 2773 ( pg_stat_get_bgwriter_maxwritten_clean PGNSP PGUID 12 1 0 0 f f t f s 0 0 20 "" _null_ _null_ _null_ _null_ pg_stat_get_bgwriter_maxwritten_clean _null_ _null_ _null_ ));
DESCR("statistics: number of times the bgwriter stopped processing when it had written too many buffers while cleaning");
! DATA(insert OID = 2775 ( pg_stat_get_buf_written_backend PGNSP PGUID 12 1 0 0 f f t f s 0 0 20 "" _null_ _null_ _null_ _null_ pg_stat_get_buf_written_backend _null_ _null_ _null_ ));
DESCR("statistics: number of buffers written by backends");
! DATA(insert OID = 2859 ( pg_stat_get_buf_alloc PGNSP PGUID 12 1 0 0 f f t f s 0 0 20 "" _null_ _null_ _null_ _null_ pg_stat_get_buf_alloc _null_ _null_ _null_ ));
DESCR("statistics: number of buffer allocations");
! DATA(insert OID = 2978 ( pg_stat_get_function_calls PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_function_calls _null_ _null_ _null_ ));
DESCR("statistics: number of function calls");
! DATA(insert OID = 2979 ( pg_stat_get_function_time PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_function_time _null_ _null_ _null_ ));
DESCR("statistics: execution time of function");
! DATA(insert OID = 2980 ( pg_stat_get_function_self_time PGNSP PGUID 12 1 0 0 f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_function_self_time _null_ _null_ _null_ ));
DESCR("statistics: self execution time of function");
! DATA(insert OID = 2230 ( pg_stat_clear_snapshot PGNSP PGUID 12 1 0 0 f f f f v 0 0 2278 "" _null_ _null_ _null_ _null_ pg_stat_clear_snapshot _null_ _null_ _null_ ));
DESCR("statistics: discard current transaction's statistics snapshot");
! DATA(insert OID = 2274 ( pg_stat_reset PGNSP PGUID 12 1 0 0 f f f f v 0 0 2278 "" _null_ _null_ _null_ _null_ pg_stat_reset _null_ _null_ _null_ ));
DESCR("statistics: reset collected statistics for current database");
! DATA(insert OID = 1946 ( encode PGNSP PGUID 12 1 0 0 f f t f i 2 0 25 "17 25" _null_ _null_ _null_ _null_ binary_encode _null_ _null_ _null_ ));
DESCR("convert bytea value into some ascii-only text string");
! DATA(insert OID = 1947 ( decode PGNSP PGUID 12 1 0 0 f f t f i 2 0 17 "25 25" _null_ _null_ _null_ _null_ binary_decode _null_ _null_ _null_ ));
DESCR("convert ascii-encoded text string into bytea value");
! DATA(insert OID = 1948 ( byteaeq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "17 17" _null_ _null_ _null_ _null_ byteaeq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1949 ( bytealt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "17 17" _null_ _null_ _null_ _null_ bytealt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 1950 ( byteale PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "17 17" _null_ _null_ _null_ _null_ byteale _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1951 ( byteagt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "17 17" _null_ _null_ _null_ _null_ byteagt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1952 ( byteage PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "17 17" _null_ _null_ _null_ _null_ byteage _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1953 ( byteane PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "17 17" _null_ _null_ _null_ _null_ byteane _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1954 ( byteacmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "17 17" _null_ _null_ _null_ _null_ byteacmp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 1961 ( timestamp PGNSP PGUID 12 1 0 0 f f t f i 2 0 1114 "1114 23" _null_ _null_ _null_ _null_ timestamp_scale _null_ _null_ _null_ ));
DESCR("adjust timestamp precision");
! DATA(insert OID = 1965 ( oidlarger PGNSP PGUID 12 1 0 0 f f t f i 2 0 26 "26 26" _null_ _null_ _null_ _null_ oidlarger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 1966 ( oidsmaller PGNSP PGUID 12 1 0 0 f f t f i 2 0 26 "26 26" _null_ _null_ _null_ _null_ oidsmaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 1967 ( timestamptz PGNSP PGUID 12 1 0 0 f f t f i 2 0 1184 "1184 23" _null_ _null_ _null_ _null_ timestamptz_scale _null_ _null_ _null_ ));
DESCR("adjust timestamptz precision");
! DATA(insert OID = 1968 ( time PGNSP PGUID 12 1 0 0 f f t f i 2 0 1083 "1083 23" _null_ _null_ _null_ _null_ time_scale _null_ _null_ _null_ ));
DESCR("adjust time precision");
! DATA(insert OID = 1969 ( timetz PGNSP PGUID 12 1 0 0 f f t f i 2 0 1266 "1266 23" _null_ _null_ _null_ _null_ timetz_scale _null_ _null_ _null_ ));
DESCR("adjust time with time zone precision");
! DATA(insert OID = 2003 ( textanycat PGNSP PGUID 14 1 0 0 f f t f i 2 0 25 "25 2776" _null_ _null_ _null_ _null_ "select $1 || $2::pg_catalog.text" _null_ _null_ _null_ ));
DESCR("concatenate");
! DATA(insert OID = 2004 ( anytextcat PGNSP PGUID 14 1 0 0 f f t f i 2 0 25 "2776 25" _null_ _null_ _null_ _null_ "select $1::pg_catalog.text || $2" _null_ _null_ _null_ ));
DESCR("concatenate");
! DATA(insert OID = 2005 ( bytealike PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "17 17" _null_ _null_ _null_ _null_ bytealike _null_ _null_ _null_ ));
DESCR("matches LIKE expression");
! DATA(insert OID = 2006 ( byteanlike PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "17 17" _null_ _null_ _null_ _null_ byteanlike _null_ _null_ _null_ ));
DESCR("does not match LIKE expression");
! DATA(insert OID = 2007 ( like PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "17 17" _null_ _null_ _null_ _null_ bytealike _null_ _null_ _null_ ));
DESCR("matches LIKE expression");
! DATA(insert OID = 2008 ( notlike PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "17 17" _null_ _null_ _null_ _null_ byteanlike _null_ _null_ _null_ ));
DESCR("does not match LIKE expression");
! DATA(insert OID = 2009 ( like_escape PGNSP PGUID 12 1 0 0 f f t f i 2 0 17 "17 17" _null_ _null_ _null_ _null_ like_escape_bytea _null_ _null_ _null_ ));
DESCR("convert LIKE pattern to use backslash escapes");
! DATA(insert OID = 2010 ( length PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "17" _null_ _null_ _null_ _null_ byteaoctetlen _null_ _null_ _null_ ));
DESCR("octet length");
! DATA(insert OID = 2011 ( byteacat PGNSP PGUID 12 1 0 0 f f t f i 2 0 17 "17 17" _null_ _null_ _null_ _null_ byteacat _null_ _null_ _null_ ));
DESCR("concatenate");
! DATA(insert OID = 2012 ( substring PGNSP PGUID 12 1 0 0 f f t f i 3 0 17 "17 23 23" _null_ _null_ _null_ _null_ bytea_substr _null_ _null_ _null_ ));
DESCR("return portion of string");
! DATA(insert OID = 2013 ( substring PGNSP PGUID 12 1 0 0 f f t f i 2 0 17 "17 23" _null_ _null_ _null_ _null_ bytea_substr_no_len _null_ _null_ _null_ ));
DESCR("return portion of string");
! DATA(insert OID = 2085 ( substr PGNSP PGUID 12 1 0 0 f f t f i 3 0 17 "17 23 23" _null_ _null_ _null_ _null_ bytea_substr _null_ _null_ _null_ ));
DESCR("return portion of string");
! DATA(insert OID = 2086 ( substr PGNSP PGUID 12 1 0 0 f f t f i 2 0 17 "17 23" _null_ _null_ _null_ _null_ bytea_substr_no_len _null_ _null_ _null_ ));
DESCR("return portion of string");
! DATA(insert OID = 2014 ( position PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "17 17" _null_ _null_ _null_ _null_ byteapos _null_ _null_ _null_ ));
DESCR("return position of substring");
! DATA(insert OID = 2015 ( btrim PGNSP PGUID 12 1 0 0 f f t f i 2 0 17 "17 17" _null_ _null_ _null_ _null_ byteatrim _null_ _null_ _null_ ));
DESCR("trim both ends of string");
! DATA(insert OID = 2019 ( time PGNSP PGUID 12 1 0 0 f f t f s 1 0 1083 "1184" _null_ _null_ _null_ _null_ timestamptz_time _null_ _null_ _null_ ));
DESCR("convert timestamptz to time");
! DATA(insert OID = 2020 ( date_trunc PGNSP PGUID 12 1 0 0 f f t f i 2 0 1114 "25 1114" _null_ _null_ _null_ _null_ timestamp_trunc _null_ _null_ _null_ ));
DESCR("truncate timestamp to specified units");
! DATA(insert OID = 2021 ( date_part PGNSP PGUID 12 1 0 0 f f t f i 2 0 701 "25 1114" _null_ _null_ _null_ _null_ timestamp_part _null_ _null_ _null_ ));
DESCR("extract field from timestamp");
! DATA(insert OID = 2023 ( timestamp PGNSP PGUID 12 1 0 0 f f t f s 1 0 1114 "702" _null_ _null_ _null_ _null_ abstime_timestamp _null_ _null_ _null_ ));
DESCR("convert abstime to timestamp");
! DATA(insert OID = 2024 ( timestamp PGNSP PGUID 12 1 0 0 f f t f i 1 0 1114 "1082" _null_ _null_ _null_ _null_ date_timestamp _null_ _null_ _null_ ));
DESCR("convert date to timestamp");
! DATA(insert OID = 2025 ( timestamp PGNSP PGUID 12 1 0 0 f f t f i 2 0 1114 "1082 1083" _null_ _null_ _null_ _null_ datetime_timestamp _null_ _null_ _null_ ));
DESCR("convert date and time to timestamp");
! DATA(insert OID = 2027 ( timestamp PGNSP PGUID 12 1 0 0 f f t f s 1 0 1114 "1184" _null_ _null_ _null_ _null_ timestamptz_timestamp _null_ _null_ _null_ ));
DESCR("convert timestamp with time zone to timestamp");
! DATA(insert OID = 2028 ( timestamptz PGNSP PGUID 12 1 0 0 f f t f s 1 0 1184 "1114" _null_ _null_ _null_ _null_ timestamp_timestamptz _null_ _null_ _null_ ));
DESCR("convert timestamp to timestamp with time zone");
! DATA(insert OID = 2029 ( date PGNSP PGUID 12 1 0 0 f f t f i 1 0 1082 "1114" _null_ _null_ _null_ _null_ timestamp_date _null_ _null_ _null_ ));
DESCR("convert timestamp to date");
! DATA(insert OID = 2030 ( abstime PGNSP PGUID 12 1 0 0 f f t f s 1 0 702 "1114" _null_ _null_ _null_ _null_ timestamp_abstime _null_ _null_ _null_ ));
DESCR("convert timestamp to abstime");
! DATA(insert OID = 2031 ( timestamp_mi PGNSP PGUID 12 1 0 0 f f t f i 2 0 1186 "1114 1114" _null_ _null_ _null_ _null_ timestamp_mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 2032 ( timestamp_pl_interval PGNSP PGUID 12 1 0 0 f f t f i 2 0 1114 "1114 1186" _null_ _null_ _null_ _null_ timestamp_pl_interval _null_ _null_ _null_ ));
DESCR("plus");
! DATA(insert OID = 2033 ( timestamp_mi_interval PGNSP PGUID 12 1 0 0 f f t f i 2 0 1114 "1114 1186" _null_ _null_ _null_ _null_ timestamp_mi_interval _null_ _null_ _null_ ));
DESCR("minus");
! DATA(insert OID = 2035 ( timestamp_smaller PGNSP PGUID 12 1 0 0 f f t f i 2 0 1114 "1114 1114" _null_ _null_ _null_ _null_ timestamp_smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 2036 ( timestamp_larger PGNSP PGUID 12 1 0 0 f f t f i 2 0 1114 "1114 1114" _null_ _null_ _null_ _null_ timestamp_larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 2037 ( timezone PGNSP PGUID 12 1 0 0 f f t f v 2 0 1266 "25 1266" _null_ _null_ _null_ _null_ timetz_zone _null_ _null_ _null_ ));
DESCR("adjust time with time zone to new zone");
! DATA(insert OID = 2038 ( timezone PGNSP PGUID 12 1 0 0 f f t f i 2 0 1266 "1186 1266" _null_ _null_ _null_ _null_ timetz_izone _null_ _null_ _null_ ));
DESCR("adjust time with time zone to new zone");
! DATA(insert OID = 2039 ( timestamp_hash PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "1114" _null_ _null_ _null_ _null_ timestamp_hash _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 2041 ( overlaps PGNSP PGUID 12 1 0 0 f f f f i 4 0 16 "1114 1114 1114 1114" _null_ _null_ _null_ _null_ overlaps_timestamp _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 2042 ( overlaps PGNSP PGUID 14 1 0 0 f f f f i 4 0 16 "1114 1186 1114 1186" _null_ _null_ _null_ _null_ "select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 2043 ( overlaps PGNSP PGUID 14 1 0 0 f f f f i 4 0 16 "1114 1114 1114 1186" _null_ _null_ _null_ _null_ "select ($1, $2) overlaps ($3, ($3 + $4))" _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 2044 ( overlaps PGNSP PGUID 14 1 0 0 f f f f i 4 0 16 "1114 1186 1114 1114" _null_ _null_ _null_ _null_ "select ($1, ($1 + $2)) overlaps ($3, $4)" _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 2045 ( timestamp_cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "1114 1114" _null_ _null_ _null_ _null_ timestamp_cmp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 2046 ( time PGNSP PGUID 12 1 0 0 f f t f i 1 0 1083 "1266" _null_ _null_ _null_ _null_ timetz_time _null_ _null_ _null_ ));
DESCR("convert time with time zone to time");
! DATA(insert OID = 2047 ( timetz PGNSP PGUID 12 1 0 0 f f t f s 1 0 1266 "1083" _null_ _null_ _null_ _null_ time_timetz _null_ _null_ _null_ ));
DESCR("convert time to timetz");
! DATA(insert OID = 2048 ( isfinite PGNSP PGUID 12 1 0 0 f f t f i 1 0 16 "1114" _null_ _null_ _null_ _null_ timestamp_finite _null_ _null_ _null_ ));
DESCR("finite timestamp?");
! DATA(insert OID = 2049 ( to_char PGNSP PGUID 12 1 0 0 f f t f s 2 0 25 "1114 25" _null_ _null_ _null_ _null_ timestamp_to_char _null_ _null_ _null_ ));
DESCR("format timestamp to text");
! DATA(insert OID = 2052 ( timestamp_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1114 1114" _null_ _null_ _null_ _null_ timestamp_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 2053 ( timestamp_ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1114 1114" _null_ _null_ _null_ _null_ timestamp_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 2054 ( timestamp_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1114 1114" _null_ _null_ _null_ _null_ timestamp_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 2055 ( timestamp_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1114 1114" _null_ _null_ _null_ _null_ timestamp_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 2056 ( timestamp_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1114 1114" _null_ _null_ _null_ _null_ timestamp_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 2057 ( timestamp_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1114 1114" _null_ _null_ _null_ _null_ timestamp_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 2058 ( age PGNSP PGUID 12 1 0 0 f f t f i 2 0 1186 "1114 1114" _null_ _null_ _null_ _null_ timestamp_age _null_ _null_ _null_ ));
DESCR("date difference preserving months and years");
! DATA(insert OID = 2059 ( age PGNSP PGUID 14 1 0 0 f f t f s 1 0 1186 "1114" _null_ _null_ _null_ _null_ "select pg_catalog.age(cast(current_date as timestamp without time zone), $1)" _null_ _null_ _null_ ));
DESCR("date difference from today preserving months and years");
! DATA(insert OID = 2069 ( timezone PGNSP PGUID 12 1 0 0 f f t f i 2 0 1184 "25 1114" _null_ _null_ _null_ _null_ timestamp_zone _null_ _null_ _null_ ));
DESCR("adjust timestamp to new time zone");
! DATA(insert OID = 2070 ( timezone PGNSP PGUID 12 1 0 0 f f t f i 2 0 1184 "1186 1114" _null_ _null_ _null_ _null_ timestamp_izone _null_ _null_ _null_ ));
DESCR("adjust timestamp to new time zone");
! DATA(insert OID = 2071 ( date_pl_interval PGNSP PGUID 12 1 0 0 f f t f i 2 0 1114 "1082 1186" _null_ _null_ _null_ _null_ date_pl_interval _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 2072 ( date_mi_interval PGNSP PGUID 12 1 0 0 f f t f i 2 0 1114 "1082 1186" _null_ _null_ _null_ _null_ date_mi_interval _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 2073 ( substring PGNSP PGUID 12 1 0 0 f f t f i 2 0 25 "25 25" _null_ _null_ _null_ _null_ textregexsubstr _null_ _null_ _null_ ));
DESCR("extracts text matching regular expression");
! DATA(insert OID = 2074 ( substring PGNSP PGUID 14 1 0 0 f f t f i 3 0 25 "25 25 25" _null_ _null_ _null_ _null_ "select pg_catalog.substring($1, pg_catalog.similar_escape($2, $3))" _null_ _null_ _null_ ));
DESCR("extracts text matching SQL99 regular expression");
! DATA(insert OID = 2075 ( bit PGNSP PGUID 12 1 0 0 f f t f i 2 0 1560 "20 23" _null_ _null_ _null_ _null_ bitfromint8 _null_ _null_ _null_ ));
DESCR("int8 to bitstring");
! DATA(insert OID = 2076 ( int8 PGNSP PGUID 12 1 0 0 f f t f i 1 0 20 "1560" _null_ _null_ _null_ _null_ bittoint8 _null_ _null_ _null_ ));
DESCR("bitstring to int8");
! DATA(insert OID = 2077 ( current_setting PGNSP PGUID 12 1 0 0 f f t f s 1 0 25 "25" _null_ _null_ _null_ _null_ show_config_by_name _null_ _null_ _null_ ));
DESCR("SHOW X as a function");
! DATA(insert OID = 2078 ( set_config PGNSP PGUID 12 1 0 0 f f f f v 3 0 25 "25 25 16" _null_ _null_ _null_ _null_ set_config_by_name _null_ _null_ _null_ ));
DESCR("SET X as a function");
! DATA(insert OID = 2084 ( pg_show_all_settings PGNSP PGUID 12 1 1000 0 f f t t s 0 0 2249 "" "{25,25,25,25,25,25,25,25,25,25,25,1009,25,25,25,23}" "{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}" "{name,setting,unit,category,short_desc,extra_desc,context,vartype,source,min_val,max_val,enumvals,boot_val,reset_val,sourcefile,sourceline}" _null_ show_all_settings _null_ _null_ _null_ ));
DESCR("SHOW ALL as a function");
! DATA(insert OID = 1371 ( pg_lock_status PGNSP PGUID 12 1 1000 0 f f t t v 0 0 2249 "" "{25,26,26,23,21,25,28,26,26,21,25,23,25,16}" "{o,o,o,o,o,o,o,o,o,o,o,o,o,o}" "{locktype,database,relation,page,tuple,virtualxid,transactionid,classid,objid,objsubid,virtualtransaction,pid,mode,granted}" _null_ pg_lock_status _null_ _null_ _null_ ));
DESCR("view system lock information");
! DATA(insert OID = 1065 ( pg_prepared_xact PGNSP PGUID 12 1 1000 0 f f t t v 0 0 2249 "" "{28,25,1184,26,26}" "{o,o,o,o,o}" "{transaction,gid,prepared,ownerid,dbid}" _null_ pg_prepared_xact _null_ _null_ _null_ ));
DESCR("view two-phase transactions");
! DATA(insert OID = 2079 ( pg_table_is_visible PGNSP PGUID 12 1 0 0 f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_table_is_visible _null_ _null_ _null_ ));
DESCR("is table visible in search path?");
! DATA(insert OID = 2080 ( pg_type_is_visible PGNSP PGUID 12 1 0 0 f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_type_is_visible _null_ _null_ _null_ ));
DESCR("is type visible in search path?");
! DATA(insert OID = 2081 ( pg_function_is_visible PGNSP PGUID 12 1 0 0 f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_function_is_visible _null_ _null_ _null_ ));
DESCR("is function visible in search path?");
! DATA(insert OID = 2082 ( pg_operator_is_visible PGNSP PGUID 12 1 0 0 f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_operator_is_visible _null_ _null_ _null_ ));
DESCR("is operator visible in search path?");
! DATA(insert OID = 2083 ( pg_opclass_is_visible PGNSP PGUID 12 1 0 0 f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_opclass_is_visible _null_ _null_ _null_ ));
DESCR("is opclass visible in search path?");
! DATA(insert OID = 2093 ( pg_conversion_is_visible PGNSP PGUID 12 1 0 0 f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_conversion_is_visible _null_ _null_ _null_ ));
DESCR("is conversion visible in search path?");
! DATA(insert OID = 3756 ( pg_ts_parser_is_visible PGNSP PGUID 12 1 0 0 f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_ts_parser_is_visible _null_ _null_ _null_ ));
DESCR("is text search parser visible in search path?");
! DATA(insert OID = 3757 ( pg_ts_dict_is_visible PGNSP PGUID 12 1 0 0 f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_ts_dict_is_visible _null_ _null_ _null_ ));
DESCR("is text search dictionary visible in search path?");
! DATA(insert OID = 3768 ( pg_ts_template_is_visible PGNSP PGUID 12 1 0 0 f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_ts_template_is_visible _null_ _null_ _null_ ));
DESCR("is text search template visible in search path?");
! DATA(insert OID = 3758 ( pg_ts_config_is_visible PGNSP PGUID 12 1 0 0 f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_ts_config_is_visible _null_ _null_ _null_ ));
DESCR("is text search configuration visible in search path?");
! DATA(insert OID = 2854 ( pg_my_temp_schema PGNSP PGUID 12 1 0 0 f f t f s 0 0 26 "" _null_ _null_ _null_ _null_ pg_my_temp_schema _null_ _null_ _null_ ));
DESCR("get OID of current session's temp schema, if any");
! DATA(insert OID = 2855 ( pg_is_other_temp_schema PGNSP PGUID 12 1 0 0 f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_is_other_temp_schema _null_ _null_ _null_ ));
DESCR("is schema another session's temp schema?");
! DATA(insert OID = 2171 ( pg_cancel_backend PGNSP PGUID 12 1 0 0 f f t f v 1 0 16 "23" _null_ _null_ _null_ _null_ pg_cancel_backend _null_ _null_ _null_ ));
DESCR("cancel a server process' current query");
! DATA(insert OID = 2096 ( pg_terminate_backend PGNSP PGUID 12 1 0 0 f f t f v 1 0 16 "23" _null_ _null_ _null_ _null_ pg_terminate_backend _null_ _null_ _null_ ));
DESCR("terminate a server process");
! DATA(insert OID = 2172 ( pg_start_backup PGNSP PGUID 12 1 0 0 f f t f v 1 0 25 "25" _null_ _null_ _null_ _null_ pg_start_backup _null_ _null_ _null_ ));
DESCR("prepare for taking an online backup");
! DATA(insert OID = 2173 ( pg_stop_backup PGNSP PGUID 12 1 0 0 f f t f v 0 0 25 "" _null_ _null_ _null_ _null_ pg_stop_backup _null_ _null_ _null_ ));
DESCR("finish taking an online backup");
! DATA(insert OID = 2848 ( pg_switch_xlog PGNSP PGUID 12 1 0 0 f f t f v 0 0 25 "" _null_ _null_ _null_ _null_ pg_switch_xlog _null_ _null_ _null_ ));
DESCR("switch to new xlog file");
! DATA(insert OID = 2849 ( pg_current_xlog_location PGNSP PGUID 12 1 0 0 f f t f v 0 0 25 "" _null_ _null_ _null_ _null_ pg_current_xlog_location _null_ _null_ _null_ ));
DESCR("current xlog write location");
! DATA(insert OID = 2852 ( pg_current_xlog_insert_location PGNSP PGUID 12 1 0 0 f f t f v 0 0 25 "" _null_ _null_ _null_ _null_ pg_current_xlog_insert_location _null_ _null_ _null_ ));
DESCR("current xlog insert location");
! DATA(insert OID = 2850 ( pg_xlogfile_name_offset PGNSP PGUID 12 1 0 0 f f t f i 1 0 2249 "25" "{25,25,23}" "{i,o,o}" "{wal_location,file_name,file_offset}" _null_ pg_xlogfile_name_offset _null_ _null_ _null_ ));
DESCR("xlog filename and byte offset, given an xlog location");
! DATA(insert OID = 2851 ( pg_xlogfile_name PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ pg_xlogfile_name _null_ _null_ _null_ ));
DESCR("xlog filename, given an xlog location");
! DATA(insert OID = 2621 ( pg_reload_conf PGNSP PGUID 12 1 0 0 f f t f v 0 0 16 "" _null_ _null_ _null_ _null_ pg_reload_conf _null_ _null_ _null_ ));
DESCR("reload configuration files");
! DATA(insert OID = 2622 ( pg_rotate_logfile PGNSP PGUID 12 1 0 0 f f t f v 0 0 16 "" _null_ _null_ _null_ _null_ pg_rotate_logfile _null_ _null_ _null_ ));
DESCR("rotate log file");
! DATA(insert OID = 2623 ( pg_stat_file PGNSP PGUID 12 1 0 0 f f t f v 1 0 2249 "25" "{25,20,1184,1184,1184,1184,16}" "{i,o,o,o,o,o,o}" "{filename,size,access,modification,change,creation,isdir}" _null_ pg_stat_file _null_ _null_ _null_ ));
DESCR("return file information");
! DATA(insert OID = 2624 ( pg_read_file PGNSP PGUID 12 1 0 0 f f t f v 3 0 25 "25 20 20" _null_ _null_ _null_ _null_ pg_read_file _null_ _null_ _null_ ));
DESCR("read text from a file");
! DATA(insert OID = 2625 ( pg_ls_dir PGNSP PGUID 12 1 1000 0 f f t t v 1 0 25 "25" _null_ _null_ _null_ _null_ pg_ls_dir _null_ _null_ _null_ ));
DESCR("list all files in a directory");
! DATA(insert OID = 2626 ( pg_sleep PGNSP PGUID 12 1 0 0 f f t f v 1 0 2278 "701" _null_ _null_ _null_ _null_ pg_sleep _null_ _null_ _null_ ));
DESCR("sleep for the specified time in seconds");
! DATA(insert OID = 2971 ( text PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "16" _null_ _null_ _null_ _null_ booltext _null_ _null_ _null_ ));
DESCR("convert boolean to text");
/* Aggregates (moved here from pg_aggregate for 7.3) */
! DATA(insert OID = 2100 ( avg PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("the average (arithmetic mean) as numeric of all bigint values");
! DATA(insert OID = 2101 ( avg PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("the average (arithmetic mean) as numeric of all integer values");
! DATA(insert OID = 2102 ( avg PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("the average (arithmetic mean) as numeric of all smallint values");
! DATA(insert OID = 2103 ( avg PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("the average (arithmetic mean) as numeric of all numeric values");
! DATA(insert OID = 2104 ( avg PGNSP PGUID 12 1 0 0 t f f f i 1 0 701 "700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("the average (arithmetic mean) as float8 of all float4 values");
! DATA(insert OID = 2105 ( avg PGNSP PGUID 12 1 0 0 t f f f i 1 0 701 "701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("the average (arithmetic mean) as float8 of all float8 values");
! DATA(insert OID = 2106 ( avg PGNSP PGUID 12 1 0 0 t f f f i 1 0 1186 "1186" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("the average (arithmetic mean) as interval of all interval values");
! DATA(insert OID = 2107 ( sum PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum as numeric across all bigint input values");
! DATA(insert OID = 2108 ( sum PGNSP PGUID 12 1 0 0 t f f f i 1 0 20 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum as bigint across all integer input values");
! DATA(insert OID = 2109 ( sum PGNSP PGUID 12 1 0 0 t f f f i 1 0 20 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum as bigint across all smallint input values");
! DATA(insert OID = 2110 ( sum PGNSP PGUID 12 1 0 0 t f f f i 1 0 700 "700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum as float4 across all float4 input values");
! DATA(insert OID = 2111 ( sum PGNSP PGUID 12 1 0 0 t f f f i 1 0 701 "701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum as float8 across all float8 input values");
! DATA(insert OID = 2112 ( sum PGNSP PGUID 12 1 0 0 t f f f i 1 0 790 "790" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum as money across all money input values");
! DATA(insert OID = 2113 ( sum PGNSP PGUID 12 1 0 0 t f f f i 1 0 1186 "1186" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum as interval across all interval input values");
! DATA(insert OID = 2114 ( sum PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum as numeric across all numeric input values");
! DATA(insert OID = 2115 ( max PGNSP PGUID 12 1 0 0 t f f f i 1 0 20 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all bigint input values");
! DATA(insert OID = 2116 ( max PGNSP PGUID 12 1 0 0 t f f f i 1 0 23 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all integer input values");
! DATA(insert OID = 2117 ( max PGNSP PGUID 12 1 0 0 t f f f i 1 0 21 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all smallint input values");
! DATA(insert OID = 2118 ( max PGNSP PGUID 12 1 0 0 t f f f i 1 0 26 "26" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all oid input values");
! DATA(insert OID = 2119 ( max PGNSP PGUID 12 1 0 0 t f f f i 1 0 700 "700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all float4 input values");
! DATA(insert OID = 2120 ( max PGNSP PGUID 12 1 0 0 t f f f i 1 0 701 "701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all float8 input values");
! DATA(insert OID = 2121 ( max PGNSP PGUID 12 1 0 0 t f f f i 1 0 702 "702" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all abstime input values");
! DATA(insert OID = 2122 ( max PGNSP PGUID 12 1 0 0 t f f f i 1 0 1082 "1082" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all date input values");
! DATA(insert OID = 2123 ( max PGNSP PGUID 12 1 0 0 t f f f i 1 0 1083 "1083" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all time input values");
! DATA(insert OID = 2124 ( max PGNSP PGUID 12 1 0 0 t f f f i 1 0 1266 "1266" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all time with time zone input values");
! DATA(insert OID = 2125 ( max PGNSP PGUID 12 1 0 0 t f f f i 1 0 790 "790" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all money input values");
! DATA(insert OID = 2126 ( max PGNSP PGUID 12 1 0 0 t f f f i 1 0 1114 "1114" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all timestamp input values");
! DATA(insert OID = 2127 ( max PGNSP PGUID 12 1 0 0 t f f f i 1 0 1184 "1184" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all timestamp with time zone input values");
! DATA(insert OID = 2128 ( max PGNSP PGUID 12 1 0 0 t f f f i 1 0 1186 "1186" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all interval input values");
! DATA(insert OID = 2129 ( max PGNSP PGUID 12 1 0 0 t f f f i 1 0 25 "25" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all text input values");
! DATA(insert OID = 2130 ( max PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all numeric input values");
! DATA(insert OID = 2050 ( max PGNSP PGUID 12 1 0 0 t f f f i 1 0 2277 "2277" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all anyarray input values");
! DATA(insert OID = 2244 ( max PGNSP PGUID 12 1 0 0 t f f f i 1 0 1042 "1042" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all bpchar input values");
! DATA(insert OID = 2797 ( max PGNSP PGUID 12 1 0 0 t f f f i 1 0 27 "27" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all tid input values");
! DATA(insert OID = 2131 ( min PGNSP PGUID 12 1 0 0 t f f f i 1 0 20 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all bigint input values");
! DATA(insert OID = 2132 ( min PGNSP PGUID 12 1 0 0 t f f f i 1 0 23 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all integer input values");
! DATA(insert OID = 2133 ( min PGNSP PGUID 12 1 0 0 t f f f i 1 0 21 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all smallint input values");
! DATA(insert OID = 2134 ( min PGNSP PGUID 12 1 0 0 t f f f i 1 0 26 "26" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all oid input values");
! DATA(insert OID = 2135 ( min PGNSP PGUID 12 1 0 0 t f f f i 1 0 700 "700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all float4 input values");
! DATA(insert OID = 2136 ( min PGNSP PGUID 12 1 0 0 t f f f i 1 0 701 "701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all float8 input values");
! DATA(insert OID = 2137 ( min PGNSP PGUID 12 1 0 0 t f f f i 1 0 702 "702" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all abstime input values");
! DATA(insert OID = 2138 ( min PGNSP PGUID 12 1 0 0 t f f f i 1 0 1082 "1082" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all date input values");
! DATA(insert OID = 2139 ( min PGNSP PGUID 12 1 0 0 t f f f i 1 0 1083 "1083" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all time input values");
! DATA(insert OID = 2140 ( min PGNSP PGUID 12 1 0 0 t f f f i 1 0 1266 "1266" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all time with time zone input values");
! DATA(insert OID = 2141 ( min PGNSP PGUID 12 1 0 0 t f f f i 1 0 790 "790" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all money input values");
! DATA(insert OID = 2142 ( min PGNSP PGUID 12 1 0 0 t f f f i 1 0 1114 "1114" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all timestamp input values");
! DATA(insert OID = 2143 ( min PGNSP PGUID 12 1 0 0 t f f f i 1 0 1184 "1184" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all timestamp with time zone input values");
! DATA(insert OID = 2144 ( min PGNSP PGUID 12 1 0 0 t f f f i 1 0 1186 "1186" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all interval input values");
! DATA(insert OID = 2145 ( min PGNSP PGUID 12 1 0 0 t f f f i 1 0 25 "25" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all text values");
! DATA(insert OID = 2146 ( min PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all numeric input values");
! DATA(insert OID = 2051 ( min PGNSP PGUID 12 1 0 0 t f f f i 1 0 2277 "2277" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all anyarray input values");
! DATA(insert OID = 2245 ( min PGNSP PGUID 12 1 0 0 t f f f i 1 0 1042 "1042" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all bpchar input values");
! DATA(insert OID = 2798 ( min PGNSP PGUID 12 1 0 0 t f f f i 1 0 27 "27" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all tid input values");
/* count has two forms: count(any) and count(*) */
! DATA(insert OID = 2147 ( count PGNSP PGUID 12 1 0 0 t f f f i 1 0 20 "2276" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("number of input rows for which the input expression is not null");
! DATA(insert OID = 2803 ( count PGNSP PGUID 12 1 0 0 t f f f i 0 0 20 "" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("number of input rows");
! DATA(insert OID = 2718 ( var_pop PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population variance of bigint input values (square of the population standard deviation)");
! DATA(insert OID = 2719 ( var_pop PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population variance of integer input values (square of the population standard deviation)");
! DATA(insert OID = 2720 ( var_pop PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population variance of smallint input values (square of the population standard deviation)");
! DATA(insert OID = 2721 ( var_pop PGNSP PGUID 12 1 0 0 t f f f i 1 0 701 "700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population variance of float4 input values (square of the population standard deviation)");
! DATA(insert OID = 2722 ( var_pop PGNSP PGUID 12 1 0 0 t f f f i 1 0 701 "701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population variance of float8 input values (square of the population standard deviation)");
! DATA(insert OID = 2723 ( var_pop PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population variance of numeric input values (square of the population standard deviation)");
! DATA(insert OID = 2641 ( var_samp PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample variance of bigint input values (square of the sample standard deviation)");
! DATA(insert OID = 2642 ( var_samp PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample variance of integer input values (square of the sample standard deviation)");
! DATA(insert OID = 2643 ( var_samp PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample variance of smallint input values (square of the sample standard deviation)");
! DATA(insert OID = 2644 ( var_samp PGNSP PGUID 12 1 0 0 t f f f i 1 0 701 "700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample variance of float4 input values (square of the sample standard deviation)");
! DATA(insert OID = 2645 ( var_samp PGNSP PGUID 12 1 0 0 t f f f i 1 0 701 "701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample variance of float8 input values (square of the sample standard deviation)");
! DATA(insert OID = 2646 ( var_samp PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample variance of numeric input values (square of the sample standard deviation)");
! DATA(insert OID = 2148 ( variance PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for var_samp");
! DATA(insert OID = 2149 ( variance PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for var_samp");
! DATA(insert OID = 2150 ( variance PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for var_samp");
! DATA(insert OID = 2151 ( variance PGNSP PGUID 12 1 0 0 t f f f i 1 0 701 "700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for var_samp");
! DATA(insert OID = 2152 ( variance PGNSP PGUID 12 1 0 0 t f f f i 1 0 701 "701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for var_samp");
! DATA(insert OID = 2153 ( variance PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for var_samp");
! DATA(insert OID = 2724 ( stddev_pop PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population standard deviation of bigint input values");
! DATA(insert OID = 2725 ( stddev_pop PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population standard deviation of integer input values");
! DATA(insert OID = 2726 ( stddev_pop PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population standard deviation of smallint input values");
! DATA(insert OID = 2727 ( stddev_pop PGNSP PGUID 12 1 0 0 t f f f i 1 0 701 "700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population standard deviation of float4 input values");
! DATA(insert OID = 2728 ( stddev_pop PGNSP PGUID 12 1 0 0 t f f f i 1 0 701 "701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population standard deviation of float8 input values");
! DATA(insert OID = 2729 ( stddev_pop PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population standard deviation of numeric input values");
! DATA(insert OID = 2712 ( stddev_samp PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample standard deviation of bigint input values");
! DATA(insert OID = 2713 ( stddev_samp PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample standard deviation of integer input values");
! DATA(insert OID = 2714 ( stddev_samp PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample standard deviation of smallint input values");
! DATA(insert OID = 2715 ( stddev_samp PGNSP PGUID 12 1 0 0 t f f f i 1 0 701 "700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample standard deviation of float4 input values");
! DATA(insert OID = 2716 ( stddev_samp PGNSP PGUID 12 1 0 0 t f f f i 1 0 701 "701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample standard deviation of float8 input values");
! DATA(insert OID = 2717 ( stddev_samp PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample standard deviation of numeric input values");
! DATA(insert OID = 2154 ( stddev PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for stddev_samp");
! DATA(insert OID = 2155 ( stddev PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for stddev_samp");
! DATA(insert OID = 2156 ( stddev PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for stddev_samp");
! DATA(insert OID = 2157 ( stddev PGNSP PGUID 12 1 0 0 t f f f i 1 0 701 "700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for stddev_samp");
! DATA(insert OID = 2158 ( stddev PGNSP PGUID 12 1 0 0 t f f f i 1 0 701 "701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for stddev_samp");
! DATA(insert OID = 2159 ( stddev PGNSP PGUID 12 1 0 0 t f f f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for stddev_samp");
! DATA(insert OID = 2818 ( regr_count PGNSP PGUID 12 1 0 0 t f f f i 2 0 20 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("number of input rows in which both expressions are nonnull");
! DATA(insert OID = 2819 ( regr_sxx PGNSP PGUID 12 1 0 0 t f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum of squares of the independent variable (sum(X^2) - sum(X)^2/N)");
! DATA(insert OID = 2820 ( regr_syy PGNSP PGUID 12 1 0 0 t f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum of squares of the dependent variable (sum(Y^2) - sum(Y)^2/N)");
! DATA(insert OID = 2821 ( regr_sxy PGNSP PGUID 12 1 0 0 t f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum of products of independent times dependent variable (sum(X*Y) - sum(X) * sum(Y)/N)");
! DATA(insert OID = 2822 ( regr_avgx PGNSP PGUID 12 1 0 0 t f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("average of the independent variable (sum(X)/N)");
! DATA(insert OID = 2823 ( regr_avgy PGNSP PGUID 12 1 0 0 t f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("average of the dependent variable (sum(Y)/N)");
! DATA(insert OID = 2824 ( regr_r2 PGNSP PGUID 12 1 0 0 t f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("square of the correlation coefficient");
! DATA(insert OID = 2825 ( regr_slope PGNSP PGUID 12 1 0 0 t f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("slope of the least-squares-fit linear equation determined by the (X, Y) pairs");
! DATA(insert OID = 2826 ( regr_intercept PGNSP PGUID 12 1 0 0 t f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("y-intercept of the least-squares-fit linear equation determined by the (X, Y) pairs");
! DATA(insert OID = 2827 ( covar_pop PGNSP PGUID 12 1 0 0 t f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population covariance");
! DATA(insert OID = 2828 ( covar_samp PGNSP PGUID 12 1 0 0 t f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample covariance");
! DATA(insert OID = 2829 ( corr PGNSP PGUID 12 1 0 0 t f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("correlation coefficient");
! DATA(insert OID = 2160 ( text_pattern_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ text_pattern_lt _null_ _null_ _null_ ));
! DATA(insert OID = 2161 ( text_pattern_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ text_pattern_le _null_ _null_ _null_ ));
! DATA(insert OID = 2163 ( text_pattern_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ text_pattern_ge _null_ _null_ _null_ ));
! DATA(insert OID = 2164 ( text_pattern_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ text_pattern_gt _null_ _null_ _null_ ));
! DATA(insert OID = 2166 ( bttext_pattern_cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "25 25" _null_ _null_ _null_ _null_ bttext_pattern_cmp _null_ _null_ _null_ ));
! DATA(insert OID = 2174 ( bpchar_pattern_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ bpchar_pattern_lt _null_ _null_ _null_ ));
! DATA(insert OID = 2175 ( bpchar_pattern_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ bpchar_pattern_le _null_ _null_ _null_ ));
! DATA(insert OID = 2177 ( bpchar_pattern_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ bpchar_pattern_ge _null_ _null_ _null_ ));
! DATA(insert OID = 2178 ( bpchar_pattern_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ bpchar_pattern_gt _null_ _null_ _null_ ));
! DATA(insert OID = 2180 ( btbpchar_pattern_cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "1042 1042" _null_ _null_ _null_ _null_ btbpchar_pattern_cmp _null_ _null_ _null_ ));
! DATA(insert OID = 2188 ( btint48cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "23 20" _null_ _null_ _null_ _null_ btint48cmp _null_ _null_ _null_ ));
! DATA(insert OID = 2189 ( btint84cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "20 23" _null_ _null_ _null_ _null_ btint84cmp _null_ _null_ _null_ ));
! DATA(insert OID = 2190 ( btint24cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "21 23" _null_ _null_ _null_ _null_ btint24cmp _null_ _null_ _null_ ));
! DATA(insert OID = 2191 ( btint42cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "23 21" _null_ _null_ _null_ _null_ btint42cmp _null_ _null_ _null_ ));
! DATA(insert OID = 2192 ( btint28cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "21 20" _null_ _null_ _null_ _null_ btint28cmp _null_ _null_ _null_ ));
! DATA(insert OID = 2193 ( btint82cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "20 21" _null_ _null_ _null_ _null_ btint82cmp _null_ _null_ _null_ ));
! DATA(insert OID = 2194 ( btfloat48cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "700 701" _null_ _null_ _null_ _null_ btfloat48cmp _null_ _null_ _null_ ));
! DATA(insert OID = 2195 ( btfloat84cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "701 700" _null_ _null_ _null_ _null_ btfloat84cmp _null_ _null_ _null_ ));
! DATA(insert OID = 2212 ( regprocedurein PGNSP PGUID 12 1 0 0 f f t f s 1 0 2202 "2275" _null_ _null_ _null_ _null_ regprocedurein _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2213 ( regprocedureout PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "2202" _null_ _null_ _null_ _null_ regprocedureout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2214 ( regoperin PGNSP PGUID 12 1 0 0 f f t f s 1 0 2203 "2275" _null_ _null_ _null_ _null_ regoperin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2215 ( regoperout PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "2203" _null_ _null_ _null_ _null_ regoperout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2216 ( regoperatorin PGNSP PGUID 12 1 0 0 f f t f s 1 0 2204 "2275" _null_ _null_ _null_ _null_ regoperatorin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2217 ( regoperatorout PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "2204" _null_ _null_ _null_ _null_ regoperatorout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2218 ( regclassin PGNSP PGUID 12 1 0 0 f f t f s 1 0 2205 "2275" _null_ _null_ _null_ _null_ regclassin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2219 ( regclassout PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "2205" _null_ _null_ _null_ _null_ regclassout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2220 ( regtypein PGNSP PGUID 12 1 0 0 f f t f s 1 0 2206 "2275" _null_ _null_ _null_ _null_ regtypein _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2221 ( regtypeout PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "2206" _null_ _null_ _null_ _null_ regtypeout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1079 ( regclass PGNSP PGUID 12 1 0 0 f f t f s 1 0 2205 "25" _null_ _null_ _null_ _null_ text_regclass _null_ _null_ _null_ ));
DESCR("convert text to regclass");
! DATA(insert OID = 2246 ( fmgr_internal_validator PGNSP PGUID 12 1 0 0 f f t f s 1 0 2278 "26" _null_ _null_ _null_ _null_ fmgr_internal_validator _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 2247 ( fmgr_c_validator PGNSP PGUID 12 1 0 0 f f t f s 1 0 2278 "26" _null_ _null_ _null_ _null_ fmgr_c_validator _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 2248 ( fmgr_sql_validator PGNSP PGUID 12 1 0 0 f f t f s 1 0 2278 "26" _null_ _null_ _null_ _null_ fmgr_sql_validator _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 2250 ( has_database_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ has_database_privilege_name_name _null_ _null_ _null_ ));
DESCR("user privilege on database by username, database name");
! DATA(insert OID = 2251 ( has_database_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ has_database_privilege_name_id _null_ _null_ _null_ ));
DESCR("user privilege on database by username, database oid");
! DATA(insert OID = 2252 ( has_database_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ has_database_privilege_id_name _null_ _null_ _null_ ));
DESCR("user privilege on database by user oid, database name");
! DATA(insert OID = 2253 ( has_database_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ has_database_privilege_id_id _null_ _null_ _null_ ));
DESCR("user privilege on database by user oid, database oid");
! DATA(insert OID = 2254 ( has_database_privilege PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "25 25" _null_ _null_ _null_ _null_ has_database_privilege_name _null_ _null_ _null_ ));
DESCR("current user privilege on database by database name");
! DATA(insert OID = 2255 ( has_database_privilege PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "26 25" _null_ _null_ _null_ _null_ has_database_privilege_id _null_ _null_ _null_ ));
DESCR("current user privilege on database by database oid");
! DATA(insert OID = 2256 ( has_function_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ has_function_privilege_name_name _null_ _null_ _null_ ));
DESCR("user privilege on function by username, function name");
! DATA(insert OID = 2257 ( has_function_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ has_function_privilege_name_id _null_ _null_ _null_ ));
DESCR("user privilege on function by username, function oid");
! DATA(insert OID = 2258 ( has_function_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ has_function_privilege_id_name _null_ _null_ _null_ ));
DESCR("user privilege on function by user oid, function name");
! DATA(insert OID = 2259 ( has_function_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ has_function_privilege_id_id _null_ _null_ _null_ ));
DESCR("user privilege on function by user oid, function oid");
! DATA(insert OID = 2260 ( has_function_privilege PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "25 25" _null_ _null_ _null_ _null_ has_function_privilege_name _null_ _null_ _null_ ));
DESCR("current user privilege on function by function name");
! DATA(insert OID = 2261 ( has_function_privilege PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "26 25" _null_ _null_ _null_ _null_ has_function_privilege_id _null_ _null_ _null_ ));
DESCR("current user privilege on function by function oid");
! DATA(insert OID = 2262 ( has_language_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ has_language_privilege_name_name _null_ _null_ _null_ ));
DESCR("user privilege on language by username, language name");
! DATA(insert OID = 2263 ( has_language_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ has_language_privilege_name_id _null_ _null_ _null_ ));
DESCR("user privilege on language by username, language oid");
! DATA(insert OID = 2264 ( has_language_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ has_language_privilege_id_name _null_ _null_ _null_ ));
DESCR("user privilege on language by user oid, language name");
! DATA(insert OID = 2265 ( has_language_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ has_language_privilege_id_id _null_ _null_ _null_ ));
DESCR("user privilege on language by user oid, language oid");
! DATA(insert OID = 2266 ( has_language_privilege PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "25 25" _null_ _null_ _null_ _null_ has_language_privilege_name _null_ _null_ _null_ ));
DESCR("current user privilege on language by language name");
! DATA(insert OID = 2267 ( has_language_privilege PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "26 25" _null_ _null_ _null_ _null_ has_language_privilege_id _null_ _null_ _null_ ));
DESCR("current user privilege on language by language oid");
! DATA(insert OID = 2268 ( has_schema_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ has_schema_privilege_name_name _null_ _null_ _null_ ));
DESCR("user privilege on schema by username, schema name");
! DATA(insert OID = 2269 ( has_schema_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ has_schema_privilege_name_id _null_ _null_ _null_ ));
DESCR("user privilege on schema by username, schema oid");
! DATA(insert OID = 2270 ( has_schema_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ has_schema_privilege_id_name _null_ _null_ _null_ ));
DESCR("user privilege on schema by user oid, schema name");
! DATA(insert OID = 2271 ( has_schema_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ has_schema_privilege_id_id _null_ _null_ _null_ ));
DESCR("user privilege on schema by user oid, schema oid");
! DATA(insert OID = 2272 ( has_schema_privilege PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "25 25" _null_ _null_ _null_ _null_ has_schema_privilege_name _null_ _null_ _null_ ));
DESCR("current user privilege on schema by schema name");
! DATA(insert OID = 2273 ( has_schema_privilege PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "26 25" _null_ _null_ _null_ _null_ has_schema_privilege_id _null_ _null_ _null_ ));
DESCR("current user privilege on schema by schema oid");
! DATA(insert OID = 2390 ( has_tablespace_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ has_tablespace_privilege_name_name _null_ _null_ _null_ ));
DESCR("user privilege on tablespace by username, tablespace name");
! DATA(insert OID = 2391 ( has_tablespace_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ has_tablespace_privilege_name_id _null_ _null_ _null_ ));
DESCR("user privilege on tablespace by username, tablespace oid");
! DATA(insert OID = 2392 ( has_tablespace_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ has_tablespace_privilege_id_name _null_ _null_ _null_ ));
DESCR("user privilege on tablespace by user oid, tablespace name");
! DATA(insert OID = 2393 ( has_tablespace_privilege PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ has_tablespace_privilege_id_id _null_ _null_ _null_ ));
DESCR("user privilege on tablespace by user oid, tablespace oid");
! DATA(insert OID = 2394 ( has_tablespace_privilege PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "25 25" _null_ _null_ _null_ _null_ has_tablespace_privilege_name _null_ _null_ _null_ ));
DESCR("current user privilege on tablespace by tablespace name");
! DATA(insert OID = 2395 ( has_tablespace_privilege PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "26 25" _null_ _null_ _null_ _null_ has_tablespace_privilege_id _null_ _null_ _null_ ));
DESCR("current user privilege on tablespace by tablespace oid");
! DATA(insert OID = 2705 ( pg_has_role PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "19 19 25" _null_ _null_ _null_ _null_ pg_has_role_name_name _null_ _null_ _null_ ));
DESCR("user privilege on role by username, role name");
! DATA(insert OID = 2706 ( pg_has_role PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ pg_has_role_name_id _null_ _null_ _null_ ));
DESCR("user privilege on role by username, role oid");
! DATA(insert OID = 2707 ( pg_has_role PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "26 19 25" _null_ _null_ _null_ _null_ pg_has_role_id_name _null_ _null_ _null_ ));
DESCR("user privilege on role by user oid, role name");
! DATA(insert OID = 2708 ( pg_has_role PGNSP PGUID 12 1 0 0 f f t f s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ pg_has_role_id_id _null_ _null_ _null_ ));
DESCR("user privilege on role by user oid, role oid");
! DATA(insert OID = 2709 ( pg_has_role PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "19 25" _null_ _null_ _null_ _null_ pg_has_role_name _null_ _null_ _null_ ));
DESCR("current user privilege on role by role name");
! DATA(insert OID = 2710 ( pg_has_role PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "26 25" _null_ _null_ _null_ _null_ pg_has_role_id _null_ _null_ _null_ ));
DESCR("current user privilege on role by role oid");
! DATA(insert OID = 1269 ( pg_column_size PGNSP PGUID 12 1 0 0 f f t f s 1 0 23 "2276" _null_ _null_ _null_ _null_ pg_column_size _null_ _null_ _null_ ));
DESCR("bytes required to store the value, perhaps with compression");
! DATA(insert OID = 2322 ( pg_tablespace_size PGNSP PGUID 12 1 0 0 f f t f v 1 0 20 "26" _null_ _null_ _null_ _null_ pg_tablespace_size_oid _null_ _null_ _null_ ));
DESCR("total disk space usage for the specified tablespace");
! DATA(insert OID = 2323 ( pg_tablespace_size PGNSP PGUID 12 1 0 0 f f t f v 1 0 20 "19" _null_ _null_ _null_ _null_ pg_tablespace_size_name _null_ _null_ _null_ ));
DESCR("total disk space usage for the specified tablespace");
! DATA(insert OID = 2324 ( pg_database_size PGNSP PGUID 12 1 0 0 f f t f v 1 0 20 "26" _null_ _null_ _null_ _null_ pg_database_size_oid _null_ _null_ _null_ ));
DESCR("total disk space usage for the specified database");
! DATA(insert OID = 2168 ( pg_database_size PGNSP PGUID 12 1 0 0 f f t f v 1 0 20 "19" _null_ _null_ _null_ _null_ pg_database_size_name _null_ _null_ _null_ ));
DESCR("total disk space usage for the specified database");
! DATA(insert OID = 2325 ( pg_relation_size PGNSP PGUID 14 1 0 0 f f t f v 1 0 20 "2205" _null_ _null_ _null_ _null_ "select pg_catalog.pg_relation_size($1, ''main'')" _null_ _null_ _null_ ));
DESCR("disk space usage for the specified table or index");
! DATA(insert OID = 2332 ( pg_relation_size PGNSP PGUID 12 1 0 0 f f t f v 2 0 20 "2205 25" _null_ _null_ _null_ _null_ pg_relation_size _null_ _null_ _null_ ));
DESCR("disk space usage for the specified fork of a table or index");
! DATA(insert OID = 2286 ( pg_total_relation_size PGNSP PGUID 12 1 0 0 f f t f v 1 0 20 "2205" _null_ _null_ _null_ _null_ pg_total_relation_size _null_ _null_ _null_ ));
DESCR("total disk space usage for the specified table and associated indexes and toast tables");
! DATA(insert OID = 2288 ( pg_size_pretty PGNSP PGUID 12 1 0 0 f f t f v 1 0 25 "20" _null_ _null_ _null_ _null_ pg_size_pretty _null_ _null_ _null_ ));
DESCR("convert a long int to a human readable text using size units");
! DATA(insert OID = 2290 ( record_in PGNSP PGUID 12 1 0 0 f f t f v 3 0 2249 "2275 26 23" _null_ _null_ _null_ _null_ record_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2291 ( record_out PGNSP PGUID 12 1 0 0 f f t f v 1 0 2275 "2249" _null_ _null_ _null_ _null_ record_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2292 ( cstring_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "2275" _null_ _null_ _null_ _null_ cstring_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2293 ( cstring_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "2275" _null_ _null_ _null_ _null_ cstring_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2294 ( any_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 2276 "2275" _null_ _null_ _null_ _null_ any_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2295 ( any_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "2276" _null_ _null_ _null_ _null_ any_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2296 ( anyarray_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 2277 "2275" _null_ _null_ _null_ _null_ anyarray_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2297 ( anyarray_out PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "2277" _null_ _null_ _null_ _null_ anyarray_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2298 ( void_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 2278 "2275" _null_ _null_ _null_ _null_ void_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2299 ( void_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "2278" _null_ _null_ _null_ _null_ void_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2300 ( trigger_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 2279 "2275" _null_ _null_ _null_ _null_ trigger_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2301 ( trigger_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "2279" _null_ _null_ _null_ _null_ trigger_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2302 ( language_handler_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 2280 "2275" _null_ _null_ _null_ _null_ language_handler_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2303 ( language_handler_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "2280" _null_ _null_ _null_ _null_ language_handler_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2304 ( internal_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 2281 "2275" _null_ _null_ _null_ _null_ internal_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2305 ( internal_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "2281" _null_ _null_ _null_ _null_ internal_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2306 ( opaque_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 2282 "2275" _null_ _null_ _null_ _null_ opaque_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2307 ( opaque_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "2282" _null_ _null_ _null_ _null_ opaque_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2312 ( anyelement_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 2283 "2275" _null_ _null_ _null_ _null_ anyelement_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2313 ( anyelement_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "2283" _null_ _null_ _null_ _null_ anyelement_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2398 ( shell_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 2282 "2275" _null_ _null_ _null_ _null_ shell_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2399 ( shell_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "2282" _null_ _null_ _null_ _null_ shell_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2597 ( domain_in PGNSP PGUID 12 1 0 0 f f f f v 3 0 2276 "2275 26 23" _null_ _null_ _null_ _null_ domain_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2598 ( domain_recv PGNSP PGUID 12 1 0 0 f f f f v 3 0 2276 "2281 26 23" _null_ _null_ _null_ _null_ domain_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2777 ( anynonarray_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 2776 "2275" _null_ _null_ _null_ _null_ anynonarray_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2778 ( anynonarray_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "2776" _null_ _null_ _null_ _null_ anynonarray_out _null_ _null_ _null_ ));
DESCR("I/O");
/* cryptographic */
! DATA(insert OID = 2311 ( md5 PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ md5_text _null_ _null_ _null_ ));
DESCR("calculates md5 hash");
! DATA(insert OID = 2321 ( md5 PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "17" _null_ _null_ _null_ _null_ md5_bytea _null_ _null_ _null_ ));
DESCR("calculates md5 hash");
/* crosstype operations for date vs. timestamp and timestamptz */
! DATA(insert OID = 2338 ( date_lt_timestamp PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1082 1114" _null_ _null_ _null_ _null_ date_lt_timestamp _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 2339 ( date_le_timestamp PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1082 1114" _null_ _null_ _null_ _null_ date_le_timestamp _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 2340 ( date_eq_timestamp PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1082 1114" _null_ _null_ _null_ _null_ date_eq_timestamp _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 2341 ( date_gt_timestamp PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1082 1114" _null_ _null_ _null_ _null_ date_gt_timestamp _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 2342 ( date_ge_timestamp PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1082 1114" _null_ _null_ _null_ _null_ date_ge_timestamp _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 2343 ( date_ne_timestamp PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1082 1114" _null_ _null_ _null_ _null_ date_ne_timestamp _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 2344 ( date_cmp_timestamp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "1082 1114" _null_ _null_ _null_ _null_ date_cmp_timestamp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 2351 ( date_lt_timestamptz PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1082 1184" _null_ _null_ _null_ _null_ date_lt_timestamptz _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 2352 ( date_le_timestamptz PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1082 1184" _null_ _null_ _null_ _null_ date_le_timestamptz _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 2353 ( date_eq_timestamptz PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1082 1184" _null_ _null_ _null_ _null_ date_eq_timestamptz _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 2354 ( date_gt_timestamptz PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1082 1184" _null_ _null_ _null_ _null_ date_gt_timestamptz _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 2355 ( date_ge_timestamptz PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1082 1184" _null_ _null_ _null_ _null_ date_ge_timestamptz _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 2356 ( date_ne_timestamptz PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1082 1184" _null_ _null_ _null_ _null_ date_ne_timestamptz _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 2357 ( date_cmp_timestamptz PGNSP PGUID 12 1 0 0 f f t f s 2 0 23 "1082 1184" _null_ _null_ _null_ _null_ date_cmp_timestamptz _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 2364 ( timestamp_lt_date PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1114 1082" _null_ _null_ _null_ _null_ timestamp_lt_date _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 2365 ( timestamp_le_date PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1114 1082" _null_ _null_ _null_ _null_ timestamp_le_date _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 2366 ( timestamp_eq_date PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1114 1082" _null_ _null_ _null_ _null_ timestamp_eq_date _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 2367 ( timestamp_gt_date PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1114 1082" _null_ _null_ _null_ _null_ timestamp_gt_date _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 2368 ( timestamp_ge_date PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1114 1082" _null_ _null_ _null_ _null_ timestamp_ge_date _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 2369 ( timestamp_ne_date PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "1114 1082" _null_ _null_ _null_ _null_ timestamp_ne_date _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 2370 ( timestamp_cmp_date PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "1114 1082" _null_ _null_ _null_ _null_ timestamp_cmp_date _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 2377 ( timestamptz_lt_date PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1184 1082" _null_ _null_ _null_ _null_ timestamptz_lt_date _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 2378 ( timestamptz_le_date PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1184 1082" _null_ _null_ _null_ _null_ timestamptz_le_date _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 2379 ( timestamptz_eq_date PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1184 1082" _null_ _null_ _null_ _null_ timestamptz_eq_date _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 2380 ( timestamptz_gt_date PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1184 1082" _null_ _null_ _null_ _null_ timestamptz_gt_date _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 2381 ( timestamptz_ge_date PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1184 1082" _null_ _null_ _null_ _null_ timestamptz_ge_date _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 2382 ( timestamptz_ne_date PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1184 1082" _null_ _null_ _null_ _null_ timestamptz_ne_date _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 2383 ( timestamptz_cmp_date PGNSP PGUID 12 1 0 0 f f t f s 2 0 23 "1184 1082" _null_ _null_ _null_ _null_ timestamptz_cmp_date _null_ _null_ _null_ ));
DESCR("less-equal-greater");
/* crosstype operations for timestamp vs. timestamptz */
! DATA(insert OID = 2520 ( timestamp_lt_timestamptz PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1114 1184" _null_ _null_ _null_ _null_ timestamp_lt_timestamptz _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 2521 ( timestamp_le_timestamptz PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1114 1184" _null_ _null_ _null_ _null_ timestamp_le_timestamptz _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 2522 ( timestamp_eq_timestamptz PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1114 1184" _null_ _null_ _null_ _null_ timestamp_eq_timestamptz _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 2523 ( timestamp_gt_timestamptz PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1114 1184" _null_ _null_ _null_ _null_ timestamp_gt_timestamptz _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 2524 ( timestamp_ge_timestamptz PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1114 1184" _null_ _null_ _null_ _null_ timestamp_ge_timestamptz _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 2525 ( timestamp_ne_timestamptz PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1114 1184" _null_ _null_ _null_ _null_ timestamp_ne_timestamptz _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 2526 ( timestamp_cmp_timestamptz PGNSP PGUID 12 1 0 0 f f t f s 2 0 23 "1114 1184" _null_ _null_ _null_ _null_ timestamp_cmp_timestamptz _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 2527 ( timestamptz_lt_timestamp PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1184 1114" _null_ _null_ _null_ _null_ timestamptz_lt_timestamp _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 2528 ( timestamptz_le_timestamp PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1184 1114" _null_ _null_ _null_ _null_ timestamptz_le_timestamp _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 2529 ( timestamptz_eq_timestamp PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1184 1114" _null_ _null_ _null_ _null_ timestamptz_eq_timestamp _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 2530 ( timestamptz_gt_timestamp PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1184 1114" _null_ _null_ _null_ _null_ timestamptz_gt_timestamp _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 2531 ( timestamptz_ge_timestamp PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1184 1114" _null_ _null_ _null_ _null_ timestamptz_ge_timestamp _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 2532 ( timestamptz_ne_timestamp PGNSP PGUID 12 1 0 0 f f t f s 2 0 16 "1184 1114" _null_ _null_ _null_ _null_ timestamptz_ne_timestamp _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 2533 ( timestamptz_cmp_timestamp PGNSP PGUID 12 1 0 0 f f t f s 2 0 23 "1184 1114" _null_ _null_ _null_ _null_ timestamptz_cmp_timestamp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
/* send/receive functions */
! DATA(insert OID = 2400 ( array_recv PGNSP PGUID 12 1 0 0 f f t f s 3 0 2277 "2281 26 23" _null_ _null_ _null_ _null_ array_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2401 ( array_send PGNSP PGUID 12 1 0 0 f f t f s 1 0 17 "2277" _null_ _null_ _null_ _null_ array_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2402 ( record_recv PGNSP PGUID 12 1 0 0 f f t f v 3 0 2249 "2281 26 23" _null_ _null_ _null_ _null_ record_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2403 ( record_send PGNSP PGUID 12 1 0 0 f f t f v 1 0 17 "2249" _null_ _null_ _null_ _null_ record_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2404 ( int2recv PGNSP PGUID 12 1 0 0 f f t f i 1 0 21 "2281" _null_ _null_ _null_ _null_ int2recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2405 ( int2send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "21" _null_ _null_ _null_ _null_ int2send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2406 ( int4recv PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "2281" _null_ _null_ _null_ _null_ int4recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2407 ( int4send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "23" _null_ _null_ _null_ _null_ int4send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2408 ( int8recv PGNSP PGUID 12 1 0 0 f f t f i 1 0 20 "2281" _null_ _null_ _null_ _null_ int8recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2409 ( int8send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "20" _null_ _null_ _null_ _null_ int8send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2410 ( int2vectorrecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 22 "2281" _null_ _null_ _null_ _null_ int2vectorrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2411 ( int2vectorsend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "22" _null_ _null_ _null_ _null_ int2vectorsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2412 ( bytearecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "2281" _null_ _null_ _null_ _null_ bytearecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2413 ( byteasend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "17" _null_ _null_ _null_ _null_ byteasend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2414 ( textrecv PGNSP PGUID 12 1 0 0 f f t f s 1 0 25 "2281" _null_ _null_ _null_ _null_ textrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2415 ( textsend PGNSP PGUID 12 1 0 0 f f t f s 1 0 17 "25" _null_ _null_ _null_ _null_ textsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2416 ( unknownrecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 705 "2281" _null_ _null_ _null_ _null_ unknownrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2417 ( unknownsend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "705" _null_ _null_ _null_ _null_ unknownsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2418 ( oidrecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 26 "2281" _null_ _null_ _null_ _null_ oidrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2419 ( oidsend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "26" _null_ _null_ _null_ _null_ oidsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2420 ( oidvectorrecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 30 "2281" _null_ _null_ _null_ _null_ oidvectorrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2421 ( oidvectorsend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "30" _null_ _null_ _null_ _null_ oidvectorsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2422 ( namerecv PGNSP PGUID 12 1 0 0 f f t f s 1 0 19 "2281" _null_ _null_ _null_ _null_ namerecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2423 ( namesend PGNSP PGUID 12 1 0 0 f f t f s 1 0 17 "19" _null_ _null_ _null_ _null_ namesend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2424 ( float4recv PGNSP PGUID 12 1 0 0 f f t f i 1 0 700 "2281" _null_ _null_ _null_ _null_ float4recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2425 ( float4send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "700" _null_ _null_ _null_ _null_ float4send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2426 ( float8recv PGNSP PGUID 12 1 0 0 f f t f i 1 0 701 "2281" _null_ _null_ _null_ _null_ float8recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2427 ( float8send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "701" _null_ _null_ _null_ _null_ float8send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2428 ( point_recv PGNSP PGUID 12 1 0 0 f f t f i 1 0 600 "2281" _null_ _null_ _null_ _null_ point_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2429 ( point_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "600" _null_ _null_ _null_ _null_ point_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2430 ( bpcharrecv PGNSP PGUID 12 1 0 0 f f t f s 3 0 1042 "2281 26 23" _null_ _null_ _null_ _null_ bpcharrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2431 ( bpcharsend PGNSP PGUID 12 1 0 0 f f t f s 1 0 17 "1042" _null_ _null_ _null_ _null_ bpcharsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2432 ( varcharrecv PGNSP PGUID 12 1 0 0 f f t f s 3 0 1043 "2281 26 23" _null_ _null_ _null_ _null_ varcharrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2433 ( varcharsend PGNSP PGUID 12 1 0 0 f f t f s 1 0 17 "1043" _null_ _null_ _null_ _null_ varcharsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2434 ( charrecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 18 "2281" _null_ _null_ _null_ _null_ charrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2435 ( charsend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "18" _null_ _null_ _null_ _null_ charsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2436 ( boolrecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 16 "2281" _null_ _null_ _null_ _null_ boolrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2437 ( boolsend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "16" _null_ _null_ _null_ _null_ boolsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2438 ( tidrecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 27 "2281" _null_ _null_ _null_ _null_ tidrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2439 ( tidsend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "27" _null_ _null_ _null_ _null_ tidsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2440 ( xidrecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 28 "2281" _null_ _null_ _null_ _null_ xidrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2441 ( xidsend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "28" _null_ _null_ _null_ _null_ xidsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2442 ( cidrecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 29 "2281" _null_ _null_ _null_ _null_ cidrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2443 ( cidsend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "29" _null_ _null_ _null_ _null_ cidsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2444 ( regprocrecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 24 "2281" _null_ _null_ _null_ _null_ regprocrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2445 ( regprocsend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "24" _null_ _null_ _null_ _null_ regprocsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2446 ( regprocedurerecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 2202 "2281" _null_ _null_ _null_ _null_ regprocedurerecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2447 ( regproceduresend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "2202" _null_ _null_ _null_ _null_ regproceduresend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2448 ( regoperrecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 2203 "2281" _null_ _null_ _null_ _null_ regoperrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2449 ( regopersend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "2203" _null_ _null_ _null_ _null_ regopersend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2450 ( regoperatorrecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 2204 "2281" _null_ _null_ _null_ _null_ regoperatorrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2451 ( regoperatorsend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "2204" _null_ _null_ _null_ _null_ regoperatorsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2452 ( regclassrecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 2205 "2281" _null_ _null_ _null_ _null_ regclassrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2453 ( regclasssend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "2205" _null_ _null_ _null_ _null_ regclasssend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2454 ( regtyperecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 2206 "2281" _null_ _null_ _null_ _null_ regtyperecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2455 ( regtypesend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "2206" _null_ _null_ _null_ _null_ regtypesend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2456 ( bit_recv PGNSP PGUID 12 1 0 0 f f t f i 3 0 1560 "2281 26 23" _null_ _null_ _null_ _null_ bit_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2457 ( bit_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "1560" _null_ _null_ _null_ _null_ bit_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2458 ( varbit_recv PGNSP PGUID 12 1 0 0 f f t f i 3 0 1562 "2281 26 23" _null_ _null_ _null_ _null_ varbit_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2459 ( varbit_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "1562" _null_ _null_ _null_ _null_ varbit_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2460 ( numeric_recv PGNSP PGUID 12 1 0 0 f f t f i 3 0 1700 "2281 26 23" _null_ _null_ _null_ _null_ numeric_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2461 ( numeric_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "1700" _null_ _null_ _null_ _null_ numeric_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2462 ( abstimerecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 702 "2281" _null_ _null_ _null_ _null_ abstimerecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2463 ( abstimesend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "702" _null_ _null_ _null_ _null_ abstimesend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2464 ( reltimerecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 703 "2281" _null_ _null_ _null_ _null_ reltimerecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2465 ( reltimesend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "703" _null_ _null_ _null_ _null_ reltimesend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2466 ( tintervalrecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 704 "2281" _null_ _null_ _null_ _null_ tintervalrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2467 ( tintervalsend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "704" _null_ _null_ _null_ _null_ tintervalsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2468 ( date_recv PGNSP PGUID 12 1 0 0 f f t f i 1 0 1082 "2281" _null_ _null_ _null_ _null_ date_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2469 ( date_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "1082" _null_ _null_ _null_ _null_ date_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2470 ( time_recv PGNSP PGUID 12 1 0 0 f f t f i 3 0 1083 "2281 26 23" _null_ _null_ _null_ _null_ time_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2471 ( time_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "1083" _null_ _null_ _null_ _null_ time_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2472 ( timetz_recv PGNSP PGUID 12 1 0 0 f f t f i 3 0 1266 "2281 26 23" _null_ _null_ _null_ _null_ timetz_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2473 ( timetz_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "1266" _null_ _null_ _null_ _null_ timetz_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2474 ( timestamp_recv PGNSP PGUID 12 1 0 0 f f t f i 3 0 1114 "2281 26 23" _null_ _null_ _null_ _null_ timestamp_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2475 ( timestamp_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "1114" _null_ _null_ _null_ _null_ timestamp_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2476 ( timestamptz_recv PGNSP PGUID 12 1 0 0 f f t f i 3 0 1184 "2281 26 23" _null_ _null_ _null_ _null_ timestamptz_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2477 ( timestamptz_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "1184" _null_ _null_ _null_ _null_ timestamptz_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2478 ( interval_recv PGNSP PGUID 12 1 0 0 f f t f i 3 0 1186 "2281 26 23" _null_ _null_ _null_ _null_ interval_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2479 ( interval_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "1186" _null_ _null_ _null_ _null_ interval_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2480 ( lseg_recv PGNSP PGUID 12 1 0 0 f f t f i 1 0 601 "2281" _null_ _null_ _null_ _null_ lseg_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2481 ( lseg_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "601" _null_ _null_ _null_ _null_ lseg_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2482 ( path_recv PGNSP PGUID 12 1 0 0 f f t f i 1 0 602 "2281" _null_ _null_ _null_ _null_ path_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2483 ( path_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "602" _null_ _null_ _null_ _null_ path_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2484 ( box_recv PGNSP PGUID 12 1 0 0 f f t f i 1 0 603 "2281" _null_ _null_ _null_ _null_ box_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2485 ( box_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "603" _null_ _null_ _null_ _null_ box_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2486 ( poly_recv PGNSP PGUID 12 1 0 0 f f t f i 1 0 604 "2281" _null_ _null_ _null_ _null_ poly_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2487 ( poly_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "604" _null_ _null_ _null_ _null_ poly_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2488 ( line_recv PGNSP PGUID 12 1 0 0 f f t f i 1 0 628 "2281" _null_ _null_ _null_ _null_ line_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2489 ( line_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "628" _null_ _null_ _null_ _null_ line_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2490 ( circle_recv PGNSP PGUID 12 1 0 0 f f t f i 1 0 718 "2281" _null_ _null_ _null_ _null_ circle_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2491 ( circle_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "718" _null_ _null_ _null_ _null_ circle_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2492 ( cash_recv PGNSP PGUID 12 1 0 0 f f t f i 1 0 790 "2281" _null_ _null_ _null_ _null_ cash_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2493 ( cash_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "790" _null_ _null_ _null_ _null_ cash_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2494 ( macaddr_recv PGNSP PGUID 12 1 0 0 f f t f i 1 0 829 "2281" _null_ _null_ _null_ _null_ macaddr_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2495 ( macaddr_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "829" _null_ _null_ _null_ _null_ macaddr_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2496 ( inet_recv PGNSP PGUID 12 1 0 0 f f t f i 1 0 869 "2281" _null_ _null_ _null_ _null_ inet_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2497 ( inet_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "869" _null_ _null_ _null_ _null_ inet_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2498 ( cidr_recv PGNSP PGUID 12 1 0 0 f f t f i 1 0 650 "2281" _null_ _null_ _null_ _null_ cidr_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2499 ( cidr_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "650" _null_ _null_ _null_ _null_ cidr_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2500 ( cstring_recv PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "2281" _null_ _null_ _null_ _null_ cstring_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2501 ( cstring_send PGNSP PGUID 12 1 0 0 f f t f s 1 0 17 "2275" _null_ _null_ _null_ _null_ cstring_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2502 ( anyarray_recv PGNSP PGUID 12 1 0 0 f f t f s 1 0 2277 "2281" _null_ _null_ _null_ _null_ anyarray_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2503 ( anyarray_send PGNSP PGUID 12 1 0 0 f f t f s 1 0 17 "2277" _null_ _null_ _null_ _null_ anyarray_send _null_ _null_ _null_ ));
DESCR("I/O");
/* System-view support functions with pretty-print option */
! DATA(insert OID = 2504 ( pg_get_ruledef PGNSP PGUID 12 1 0 0 f f t f s 2 0 25 "26 16" _null_ _null_ _null_ _null_ pg_get_ruledef_ext _null_ _null_ _null_ ));
DESCR("source text of a rule with pretty-print option");
! DATA(insert OID = 2505 ( pg_get_viewdef PGNSP PGUID 12 1 0 0 f f t f s 2 0 25 "25 16" _null_ _null_ _null_ _null_ pg_get_viewdef_name_ext _null_ _null_ _null_ ));
DESCR("select statement of a view with pretty-print option");
! DATA(insert OID = 2506 ( pg_get_viewdef PGNSP PGUID 12 1 0 0 f f t f s 2 0 25 "26 16" _null_ _null_ _null_ _null_ pg_get_viewdef_ext _null_ _null_ _null_ ));
DESCR("select statement of a view with pretty-print option");
! DATA(insert OID = 2507 ( pg_get_indexdef PGNSP PGUID 12 1 0 0 f f t f s 3 0 25 "26 23 16" _null_ _null_ _null_ _null_ pg_get_indexdef_ext _null_ _null_ _null_ ));
DESCR("index description (full create statement or single expression) with pretty-print option");
! DATA(insert OID = 2508 ( pg_get_constraintdef PGNSP PGUID 12 1 0 0 f f t f s 2 0 25 "26 16" _null_ _null_ _null_ _null_ pg_get_constraintdef_ext _null_ _null_ _null_ ));
DESCR("constraint description with pretty-print option");
! DATA(insert OID = 2509 ( pg_get_expr PGNSP PGUID 12 1 0 0 f f t f s 3 0 25 "25 26 16" _null_ _null_ _null_ _null_ pg_get_expr_ext _null_ _null_ _null_ ));
DESCR("deparse an encoded expression with pretty-print option");
! DATA(insert OID = 2510 ( pg_prepared_statement PGNSP PGUID 12 1 1000 0 f f t t s 0 0 2249 "" "{25,25,1184,2211,16}" "{o,o,o,o,o}" "{name,statement,prepare_time,parameter_types,from_sql}" _null_ pg_prepared_statement _null_ _null_ _null_ ));
DESCR("get the prepared statements for this session");
! DATA(insert OID = 2511 ( pg_cursor PGNSP PGUID 12 1 1000 0 f f t t s 0 0 2249 "" "{25,25,16,16,16,1184}" "{o,o,o,o,o,o}" "{name,statement,is_holdable,is_binary,is_scrollable,creation_time}" _null_ pg_cursor _null_ _null_ _null_ ));
DESCR("get the open cursors for this session");
! DATA(insert OID = 2599 ( pg_timezone_abbrevs PGNSP PGUID 12 1 1000 0 f f t t s 0 0 2249 "" "{25,1186,16}" "{o,o,o}" "{abbrev,utc_offset,is_dst}" _null_ pg_timezone_abbrevs _null_ _null_ _null_ ));
DESCR("get the available time zone abbreviations");
! DATA(insert OID = 2856 ( pg_timezone_names PGNSP PGUID 12 1 1000 0 f f t t s 0 0 2249 "" "{25,25,1186,16}" "{o,o,o,o}" "{name,abbrev,utc_offset,is_dst}" _null_ pg_timezone_names _null_ _null_ _null_ ));
DESCR("get the available time zone names");
/* non-persistent series generator */
! DATA(insert OID = 1066 ( generate_series PGNSP PGUID 12 1 1000 0 f f t t i 3 0 23 "23 23 23" _null_ _null_ _null_ _null_ generate_series_step_int4 _null_ _null_ _null_ ));
DESCR("non-persistent series generator");
! DATA(insert OID = 1067 ( generate_series PGNSP PGUID 12 1 1000 0 f f t t i 2 0 23 "23 23" _null_ _null_ _null_ _null_ generate_series_int4 _null_ _null_ _null_ ));
DESCR("non-persistent series generator");
! DATA(insert OID = 1068 ( generate_series PGNSP PGUID 12 1 1000 0 f f t t i 3 0 20 "20 20 20" _null_ _null_ _null_ _null_ generate_series_step_int8 _null_ _null_ _null_ ));
DESCR("non-persistent series generator");
! DATA(insert OID = 1069 ( generate_series PGNSP PGUID 12 1 1000 0 f f t t i 2 0 20 "20 20" _null_ _null_ _null_ _null_ generate_series_int8 _null_ _null_ _null_ ));
DESCR("non-persistent series generator");
! DATA(insert OID = 938 ( generate_series PGNSP PGUID 12 1 1000 0 f f t t i 3 0 1114 "1114 1114 1186" _null_ _null_ _null_ _null_ generate_series_timestamp _null_ _null_ _null_ ));
DESCR("non-persistent series generator");
! DATA(insert OID = 939 ( generate_series PGNSP PGUID 12 1 1000 0 f f t t s 3 0 1184 "1184 1184 1186" _null_ _null_ _null_ _null_ generate_series_timestamptz _null_ _null_ _null_ ));
DESCR("non-persistent series generator");
/* boolean aggregates */
! DATA(insert OID = 2515 ( booland_statefunc PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "16 16" _null_ _null_ _null_ _null_ booland_statefunc _null_ _null_ _null_ ));
DESCR("boolean-and aggregate transition function");
! DATA(insert OID = 2516 ( boolor_statefunc PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "16 16" _null_ _null_ _null_ _null_ boolor_statefunc _null_ _null_ _null_ ));
DESCR("boolean-or aggregate transition function");
! DATA(insert OID = 2517 ( bool_and PGNSP PGUID 12 1 0 0 t f f f i 1 0 16 "16" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("boolean-and aggregate");
/* ANY, SOME? These names conflict with subquery operators. See doc. */
! DATA(insert OID = 2518 ( bool_or PGNSP PGUID 12 1 0 0 t f f f i 1 0 16 "16" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("boolean-or aggregate");
! DATA(insert OID = 2519 ( every PGNSP PGUID 12 1 0 0 t f f f i 1 0 16 "16" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("boolean-and aggregate");
/* bitwise integer aggregates */
! DATA(insert OID = 2236 ( bit_and PGNSP PGUID 12 1 0 0 t f f f i 1 0 21 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("bitwise-and smallint aggregate");
! DATA(insert OID = 2237 ( bit_or PGNSP PGUID 12 1 0 0 t f f f i 1 0 21 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("bitwise-or smallint aggregate");
! DATA(insert OID = 2238 ( bit_and PGNSP PGUID 12 1 0 0 t f f f i 1 0 23 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("bitwise-and integer aggregate");
! DATA(insert OID = 2239 ( bit_or PGNSP PGUID 12 1 0 0 t f f f i 1 0 23 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("bitwise-or integer aggregate");
! DATA(insert OID = 2240 ( bit_and PGNSP PGUID 12 1 0 0 t f f f i 1 0 20 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("bitwise-and bigint aggregate");
! DATA(insert OID = 2241 ( bit_or PGNSP PGUID 12 1 0 0 t f f f i 1 0 20 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("bitwise-or bigint aggregate");
! DATA(insert OID = 2242 ( bit_and PGNSP PGUID 12 1 0 0 t f f f i 1 0 1560 "1560" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("bitwise-and bit aggregate");
! DATA(insert OID = 2243 ( bit_or PGNSP PGUID 12 1 0 0 t f f f i 1 0 1560 "1560" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("bitwise-or bit aggregate");
/* formerly-missing interval + datetime operators */
! DATA(insert OID = 2546 ( interval_pl_date PGNSP PGUID 14 1 0 0 f f t f i 2 0 1114 "1186 1082" _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ ));
! DATA(insert OID = 2547 ( interval_pl_timetz PGNSP PGUID 14 1 0 0 f f t f i 2 0 1266 "1186 1266" _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ ));
! DATA(insert OID = 2548 ( interval_pl_timestamp PGNSP PGUID 14 1 0 0 f f t f i 2 0 1114 "1186 1114" _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ ));
! DATA(insert OID = 2549 ( interval_pl_timestamptz PGNSP PGUID 14 1 0 0 f f t f s 2 0 1184 "1186 1184" _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ ));
! DATA(insert OID = 2550 ( integer_pl_date PGNSP PGUID 14 1 0 0 f f t f i 2 0 1082 "23 1082" _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ ));
! DATA(insert OID = 2556 ( pg_tablespace_databases PGNSP PGUID 12 1 1000 0 f f t t s 1 0 26 "26" _null_ _null_ _null_ _null_ pg_tablespace_databases _null_ _null_ _null_ ));
DESCR("returns database oids in a tablespace");
! DATA(insert OID = 2557 ( bool PGNSP PGUID 12 1 0 0 f f t f i 1 0 16 "23" _null_ _null_ _null_ _null_ int4_bool _null_ _null_ _null_ ));
DESCR("convert int4 to boolean");
! DATA(insert OID = 2558 ( int4 PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "16" _null_ _null_ _null_ _null_ bool_int4 _null_ _null_ _null_ ));
DESCR("convert boolean to int4");
! DATA(insert OID = 2559 ( lastval PGNSP PGUID 12 1 0 0 f f t f v 0 0 20 "" _null_ _null_ _null_ _null_ lastval _null_ _null_ _null_ ));
DESCR("current value from last used sequence");
/* start time function */
! DATA(insert OID = 2560 ( pg_postmaster_start_time PGNSP PGUID 12 1 0 0 f f t f s 0 0 1184 "" _null_ _null_ _null_ _null_ pg_postmaster_start_time _null_ _null_ _null_ ));
DESCR("postmaster start time");
/* config reload time function */
! DATA(insert OID = 2034 ( pg_conf_load_time PGNSP PGUID 12 1 0 0 f f t f s 0 0 1184 "" _null_ _null_ _null_ _null_ pg_conf_load_time _null_ _null_ _null_ ));
DESCR("configuration load time");
/* new functions for Y-direction rtree opclasses */
! DATA(insert OID = 2562 ( box_below PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_below _null_ _null_ _null_ ));
DESCR("is below");
! DATA(insert OID = 2563 ( box_overbelow PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_overbelow _null_ _null_ _null_ ));
DESCR("overlaps or is below");
! DATA(insert OID = 2564 ( box_overabove PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_overabove _null_ _null_ _null_ ));
DESCR("overlaps or is above");
! DATA(insert OID = 2565 ( box_above PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_above _null_ _null_ _null_ ));
DESCR("is above");
! DATA(insert OID = 2566 ( poly_below PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_below _null_ _null_ _null_ ));
DESCR("is below");
! DATA(insert OID = 2567 ( poly_overbelow PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_overbelow _null_ _null_ _null_ ));
DESCR("overlaps or is below");
! DATA(insert OID = 2568 ( poly_overabove PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_overabove _null_ _null_ _null_ ));
DESCR("overlaps or is above");
! DATA(insert OID = 2569 ( poly_above PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_above _null_ _null_ _null_ ));
DESCR("is above");
! DATA(insert OID = 2587 ( circle_overbelow PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_overbelow _null_ _null_ _null_ ));
DESCR("overlaps or is below");
! DATA(insert OID = 2588 ( circle_overabove PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_overabove _null_ _null_ _null_ ));
DESCR("overlaps or is above");
/* support functions for GiST r-tree emulation */
! DATA(insert OID = 2578 ( gist_box_consistent PGNSP PGUID 12 1 0 0 f f t f i 5 0 16 "2281 603 23 26 2281" _null_ _null_ _null_ _null_ gist_box_consistent _null_ _null_ _null_ ));
DESCR("GiST support");
! DATA(insert OID = 2579 ( gist_box_compress PGNSP PGUID 12 1 0 0 f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ gist_box_compress _null_ _null_ _null_ ));
DESCR("GiST support");
! DATA(insert OID = 2580 ( gist_box_decompress PGNSP PGUID 12 1 0 0 f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ gist_box_decompress _null_ _null_ _null_ ));
DESCR("GiST support");
! DATA(insert OID = 2581 ( gist_box_penalty PGNSP PGUID 12 1 0 0 f f t f i 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ gist_box_penalty _null_ _null_ _null_ ));
DESCR("GiST support");
! DATA(insert OID = 2582 ( gist_box_picksplit PGNSP PGUID 12 1 0 0 f f t f i 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ gist_box_picksplit _null_ _null_ _null_ ));
DESCR("GiST support");
! DATA(insert OID = 2583 ( gist_box_union PGNSP PGUID 12 1 0 0 f f t f i 2 0 603 "2281 2281" _null_ _null_ _null_ _null_ gist_box_union _null_ _null_ _null_ ));
DESCR("GiST support");
! DATA(insert OID = 2584 ( gist_box_same PGNSP PGUID 12 1 0 0 f f t f i 3 0 2281 "603 603 2281" _null_ _null_ _null_ _null_ gist_box_same _null_ _null_ _null_ ));
DESCR("GiST support");
! DATA(insert OID = 2585 ( gist_poly_consistent PGNSP PGUID 12 1 0 0 f f t f i 5 0 16 "2281 604 23 26 2281" _null_ _null_ _null_ _null_ gist_poly_consistent _null_ _null_ _null_ ));
DESCR("GiST support");
! DATA(insert OID = 2586 ( gist_poly_compress PGNSP PGUID 12 1 0 0 f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ gist_poly_compress _null_ _null_ _null_ ));
DESCR("GiST support");
! DATA(insert OID = 2591 ( gist_circle_consistent PGNSP PGUID 12 1 0 0 f f t f i 5 0 16 "2281 718 23 26 2281" _null_ _null_ _null_ _null_ gist_circle_consistent _null_ _null_ _null_ ));
DESCR("GiST support");
! DATA(insert OID = 2592 ( gist_circle_compress PGNSP PGUID 12 1 0 0 f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ gist_circle_compress _null_ _null_ _null_ ));
DESCR("GiST support");
/* GIN */
! DATA(insert OID = 2730 ( gingettuple PGNSP PGUID 12 1 0 0 f f t f v 2 0 16 "2281 2281" _null_ _null_ _null_ _null_ gingettuple _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2731 ( gingetbitmap PGNSP PGUID 12 1 0 0 f f t f v 2 0 20 "2281 2281" _null_ _null_ _null_ _null_ gingetbitmap _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2732 ( gininsert PGNSP PGUID 12 1 0 0 f f t f v 6 0 16 "2281 2281 2281 2281 2281 2281" _null_ _null_ _null_ _null_ gininsert _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2733 ( ginbeginscan PGNSP PGUID 12 1 0 0 f f t f v 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ ginbeginscan _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2734 ( ginrescan PGNSP PGUID 12 1 0 0 f f t f v 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ ginrescan _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2735 ( ginendscan PGNSP PGUID 12 1 0 0 f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ ginendscan _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2736 ( ginmarkpos PGNSP PGUID 12 1 0 0 f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ ginmarkpos _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2737 ( ginrestrpos PGNSP PGUID 12 1 0 0 f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ ginrestrpos _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2738 ( ginbuild PGNSP PGUID 12 1 0 0 f f t f v 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ ginbuild _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2739 ( ginbulkdelete PGNSP PGUID 12 1 0 0 f f t f v 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ ginbulkdelete _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2740 ( ginvacuumcleanup PGNSP PGUID 12 1 0 0 f f t f v 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ ginvacuumcleanup _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2741 ( gincostestimate PGNSP PGUID 12 1 0 0 f f t f v 8 0 2278 "2281 2281 2281 2281 2281 2281 2281 2281" _null_ _null_ _null_ _null_ gincostestimate _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2788 ( ginoptions PGNSP PGUID 12 1 0 0 f f t f s 2 0 17 "1009 16" _null_ _null_ _null_ _null_ ginoptions _null_ _null_ _null_ ));
DESCR("gin(internal)");
/* GIN array support */
! DATA(insert OID = 2743 ( ginarrayextract PGNSP PGUID 12 1 0 0 f f t f i 2 0 2281 "2277 2281" _null_ _null_ _null_ _null_ ginarrayextract _null_ _null_ _null_ ));
DESCR("GIN array support");
! DATA(insert OID = 2774 ( ginqueryarrayextract PGNSP PGUID 12 1 0 0 f f t f i 4 0 2281 "2277 2281 21 2281" _null_ _null_ _null_ _null_ ginqueryarrayextract _null_ _null_ _null_ ));
DESCR("GIN array support");
! DATA(insert OID = 2744 ( ginarrayconsistent PGNSP PGUID 12 1 0 0 f f t f i 4 0 16 "2281 21 2281 2281" _null_ _null_ _null_ _null_ ginarrayconsistent _null_ _null_ _null_ ));
DESCR("GIN array support");
/* overlap/contains/contained */
! DATA(insert OID = 2747 ( arrayoverlap PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ arrayoverlap _null_ _null_ _null_ ));
DESCR("overlaps");
! DATA(insert OID = 2748 ( arraycontains PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ arraycontains _null_ _null_ _null_ ));
DESCR("contains");
! DATA(insert OID = 2749 ( arraycontained PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ arraycontained _null_ _null_ _null_ ));
DESCR("is contained by");
/* userlock replacements */
! DATA(insert OID = 2880 ( pg_advisory_lock PGNSP PGUID 12 1 0 0 f f t f v 1 0 2278 "20" _null_ _null_ _null_ _null_ pg_advisory_lock_int8 _null_ _null_ _null_ ));
DESCR("obtain exclusive advisory lock");
! DATA(insert OID = 2881 ( pg_advisory_lock_shared PGNSP PGUID 12 1 0 0 f f t f v 1 0 2278 "20" _null_ _null_ _null_ _null_ pg_advisory_lock_shared_int8 _null_ _null_ _null_ ));
DESCR("obtain shared advisory lock");
! DATA(insert OID = 2882 ( pg_try_advisory_lock PGNSP PGUID 12 1 0 0 f f t f v 1 0 16 "20" _null_ _null_ _null_ _null_ pg_try_advisory_lock_int8 _null_ _null_ _null_ ));
DESCR("obtain exclusive advisory lock if available");
! DATA(insert OID = 2883 ( pg_try_advisory_lock_shared PGNSP PGUID 12 1 0 0 f f t f v 1 0 16 "20" _null_ _null_ _null_ _null_ pg_try_advisory_lock_shared_int8 _null_ _null_ _null_ ));
DESCR("obtain shared advisory lock if available");
! DATA(insert OID = 2884 ( pg_advisory_unlock PGNSP PGUID 12 1 0 0 f f t f v 1 0 16 "20" _null_ _null_ _null_ _null_ pg_advisory_unlock_int8 _null_ _null_ _null_ ));
DESCR("release exclusive advisory lock");
! DATA(insert OID = 2885 ( pg_advisory_unlock_shared PGNSP PGUID 12 1 0 0 f f t f v 1 0 16 "20" _null_ _null_ _null_ _null_ pg_advisory_unlock_shared_int8 _null_ _null_ _null_ ));
DESCR("release shared advisory lock");
! DATA(insert OID = 2886 ( pg_advisory_lock PGNSP PGUID 12 1 0 0 f f t f v 2 0 2278 "23 23" _null_ _null_ _null_ _null_ pg_advisory_lock_int4 _null_ _null_ _null_ ));
DESCR("obtain exclusive advisory lock");
! DATA(insert OID = 2887 ( pg_advisory_lock_shared PGNSP PGUID 12 1 0 0 f f t f v 2 0 2278 "23 23" _null_ _null_ _null_ _null_ pg_advisory_lock_shared_int4 _null_ _null_ _null_ ));
DESCR("obtain shared advisory lock");
! DATA(insert OID = 2888 ( pg_try_advisory_lock PGNSP PGUID 12 1 0 0 f f t f v 2 0 16 "23 23" _null_ _null_ _null_ _null_ pg_try_advisory_lock_int4 _null_ _null_ _null_ ));
DESCR("obtain exclusive advisory lock if available");
! DATA(insert OID = 2889 ( pg_try_advisory_lock_shared PGNSP PGUID 12 1 0 0 f f t f v 2 0 16 "23 23" _null_ _null_ _null_ _null_ pg_try_advisory_lock_shared_int4 _null_ _null_ _null_ ));
DESCR("obtain shared advisory lock if available");
! DATA(insert OID = 2890 ( pg_advisory_unlock PGNSP PGUID 12 1 0 0 f f t f v 2 0 16 "23 23" _null_ _null_ _null_ _null_ pg_advisory_unlock_int4 _null_ _null_ _null_ ));
DESCR("release exclusive advisory lock");
! DATA(insert OID = 2891 ( pg_advisory_unlock_shared PGNSP PGUID 12 1 0 0 f f t f v 2 0 16 "23 23" _null_ _null_ _null_ _null_ pg_advisory_unlock_shared_int4 _null_ _null_ _null_ ));
DESCR("release shared advisory lock");
! DATA(insert OID = 2892 ( pg_advisory_unlock_all PGNSP PGUID 12 1 0 0 f f t f v 0 0 2278 "" _null_ _null_ _null_ _null_ pg_advisory_unlock_all _null_ _null_ _null_ ));
DESCR("release all advisory locks");
/* XML support */
! DATA(insert OID = 2893 ( xml_in PGNSP PGUID 12 1 0 0 f f t f s 1 0 142 "2275" _null_ _null_ _null_ _null_ xml_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2894 ( xml_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "142" _null_ _null_ _null_ _null_ xml_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2895 ( xmlcomment PGNSP PGUID 12 1 0 0 f f t f i 1 0 142 "25" _null_ _null_ _null_ _null_ xmlcomment _null_ _null_ _null_ ));
DESCR("generate an XML comment");
! DATA(insert OID = 2896 ( xml PGNSP PGUID 12 1 0 0 f f t f s 1 0 142 "25" _null_ _null_ _null_ _null_ texttoxml _null_ _null_ _null_ ));
DESCR("perform a non-validating parse of a character string to produce an XML value");
! DATA(insert OID = 2897 ( xmlvalidate PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "142 25" _null_ _null_ _null_ _null_ xmlvalidate _null_ _null_ _null_ ));
DESCR("validate an XML value");
! DATA(insert OID = 2898 ( xml_recv PGNSP PGUID 12 1 0 0 f f t f s 1 0 142 "2281" _null_ _null_ _null_ _null_ xml_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2899 ( xml_send PGNSP PGUID 12 1 0 0 f f t f s 1 0 17 "142" _null_ _null_ _null_ _null_ xml_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2900 ( xmlconcat2 PGNSP PGUID 12 1 0 0 f f f f i 2 0 142 "142 142" _null_ _null_ _null_ _null_ xmlconcat2 _null_ _null_ _null_ ));
DESCR("aggregate transition function");
! DATA(insert OID = 2901 ( xmlagg PGNSP PGUID 12 1 0 0 t f f f i 1 0 142 "142" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("concatenate XML values");
! DATA(insert OID = 2922 ( text PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "142" _null_ _null_ _null_ _null_ xmltotext _null_ _null_ _null_ ));
DESCR("serialize an XML value to a character string");
! DATA(insert OID = 2923 ( table_to_xml PGNSP PGUID 12 100 0 0 f f t f s 4 0 142 "2205 16 16 25" _null_ _null_ "{tbl,nulls,tableforest,targetns}" _null_ table_to_xml _null_ _null_ _null_ ));
DESCR("map table contents to XML");
! DATA(insert OID = 2924 ( query_to_xml PGNSP PGUID 12 100 0 0 f f t f s 4 0 142 "25 16 16 25" _null_ _null_ "{query,nulls,tableforest,targetns}" _null_ query_to_xml _null_ _null_ _null_ ));
DESCR("map query result to XML");
! DATA(insert OID = 2925 ( cursor_to_xml PGNSP PGUID 12 100 0 0 f f t f s 5 0 142 "1790 23 16 16 25" _null_ _null_ "{cursor,count,nulls,tableforest,targetns}" _null_ cursor_to_xml _null_ _null_ _null_ ));
DESCR("map rows from cursor to XML");
! DATA(insert OID = 2926 ( table_to_xmlschema PGNSP PGUID 12 100 0 0 f f t f s 4 0 142 "2205 16 16 25" _null_ _null_ "{tbl,nulls,tableforest,targetns}" _null_ table_to_xmlschema _null_ _null_ _null_ ));
DESCR("map table structure to XML Schema");
! DATA(insert OID = 2927 ( query_to_xmlschema PGNSP PGUID 12 100 0 0 f f t f s 4 0 142 "25 16 16 25" _null_ _null_ "{query,nulls,tableforest,targetns}" _null_ query_to_xmlschema _null_ _null_ _null_ ));
DESCR("map query result structure to XML Schema");
! DATA(insert OID = 2928 ( cursor_to_xmlschema PGNSP PGUID 12 100 0 0 f f t f s 4 0 142 "1790 16 16 25" _null_ _null_ "{cursor,nulls,tableforest,targetns}" _null_ cursor_to_xmlschema _null_ _null_ _null_ ));
DESCR("map cursor structure to XML Schema");
! DATA(insert OID = 2929 ( table_to_xml_and_xmlschema PGNSP PGUID 12 100 0 0 f f t f s 4 0 142 "2205 16 16 25" _null_ _null_ "{tbl,nulls,tableforest,targetns}" _null_ table_to_xml_and_xmlschema _null_ _null_ _null_ ));
DESCR("map table contents and structure to XML and XML Schema");
! DATA(insert OID = 2930 ( query_to_xml_and_xmlschema PGNSP PGUID 12 100 0 0 f f t f s 4 0 142 "25 16 16 25" _null_ _null_ "{query,nulls,tableforest,targetns}" _null_ query_to_xml_and_xmlschema _null_ _null_ _null_ ));
DESCR("map query result and structure to XML and XML Schema");
! DATA(insert OID = 2933 ( schema_to_xml PGNSP PGUID 12 100 0 0 f f t f s 4 0 142 "19 16 16 25" _null_ _null_ "{schema,nulls,tableforest,targetns}" _null_ schema_to_xml _null_ _null_ _null_ ));
DESCR("map schema contents to XML");
! DATA(insert OID = 2934 ( schema_to_xmlschema PGNSP PGUID 12 100 0 0 f f t f s 4 0 142 "19 16 16 25" _null_ _null_ "{schema,nulls,tableforest,targetns}" _null_ schema_to_xmlschema _null_ _null_ _null_ ));
DESCR("map schema structure to XML Schema");
! DATA(insert OID = 2935 ( schema_to_xml_and_xmlschema PGNSP PGUID 12 100 0 0 f f t f s 4 0 142 "19 16 16 25" _null_ _null_ "{schema,nulls,tableforest,targetns}" _null_ schema_to_xml_and_xmlschema _null_ _null_ _null_ ));
DESCR("map schema contents and structure to XML and XML Schema");
! DATA(insert OID = 2936 ( database_to_xml PGNSP PGUID 12 100 0 0 f f t f s 3 0 142 "16 16 25" _null_ _null_ "{nulls,tableforest,targetns}" _null_ database_to_xml _null_ _null_ _null_ ));
DESCR("map database contents to XML");
! DATA(insert OID = 2937 ( database_to_xmlschema PGNSP PGUID 12 100 0 0 f f t f s 3 0 142 "16 16 25" _null_ _null_ "{nulls,tableforest,targetns}" _null_ database_to_xmlschema _null_ _null_ _null_ ));
DESCR("map database structure to XML Schema");
! DATA(insert OID = 2938 ( database_to_xml_and_xmlschema PGNSP PGUID 12 100 0 0 f f t f s 3 0 142 "16 16 25" _null_ _null_ "{nulls,tableforest,targetns}" _null_ database_to_xml_and_xmlschema _null_ _null_ _null_ ));
DESCR("map database contents and structure to XML and XML Schema");
! DATA(insert OID = 2931 ( xpath PGNSP PGUID 12 1 0 0 f f t f i 3 0 143 "25 142 1009" _null_ _null_ _null_ _null_ xpath _null_ _null_ _null_ ));
DESCR("evaluate XPath expression, with namespaces support");
! DATA(insert OID = 2932 ( xpath PGNSP PGUID 14 1 0 0 f f t f i 2 0 143 "25 142" _null_ _null_ _null_ _null_ "select pg_catalog.xpath($1, $2, ''{}''::pg_catalog.text[])" _null_ _null_ _null_ ));
DESCR("evaluate XPath expression");
/* uuid */
! DATA(insert OID = 2952 ( uuid_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 2950 "2275" _null_ _null_ _null_ _null_ uuid_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2953 ( uuid_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "2950" _null_ _null_ _null_ _null_ uuid_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2954 ( uuid_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2950 2950" _null_ _null_ _null_ _null_ uuid_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 2955 ( uuid_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2950 2950" _null_ _null_ _null_ _null_ uuid_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 2956 ( uuid_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2950 2950" _null_ _null_ _null_ _null_ uuid_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 2957 ( uuid_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2950 2950" _null_ _null_ _null_ _null_ uuid_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 2958 ( uuid_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2950 2950" _null_ _null_ _null_ _null_ uuid_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 2959 ( uuid_ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2950 2950" _null_ _null_ _null_ _null_ uuid_ne _null_ _null_ _null_ ));
DESCR("not-equal");
! DATA(insert OID = 2960 ( uuid_cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "2950 2950" _null_ _null_ _null_ _null_ uuid_cmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 2961 ( uuid_recv PGNSP PGUID 12 1 0 0 f f t f i 1 0 2950 "2281" _null_ _null_ _null_ _null_ uuid_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2962 ( uuid_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "2950" _null_ _null_ _null_ _null_ uuid_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2963 ( uuid_hash PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "2950" _null_ _null_ _null_ _null_ uuid_hash _null_ _null_ _null_ ));
DESCR("hash");
/* enum related procs */
! DATA(insert OID = 3504 ( anyenum_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 3500 "2275" _null_ _null_ _null_ _null_ anyenum_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3505 ( anyenum_out PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "3500" _null_ _null_ _null_ _null_ anyenum_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3506 ( enum_in PGNSP PGUID 12 1 0 0 f f t f s 2 0 3500 "2275 26" _null_ _null_ _null_ _null_ enum_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3507 ( enum_out PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "3500" _null_ _null_ _null_ _null_ enum_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3508 ( enum_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3500 3500" _null_ _null_ _null_ _null_ enum_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 3509 ( enum_ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3500 3500" _null_ _null_ _null_ _null_ enum_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 3510 ( enum_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3500 3500" _null_ _null_ _null_ _null_ enum_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 3511 ( enum_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3500 3500" _null_ _null_ _null_ _null_ enum_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 3512 ( enum_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3500 3500" _null_ _null_ _null_ _null_ enum_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 3513 ( enum_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3500 3500" _null_ _null_ _null_ _null_ enum_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 3514 ( enum_cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "3500 3500" _null_ _null_ _null_ _null_ enum_cmp _null_ _null_ _null_ ));
DESCR("btree-less-equal-greater");
! DATA(insert OID = 3515 ( hashenum PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "3500" _null_ _null_ _null_ _null_ hashenum _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 3524 ( enum_smaller PGNSP PGUID 12 1 0 0 f f t f i 2 0 3500 "3500 3500" _null_ _null_ _null_ _null_ enum_smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 3525 ( enum_larger PGNSP PGUID 12 1 0 0 f f t f i 2 0 3500 "3500 3500" _null_ _null_ _null_ _null_ enum_larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 3526 ( max PGNSP PGUID 12 1 0 0 t f f f i 1 0 3500 "3500" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum of anyenum");
! DATA(insert OID = 3527 ( min PGNSP PGUID 12 1 0 0 t f f f i 1 0 3500 "3500" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum of anyenum");
! DATA(insert OID = 3528 ( enum_first PGNSP PGUID 12 1 0 0 f f f f s 1 0 3500 "3500" _null_ _null_ _null_ _null_ enum_first _null_ _null_ _null_ ));
DESCR("returns the first value of the input enum type");
! DATA(insert OID = 3529 ( enum_last PGNSP PGUID 12 1 0 0 f f f f s 1 0 3500 "3500" _null_ _null_ _null_ _null_ enum_last _null_ _null_ _null_ ));
DESCR("returns the last value of the input enum type");
! DATA(insert OID = 3530 ( enum_range PGNSP PGUID 12 1 0 0 f f f f s 2 0 2277 "3500 3500" _null_ _null_ _null_ _null_ enum_range_bounds _null_ _null_ _null_ ));
DESCR("returns the range between the two given enum values, as an ordered array");
! DATA(insert OID = 3531 ( enum_range PGNSP PGUID 12 1 0 0 f f f f s 1 0 2277 "3500" _null_ _null_ _null_ _null_ enum_range_all _null_ _null_ _null_ ));
DESCR("returns the range of the given enum type as an ordered array");
! DATA(insert OID = 3532 ( enum_recv PGNSP PGUID 12 1 0 0 f f t f s 2 0 3500 "2275 26" _null_ _null_ _null_ _null_ enum_recv _null_ _null_ _null_ ));
! DATA(insert OID = 3533 ( enum_send PGNSP PGUID 12 1 0 0 f f t f s 1 0 17 "3500" _null_ _null_ _null_ _null_ enum_send _null_ _null_ _null_ ));
/* text search stuff */
! DATA(insert OID = 3610 ( tsvectorin PGNSP PGUID 12 1 0 0 f f t f i 1 0 3614 "2275" _null_ _null_ _null_ _null_ tsvectorin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3639 ( tsvectorrecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 3614 "2281" _null_ _null_ _null_ _null_ tsvectorrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3611 ( tsvectorout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "3614" _null_ _null_ _null_ _null_ tsvectorout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3638 ( tsvectorsend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "3614" _null_ _null_ _null_ _null_ tsvectorsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3612 ( tsqueryin PGNSP PGUID 12 1 0 0 f f t f i 1 0 3615 "2275" _null_ _null_ _null_ _null_ tsqueryin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3641 ( tsqueryrecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 3615 "2281" _null_ _null_ _null_ _null_ tsqueryrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3613 ( tsqueryout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "3615" _null_ _null_ _null_ _null_ tsqueryout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3640 ( tsquerysend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "3615" _null_ _null_ _null_ _null_ tsquerysend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3646 ( gtsvectorin PGNSP PGUID 12 1 0 0 f f t f i 1 0 3642 "2275" _null_ _null_ _null_ _null_ gtsvectorin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3647 ( gtsvectorout PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "3642" _null_ _null_ _null_ _null_ gtsvectorout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3616 ( tsvector_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3614 3614" _null_ _null_ _null_ _null_ tsvector_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 3617 ( tsvector_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3614 3614" _null_ _null_ _null_ _null_ tsvector_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 3618 ( tsvector_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3614 3614" _null_ _null_ _null_ _null_ tsvector_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 3619 ( tsvector_ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3614 3614" _null_ _null_ _null_ _null_ tsvector_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 3620 ( tsvector_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3614 3614" _null_ _null_ _null_ _null_ tsvector_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 3621 ( tsvector_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3614 3614" _null_ _null_ _null_ _null_ tsvector_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 3622 ( tsvector_cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "3614 3614" _null_ _null_ _null_ _null_ tsvector_cmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 3711 ( length PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "3614" _null_ _null_ _null_ _null_ tsvector_length _null_ _null_ _null_ ));
DESCR("number of lexemes");
! DATA(insert OID = 3623 ( strip PGNSP PGUID 12 1 0 0 f f t f i 1 0 3614 "3614" _null_ _null_ _null_ _null_ tsvector_strip _null_ _null_ _null_ ));
DESCR("strip position information");
! DATA(insert OID = 3624 ( setweight PGNSP PGUID 12 1 0 0 f f t f i 2 0 3614 "3614 18" _null_ _null_ _null_ _null_ tsvector_setweight _null_ _null_ _null_ ));
DESCR("set weight of lexeme's entries");
! DATA(insert OID = 3625 ( tsvector_concat PGNSP PGUID 12 1 0 0 f f t f i 2 0 3614 "3614 3614" _null_ _null_ _null_ _null_ tsvector_concat _null_ _null_ _null_ ));
DESCR("concatenate");
! DATA(insert OID = 3634 ( ts_match_vq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3614 3615" _null_ _null_ _null_ _null_ ts_match_vq _null_ _null_ _null_ ));
DESCR("match tsvector to tsquery");
! DATA(insert OID = 3635 ( ts_match_qv PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3615 3614" _null_ _null_ _null_ _null_ ts_match_qv _null_ _null_ _null_ ));
DESCR("match tsquery to tsvector");
! DATA(insert OID = 3760 ( ts_match_tt PGNSP PGUID 12 3 0 0 f f t f s 2 0 16 "25 25" _null_ _null_ _null_ _null_ ts_match_tt _null_ _null_ _null_ ));
DESCR("text search match");
! DATA(insert OID = 3761 ( ts_match_tq PGNSP PGUID 12 2 0 0 f f t f s 2 0 16 "25 3615" _null_ _null_ _null_ _null_ ts_match_tq _null_ _null_ _null_ ));
DESCR("match text to tsquery");
! DATA(insert OID = 3648 ( gtsvector_compress PGNSP PGUID 12 1 0 0 f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ gtsvector_compress _null_ _null_ _null_ ));
DESCR("GiST tsvector support");
! DATA(insert OID = 3649 ( gtsvector_decompress PGNSP PGUID 12 1 0 0 f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ gtsvector_decompress _null_ _null_ _null_ ));
DESCR("GiST tsvector support");
! DATA(insert OID = 3650 ( gtsvector_picksplit PGNSP PGUID 12 1 0 0 f f t f i 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ gtsvector_picksplit _null_ _null_ _null_ ));
DESCR("GiST tsvector support");
! DATA(insert OID = 3651 ( gtsvector_union PGNSP PGUID 12 1 0 0 f f t f i 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ gtsvector_union _null_ _null_ _null_ ));
DESCR("GiST tsvector support");
! DATA(insert OID = 3652 ( gtsvector_same PGNSP PGUID 12 1 0 0 f f t f i 3 0 2281 "3642 3642 2281" _null_ _null_ _null_ _null_ gtsvector_same _null_ _null_ _null_ ));
DESCR("GiST tsvector support");
! DATA(insert OID = 3653 ( gtsvector_penalty PGNSP PGUID 12 1 0 0 f f t f i 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ gtsvector_penalty _null_ _null_ _null_ ));
DESCR("GiST tsvector support");
! DATA(insert OID = 3654 ( gtsvector_consistent PGNSP PGUID 12 1 0 0 f f t f i 5 0 16 "2281 3642 23 26 2281" _null_ _null_ _null_ _null_ gtsvector_consistent _null_ _null_ _null_ ));
DESCR("GiST tsvector support");
! DATA(insert OID = 3656 ( gin_extract_tsvector PGNSP PGUID 12 1 0 0 f f t f i 2 0 2281 "3614 2281" _null_ _null_ _null_ _null_ gin_extract_tsvector _null_ _null_ _null_ ));
DESCR("GIN tsvector support");
! DATA(insert OID = 3657 ( gin_extract_tsquery PGNSP PGUID 12 1 0 0 f f t f i 4 0 2281 "3615 2281 21 2281" _null_ _null_ _null_ _null_ gin_extract_tsquery _null_ _null_ _null_ ));
DESCR("GIN tsvector support");
! DATA(insert OID = 3658 ( gin_tsquery_consistent PGNSP PGUID 12 1 0 0 f f t f i 4 0 16 "2281 21 3615 2281" _null_ _null_ _null_ _null_ gin_tsquery_consistent _null_ _null_ _null_ ));
DESCR("GIN tsvector support");
! DATA(insert OID = 3724 ( gin_cmp_tslexeme PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "25 25" _null_ _null_ _null_ _null_ gin_cmp_tslexeme _null_ _null_ _null_ ));
DESCR("GIN tsvector support");
! DATA(insert OID = 2700 ( gin_cmp_prefix PGNSP PGUID 12 1 0 0 f f t f i 3 0 23 "25 25 21" _null_ _null_ _null_ _null_ gin_cmp_prefix _null_ _null_ _null_ ));
DESCR("GIN tsvector support");
! DATA(insert OID = 3662 ( tsquery_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ tsquery_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 3663 ( tsquery_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ tsquery_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 3664 ( tsquery_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ tsquery_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 3665 ( tsquery_ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ tsquery_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 3666 ( tsquery_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ tsquery_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 3667 ( tsquery_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ tsquery_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 3668 ( tsquery_cmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "3615 3615" _null_ _null_ _null_ _null_ tsquery_cmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 3669 ( tsquery_and PGNSP PGUID 12 1 0 0 f f t f i 2 0 3615 "3615 3615" _null_ _null_ _null_ _null_ tsquery_and _null_ _null_ _null_ ));
DESCR("AND-concatenate");
! DATA(insert OID = 3670 ( tsquery_or PGNSP PGUID 12 1 0 0 f f t f i 2 0 3615 "3615 3615" _null_ _null_ _null_ _null_ tsquery_or _null_ _null_ _null_ ));
DESCR("OR-concatenate");
! DATA(insert OID = 3671 ( tsquery_not PGNSP PGUID 12 1 0 0 f f t f i 1 0 3615 "3615" _null_ _null_ _null_ _null_ tsquery_not _null_ _null_ _null_ ));
DESCR("NOT-tsquery");
! DATA(insert OID = 3691 ( tsq_mcontains PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ tsq_mcontains _null_ _null_ _null_ ));
DESCR("contains");
! DATA(insert OID = 3692 ( tsq_mcontained PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ tsq_mcontained _null_ _null_ _null_ ));
DESCR("contained");
! DATA(insert OID = 3672 ( numnode PGNSP PGUID 12 1 0 0 f f t f i 1 0 23 "3615" _null_ _null_ _null_ _null_ tsquery_numnode _null_ _null_ _null_ ));
DESCR("number of nodes");
! DATA(insert OID = 3673 ( querytree PGNSP PGUID 12 1 0 0 f f t f i 1 0 25 "3615" _null_ _null_ _null_ _null_ tsquerytree _null_ _null_ _null_ ));
DESCR("show real useful query for GiST index");
! DATA(insert OID = 3684 ( ts_rewrite PGNSP PGUID 12 1 0 0 f f t f i 3 0 3615 "3615 3615 3615" _null_ _null_ _null_ _null_ tsquery_rewrite _null_ _null_ _null_ ));
DESCR("rewrite tsquery");
! DATA(insert OID = 3685 ( ts_rewrite PGNSP PGUID 12 1 0 0 f f t f v 2 0 3615 "3615 25" _null_ _null_ _null_ _null_ tsquery_rewrite_query _null_ _null_ _null_ ));
DESCR("rewrite tsquery");
! DATA(insert OID = 3695 ( gtsquery_compress PGNSP PGUID 12 1 0 0 f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ gtsquery_compress _null_ _null_ _null_ ));
DESCR("GiST tsquery support");
! DATA(insert OID = 3696 ( gtsquery_decompress PGNSP PGUID 12 1 0 0 f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ gtsquery_decompress _null_ _null_ _null_ ));
DESCR("GiST tsquery support");
! DATA(insert OID = 3697 ( gtsquery_picksplit PGNSP PGUID 12 1 0 0 f f t f i 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ gtsquery_picksplit _null_ _null_ _null_ ));
DESCR("GiST tsquery support");
! DATA(insert OID = 3698 ( gtsquery_union PGNSP PGUID 12 1 0 0 f f t f i 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ gtsquery_union _null_ _null_ _null_ ));
DESCR("GiST tsquery support");
! DATA(insert OID = 3699 ( gtsquery_same PGNSP PGUID 12 1 0 0 f f t f i 3 0 2281 "20 20 2281" _null_ _null_ _null_ _null_ gtsquery_same _null_ _null_ _null_ ));
DESCR("GiST tsquery support");
! DATA(insert OID = 3700 ( gtsquery_penalty PGNSP PGUID 12 1 0 0 f f t f i 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ gtsquery_penalty _null_ _null_ _null_ ));
DESCR("GiST tsquery support");
! DATA(insert OID = 3701 ( gtsquery_consistent PGNSP PGUID 12 1 0 0 f f t f i 5 0 16 "2281 2281 23 26 2281" _null_ _null_ _null_ _null_ gtsquery_consistent _null_ _null_ _null_ ));
DESCR("GiST tsquery support");
! DATA(insert OID = 3686 ( tsmatchsel PGNSP PGUID 12 1 0 0 f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ tsmatchsel _null_ _null_ _null_ ));
DESCR("restriction selectivity of tsvector @@ tsquery");
! DATA(insert OID = 3687 ( tsmatchjoinsel PGNSP PGUID 12 1 0 0 f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ tsmatchjoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of tsvector @@ tsquery");
! DATA(insert OID = 3688 ( ts_typanalyze PGNSP PGUID 12 1 0 0 f f t f s 1 0 16 "2281" _null_ _null_ _null_ _null_ ts_typanalyze _null_ _null_ _null_ ));
DESCR("tsvector typanalyze");
! DATA(insert OID = 3689 ( ts_stat PGNSP PGUID 12 10 10000 0 f f t t v 1 0 2249 "25" "{25,25,23,23}" "{i,o,o,o}" "{query,word,ndoc,nentry}" _null_ ts_stat1 _null_ _null_ _null_ ));
DESCR("statistics of tsvector column");
! DATA(insert OID = 3690 ( ts_stat PGNSP PGUID 12 10 10000 0 f f t t v 2 0 2249 "25 25" "{25,25,25,23,23}" "{i,i,o,o,o}" "{query,weights,word,ndoc,nentry}" _null_ ts_stat2 _null_ _null_ _null_ ));
DESCR("statistics of tsvector column");
! DATA(insert OID = 3703 ( ts_rank PGNSP PGUID 12 1 0 0 f f t f i 4 0 700 "1021 3614 3615 23" _null_ _null_ _null_ _null_ ts_rank_wttf _null_ _null_ _null_ ));
DESCR("relevance");
! DATA(insert OID = 3704 ( ts_rank PGNSP PGUID 12 1 0 0 f f t f i 3 0 700 "1021 3614 3615" _null_ _null_ _null_ _null_ ts_rank_wtt _null_ _null_ _null_ ));
DESCR("relevance");
! DATA(insert OID = 3705 ( ts_rank PGNSP PGUID 12 1 0 0 f f t f i 3 0 700 "3614 3615 23" _null_ _null_ _null_ _null_ ts_rank_ttf _null_ _null_ _null_ ));
DESCR("relevance");
! DATA(insert OID = 3706 ( ts_rank PGNSP PGUID 12 1 0 0 f f t f i 2 0 700 "3614 3615" _null_ _null_ _null_ _null_ ts_rank_tt _null_ _null_ _null_ ));
DESCR("relevance");
! DATA(insert OID = 3707 ( ts_rank_cd PGNSP PGUID 12 1 0 0 f f t f i 4 0 700 "1021 3614 3615 23" _null_ _null_ _null_ _null_ ts_rankcd_wttf _null_ _null_ _null_ ));
DESCR("relevance");
! DATA(insert OID = 3708 ( ts_rank_cd PGNSP PGUID 12 1 0 0 f f t f i 3 0 700 "1021 3614 3615" _null_ _null_ _null_ _null_ ts_rankcd_wtt _null_ _null_ _null_ ));
DESCR("relevance");
! DATA(insert OID = 3709 ( ts_rank_cd PGNSP PGUID 12 1 0 0 f f t f i 3 0 700 "3614 3615 23" _null_ _null_ _null_ _null_ ts_rankcd_ttf _null_ _null_ _null_ ));
DESCR("relevance");
! DATA(insert OID = 3710 ( ts_rank_cd PGNSP PGUID 12 1 0 0 f f t f i 2 0 700 "3614 3615" _null_ _null_ _null_ _null_ ts_rankcd_tt _null_ _null_ _null_ ));
DESCR("relevance");
! DATA(insert OID = 3713 ( ts_token_type PGNSP PGUID 12 1 16 0 f f t t i 1 0 2249 "26" "{26,23,25,25}" "{i,o,o,o}" "{parser_oid,tokid,alias,description}" _null_ ts_token_type_byid _null_ _null_ _null_ ));
DESCR("get parser's token types");
! DATA(insert OID = 3714 ( ts_token_type PGNSP PGUID 12 1 16 0 f f t t s 1 0 2249 "25" "{25,23,25,25}" "{i,o,o,o}" "{parser_name,tokid,alias,description}" _null_ ts_token_type_byname _null_ _null_ _null_ ));
DESCR("get parser's token types");
! DATA(insert OID = 3715 ( ts_parse PGNSP PGUID 12 1 1000 0 f f t t i 2 0 2249 "26 25" "{26,25,23,25}" "{i,i,o,o}" "{parser_oid,txt,tokid,token}" _null_ ts_parse_byid _null_ _null_ _null_ ));
DESCR("parse text to tokens");
! DATA(insert OID = 3716 ( ts_parse PGNSP PGUID 12 1 1000 0 f f t t s 2 0 2249 "25 25" "{25,25,23,25}" "{i,i,o,o}" "{parser_name,txt,tokid,token}" _null_ ts_parse_byname _null_ _null_ _null_ ));
DESCR("parse text to tokens");
! DATA(insert OID = 3717 ( prsd_start PGNSP PGUID 12 1 0 0 f f t f i 2 0 2281 "2281 23" _null_ _null_ _null_ _null_ prsd_start _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3718 ( prsd_nexttoken PGNSP PGUID 12 1 0 0 f f t f i 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ prsd_nexttoken _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3719 ( prsd_end PGNSP PGUID 12 1 0 0 f f t f i 1 0 2278 "2281" _null_ _null_ _null_ _null_ prsd_end _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3720 ( prsd_headline PGNSP PGUID 12 1 0 0 f f t f i 3 0 2281 "2281 2281 3615" _null_ _null_ _null_ _null_ prsd_headline _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3721 ( prsd_lextype PGNSP PGUID 12 1 0 0 f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ prsd_lextype _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3723 ( ts_lexize PGNSP PGUID 12 1 0 0 f f t f i 2 0 1009 "3769 25" _null_ _null_ _null_ _null_ ts_lexize _null_ _null_ _null_ ));
DESCR("normalize one word by dictionary");
! DATA(insert OID = 3725 ( dsimple_init PGNSP PGUID 12 1 0 0 f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ dsimple_init _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3726 ( dsimple_lexize PGNSP PGUID 12 1 0 0 f f t f i 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ dsimple_lexize _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3728 ( dsynonym_init PGNSP PGUID 12 1 0 0 f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ dsynonym_init _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3729 ( dsynonym_lexize PGNSP PGUID 12 1 0 0 f f t f i 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ dsynonym_lexize _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3731 ( dispell_init PGNSP PGUID 12 1 0 0 f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ dispell_init _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3732 ( dispell_lexize PGNSP PGUID 12 1 0 0 f f t f i 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ dispell_lexize _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3740 ( thesaurus_init PGNSP PGUID 12 1 0 0 f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ thesaurus_init _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3741 ( thesaurus_lexize PGNSP PGUID 12 1 0 0 f f t f i 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ thesaurus_lexize _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3743 ( ts_headline PGNSP PGUID 12 1 0 0 f f t f i 4 0 25 "3734 25 3615 25" _null_ _null_ _null_ _null_ ts_headline_byid_opt _null_ _null_ _null_ ));
DESCR("generate headline");
! DATA(insert OID = 3744 ( ts_headline PGNSP PGUID 12 1 0 0 f f t f i 3 0 25 "3734 25 3615" _null_ _null_ _null_ _null_ ts_headline_byid _null_ _null_ _null_ ));
DESCR("generate headline");
! DATA(insert OID = 3754 ( ts_headline PGNSP PGUID 12 1 0 0 f f t f s 3 0 25 "25 3615 25" _null_ _null_ _null_ _null_ ts_headline_opt _null_ _null_ _null_ ));
DESCR("generate headline");
! DATA(insert OID = 3755 ( ts_headline PGNSP PGUID 12 1 0 0 f f t f s 2 0 25 "25 3615" _null_ _null_ _null_ _null_ ts_headline _null_ _null_ _null_ ));
DESCR("generate headline");
! DATA(insert OID = 3745 ( to_tsvector PGNSP PGUID 12 1 0 0 f f t f i 2 0 3614 "3734 25" _null_ _null_ _null_ _null_ to_tsvector_byid _null_ _null_ _null_ ));
DESCR("transform to tsvector");
! DATA(insert OID = 3746 ( to_tsquery PGNSP PGUID 12 1 0 0 f f t f i 2 0 3615 "3734 25" _null_ _null_ _null_ _null_ to_tsquery_byid _null_ _null_ _null_ ));
DESCR("make tsquery");
! DATA(insert OID = 3747 ( plainto_tsquery PGNSP PGUID 12 1 0 0 f f t f i 2 0 3615 "3734 25" _null_ _null_ _null_ _null_ plainto_tsquery_byid _null_ _null_ _null_ ));
DESCR("transform to tsquery");
! DATA(insert OID = 3749 ( to_tsvector PGNSP PGUID 12 1 0 0 f f t f s 1 0 3614 "25" _null_ _null_ _null_ _null_ to_tsvector _null_ _null_ _null_ ));
DESCR("transform to tsvector");
! DATA(insert OID = 3750 ( to_tsquery PGNSP PGUID 12 1 0 0 f f t f s 1 0 3615 "25" _null_ _null_ _null_ _null_ to_tsquery _null_ _null_ _null_ ));
DESCR("make tsquery");
! DATA(insert OID = 3751 ( plainto_tsquery PGNSP PGUID 12 1 0 0 f f t f s 1 0 3615 "25" _null_ _null_ _null_ _null_ plainto_tsquery _null_ _null_ _null_ ));
DESCR("transform to tsquery");
! DATA(insert OID = 3752 ( tsvector_update_trigger PGNSP PGUID 12 1 0 0 f f f f v 0 0 2279 "" _null_ _null_ _null_ _null_ tsvector_update_trigger_byid _null_ _null_ _null_ ));
DESCR("trigger for automatic update of tsvector column");
! DATA(insert OID = 3753 ( tsvector_update_trigger_column PGNSP PGUID 12 1 0 0 f f f f v 0 0 2279 "" _null_ _null_ _null_ _null_ tsvector_update_trigger_bycolumn _null_ _null_ _null_ ));
DESCR("trigger for automatic update of tsvector column");
! DATA(insert OID = 3759 ( get_current_ts_config PGNSP PGUID 12 1 0 0 f f t f s 0 0 3734 "" _null_ _null_ _null_ _null_ get_current_ts_config _null_ _null_ _null_ ));
DESCR("get current tsearch configuration");
! DATA(insert OID = 3736 ( regconfigin PGNSP PGUID 12 1 0 0 f f t f s 1 0 3734 "2275" _null_ _null_ _null_ _null_ regconfigin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3737 ( regconfigout PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "3734" _null_ _null_ _null_ _null_ regconfigout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3738 ( regconfigrecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 3734 "2281" _null_ _null_ _null_ _null_ regconfigrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3739 ( regconfigsend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "3734" _null_ _null_ _null_ _null_ regconfigsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3771 ( regdictionaryin PGNSP PGUID 12 1 0 0 f f t f s 1 0 3769 "2275" _null_ _null_ _null_ _null_ regdictionaryin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3772 ( regdictionaryout PGNSP PGUID 12 1 0 0 f f t f s 1 0 2275 "3769" _null_ _null_ _null_ _null_ regdictionaryout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3773 ( regdictionaryrecv PGNSP PGUID 12 1 0 0 f f t f i 1 0 3769 "2281" _null_ _null_ _null_ _null_ regdictionaryrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3774 ( regdictionarysend PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "3769" _null_ _null_ _null_ _null_ regdictionarysend _null_ _null_ _null_ ));
DESCR("I/O");
/* txid */
! DATA(insert OID = 2939 ( txid_snapshot_in PGNSP PGUID 12 1 0 0 f f t f i 1 0 2970 "2275" _null_ _null_ _null_ _null_ txid_snapshot_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2940 ( txid_snapshot_out PGNSP PGUID 12 1 0 0 f f t f i 1 0 2275 "2970" _null_ _null_ _null_ _null_ txid_snapshot_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2941 ( txid_snapshot_recv PGNSP PGUID 12 1 0 0 f f t f i 1 0 2970 "2281" _null_ _null_ _null_ _null_ txid_snapshot_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2942 ( txid_snapshot_send PGNSP PGUID 12 1 0 0 f f t f i 1 0 17 "2970" _null_ _null_ _null_ _null_ txid_snapshot_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2943 ( txid_current PGNSP PGUID 12 1 0 0 f f t f s 0 0 20 "" _null_ _null_ _null_ _null_ txid_current _null_ _null_ _null_ ));
DESCR("get current transaction ID");
! DATA(insert OID = 2944 ( txid_current_snapshot PGNSP PGUID 12 1 0 0 f f t f s 0 0 2970 "" _null_ _null_ _null_ _null_ txid_current_snapshot _null_ _null_ _null_ ));
DESCR("get current snapshot");
! DATA(insert OID = 2945 ( txid_snapshot_xmin PGNSP PGUID 12 1 0 0 f f t f i 1 0 20 "2970" _null_ _null_ _null_ _null_ txid_snapshot_xmin _null_ _null_ _null_ ));
DESCR("get xmin of snapshot");
! DATA(insert OID = 2946 ( txid_snapshot_xmax PGNSP PGUID 12 1 0 0 f f t f i 1 0 20 "2970" _null_ _null_ _null_ _null_ txid_snapshot_xmax _null_ _null_ _null_ ));
DESCR("get xmax of snapshot");
! DATA(insert OID = 2947 ( txid_snapshot_xip PGNSP PGUID 12 1 50 0 f f t t i 1 0 20 "2970" _null_ _null_ _null_ _null_ txid_snapshot_xip _null_ _null_ _null_ ));
DESCR("get set of in-progress txids in snapshot");
! DATA(insert OID = 2948 ( txid_visible_in_snapshot PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "20 2970" _null_ _null_ _null_ _null_ txid_visible_in_snapshot _null_ _null_ _null_ ));
DESCR("is txid visible in snapshot?");
/* record comparison */
! DATA(insert OID = 2981 ( record_eq PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ record_eq _null_ _null_ _null_ ));
DESCR("record equal");
! DATA(insert OID = 2982 ( record_ne PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ record_ne _null_ _null_ _null_ ));
DESCR("record not equal");
! DATA(insert OID = 2983 ( record_lt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ record_lt _null_ _null_ _null_ ));
DESCR("record less than");
! DATA(insert OID = 2984 ( record_gt PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ record_gt _null_ _null_ _null_ ));
DESCR("record greater than");
! DATA(insert OID = 2985 ( record_le PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ record_le _null_ _null_ _null_ ));
DESCR("record less than or equal");
! DATA(insert OID = 2986 ( record_ge PGNSP PGUID 12 1 0 0 f f t f i 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ record_ge _null_ _null_ _null_ ));
DESCR("record greater than or equal");
! DATA(insert OID = 2987 ( btrecordcmp PGNSP PGUID 12 1 0 0 f f t f i 2 0 23 "2249 2249" _null_ _null_ _null_ _null_ btrecordcmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
/*
* Symbolic values for provolatile column: these indicate whether the result
--- 109,4640 ----
/* OIDS 1 - 99 */
! DATA(insert OID = 1242 ( boolin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 16 "2275" _null_ _null_ _null_ _null_ boolin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1243 ( boolout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "16" _null_ _null_ _null_ _null_ boolout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1244 ( byteain PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "2275" _null_ _null_ _null_ _null_ byteain _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 31 ( byteaout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "17" _null_ _null_ _null_ _null_ byteaout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1245 ( charin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 18 "2275" _null_ _null_ _null_ _null_ charin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 33 ( charout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "18" _null_ _null_ _null_ _null_ charout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 34 ( namein PGNSP PGUID 12 1 0 0 f f f t f i 1 0 19 "2275" _null_ _null_ _null_ _null_ namein _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 35 ( nameout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "19" _null_ _null_ _null_ _null_ nameout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 38 ( int2in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 21 "2275" _null_ _null_ _null_ _null_ int2in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 39 ( int2out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "21" _null_ _null_ _null_ _null_ int2out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 40 ( int2vectorin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 22 "2275" _null_ _null_ _null_ _null_ int2vectorin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 41 ( int2vectorout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "22" _null_ _null_ _null_ _null_ int2vectorout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 42 ( int4in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "2275" _null_ _null_ _null_ _null_ int4in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 43 ( int4out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ int4out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 44 ( regprocin PGNSP PGUID 12 1 0 0 f f f t f s 1 0 24 "2275" _null_ _null_ _null_ _null_ regprocin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 45 ( regprocout PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "24" _null_ _null_ _null_ _null_ regprocout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 46 ( textin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "2275" _null_ _null_ _null_ _null_ textin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 47 ( textout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "25" _null_ _null_ _null_ _null_ textout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 48 ( tidin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 27 "2275" _null_ _null_ _null_ _null_ tidin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 49 ( tidout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "27" _null_ _null_ _null_ _null_ tidout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 50 ( xidin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 28 "2275" _null_ _null_ _null_ _null_ xidin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 51 ( xidout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "28" _null_ _null_ _null_ _null_ xidout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 52 ( cidin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 29 "2275" _null_ _null_ _null_ _null_ cidin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 53 ( cidout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "29" _null_ _null_ _null_ _null_ cidout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 54 ( oidvectorin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 30 "2275" _null_ _null_ _null_ _null_ oidvectorin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 55 ( oidvectorout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "30" _null_ _null_ _null_ _null_ oidvectorout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 56 ( boollt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "16 16" _null_ _null_ _null_ _null_ boollt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 57 ( boolgt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "16 16" _null_ _null_ _null_ _null_ boolgt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 60 ( booleq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "16 16" _null_ _null_ _null_ _null_ booleq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 61 ( chareq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "18 18" _null_ _null_ _null_ _null_ chareq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 62 ( nameeq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "19 19" _null_ _null_ _null_ _null_ nameeq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 63 ( int2eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "21 21" _null_ _null_ _null_ _null_ int2eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 64 ( int2lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "21 21" _null_ _null_ _null_ _null_ int2lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 65 ( int4eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "23 23" _null_ _null_ _null_ _null_ int4eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 66 ( int4lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "23 23" _null_ _null_ _null_ _null_ int4lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 67 ( texteq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ texteq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 68 ( xideq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "28 28" _null_ _null_ _null_ _null_ xideq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 69 ( cideq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "29 29" _null_ _null_ _null_ _null_ cideq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 70 ( charne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "18 18" _null_ _null_ _null_ _null_ charne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1246 ( charlt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "18 18" _null_ _null_ _null_ _null_ charlt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 72 ( charle PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "18 18" _null_ _null_ _null_ _null_ charle _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 73 ( chargt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "18 18" _null_ _null_ _null_ _null_ chargt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 74 ( charge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "18 18" _null_ _null_ _null_ _null_ charge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 77 ( int4 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "18" _null_ _null_ _null_ _null_ chartoi4 _null_ _null_ _null_ ));
DESCR("convert char to int4");
! DATA(insert OID = 78 ( char PGNSP PGUID 12 1 0 0 f f f t f i 1 0 18 "23" _null_ _null_ _null_ _null_ i4tochar _null_ _null_ _null_ ));
DESCR("convert int4 to char");
! DATA(insert OID = 79 ( nameregexeq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "19 25" _null_ _null_ _null_ _null_ nameregexeq _null_ _null_ _null_ ));
DESCR("matches regex., case-sensitive");
! DATA(insert OID = 1252 ( nameregexne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "19 25" _null_ _null_ _null_ _null_ nameregexne _null_ _null_ _null_ ));
DESCR("does not match regex., case-sensitive");
! DATA(insert OID = 1254 ( textregexeq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ textregexeq _null_ _null_ _null_ ));
DESCR("matches regex., case-sensitive");
! DATA(insert OID = 1256 ( textregexne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ textregexne _null_ _null_ _null_ ));
DESCR("does not match regex., case-sensitive");
! DATA(insert OID = 1257 ( textlen PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "25" _null_ _null_ _null_ _null_ textlen _null_ _null_ _null_ ));
DESCR("length");
! DATA(insert OID = 1258 ( textcat PGNSP PGUID 12 1 0 0 f f f t f i 2 0 25 "25 25" _null_ _null_ _null_ _null_ textcat _null_ _null_ _null_ ));
DESCR("concatenate");
! DATA(insert OID = 84 ( boolne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "16 16" _null_ _null_ _null_ _null_ boolne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 89 ( version PGNSP PGUID 12 1 0 0 f f f t f s 0 0 25 "" _null_ _null_ _null_ _null_ pgsql_version _null_ _null_ _null_ ));
DESCR("PostgreSQL version string");
/* OIDS 100 - 199 */
! DATA(insert OID = 101 ( eqsel PGNSP PGUID 12 1 0 0 f f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ eqsel _null_ _null_ _null_ ));
DESCR("restriction selectivity of = and related operators");
! DATA(insert OID = 102 ( neqsel PGNSP PGUID 12 1 0 0 f f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ neqsel _null_ _null_ _null_ ));
DESCR("restriction selectivity of <> and related operators");
! DATA(insert OID = 103 ( scalarltsel PGNSP PGUID 12 1 0 0 f f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ scalarltsel _null_ _null_ _null_ ));
DESCR("restriction selectivity of < and related operators on scalar datatypes");
! DATA(insert OID = 104 ( scalargtsel PGNSP PGUID 12 1 0 0 f f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ scalargtsel _null_ _null_ _null_ ));
DESCR("restriction selectivity of > and related operators on scalar datatypes");
! DATA(insert OID = 105 ( eqjoinsel PGNSP PGUID 12 1 0 0 f f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ eqjoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of = and related operators");
! DATA(insert OID = 106 ( neqjoinsel PGNSP PGUID 12 1 0 0 f f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ neqjoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of <> and related operators");
! DATA(insert OID = 107 ( scalarltjoinsel PGNSP PGUID 12 1 0 0 f f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ scalarltjoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of < and related operators on scalar datatypes");
! DATA(insert OID = 108 ( scalargtjoinsel PGNSP PGUID 12 1 0 0 f f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ scalargtjoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of > and related operators on scalar datatypes");
! DATA(insert OID = 109 ( unknownin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 705 "2275" _null_ _null_ _null_ _null_ unknownin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 110 ( unknownout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "705" _null_ _null_ _null_ _null_ unknownout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 111 ( numeric_fac PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "20" _null_ _null_ _null_ _null_ numeric_fac _null_ _null_ _null_ ));
DESCR("equivalent to factorial");
! DATA(insert OID = 115 ( box_above_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_above_eq _null_ _null_ _null_ ));
DESCR("is above (allows touching)");
! DATA(insert OID = 116 ( box_below_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_below_eq _null_ _null_ _null_ ));
DESCR("is below (allows touching)");
! DATA(insert OID = 117 ( point_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 600 "2275" _null_ _null_ _null_ _null_ point_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 118 ( point_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "600" _null_ _null_ _null_ _null_ point_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 119 ( lseg_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 601 "2275" _null_ _null_ _null_ _null_ lseg_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 120 ( lseg_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "601" _null_ _null_ _null_ _null_ lseg_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 121 ( path_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 602 "2275" _null_ _null_ _null_ _null_ path_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 122 ( path_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "602" _null_ _null_ _null_ _null_ path_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 123 ( box_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 603 "2275" _null_ _null_ _null_ _null_ box_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 124 ( box_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "603" _null_ _null_ _null_ _null_ box_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 125 ( box_overlap PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_overlap _null_ _null_ _null_ ));
DESCR("overlaps");
! DATA(insert OID = 126 ( box_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal by area");
! DATA(insert OID = 127 ( box_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_gt _null_ _null_ _null_ ));
DESCR("greater-than by area");
! DATA(insert OID = 128 ( box_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_eq _null_ _null_ _null_ ));
DESCR("equal by area");
! DATA(insert OID = 129 ( box_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_lt _null_ _null_ _null_ ));
DESCR("less-than by area");
! DATA(insert OID = 130 ( box_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal by area");
! DATA(insert OID = 131 ( point_above PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "600 600" _null_ _null_ _null_ _null_ point_above _null_ _null_ _null_ ));
DESCR("is above");
! DATA(insert OID = 132 ( point_left PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "600 600" _null_ _null_ _null_ _null_ point_left _null_ _null_ _null_ ));
DESCR("is left of");
! DATA(insert OID = 133 ( point_right PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "600 600" _null_ _null_ _null_ _null_ point_right _null_ _null_ _null_ ));
DESCR("is right of");
! DATA(insert OID = 134 ( point_below PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "600 600" _null_ _null_ _null_ _null_ point_below _null_ _null_ _null_ ));
DESCR("is below");
! DATA(insert OID = 135 ( point_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "600 600" _null_ _null_ _null_ _null_ point_eq _null_ _null_ _null_ ));
DESCR("same as?");
! DATA(insert OID = 136 ( on_pb PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "600 603" _null_ _null_ _null_ _null_ on_pb _null_ _null_ _null_ ));
DESCR("point inside box?");
! DATA(insert OID = 137 ( on_ppath PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "600 602" _null_ _null_ _null_ _null_ on_ppath _null_ _null_ _null_ ));
DESCR("point within closed path, or point on open path");
! DATA(insert OID = 138 ( box_center PGNSP PGUID 12 1 0 0 f f f t f i 1 0 600 "603" _null_ _null_ _null_ _null_ box_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 139 ( areasel PGNSP PGUID 12 1 0 0 f f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ areasel _null_ _null_ _null_ ));
DESCR("restriction selectivity for area-comparison operators");
! DATA(insert OID = 140 ( areajoinsel PGNSP PGUID 12 1 0 0 f f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ areajoinsel _null_ _null_ _null_ ));
DESCR("join selectivity for area-comparison operators");
! DATA(insert OID = 141 ( int4mul PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 144 ( int4ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "23 23" _null_ _null_ _null_ _null_ int4ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 145 ( int2ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "21 21" _null_ _null_ _null_ _null_ int2ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 146 ( int2gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "21 21" _null_ _null_ _null_ _null_ int2gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 147 ( int4gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "23 23" _null_ _null_ _null_ _null_ int4gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 148 ( int2le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "21 21" _null_ _null_ _null_ _null_ int2le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 149 ( int4le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "23 23" _null_ _null_ _null_ _null_ int4le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 150 ( int4ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "23 23" _null_ _null_ _null_ _null_ int4ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 151 ( int2ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "21 21" _null_ _null_ _null_ _null_ int2ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 152 ( int2mul PGNSP PGUID 12 1 0 0 f f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 153 ( int2div PGNSP PGUID 12 1 0 0 f f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 154 ( int4div PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 155 ( int2mod PGNSP PGUID 12 1 0 0 f f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2mod _null_ _null_ _null_ ));
DESCR("modulus");
! DATA(insert OID = 156 ( int4mod PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4mod _null_ _null_ _null_ ));
DESCR("modulus");
! DATA(insert OID = 157 ( textne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ textne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 158 ( int24eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "21 23" _null_ _null_ _null_ _null_ int24eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 159 ( int42eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "23 21" _null_ _null_ _null_ _null_ int42eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 160 ( int24lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "21 23" _null_ _null_ _null_ _null_ int24lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 161 ( int42lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "23 21" _null_ _null_ _null_ _null_ int42lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 162 ( int24gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "21 23" _null_ _null_ _null_ _null_ int24gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 163 ( int42gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "23 21" _null_ _null_ _null_ _null_ int42gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 164 ( int24ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "21 23" _null_ _null_ _null_ _null_ int24ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 165 ( int42ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "23 21" _null_ _null_ _null_ _null_ int42ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 166 ( int24le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "21 23" _null_ _null_ _null_ _null_ int24le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 167 ( int42le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "23 21" _null_ _null_ _null_ _null_ int42le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 168 ( int24ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "21 23" _null_ _null_ _null_ _null_ int24ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 169 ( int42ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "23 21" _null_ _null_ _null_ _null_ int42ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 170 ( int24mul PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "21 23" _null_ _null_ _null_ _null_ int24mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 171 ( int42mul PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "23 21" _null_ _null_ _null_ _null_ int42mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 172 ( int24div PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "21 23" _null_ _null_ _null_ _null_ int24div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 173 ( int42div PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "23 21" _null_ _null_ _null_ _null_ int42div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 176 ( int2pl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 177 ( int4pl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 178 ( int24pl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "21 23" _null_ _null_ _null_ _null_ int24pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 179 ( int42pl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "23 21" _null_ _null_ _null_ _null_ int42pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 180 ( int2mi PGNSP PGUID 12 1 0 0 f f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 181 ( int4mi PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 182 ( int24mi PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "21 23" _null_ _null_ _null_ _null_ int24mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 183 ( int42mi PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "23 21" _null_ _null_ _null_ _null_ int42mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 184 ( oideq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "26 26" _null_ _null_ _null_ _null_ oideq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 185 ( oidne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "26 26" _null_ _null_ _null_ _null_ oidne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 186 ( box_same PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_same _null_ _null_ _null_ ));
DESCR("same as?");
! DATA(insert OID = 187 ( box_contain PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_contain _null_ _null_ _null_ ));
DESCR("contains?");
! DATA(insert OID = 188 ( box_left PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_left _null_ _null_ _null_ ));
DESCR("is left of");
! DATA(insert OID = 189 ( box_overleft PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_overleft _null_ _null_ _null_ ));
DESCR("overlaps or is left of");
! DATA(insert OID = 190 ( box_overright PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_overright _null_ _null_ _null_ ));
DESCR("overlaps or is right of");
! DATA(insert OID = 191 ( box_right PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_right _null_ _null_ _null_ ));
DESCR("is right of");
! DATA(insert OID = 192 ( box_contained PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_contained _null_ _null_ _null_ ));
DESCR("is contained by?");
/* OIDS 200 - 299 */
! DATA(insert OID = 200 ( float4in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 700 "2275" _null_ _null_ _null_ _null_ float4in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 201 ( float4out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "700" _null_ _null_ _null_ _null_ float4out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 202 ( float4mul PGNSP PGUID 12 1 0 0 f f f t f i 2 0 700 "700 700" _null_ _null_ _null_ _null_ float4mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 203 ( float4div PGNSP PGUID 12 1 0 0 f f f t f i 2 0 700 "700 700" _null_ _null_ _null_ _null_ float4div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 204 ( float4pl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 700 "700 700" _null_ _null_ _null_ _null_ float4pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 205 ( float4mi PGNSP PGUID 12 1 0 0 f f f t f i 2 0 700 "700 700" _null_ _null_ _null_ _null_ float4mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 206 ( float4um PGNSP PGUID 12 1 0 0 f f f t f i 1 0 700 "700" _null_ _null_ _null_ _null_ float4um _null_ _null_ _null_ ));
DESCR("negate");
! DATA(insert OID = 207 ( float4abs PGNSP PGUID 12 1 0 0 f f f t f i 1 0 700 "700" _null_ _null_ _null_ _null_ float4abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 208 ( float4_accum PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1022 "1022 700" _null_ _null_ _null_ _null_ float4_accum _null_ _null_ _null_ ));
DESCR("aggregate transition function");
! DATA(insert OID = 209 ( float4larger PGNSP PGUID 12 1 0 0 f f f t f i 2 0 700 "700 700" _null_ _null_ _null_ _null_ float4larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 211 ( float4smaller PGNSP PGUID 12 1 0 0 f f f t f i 2 0 700 "700 700" _null_ _null_ _null_ _null_ float4smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 212 ( int4um PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "23" _null_ _null_ _null_ _null_ int4um _null_ _null_ _null_ ));
DESCR("negate");
! DATA(insert OID = 213 ( int2um PGNSP PGUID 12 1 0 0 f f f t f i 1 0 21 "21" _null_ _null_ _null_ _null_ int2um _null_ _null_ _null_ ));
DESCR("negate");
! DATA(insert OID = 214 ( float8in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "2275" _null_ _null_ _null_ _null_ float8in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 215 ( float8out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "701" _null_ _null_ _null_ _null_ float8out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 216 ( float8mul PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ float8mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 217 ( float8div PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ float8div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 218 ( float8pl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ float8pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 219 ( float8mi PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ float8mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 220 ( float8um PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ float8um _null_ _null_ _null_ ));
DESCR("negate");
! DATA(insert OID = 221 ( float8abs PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ float8abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 222 ( float8_accum PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1022 "1022 701" _null_ _null_ _null_ _null_ float8_accum _null_ _null_ _null_ ));
DESCR("aggregate transition function");
! DATA(insert OID = 223 ( float8larger PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ float8larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 224 ( float8smaller PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ float8smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 225 ( lseg_center PGNSP PGUID 12 1 0 0 f f f t f i 1 0 600 "601" _null_ _null_ _null_ _null_ lseg_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 226 ( path_center PGNSP PGUID 12 1 0 0 f f f t f i 1 0 600 "602" _null_ _null_ _null_ _null_ path_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 227 ( poly_center PGNSP PGUID 12 1 0 0 f f f t f i 1 0 600 "604" _null_ _null_ _null_ _null_ poly_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 228 ( dround PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dround _null_ _null_ _null_ ));
DESCR("round to nearest integer");
! DATA(insert OID = 229 ( dtrunc PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dtrunc _null_ _null_ _null_ ));
DESCR("truncate to integer");
! DATA(insert OID = 2308 ( ceil PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dceil _null_ _null_ _null_ ));
DESCR("smallest integer >= value");
! DATA(insert OID = 2320 ( ceiling PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dceil _null_ _null_ _null_ ));
DESCR("smallest integer >= value");
! DATA(insert OID = 2309 ( floor PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dfloor _null_ _null_ _null_ ));
DESCR("largest integer <= value");
! DATA(insert OID = 2310 ( sign PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dsign _null_ _null_ _null_ ));
DESCR("sign of value");
! DATA(insert OID = 230 ( dsqrt PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dsqrt _null_ _null_ _null_ ));
DESCR("square root");
! DATA(insert OID = 231 ( dcbrt PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dcbrt _null_ _null_ _null_ ));
DESCR("cube root");
! DATA(insert OID = 232 ( dpow PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ dpow _null_ _null_ _null_ ));
DESCR("exponentiation (x^y)");
! DATA(insert OID = 233 ( dexp PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dexp _null_ _null_ _null_ ));
DESCR("natural exponential (e^x)");
! DATA(insert OID = 234 ( dlog1 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dlog1 _null_ _null_ _null_ ));
DESCR("natural logarithm");
! DATA(insert OID = 235 ( float8 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "21" _null_ _null_ _null_ _null_ i2tod _null_ _null_ _null_ ));
DESCR("convert int2 to float8");
! DATA(insert OID = 236 ( float4 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 700 "21" _null_ _null_ _null_ _null_ i2tof _null_ _null_ _null_ ));
DESCR("convert int2 to float4");
! DATA(insert OID = 237 ( int2 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 21 "701" _null_ _null_ _null_ _null_ dtoi2 _null_ _null_ _null_ ));
DESCR("convert float8 to int2");
! DATA(insert OID = 238 ( int2 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 21 "700" _null_ _null_ _null_ _null_ ftoi2 _null_ _null_ _null_ ));
DESCR("convert float4 to int2");
! DATA(insert OID = 239 ( line_distance PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "628 628" _null_ _null_ _null_ _null_ line_distance _null_ _null_ _null_ ));
DESCR("distance between");
! DATA(insert OID = 240 ( abstimein PGNSP PGUID 12 1 0 0 f f f t f s 1 0 702 "2275" _null_ _null_ _null_ _null_ abstimein _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 241 ( abstimeout PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "702" _null_ _null_ _null_ _null_ abstimeout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 242 ( reltimein PGNSP PGUID 12 1 0 0 f f f t f s 1 0 703 "2275" _null_ _null_ _null_ _null_ reltimein _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 243 ( reltimeout PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "703" _null_ _null_ _null_ _null_ reltimeout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 244 ( timepl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 702 "702 703" _null_ _null_ _null_ _null_ timepl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 245 ( timemi PGNSP PGUID 12 1 0 0 f f f t f i 2 0 702 "702 703" _null_ _null_ _null_ _null_ timemi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 246 ( tintervalin PGNSP PGUID 12 1 0 0 f f f t f s 1 0 704 "2275" _null_ _null_ _null_ _null_ tintervalin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 247 ( tintervalout PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "704" _null_ _null_ _null_ _null_ tintervalout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 248 ( intinterval PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "702 704" _null_ _null_ _null_ _null_ intinterval _null_ _null_ _null_ ));
DESCR("abstime in tinterval");
! DATA(insert OID = 249 ( tintervalrel PGNSP PGUID 12 1 0 0 f f f t f i 1 0 703 "704" _null_ _null_ _null_ _null_ tintervalrel _null_ _null_ _null_ ));
DESCR("tinterval to reltime");
! DATA(insert OID = 250 ( timenow PGNSP PGUID 12 1 0 0 f f f t f s 0 0 702 "" _null_ _null_ _null_ _null_ timenow _null_ _null_ _null_ ));
DESCR("current date and time (abstime)");
! DATA(insert OID = 251 ( abstimeeq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "702 702" _null_ _null_ _null_ _null_ abstimeeq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 252 ( abstimene PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "702 702" _null_ _null_ _null_ _null_ abstimene _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 253 ( abstimelt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "702 702" _null_ _null_ _null_ _null_ abstimelt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 254 ( abstimegt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "702 702" _null_ _null_ _null_ _null_ abstimegt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 255 ( abstimele PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "702 702" _null_ _null_ _null_ _null_ abstimele _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 256 ( abstimege PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "702 702" _null_ _null_ _null_ _null_ abstimege _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 257 ( reltimeeq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "703 703" _null_ _null_ _null_ _null_ reltimeeq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 258 ( reltimene PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "703 703" _null_ _null_ _null_ _null_ reltimene _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 259 ( reltimelt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "703 703" _null_ _null_ _null_ _null_ reltimelt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 260 ( reltimegt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "703 703" _null_ _null_ _null_ _null_ reltimegt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 261 ( reltimele PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "703 703" _null_ _null_ _null_ _null_ reltimele _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 262 ( reltimege PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "703 703" _null_ _null_ _null_ _null_ reltimege _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 263 ( tintervalsame PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "704 704" _null_ _null_ _null_ _null_ tintervalsame _null_ _null_ _null_ ));
DESCR("same as?");
! DATA(insert OID = 264 ( tintervalct PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "704 704" _null_ _null_ _null_ _null_ tintervalct _null_ _null_ _null_ ));
DESCR("contains?");
! DATA(insert OID = 265 ( tintervalov PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "704 704" _null_ _null_ _null_ _null_ tintervalov _null_ _null_ _null_ ));
DESCR("overlaps");
! DATA(insert OID = 266 ( tintervalleneq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "704 703" _null_ _null_ _null_ _null_ tintervalleneq _null_ _null_ _null_ ));
DESCR("length equal");
! DATA(insert OID = 267 ( tintervallenne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "704 703" _null_ _null_ _null_ _null_ tintervallenne _null_ _null_ _null_ ));
DESCR("length not equal to");
! DATA(insert OID = 268 ( tintervallenlt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "704 703" _null_ _null_ _null_ _null_ tintervallenlt _null_ _null_ _null_ ));
DESCR("length less-than");
! DATA(insert OID = 269 ( tintervallengt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "704 703" _null_ _null_ _null_ _null_ tintervallengt _null_ _null_ _null_ ));
DESCR("length greater-than");
! DATA(insert OID = 270 ( tintervallenle PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "704 703" _null_ _null_ _null_ _null_ tintervallenle _null_ _null_ _null_ ));
DESCR("length less-than-or-equal");
! DATA(insert OID = 271 ( tintervallenge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "704 703" _null_ _null_ _null_ _null_ tintervallenge _null_ _null_ _null_ ));
DESCR("length greater-than-or-equal");
! DATA(insert OID = 272 ( tintervalstart PGNSP PGUID 12 1 0 0 f f f t f i 1 0 702 "704" _null_ _null_ _null_ _null_ tintervalstart _null_ _null_ _null_ ));
DESCR("start of interval");
! DATA(insert OID = 273 ( tintervalend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 702 "704" _null_ _null_ _null_ _null_ tintervalend _null_ _null_ _null_ ));
DESCR("end of interval");
! DATA(insert OID = 274 ( timeofday PGNSP PGUID 12 1 0 0 f f f t f v 0 0 25 "" _null_ _null_ _null_ _null_ timeofday _null_ _null_ _null_ ));
DESCR("current date and time - increments during transactions");
! DATA(insert OID = 275 ( isfinite PGNSP PGUID 12 1 0 0 f f f t f i 1 0 16 "702" _null_ _null_ _null_ _null_ abstime_finite _null_ _null_ _null_ ));
DESCR("finite abstime?");
! DATA(insert OID = 277 ( inter_sl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "601 628" _null_ _null_ _null_ _null_ inter_sl _null_ _null_ _null_ ));
DESCR("intersect?");
! DATA(insert OID = 278 ( inter_lb PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "628 603" _null_ _null_ _null_ _null_ inter_lb _null_ _null_ _null_ ));
DESCR("intersect?");
! DATA(insert OID = 279 ( float48mul PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "700 701" _null_ _null_ _null_ _null_ float48mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 280 ( float48div PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "700 701" _null_ _null_ _null_ _null_ float48div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 281 ( float48pl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "700 701" _null_ _null_ _null_ _null_ float48pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 282 ( float48mi PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "700 701" _null_ _null_ _null_ _null_ float48mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 283 ( float84mul PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "701 700" _null_ _null_ _null_ _null_ float84mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 284 ( float84div PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "701 700" _null_ _null_ _null_ _null_ float84div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 285 ( float84pl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "701 700" _null_ _null_ _null_ _null_ float84pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 286 ( float84mi PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "701 700" _null_ _null_ _null_ _null_ float84mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 287 ( float4eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "700 700" _null_ _null_ _null_ _null_ float4eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 288 ( float4ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "700 700" _null_ _null_ _null_ _null_ float4ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 289 ( float4lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "700 700" _null_ _null_ _null_ _null_ float4lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 290 ( float4le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "700 700" _null_ _null_ _null_ _null_ float4le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 291 ( float4gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "700 700" _null_ _null_ _null_ _null_ float4gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 292 ( float4ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "700 700" _null_ _null_ _null_ _null_ float4ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 293 ( float8eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "701 701" _null_ _null_ _null_ _null_ float8eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 294 ( float8ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "701 701" _null_ _null_ _null_ _null_ float8ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 295 ( float8lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "701 701" _null_ _null_ _null_ _null_ float8lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 296 ( float8le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "701 701" _null_ _null_ _null_ _null_ float8le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 297 ( float8gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "701 701" _null_ _null_ _null_ _null_ float8gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 298 ( float8ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "701 701" _null_ _null_ _null_ _null_ float8ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 299 ( float48eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "700 701" _null_ _null_ _null_ _null_ float48eq _null_ _null_ _null_ ));
DESCR("equal");
/* OIDS 300 - 399 */
! DATA(insert OID = 300 ( float48ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "700 701" _null_ _null_ _null_ _null_ float48ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 301 ( float48lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "700 701" _null_ _null_ _null_ _null_ float48lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 302 ( float48le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "700 701" _null_ _null_ _null_ _null_ float48le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 303 ( float48gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "700 701" _null_ _null_ _null_ _null_ float48gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 304 ( float48ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "700 701" _null_ _null_ _null_ _null_ float48ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 305 ( float84eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "701 700" _null_ _null_ _null_ _null_ float84eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 306 ( float84ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "701 700" _null_ _null_ _null_ _null_ float84ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 307 ( float84lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "701 700" _null_ _null_ _null_ _null_ float84lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 308 ( float84le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "701 700" _null_ _null_ _null_ _null_ float84le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 309 ( float84gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "701 700" _null_ _null_ _null_ _null_ float84gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 310 ( float84ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "701 700" _null_ _null_ _null_ _null_ float84ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 320 ( width_bucket PGNSP PGUID 12 1 0 0 f f f t f i 4 0 23 "701 701 701 23" _null_ _null_ _null_ _null_ width_bucket_float8 _null_ _null_ _null_ ));
DESCR("bucket number of operand in equidepth histogram");
! DATA(insert OID = 311 ( float8 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "700" _null_ _null_ _null_ _null_ ftod _null_ _null_ _null_ ));
DESCR("convert float4 to float8");
! DATA(insert OID = 312 ( float4 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 700 "701" _null_ _null_ _null_ _null_ dtof _null_ _null_ _null_ ));
DESCR("convert float8 to float4");
! DATA(insert OID = 313 ( int4 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "21" _null_ _null_ _null_ _null_ i2toi4 _null_ _null_ _null_ ));
DESCR("convert int2 to int4");
! DATA(insert OID = 314 ( int2 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 21 "23" _null_ _null_ _null_ _null_ i4toi2 _null_ _null_ _null_ ));
DESCR("convert int4 to int2");
! DATA(insert OID = 315 ( int2vectoreq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "22 22" _null_ _null_ _null_ _null_ int2vectoreq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 316 ( float8 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "23" _null_ _null_ _null_ _null_ i4tod _null_ _null_ _null_ ));
DESCR("convert int4 to float8");
! DATA(insert OID = 317 ( int4 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "701" _null_ _null_ _null_ _null_ dtoi4 _null_ _null_ _null_ ));
DESCR("convert float8 to int4");
! DATA(insert OID = 318 ( float4 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 700 "23" _null_ _null_ _null_ _null_ i4tof _null_ _null_ _null_ ));
DESCR("convert int4 to float4");
! DATA(insert OID = 319 ( int4 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "700" _null_ _null_ _null_ _null_ ftoi4 _null_ _null_ _null_ ));
DESCR("convert float4 to int4");
! DATA(insert OID = 330 ( btgettuple PGNSP PGUID 12 1 0 0 f f f t f v 2 0 16 "2281 2281" _null_ _null_ _null_ _null_ btgettuple _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 636 ( btgetbitmap PGNSP PGUID 12 1 0 0 f f f t f v 2 0 20 "2281 2281" _null_ _null_ _null_ _null_ btgetbitmap _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 331 ( btinsert PGNSP PGUID 12 1 0 0 f f f t f v 6 0 16 "2281 2281 2281 2281 2281 2281" _null_ _null_ _null_ _null_ btinsert _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 333 ( btbeginscan PGNSP PGUID 12 1 0 0 f f f t f v 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ btbeginscan _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 334 ( btrescan PGNSP PGUID 12 1 0 0 f f f t f v 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ btrescan _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 335 ( btendscan PGNSP PGUID 12 1 0 0 f f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ btendscan _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 336 ( btmarkpos PGNSP PGUID 12 1 0 0 f f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ btmarkpos _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 337 ( btrestrpos PGNSP PGUID 12 1 0 0 f f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ btrestrpos _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 338 ( btbuild PGNSP PGUID 12 1 0 0 f f f t f v 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ btbuild _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 332 ( btbulkdelete PGNSP PGUID 12 1 0 0 f f f t f v 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ btbulkdelete _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 972 ( btvacuumcleanup PGNSP PGUID 12 1 0 0 f f f t f v 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ btvacuumcleanup _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 1268 ( btcostestimate PGNSP PGUID 12 1 0 0 f f f t f v 8 0 2278 "2281 2281 2281 2281 2281 2281 2281 2281" _null_ _null_ _null_ _null_ btcostestimate _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 2785 ( btoptions PGNSP PGUID 12 1 0 0 f f f t f s 2 0 17 "1009 16" _null_ _null_ _null_ _null_ btoptions _null_ _null_ _null_ ));
DESCR("btree(internal)");
! DATA(insert OID = 339 ( poly_same PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_same _null_ _null_ _null_ ));
DESCR("same as?");
! DATA(insert OID = 340 ( poly_contain PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_contain _null_ _null_ _null_ ));
DESCR("contains?");
! DATA(insert OID = 341 ( poly_left PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_left _null_ _null_ _null_ ));
DESCR("is left of");
! DATA(insert OID = 342 ( poly_overleft PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_overleft _null_ _null_ _null_ ));
DESCR("overlaps or is left of");
! DATA(insert OID = 343 ( poly_overright PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_overright _null_ _null_ _null_ ));
DESCR("overlaps or is right of");
! DATA(insert OID = 344 ( poly_right PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_right _null_ _null_ _null_ ));
DESCR("is right of");
! DATA(insert OID = 345 ( poly_contained PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_contained _null_ _null_ _null_ ));
DESCR("is contained by?");
! DATA(insert OID = 346 ( poly_overlap PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_overlap _null_ _null_ _null_ ));
DESCR("overlaps");
! DATA(insert OID = 347 ( poly_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 604 "2275" _null_ _null_ _null_ _null_ poly_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 348 ( poly_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "604" _null_ _null_ _null_ _null_ poly_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 350 ( btint2cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "21 21" _null_ _null_ _null_ _null_ btint2cmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 351 ( btint4cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ btint4cmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 842 ( btint8cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "20 20" _null_ _null_ _null_ _null_ btint8cmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 354 ( btfloat4cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "700 700" _null_ _null_ _null_ _null_ btfloat4cmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 355 ( btfloat8cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "701 701" _null_ _null_ _null_ _null_ btfloat8cmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 356 ( btoidcmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "26 26" _null_ _null_ _null_ _null_ btoidcmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 404 ( btoidvectorcmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "30 30" _null_ _null_ _null_ _null_ btoidvectorcmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 357 ( btabstimecmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "702 702" _null_ _null_ _null_ _null_ btabstimecmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 358 ( btcharcmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "18 18" _null_ _null_ _null_ _null_ btcharcmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 359 ( btnamecmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "19 19" _null_ _null_ _null_ _null_ btnamecmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 360 ( bttextcmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "25 25" _null_ _null_ _null_ _null_ bttextcmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 377 ( cash_cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "790 790" _null_ _null_ _null_ _null_ cash_cmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 380 ( btreltimecmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "703 703" _null_ _null_ _null_ _null_ btreltimecmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 381 ( bttintervalcmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "704 704" _null_ _null_ _null_ _null_ bttintervalcmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 382 ( btarraycmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "2277 2277" _null_ _null_ _null_ _null_ btarraycmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 361 ( lseg_distance PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "601 601" _null_ _null_ _null_ _null_ lseg_distance _null_ _null_ _null_ ));
DESCR("distance between");
! DATA(insert OID = 362 ( lseg_interpt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 600 "601 601" _null_ _null_ _null_ _null_ lseg_interpt _null_ _null_ _null_ ));
DESCR("intersection point");
! DATA(insert OID = 363 ( dist_ps PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "600 601" _null_ _null_ _null_ _null_ dist_ps _null_ _null_ _null_ ));
DESCR("distance between");
! DATA(insert OID = 364 ( dist_pb PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "600 603" _null_ _null_ _null_ _null_ dist_pb _null_ _null_ _null_ ));
DESCR("distance between point and box");
! DATA(insert OID = 365 ( dist_sb PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "601 603" _null_ _null_ _null_ _null_ dist_sb _null_ _null_ _null_ ));
DESCR("distance between segment and box");
! DATA(insert OID = 366 ( close_ps PGNSP PGUID 12 1 0 0 f f f t f i 2 0 600 "600 601" _null_ _null_ _null_ _null_ close_ps _null_ _null_ _null_ ));
DESCR("closest point on line segment");
! DATA(insert OID = 367 ( close_pb PGNSP PGUID 12 1 0 0 f f f t f i 2 0 600 "600 603" _null_ _null_ _null_ _null_ close_pb _null_ _null_ _null_ ));
DESCR("closest point on box");
! DATA(insert OID = 368 ( close_sb PGNSP PGUID 12 1 0 0 f f f t f i 2 0 600 "601 603" _null_ _null_ _null_ _null_ close_sb _null_ _null_ _null_ ));
DESCR("closest point to line segment on box");
! DATA(insert OID = 369 ( on_ps PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "600 601" _null_ _null_ _null_ _null_ on_ps _null_ _null_ _null_ ));
DESCR("point contained in segment?");
! DATA(insert OID = 370 ( path_distance PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "602 602" _null_ _null_ _null_ _null_ path_distance _null_ _null_ _null_ ));
DESCR("distance between paths");
! DATA(insert OID = 371 ( dist_ppath PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "600 602" _null_ _null_ _null_ _null_ dist_ppath _null_ _null_ _null_ ));
DESCR("distance between point and path");
! DATA(insert OID = 372 ( on_sb PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "601 603" _null_ _null_ _null_ _null_ on_sb _null_ _null_ _null_ ));
DESCR("lseg contained in box?");
! DATA(insert OID = 373 ( inter_sb PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "601 603" _null_ _null_ _null_ _null_ inter_sb _null_ _null_ _null_ ));
DESCR("intersect?");
/* OIDS 400 - 499 */
! DATA(insert OID = 401 ( text PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "1042" _null_ _null_ _null_ _null_ rtrim1 _null_ _null_ _null_ ));
DESCR("convert char(n) to text");
! DATA(insert OID = 406 ( text PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "19" _null_ _null_ _null_ _null_ name_text _null_ _null_ _null_ ));
DESCR("convert name to text");
! DATA(insert OID = 407 ( name PGNSP PGUID 12 1 0 0 f f f t f i 1 0 19 "25" _null_ _null_ _null_ _null_ text_name _null_ _null_ _null_ ));
DESCR("convert text to name");
! DATA(insert OID = 408 ( bpchar PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1042 "19" _null_ _null_ _null_ _null_ name_bpchar _null_ _null_ _null_ ));
DESCR("convert name to char(n)");
! DATA(insert OID = 409 ( name PGNSP PGUID 12 1 0 0 f f f t f i 1 0 19 "1042" _null_ _null_ _null_ _null_ bpchar_name _null_ _null_ _null_ ));
DESCR("convert char(n) to name");
! DATA(insert OID = 440 ( hashgettuple PGNSP PGUID 12 1 0 0 f f f t f v 2 0 16 "2281 2281" _null_ _null_ _null_ _null_ hashgettuple _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 637 ( hashgetbitmap PGNSP PGUID 12 1 0 0 f f f t f v 2 0 20 "2281 2281" _null_ _null_ _null_ _null_ hashgetbitmap _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 441 ( hashinsert PGNSP PGUID 12 1 0 0 f f f t f v 6 0 16 "2281 2281 2281 2281 2281 2281" _null_ _null_ _null_ _null_ hashinsert _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 443 ( hashbeginscan PGNSP PGUID 12 1 0 0 f f f t f v 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ hashbeginscan _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 444 ( hashrescan PGNSP PGUID 12 1 0 0 f f f t f v 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ hashrescan _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 445 ( hashendscan PGNSP PGUID 12 1 0 0 f f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ hashendscan _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 446 ( hashmarkpos PGNSP PGUID 12 1 0 0 f f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ hashmarkpos _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 447 ( hashrestrpos PGNSP PGUID 12 1 0 0 f f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ hashrestrpos _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 448 ( hashbuild PGNSP PGUID 12 1 0 0 f f f t f v 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ hashbuild _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 442 ( hashbulkdelete PGNSP PGUID 12 1 0 0 f f f t f v 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ hashbulkdelete _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 425 ( hashvacuumcleanup PGNSP PGUID 12 1 0 0 f f f t f v 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ hashvacuumcleanup _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 438 ( hashcostestimate PGNSP PGUID 12 1 0 0 f f f t f v 8 0 2278 "2281 2281 2281 2281 2281 2281 2281 2281" _null_ _null_ _null_ _null_ hashcostestimate _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 2786 ( hashoptions PGNSP PGUID 12 1 0 0 f f f t f s 2 0 17 "1009 16" _null_ _null_ _null_ _null_ hashoptions _null_ _null_ _null_ ));
DESCR("hash(internal)");
! DATA(insert OID = 449 ( hashint2 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "21" _null_ _null_ _null_ _null_ hashint2 _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 450 ( hashint4 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "23" _null_ _null_ _null_ _null_ hashint4 _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 949 ( hashint8 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "20" _null_ _null_ _null_ _null_ hashint8 _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 451 ( hashfloat4 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "700" _null_ _null_ _null_ _null_ hashfloat4 _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 452 ( hashfloat8 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "701" _null_ _null_ _null_ _null_ hashfloat8 _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 453 ( hashoid PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "26" _null_ _null_ _null_ _null_ hashoid _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 454 ( hashchar PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "18" _null_ _null_ _null_ _null_ hashchar _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 455 ( hashname PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "19" _null_ _null_ _null_ _null_ hashname _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 400 ( hashtext PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "25" _null_ _null_ _null_ _null_ hashtext _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 456 ( hashvarlena PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "2281" _null_ _null_ _null_ _null_ hashvarlena _null_ _null_ _null_ ));
DESCR("hash any varlena type");
! DATA(insert OID = 457 ( hashoidvector PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "30" _null_ _null_ _null_ _null_ hashoidvector _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 329 ( hash_aclitem PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1033" _null_ _null_ _null_ _null_ hash_aclitem _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 398 ( hashint2vector PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "22" _null_ _null_ _null_ _null_ hashint2vector _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 399 ( hashmacaddr PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "829" _null_ _null_ _null_ _null_ hashmacaddr _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 422 ( hashinet PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "869" _null_ _null_ _null_ _null_ hashinet _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 432 ( hash_numeric PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1700" _null_ _null_ _null_ _null_ hash_numeric _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 458 ( text_larger PGNSP PGUID 12 1 0 0 f f f t f i 2 0 25 "25 25" _null_ _null_ _null_ _null_ text_larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 459 ( text_smaller PGNSP PGUID 12 1 0 0 f f f t f i 2 0 25 "25 25" _null_ _null_ _null_ _null_ text_smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 460 ( int8in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 20 "2275" _null_ _null_ _null_ _null_ int8in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 461 ( int8out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "20" _null_ _null_ _null_ _null_ int8out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 462 ( int8um PGNSP PGUID 12 1 0 0 f f f t f i 1 0 20 "20" _null_ _null_ _null_ _null_ int8um _null_ _null_ _null_ ));
DESCR("negate");
! DATA(insert OID = 463 ( int8pl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 464 ( int8mi PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 465 ( int8mul PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 466 ( int8div PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 467 ( int8eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "20 20" _null_ _null_ _null_ _null_ int8eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 468 ( int8ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "20 20" _null_ _null_ _null_ _null_ int8ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 469 ( int8lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "20 20" _null_ _null_ _null_ _null_ int8lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 470 ( int8gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "20 20" _null_ _null_ _null_ _null_ int8gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 471 ( int8le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "20 20" _null_ _null_ _null_ _null_ int8le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 472 ( int8ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "20 20" _null_ _null_ _null_ _null_ int8ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 474 ( int84eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "20 23" _null_ _null_ _null_ _null_ int84eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 475 ( int84ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "20 23" _null_ _null_ _null_ _null_ int84ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 476 ( int84lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "20 23" _null_ _null_ _null_ _null_ int84lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 477 ( int84gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "20 23" _null_ _null_ _null_ _null_ int84gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 478 ( int84le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "20 23" _null_ _null_ _null_ _null_ int84le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 479 ( int84ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "20 23" _null_ _null_ _null_ _null_ int84ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 480 ( int4 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "20" _null_ _null_ _null_ _null_ int84 _null_ _null_ _null_ ));
DESCR("convert int8 to int4");
! DATA(insert OID = 481 ( int8 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 20 "23" _null_ _null_ _null_ _null_ int48 _null_ _null_ _null_ ));
DESCR("convert int4 to int8");
! DATA(insert OID = 482 ( float8 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "20" _null_ _null_ _null_ _null_ i8tod _null_ _null_ _null_ ));
DESCR("convert int8 to float8");
! DATA(insert OID = 483 ( int8 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 20 "701" _null_ _null_ _null_ _null_ dtoi8 _null_ _null_ _null_ ));
DESCR("convert float8 to int8");
/* OIDS 500 - 599 */
/* OIDS 600 - 699 */
! DATA(insert OID = 652 ( float4 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 700 "20" _null_ _null_ _null_ _null_ i8tof _null_ _null_ _null_ ));
DESCR("convert int8 to float4");
! DATA(insert OID = 653 ( int8 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 20 "700" _null_ _null_ _null_ _null_ ftoi8 _null_ _null_ _null_ ));
DESCR("convert float4 to int8");
! DATA(insert OID = 714 ( int2 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 21 "20" _null_ _null_ _null_ _null_ int82 _null_ _null_ _null_ ));
DESCR("convert int8 to int2");
! DATA(insert OID = 754 ( int8 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 20 "21" _null_ _null_ _null_ _null_ int28 _null_ _null_ _null_ ));
DESCR("convert int2 to int8");
! DATA(insert OID = 655 ( namelt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "19 19" _null_ _null_ _null_ _null_ namelt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 656 ( namele PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "19 19" _null_ _null_ _null_ _null_ namele _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 657 ( namegt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "19 19" _null_ _null_ _null_ _null_ namegt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 658 ( namege PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "19 19" _null_ _null_ _null_ _null_ namege _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 659 ( namene PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "19 19" _null_ _null_ _null_ _null_ namene _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 668 ( bpchar PGNSP PGUID 12 1 0 0 f f f t f i 3 0 1042 "1042 23 16" _null_ _null_ _null_ _null_ bpchar _null_ _null_ _null_ ));
DESCR("adjust char() to typmod length");
! DATA(insert OID = 669 ( varchar PGNSP PGUID 12 1 0 0 f f f t f i 3 0 1043 "1043 23 16" _null_ _null_ _null_ _null_ varchar _null_ _null_ _null_ ));
DESCR("adjust varchar() to typmod length");
! DATA(insert OID = 676 ( mktinterval PGNSP PGUID 12 1 0 0 f f f t f i 2 0 704 "702 702" _null_ _null_ _null_ _null_ mktinterval _null_ _null_ _null_ ));
DESCR("convert to tinterval");
! DATA(insert OID = 619 ( oidvectorne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "30 30" _null_ _null_ _null_ _null_ oidvectorne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 677 ( oidvectorlt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "30 30" _null_ _null_ _null_ _null_ oidvectorlt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 678 ( oidvectorle PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "30 30" _null_ _null_ _null_ _null_ oidvectorle _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 679 ( oidvectoreq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "30 30" _null_ _null_ _null_ _null_ oidvectoreq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 680 ( oidvectorge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "30 30" _null_ _null_ _null_ _null_ oidvectorge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 681 ( oidvectorgt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "30 30" _null_ _null_ _null_ _null_ oidvectorgt _null_ _null_ _null_ ));
DESCR("greater-than");
/* OIDS 700 - 799 */
! DATA(insert OID = 710 ( getpgusername PGNSP PGUID 12 1 0 0 f f f t f s 0 0 19 "" _null_ _null_ _null_ _null_ current_user _null_ _null_ _null_ ));
DESCR("deprecated -- use current_user");
! DATA(insert OID = 716 ( oidlt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "26 26" _null_ _null_ _null_ _null_ oidlt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 717 ( oidle PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "26 26" _null_ _null_ _null_ _null_ oidle _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 720 ( octet_length PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "17" _null_ _null_ _null_ _null_ byteaoctetlen _null_ _null_ _null_ ));
DESCR("octet length");
! DATA(insert OID = 721 ( get_byte PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "17 23" _null_ _null_ _null_ _null_ byteaGetByte _null_ _null_ _null_ ));
DESCR("get byte");
! DATA(insert OID = 722 ( set_byte PGNSP PGUID 12 1 0 0 f f f t f i 3 0 17 "17 23 23" _null_ _null_ _null_ _null_ byteaSetByte _null_ _null_ _null_ ));
DESCR("set byte");
! DATA(insert OID = 723 ( get_bit PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "17 23" _null_ _null_ _null_ _null_ byteaGetBit _null_ _null_ _null_ ));
DESCR("get bit");
! DATA(insert OID = 724 ( set_bit PGNSP PGUID 12 1 0 0 f f f t f i 3 0 17 "17 23 23" _null_ _null_ _null_ _null_ byteaSetBit _null_ _null_ _null_ ));
DESCR("set bit");
! DATA(insert OID = 725 ( dist_pl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "600 628" _null_ _null_ _null_ _null_ dist_pl _null_ _null_ _null_ ));
DESCR("distance between point and line");
! DATA(insert OID = 726 ( dist_lb PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "628 603" _null_ _null_ _null_ _null_ dist_lb _null_ _null_ _null_ ));
DESCR("distance between line and box");
! DATA(insert OID = 727 ( dist_sl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "601 628" _null_ _null_ _null_ _null_ dist_sl _null_ _null_ _null_ ));
DESCR("distance between lseg and line");
! DATA(insert OID = 728 ( dist_cpoly PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "718 604" _null_ _null_ _null_ _null_ dist_cpoly _null_ _null_ _null_ ));
DESCR("distance between");
! DATA(insert OID = 729 ( poly_distance PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "604 604" _null_ _null_ _null_ _null_ poly_distance _null_ _null_ _null_ ));
DESCR("distance between");
! DATA(insert OID = 740 ( text_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ text_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 741 ( text_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ text_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 742 ( text_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ text_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 743 ( text_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ text_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 745 ( current_user PGNSP PGUID 12 1 0 0 f f f t f s 0 0 19 "" _null_ _null_ _null_ _null_ current_user _null_ _null_ _null_ ));
DESCR("current user name");
! DATA(insert OID = 746 ( session_user PGNSP PGUID 12 1 0 0 f f f t f s 0 0 19 "" _null_ _null_ _null_ _null_ session_user _null_ _null_ _null_ ));
DESCR("session user name");
! DATA(insert OID = 744 ( array_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ array_eq _null_ _null_ _null_ ));
DESCR("array equal");
! DATA(insert OID = 390 ( array_ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ array_ne _null_ _null_ _null_ ));
DESCR("array not equal");
! DATA(insert OID = 391 ( array_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ array_lt _null_ _null_ _null_ ));
DESCR("array less than");
! DATA(insert OID = 392 ( array_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ array_gt _null_ _null_ _null_ ));
DESCR("array greater than");
! DATA(insert OID = 393 ( array_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ array_le _null_ _null_ _null_ ));
DESCR("array less than or equal");
! DATA(insert OID = 396 ( array_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ array_ge _null_ _null_ _null_ ));
DESCR("array greater than or equal");
! DATA(insert OID = 748 ( array_ndims PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "2277" _null_ _null_ _null_ _null_ array_ndims _null_ _null_ _null_ ));
! DATA(insert OID = 747 ( array_dims PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "2277" _null_ _null_ _null_ _null_ array_dims _null_ _null_ _null_ ));
DESCR("array dimensions");
! DATA(insert OID = 750 ( array_in PGNSP PGUID 12 1 0 0 f f f t f s 3 0 2277 "2275 26 23" _null_ _null_ _null_ _null_ array_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 751 ( array_out PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "2277" _null_ _null_ _null_ _null_ array_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2091 ( array_lower PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "2277 23" _null_ _null_ _null_ _null_ array_lower _null_ _null_ _null_ ));
DESCR("array lower dimension");
! DATA(insert OID = 2092 ( array_upper PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "2277 23" _null_ _null_ _null_ _null_ array_upper _null_ _null_ _null_ ));
DESCR("array upper dimension");
! DATA(insert OID = 2176 ( array_length PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "2277 23" _null_ _null_ _null_ _null_ array_length _null_ _null_ _null_ ));
DESCR("array length");
! DATA(insert OID = 2179 ( cardinality PGNSP PGUID 14 1 0 0 f f f t f i 1 0 23 "2277" _null_ _null_ _null_ _null_ "select pg_catalog.array_length($1, 1)" _null_ _null_ _null_ ));
DESCR("array length");
! DATA(insert OID = 378 ( array_append PGNSP PGUID 12 1 0 0 f f f f f i 2 0 2277 "2277 2283" _null_ _null_ _null_ _null_ array_push _null_ _null_ _null_ ));
DESCR("append element onto end of array");
! DATA(insert OID = 379 ( array_prepend PGNSP PGUID 12 1 0 0 f f f f f i 2 0 2277 "2283 2277" _null_ _null_ _null_ _null_ array_push _null_ _null_ _null_ ));
DESCR("prepend element onto front of array");
! DATA(insert OID = 383 ( array_cat PGNSP PGUID 12 1 0 0 f f f f f i 2 0 2277 "2277 2277" _null_ _null_ _null_ _null_ array_cat _null_ _null_ _null_ ));
DESCR("concatenate two arrays");
! DATA(insert OID = 394 ( string_to_array PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1009 "25 25" _null_ _null_ _null_ _null_ text_to_array _null_ _null_ _null_ ));
DESCR("split delimited text into text[]");
! DATA(insert OID = 395 ( array_to_string PGNSP PGUID 12 1 0 0 f f f t f i 2 0 25 "2277 25" _null_ _null_ _null_ _null_ array_to_text _null_ _null_ _null_ ));
DESCR("concatenate array elements, using delimiter, into text");
! DATA(insert OID = 515 ( array_larger PGNSP PGUID 12 1 0 0 f f f t f i 2 0 2277 "2277 2277" _null_ _null_ _null_ _null_ array_larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 516 ( array_smaller PGNSP PGUID 12 1 0 0 f f f t f i 2 0 2277 "2277 2277" _null_ _null_ _null_ _null_ array_smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 1191 ( generate_subscripts PGNSP PGUID 12 1 1000 0 f f f t t i 3 0 23 "2277 23 16" _null_ _null_ _null_ _null_ generate_subscripts _null_ _null_ _null_ ));
DESCR("array subscripts generator");
! DATA(insert OID = 1192 ( generate_subscripts PGNSP PGUID 12 1 1000 0 f f f t t i 2 0 23 "2277 23" _null_ _null_ _null_ _null_ generate_subscripts_nodir _null_ _null_ _null_ ));
DESCR("array subscripts generator");
! DATA(insert OID = 1193 ( array_fill PGNSP PGUID 12 1 0 0 f f f f f i 2 0 2277 "2283 1007" _null_ _null_ _null_ _null_ array_fill _null_ _null_ _null_ ));
DESCR("array constructor with value");
! DATA(insert OID = 1286 ( array_fill PGNSP PGUID 12 1 0 0 f f f f f i 3 0 2277 "2283 1007 1007" _null_ _null_ _null_ _null_ array_fill_with_lower_bounds _null_ _null_ _null_ ));
DESCR("array constructor with value");
! DATA(insert OID = 2331 ( unnest PGNSP PGUID 12 1 100 0 f f f t t i 1 0 2283 "2277" _null_ _null_ _null_ _null_ array_unnest _null_ _null_ _null_ ));
DESCR("expand array to set of rows");
! DATA(insert OID = 2333 ( array_agg_transfn PGNSP PGUID 12 1 0 0 f f f f f i 2 0 2281 "2281 2283" _null_ _null_ _null_ _null_ array_agg_transfn _null_ _null_ _null_ ));
DESCR("array_agg transition function");
! DATA(insert OID = 2334 ( array_agg_finalfn PGNSP PGUID 12 1 0 0 f f f f f i 1 0 2277 "2281" _null_ _null_ _null_ _null_ array_agg_finalfn _null_ _null_ _null_ ));
DESCR("array_agg final function");
! DATA(insert OID = 2335 ( array_agg PGNSP PGUID 12 1 0 0 t f f f f i 1 0 2277 "2283" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("concatenate aggregate input into an array");
! DATA(insert OID = 760 ( smgrin PGNSP PGUID 12 1 0 0 f f f t f s 1 0 210 "2275" _null_ _null_ _null_ _null_ smgrin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 761 ( smgrout PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "210" _null_ _null_ _null_ _null_ smgrout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 762 ( smgreq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "210 210" _null_ _null_ _null_ _null_ smgreq _null_ _null_ _null_ ));
DESCR("storage manager");
! DATA(insert OID = 763 ( smgrne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "210 210" _null_ _null_ _null_ _null_ smgrne _null_ _null_ _null_ ));
DESCR("storage manager");
! DATA(insert OID = 764 ( lo_import PGNSP PGUID 12 1 0 0 f f f t f v 1 0 26 "25" _null_ _null_ _null_ _null_ lo_import _null_ _null_ _null_ ));
DESCR("large object import");
! DATA(insert OID = 767 ( lo_import PGNSP PGUID 12 1 0 0 f f f t f v 2 0 26 "25 26" _null_ _null_ _null_ _null_ lo_import_with_oid _null_ _null_ _null_ ));
DESCR("large object import");
! DATA(insert OID = 765 ( lo_export PGNSP PGUID 12 1 0 0 f f f t f v 2 0 23 "26 25" _null_ _null_ _null_ _null_ lo_export _null_ _null_ _null_ ));
DESCR("large object export");
! DATA(insert OID = 766 ( int4inc PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "23" _null_ _null_ _null_ _null_ int4inc _null_ _null_ _null_ ));
DESCR("increment");
! DATA(insert OID = 768 ( int4larger PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 769 ( int4smaller PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 770 ( int2larger PGNSP PGUID 12 1 0 0 f f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 771 ( int2smaller PGNSP PGUID 12 1 0 0 f f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 774 ( gistgettuple PGNSP PGUID 12 1 0 0 f f f t f v 2 0 16 "2281 2281" _null_ _null_ _null_ _null_ gistgettuple _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 638 ( gistgetbitmap PGNSP PGUID 12 1 0 0 f f f t f v 2 0 20 "2281 2281" _null_ _null_ _null_ _null_ gistgetbitmap _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 775 ( gistinsert PGNSP PGUID 12 1 0 0 f f f t f v 6 0 16 "2281 2281 2281 2281 2281 2281" _null_ _null_ _null_ _null_ gistinsert _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 777 ( gistbeginscan PGNSP PGUID 12 1 0 0 f f f t f v 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ gistbeginscan _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 778 ( gistrescan PGNSP PGUID 12 1 0 0 f f f t f v 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ gistrescan _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 779 ( gistendscan PGNSP PGUID 12 1 0 0 f f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ gistendscan _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 780 ( gistmarkpos PGNSP PGUID 12 1 0 0 f f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ gistmarkpos _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 781 ( gistrestrpos PGNSP PGUID 12 1 0 0 f f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ gistrestrpos _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 782 ( gistbuild PGNSP PGUID 12 1 0 0 f f f t f v 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ gistbuild _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 776 ( gistbulkdelete PGNSP PGUID 12 1 0 0 f f f t f v 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ gistbulkdelete _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 2561 ( gistvacuumcleanup PGNSP PGUID 12 1 0 0 f f f t f v 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ gistvacuumcleanup _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 772 ( gistcostestimate PGNSP PGUID 12 1 0 0 f f f t f v 8 0 2278 "2281 2281 2281 2281 2281 2281 2281 2281" _null_ _null_ _null_ _null_ gistcostestimate _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 2787 ( gistoptions PGNSP PGUID 12 1 0 0 f f f t f s 2 0 17 "1009 16" _null_ _null_ _null_ _null_ gistoptions _null_ _null_ _null_ ));
DESCR("gist(internal)");
! DATA(insert OID = 784 ( tintervaleq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "704 704" _null_ _null_ _null_ _null_ tintervaleq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 785 ( tintervalne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "704 704" _null_ _null_ _null_ _null_ tintervalne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 786 ( tintervallt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "704 704" _null_ _null_ _null_ _null_ tintervallt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 787 ( tintervalgt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "704 704" _null_ _null_ _null_ _null_ tintervalgt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 788 ( tintervalle PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "704 704" _null_ _null_ _null_ _null_ tintervalle _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 789 ( tintervalge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "704 704" _null_ _null_ _null_ _null_ tintervalge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
/* OIDS 800 - 899 */
! DATA(insert OID = 846 ( cash_mul_flt4 PGNSP PGUID 12 1 0 0 f f f t f i 2 0 790 "790 700" _null_ _null_ _null_ _null_ cash_mul_flt4 _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 847 ( cash_div_flt4 PGNSP PGUID 12 1 0 0 f f f t f i 2 0 790 "790 700" _null_ _null_ _null_ _null_ cash_div_flt4 _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 848 ( flt4_mul_cash PGNSP PGUID 12 1 0 0 f f f t f i 2 0 790 "700 790" _null_ _null_ _null_ _null_ flt4_mul_cash _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 849 ( position PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "25 25" _null_ _null_ _null_ _null_ textpos _null_ _null_ _null_ ));
DESCR("return position of substring");
! DATA(insert OID = 850 ( textlike PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ textlike _null_ _null_ _null_ ));
DESCR("matches LIKE expression");
! DATA(insert OID = 851 ( textnlike PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ textnlike _null_ _null_ _null_ ));
DESCR("does not match LIKE expression");
! DATA(insert OID = 852 ( int48eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "23 20" _null_ _null_ _null_ _null_ int48eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 853 ( int48ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "23 20" _null_ _null_ _null_ _null_ int48ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 854 ( int48lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "23 20" _null_ _null_ _null_ _null_ int48lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 855 ( int48gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "23 20" _null_ _null_ _null_ _null_ int48gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 856 ( int48le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "23 20" _null_ _null_ _null_ _null_ int48le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 857 ( int48ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "23 20" _null_ _null_ _null_ _null_ int48ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 858 ( namelike PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "19 25" _null_ _null_ _null_ _null_ namelike _null_ _null_ _null_ ));
DESCR("matches LIKE expression");
! DATA(insert OID = 859 ( namenlike PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "19 25" _null_ _null_ _null_ _null_ namenlike _null_ _null_ _null_ ));
DESCR("does not match LIKE expression");
! DATA(insert OID = 860 ( bpchar PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1042 "18" _null_ _null_ _null_ _null_ char_bpchar _null_ _null_ _null_ ));
DESCR("convert char to char()");
! DATA(insert OID = 861 ( current_database PGNSP PGUID 12 1 0 0 f f f t f s 0 0 19 "" _null_ _null_ _null_ _null_ current_database _null_ _null_ _null_ ));
DESCR("returns the current database");
! DATA(insert OID = 817 ( current_query PGNSP PGUID 12 1 0 0 f f f f f v 0 0 25 "" _null_ _null_ _null_ _null_ current_query _null_ _null_ _null_ ));
DESCR("returns the currently executing query");
! DATA(insert OID = 862 ( int4_mul_cash PGNSP PGUID 12 1 0 0 f f f t f i 2 0 790 "23 790" _null_ _null_ _null_ _null_ int4_mul_cash _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 863 ( int2_mul_cash PGNSP PGUID 12 1 0 0 f f f t f i 2 0 790 "21 790" _null_ _null_ _null_ _null_ int2_mul_cash _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 864 ( cash_mul_int4 PGNSP PGUID 12 1 0 0 f f f t f i 2 0 790 "790 23" _null_ _null_ _null_ _null_ cash_mul_int4 _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 865 ( cash_div_int4 PGNSP PGUID 12 1 0 0 f f f t f i 2 0 790 "790 23" _null_ _null_ _null_ _null_ cash_div_int4 _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 866 ( cash_mul_int2 PGNSP PGUID 12 1 0 0 f f f t f i 2 0 790 "790 21" _null_ _null_ _null_ _null_ cash_mul_int2 _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 867 ( cash_div_int2 PGNSP PGUID 12 1 0 0 f f f t f i 2 0 790 "790 21" _null_ _null_ _null_ _null_ cash_div_int2 _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 886 ( cash_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 790 "2275" _null_ _null_ _null_ _null_ cash_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 887 ( cash_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "790" _null_ _null_ _null_ _null_ cash_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 888 ( cash_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "790 790" _null_ _null_ _null_ _null_ cash_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 889 ( cash_ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "790 790" _null_ _null_ _null_ _null_ cash_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 890 ( cash_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "790 790" _null_ _null_ _null_ _null_ cash_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 891 ( cash_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "790 790" _null_ _null_ _null_ _null_ cash_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 892 ( cash_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "790 790" _null_ _null_ _null_ _null_ cash_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 893 ( cash_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "790 790" _null_ _null_ _null_ _null_ cash_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 894 ( cash_pl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 790 "790 790" _null_ _null_ _null_ _null_ cash_pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 895 ( cash_mi PGNSP PGUID 12 1 0 0 f f f t f i 2 0 790 "790 790" _null_ _null_ _null_ _null_ cash_mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 896 ( cash_mul_flt8 PGNSP PGUID 12 1 0 0 f f f t f i 2 0 790 "790 701" _null_ _null_ _null_ _null_ cash_mul_flt8 _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 897 ( cash_div_flt8 PGNSP PGUID 12 1 0 0 f f f t f i 2 0 790 "790 701" _null_ _null_ _null_ _null_ cash_div_flt8 _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 898 ( cashlarger PGNSP PGUID 12 1 0 0 f f f t f i 2 0 790 "790 790" _null_ _null_ _null_ _null_ cashlarger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 899 ( cashsmaller PGNSP PGUID 12 1 0 0 f f f t f i 2 0 790 "790 790" _null_ _null_ _null_ _null_ cashsmaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 919 ( flt8_mul_cash PGNSP PGUID 12 1 0 0 f f f t f i 2 0 790 "701 790" _null_ _null_ _null_ _null_ flt8_mul_cash _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 935 ( cash_words PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "790" _null_ _null_ _null_ _null_ cash_words _null_ _null_ _null_ ));
DESCR("output amount as words");
/* OIDS 900 - 999 */
! DATA(insert OID = 940 ( mod PGNSP PGUID 12 1 0 0 f f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2mod _null_ _null_ _null_ ));
DESCR("modulus");
! DATA(insert OID = 941 ( mod PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4mod _null_ _null_ _null_ ));
DESCR("modulus");
! DATA(insert OID = 945 ( int8mod PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8mod _null_ _null_ _null_ ));
DESCR("modulus");
! DATA(insert OID = 947 ( mod PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8mod _null_ _null_ _null_ ));
DESCR("modulus");
! DATA(insert OID = 944 ( char PGNSP PGUID 12 1 0 0 f f f t f i 1 0 18 "25" _null_ _null_ _null_ _null_ text_char _null_ _null_ _null_ ));
DESCR("convert text to char");
! DATA(insert OID = 946 ( text PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "18" _null_ _null_ _null_ _null_ char_text _null_ _null_ _null_ ));
DESCR("convert char to text");
! DATA(insert OID = 952 ( lo_open PGNSP PGUID 12 1 0 0 f f f t f v 2 0 23 "26 23" _null_ _null_ _null_ _null_ lo_open _null_ _null_ _null_ ));
DESCR("large object open");
! DATA(insert OID = 953 ( lo_close PGNSP PGUID 12 1 0 0 f f f t f v 1 0 23 "23" _null_ _null_ _null_ _null_ lo_close _null_ _null_ _null_ ));
DESCR("large object close");
! DATA(insert OID = 954 ( loread PGNSP PGUID 12 1 0 0 f f f t f v 2 0 17 "23 23" _null_ _null_ _null_ _null_ loread _null_ _null_ _null_ ));
DESCR("large object read");
! DATA(insert OID = 955 ( lowrite PGNSP PGUID 12 1 0 0 f f f t f v 2 0 23 "23 17" _null_ _null_ _null_ _null_ lowrite _null_ _null_ _null_ ));
DESCR("large object write");
! DATA(insert OID = 956 ( lo_lseek PGNSP PGUID 12 1 0 0 f f f t f v 3 0 23 "23 23 23" _null_ _null_ _null_ _null_ lo_lseek _null_ _null_ _null_ ));
DESCR("large object seek");
! DATA(insert OID = 957 ( lo_creat PGNSP PGUID 12 1 0 0 f f f t f v 1 0 26 "23" _null_ _null_ _null_ _null_ lo_creat _null_ _null_ _null_ ));
DESCR("large object create");
! DATA(insert OID = 715 ( lo_create PGNSP PGUID 12 1 0 0 f f f t f v 1 0 26 "26" _null_ _null_ _null_ _null_ lo_create _null_ _null_ _null_ ));
DESCR("large object create");
! DATA(insert OID = 958 ( lo_tell PGNSP PGUID 12 1 0 0 f f f t f v 1 0 23 "23" _null_ _null_ _null_ _null_ lo_tell _null_ _null_ _null_ ));
DESCR("large object position");
! DATA(insert OID = 1004 ( lo_truncate PGNSP PGUID 12 1 0 0 f f f t f v 2 0 23 "23 23" _null_ _null_ _null_ _null_ lo_truncate _null_ _null_ _null_ ));
DESCR("truncate large object");
! DATA(insert OID = 959 ( on_pl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "600 628" _null_ _null_ _null_ _null_ on_pl _null_ _null_ _null_ ));
DESCR("point on line?");
! DATA(insert OID = 960 ( on_sl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "601 628" _null_ _null_ _null_ _null_ on_sl _null_ _null_ _null_ ));
DESCR("lseg on line?");
! DATA(insert OID = 961 ( close_pl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 600 "600 628" _null_ _null_ _null_ _null_ close_pl _null_ _null_ _null_ ));
DESCR("closest point on line");
! DATA(insert OID = 962 ( close_sl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 600 "601 628" _null_ _null_ _null_ _null_ close_sl _null_ _null_ _null_ ));
DESCR("closest point to line segment on line");
! DATA(insert OID = 963 ( close_lb PGNSP PGUID 12 1 0 0 f f f t f i 2 0 600 "628 603" _null_ _null_ _null_ _null_ close_lb _null_ _null_ _null_ ));
DESCR("closest point to line on box");
! DATA(insert OID = 964 ( lo_unlink PGNSP PGUID 12 1 0 0 f f f t f v 1 0 23 "26" _null_ _null_ _null_ _null_ lo_unlink _null_ _null_ _null_ ));
DESCR("large object unlink(delete)");
! DATA(insert OID = 973 ( path_inter PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "602 602" _null_ _null_ _null_ _null_ path_inter _null_ _null_ _null_ ));
DESCR("intersect?");
! DATA(insert OID = 975 ( area PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "603" _null_ _null_ _null_ _null_ box_area _null_ _null_ _null_ ));
DESCR("box area");
! DATA(insert OID = 976 ( width PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "603" _null_ _null_ _null_ _null_ box_width _null_ _null_ _null_ ));
DESCR("box width");
! DATA(insert OID = 977 ( height PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "603" _null_ _null_ _null_ _null_ box_height _null_ _null_ _null_ ));
DESCR("box height");
! DATA(insert OID = 978 ( box_distance PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "603 603" _null_ _null_ _null_ _null_ box_distance _null_ _null_ _null_ ));
DESCR("distance between boxes");
! DATA(insert OID = 979 ( area PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "602" _null_ _null_ _null_ _null_ path_area _null_ _null_ _null_ ));
DESCR("area of a closed path");
! DATA(insert OID = 980 ( box_intersect PGNSP PGUID 12 1 0 0 f f f t f i 2 0 603 "603 603" _null_ _null_ _null_ _null_ box_intersect _null_ _null_ _null_ ));
DESCR("box intersection (another box)");
! DATA(insert OID = 981 ( diagonal PGNSP PGUID 12 1 0 0 f f f t f i 1 0 601 "603" _null_ _null_ _null_ _null_ box_diagonal _null_ _null_ _null_ ));
DESCR("box diagonal");
! DATA(insert OID = 982 ( path_n_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "602 602" _null_ _null_ _null_ _null_ path_n_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 983 ( path_n_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "602 602" _null_ _null_ _null_ _null_ path_n_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 984 ( path_n_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "602 602" _null_ _null_ _null_ _null_ path_n_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 985 ( path_n_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "602 602" _null_ _null_ _null_ _null_ path_n_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 986 ( path_n_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "602 602" _null_ _null_ _null_ _null_ path_n_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 987 ( path_length PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "602" _null_ _null_ _null_ _null_ path_length _null_ _null_ _null_ ));
DESCR("sum of path segment lengths");
! DATA(insert OID = 988 ( point_ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "600 600" _null_ _null_ _null_ _null_ point_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 989 ( point_vert PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "600 600" _null_ _null_ _null_ _null_ point_vert _null_ _null_ _null_ ));
DESCR("vertically aligned?");
! DATA(insert OID = 990 ( point_horiz PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "600 600" _null_ _null_ _null_ _null_ point_horiz _null_ _null_ _null_ ));
DESCR("horizontally aligned?");
! DATA(insert OID = 991 ( point_distance PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "600 600" _null_ _null_ _null_ _null_ point_distance _null_ _null_ _null_ ));
DESCR("distance between");
! DATA(insert OID = 992 ( slope PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "600 600" _null_ _null_ _null_ _null_ point_slope _null_ _null_ _null_ ));
DESCR("slope between points");
! DATA(insert OID = 993 ( lseg PGNSP PGUID 12 1 0 0 f f f t f i 2 0 601 "600 600" _null_ _null_ _null_ _null_ lseg_construct _null_ _null_ _null_ ));
DESCR("convert points to line segment");
! DATA(insert OID = 994 ( lseg_intersect PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_intersect _null_ _null_ _null_ ));
DESCR("intersect?");
! DATA(insert OID = 995 ( lseg_parallel PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_parallel _null_ _null_ _null_ ));
DESCR("parallel?");
! DATA(insert OID = 996 ( lseg_perp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_perp _null_ _null_ _null_ ));
DESCR("perpendicular?");
! DATA(insert OID = 997 ( lseg_vertical PGNSP PGUID 12 1 0 0 f f f t f i 1 0 16 "601" _null_ _null_ _null_ _null_ lseg_vertical _null_ _null_ _null_ ));
DESCR("vertical?");
! DATA(insert OID = 998 ( lseg_horizontal PGNSP PGUID 12 1 0 0 f f f t f i 1 0 16 "601" _null_ _null_ _null_ _null_ lseg_horizontal _null_ _null_ _null_ ));
DESCR("horizontal?");
! DATA(insert OID = 999 ( lseg_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_eq _null_ _null_ _null_ ));
DESCR("equal");
/* OIDS 1000 - 1999 */
! DATA(insert OID = 1026 ( timezone PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1114 "1186 1184" _null_ _null_ _null_ _null_ timestamptz_izone _null_ _null_ _null_ ));
DESCR("adjust timestamp to new time zone");
! DATA(insert OID = 1031 ( aclitemin PGNSP PGUID 12 1 0 0 f f f t f s 1 0 1033 "2275" _null_ _null_ _null_ _null_ aclitemin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1032 ( aclitemout PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "1033" _null_ _null_ _null_ _null_ aclitemout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1035 ( aclinsert PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1034 "1034 1033" _null_ _null_ _null_ _null_ aclinsert _null_ _null_ _null_ ));
DESCR("add/update ACL item");
! DATA(insert OID = 1036 ( aclremove PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1034 "1034 1033" _null_ _null_ _null_ _null_ aclremove _null_ _null_ _null_ ));
DESCR("remove ACL item");
! DATA(insert OID = 1037 ( aclcontains PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1034 1033" _null_ _null_ _null_ _null_ aclcontains _null_ _null_ _null_ ));
DESCR("ACL contains item?");
! DATA(insert OID = 1062 ( aclitemeq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1033 1033" _null_ _null_ _null_ _null_ aclitem_eq _null_ _null_ _null_ ));
DESCR("equality operator for ACL items");
! DATA(insert OID = 1365 ( makeaclitem PGNSP PGUID 12 1 0 0 f f f t f i 4 0 1033 "26 26 25 16" _null_ _null_ _null_ _null_ makeaclitem _null_ _null_ _null_ ));
DESCR("make ACL item");
! DATA(insert OID = 1044 ( bpcharin PGNSP PGUID 12 1 0 0 f f f t f i 3 0 1042 "2275 26 23" _null_ _null_ _null_ _null_ bpcharin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1045 ( bpcharout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "1042" _null_ _null_ _null_ _null_ bpcharout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2913 ( bpchartypmodin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1263" _null_ _null_ _null_ _null_ bpchartypmodin _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 2914 ( bpchartypmodout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ bpchartypmodout _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 1046 ( varcharin PGNSP PGUID 12 1 0 0 f f f t f i 3 0 1043 "2275 26 23" _null_ _null_ _null_ _null_ varcharin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1047 ( varcharout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "1043" _null_ _null_ _null_ _null_ varcharout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2915 ( varchartypmodin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1263" _null_ _null_ _null_ _null_ varchartypmodin _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 2916 ( varchartypmodout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ varchartypmodout _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 1048 ( bpchareq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ bpchareq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1049 ( bpcharlt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ bpcharlt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 1050 ( bpcharle PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ bpcharle _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1051 ( bpchargt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ bpchargt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1052 ( bpcharge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ bpcharge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1053 ( bpcharne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ bpcharne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1063 ( bpchar_larger PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1042 "1042 1042" _null_ _null_ _null_ _null_ bpchar_larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 1064 ( bpchar_smaller PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1042 "1042 1042" _null_ _null_ _null_ _null_ bpchar_smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 1078 ( bpcharcmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "1042 1042" _null_ _null_ _null_ _null_ bpcharcmp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 1080 ( hashbpchar PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1042" _null_ _null_ _null_ _null_ hashbpchar _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 1081 ( format_type PGNSP PGUID 12 1 0 0 f f f f f s 2 0 25 "26 23" _null_ _null_ _null_ _null_ format_type _null_ _null_ _null_ ));
DESCR("format a type oid and atttypmod to canonical SQL");
! DATA(insert OID = 1084 ( date_in PGNSP PGUID 12 1 0 0 f f f t f s 1 0 1082 "2275" _null_ _null_ _null_ _null_ date_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1085 ( date_out PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "1082" _null_ _null_ _null_ _null_ date_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1086 ( date_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1082 1082" _null_ _null_ _null_ _null_ date_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1087 ( date_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1082 1082" _null_ _null_ _null_ _null_ date_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 1088 ( date_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1082 1082" _null_ _null_ _null_ _null_ date_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1089 ( date_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1082 1082" _null_ _null_ _null_ _null_ date_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1090 ( date_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1082 1082" _null_ _null_ _null_ _null_ date_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1091 ( date_ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1082 1082" _null_ _null_ _null_ _null_ date_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1092 ( date_cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "1082 1082" _null_ _null_ _null_ _null_ date_cmp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
/* OIDS 1100 - 1199 */
! DATA(insert OID = 1102 ( time_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1083 1083" _null_ _null_ _null_ _null_ time_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 1103 ( time_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1083 1083" _null_ _null_ _null_ _null_ time_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1104 ( time_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1083 1083" _null_ _null_ _null_ _null_ time_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1105 ( time_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1083 1083" _null_ _null_ _null_ _null_ time_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1106 ( time_ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1083 1083" _null_ _null_ _null_ _null_ time_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1107 ( time_cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "1083 1083" _null_ _null_ _null_ _null_ time_cmp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 1138 ( date_larger PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1082 "1082 1082" _null_ _null_ _null_ _null_ date_larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 1139 ( date_smaller PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1082 "1082 1082" _null_ _null_ _null_ _null_ date_smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 1140 ( date_mi PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "1082 1082" _null_ _null_ _null_ _null_ date_mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 1141 ( date_pli PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1082 "1082 23" _null_ _null_ _null_ _null_ date_pli _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 1142 ( date_mii PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1082 "1082 23" _null_ _null_ _null_ _null_ date_mii _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 1143 ( time_in PGNSP PGUID 12 1 0 0 f f f t f s 3 0 1083 "2275 26 23" _null_ _null_ _null_ _null_ time_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1144 ( time_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "1083" _null_ _null_ _null_ _null_ time_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2909 ( timetypmodin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1263" _null_ _null_ _null_ _null_ timetypmodin _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 2910 ( timetypmodout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ timetypmodout _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 1145 ( time_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1083 1083" _null_ _null_ _null_ _null_ time_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1146 ( circle_add_pt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 718 "718 600" _null_ _null_ _null_ _null_ circle_add_pt _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 1147 ( circle_sub_pt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 718 "718 600" _null_ _null_ _null_ _null_ circle_sub_pt _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 1148 ( circle_mul_pt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 718 "718 600" _null_ _null_ _null_ _null_ circle_mul_pt _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 1149 ( circle_div_pt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 718 "718 600" _null_ _null_ _null_ _null_ circle_div_pt _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 1150 ( timestamptz_in PGNSP PGUID 12 1 0 0 f f f t f s 3 0 1184 "2275 26 23" _null_ _null_ _null_ _null_ timestamptz_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1151 ( timestamptz_out PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "1184" _null_ _null_ _null_ _null_ timestamptz_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2907 ( timestamptztypmodin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1263" _null_ _null_ _null_ _null_ timestamptztypmodin _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 2908 ( timestamptztypmodout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ timestamptztypmodout _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 1152 ( timestamptz_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1184 1184" _null_ _null_ _null_ _null_ timestamp_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1153 ( timestamptz_ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1184 1184" _null_ _null_ _null_ _null_ timestamp_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1154 ( timestamptz_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1184 1184" _null_ _null_ _null_ _null_ timestamp_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 1155 ( timestamptz_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1184 1184" _null_ _null_ _null_ _null_ timestamp_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1156 ( timestamptz_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1184 1184" _null_ _null_ _null_ _null_ timestamp_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1157 ( timestamptz_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1184 1184" _null_ _null_ _null_ _null_ timestamp_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1158 ( to_timestamp PGNSP PGUID 14 1 0 0 f f f t f i 1 0 1184 "701" _null_ _null_ _null_ _null_ "select (''epoch''::pg_catalog.timestamptz + $1 * ''1 second''::pg_catalog.interval)" _null_ _null_ _null_ ));
DESCR("convert UNIX epoch to timestamptz");
! DATA(insert OID = 1159 ( timezone PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1114 "25 1184" _null_ _null_ _null_ _null_ timestamptz_zone _null_ _null_ _null_ ));
DESCR("adjust timestamp to new time zone");
! DATA(insert OID = 1160 ( interval_in PGNSP PGUID 12 1 0 0 f f f t f s 3 0 1186 "2275 26 23" _null_ _null_ _null_ _null_ interval_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1161 ( interval_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "1186" _null_ _null_ _null_ _null_ interval_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2903 ( intervaltypmodin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1263" _null_ _null_ _null_ _null_ intervaltypmodin _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 2904 ( intervaltypmodout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ intervaltypmodout _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 1162 ( interval_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1186 1186" _null_ _null_ _null_ _null_ interval_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1163 ( interval_ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1186 1186" _null_ _null_ _null_ _null_ interval_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1164 ( interval_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1186 1186" _null_ _null_ _null_ _null_ interval_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 1165 ( interval_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1186 1186" _null_ _null_ _null_ _null_ interval_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1166 ( interval_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1186 1186" _null_ _null_ _null_ _null_ interval_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1167 ( interval_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1186 1186" _null_ _null_ _null_ _null_ interval_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1168 ( interval_um PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1186 "1186" _null_ _null_ _null_ _null_ interval_um _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 1169 ( interval_pl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1186 "1186 1186" _null_ _null_ _null_ _null_ interval_pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 1170 ( interval_mi PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1186 "1186 1186" _null_ _null_ _null_ _null_ interval_mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 1171 ( date_part PGNSP PGUID 12 1 0 0 f f f t f s 2 0 701 "25 1184" _null_ _null_ _null_ _null_ timestamptz_part _null_ _null_ _null_ ));
DESCR("extract field from timestamp with time zone");
! DATA(insert OID = 1172 ( date_part PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "25 1186" _null_ _null_ _null_ _null_ interval_part _null_ _null_ _null_ ));
DESCR("extract field from interval");
! DATA(insert OID = 1173 ( timestamptz PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1184 "702" _null_ _null_ _null_ _null_ abstime_timestamptz _null_ _null_ _null_ ));
DESCR("convert abstime to timestamp with time zone");
! DATA(insert OID = 1174 ( timestamptz PGNSP PGUID 12 1 0 0 f f f t f s 1 0 1184 "1082" _null_ _null_ _null_ _null_ date_timestamptz _null_ _null_ _null_ ));
DESCR("convert date to timestamp with time zone");
! DATA(insert OID = 2711 ( justify_interval PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1186 "1186" _null_ _null_ _null_ _null_ interval_justify_interval _null_ _null_ _null_ ));
DESCR("promote groups of 24 hours to numbers of days and promote groups of 30 days to numbers of months");
! DATA(insert OID = 1175 ( justify_hours PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1186 "1186" _null_ _null_ _null_ _null_ interval_justify_hours _null_ _null_ _null_ ));
DESCR("promote groups of 24 hours to numbers of days");
! DATA(insert OID = 1295 ( justify_days PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1186 "1186" _null_ _null_ _null_ _null_ interval_justify_days _null_ _null_ _null_ ));
DESCR("promote groups of 30 days to numbers of months");
! DATA(insert OID = 1176 ( timestamptz PGNSP PGUID 14 1 0 0 f f f t f s 2 0 1184 "1082 1083" _null_ _null_ _null_ _null_ "select cast(($1 + $2) as timestamp with time zone)" _null_ _null_ _null_ ));
DESCR("convert date and time to timestamp with time zone");
! DATA(insert OID = 1177 ( interval PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1186 "703" _null_ _null_ _null_ _null_ reltime_interval _null_ _null_ _null_ ));
DESCR("convert reltime to interval");
! DATA(insert OID = 1178 ( date PGNSP PGUID 12 1 0 0 f f f t f s 1 0 1082 "1184" _null_ _null_ _null_ _null_ timestamptz_date _null_ _null_ _null_ ));
DESCR("convert timestamp with time zone to date");
! DATA(insert OID = 1179 ( date PGNSP PGUID 12 1 0 0 f f f t f s 1 0 1082 "702" _null_ _null_ _null_ _null_ abstime_date _null_ _null_ _null_ ));
DESCR("convert abstime to date");
! DATA(insert OID = 1180 ( abstime PGNSP PGUID 12 1 0 0 f f f t f i 1 0 702 "1184" _null_ _null_ _null_ _null_ timestamptz_abstime _null_ _null_ _null_ ));
DESCR("convert timestamp with time zone to abstime");
! DATA(insert OID = 1181 ( age PGNSP PGUID 12 1 0 0 f f f t f s 1 0 23 "28" _null_ _null_ _null_ _null_ xid_age _null_ _null_ _null_ ));
DESCR("age of a transaction ID, in transactions before current transaction");
! DATA(insert OID = 1188 ( timestamptz_mi PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1186 "1184 1184" _null_ _null_ _null_ _null_ timestamp_mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 1189 ( timestamptz_pl_interval PGNSP PGUID 12 1 0 0 f f f t f s 2 0 1184 "1184 1186" _null_ _null_ _null_ _null_ timestamptz_pl_interval _null_ _null_ _null_ ));
DESCR("plus");
! DATA(insert OID = 1190 ( timestamptz_mi_interval PGNSP PGUID 12 1 0 0 f f f t f s 2 0 1184 "1184 1186" _null_ _null_ _null_ _null_ timestamptz_mi_interval _null_ _null_ _null_ ));
DESCR("minus");
! DATA(insert OID = 1194 ( reltime PGNSP PGUID 12 1 0 0 f f f t f i 1 0 703 "1186" _null_ _null_ _null_ _null_ interval_reltime _null_ _null_ _null_ ));
DESCR("convert interval to reltime");
! DATA(insert OID = 1195 ( timestamptz_smaller PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1184 "1184 1184" _null_ _null_ _null_ _null_ timestamp_smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 1196 ( timestamptz_larger PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1184 "1184 1184" _null_ _null_ _null_ _null_ timestamp_larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 1197 ( interval_smaller PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1186 "1186 1186" _null_ _null_ _null_ _null_ interval_smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 1198 ( interval_larger PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1186 "1186 1186" _null_ _null_ _null_ _null_ interval_larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 1199 ( age PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1186 "1184 1184" _null_ _null_ _null_ _null_ timestamptz_age _null_ _null_ _null_ ));
DESCR("date difference preserving months and years");
/* OIDS 1200 - 1299 */
! DATA(insert OID = 1200 ( interval PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1186 "1186 23" _null_ _null_ _null_ _null_ interval_scale _null_ _null_ _null_ ));
DESCR("adjust interval precision");
! DATA(insert OID = 1215 ( obj_description PGNSP PGUID 14 100 0 0 f f f t f s 2 0 25 "26 19" _null_ _null_ _null_ _null_ "select description from pg_catalog.pg_description where objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and relnamespace = PGNSP) and objsubid = 0" _null_ _null_ _null_ ));
DESCR("get description for object id and catalog name");
! DATA(insert OID = 1216 ( col_description PGNSP PGUID 14 100 0 0 f f f t f s 2 0 25 "26 23" _null_ _null_ _null_ _null_ "select description from pg_catalog.pg_description where objoid = $1 and classoid = ''pg_catalog.pg_class''::pg_catalog.regclass and objsubid = $2" _null_ _null_ _null_ ));
DESCR("get description for table column");
! DATA(insert OID = 1993 ( shobj_description PGNSP PGUID 14 100 0 0 f f f t f s 2 0 25 "26 19" _null_ _null_ _null_ _null_ "select description from pg_catalog.pg_shdescription where objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and relnamespace = PGNSP)" _null_ _null_ _null_ ));
DESCR("get description for object id and shared catalog name");
! DATA(insert OID = 1217 ( date_trunc PGNSP PGUID 12 1 0 0 f f f t f s 2 0 1184 "25 1184" _null_ _null_ _null_ _null_ timestamptz_trunc _null_ _null_ _null_ ));
DESCR("truncate timestamp with time zone to specified units");
! DATA(insert OID = 1218 ( date_trunc PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1186 "25 1186" _null_ _null_ _null_ _null_ interval_trunc _null_ _null_ _null_ ));
DESCR("truncate interval to specified units");
! DATA(insert OID = 1219 ( int8inc PGNSP PGUID 12 1 0 0 f f f t f i 1 0 20 "20" _null_ _null_ _null_ _null_ int8inc _null_ _null_ _null_ ));
DESCR("increment");
! DATA(insert OID = 2804 ( int8inc_any PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 2276" _null_ _null_ _null_ _null_ int8inc_any _null_ _null_ _null_ ));
DESCR("increment, ignores second argument");
! DATA(insert OID = 1230 ( int8abs PGNSP PGUID 12 1 0 0 f f f t f i 1 0 20 "20" _null_ _null_ _null_ _null_ int8abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 1236 ( int8larger PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 1237 ( int8smaller PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 1238 ( texticregexeq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ texticregexeq _null_ _null_ _null_ ));
DESCR("matches regex., case-insensitive");
! DATA(insert OID = 1239 ( texticregexne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ texticregexne _null_ _null_ _null_ ));
DESCR("does not match regex., case-insensitive");
! DATA(insert OID = 1240 ( nameicregexeq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "19 25" _null_ _null_ _null_ _null_ nameicregexeq _null_ _null_ _null_ ));
DESCR("matches regex., case-insensitive");
! DATA(insert OID = 1241 ( nameicregexne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "19 25" _null_ _null_ _null_ _null_ nameicregexne _null_ _null_ _null_ ));
DESCR("does not match regex., case-insensitive");
! DATA(insert OID = 1251 ( int4abs PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "23" _null_ _null_ _null_ _null_ int4abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 1253 ( int2abs PGNSP PGUID 12 1 0 0 f f f t f i 1 0 21 "21" _null_ _null_ _null_ _null_ int2abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 1271 ( overlaps PGNSP PGUID 12 1 0 0 f f f f f i 4 0 16 "1266 1266 1266 1266" _null_ _null_ _null_ _null_ overlaps_timetz _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 1272 ( datetime_pl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1114 "1082 1083" _null_ _null_ _null_ _null_ datetime_timestamp _null_ _null_ _null_ ));
DESCR("convert date and time to timestamp");
! DATA(insert OID = 1273 ( date_part PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "25 1266" _null_ _null_ _null_ _null_ timetz_part _null_ _null_ _null_ ));
DESCR("extract field from time with time zone");
! DATA(insert OID = 1274 ( int84pl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 23" _null_ _null_ _null_ _null_ int84pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 1275 ( int84mi PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 23" _null_ _null_ _null_ _null_ int84mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 1276 ( int84mul PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 23" _null_ _null_ _null_ _null_ int84mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 1277 ( int84div PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 23" _null_ _null_ _null_ _null_ int84div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 1278 ( int48pl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "23 20" _null_ _null_ _null_ _null_ int48pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 1279 ( int48mi PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "23 20" _null_ _null_ _null_ _null_ int48mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 1280 ( int48mul PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "23 20" _null_ _null_ _null_ _null_ int48mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 1281 ( int48div PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "23 20" _null_ _null_ _null_ _null_ int48div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 837 ( int82pl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 21" _null_ _null_ _null_ _null_ int82pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 838 ( int82mi PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 21" _null_ _null_ _null_ _null_ int82mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 839 ( int82mul PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 21" _null_ _null_ _null_ _null_ int82mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 840 ( int82div PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 21" _null_ _null_ _null_ _null_ int82div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 841 ( int28pl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "21 20" _null_ _null_ _null_ _null_ int28pl _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 942 ( int28mi PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "21 20" _null_ _null_ _null_ _null_ int28mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 943 ( int28mul PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "21 20" _null_ _null_ _null_ _null_ int28mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 948 ( int28div PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "21 20" _null_ _null_ _null_ _null_ int28div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 1287 ( oid PGNSP PGUID 12 1 0 0 f f f t f i 1 0 26 "20" _null_ _null_ _null_ _null_ i8tooid _null_ _null_ _null_ ));
DESCR("convert int8 to oid");
! DATA(insert OID = 1288 ( int8 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 20 "26" _null_ _null_ _null_ _null_ oidtoi8 _null_ _null_ _null_ ));
DESCR("convert oid to int8");
! DATA(insert OID = 1291 ( suppress_redundant_updates_trigger PGNSP PGUID 12 1 0 0 f f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ suppress_redundant_updates_trigger _null_ _null_ _null_ ));
DESCR("trigger to suppress updates when new and old records match");
! DATA(insert OID = 1292 ( tideq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "27 27" _null_ _null_ _null_ _null_ tideq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1293 ( currtid PGNSP PGUID 12 1 0 0 f f f t f v 2 0 27 "26 27" _null_ _null_ _null_ _null_ currtid_byreloid _null_ _null_ _null_ ));
DESCR("latest tid of a tuple");
! DATA(insert OID = 1294 ( currtid2 PGNSP PGUID 12 1 0 0 f f f t f v 2 0 27 "25 27" _null_ _null_ _null_ _null_ currtid_byrelname _null_ _null_ _null_ ));
DESCR("latest tid of a tuple");
! DATA(insert OID = 1265 ( tidne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "27 27" _null_ _null_ _null_ _null_ tidne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 2790 ( tidgt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "27 27" _null_ _null_ _null_ _null_ tidgt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 2791 ( tidlt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "27 27" _null_ _null_ _null_ _null_ tidlt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 2792 ( tidge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "27 27" _null_ _null_ _null_ _null_ tidge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 2793 ( tidle PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "27 27" _null_ _null_ _null_ _null_ tidle _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 2794 ( bttidcmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "27 27" _null_ _null_ _null_ _null_ bttidcmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 2795 ( tidlarger PGNSP PGUID 12 1 0 0 f f f t f i 2 0 27 "27 27" _null_ _null_ _null_ _null_ tidlarger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 2796 ( tidsmaller PGNSP PGUID 12 1 0 0 f f f t f i 2 0 27 "27 27" _null_ _null_ _null_ _null_ tidsmaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 1296 ( timedate_pl PGNSP PGUID 14 1 0 0 f f f t f i 2 0 1114 "1083 1082" _null_ _null_ _null_ _null_ "select ($2 + $1)" _null_ _null_ _null_ ));
DESCR("convert time and date to timestamp");
! DATA(insert OID = 1297 ( datetimetz_pl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1184 "1082 1266" _null_ _null_ _null_ _null_ datetimetz_timestamptz _null_ _null_ _null_ ));
DESCR("convert date and time with time zone to timestamp with time zone");
! DATA(insert OID = 1298 ( timetzdate_pl PGNSP PGUID 14 1 0 0 f f f t f i 2 0 1184 "1266 1082" _null_ _null_ _null_ _null_ "select ($2 + $1)" _null_ _null_ _null_ ));
DESCR("convert time with time zone and date to timestamp with time zone");
! DATA(insert OID = 1299 ( now PGNSP PGUID 12 1 0 0 f f f t f s 0 0 1184 "" _null_ _null_ _null_ _null_ now _null_ _null_ _null_ ));
DESCR("current transaction time");
! DATA(insert OID = 2647 ( transaction_timestamp PGNSP PGUID 12 1 0 0 f f f t f s 0 0 1184 "" _null_ _null_ _null_ _null_ now _null_ _null_ _null_ ));
DESCR("current transaction time");
! DATA(insert OID = 2648 ( statement_timestamp PGNSP PGUID 12 1 0 0 f f f t f s 0 0 1184 "" _null_ _null_ _null_ _null_ statement_timestamp _null_ _null_ _null_ ));
DESCR("current statement time");
! DATA(insert OID = 2649 ( clock_timestamp PGNSP PGUID 12 1 0 0 f f f t f v 0 0 1184 "" _null_ _null_ _null_ _null_ clock_timestamp _null_ _null_ _null_ ));
DESCR("current clock time");
/* OIDS 1300 - 1399 */
! DATA(insert OID = 1300 ( positionsel PGNSP PGUID 12 1 0 0 f f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ positionsel _null_ _null_ _null_ ));
DESCR("restriction selectivity for position-comparison operators");
! DATA(insert OID = 1301 ( positionjoinsel PGNSP PGUID 12 1 0 0 f f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ positionjoinsel _null_ _null_ _null_ ));
DESCR("join selectivity for position-comparison operators");
! DATA(insert OID = 1302 ( contsel PGNSP PGUID 12 1 0 0 f f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ contsel _null_ _null_ _null_ ));
DESCR("restriction selectivity for containment comparison operators");
! DATA(insert OID = 1303 ( contjoinsel PGNSP PGUID 12 1 0 0 f f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ contjoinsel _null_ _null_ _null_ ));
DESCR("join selectivity for containment comparison operators");
! DATA(insert OID = 1304 ( overlaps PGNSP PGUID 12 1 0 0 f f f f f i 4 0 16 "1184 1184 1184 1184" _null_ _null_ _null_ _null_ overlaps_timestamp _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 1305 ( overlaps PGNSP PGUID 14 1 0 0 f f f f f s 4 0 16 "1184 1186 1184 1186" _null_ _null_ _null_ _null_ "select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 1306 ( overlaps PGNSP PGUID 14 1 0 0 f f f f f s 4 0 16 "1184 1184 1184 1186" _null_ _null_ _null_ _null_ "select ($1, $2) overlaps ($3, ($3 + $4))" _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 1307 ( overlaps PGNSP PGUID 14 1 0 0 f f f f f s 4 0 16 "1184 1186 1184 1184" _null_ _null_ _null_ _null_ "select ($1, ($1 + $2)) overlaps ($3, $4)" _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 1308 ( overlaps PGNSP PGUID 12 1 0 0 f f f f f i 4 0 16 "1083 1083 1083 1083" _null_ _null_ _null_ _null_ overlaps_time _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 1309 ( overlaps PGNSP PGUID 14 1 0 0 f f f f f i 4 0 16 "1083 1186 1083 1186" _null_ _null_ _null_ _null_ "select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 1310 ( overlaps PGNSP PGUID 14 1 0 0 f f f f f i 4 0 16 "1083 1083 1083 1186" _null_ _null_ _null_ _null_ "select ($1, $2) overlaps ($3, ($3 + $4))" _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 1311 ( overlaps PGNSP PGUID 14 1 0 0 f f f f f i 4 0 16 "1083 1186 1083 1083" _null_ _null_ _null_ _null_ "select ($1, ($1 + $2)) overlaps ($3, $4)" _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 1312 ( timestamp_in PGNSP PGUID 12 1 0 0 f f f t f s 3 0 1114 "2275 26 23" _null_ _null_ _null_ _null_ timestamp_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1313 ( timestamp_out PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "1114" _null_ _null_ _null_ _null_ timestamp_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2905 ( timestamptypmodin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1263" _null_ _null_ _null_ _null_ timestamptypmodin _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 2906 ( timestamptypmodout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ timestamptypmodout _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 1314 ( timestamptz_cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "1184 1184" _null_ _null_ _null_ _null_ timestamp_cmp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 1315 ( interval_cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "1186 1186" _null_ _null_ _null_ _null_ interval_cmp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 1316 ( time PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1083 "1114" _null_ _null_ _null_ _null_ timestamp_time _null_ _null_ _null_ ));
DESCR("convert timestamp to time");
! DATA(insert OID = 1317 ( length PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "25" _null_ _null_ _null_ _null_ textlen _null_ _null_ _null_ ));
DESCR("length");
! DATA(insert OID = 1318 ( length PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1042" _null_ _null_ _null_ _null_ bpcharlen _null_ _null_ _null_ ));
DESCR("character length");
! DATA(insert OID = 1319 ( xideqint4 PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "28 23" _null_ _null_ _null_ _null_ xideq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1326 ( interval_div PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1186 "1186 701" _null_ _null_ _null_ _null_ interval_div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 1339 ( dlog10 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dlog10 _null_ _null_ _null_ ));
DESCR("base 10 logarithm");
! DATA(insert OID = 1340 ( log PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dlog10 _null_ _null_ _null_ ));
DESCR("base 10 logarithm");
! DATA(insert OID = 1341 ( ln PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dlog1 _null_ _null_ _null_ ));
DESCR("natural logarithm");
! DATA(insert OID = 1342 ( round PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dround _null_ _null_ _null_ ));
DESCR("round to nearest integer");
! DATA(insert OID = 1343 ( trunc PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dtrunc _null_ _null_ _null_ ));
DESCR("truncate to integer");
! DATA(insert OID = 1344 ( sqrt PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dsqrt _null_ _null_ _null_ ));
DESCR("square root");
! DATA(insert OID = 1345 ( cbrt PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dcbrt _null_ _null_ _null_ ));
DESCR("cube root");
! DATA(insert OID = 1346 ( pow PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ dpow _null_ _null_ _null_ ));
DESCR("exponentiation");
! DATA(insert OID = 1368 ( power PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ dpow _null_ _null_ _null_ ));
DESCR("exponentiation");
! DATA(insert OID = 1347 ( exp PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dexp _null_ _null_ _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 100 0 0 f f f t f s 1 0 25 "26" _null_ _null_ _null_ _null_ "select description from pg_catalog.pg_description where objoid = $1 and objsubid = 0" _null_ _null_ _null_ ));
DESCR("get description for object id (deprecated)");
! DATA(insert OID = 1349 ( oidvectortypes PGNSP PGUID 12 1 0 0 f f f t f s 1 0 25 "30" _null_ _null_ _null_ _null_ oidvectortypes _null_ _null_ _null_ ));
DESCR("print type names of oidvector field");
! DATA(insert OID = 1350 ( timetz_in PGNSP PGUID 12 1 0 0 f f f t f s 3 0 1266 "2275 26 23" _null_ _null_ _null_ _null_ timetz_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1351 ( timetz_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "1266" _null_ _null_ _null_ _null_ timetz_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2911 ( timetztypmodin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1263" _null_ _null_ _null_ _null_ timetztypmodin _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 2912 ( timetztypmodout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ timetztypmodout _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 1352 ( timetz_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1266 1266" _null_ _null_ _null_ _null_ timetz_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1353 ( timetz_ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1266 1266" _null_ _null_ _null_ _null_ timetz_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1354 ( timetz_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1266 1266" _null_ _null_ _null_ _null_ timetz_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 1355 ( timetz_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1266 1266" _null_ _null_ _null_ _null_ timetz_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1356 ( timetz_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1266 1266" _null_ _null_ _null_ _null_ timetz_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1357 ( timetz_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1266 1266" _null_ _null_ _null_ _null_ timetz_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1358 ( timetz_cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "1266 1266" _null_ _null_ _null_ _null_ timetz_cmp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 1359 ( timestamptz PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1184 "1082 1266" _null_ _null_ _null_ _null_ datetimetz_timestamptz _null_ _null_ _null_ ));
DESCR("convert date and time with time zone to timestamp with time zone");
! DATA(insert OID = 1364 ( time PGNSP PGUID 14 1 0 0 f f f t f s 1 0 1083 "702" _null_ _null_ _null_ _null_ "select cast(cast($1 as timestamp without time zone) as pg_catalog.time)" _null_ _null_ _null_ ));
DESCR("convert abstime to time");
! DATA(insert OID = 1367 ( character_length PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1042" _null_ _null_ _null_ _null_ bpcharlen _null_ _null_ _null_ ));
DESCR("character length");
! DATA(insert OID = 1369 ( character_length PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "25" _null_ _null_ _null_ _null_ textlen _null_ _null_ _null_ ));
DESCR("character length");
! DATA(insert OID = 1370 ( interval PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1186 "1083" _null_ _null_ _null_ _null_ time_interval _null_ _null_ _null_ ));
DESCR("convert time to interval");
! DATA(insert OID = 1372 ( char_length PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1042" _null_ _null_ _null_ _null_ bpcharlen _null_ _null_ _null_ ));
DESCR("character length");
! DATA(insert OID = 1374 ( octet_length PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "25" _null_ _null_ _null_ _null_ textoctetlen _null_ _null_ _null_ ));
DESCR("octet length");
! DATA(insert OID = 1375 ( octet_length PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1042" _null_ _null_ _null_ _null_ bpcharoctetlen _null_ _null_ _null_ ));
DESCR("octet length");
! DATA(insert OID = 1377 ( time_larger PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1083 "1083 1083" _null_ _null_ _null_ _null_ time_larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 1378 ( time_smaller PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1083 "1083 1083" _null_ _null_ _null_ _null_ time_smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 1379 ( timetz_larger PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1266 "1266 1266" _null_ _null_ _null_ _null_ timetz_larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 1380 ( timetz_smaller PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1266 "1266 1266" _null_ _null_ _null_ _null_ timetz_smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 1381 ( char_length PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "25" _null_ _null_ _null_ _null_ textlen _null_ _null_ _null_ ));
DESCR("character length");
! DATA(insert OID = 1382 ( date_part PGNSP PGUID 14 1 0 0 f f f t f s 2 0 701 "25 702" _null_ _null_ _null_ _null_ "select pg_catalog.date_part($1, cast($2 as timestamp with time zone))" _null_ _null_ _null_ ));
DESCR("extract field from abstime");
! DATA(insert OID = 1383 ( date_part PGNSP PGUID 14 1 0 0 f f f t f s 2 0 701 "25 703" _null_ _null_ _null_ _null_ "select pg_catalog.date_part($1, cast($2 as pg_catalog.interval))" _null_ _null_ _null_ ));
DESCR("extract field from reltime");
! DATA(insert OID = 1384 ( date_part PGNSP PGUID 14 1 0 0 f f f t f i 2 0 701 "25 1082" _null_ _null_ _null_ _null_ "select pg_catalog.date_part($1, cast($2 as timestamp without time zone))" _null_ _null_ _null_ ));
DESCR("extract field from date");
! DATA(insert OID = 1385 ( date_part PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "25 1083" _null_ _null_ _null_ _null_ time_part _null_ _null_ _null_ ));
DESCR("extract field from time");
! DATA(insert OID = 1386 ( age PGNSP PGUID 14 1 0 0 f f f t f s 1 0 1186 "1184" _null_ _null_ _null_ _null_ "select pg_catalog.age(cast(current_date as timestamp with time zone), $1)" _null_ _null_ _null_ ));
DESCR("date difference from today preserving months and years");
! DATA(insert OID = 1388 ( timetz PGNSP PGUID 12 1 0 0 f f f t f s 1 0 1266 "1184" _null_ _null_ _null_ _null_ timestamptz_timetz _null_ _null_ _null_ ));
DESCR("convert timestamptz to timetz");
! DATA(insert OID = 1373 ( isfinite PGNSP PGUID 12 1 0 0 f f f t f i 1 0 16 "1082" _null_ _null_ _null_ _null_ date_finite _null_ _null_ _null_ ));
DESCR("finite date?");
! DATA(insert OID = 1389 ( isfinite PGNSP PGUID 12 1 0 0 f f f t f i 1 0 16 "1184" _null_ _null_ _null_ _null_ timestamp_finite _null_ _null_ _null_ ));
DESCR("finite timestamp?");
! DATA(insert OID = 1390 ( isfinite PGNSP PGUID 12 1 0 0 f f f t f i 1 0 16 "1186" _null_ _null_ _null_ _null_ interval_finite _null_ _null_ _null_ ));
DESCR("finite interval?");
! DATA(insert OID = 1376 ( factorial PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "20" _null_ _null_ _null_ _null_ numeric_fac _null_ _null_ _null_ ));
DESCR("factorial");
! DATA(insert OID = 1394 ( abs PGNSP PGUID 12 1 0 0 f f f t f i 1 0 700 "700" _null_ _null_ _null_ _null_ float4abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 1395 ( abs PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ float8abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 1396 ( abs PGNSP PGUID 12 1 0 0 f f f t f i 1 0 20 "20" _null_ _null_ _null_ _null_ int8abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 1397 ( abs PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "23" _null_ _null_ _null_ _null_ int4abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 1398 ( abs PGNSP PGUID 12 1 0 0 f f f t f i 1 0 21 "21" _null_ _null_ _null_ _null_ int2abs _null_ _null_ _null_ ));
DESCR("absolute value");
/* OIDS 1400 - 1499 */
! DATA(insert OID = 1400 ( name PGNSP PGUID 12 1 0 0 f f f t f i 1 0 19 "1043" _null_ _null_ _null_ _null_ text_name _null_ _null_ _null_ ));
DESCR("convert varchar to name");
! DATA(insert OID = 1401 ( varchar PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1043 "19" _null_ _null_ _null_ _null_ name_text _null_ _null_ _null_ ));
DESCR("convert name to varchar");
! DATA(insert OID = 1402 ( current_schema PGNSP PGUID 12 1 0 0 f f f t f s 0 0 19 "" _null_ _null_ _null_ _null_ current_schema _null_ _null_ _null_ ));
DESCR("current schema name");
! DATA(insert OID = 1403 ( current_schemas PGNSP PGUID 12 1 0 0 f f f t f s 1 0 1003 "16" _null_ _null_ _null_ _null_ current_schemas _null_ _null_ _null_ ));
DESCR("current schema search list");
! DATA(insert OID = 1404 ( overlay PGNSP PGUID 14 1 0 0 f f f t f i 4 0 25 "25 25 23 23" _null_ _null_ _null_ _null_ "select pg_catalog.substring($1, 1, ($3 - 1)) || $2 || pg_catalog.substring($1, ($3 + $4))" _null_ _null_ _null_ ));
DESCR("substitute portion of string");
! DATA(insert OID = 1405 ( overlay PGNSP PGUID 14 1 0 0 f f f t f i 3 0 25 "25 25 23" _null_ _null_ _null_ _null_ "select pg_catalog.substring($1, 1, ($3 - 1)) || $2 || pg_catalog.substring($1, ($3 + pg_catalog.char_length($2)))" _null_ _null_ _null_ ));
DESCR("substitute portion of string");
! DATA(insert OID = 1406 ( isvertical PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "600 600" _null_ _null_ _null_ _null_ point_vert _null_ _null_ _null_ ));
DESCR("vertically aligned?");
! DATA(insert OID = 1407 ( ishorizontal PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "600 600" _null_ _null_ _null_ _null_ point_horiz _null_ _null_ _null_ ));
DESCR("horizontally aligned?");
! DATA(insert OID = 1408 ( isparallel PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_parallel _null_ _null_ _null_ ));
DESCR("parallel?");
! DATA(insert OID = 1409 ( isperp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_perp _null_ _null_ _null_ ));
DESCR("perpendicular?");
! DATA(insert OID = 1410 ( isvertical PGNSP PGUID 12 1 0 0 f f f t f i 1 0 16 "601" _null_ _null_ _null_ _null_ lseg_vertical _null_ _null_ _null_ ));
DESCR("vertical?");
! DATA(insert OID = 1411 ( ishorizontal PGNSP PGUID 12 1 0 0 f f f t f i 1 0 16 "601" _null_ _null_ _null_ _null_ lseg_horizontal _null_ _null_ _null_ ));
DESCR("horizontal?");
! DATA(insert OID = 1412 ( isparallel PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "628 628" _null_ _null_ _null_ _null_ line_parallel _null_ _null_ _null_ ));
DESCR("parallel?");
! DATA(insert OID = 1413 ( isperp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "628 628" _null_ _null_ _null_ _null_ line_perp _null_ _null_ _null_ ));
DESCR("perpendicular?");
! DATA(insert OID = 1414 ( isvertical PGNSP PGUID 12 1 0 0 f f f t f i 1 0 16 "628" _null_ _null_ _null_ _null_ line_vertical _null_ _null_ _null_ ));
DESCR("vertical?");
! DATA(insert OID = 1415 ( ishorizontal PGNSP PGUID 12 1 0 0 f f f t f i 1 0 16 "628" _null_ _null_ _null_ _null_ line_horizontal _null_ _null_ _null_ ));
DESCR("horizontal?");
! DATA(insert OID = 1416 ( point PGNSP PGUID 12 1 0 0 f f f t f i 1 0 600 "718" _null_ _null_ _null_ _null_ circle_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 1419 ( time PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1083 "1186" _null_ _null_ _null_ _null_ interval_time _null_ _null_ _null_ ));
DESCR("convert interval to time");
! DATA(insert OID = 1421 ( box PGNSP PGUID 12 1 0 0 f f f t f i 2 0 603 "600 600" _null_ _null_ _null_ _null_ points_box _null_ _null_ _null_ ));
DESCR("convert points to box");
! DATA(insert OID = 1422 ( box_add PGNSP PGUID 12 1 0 0 f f f t f i 2 0 603 "603 600" _null_ _null_ _null_ _null_ box_add _null_ _null_ _null_ ));
DESCR("add point to box (translate)");
! DATA(insert OID = 1423 ( box_sub PGNSP PGUID 12 1 0 0 f f f t f i 2 0 603 "603 600" _null_ _null_ _null_ _null_ box_sub _null_ _null_ _null_ ));
DESCR("subtract point from box (translate)");
! DATA(insert OID = 1424 ( box_mul PGNSP PGUID 12 1 0 0 f f f t f i 2 0 603 "603 600" _null_ _null_ _null_ _null_ box_mul _null_ _null_ _null_ ));
DESCR("multiply box by point (scale)");
! DATA(insert OID = 1425 ( box_div PGNSP PGUID 12 1 0 0 f f f t f i 2 0 603 "603 600" _null_ _null_ _null_ _null_ box_div _null_ _null_ _null_ ));
DESCR("divide box by point (scale)");
! DATA(insert OID = 1426 ( path_contain_pt PGNSP PGUID 14 1 0 0 f f f t f i 2 0 16 "602 600" _null_ _null_ _null_ _null_ "select pg_catalog.on_ppath($2, $1)" _null_ _null_ _null_ ));
DESCR("path contains point?");
! DATA(insert OID = 1428 ( poly_contain_pt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "604 600" _null_ _null_ _null_ _null_ poly_contain_pt _null_ _null_ _null_ ));
DESCR("polygon contains point?");
! DATA(insert OID = 1429 ( pt_contained_poly PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "600 604" _null_ _null_ _null_ _null_ pt_contained_poly _null_ _null_ _null_ ));
DESCR("point contained in polygon?");
! DATA(insert OID = 1430 ( isclosed PGNSP PGUID 12 1 0 0 f f f t f i 1 0 16 "602" _null_ _null_ _null_ _null_ path_isclosed _null_ _null_ _null_ ));
DESCR("path closed?");
! DATA(insert OID = 1431 ( isopen PGNSP PGUID 12 1 0 0 f f f t f i 1 0 16 "602" _null_ _null_ _null_ _null_ path_isopen _null_ _null_ _null_ ));
DESCR("path open?");
! DATA(insert OID = 1432 ( path_npoints PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "602" _null_ _null_ _null_ _null_ path_npoints _null_ _null_ _null_ ));
DESCR("number of 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 1 0 0 f f f t f i 1 0 602 "602" _null_ _null_ _null_ _null_ path_close _null_ _null_ _null_ ));
DESCR("close path");
! DATA(insert OID = 1434 ( popen PGNSP PGUID 12 1 0 0 f f f t f i 1 0 602 "602" _null_ _null_ _null_ _null_ path_open _null_ _null_ _null_ ));
DESCR("open path");
! DATA(insert OID = 1435 ( path_add PGNSP PGUID 12 1 0 0 f f f t f i 2 0 602 "602 602" _null_ _null_ _null_ _null_ path_add _null_ _null_ _null_ ));
DESCR("concatenate open paths");
! DATA(insert OID = 1436 ( path_add_pt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 602 "602 600" _null_ _null_ _null_ _null_ path_add_pt _null_ _null_ _null_ ));
DESCR("add (translate path)");
! DATA(insert OID = 1437 ( path_sub_pt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 602 "602 600" _null_ _null_ _null_ _null_ path_sub_pt _null_ _null_ _null_ ));
DESCR("subtract (translate path)");
! DATA(insert OID = 1438 ( path_mul_pt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 602 "602 600" _null_ _null_ _null_ _null_ path_mul_pt _null_ _null_ _null_ ));
DESCR("multiply (rotate/scale path)");
! DATA(insert OID = 1439 ( path_div_pt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 602 "602 600" _null_ _null_ _null_ _null_ path_div_pt _null_ _null_ _null_ ));
DESCR("divide (rotate/scale path)");
! DATA(insert OID = 1440 ( point PGNSP PGUID 12 1 0 0 f f f t f i 2 0 600 "701 701" _null_ _null_ _null_ _null_ construct_point _null_ _null_ _null_ ));
DESCR("convert x, y to point");
! DATA(insert OID = 1441 ( point_add PGNSP PGUID 12 1 0 0 f f f t f i 2 0 600 "600 600" _null_ _null_ _null_ _null_ point_add _null_ _null_ _null_ ));
DESCR("add points (translate)");
! DATA(insert OID = 1442 ( point_sub PGNSP PGUID 12 1 0 0 f f f t f i 2 0 600 "600 600" _null_ _null_ _null_ _null_ point_sub _null_ _null_ _null_ ));
DESCR("subtract points (translate)");
! DATA(insert OID = 1443 ( point_mul PGNSP PGUID 12 1 0 0 f f f t f i 2 0 600 "600 600" _null_ _null_ _null_ _null_ point_mul _null_ _null_ _null_ ));
DESCR("multiply points (scale/rotate)");
! DATA(insert OID = 1444 ( point_div PGNSP PGUID 12 1 0 0 f f f t f i 2 0 600 "600 600" _null_ _null_ _null_ _null_ point_div _null_ _null_ _null_ ));
DESCR("divide points (scale/rotate)");
! DATA(insert OID = 1445 ( poly_npoints PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "604" _null_ _null_ _null_ _null_ poly_npoints _null_ _null_ _null_ ));
DESCR("number of points in polygon");
! DATA(insert OID = 1446 ( box PGNSP PGUID 12 1 0 0 f f f t f i 1 0 603 "604" _null_ _null_ _null_ _null_ poly_box _null_ _null_ _null_ ));
DESCR("convert polygon to bounding box");
! DATA(insert OID = 1447 ( path PGNSP PGUID 12 1 0 0 f f f t f i 1 0 602 "604" _null_ _null_ _null_ _null_ poly_path _null_ _null_ _null_ ));
DESCR("convert polygon to path");
! DATA(insert OID = 1448 ( polygon PGNSP PGUID 12 1 0 0 f f f t f i 1 0 604 "603" _null_ _null_ _null_ _null_ box_poly _null_ _null_ _null_ ));
DESCR("convert box to polygon");
! DATA(insert OID = 1449 ( polygon PGNSP PGUID 12 1 0 0 f f f t f i 1 0 604 "602" _null_ _null_ _null_ _null_ path_poly _null_ _null_ _null_ ));
DESCR("convert path to polygon");
! DATA(insert OID = 1450 ( circle_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 718 "2275" _null_ _null_ _null_ _null_ circle_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1451 ( circle_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "718" _null_ _null_ _null_ _null_ circle_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1452 ( circle_same PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_same _null_ _null_ _null_ ));
DESCR("same as?");
! DATA(insert OID = 1453 ( circle_contain PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_contain _null_ _null_ _null_ ));
DESCR("contains?");
! DATA(insert OID = 1454 ( circle_left PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_left _null_ _null_ _null_ ));
DESCR("is left of");
! DATA(insert OID = 1455 ( circle_overleft PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_overleft _null_ _null_ _null_ ));
DESCR("overlaps or is left of");
! DATA(insert OID = 1456 ( circle_overright PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_overright _null_ _null_ _null_ ));
DESCR("overlaps or is right of");
! DATA(insert OID = 1457 ( circle_right PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_right _null_ _null_ _null_ ));
DESCR("is right of");
! DATA(insert OID = 1458 ( circle_contained PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_contained _null_ _null_ _null_ ));
DESCR("is contained by?");
! DATA(insert OID = 1459 ( circle_overlap PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_overlap _null_ _null_ _null_ ));
DESCR("overlaps");
! DATA(insert OID = 1460 ( circle_below PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_below _null_ _null_ _null_ ));
DESCR("is below");
! DATA(insert OID = 1461 ( circle_above PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_above _null_ _null_ _null_ ));
DESCR("is above");
! DATA(insert OID = 1462 ( circle_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_eq _null_ _null_ _null_ ));
DESCR("equal by area");
! DATA(insert OID = 1463 ( circle_ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_ne _null_ _null_ _null_ ));
DESCR("not equal by area");
! DATA(insert OID = 1464 ( circle_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_lt _null_ _null_ _null_ ));
DESCR("less-than by area");
! DATA(insert OID = 1465 ( circle_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_gt _null_ _null_ _null_ ));
DESCR("greater-than by area");
! DATA(insert OID = 1466 ( circle_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal by area");
! DATA(insert OID = 1467 ( circle_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal by area");
! DATA(insert OID = 1468 ( area PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "718" _null_ _null_ _null_ _null_ circle_area _null_ _null_ _null_ ));
DESCR("area of circle");
! DATA(insert OID = 1469 ( diameter PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "718" _null_ _null_ _null_ _null_ circle_diameter _null_ _null_ _null_ ));
DESCR("diameter of circle");
! DATA(insert OID = 1470 ( radius PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "718" _null_ _null_ _null_ _null_ circle_radius _null_ _null_ _null_ ));
DESCR("radius of circle");
! DATA(insert OID = 1471 ( circle_distance PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "718 718" _null_ _null_ _null_ _null_ circle_distance _null_ _null_ _null_ ));
DESCR("distance between");
! DATA(insert OID = 1472 ( circle_center PGNSP PGUID 12 1 0 0 f f f t f i 1 0 600 "718" _null_ _null_ _null_ _null_ circle_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 1473 ( circle PGNSP PGUID 12 1 0 0 f f f t f i 2 0 718 "600 701" _null_ _null_ _null_ _null_ cr_circle _null_ _null_ _null_ ));
DESCR("convert point and radius to circle");
! DATA(insert OID = 1474 ( circle PGNSP PGUID 12 1 0 0 f f f t f i 1 0 718 "604" _null_ _null_ _null_ _null_ poly_circle _null_ _null_ _null_ ));
DESCR("convert polygon to circle");
! DATA(insert OID = 1475 ( polygon PGNSP PGUID 12 1 0 0 f f f t f i 2 0 604 "23 718" _null_ _null_ _null_ _null_ circle_poly _null_ _null_ _null_ ));
DESCR("convert vertex count and circle to polygon");
! DATA(insert OID = 1476 ( dist_pc PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "600 718" _null_ _null_ _null_ _null_ dist_pc _null_ _null_ _null_ ));
DESCR("distance between point and circle");
! DATA(insert OID = 1477 ( circle_contain_pt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "718 600" _null_ _null_ _null_ _null_ circle_contain_pt _null_ _null_ _null_ ));
DESCR("circle contains point?");
! DATA(insert OID = 1478 ( pt_contained_circle PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "600 718" _null_ _null_ _null_ _null_ pt_contained_circle _null_ _null_ _null_ ));
DESCR("point contained in circle?");
! DATA(insert OID = 1479 ( circle PGNSP PGUID 12 1 0 0 f f f t f i 1 0 718 "603" _null_ _null_ _null_ _null_ box_circle _null_ _null_ _null_ ));
DESCR("convert box to circle");
! DATA(insert OID = 1480 ( box PGNSP PGUID 12 1 0 0 f f f t f i 1 0 603 "718" _null_ _null_ _null_ _null_ circle_box _null_ _null_ _null_ ));
DESCR("convert circle to box");
! DATA(insert OID = 1481 ( tinterval PGNSP PGUID 12 1 0 0 f f f t f i 2 0 704 "702 702" _null_ _null_ _null_ _null_ mktinterval _null_ _null_ _null_ ));
DESCR("convert to tinterval");
! DATA(insert OID = 1482 ( lseg_ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1483 ( lseg_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_lt _null_ _null_ _null_ ));
DESCR("less-than by length");
! DATA(insert OID = 1484 ( lseg_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal by length");
! DATA(insert OID = 1485 ( lseg_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_gt _null_ _null_ _null_ ));
DESCR("greater-than by length");
! DATA(insert OID = 1486 ( lseg_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "601 601" _null_ _null_ _null_ _null_ lseg_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal by length");
! DATA(insert OID = 1487 ( lseg_length PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "601" _null_ _null_ _null_ _null_ lseg_length _null_ _null_ _null_ ));
DESCR("distance between endpoints");
! DATA(insert OID = 1488 ( close_ls PGNSP PGUID 12 1 0 0 f f f t f i 2 0 600 "628 601" _null_ _null_ _null_ _null_ close_ls _null_ _null_ _null_ ));
DESCR("closest point to line on line segment");
! DATA(insert OID = 1489 ( close_lseg PGNSP PGUID 12 1 0 0 f f f t f i 2 0 600 "601 601" _null_ _null_ _null_ _null_ close_lseg _null_ _null_ _null_ ));
DESCR("closest point to line segment on line segment");
! DATA(insert OID = 1490 ( line_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 628 "2275" _null_ _null_ _null_ _null_ line_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1491 ( line_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "628" _null_ _null_ _null_ _null_ line_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1492 ( line_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "628 628" _null_ _null_ _null_ _null_ line_eq _null_ _null_ _null_ ));
DESCR("lines equal?");
! DATA(insert OID = 1493 ( line PGNSP PGUID 12 1 0 0 f f f t f i 2 0 628 "600 600" _null_ _null_ _null_ _null_ line_construct_pp _null_ _null_ _null_ ));
DESCR("line from points");
! DATA(insert OID = 1494 ( line_interpt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 600 "628 628" _null_ _null_ _null_ _null_ line_interpt _null_ _null_ _null_ ));
DESCR("intersection point");
! DATA(insert OID = 1495 ( line_intersect PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "628 628" _null_ _null_ _null_ _null_ line_intersect _null_ _null_ _null_ ));
DESCR("intersect?");
! DATA(insert OID = 1496 ( line_parallel PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "628 628" _null_ _null_ _null_ _null_ line_parallel _null_ _null_ _null_ ));
DESCR("parallel?");
! DATA(insert OID = 1497 ( line_perp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "628 628" _null_ _null_ _null_ _null_ line_perp _null_ _null_ _null_ ));
DESCR("perpendicular?");
! DATA(insert OID = 1498 ( line_vertical PGNSP PGUID 12 1 0 0 f f f t f i 1 0 16 "628" _null_ _null_ _null_ _null_ line_vertical _null_ _null_ _null_ ));
DESCR("vertical?");
! DATA(insert OID = 1499 ( line_horizontal PGNSP PGUID 12 1 0 0 f f f t f i 1 0 16 "628" _null_ _null_ _null_ _null_ line_horizontal _null_ _null_ _null_ ));
DESCR("horizontal?");
/* OIDS 1500 - 1599 */
! DATA(insert OID = 1530 ( length PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "601" _null_ _null_ _null_ _null_ lseg_length _null_ _null_ _null_ ));
DESCR("distance between endpoints");
! DATA(insert OID = 1531 ( length PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "602" _null_ _null_ _null_ _null_ path_length _null_ _null_ _null_ ));
DESCR("sum of path segments");
! DATA(insert OID = 1532 ( point PGNSP PGUID 12 1 0 0 f f f t f i 1 0 600 "601" _null_ _null_ _null_ _null_ lseg_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 1533 ( point PGNSP PGUID 12 1 0 0 f f f t f i 1 0 600 "602" _null_ _null_ _null_ _null_ path_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 1534 ( point PGNSP PGUID 12 1 0 0 f f f t f i 1 0 600 "603" _null_ _null_ _null_ _null_ box_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 1540 ( point PGNSP PGUID 12 1 0 0 f f f t f i 1 0 600 "604" _null_ _null_ _null_ _null_ poly_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 1541 ( lseg PGNSP PGUID 12 1 0 0 f f f t f i 1 0 601 "603" _null_ _null_ _null_ _null_ box_diagonal _null_ _null_ _null_ ));
DESCR("diagonal of");
! DATA(insert OID = 1542 ( center PGNSP PGUID 12 1 0 0 f f f t f i 1 0 600 "603" _null_ _null_ _null_ _null_ box_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 1543 ( center PGNSP PGUID 12 1 0 0 f f f t f i 1 0 600 "718" _null_ _null_ _null_ _null_ circle_center _null_ _null_ _null_ ));
DESCR("center of");
! DATA(insert OID = 1544 ( polygon PGNSP PGUID 14 1 0 0 f f f t f i 1 0 604 "718" _null_ _null_ _null_ _null_ "select pg_catalog.polygon(12, $1)" _null_ _null_ _null_ ));
DESCR("convert circle to 12-vertex polygon");
! DATA(insert OID = 1545 ( npoints PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "602" _null_ _null_ _null_ _null_ path_npoints _null_ _null_ _null_ ));
DESCR("number of points in path");
! DATA(insert OID = 1556 ( npoints PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "604" _null_ _null_ _null_ _null_ poly_npoints _null_ _null_ _null_ ));
DESCR("number of points in polygon");
! DATA(insert OID = 1564 ( bit_in PGNSP PGUID 12 1 0 0 f f f t f i 3 0 1560 "2275 26 23" _null_ _null_ _null_ _null_ bit_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1565 ( bit_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "1560" _null_ _null_ _null_ _null_ bit_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2919 ( bittypmodin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1263" _null_ _null_ _null_ _null_ bittypmodin _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 2920 ( bittypmodout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ bittypmodout _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 1569 ( like PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ textlike _null_ _null_ _null_ ));
DESCR("matches LIKE expression");
! DATA(insert OID = 1570 ( notlike PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ textnlike _null_ _null_ _null_ ));
DESCR("does not match LIKE expression");
! DATA(insert OID = 1571 ( like PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "19 25" _null_ _null_ _null_ _null_ namelike _null_ _null_ _null_ ));
DESCR("matches LIKE expression");
! DATA(insert OID = 1572 ( notlike PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "19 25" _null_ _null_ _null_ _null_ namenlike _null_ _null_ _null_ ));
DESCR("does not match LIKE expression");
/* SEQUENCE functions */
! DATA(insert OID = 1574 ( nextval PGNSP PGUID 12 1 0 0 f f f t f v 1 0 20 "2205" _null_ _null_ _null_ _null_ nextval_oid _null_ _null_ _null_ ));
DESCR("sequence next value");
! DATA(insert OID = 1575 ( currval PGNSP PGUID 12 1 0 0 f f f t f v 1 0 20 "2205" _null_ _null_ _null_ _null_ currval_oid _null_ _null_ _null_ ));
DESCR("sequence current value");
! DATA(insert OID = 1576 ( setval PGNSP PGUID 12 1 0 0 f f f t f v 2 0 20 "2205 20" _null_ _null_ _null_ _null_ setval_oid _null_ _null_ _null_ ));
DESCR("set sequence value");
! DATA(insert OID = 1765 ( setval PGNSP PGUID 12 1 0 0 f f f t f v 3 0 20 "2205 20 16" _null_ _null_ _null_ _null_ setval3_oid _null_ _null_ _null_ ));
DESCR("set sequence value and iscalled status");
! DATA(insert OID = 1579 ( varbit_in PGNSP PGUID 12 1 0 0 f f f t f i 3 0 1562 "2275 26 23" _null_ _null_ _null_ _null_ varbit_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1580 ( varbit_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "1562" _null_ _null_ _null_ _null_ varbit_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2902 ( varbittypmodin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1263" _null_ _null_ _null_ _null_ varbittypmodin _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 2921 ( varbittypmodout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ varbittypmodout _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 1581 ( biteq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1560 1560" _null_ _null_ _null_ _null_ biteq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1582 ( bitne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1560 1560" _null_ _null_ _null_ _null_ bitne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1592 ( bitge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1560 1560" _null_ _null_ _null_ _null_ bitge _null_ _null_ _null_ ));
DESCR("greater than or equal");
! DATA(insert OID = 1593 ( bitgt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1560 1560" _null_ _null_ _null_ _null_ bitgt _null_ _null_ _null_ ));
DESCR("greater than");
! DATA(insert OID = 1594 ( bitle PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1560 1560" _null_ _null_ _null_ _null_ bitle _null_ _null_ _null_ ));
DESCR("less than or equal");
! DATA(insert OID = 1595 ( bitlt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1560 1560" _null_ _null_ _null_ _null_ bitlt _null_ _null_ _null_ ));
DESCR("less than");
! DATA(insert OID = 1596 ( bitcmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "1560 1560" _null_ _null_ _null_ _null_ bitcmp _null_ _null_ _null_ ));
DESCR("compare");
! DATA(insert OID = 1598 ( random PGNSP PGUID 12 1 0 0 f f f t f v 0 0 701 "" _null_ _null_ _null_ _null_ drandom _null_ _null_ _null_ ));
DESCR("random value");
! DATA(insert OID = 1599 ( setseed PGNSP PGUID 12 1 0 0 f f f t f v 1 0 2278 "701" _null_ _null_ _null_ _null_ setseed _null_ _null_ _null_ ));
DESCR("set random seed");
/* OIDS 1600 - 1699 */
! DATA(insert OID = 1600 ( asin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dasin _null_ _null_ _null_ ));
DESCR("arcsine");
! DATA(insert OID = 1601 ( acos PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dacos _null_ _null_ _null_ ));
DESCR("arccosine");
! DATA(insert OID = 1602 ( atan PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ datan _null_ _null_ _null_ ));
DESCR("arctangent");
! DATA(insert OID = 1603 ( atan2 PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ datan2 _null_ _null_ _null_ ));
DESCR("arctangent, two arguments");
! DATA(insert OID = 1604 ( sin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dsin _null_ _null_ _null_ ));
DESCR("sine");
! DATA(insert OID = 1605 ( cos PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dcos _null_ _null_ _null_ ));
DESCR("cosine");
! DATA(insert OID = 1606 ( tan PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dtan _null_ _null_ _null_ ));
DESCR("tangent");
! DATA(insert OID = 1607 ( cot PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ dcot _null_ _null_ _null_ ));
DESCR("cotangent");
! DATA(insert OID = 1608 ( degrees PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ degrees _null_ _null_ _null_ ));
DESCR("radians to degrees");
! DATA(insert OID = 1609 ( radians PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ radians _null_ _null_ _null_ ));
DESCR("degrees to radians");
! DATA(insert OID = 1610 ( pi PGNSP PGUID 12 1 0 0 f f f t f i 0 0 701 "" _null_ _null_ _null_ _null_ dpi _null_ _null_ _null_ ));
DESCR("PI");
! DATA(insert OID = 1618 ( interval_mul PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1186 "1186 701" _null_ _null_ _null_ _null_ interval_mul _null_ _null_ _null_ ));
DESCR("multiply interval");
! DATA(insert OID = 1620 ( ascii PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "25" _null_ _null_ _null_ _null_ ascii _null_ _null_ _null_ ));
DESCR("convert first char to int4");
! DATA(insert OID = 1621 ( chr PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "23" _null_ _null_ _null_ _null_ chr _null_ _null_ _null_ ));
DESCR("convert int4 to char");
! DATA(insert OID = 1622 ( repeat PGNSP PGUID 12 1 0 0 f f f t f i 2 0 25 "25 23" _null_ _null_ _null_ _null_ repeat _null_ _null_ _null_ ));
DESCR("replicate string int4 times");
! DATA(insert OID = 1623 ( similar_escape PGNSP PGUID 12 1 0 0 f f f f f i 2 0 25 "25 25" _null_ _null_ _null_ _null_ similar_escape _null_ _null_ _null_ ));
DESCR("convert SQL99 regexp pattern to POSIX style");
! DATA(insert OID = 1624 ( mul_d_interval PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1186 "701 1186" _null_ _null_ _null_ _null_ mul_d_interval _null_ _null_ _null_ ));
! DATA(insert OID = 1631 ( bpcharlike PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1042 25" _null_ _null_ _null_ _null_ textlike _null_ _null_ _null_ ));
DESCR("matches LIKE expression");
! DATA(insert OID = 1632 ( bpcharnlike PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1042 25" _null_ _null_ _null_ _null_ textnlike _null_ _null_ _null_ ));
DESCR("does not match LIKE expression");
! DATA(insert OID = 1633 ( texticlike PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ texticlike _null_ _null_ _null_ ));
DESCR("matches LIKE expression, case-insensitive");
! DATA(insert OID = 1634 ( texticnlike PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ texticnlike _null_ _null_ _null_ ));
DESCR("does not match LIKE expression, case-insensitive");
! DATA(insert OID = 1635 ( nameiclike PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "19 25" _null_ _null_ _null_ _null_ nameiclike _null_ _null_ _null_ ));
DESCR("matches LIKE expression, case-insensitive");
! DATA(insert OID = 1636 ( nameicnlike PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "19 25" _null_ _null_ _null_ _null_ nameicnlike _null_ _null_ _null_ ));
DESCR("does not match LIKE expression, case-insensitive");
! DATA(insert OID = 1637 ( like_escape PGNSP PGUID 12 1 0 0 f f f t f i 2 0 25 "25 25" _null_ _null_ _null_ _null_ like_escape _null_ _null_ _null_ ));
DESCR("convert LIKE pattern to use backslash escapes");
! DATA(insert OID = 1656 ( bpcharicregexeq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1042 25" _null_ _null_ _null_ _null_ texticregexeq _null_ _null_ _null_ ));
DESCR("matches regex., case-insensitive");
! DATA(insert OID = 1657 ( bpcharicregexne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1042 25" _null_ _null_ _null_ _null_ texticregexne _null_ _null_ _null_ ));
DESCR("does not match regex., case-insensitive");
! DATA(insert OID = 1658 ( bpcharregexeq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1042 25" _null_ _null_ _null_ _null_ textregexeq _null_ _null_ _null_ ));
DESCR("matches regex., case-sensitive");
! DATA(insert OID = 1659 ( bpcharregexne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1042 25" _null_ _null_ _null_ _null_ textregexne _null_ _null_ _null_ ));
DESCR("does not match regex., case-sensitive");
! DATA(insert OID = 1660 ( bpchariclike PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1042 25" _null_ _null_ _null_ _null_ texticlike _null_ _null_ _null_ ));
DESCR("matches LIKE expression, case-insensitive");
! DATA(insert OID = 1661 ( bpcharicnlike PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1042 25" _null_ _null_ _null_ _null_ texticnlike _null_ _null_ _null_ ));
DESCR("does not match LIKE expression, case-insensitive");
! DATA(insert OID = 1689 ( flatfile_update_trigger PGNSP PGUID 12 1 0 0 f f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ flatfile_update_trigger _null_ _null_ _null_ ));
DESCR("update flat-file copy of a shared catalog");
/* Oracle Compatibility Related Functions - By Edmund Mergl */
! DATA(insert OID = 868 ( strpos PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "25 25" _null_ _null_ _null_ _null_ textpos _null_ _null_ _null_ ));
DESCR("find position of substring");
! DATA(insert OID = 870 ( lower PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ lower _null_ _null_ _null_ ));
DESCR("lowercase");
! DATA(insert OID = 871 ( upper PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ upper _null_ _null_ _null_ ));
DESCR("uppercase");
! DATA(insert OID = 872 ( initcap PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ initcap _null_ _null_ _null_ ));
DESCR("capitalize each word");
! DATA(insert OID = 873 ( lpad PGNSP PGUID 12 1 0 0 f f f t f i 3 0 25 "25 23 25" _null_ _null_ _null_ _null_ lpad _null_ _null_ _null_ ));
DESCR("left-pad string to length");
! DATA(insert OID = 874 ( rpad PGNSP PGUID 12 1 0 0 f f f t f i 3 0 25 "25 23 25" _null_ _null_ _null_ _null_ rpad _null_ _null_ _null_ ));
DESCR("right-pad string to length");
! DATA(insert OID = 875 ( ltrim PGNSP PGUID 12 1 0 0 f f f t f i 2 0 25 "25 25" _null_ _null_ _null_ _null_ ltrim _null_ _null_ _null_ ));
DESCR("trim selected characters from left end of string");
! DATA(insert OID = 876 ( rtrim PGNSP PGUID 12 1 0 0 f f f t f i 2 0 25 "25 25" _null_ _null_ _null_ _null_ rtrim _null_ _null_ _null_ ));
DESCR("trim selected characters from right end of string");
! DATA(insert OID = 877 ( substr PGNSP PGUID 12 1 0 0 f f f t f i 3 0 25 "25 23 23" _null_ _null_ _null_ _null_ text_substr _null_ _null_ _null_ ));
DESCR("return portion of string");
! DATA(insert OID = 878 ( translate PGNSP PGUID 12 1 0 0 f f f t f i 3 0 25 "25 25 25" _null_ _null_ _null_ _null_ translate _null_ _null_ _null_ ));
DESCR("map a set of character appearing in string");
! DATA(insert OID = 879 ( lpad PGNSP PGUID 14 1 0 0 f f f t f i 2 0 25 "25 23" _null_ _null_ _null_ _null_ "select pg_catalog.lpad($1, $2, '' '')" _null_ _null_ _null_ ));
DESCR("left-pad string to length");
! DATA(insert OID = 880 ( rpad PGNSP PGUID 14 1 0 0 f f f t f i 2 0 25 "25 23" _null_ _null_ _null_ _null_ "select pg_catalog.rpad($1, $2, '' '')" _null_ _null_ _null_ ));
DESCR("right-pad string to length");
! DATA(insert OID = 881 ( ltrim PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ ltrim1 _null_ _null_ _null_ ));
DESCR("trim spaces from left end of string");
! DATA(insert OID = 882 ( rtrim PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ rtrim1 _null_ _null_ _null_ ));
DESCR("trim spaces from right end of string");
! DATA(insert OID = 883 ( substr PGNSP PGUID 12 1 0 0 f f f t f i 2 0 25 "25 23" _null_ _null_ _null_ _null_ text_substr_no_len _null_ _null_ _null_ ));
DESCR("return portion of string");
! DATA(insert OID = 884 ( btrim PGNSP PGUID 12 1 0 0 f f f t f i 2 0 25 "25 25" _null_ _null_ _null_ _null_ btrim _null_ _null_ _null_ ));
DESCR("trim selected characters from both ends of string");
! DATA(insert OID = 885 ( btrim PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ btrim1 _null_ _null_ _null_ ));
DESCR("trim spaces from both ends of string");
! DATA(insert OID = 936 ( substring PGNSP PGUID 12 1 0 0 f f f t f i 3 0 25 "25 23 23" _null_ _null_ _null_ _null_ text_substr _null_ _null_ _null_ ));
DESCR("return portion of string");
! DATA(insert OID = 937 ( substring PGNSP PGUID 12 1 0 0 f f f t f i 2 0 25 "25 23" _null_ _null_ _null_ _null_ text_substr_no_len _null_ _null_ _null_ ));
DESCR("return portion of string");
! DATA(insert OID = 2087 ( replace PGNSP PGUID 12 1 0 0 f f f t f i 3 0 25 "25 25 25" _null_ _null_ _null_ _null_ replace_text _null_ _null_ _null_ ));
DESCR("replace all occurrences in string of old_substr with new_substr");
! DATA(insert OID = 2284 ( regexp_replace PGNSP PGUID 12 1 0 0 f f f t f i 3 0 25 "25 25 25" _null_ _null_ _null_ _null_ textregexreplace_noopt _null_ _null_ _null_ ));
DESCR("replace text using regexp");
! DATA(insert OID = 2285 ( regexp_replace PGNSP PGUID 12 1 0 0 f f f t f i 4 0 25 "25 25 25 25" _null_ _null_ _null_ _null_ textregexreplace _null_ _null_ _null_ ));
DESCR("replace text using regexp");
! DATA(insert OID = 2763 ( regexp_matches PGNSP PGUID 12 1 1 0 f f f t t i 2 0 1009 "25 25" _null_ _null_ _null_ _null_ regexp_matches_no_flags _null_ _null_ _null_ ));
DESCR("return all match groups for regexp");
! DATA(insert OID = 2764 ( regexp_matches PGNSP PGUID 12 1 10 0 f f f t t i 3 0 1009 "25 25 25" _null_ _null_ _null_ _null_ regexp_matches _null_ _null_ _null_ ));
DESCR("return all match groups for regexp");
! DATA(insert OID = 2088 ( split_part PGNSP PGUID 12 1 0 0 f f f t f i 3 0 25 "25 25 23" _null_ _null_ _null_ _null_ split_text _null_ _null_ _null_ ));
DESCR("split string by field_sep and return field_num");
! DATA(insert OID = 2765 ( regexp_split_to_table PGNSP PGUID 12 1 1000 0 f f f t t i 2 0 25 "25 25" _null_ _null_ _null_ _null_ regexp_split_to_table_no_flags _null_ _null_ _null_ ));
DESCR("split string by pattern");
! DATA(insert OID = 2766 ( regexp_split_to_table PGNSP PGUID 12 1 1000 0 f f f t t i 3 0 25 "25 25 25" _null_ _null_ _null_ _null_ regexp_split_to_table _null_ _null_ _null_ ));
DESCR("split string by pattern");
! DATA(insert OID = 2767 ( regexp_split_to_array PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1009 "25 25" _null_ _null_ _null_ _null_ regexp_split_to_array_no_flags _null_ _null_ _null_ ));
DESCR("split string by pattern");
! DATA(insert OID = 2768 ( regexp_split_to_array PGNSP PGUID 12 1 0 0 f f f t f i 3 0 1009 "25 25 25" _null_ _null_ _null_ _null_ regexp_split_to_array _null_ _null_ _null_ ));
DESCR("split string by pattern");
! DATA(insert OID = 2089 ( to_hex PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "23" _null_ _null_ _null_ _null_ to_hex32 _null_ _null_ _null_ ));
DESCR("convert int4 number to hex");
! DATA(insert OID = 2090 ( to_hex PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "20" _null_ _null_ _null_ _null_ to_hex64 _null_ _null_ _null_ ));
DESCR("convert int8 number to hex");
/* for character set encoding support */
/* return database encoding name */
! DATA(insert OID = 1039 ( getdatabaseencoding PGNSP PGUID 12 1 0 0 f f f t f s 0 0 19 "" _null_ _null_ _null_ _null_ getdatabaseencoding _null_ _null_ _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 1 0 0 f f f t f s 0 0 19 "" _null_ _null_ _null_ _null_ pg_client_encoding _null_ _null_ _null_ ));
DESCR("encoding name of current database");
! DATA(insert OID = 1713 ( length PGNSP PGUID 12 1 0 0 f f f t f s 2 0 23 "17 19" _null_ _null_ _null_ _null_ length_in_encoding _null_ _null_ _null_ ));
DESCR("length of string in specified encoding");
! DATA(insert OID = 1714 ( convert_from PGNSP PGUID 12 1 0 0 f f f t f s 2 0 25 "17 19" _null_ _null_ _null_ _null_ pg_convert_from _null_ _null_ _null_ ));
DESCR("convert string with specified source encoding name");
! DATA(insert OID = 1717 ( convert_to PGNSP PGUID 12 1 0 0 f f f t f s 2 0 17 "25 19" _null_ _null_ _null_ _null_ pg_convert_to _null_ _null_ _null_ ));
DESCR("convert string with specified destination encoding name");
! DATA(insert OID = 1813 ( convert PGNSP PGUID 12 1 0 0 f f f t f s 3 0 17 "17 19 19" _null_ _null_ _null_ _null_ pg_convert _null_ _null_ _null_ ));
DESCR("convert string with specified encoding names");
! DATA(insert OID = 1264 ( pg_char_to_encoding PGNSP PGUID 12 1 0 0 f f f t f s 1 0 23 "19" _null_ _null_ _null_ _null_ PG_char_to_encoding _null_ _null_ _null_ ));
DESCR("convert encoding name to encoding id");
! DATA(insert OID = 1597 ( pg_encoding_to_char PGNSP PGUID 12 1 0 0 f f f t f s 1 0 19 "23" _null_ _null_ _null_ _null_ PG_encoding_to_char _null_ _null_ _null_ ));
DESCR("convert encoding id to encoding name");
! DATA(insert OID = 1638 ( oidgt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "26 26" _null_ _null_ _null_ _null_ oidgt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1639 ( oidge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "26 26" _null_ _null_ _null_ _null_ oidge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
/* System-view support functions */
! DATA(insert OID = 1573 ( pg_get_ruledef PGNSP PGUID 12 1 0 0 f f f t f s 1 0 25 "26" _null_ _null_ _null_ _null_ pg_get_ruledef _null_ _null_ _null_ ));
DESCR("source text of a rule");
! DATA(insert OID = 1640 ( pg_get_viewdef PGNSP PGUID 12 1 0 0 f f f t f s 1 0 25 "25" _null_ _null_ _null_ _null_ pg_get_viewdef_name _null_ _null_ _null_ ));
DESCR("select statement of a view");
! DATA(insert OID = 1641 ( pg_get_viewdef PGNSP PGUID 12 1 0 0 f f f t f s 1 0 25 "26" _null_ _null_ _null_ _null_ pg_get_viewdef _null_ _null_ _null_ ));
DESCR("select statement of a view");
! DATA(insert OID = 1642 ( pg_get_userbyid PGNSP PGUID 12 1 0 0 f f f t f s 1 0 19 "26" _null_ _null_ _null_ _null_ pg_get_userbyid _null_ _null_ _null_ ));
DESCR("role name by OID (with fallback)");
! DATA(insert OID = 1643 ( pg_get_indexdef PGNSP PGUID 12 1 0 0 f f f t f s 1 0 25 "26" _null_ _null_ _null_ _null_ pg_get_indexdef _null_ _null_ _null_ ));
DESCR("index description");
! DATA(insert OID = 1662 ( pg_get_triggerdef PGNSP PGUID 12 1 0 0 f f f t f s 1 0 25 "26" _null_ _null_ _null_ _null_ pg_get_triggerdef _null_ _null_ _null_ ));
DESCR("trigger description");
! DATA(insert OID = 1387 ( pg_get_constraintdef PGNSP PGUID 12 1 0 0 f f f t f s 1 0 25 "26" _null_ _null_ _null_ _null_ pg_get_constraintdef _null_ _null_ _null_ ));
DESCR("constraint description");
! DATA(insert OID = 1716 ( pg_get_expr PGNSP PGUID 12 1 0 0 f f f t f s 2 0 25 "25 26" _null_ _null_ _null_ _null_ pg_get_expr _null_ _null_ _null_ ));
DESCR("deparse an encoded expression");
! DATA(insert OID = 1665 ( pg_get_serial_sequence PGNSP PGUID 12 1 0 0 f f f t f s 2 0 25 "25 25" _null_ _null_ _null_ _null_ pg_get_serial_sequence _null_ _null_ _null_ ));
DESCR("name of sequence for a serial column");
! DATA(insert OID = 2098 ( pg_get_functiondef PGNSP PGUID 12 1 0 0 f f f t f s 1 0 25 "26" _null_ _null_ _null_ _null_ pg_get_functiondef _null_ _null_ _null_ ));
DESCR("definition of a function");
! DATA(insert OID = 2162 ( pg_get_function_arguments PGNSP PGUID 12 1 0 0 f f f t f s 1 0 25 "26" _null_ _null_ _null_ _null_ pg_get_function_arguments _null_ _null_ _null_ ));
DESCR("argument list of a function");
! DATA(insert OID = 2232 ( pg_get_function_identity_arguments PGNSP PGUID 12 1 0 0 f f f t f s 1 0 25 "26" _null_ _null_ _null_ _null_ pg_get_function_identity_arguments _null_ _null_ _null_ ));
DESCR("identity argument list of a function");
! DATA(insert OID = 2165 ( pg_get_function_result PGNSP PGUID 12 1 0 0 f f f t f s 1 0 25 "26" _null_ _null_ _null_ _null_ pg_get_function_result _null_ _null_ _null_ ));
DESCR("result type of a function");
! DATA(insert OID = 1686 ( pg_get_keywords PGNSP PGUID 12 10 400 0 f f f t t s 0 0 2249 "" "{25,18,25}" "{o,o,o}" "{word,catcode,catdesc}" _null_ pg_get_keywords _null_ _null_ _null_ ));
DESCR("list of SQL keywords");
! DATA(insert OID = 1619 ( pg_typeof PGNSP PGUID 12 1 0 0 f f f f f s 1 0 2206 "2276" _null_ _null_ _null_ _null_ pg_typeof _null_ _null_ _null_ ));
DESCR("returns the type of the argument");
/* Generic referential integrity constraint triggers */
! DATA(insert OID = 1644 ( RI_FKey_check_ins PGNSP PGUID 12 1 0 0 f f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_check_ins _null_ _null_ _null_ ));
DESCR("referential integrity FOREIGN KEY ... REFERENCES");
! DATA(insert OID = 1645 ( RI_FKey_check_upd PGNSP PGUID 12 1 0 0 f f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_check_upd _null_ _null_ _null_ ));
DESCR("referential integrity FOREIGN KEY ... REFERENCES");
! DATA(insert OID = 1646 ( RI_FKey_cascade_del PGNSP PGUID 12 1 0 0 f f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_cascade_del _null_ _null_ _null_ ));
DESCR("referential integrity ON DELETE CASCADE");
! DATA(insert OID = 1647 ( RI_FKey_cascade_upd PGNSP PGUID 12 1 0 0 f f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_cascade_upd _null_ _null_ _null_ ));
DESCR("referential integrity ON UPDATE CASCADE");
! DATA(insert OID = 1648 ( RI_FKey_restrict_del PGNSP PGUID 12 1 0 0 f f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_restrict_del _null_ _null_ _null_ ));
DESCR("referential integrity ON DELETE RESTRICT");
! DATA(insert OID = 1649 ( RI_FKey_restrict_upd PGNSP PGUID 12 1 0 0 f f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_restrict_upd _null_ _null_ _null_ ));
DESCR("referential integrity ON UPDATE RESTRICT");
! DATA(insert OID = 1650 ( RI_FKey_setnull_del PGNSP PGUID 12 1 0 0 f f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_setnull_del _null_ _null_ _null_ ));
DESCR("referential integrity ON DELETE SET NULL");
! DATA(insert OID = 1651 ( RI_FKey_setnull_upd PGNSP PGUID 12 1 0 0 f f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_setnull_upd _null_ _null_ _null_ ));
DESCR("referential integrity ON UPDATE SET NULL");
! DATA(insert OID = 1652 ( RI_FKey_setdefault_del PGNSP PGUID 12 1 0 0 f f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_setdefault_del _null_ _null_ _null_ ));
DESCR("referential integrity ON DELETE SET DEFAULT");
! DATA(insert OID = 1653 ( RI_FKey_setdefault_upd PGNSP PGUID 12 1 0 0 f f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_setdefault_upd _null_ _null_ _null_ ));
DESCR("referential integrity ON UPDATE SET DEFAULT");
! DATA(insert OID = 1654 ( RI_FKey_noaction_del PGNSP PGUID 12 1 0 0 f f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_noaction_del _null_ _null_ _null_ ));
DESCR("referential integrity ON DELETE NO ACTION");
! DATA(insert OID = 1655 ( RI_FKey_noaction_upd PGNSP PGUID 12 1 0 0 f f f t f v 0 0 2279 "" _null_ _null_ _null_ _null_ RI_FKey_noaction_upd _null_ _null_ _null_ ));
DESCR("referential integrity ON UPDATE NO ACTION");
! DATA(insert OID = 1666 ( varbiteq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1562 1562" _null_ _null_ _null_ _null_ biteq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1667 ( varbitne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1562 1562" _null_ _null_ _null_ _null_ bitne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1668 ( varbitge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1562 1562" _null_ _null_ _null_ _null_ bitge _null_ _null_ _null_ ));
DESCR("greater than or equal");
! DATA(insert OID = 1669 ( varbitgt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1562 1562" _null_ _null_ _null_ _null_ bitgt _null_ _null_ _null_ ));
DESCR("greater than");
! DATA(insert OID = 1670 ( varbitle PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1562 1562" _null_ _null_ _null_ _null_ bitle _null_ _null_ _null_ ));
DESCR("less than or equal");
! DATA(insert OID = 1671 ( varbitlt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1562 1562" _null_ _null_ _null_ _null_ bitlt _null_ _null_ _null_ ));
DESCR("less than");
! DATA(insert OID = 1672 ( varbitcmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "1562 1562" _null_ _null_ _null_ _null_ bitcmp _null_ _null_ _null_ ));
DESCR("compare");
! DATA(insert OID = 1673 ( bitand PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1560 "1560 1560" _null_ _null_ _null_ _null_ bitand _null_ _null_ _null_ ));
DESCR("bitwise and");
! DATA(insert OID = 1674 ( bitor PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1560 "1560 1560" _null_ _null_ _null_ _null_ bitor _null_ _null_ _null_ ));
DESCR("bitwise or");
! DATA(insert OID = 1675 ( bitxor PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1560 "1560 1560" _null_ _null_ _null_ _null_ bitxor _null_ _null_ _null_ ));
DESCR("bitwise exclusive or");
! DATA(insert OID = 1676 ( bitnot PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1560 "1560" _null_ _null_ _null_ _null_ bitnot _null_ _null_ _null_ ));
DESCR("bitwise not");
! DATA(insert OID = 1677 ( bitshiftleft PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1560 "1560 23" _null_ _null_ _null_ _null_ bitshiftleft _null_ _null_ _null_ ));
DESCR("bitwise left shift");
! DATA(insert OID = 1678 ( bitshiftright PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1560 "1560 23" _null_ _null_ _null_ _null_ bitshiftright _null_ _null_ _null_ ));
DESCR("bitwise right shift");
! DATA(insert OID = 1679 ( bitcat PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1562 "1562 1562" _null_ _null_ _null_ _null_ bitcat _null_ _null_ _null_ ));
DESCR("bitwise concatenation");
! DATA(insert OID = 1680 ( substring PGNSP PGUID 12 1 0 0 f f f t f i 3 0 1560 "1560 23 23" _null_ _null_ _null_ _null_ bitsubstr _null_ _null_ _null_ ));
DESCR("return portion of bitstring");
! DATA(insert OID = 1681 ( length PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1560" _null_ _null_ _null_ _null_ bitlength _null_ _null_ _null_ ));
DESCR("bitstring length");
! DATA(insert OID = 1682 ( octet_length PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1560" _null_ _null_ _null_ _null_ bitoctetlength _null_ _null_ _null_ ));
DESCR("octet length");
! DATA(insert OID = 1683 ( bit PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1560 "23 23" _null_ _null_ _null_ _null_ bitfromint4 _null_ _null_ _null_ ));
DESCR("int4 to bitstring");
! DATA(insert OID = 1684 ( int4 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1560" _null_ _null_ _null_ _null_ bittoint4 _null_ _null_ _null_ ));
DESCR("bitstring to int4");
! DATA(insert OID = 1685 ( bit PGNSP PGUID 12 1 0 0 f f f t f i 3 0 1560 "1560 23 16" _null_ _null_ _null_ _null_ bit _null_ _null_ _null_ ));
DESCR("adjust bit() to typmod length");
! DATA(insert OID = 1687 ( varbit PGNSP PGUID 12 1 0 0 f f f t f i 3 0 1562 "1562 23 16" _null_ _null_ _null_ _null_ varbit _null_ _null_ _null_ ));
DESCR("adjust varbit() to typmod length");
! DATA(insert OID = 1698 ( position PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "1560 1560" _null_ _null_ _null_ _null_ bitposition _null_ _null_ _null_ ));
DESCR("return position of sub-bitstring");
! DATA(insert OID = 1699 ( substring PGNSP PGUID 14 1 0 0 f f f t f i 2 0 1560 "1560 23" _null_ _null_ _null_ _null_ "select pg_catalog.substring($1, $2, -1)" _null_ _null_ _null_ ));
DESCR("return portion of bitstring");
/* for mac type support */
! DATA(insert OID = 436 ( macaddr_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 829 "2275" _null_ _null_ _null_ _null_ macaddr_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 437 ( macaddr_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "829" _null_ _null_ _null_ _null_ macaddr_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 753 ( trunc PGNSP PGUID 12 1 0 0 f f f t f i 1 0 829 "829" _null_ _null_ _null_ _null_ macaddr_trunc _null_ _null_ _null_ ));
DESCR("MAC manufacturer fields");
! DATA(insert OID = 830 ( macaddr_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "829 829" _null_ _null_ _null_ _null_ macaddr_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 831 ( macaddr_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "829 829" _null_ _null_ _null_ _null_ macaddr_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 832 ( macaddr_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "829 829" _null_ _null_ _null_ _null_ macaddr_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 833 ( macaddr_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "829 829" _null_ _null_ _null_ _null_ macaddr_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 834 ( macaddr_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "829 829" _null_ _null_ _null_ _null_ macaddr_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 835 ( macaddr_ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "829 829" _null_ _null_ _null_ _null_ macaddr_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 836 ( macaddr_cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "829 829" _null_ _null_ _null_ _null_ macaddr_cmp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
/* for inet type support */
! DATA(insert OID = 910 ( inet_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 869 "2275" _null_ _null_ _null_ _null_ inet_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 911 ( inet_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "869" _null_ _null_ _null_ _null_ inet_out _null_ _null_ _null_ ));
DESCR("I/O");
/* for cidr type support */
! DATA(insert OID = 1267 ( cidr_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 650 "2275" _null_ _null_ _null_ _null_ cidr_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1427 ( cidr_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "650" _null_ _null_ _null_ _null_ cidr_out _null_ _null_ _null_ ));
DESCR("I/O");
/* these are used for both inet and cidr */
! DATA(insert OID = 920 ( network_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "869 869" _null_ _null_ _null_ _null_ network_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 921 ( network_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "869 869" _null_ _null_ _null_ _null_ network_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 922 ( network_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "869 869" _null_ _null_ _null_ _null_ network_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 923 ( network_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "869 869" _null_ _null_ _null_ _null_ network_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 924 ( network_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "869 869" _null_ _null_ _null_ _null_ network_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 925 ( network_ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "869 869" _null_ _null_ _null_ _null_ network_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 926 ( network_cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "869 869" _null_ _null_ _null_ _null_ network_cmp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 927 ( network_sub PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "869 869" _null_ _null_ _null_ _null_ network_sub _null_ _null_ _null_ ));
DESCR("is-subnet");
! DATA(insert OID = 928 ( network_subeq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "869 869" _null_ _null_ _null_ _null_ network_subeq _null_ _null_ _null_ ));
DESCR("is-subnet-or-equal");
! DATA(insert OID = 929 ( network_sup PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "869 869" _null_ _null_ _null_ _null_ network_sup _null_ _null_ _null_ ));
DESCR("is-supernet");
! DATA(insert OID = 930 ( network_supeq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "869 869" _null_ _null_ _null_ _null_ network_supeq _null_ _null_ _null_ ));
DESCR("is-supernet-or-equal");
/* inet/cidr functions */
! DATA(insert OID = 598 ( abbrev PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "869" _null_ _null_ _null_ _null_ inet_abbrev _null_ _null_ _null_ ));
DESCR("abbreviated display of inet value");
! DATA(insert OID = 599 ( abbrev PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "650" _null_ _null_ _null_ _null_ cidr_abbrev _null_ _null_ _null_ ));
DESCR("abbreviated display of cidr value");
! DATA(insert OID = 605 ( set_masklen PGNSP PGUID 12 1 0 0 f f f t f i 2 0 869 "869 23" _null_ _null_ _null_ _null_ inet_set_masklen _null_ _null_ _null_ ));
DESCR("change netmask of inet");
! DATA(insert OID = 635 ( set_masklen PGNSP PGUID 12 1 0 0 f f f t f i 2 0 650 "650 23" _null_ _null_ _null_ _null_ cidr_set_masklen _null_ _null_ _null_ ));
DESCR("change netmask of cidr");
! DATA(insert OID = 711 ( family PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "869" _null_ _null_ _null_ _null_ network_family _null_ _null_ _null_ ));
DESCR("address family (4 for IPv4, 6 for IPv6)");
! DATA(insert OID = 683 ( network PGNSP PGUID 12 1 0 0 f f f t f i 1 0 650 "869" _null_ _null_ _null_ _null_ network_network _null_ _null_ _null_ ));
DESCR("network part of address");
! DATA(insert OID = 696 ( netmask PGNSP PGUID 12 1 0 0 f f f t f i 1 0 869 "869" _null_ _null_ _null_ _null_ network_netmask _null_ _null_ _null_ ));
DESCR("netmask of address");
! DATA(insert OID = 697 ( masklen PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "869" _null_ _null_ _null_ _null_ network_masklen _null_ _null_ _null_ ));
DESCR("netmask length");
! DATA(insert OID = 698 ( broadcast PGNSP PGUID 12 1 0 0 f f f t f i 1 0 869 "869" _null_ _null_ _null_ _null_ network_broadcast _null_ _null_ _null_ ));
DESCR("broadcast address of network");
! DATA(insert OID = 699 ( host PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "869" _null_ _null_ _null_ _null_ network_host _null_ _null_ _null_ ));
DESCR("show address octets only");
! DATA(insert OID = 730 ( text PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "869" _null_ _null_ _null_ _null_ network_show _null_ _null_ _null_ ));
DESCR("show all parts of inet/cidr value");
! DATA(insert OID = 1362 ( hostmask PGNSP PGUID 12 1 0 0 f f f t f i 1 0 869 "869" _null_ _null_ _null_ _null_ network_hostmask _null_ _null_ _null_ ));
DESCR("hostmask of address");
! DATA(insert OID = 1715 ( cidr PGNSP PGUID 12 1 0 0 f f f t f i 1 0 650 "869" _null_ _null_ _null_ _null_ inet_to_cidr _null_ _null_ _null_ ));
DESCR("coerce inet to cidr");
! DATA(insert OID = 2196 ( inet_client_addr PGNSP PGUID 12 1 0 0 f f f f f s 0 0 869 "" _null_ _null_ _null_ _null_ inet_client_addr _null_ _null_ _null_ ));
DESCR("inet address of the client");
! DATA(insert OID = 2197 ( inet_client_port PGNSP PGUID 12 1 0 0 f f f f f s 0 0 23 "" _null_ _null_ _null_ _null_ inet_client_port _null_ _null_ _null_ ));
DESCR("client's port number for this connection");
! DATA(insert OID = 2198 ( inet_server_addr PGNSP PGUID 12 1 0 0 f f f f f s 0 0 869 "" _null_ _null_ _null_ _null_ inet_server_addr _null_ _null_ _null_ ));
DESCR("inet address of the server");
! DATA(insert OID = 2199 ( inet_server_port PGNSP PGUID 12 1 0 0 f f f f f s 0 0 23 "" _null_ _null_ _null_ _null_ inet_server_port _null_ _null_ _null_ ));
DESCR("server's port number for this connection");
! DATA(insert OID = 2627 ( inetnot PGNSP PGUID 12 1 0 0 f f f t f i 1 0 869 "869" _null_ _null_ _null_ _null_ inetnot _null_ _null_ _null_ ));
DESCR("bitwise not");
! DATA(insert OID = 2628 ( inetand PGNSP PGUID 12 1 0 0 f f f t f i 2 0 869 "869 869" _null_ _null_ _null_ _null_ inetand _null_ _null_ _null_ ));
DESCR("bitwise and");
! DATA(insert OID = 2629 ( inetor PGNSP PGUID 12 1 0 0 f f f t f i 2 0 869 "869 869" _null_ _null_ _null_ _null_ inetor _null_ _null_ _null_ ));
DESCR("bitwise or");
! DATA(insert OID = 2630 ( inetpl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 869 "869 20" _null_ _null_ _null_ _null_ inetpl _null_ _null_ _null_ ));
DESCR("add integer to inet value");
! DATA(insert OID = 2631 ( int8pl_inet PGNSP PGUID 14 1 0 0 f f f t f i 2 0 869 "20 869" _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ ));
DESCR("add integer to inet value");
! DATA(insert OID = 2632 ( inetmi_int8 PGNSP PGUID 12 1 0 0 f f f t f i 2 0 869 "869 20" _null_ _null_ _null_ _null_ inetmi_int8 _null_ _null_ _null_ ));
DESCR("subtract integer from inet value");
! DATA(insert OID = 2633 ( inetmi PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "869 869" _null_ _null_ _null_ _null_ inetmi _null_ _null_ _null_ ));
DESCR("subtract inet values");
! DATA(insert OID = 1690 ( time_mi_time PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1186 "1083 1083" _null_ _null_ _null_ _null_ time_mi_time _null_ _null_ _null_ ));
DESCR("minus");
! DATA(insert OID = 1691 ( boolle PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "16 16" _null_ _null_ _null_ _null_ boolle _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1692 ( boolge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "16 16" _null_ _null_ _null_ _null_ boolge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1693 ( btboolcmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "16 16" _null_ _null_ _null_ _null_ btboolcmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 1688 ( time_hash PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1083" _null_ _null_ _null_ _null_ time_hash _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 1696 ( timetz_hash PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1266" _null_ _null_ _null_ _null_ timetz_hash _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 1697 ( interval_hash PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1186" _null_ _null_ _null_ _null_ interval_hash _null_ _null_ _null_ ));
DESCR("hash");
/* OID's 1700 - 1799 NUMERIC data type */
! DATA(insert OID = 1701 ( numeric_in PGNSP PGUID 12 1 0 0 f f f t f i 3 0 1700 "2275 26 23" _null_ _null_ _null_ _null_ numeric_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1702 ( numeric_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "1700" _null_ _null_ _null_ _null_ numeric_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2917 ( numerictypmodin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1263" _null_ _null_ _null_ _null_ numerictypmodin _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 2918 ( numerictypmodout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "23" _null_ _null_ _null_ _null_ numerictypmodout _null_ _null_ _null_ ));
DESCR("I/O typmod");
! DATA(insert OID = 1703 ( numeric PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1700 "1700 23" _null_ _null_ _null_ _null_ numeric _null_ _null_ _null_ ));
DESCR("adjust numeric to typmod precision/scale");
! DATA(insert OID = 1704 ( numeric_abs PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 1705 ( abs PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_abs _null_ _null_ _null_ ));
DESCR("absolute value");
! DATA(insert OID = 1706 ( sign PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_sign _null_ _null_ _null_ ));
DESCR("sign of value");
! DATA(insert OID = 1707 ( round PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1700 "1700 23" _null_ _null_ _null_ _null_ numeric_round _null_ _null_ _null_ ));
DESCR("value rounded to 'scale'");
! DATA(insert OID = 1708 ( round PGNSP PGUID 14 1 0 0 f f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ "select pg_catalog.round($1,0)" _null_ _null_ _null_ ));
DESCR("value rounded to 'scale' of zero");
! DATA(insert OID = 1709 ( trunc PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1700 "1700 23" _null_ _null_ _null_ _null_ numeric_trunc _null_ _null_ _null_ ));
DESCR("value truncated to 'scale'");
! DATA(insert OID = 1710 ( trunc PGNSP PGUID 14 1 0 0 f f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ "select pg_catalog.trunc($1,0)" _null_ _null_ _null_ ));
DESCR("value truncated to 'scale' of zero");
! DATA(insert OID = 1711 ( ceil PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_ceil _null_ _null_ _null_ ));
DESCR("smallest integer >= value");
! DATA(insert OID = 2167 ( ceiling PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_ceil _null_ _null_ _null_ ));
DESCR("smallest integer >= value");
! DATA(insert OID = 1712 ( floor PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_floor _null_ _null_ _null_ ));
DESCR("largest integer <= value");
! DATA(insert OID = 1718 ( numeric_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1700 1700" _null_ _null_ _null_ _null_ numeric_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1719 ( numeric_ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1700 1700" _null_ _null_ _null_ _null_ numeric_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1720 ( numeric_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1700 1700" _null_ _null_ _null_ _null_ numeric_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1721 ( numeric_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1700 1700" _null_ _null_ _null_ _null_ numeric_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1722 ( numeric_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1700 1700" _null_ _null_ _null_ _null_ numeric_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 1723 ( numeric_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1700 1700" _null_ _null_ _null_ _null_ numeric_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1724 ( numeric_add PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_add _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 1725 ( numeric_sub PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_sub _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 1726 ( numeric_mul PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_mul _null_ _null_ _null_ ));
DESCR("multiply");
! DATA(insert OID = 1727 ( numeric_div PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_div _null_ _null_ _null_ ));
DESCR("divide");
! DATA(insert OID = 1728 ( mod PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_mod _null_ _null_ _null_ ));
DESCR("modulus");
! DATA(insert OID = 1729 ( numeric_mod PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_mod _null_ _null_ _null_ ));
DESCR("modulus");
! DATA(insert OID = 1730 ( sqrt PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_sqrt _null_ _null_ _null_ ));
DESCR("square root");
! DATA(insert OID = 1731 ( numeric_sqrt PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_sqrt _null_ _null_ _null_ ));
DESCR("square root");
! DATA(insert OID = 1732 ( exp PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_exp _null_ _null_ _null_ ));
DESCR("e raised to the power of n");
! DATA(insert OID = 1733 ( numeric_exp PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_exp _null_ _null_ _null_ ));
DESCR("e raised to the power of n");
! DATA(insert OID = 1734 ( ln PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_ln _null_ _null_ _null_ ));
DESCR("natural logarithm of n");
! DATA(insert OID = 1735 ( numeric_ln PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_ln _null_ _null_ _null_ ));
DESCR("natural logarithm of n");
! DATA(insert OID = 1736 ( log PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_log _null_ _null_ _null_ ));
DESCR("logarithm base m of n");
! DATA(insert OID = 1737 ( numeric_log PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_log _null_ _null_ _null_ ));
DESCR("logarithm base m of n");
! DATA(insert OID = 1738 ( pow PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_power _null_ _null_ _null_ ));
DESCR("m raised to the power of n");
! DATA(insert OID = 2169 ( power PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_power _null_ _null_ _null_ ));
DESCR("m raised to the power of n");
! DATA(insert OID = 1739 ( numeric_power PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_power _null_ _null_ _null_ ));
DESCR("m raised to the power of n");
! DATA(insert OID = 1740 ( numeric PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "23" _null_ _null_ _null_ _null_ int4_numeric _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 1741 ( log PGNSP PGUID 14 1 0 0 f f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ "select pg_catalog.log(10, $1)" _null_ _null_ _null_ ));
DESCR("logarithm base 10 of n");
! DATA(insert OID = 1742 ( numeric PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "700" _null_ _null_ _null_ _null_ float4_numeric _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 1743 ( numeric PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "701" _null_ _null_ _null_ _null_ float8_numeric _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 1744 ( int4 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1700" _null_ _null_ _null_ _null_ numeric_int4 _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 1745 ( float4 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 700 "1700" _null_ _null_ _null_ _null_ numeric_float4 _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 1746 ( float8 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "1700" _null_ _null_ _null_ _null_ numeric_float8 _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 1973 ( div PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_div_trunc _null_ _null_ _null_ ));
DESCR("trunc(x/y)");
! DATA(insert OID = 1980 ( numeric_div_trunc PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_div_trunc _null_ _null_ _null_ ));
DESCR("trunc(x/y)");
! DATA(insert OID = 2170 ( width_bucket PGNSP PGUID 12 1 0 0 f f f t f i 4 0 23 "1700 1700 1700 23" _null_ _null_ _null_ _null_ width_bucket_numeric _null_ _null_ _null_ ));
DESCR("bucket number of operand in equidepth histogram");
! DATA(insert OID = 1747 ( time_pl_interval PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1083 "1083 1186" _null_ _null_ _null_ _null_ time_pl_interval _null_ _null_ _null_ ));
DESCR("plus");
! DATA(insert OID = 1748 ( time_mi_interval PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1083 "1083 1186" _null_ _null_ _null_ _null_ time_mi_interval _null_ _null_ _null_ ));
DESCR("minus");
! DATA(insert OID = 1749 ( timetz_pl_interval PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1266 "1266 1186" _null_ _null_ _null_ _null_ timetz_pl_interval _null_ _null_ _null_ ));
DESCR("plus");
! DATA(insert OID = 1750 ( timetz_mi_interval PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1266 "1266 1186" _null_ _null_ _null_ _null_ timetz_mi_interval _null_ _null_ _null_ ));
DESCR("minus");
! DATA(insert OID = 1764 ( numeric_inc PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_inc _null_ _null_ _null_ ));
DESCR("increment by one");
! DATA(insert OID = 1766 ( numeric_smaller PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_smaller _null_ _null_ _null_ ));
DESCR("smaller of two numbers");
! DATA(insert OID = 1767 ( numeric_larger PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1700 "1700 1700" _null_ _null_ _null_ _null_ numeric_larger _null_ _null_ _null_ ));
DESCR("larger of two numbers");
! DATA(insert OID = 1769 ( numeric_cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "1700 1700" _null_ _null_ _null_ _null_ numeric_cmp _null_ _null_ _null_ ));
DESCR("compare two numbers");
! DATA(insert OID = 1771 ( numeric_uminus PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_uminus _null_ _null_ _null_ ));
DESCR("negate");
! DATA(insert OID = 1779 ( int8 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 20 "1700" _null_ _null_ _null_ _null_ numeric_int8 _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 1781 ( numeric PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "20" _null_ _null_ _null_ _null_ int8_numeric _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 1782 ( numeric PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "21" _null_ _null_ _null_ _null_ int2_numeric _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 1783 ( int2 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 21 "1700" _null_ _null_ _null_ _null_ numeric_int2 _null_ _null_ _null_ ));
DESCR("(internal)");
/* formatting */
! DATA(insert OID = 1770 ( to_char PGNSP PGUID 12 1 0 0 f f f t f s 2 0 25 "1184 25" _null_ _null_ _null_ _null_ timestamptz_to_char _null_ _null_ _null_ ));
DESCR("format timestamp with time zone to text");
! DATA(insert OID = 1772 ( to_char PGNSP PGUID 12 1 0 0 f f f t f s 2 0 25 "1700 25" _null_ _null_ _null_ _null_ numeric_to_char _null_ _null_ _null_ ));
DESCR("format numeric to text");
! DATA(insert OID = 1773 ( to_char PGNSP PGUID 12 1 0 0 f f f t f s 2 0 25 "23 25" _null_ _null_ _null_ _null_ int4_to_char _null_ _null_ _null_ ));
DESCR("format int4 to text");
! DATA(insert OID = 1774 ( to_char PGNSP PGUID 12 1 0 0 f f f t f s 2 0 25 "20 25" _null_ _null_ _null_ _null_ int8_to_char _null_ _null_ _null_ ));
DESCR("format int8 to text");
! DATA(insert OID = 1775 ( to_char PGNSP PGUID 12 1 0 0 f f f t f s 2 0 25 "700 25" _null_ _null_ _null_ _null_ float4_to_char _null_ _null_ _null_ ));
DESCR("format float4 to text");
! DATA(insert OID = 1776 ( to_char PGNSP PGUID 12 1 0 0 f f f t f s 2 0 25 "701 25" _null_ _null_ _null_ _null_ float8_to_char _null_ _null_ _null_ ));
DESCR("format float8 to text");
! DATA(insert OID = 1777 ( to_number PGNSP PGUID 12 1 0 0 f f f t f s 2 0 1700 "25 25" _null_ _null_ _null_ _null_ numeric_to_number _null_ _null_ _null_ ));
DESCR("convert text to numeric");
! DATA(insert OID = 1778 ( to_timestamp PGNSP PGUID 12 1 0 0 f f f t f s 2 0 1184 "25 25" _null_ _null_ _null_ _null_ to_timestamp _null_ _null_ _null_ ));
DESCR("convert text to timestamp with time zone");
! DATA(insert OID = 1780 ( to_date PGNSP PGUID 12 1 0 0 f f f t f s 2 0 1082 "25 25" _null_ _null_ _null_ _null_ to_date _null_ _null_ _null_ ));
DESCR("convert text to date");
! DATA(insert OID = 1768 ( to_char PGNSP PGUID 12 1 0 0 f f f t f s 2 0 25 "1186 25" _null_ _null_ _null_ _null_ interval_to_char _null_ _null_ _null_ ));
DESCR("format interval to text");
! DATA(insert OID = 1282 ( quote_ident PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ quote_ident _null_ _null_ _null_ ));
DESCR("quote an identifier for usage in a querystring");
! DATA(insert OID = 1283 ( quote_literal PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ quote_literal _null_ _null_ _null_ ));
DESCR("quote a literal for usage in a querystring");
! DATA(insert OID = 1285 ( quote_literal PGNSP PGUID 14 1 0 0 f f f t f v 1 0 25 "2283" _null_ _null_ _null_ _null_ "select pg_catalog.quote_literal($1::pg_catalog.text)" _null_ _null_ _null_ ));
DESCR("quote a data value for usage in a querystring");
! DATA(insert OID = 1289 ( quote_nullable PGNSP PGUID 12 1 0 0 f f f f f i 1 0 25 "25" _null_ _null_ _null_ _null_ quote_nullable _null_ _null_ _null_ ));
DESCR("quote a possibly-null literal for usage in a querystring");
! DATA(insert OID = 1290 ( quote_nullable PGNSP PGUID 14 1 0 0 f f f f f v 1 0 25 "2283" _null_ _null_ _null_ _null_ "select pg_catalog.quote_nullable($1::pg_catalog.text)" _null_ _null_ _null_ ));
DESCR("quote a possibly-null data value for usage in a querystring");
! DATA(insert OID = 1798 ( oidin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 26 "2275" _null_ _null_ _null_ _null_ oidin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1799 ( oidout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "26" _null_ _null_ _null_ _null_ oidout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1810 ( bit_length PGNSP PGUID 14 1 0 0 f f f t f i 1 0 23 "17" _null_ _null_ _null_ _null_ "select pg_catalog.octet_length($1) * 8" _null_ _null_ _null_ ));
DESCR("length in bits");
! DATA(insert OID = 1811 ( bit_length PGNSP PGUID 14 1 0 0 f f f t f i 1 0 23 "25" _null_ _null_ _null_ _null_ "select pg_catalog.octet_length($1) * 8" _null_ _null_ _null_ ));
DESCR("length in bits");
! DATA(insert OID = 1812 ( bit_length PGNSP PGUID 14 1 0 0 f f f t f i 1 0 23 "1560" _null_ _null_ _null_ _null_ "select pg_catalog.length($1)" _null_ _null_ _null_ ));
DESCR("length in bits");
/* Selectivity estimators for LIKE and related operators */
! DATA(insert OID = 1814 ( iclikesel PGNSP PGUID 12 1 0 0 f f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ iclikesel _null_ _null_ _null_ ));
DESCR("restriction selectivity of ILIKE");
! DATA(insert OID = 1815 ( icnlikesel PGNSP PGUID 12 1 0 0 f f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ icnlikesel _null_ _null_ _null_ ));
DESCR("restriction selectivity of NOT ILIKE");
! DATA(insert OID = 1816 ( iclikejoinsel PGNSP PGUID 12 1 0 0 f f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ iclikejoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of ILIKE");
! DATA(insert OID = 1817 ( icnlikejoinsel PGNSP PGUID 12 1 0 0 f f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ icnlikejoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of NOT ILIKE");
! DATA(insert OID = 1818 ( regexeqsel PGNSP PGUID 12 1 0 0 f f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ regexeqsel _null_ _null_ _null_ ));
DESCR("restriction selectivity of regex match");
! DATA(insert OID = 1819 ( likesel PGNSP PGUID 12 1 0 0 f f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ likesel _null_ _null_ _null_ ));
DESCR("restriction selectivity of LIKE");
! DATA(insert OID = 1820 ( icregexeqsel PGNSP PGUID 12 1 0 0 f f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ icregexeqsel _null_ _null_ _null_ ));
DESCR("restriction selectivity of case-insensitive regex match");
! DATA(insert OID = 1821 ( regexnesel PGNSP PGUID 12 1 0 0 f f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ regexnesel _null_ _null_ _null_ ));
DESCR("restriction selectivity of regex non-match");
! DATA(insert OID = 1822 ( nlikesel PGNSP PGUID 12 1 0 0 f f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ nlikesel _null_ _null_ _null_ ));
DESCR("restriction selectivity of NOT LIKE");
! DATA(insert OID = 1823 ( icregexnesel PGNSP PGUID 12 1 0 0 f f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ icregexnesel _null_ _null_ _null_ ));
DESCR("restriction selectivity of case-insensitive regex non-match");
! DATA(insert OID = 1824 ( regexeqjoinsel PGNSP PGUID 12 1 0 0 f f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ regexeqjoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of regex match");
! DATA(insert OID = 1825 ( likejoinsel PGNSP PGUID 12 1 0 0 f f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ likejoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of LIKE");
! DATA(insert OID = 1826 ( icregexeqjoinsel PGNSP PGUID 12 1 0 0 f f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ icregexeqjoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of case-insensitive regex match");
! DATA(insert OID = 1827 ( regexnejoinsel PGNSP PGUID 12 1 0 0 f f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ regexnejoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of regex non-match");
! DATA(insert OID = 1828 ( nlikejoinsel PGNSP PGUID 12 1 0 0 f f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ nlikejoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of NOT LIKE");
! DATA(insert OID = 1829 ( icregexnejoinsel PGNSP PGUID 12 1 0 0 f f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ icregexnejoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of case-insensitive regex non-match");
/* Aggregate-related functions */
! DATA(insert OID = 1830 ( float8_avg PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_avg _null_ _null_ _null_ ));
DESCR("AVG aggregate final function");
! DATA(insert OID = 2512 ( float8_var_pop PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_var_pop _null_ _null_ _null_ ));
DESCR("VAR_POP aggregate final function");
! DATA(insert OID = 1831 ( float8_var_samp PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_var_samp _null_ _null_ _null_ ));
DESCR("VAR_SAMP aggregate final function");
! DATA(insert OID = 2513 ( float8_stddev_pop PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_stddev_pop _null_ _null_ _null_ ));
DESCR("STDDEV_POP aggregate final function");
! DATA(insert OID = 1832 ( float8_stddev_samp PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_stddev_samp _null_ _null_ _null_ ));
DESCR("STDDEV_SAMP aggregate final function");
! DATA(insert OID = 1833 ( numeric_accum PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1231 "1231 1700" _null_ _null_ _null_ _null_ numeric_accum _null_ _null_ _null_ ));
DESCR("aggregate transition function");
! DATA(insert OID = 2858 ( numeric_avg_accum PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1231 "1231 1700" _null_ _null_ _null_ _null_ numeric_avg_accum _null_ _null_ _null_ ));
DESCR("aggregate transition function");
! DATA(insert OID = 1834 ( int2_accum PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1231 "1231 21" _null_ _null_ _null_ _null_ int2_accum _null_ _null_ _null_ ));
DESCR("aggregate transition function");
! DATA(insert OID = 1835 ( int4_accum PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1231 "1231 23" _null_ _null_ _null_ _null_ int4_accum _null_ _null_ _null_ ));
DESCR("aggregate transition function");
! DATA(insert OID = 1836 ( int8_accum PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1231 "1231 20" _null_ _null_ _null_ _null_ int8_accum _null_ _null_ _null_ ));
DESCR("aggregate transition function");
! DATA(insert OID = 2746 ( int8_avg_accum PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1231 "1231 20" _null_ _null_ _null_ _null_ int8_avg_accum _null_ _null_ _null_ ));
DESCR("aggregate transition function");
! DATA(insert OID = 1837 ( numeric_avg PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1231" _null_ _null_ _null_ _null_ numeric_avg _null_ _null_ _null_ ));
DESCR("AVG aggregate final function");
! DATA(insert OID = 2514 ( numeric_var_pop PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1231" _null_ _null_ _null_ _null_ numeric_var_pop _null_ _null_ _null_ ));
DESCR("VAR_POP aggregate final function");
! DATA(insert OID = 1838 ( numeric_var_samp PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1231" _null_ _null_ _null_ _null_ numeric_var_samp _null_ _null_ _null_ ));
DESCR("VAR_SAMP aggregate final function");
! DATA(insert OID = 2596 ( numeric_stddev_pop PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1231" _null_ _null_ _null_ _null_ numeric_stddev_pop _null_ _null_ _null_ ));
DESCR("STDDEV_POP aggregate final function");
! DATA(insert OID = 1839 ( numeric_stddev_samp PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1231" _null_ _null_ _null_ _null_ numeric_stddev_samp _null_ _null_ _null_ ));
DESCR("STDDEV_SAMP aggregate final function");
! DATA(insert OID = 1840 ( int2_sum PGNSP PGUID 12 1 0 0 f f f f f i 2 0 20 "20 21" _null_ _null_ _null_ _null_ int2_sum _null_ _null_ _null_ ));
DESCR("SUM(int2) transition function");
! DATA(insert OID = 1841 ( int4_sum PGNSP PGUID 12 1 0 0 f f f f f i 2 0 20 "20 23" _null_ _null_ _null_ _null_ int4_sum _null_ _null_ _null_ ));
DESCR("SUM(int4) transition function");
! DATA(insert OID = 1842 ( int8_sum PGNSP PGUID 12 1 0 0 f f f f f i 2 0 1700 "1700 20" _null_ _null_ _null_ _null_ int8_sum _null_ _null_ _null_ ));
DESCR("SUM(int8) transition function");
! DATA(insert OID = 1843 ( interval_accum PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1187 "1187 1186" _null_ _null_ _null_ _null_ interval_accum _null_ _null_ _null_ ));
DESCR("aggregate transition function");
! DATA(insert OID = 1844 ( interval_avg PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1186 "1187" _null_ _null_ _null_ _null_ interval_avg _null_ _null_ _null_ ));
DESCR("AVG aggregate final function");
! DATA(insert OID = 1962 ( int2_avg_accum PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1016 "1016 21" _null_ _null_ _null_ _null_ int2_avg_accum _null_ _null_ _null_ ));
DESCR("AVG(int2) transition function");
! DATA(insert OID = 1963 ( int4_avg_accum PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1016 "1016 23" _null_ _null_ _null_ _null_ int4_avg_accum _null_ _null_ _null_ ));
DESCR("AVG(int4) transition function");
! DATA(insert OID = 1964 ( int8_avg PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1016" _null_ _null_ _null_ _null_ int8_avg _null_ _null_ _null_ ));
DESCR("AVG(int) aggregate final function");
! DATA(insert OID = 2805 ( int8inc_float8_float8 PGNSP PGUID 12 1 0 0 f f f t f i 3 0 20 "20 701 701" _null_ _null_ _null_ _null_ int8inc_float8_float8 _null_ _null_ _null_ ));
DESCR("REGR_COUNT(double, double) transition function");
! DATA(insert OID = 2806 ( float8_regr_accum PGNSP PGUID 12 1 0 0 f f f t f i 3 0 1022 "1022 701 701" _null_ _null_ _null_ _null_ float8_regr_accum _null_ _null_ _null_ ));
DESCR("REGR_...(double, double) transition function");
! DATA(insert OID = 2807 ( float8_regr_sxx PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_regr_sxx _null_ _null_ _null_ ));
DESCR("REGR_SXX(double, double) aggregate final function");
! DATA(insert OID = 2808 ( float8_regr_syy PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_regr_syy _null_ _null_ _null_ ));
DESCR("REGR_SYY(double, double) aggregate final function");
! DATA(insert OID = 2809 ( float8_regr_sxy PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_regr_sxy _null_ _null_ _null_ ));
DESCR("REGR_SXY(double, double) aggregate final function");
! DATA(insert OID = 2810 ( float8_regr_avgx PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_regr_avgx _null_ _null_ _null_ ));
DESCR("REGR_AVGX(double, double) aggregate final function");
! DATA(insert OID = 2811 ( float8_regr_avgy PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_regr_avgy _null_ _null_ _null_ ));
DESCR("REGR_AVGY(double, double) aggregate final function");
! DATA(insert OID = 2812 ( float8_regr_r2 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_regr_r2 _null_ _null_ _null_ ));
DESCR("REGR_R2(double, double) aggregate final function");
! DATA(insert OID = 2813 ( float8_regr_slope PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_regr_slope _null_ _null_ _null_ ));
DESCR("REGR_SLOPE(double, double) aggregate final function");
! DATA(insert OID = 2814 ( float8_regr_intercept PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_regr_intercept _null_ _null_ _null_ ));
DESCR("REGR_INTERCEPT(double, double) aggregate final function");
! DATA(insert OID = 2815 ( float8_covar_pop PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_covar_pop _null_ _null_ _null_ ));
DESCR("COVAR_POP(double, double) aggregate final function");
! DATA(insert OID = 2816 ( float8_covar_samp PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_covar_samp _null_ _null_ _null_ ));
DESCR("COVAR_SAMP(double, double) aggregate final function");
! DATA(insert OID = 2817 ( float8_corr PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "1022" _null_ _null_ _null_ _null_ float8_corr _null_ _null_ _null_ ));
DESCR("CORR(double, double) aggregate final function");
/* To ASCII conversion */
! DATA(insert OID = 1845 ( to_ascii PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ to_ascii_default _null_ _null_ _null_ ));
DESCR("encode text from DB encoding to ASCII text");
! DATA(insert OID = 1846 ( to_ascii PGNSP PGUID 12 1 0 0 f f f t f i 2 0 25 "25 23" _null_ _null_ _null_ _null_ to_ascii_enc _null_ _null_ _null_ ));
DESCR("encode text from encoding to ASCII text");
! DATA(insert OID = 1847 ( to_ascii PGNSP PGUID 12 1 0 0 f f f t f i 2 0 25 "25 19" _null_ _null_ _null_ _null_ to_ascii_encname _null_ _null_ _null_ ));
DESCR("encode text from encoding to ASCII text");
! DATA(insert OID = 1848 ( interval_pl_time PGNSP PGUID 14 1 0 0 f f f t f i 2 0 1083 "1186 1083" _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ ));
DESCR("plus");
! DATA(insert OID = 1850 ( int28eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "21 20" _null_ _null_ _null_ _null_ int28eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1851 ( int28ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "21 20" _null_ _null_ _null_ _null_ int28ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1852 ( int28lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "21 20" _null_ _null_ _null_ _null_ int28lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 1853 ( int28gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "21 20" _null_ _null_ _null_ _null_ int28gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1854 ( int28le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "21 20" _null_ _null_ _null_ _null_ int28le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1855 ( int28ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "21 20" _null_ _null_ _null_ _null_ int28ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1856 ( int82eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "20 21" _null_ _null_ _null_ _null_ int82eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1857 ( int82ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "20 21" _null_ _null_ _null_ _null_ int82ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1858 ( int82lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "20 21" _null_ _null_ _null_ _null_ int82lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 1859 ( int82gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "20 21" _null_ _null_ _null_ _null_ int82gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1860 ( int82le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "20 21" _null_ _null_ _null_ _null_ int82le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1861 ( int82ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "20 21" _null_ _null_ _null_ _null_ int82ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1892 ( int2and PGNSP PGUID 12 1 0 0 f f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2and _null_ _null_ _null_ ));
DESCR("bitwise and");
! DATA(insert OID = 1893 ( int2or PGNSP PGUID 12 1 0 0 f f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2or _null_ _null_ _null_ ));
DESCR("bitwise or");
! DATA(insert OID = 1894 ( int2xor PGNSP PGUID 12 1 0 0 f f f t f i 2 0 21 "21 21" _null_ _null_ _null_ _null_ int2xor _null_ _null_ _null_ ));
DESCR("bitwise xor");
! DATA(insert OID = 1895 ( int2not PGNSP PGUID 12 1 0 0 f f f t f i 1 0 21 "21" _null_ _null_ _null_ _null_ int2not _null_ _null_ _null_ ));
DESCR("bitwise not");
! DATA(insert OID = 1896 ( int2shl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 21 "21 23" _null_ _null_ _null_ _null_ int2shl _null_ _null_ _null_ ));
DESCR("bitwise shift left");
! DATA(insert OID = 1897 ( int2shr PGNSP PGUID 12 1 0 0 f f f t f i 2 0 21 "21 23" _null_ _null_ _null_ _null_ int2shr _null_ _null_ _null_ ));
DESCR("bitwise shift right");
! DATA(insert OID = 1898 ( int4and PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4and _null_ _null_ _null_ ));
DESCR("bitwise and");
! DATA(insert OID = 1899 ( int4or PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4or _null_ _null_ _null_ ));
DESCR("bitwise or");
! DATA(insert OID = 1900 ( int4xor PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4xor _null_ _null_ _null_ ));
DESCR("bitwise xor");
! DATA(insert OID = 1901 ( int4not PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "23" _null_ _null_ _null_ _null_ int4not _null_ _null_ _null_ ));
DESCR("bitwise not");
! DATA(insert OID = 1902 ( int4shl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4shl _null_ _null_ _null_ ));
DESCR("bitwise shift left");
! DATA(insert OID = 1903 ( int4shr PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "23 23" _null_ _null_ _null_ _null_ int4shr _null_ _null_ _null_ ));
DESCR("bitwise shift right");
! DATA(insert OID = 1904 ( int8and PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8and _null_ _null_ _null_ ));
DESCR("bitwise and");
! DATA(insert OID = 1905 ( int8or PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8or _null_ _null_ _null_ ));
DESCR("bitwise or");
! DATA(insert OID = 1906 ( int8xor PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 20" _null_ _null_ _null_ _null_ int8xor _null_ _null_ _null_ ));
DESCR("bitwise xor");
! DATA(insert OID = 1907 ( int8not PGNSP PGUID 12 1 0 0 f f f t f i 1 0 20 "20" _null_ _null_ _null_ _null_ int8not _null_ _null_ _null_ ));
DESCR("bitwise not");
! DATA(insert OID = 1908 ( int8shl PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 23" _null_ _null_ _null_ _null_ int8shl _null_ _null_ _null_ ));
DESCR("bitwise shift left");
! DATA(insert OID = 1909 ( int8shr PGNSP PGUID 12 1 0 0 f f f t f i 2 0 20 "20 23" _null_ _null_ _null_ _null_ int8shr _null_ _null_ _null_ ));
DESCR("bitwise shift right");
! DATA(insert OID = 1910 ( int8up PGNSP PGUID 12 1 0 0 f f f t f i 1 0 20 "20" _null_ _null_ _null_ _null_ int8up _null_ _null_ _null_ ));
DESCR("unary plus");
! DATA(insert OID = 1911 ( int2up PGNSP PGUID 12 1 0 0 f f f t f i 1 0 21 "21" _null_ _null_ _null_ _null_ int2up _null_ _null_ _null_ ));
DESCR("unary plus");
! DATA(insert OID = 1912 ( int4up PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "23" _null_ _null_ _null_ _null_ int4up _null_ _null_ _null_ ));
DESCR("unary plus");
! DATA(insert OID = 1913 ( float4up PGNSP PGUID 12 1 0 0 f f f t f i 1 0 700 "700" _null_ _null_ _null_ _null_ float4up _null_ _null_ _null_ ));
DESCR("unary plus");
! DATA(insert OID = 1914 ( float8up PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "701" _null_ _null_ _null_ _null_ float8up _null_ _null_ _null_ ));
DESCR("unary plus");
! DATA(insert OID = 1915 ( numeric_uplus PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ numeric_uplus _null_ _null_ _null_ ));
DESCR("unary plus");
! DATA(insert OID = 1922 ( has_table_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ has_table_privilege_name_name _null_ _null_ _null_ ));
DESCR("user privilege on relation by username, rel name");
! DATA(insert OID = 1923 ( has_table_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ has_table_privilege_name_id _null_ _null_ _null_ ));
DESCR("user privilege on relation by username, rel oid");
! DATA(insert OID = 1924 ( has_table_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ has_table_privilege_id_name _null_ _null_ _null_ ));
DESCR("user privilege on relation by user oid, rel name");
! DATA(insert OID = 1925 ( has_table_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ has_table_privilege_id_id _null_ _null_ _null_ ));
DESCR("user privilege on relation by user oid, rel oid");
! DATA(insert OID = 1926 ( has_table_privilege PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "25 25" _null_ _null_ _null_ _null_ has_table_privilege_name _null_ _null_ _null_ ));
DESCR("current user privilege on relation by rel name");
! DATA(insert OID = 1927 ( has_table_privilege PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "26 25" _null_ _null_ _null_ _null_ has_table_privilege_id _null_ _null_ _null_ ));
DESCR("current user privilege on relation by rel oid");
! DATA(insert OID = 1928 ( pg_stat_get_numscans PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_numscans _null_ _null_ _null_ ));
DESCR("statistics: number of scans done for table/index");
! DATA(insert OID = 1929 ( pg_stat_get_tuples_returned PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_tuples_returned _null_ _null_ _null_ ));
DESCR("statistics: number of tuples read by seqscan");
! DATA(insert OID = 1930 ( pg_stat_get_tuples_fetched PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_tuples_fetched _null_ _null_ _null_ ));
DESCR("statistics: number of tuples fetched by idxscan");
! DATA(insert OID = 1931 ( pg_stat_get_tuples_inserted PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_tuples_inserted _null_ _null_ _null_ ));
DESCR("statistics: number of tuples inserted");
! DATA(insert OID = 1932 ( pg_stat_get_tuples_updated PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_tuples_updated _null_ _null_ _null_ ));
DESCR("statistics: number of tuples updated");
! DATA(insert OID = 1933 ( pg_stat_get_tuples_deleted PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_tuples_deleted _null_ _null_ _null_ ));
DESCR("statistics: number of tuples deleted");
! DATA(insert OID = 1972 ( pg_stat_get_tuples_hot_updated PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_tuples_hot_updated _null_ _null_ _null_ ));
DESCR("statistics: number of tuples hot updated");
! DATA(insert OID = 2878 ( pg_stat_get_live_tuples PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_live_tuples _null_ _null_ _null_ ));
DESCR("statistics: number of live tuples");
! DATA(insert OID = 2879 ( pg_stat_get_dead_tuples PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_dead_tuples _null_ _null_ _null_ ));
DESCR("statistics: number of dead tuples");
! DATA(insert OID = 1934 ( pg_stat_get_blocks_fetched PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_blocks_fetched _null_ _null_ _null_ ));
DESCR("statistics: number of blocks fetched");
! DATA(insert OID = 1935 ( pg_stat_get_blocks_hit PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_blocks_hit _null_ _null_ _null_ ));
DESCR("statistics: number of blocks found in cache");
! DATA(insert OID = 2781 ( pg_stat_get_last_vacuum_time PGNSP PGUID 12 1 0 0 f f f t f s 1 0 1184 "26" _null_ _null_ _null_ _null_ pg_stat_get_last_vacuum_time _null_ _null_ _null_ ));
DESCR("statistics: last manual vacuum time for a table");
! DATA(insert OID = 2782 ( pg_stat_get_last_autovacuum_time PGNSP PGUID 12 1 0 0 f f f t f s 1 0 1184 "26" _null_ _null_ _null_ _null_ pg_stat_get_last_autovacuum_time _null_ _null_ _null_ ));
DESCR("statistics: last auto vacuum time for a table");
! DATA(insert OID = 2783 ( pg_stat_get_last_analyze_time PGNSP PGUID 12 1 0 0 f f f t f s 1 0 1184 "26" _null_ _null_ _null_ _null_ pg_stat_get_last_analyze_time _null_ _null_ _null_ ));
DESCR("statistics: last manual analyze time for a table");
! DATA(insert OID = 2784 ( pg_stat_get_last_autoanalyze_time PGNSP PGUID 12 1 0 0 f f f t f s 1 0 1184 "26" _null_ _null_ _null_ _null_ pg_stat_get_last_autoanalyze_time _null_ _null_ _null_ ));
DESCR("statistics: last auto analyze time for a table");
! DATA(insert OID = 1936 ( pg_stat_get_backend_idset PGNSP PGUID 12 1 100 0 f f f t t s 0 0 23 "" _null_ _null_ _null_ _null_ pg_stat_get_backend_idset _null_ _null_ _null_ ));
DESCR("statistics: currently active backend IDs");
! DATA(insert OID = 2022 ( pg_stat_get_activity PGNSP PGUID 12 1 100 0 f f f f t s 1 0 2249 "23" "{23,26,23,26,25,16,1184,1184,1184,869,23}" "{i,o,o,o,o,o,o,o,o,o,o}" "{pid,datid,procpid,usesysid,current_query,waiting,xact_start,query_start,backend_start,client_addr,client_port}" _null_ pg_stat_get_activity _null_ _null_ _null_ ));
DESCR("statistics: information about currently active backends");
! DATA(insert OID = 2026 ( pg_backend_pid PGNSP PGUID 12 1 0 0 f f f t f s 0 0 23 "" _null_ _null_ _null_ _null_ pg_backend_pid _null_ _null_ _null_ ));
DESCR("statistics: current backend PID");
! DATA(insert OID = 1937 ( pg_stat_get_backend_pid PGNSP PGUID 12 1 0 0 f f f t f s 1 0 23 "23" _null_ _null_ _null_ _null_ pg_stat_get_backend_pid _null_ _null_ _null_ ));
DESCR("statistics: PID of backend");
! DATA(insert OID = 1938 ( pg_stat_get_backend_dbid PGNSP PGUID 12 1 0 0 f f f t f s 1 0 26 "23" _null_ _null_ _null_ _null_ pg_stat_get_backend_dbid _null_ _null_ _null_ ));
DESCR("statistics: database ID of backend");
! DATA(insert OID = 1939 ( pg_stat_get_backend_userid PGNSP PGUID 12 1 0 0 f f f t f s 1 0 26 "23" _null_ _null_ _null_ _null_ pg_stat_get_backend_userid _null_ _null_ _null_ ));
DESCR("statistics: user ID of backend");
! DATA(insert OID = 1940 ( pg_stat_get_backend_activity PGNSP PGUID 12 1 0 0 f f f t f s 1 0 25 "23" _null_ _null_ _null_ _null_ pg_stat_get_backend_activity _null_ _null_ _null_ ));
DESCR("statistics: current query of backend");
! DATA(insert OID = 2853 ( pg_stat_get_backend_waiting PGNSP PGUID 12 1 0 0 f f f t f s 1 0 16 "23" _null_ _null_ _null_ _null_ pg_stat_get_backend_waiting _null_ _null_ _null_ ));
DESCR("statistics: is backend currently waiting for a lock");
! DATA(insert OID = 2094 ( pg_stat_get_backend_activity_start PGNSP PGUID 12 1 0 0 f f f t f s 1 0 1184 "23" _null_ _null_ _null_ _null_ pg_stat_get_backend_activity_start _null_ _null_ _null_ ));
DESCR("statistics: start time for current query of backend");
! DATA(insert OID = 2857 ( pg_stat_get_backend_xact_start PGNSP PGUID 12 1 0 0 f f f t f s 1 0 1184 "23" _null_ _null_ _null_ _null_ pg_stat_get_backend_xact_start _null_ _null_ _null_ ));
DESCR("statistics: start time for backend's current transaction");
! DATA(insert OID = 1391 ( pg_stat_get_backend_start PGNSP PGUID 12 1 0 0 f f f t f s 1 0 1184 "23" _null_ _null_ _null_ _null_ pg_stat_get_backend_start _null_ _null_ _null_ ));
DESCR("statistics: start time for current backend session");
! DATA(insert OID = 1392 ( pg_stat_get_backend_client_addr PGNSP PGUID 12 1 0 0 f f f t f s 1 0 869 "23" _null_ _null_ _null_ _null_ pg_stat_get_backend_client_addr _null_ _null_ _null_ ));
DESCR("statistics: address of client connected to backend");
! DATA(insert OID = 1393 ( pg_stat_get_backend_client_port PGNSP PGUID 12 1 0 0 f f f t f s 1 0 23 "23" _null_ _null_ _null_ _null_ pg_stat_get_backend_client_port _null_ _null_ _null_ ));
DESCR("statistics: port number of client connected to backend");
! DATA(insert OID = 1941 ( pg_stat_get_db_numbackends PGNSP PGUID 12 1 0 0 f f f t f s 1 0 23 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_numbackends _null_ _null_ _null_ ));
DESCR("statistics: number of backends in database");
! DATA(insert OID = 1942 ( pg_stat_get_db_xact_commit PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_xact_commit _null_ _null_ _null_ ));
DESCR("statistics: transactions committed");
! DATA(insert OID = 1943 ( pg_stat_get_db_xact_rollback PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_xact_rollback _null_ _null_ _null_ ));
DESCR("statistics: transactions rolled back");
! DATA(insert OID = 1944 ( pg_stat_get_db_blocks_fetched PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_blocks_fetched _null_ _null_ _null_ ));
DESCR("statistics: blocks fetched for database");
! DATA(insert OID = 1945 ( pg_stat_get_db_blocks_hit PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_blocks_hit _null_ _null_ _null_ ));
DESCR("statistics: blocks found in cache for database");
! DATA(insert OID = 2758 ( pg_stat_get_db_tuples_returned PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_tuples_returned _null_ _null_ _null_ ));
DESCR("statistics: tuples returned for database");
! DATA(insert OID = 2759 ( pg_stat_get_db_tuples_fetched PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_tuples_fetched _null_ _null_ _null_ ));
DESCR("statistics: tuples fetched for database");
! DATA(insert OID = 2760 ( pg_stat_get_db_tuples_inserted PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_tuples_inserted _null_ _null_ _null_ ));
DESCR("statistics: tuples inserted in database");
! DATA(insert OID = 2761 ( pg_stat_get_db_tuples_updated PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_tuples_updated _null_ _null_ _null_ ));
DESCR("statistics: tuples updated in database");
! DATA(insert OID = 2762 ( pg_stat_get_db_tuples_deleted PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_tuples_deleted _null_ _null_ _null_ ));
DESCR("statistics: tuples deleted in database");
! DATA(insert OID = 2769 ( pg_stat_get_bgwriter_timed_checkpoints PGNSP PGUID 12 1 0 0 f f f t f s 0 0 20 "" _null_ _null_ _null_ _null_ pg_stat_get_bgwriter_timed_checkpoints _null_ _null_ _null_ ));
DESCR("statistics: number of timed checkpoints started by the bgwriter");
! DATA(insert OID = 2770 ( pg_stat_get_bgwriter_requested_checkpoints PGNSP PGUID 12 1 0 0 f f f t f s 0 0 20 "" _null_ _null_ _null_ _null_ pg_stat_get_bgwriter_requested_checkpoints _null_ _null_ _null_ ));
DESCR("statistics: number of backend requested checkpoints started by the bgwriter");
! DATA(insert OID = 2771 ( pg_stat_get_bgwriter_buf_written_checkpoints PGNSP PGUID 12 1 0 0 f f f t f s 0 0 20 "" _null_ _null_ _null_ _null_ pg_stat_get_bgwriter_buf_written_checkpoints _null_ _null_ _null_ ));
DESCR("statistics: number of buffers written by the bgwriter during checkpoints");
! DATA(insert OID = 2772 ( pg_stat_get_bgwriter_buf_written_clean PGNSP PGUID 12 1 0 0 f f f t f s 0 0 20 "" _null_ _null_ _null_ _null_ pg_stat_get_bgwriter_buf_written_clean _null_ _null_ _null_ ));
DESCR("statistics: number of buffers written by the bgwriter for cleaning dirty buffers");
! DATA(insert OID = 2773 ( pg_stat_get_bgwriter_maxwritten_clean PGNSP PGUID 12 1 0 0 f f f t f s 0 0 20 "" _null_ _null_ _null_ _null_ pg_stat_get_bgwriter_maxwritten_clean _null_ _null_ _null_ ));
DESCR("statistics: number of times the bgwriter stopped processing when it had written too many buffers while cleaning");
! DATA(insert OID = 2775 ( pg_stat_get_buf_written_backend PGNSP PGUID 12 1 0 0 f f f t f s 0 0 20 "" _null_ _null_ _null_ _null_ pg_stat_get_buf_written_backend _null_ _null_ _null_ ));
DESCR("statistics: number of buffers written by backends");
! DATA(insert OID = 2859 ( pg_stat_get_buf_alloc PGNSP PGUID 12 1 0 0 f f f t f s 0 0 20 "" _null_ _null_ _null_ _null_ pg_stat_get_buf_alloc _null_ _null_ _null_ ));
DESCR("statistics: number of buffer allocations");
! DATA(insert OID = 2978 ( pg_stat_get_function_calls PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_function_calls _null_ _null_ _null_ ));
DESCR("statistics: number of function calls");
! DATA(insert OID = 2979 ( pg_stat_get_function_time PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_function_time _null_ _null_ _null_ ));
DESCR("statistics: execution time of function");
! DATA(insert OID = 2980 ( pg_stat_get_function_self_time PGNSP PGUID 12 1 0 0 f f f t f s 1 0 20 "26" _null_ _null_ _null_ _null_ pg_stat_get_function_self_time _null_ _null_ _null_ ));
DESCR("statistics: self execution time of function");
! DATA(insert OID = 2230 ( pg_stat_clear_snapshot PGNSP PGUID 12 1 0 0 f f f f f v 0 0 2278 "" _null_ _null_ _null_ _null_ pg_stat_clear_snapshot _null_ _null_ _null_ ));
DESCR("statistics: discard current transaction's statistics snapshot");
! DATA(insert OID = 2274 ( pg_stat_reset PGNSP PGUID 12 1 0 0 f f f f f v 0 0 2278 "" _null_ _null_ _null_ _null_ pg_stat_reset _null_ _null_ _null_ ));
DESCR("statistics: reset collected statistics for current database");
! DATA(insert OID = 1946 ( encode PGNSP PGUID 12 1 0 0 f f f t f i 2 0 25 "17 25" _null_ _null_ _null_ _null_ binary_encode _null_ _null_ _null_ ));
DESCR("convert bytea value into some ascii-only text string");
! DATA(insert OID = 1947 ( decode PGNSP PGUID 12 1 0 0 f f f t f i 2 0 17 "25 25" _null_ _null_ _null_ _null_ binary_decode _null_ _null_ _null_ ));
DESCR("convert ascii-encoded text string into bytea value");
! DATA(insert OID = 1948 ( byteaeq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "17 17" _null_ _null_ _null_ _null_ byteaeq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 1949 ( bytealt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "17 17" _null_ _null_ _null_ _null_ bytealt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 1950 ( byteale PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "17 17" _null_ _null_ _null_ _null_ byteale _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 1951 ( byteagt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "17 17" _null_ _null_ _null_ _null_ byteagt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 1952 ( byteage PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "17 17" _null_ _null_ _null_ _null_ byteage _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 1953 ( byteane PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "17 17" _null_ _null_ _null_ _null_ byteane _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 1954 ( byteacmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "17 17" _null_ _null_ _null_ _null_ byteacmp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 1961 ( timestamp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1114 "1114 23" _null_ _null_ _null_ _null_ timestamp_scale _null_ _null_ _null_ ));
DESCR("adjust timestamp precision");
! DATA(insert OID = 1965 ( oidlarger PGNSP PGUID 12 1 0 0 f f f t f i 2 0 26 "26 26" _null_ _null_ _null_ _null_ oidlarger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 1966 ( oidsmaller PGNSP PGUID 12 1 0 0 f f f t f i 2 0 26 "26 26" _null_ _null_ _null_ _null_ oidsmaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 1967 ( timestamptz PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1184 "1184 23" _null_ _null_ _null_ _null_ timestamptz_scale _null_ _null_ _null_ ));
DESCR("adjust timestamptz precision");
! DATA(insert OID = 1968 ( time PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1083 "1083 23" _null_ _null_ _null_ _null_ time_scale _null_ _null_ _null_ ));
DESCR("adjust time precision");
! DATA(insert OID = 1969 ( timetz PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1266 "1266 23" _null_ _null_ _null_ _null_ timetz_scale _null_ _null_ _null_ ));
DESCR("adjust time with time zone precision");
! DATA(insert OID = 2003 ( textanycat PGNSP PGUID 14 1 0 0 f f f t f i 2 0 25 "25 2776" _null_ _null_ _null_ _null_ "select $1 || $2::pg_catalog.text" _null_ _null_ _null_ ));
DESCR("concatenate");
! DATA(insert OID = 2004 ( anytextcat PGNSP PGUID 14 1 0 0 f f f t f i 2 0 25 "2776 25" _null_ _null_ _null_ _null_ "select $1::pg_catalog.text || $2" _null_ _null_ _null_ ));
DESCR("concatenate");
! DATA(insert OID = 2005 ( bytealike PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "17 17" _null_ _null_ _null_ _null_ bytealike _null_ _null_ _null_ ));
DESCR("matches LIKE expression");
! DATA(insert OID = 2006 ( byteanlike PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "17 17" _null_ _null_ _null_ _null_ byteanlike _null_ _null_ _null_ ));
DESCR("does not match LIKE expression");
! DATA(insert OID = 2007 ( like PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "17 17" _null_ _null_ _null_ _null_ bytealike _null_ _null_ _null_ ));
DESCR("matches LIKE expression");
! DATA(insert OID = 2008 ( notlike PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "17 17" _null_ _null_ _null_ _null_ byteanlike _null_ _null_ _null_ ));
DESCR("does not match LIKE expression");
! DATA(insert OID = 2009 ( like_escape PGNSP PGUID 12 1 0 0 f f f t f i 2 0 17 "17 17" _null_ _null_ _null_ _null_ like_escape_bytea _null_ _null_ _null_ ));
DESCR("convert LIKE pattern to use backslash escapes");
! DATA(insert OID = 2010 ( length PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "17" _null_ _null_ _null_ _null_ byteaoctetlen _null_ _null_ _null_ ));
DESCR("octet length");
! DATA(insert OID = 2011 ( byteacat PGNSP PGUID 12 1 0 0 f f f t f i 2 0 17 "17 17" _null_ _null_ _null_ _null_ byteacat _null_ _null_ _null_ ));
DESCR("concatenate");
! DATA(insert OID = 2012 ( substring PGNSP PGUID 12 1 0 0 f f f t f i 3 0 17 "17 23 23" _null_ _null_ _null_ _null_ bytea_substr _null_ _null_ _null_ ));
DESCR("return portion of string");
! DATA(insert OID = 2013 ( substring PGNSP PGUID 12 1 0 0 f f f t f i 2 0 17 "17 23" _null_ _null_ _null_ _null_ bytea_substr_no_len _null_ _null_ _null_ ));
DESCR("return portion of string");
! DATA(insert OID = 2085 ( substr PGNSP PGUID 12 1 0 0 f f f t f i 3 0 17 "17 23 23" _null_ _null_ _null_ _null_ bytea_substr _null_ _null_ _null_ ));
DESCR("return portion of string");
! DATA(insert OID = 2086 ( substr PGNSP PGUID 12 1 0 0 f f f t f i 2 0 17 "17 23" _null_ _null_ _null_ _null_ bytea_substr_no_len _null_ _null_ _null_ ));
DESCR("return portion of string");
! DATA(insert OID = 2014 ( position PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "17 17" _null_ _null_ _null_ _null_ byteapos _null_ _null_ _null_ ));
DESCR("return position of substring");
! DATA(insert OID = 2015 ( btrim PGNSP PGUID 12 1 0 0 f f f t f i 2 0 17 "17 17" _null_ _null_ _null_ _null_ byteatrim _null_ _null_ _null_ ));
DESCR("trim both ends of string");
! DATA(insert OID = 2019 ( time PGNSP PGUID 12 1 0 0 f f f t f s 1 0 1083 "1184" _null_ _null_ _null_ _null_ timestamptz_time _null_ _null_ _null_ ));
DESCR("convert timestamptz to time");
! DATA(insert OID = 2020 ( date_trunc PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1114 "25 1114" _null_ _null_ _null_ _null_ timestamp_trunc _null_ _null_ _null_ ));
DESCR("truncate timestamp to specified units");
! DATA(insert OID = 2021 ( date_part PGNSP PGUID 12 1 0 0 f f f t f i 2 0 701 "25 1114" _null_ _null_ _null_ _null_ timestamp_part _null_ _null_ _null_ ));
DESCR("extract field from timestamp");
! DATA(insert OID = 2023 ( timestamp PGNSP PGUID 12 1 0 0 f f f t f s 1 0 1114 "702" _null_ _null_ _null_ _null_ abstime_timestamp _null_ _null_ _null_ ));
DESCR("convert abstime to timestamp");
! DATA(insert OID = 2024 ( timestamp PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1114 "1082" _null_ _null_ _null_ _null_ date_timestamp _null_ _null_ _null_ ));
DESCR("convert date to timestamp");
! DATA(insert OID = 2025 ( timestamp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1114 "1082 1083" _null_ _null_ _null_ _null_ datetime_timestamp _null_ _null_ _null_ ));
DESCR("convert date and time to timestamp");
! DATA(insert OID = 2027 ( timestamp PGNSP PGUID 12 1 0 0 f f f t f s 1 0 1114 "1184" _null_ _null_ _null_ _null_ timestamptz_timestamp _null_ _null_ _null_ ));
DESCR("convert timestamp with time zone to timestamp");
! DATA(insert OID = 2028 ( timestamptz PGNSP PGUID 12 1 0 0 f f f t f s 1 0 1184 "1114" _null_ _null_ _null_ _null_ timestamp_timestamptz _null_ _null_ _null_ ));
DESCR("convert timestamp to timestamp with time zone");
! DATA(insert OID = 2029 ( date PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1082 "1114" _null_ _null_ _null_ _null_ timestamp_date _null_ _null_ _null_ ));
DESCR("convert timestamp to date");
! DATA(insert OID = 2030 ( abstime PGNSP PGUID 12 1 0 0 f f f t f s 1 0 702 "1114" _null_ _null_ _null_ _null_ timestamp_abstime _null_ _null_ _null_ ));
DESCR("convert timestamp to abstime");
! DATA(insert OID = 2031 ( timestamp_mi PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1186 "1114 1114" _null_ _null_ _null_ _null_ timestamp_mi _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 2032 ( timestamp_pl_interval PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1114 "1114 1186" _null_ _null_ _null_ _null_ timestamp_pl_interval _null_ _null_ _null_ ));
DESCR("plus");
! DATA(insert OID = 2033 ( timestamp_mi_interval PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1114 "1114 1186" _null_ _null_ _null_ _null_ timestamp_mi_interval _null_ _null_ _null_ ));
DESCR("minus");
! DATA(insert OID = 2035 ( timestamp_smaller PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1114 "1114 1114" _null_ _null_ _null_ _null_ timestamp_smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 2036 ( timestamp_larger PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1114 "1114 1114" _null_ _null_ _null_ _null_ timestamp_larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 2037 ( timezone PGNSP PGUID 12 1 0 0 f f f t f v 2 0 1266 "25 1266" _null_ _null_ _null_ _null_ timetz_zone _null_ _null_ _null_ ));
DESCR("adjust time with time zone to new zone");
! DATA(insert OID = 2038 ( timezone PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1266 "1186 1266" _null_ _null_ _null_ _null_ timetz_izone _null_ _null_ _null_ ));
DESCR("adjust time with time zone to new zone");
! DATA(insert OID = 2039 ( timestamp_hash PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "1114" _null_ _null_ _null_ _null_ timestamp_hash _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 2041 ( overlaps PGNSP PGUID 12 1 0 0 f f f f f i 4 0 16 "1114 1114 1114 1114" _null_ _null_ _null_ _null_ overlaps_timestamp _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 2042 ( overlaps PGNSP PGUID 14 1 0 0 f f f f f i 4 0 16 "1114 1186 1114 1186" _null_ _null_ _null_ _null_ "select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))" _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 2043 ( overlaps PGNSP PGUID 14 1 0 0 f f f f f i 4 0 16 "1114 1114 1114 1186" _null_ _null_ _null_ _null_ "select ($1, $2) overlaps ($3, ($3 + $4))" _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 2044 ( overlaps PGNSP PGUID 14 1 0 0 f f f f f i 4 0 16 "1114 1186 1114 1114" _null_ _null_ _null_ _null_ "select ($1, ($1 + $2)) overlaps ($3, $4)" _null_ _null_ _null_ ));
DESCR("intervals overlap?");
! DATA(insert OID = 2045 ( timestamp_cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "1114 1114" _null_ _null_ _null_ _null_ timestamp_cmp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 2046 ( time PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1083 "1266" _null_ _null_ _null_ _null_ timetz_time _null_ _null_ _null_ ));
DESCR("convert time with time zone to time");
! DATA(insert OID = 2047 ( timetz PGNSP PGUID 12 1 0 0 f f f t f s 1 0 1266 "1083" _null_ _null_ _null_ _null_ time_timetz _null_ _null_ _null_ ));
DESCR("convert time to timetz");
! DATA(insert OID = 2048 ( isfinite PGNSP PGUID 12 1 0 0 f f f t f i 1 0 16 "1114" _null_ _null_ _null_ _null_ timestamp_finite _null_ _null_ _null_ ));
DESCR("finite timestamp?");
! DATA(insert OID = 2049 ( to_char PGNSP PGUID 12 1 0 0 f f f t f s 2 0 25 "1114 25" _null_ _null_ _null_ _null_ timestamp_to_char _null_ _null_ _null_ ));
DESCR("format timestamp to text");
! DATA(insert OID = 2052 ( timestamp_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1114 1114" _null_ _null_ _null_ _null_ timestamp_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 2053 ( timestamp_ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1114 1114" _null_ _null_ _null_ _null_ timestamp_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 2054 ( timestamp_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1114 1114" _null_ _null_ _null_ _null_ timestamp_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 2055 ( timestamp_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1114 1114" _null_ _null_ _null_ _null_ timestamp_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 2056 ( timestamp_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1114 1114" _null_ _null_ _null_ _null_ timestamp_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 2057 ( timestamp_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1114 1114" _null_ _null_ _null_ _null_ timestamp_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 2058 ( age PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1186 "1114 1114" _null_ _null_ _null_ _null_ timestamp_age _null_ _null_ _null_ ));
DESCR("date difference preserving months and years");
! DATA(insert OID = 2059 ( age PGNSP PGUID 14 1 0 0 f f f t f s 1 0 1186 "1114" _null_ _null_ _null_ _null_ "select pg_catalog.age(cast(current_date as timestamp without time zone), $1)" _null_ _null_ _null_ ));
DESCR("date difference from today preserving months and years");
! DATA(insert OID = 2069 ( timezone PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1184 "25 1114" _null_ _null_ _null_ _null_ timestamp_zone _null_ _null_ _null_ ));
DESCR("adjust timestamp to new time zone");
! DATA(insert OID = 2070 ( timezone PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1184 "1186 1114" _null_ _null_ _null_ _null_ timestamp_izone _null_ _null_ _null_ ));
DESCR("adjust timestamp to new time zone");
! DATA(insert OID = 2071 ( date_pl_interval PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1114 "1082 1186" _null_ _null_ _null_ _null_ date_pl_interval _null_ _null_ _null_ ));
DESCR("add");
! DATA(insert OID = 2072 ( date_mi_interval PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1114 "1082 1186" _null_ _null_ _null_ _null_ date_mi_interval _null_ _null_ _null_ ));
DESCR("subtract");
! DATA(insert OID = 2073 ( substring PGNSP PGUID 12 1 0 0 f f f t f i 2 0 25 "25 25" _null_ _null_ _null_ _null_ textregexsubstr _null_ _null_ _null_ ));
DESCR("extracts text matching regular expression");
! DATA(insert OID = 2074 ( substring PGNSP PGUID 14 1 0 0 f f f t f i 3 0 25 "25 25 25" _null_ _null_ _null_ _null_ "select pg_catalog.substring($1, pg_catalog.similar_escape($2, $3))" _null_ _null_ _null_ ));
DESCR("extracts text matching SQL99 regular expression");
! DATA(insert OID = 2075 ( bit PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1560 "20 23" _null_ _null_ _null_ _null_ bitfromint8 _null_ _null_ _null_ ));
DESCR("int8 to bitstring");
! DATA(insert OID = 2076 ( int8 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 20 "1560" _null_ _null_ _null_ _null_ bittoint8 _null_ _null_ _null_ ));
DESCR("bitstring to int8");
! DATA(insert OID = 2077 ( current_setting PGNSP PGUID 12 1 0 0 f f f t f s 1 0 25 "25" _null_ _null_ _null_ _null_ show_config_by_name _null_ _null_ _null_ ));
DESCR("SHOW X as a function");
! DATA(insert OID = 2078 ( set_config PGNSP PGUID 12 1 0 0 f f f f f v 3 0 25 "25 25 16" _null_ _null_ _null_ _null_ set_config_by_name _null_ _null_ _null_ ));
DESCR("SET X as a function");
! DATA(insert OID = 2084 ( pg_show_all_settings PGNSP PGUID 12 1 1000 0 f f f t t s 0 0 2249 "" "{25,25,25,25,25,25,25,25,25,25,25,1009,25,25,25,23}" "{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}" "{name,setting,unit,category,short_desc,extra_desc,context,vartype,source,min_val,max_val,enumvals,boot_val,reset_val,sourcefile,sourceline}" _null_ show_all_settings _null_ _null_ _null_ ));
DESCR("SHOW ALL as a function");
! DATA(insert OID = 1371 ( pg_lock_status PGNSP PGUID 12 1 1000 0 f f f t t v 0 0 2249 "" "{25,26,26,23,21,25,28,26,26,21,25,23,25,16}" "{o,o,o,o,o,o,o,o,o,o,o,o,o,o}" "{locktype,database,relation,page,tuple,virtualxid,transactionid,classid,objid,objsubid,virtualtransaction,pid,mode,granted}" _null_ pg_lock_status _null_ _null_ _null_ ));
DESCR("view system lock information");
! DATA(insert OID = 1065 ( pg_prepared_xact PGNSP PGUID 12 1 1000 0 f f f t t v 0 0 2249 "" "{28,25,1184,26,26}" "{o,o,o,o,o}" "{transaction,gid,prepared,ownerid,dbid}" _null_ pg_prepared_xact _null_ _null_ _null_ ));
DESCR("view two-phase transactions");
! DATA(insert OID = 2079 ( pg_table_is_visible PGNSP PGUID 12 1 0 0 f f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_table_is_visible _null_ _null_ _null_ ));
DESCR("is table visible in search path?");
! DATA(insert OID = 2080 ( pg_type_is_visible PGNSP PGUID 12 1 0 0 f f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_type_is_visible _null_ _null_ _null_ ));
DESCR("is type visible in search path?");
! DATA(insert OID = 2081 ( pg_function_is_visible PGNSP PGUID 12 1 0 0 f f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_function_is_visible _null_ _null_ _null_ ));
DESCR("is function visible in search path?");
! DATA(insert OID = 2082 ( pg_operator_is_visible PGNSP PGUID 12 1 0 0 f f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_operator_is_visible _null_ _null_ _null_ ));
DESCR("is operator visible in search path?");
! DATA(insert OID = 2083 ( pg_opclass_is_visible PGNSP PGUID 12 1 0 0 f f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_opclass_is_visible _null_ _null_ _null_ ));
DESCR("is opclass visible in search path?");
! DATA(insert OID = 2093 ( pg_conversion_is_visible PGNSP PGUID 12 1 0 0 f f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_conversion_is_visible _null_ _null_ _null_ ));
DESCR("is conversion visible in search path?");
! DATA(insert OID = 3756 ( pg_ts_parser_is_visible PGNSP PGUID 12 1 0 0 f f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_ts_parser_is_visible _null_ _null_ _null_ ));
DESCR("is text search parser visible in search path?");
! DATA(insert OID = 3757 ( pg_ts_dict_is_visible PGNSP PGUID 12 1 0 0 f f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_ts_dict_is_visible _null_ _null_ _null_ ));
DESCR("is text search dictionary visible in search path?");
! DATA(insert OID = 3768 ( pg_ts_template_is_visible PGNSP PGUID 12 1 0 0 f f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_ts_template_is_visible _null_ _null_ _null_ ));
DESCR("is text search template visible in search path?");
! DATA(insert OID = 3758 ( pg_ts_config_is_visible PGNSP PGUID 12 1 0 0 f f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_ts_config_is_visible _null_ _null_ _null_ ));
DESCR("is text search configuration visible in search path?");
! DATA(insert OID = 2854 ( pg_my_temp_schema PGNSP PGUID 12 1 0 0 f f f t f s 0 0 26 "" _null_ _null_ _null_ _null_ pg_my_temp_schema _null_ _null_ _null_ ));
DESCR("get OID of current session's temp schema, if any");
! DATA(insert OID = 2855 ( pg_is_other_temp_schema PGNSP PGUID 12 1 0 0 f f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_is_other_temp_schema _null_ _null_ _null_ ));
DESCR("is schema another session's temp schema?");
! DATA(insert OID = 2171 ( pg_cancel_backend PGNSP PGUID 12 1 0 0 f f f t f v 1 0 16 "23" _null_ _null_ _null_ _null_ pg_cancel_backend _null_ _null_ _null_ ));
DESCR("cancel a server process' current query");
! DATA(insert OID = 2096 ( pg_terminate_backend PGNSP PGUID 12 1 0 0 f f f t f v 1 0 16 "23" _null_ _null_ _null_ _null_ pg_terminate_backend _null_ _null_ _null_ ));
DESCR("terminate a server process");
! DATA(insert OID = 2172 ( pg_start_backup PGNSP PGUID 12 1 0 0 f f f t f v 1 0 25 "25" _null_ _null_ _null_ _null_ pg_start_backup _null_ _null_ _null_ ));
DESCR("prepare for taking an online backup");
! DATA(insert OID = 2173 ( pg_stop_backup PGNSP PGUID 12 1 0 0 f f f t f v 0 0 25 "" _null_ _null_ _null_ _null_ pg_stop_backup _null_ _null_ _null_ ));
DESCR("finish taking an online backup");
! DATA(insert OID = 2848 ( pg_switch_xlog PGNSP PGUID 12 1 0 0 f f f t f v 0 0 25 "" _null_ _null_ _null_ _null_ pg_switch_xlog _null_ _null_ _null_ ));
DESCR("switch to new xlog file");
! DATA(insert OID = 2849 ( pg_current_xlog_location PGNSP PGUID 12 1 0 0 f f f t f v 0 0 25 "" _null_ _null_ _null_ _null_ pg_current_xlog_location _null_ _null_ _null_ ));
DESCR("current xlog write location");
! DATA(insert OID = 2852 ( pg_current_xlog_insert_location PGNSP PGUID 12 1 0 0 f f f t f v 0 0 25 "" _null_ _null_ _null_ _null_ pg_current_xlog_insert_location _null_ _null_ _null_ ));
DESCR("current xlog insert location");
! DATA(insert OID = 2850 ( pg_xlogfile_name_offset PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2249 "25" "{25,25,23}" "{i,o,o}" "{wal_location,file_name,file_offset}" _null_ pg_xlogfile_name_offset _null_ _null_ _null_ ));
DESCR("xlog filename and byte offset, given an xlog location");
! DATA(insert OID = 2851 ( pg_xlogfile_name PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ pg_xlogfile_name _null_ _null_ _null_ ));
DESCR("xlog filename, given an xlog location");
! DATA(insert OID = 2621 ( pg_reload_conf PGNSP PGUID 12 1 0 0 f f f t f v 0 0 16 "" _null_ _null_ _null_ _null_ pg_reload_conf _null_ _null_ _null_ ));
DESCR("reload configuration files");
! DATA(insert OID = 2622 ( pg_rotate_logfile PGNSP PGUID 12 1 0 0 f f f t f v 0 0 16 "" _null_ _null_ _null_ _null_ pg_rotate_logfile _null_ _null_ _null_ ));
DESCR("rotate log file");
! DATA(insert OID = 2623 ( pg_stat_file PGNSP PGUID 12 1 0 0 f f f t f v 1 0 2249 "25" "{25,20,1184,1184,1184,1184,16}" "{i,o,o,o,o,o,o}" "{filename,size,access,modification,change,creation,isdir}" _null_ pg_stat_file _null_ _null_ _null_ ));
DESCR("return file information");
! DATA(insert OID = 2624 ( pg_read_file PGNSP PGUID 12 1 0 0 f f f t f v 3 0 25 "25 20 20" _null_ _null_ _null_ _null_ pg_read_file _null_ _null_ _null_ ));
DESCR("read text from a file");
! DATA(insert OID = 2625 ( pg_ls_dir PGNSP PGUID 12 1 1000 0 f f f t t v 1 0 25 "25" _null_ _null_ _null_ _null_ pg_ls_dir _null_ _null_ _null_ ));
DESCR("list all files in a directory");
! DATA(insert OID = 2626 ( pg_sleep PGNSP PGUID 12 1 0 0 f f f t f v 1 0 2278 "701" _null_ _null_ _null_ _null_ pg_sleep _null_ _null_ _null_ ));
DESCR("sleep for the specified time in seconds");
! DATA(insert OID = 2971 ( text PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "16" _null_ _null_ _null_ _null_ booltext _null_ _null_ _null_ ));
DESCR("convert boolean to text");
/* Aggregates (moved here from pg_aggregate for 7.3) */
! DATA(insert OID = 2100 ( avg PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("the average (arithmetic mean) as numeric of all bigint values");
! DATA(insert OID = 2101 ( avg PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("the average (arithmetic mean) as numeric of all integer values");
! DATA(insert OID = 2102 ( avg PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("the average (arithmetic mean) as numeric of all smallint values");
! DATA(insert OID = 2103 ( avg PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("the average (arithmetic mean) as numeric of all numeric values");
! DATA(insert OID = 2104 ( avg PGNSP PGUID 12 1 0 0 t f f f f i 1 0 701 "700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("the average (arithmetic mean) as float8 of all float4 values");
! DATA(insert OID = 2105 ( avg PGNSP PGUID 12 1 0 0 t f f f f i 1 0 701 "701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("the average (arithmetic mean) as float8 of all float8 values");
! DATA(insert OID = 2106 ( avg PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1186 "1186" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("the average (arithmetic mean) as interval of all interval values");
! DATA(insert OID = 2107 ( sum PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum as numeric across all bigint input values");
! DATA(insert OID = 2108 ( sum PGNSP PGUID 12 1 0 0 t f f f f i 1 0 20 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum as bigint across all integer input values");
! DATA(insert OID = 2109 ( sum PGNSP PGUID 12 1 0 0 t f f f f i 1 0 20 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum as bigint across all smallint input values");
! DATA(insert OID = 2110 ( sum PGNSP PGUID 12 1 0 0 t f f f f i 1 0 700 "700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum as float4 across all float4 input values");
! DATA(insert OID = 2111 ( sum PGNSP PGUID 12 1 0 0 t f f f f i 1 0 701 "701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum as float8 across all float8 input values");
! DATA(insert OID = 2112 ( sum PGNSP PGUID 12 1 0 0 t f f f f i 1 0 790 "790" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum as money across all money input values");
! DATA(insert OID = 2113 ( sum PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1186 "1186" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum as interval across all interval input values");
! DATA(insert OID = 2114 ( sum PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum as numeric across all numeric input values");
! DATA(insert OID = 2115 ( max PGNSP PGUID 12 1 0 0 t f f f f i 1 0 20 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all bigint input values");
! DATA(insert OID = 2116 ( max PGNSP PGUID 12 1 0 0 t f f f f i 1 0 23 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all integer input values");
! DATA(insert OID = 2117 ( max PGNSP PGUID 12 1 0 0 t f f f f i 1 0 21 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all smallint input values");
! DATA(insert OID = 2118 ( max PGNSP PGUID 12 1 0 0 t f f f f i 1 0 26 "26" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all oid input values");
! DATA(insert OID = 2119 ( max PGNSP PGUID 12 1 0 0 t f f f f i 1 0 700 "700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all float4 input values");
! DATA(insert OID = 2120 ( max PGNSP PGUID 12 1 0 0 t f f f f i 1 0 701 "701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all float8 input values");
! DATA(insert OID = 2121 ( max PGNSP PGUID 12 1 0 0 t f f f f i 1 0 702 "702" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all abstime input values");
! DATA(insert OID = 2122 ( max PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1082 "1082" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all date input values");
! DATA(insert OID = 2123 ( max PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1083 "1083" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all time input values");
! DATA(insert OID = 2124 ( max PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1266 "1266" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all time with time zone input values");
! DATA(insert OID = 2125 ( max PGNSP PGUID 12 1 0 0 t f f f f i 1 0 790 "790" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all money input values");
! DATA(insert OID = 2126 ( max PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1114 "1114" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all timestamp input values");
! DATA(insert OID = 2127 ( max PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1184 "1184" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all timestamp with time zone input values");
! DATA(insert OID = 2128 ( max PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1186 "1186" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all interval input values");
! DATA(insert OID = 2129 ( max PGNSP PGUID 12 1 0 0 t f f f f i 1 0 25 "25" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all text input values");
! DATA(insert OID = 2130 ( max PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all numeric input values");
! DATA(insert OID = 2050 ( max PGNSP PGUID 12 1 0 0 t f f f f i 1 0 2277 "2277" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all anyarray input values");
! DATA(insert OID = 2244 ( max PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1042 "1042" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all bpchar input values");
! DATA(insert OID = 2797 ( max PGNSP PGUID 12 1 0 0 t f f f f i 1 0 27 "27" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum value of all tid input values");
! DATA(insert OID = 2131 ( min PGNSP PGUID 12 1 0 0 t f f f f i 1 0 20 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all bigint input values");
! DATA(insert OID = 2132 ( min PGNSP PGUID 12 1 0 0 t f f f f i 1 0 23 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all integer input values");
! DATA(insert OID = 2133 ( min PGNSP PGUID 12 1 0 0 t f f f f i 1 0 21 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all smallint input values");
! DATA(insert OID = 2134 ( min PGNSP PGUID 12 1 0 0 t f f f f i 1 0 26 "26" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all oid input values");
! DATA(insert OID = 2135 ( min PGNSP PGUID 12 1 0 0 t f f f f i 1 0 700 "700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all float4 input values");
! DATA(insert OID = 2136 ( min PGNSP PGUID 12 1 0 0 t f f f f i 1 0 701 "701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all float8 input values");
! DATA(insert OID = 2137 ( min PGNSP PGUID 12 1 0 0 t f f f f i 1 0 702 "702" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all abstime input values");
! DATA(insert OID = 2138 ( min PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1082 "1082" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all date input values");
! DATA(insert OID = 2139 ( min PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1083 "1083" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all time input values");
! DATA(insert OID = 2140 ( min PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1266 "1266" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all time with time zone input values");
! DATA(insert OID = 2141 ( min PGNSP PGUID 12 1 0 0 t f f f f i 1 0 790 "790" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all money input values");
! DATA(insert OID = 2142 ( min PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1114 "1114" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all timestamp input values");
! DATA(insert OID = 2143 ( min PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1184 "1184" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all timestamp with time zone input values");
! DATA(insert OID = 2144 ( min PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1186 "1186" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all interval input values");
! DATA(insert OID = 2145 ( min PGNSP PGUID 12 1 0 0 t f f f f i 1 0 25 "25" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all text values");
! DATA(insert OID = 2146 ( min PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all numeric input values");
! DATA(insert OID = 2051 ( min PGNSP PGUID 12 1 0 0 t f f f f i 1 0 2277 "2277" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all anyarray input values");
! DATA(insert OID = 2245 ( min PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1042 "1042" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all bpchar input values");
! DATA(insert OID = 2798 ( min PGNSP PGUID 12 1 0 0 t f f f f i 1 0 27 "27" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum value of all tid input values");
/* count has two forms: count(any) and count(*) */
! DATA(insert OID = 2147 ( count PGNSP PGUID 12 1 0 0 t f f f f i 1 0 20 "2276" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("number of input rows for which the input expression is not null");
! DATA(insert OID = 2803 ( count PGNSP PGUID 12 1 0 0 t f f f f i 0 0 20 "" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("number of input rows");
! DATA(insert OID = 2718 ( var_pop PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population variance of bigint input values (square of the population standard deviation)");
! DATA(insert OID = 2719 ( var_pop PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population variance of integer input values (square of the population standard deviation)");
! DATA(insert OID = 2720 ( var_pop PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population variance of smallint input values (square of the population standard deviation)");
! DATA(insert OID = 2721 ( var_pop PGNSP PGUID 12 1 0 0 t f f f f i 1 0 701 "700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population variance of float4 input values (square of the population standard deviation)");
! DATA(insert OID = 2722 ( var_pop PGNSP PGUID 12 1 0 0 t f f f f i 1 0 701 "701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population variance of float8 input values (square of the population standard deviation)");
! DATA(insert OID = 2723 ( var_pop PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population variance of numeric input values (square of the population standard deviation)");
! DATA(insert OID = 2641 ( var_samp PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample variance of bigint input values (square of the sample standard deviation)");
! DATA(insert OID = 2642 ( var_samp PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample variance of integer input values (square of the sample standard deviation)");
! DATA(insert OID = 2643 ( var_samp PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample variance of smallint input values (square of the sample standard deviation)");
! DATA(insert OID = 2644 ( var_samp PGNSP PGUID 12 1 0 0 t f f f f i 1 0 701 "700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample variance of float4 input values (square of the sample standard deviation)");
! DATA(insert OID = 2645 ( var_samp PGNSP PGUID 12 1 0 0 t f f f f i 1 0 701 "701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample variance of float8 input values (square of the sample standard deviation)");
! DATA(insert OID = 2646 ( var_samp PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample variance of numeric input values (square of the sample standard deviation)");
! DATA(insert OID = 2148 ( variance PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for var_samp");
! DATA(insert OID = 2149 ( variance PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for var_samp");
! DATA(insert OID = 2150 ( variance PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for var_samp");
! DATA(insert OID = 2151 ( variance PGNSP PGUID 12 1 0 0 t f f f f i 1 0 701 "700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for var_samp");
! DATA(insert OID = 2152 ( variance PGNSP PGUID 12 1 0 0 t f f f f i 1 0 701 "701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for var_samp");
! DATA(insert OID = 2153 ( variance PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for var_samp");
! DATA(insert OID = 2724 ( stddev_pop PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population standard deviation of bigint input values");
! DATA(insert OID = 2725 ( stddev_pop PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population standard deviation of integer input values");
! DATA(insert OID = 2726 ( stddev_pop PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population standard deviation of smallint input values");
! DATA(insert OID = 2727 ( stddev_pop PGNSP PGUID 12 1 0 0 t f f f f i 1 0 701 "700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population standard deviation of float4 input values");
! DATA(insert OID = 2728 ( stddev_pop PGNSP PGUID 12 1 0 0 t f f f f i 1 0 701 "701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population standard deviation of float8 input values");
! DATA(insert OID = 2729 ( stddev_pop PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population standard deviation of numeric input values");
! DATA(insert OID = 2712 ( stddev_samp PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample standard deviation of bigint input values");
! DATA(insert OID = 2713 ( stddev_samp PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample standard deviation of integer input values");
! DATA(insert OID = 2714 ( stddev_samp PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample standard deviation of smallint input values");
! DATA(insert OID = 2715 ( stddev_samp PGNSP PGUID 12 1 0 0 t f f f f i 1 0 701 "700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample standard deviation of float4 input values");
! DATA(insert OID = 2716 ( stddev_samp PGNSP PGUID 12 1 0 0 t f f f f i 1 0 701 "701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample standard deviation of float8 input values");
! DATA(insert OID = 2717 ( stddev_samp PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample standard deviation of numeric input values");
! DATA(insert OID = 2154 ( stddev PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for stddev_samp");
! DATA(insert OID = 2155 ( stddev PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for stddev_samp");
! DATA(insert OID = 2156 ( stddev PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for stddev_samp");
! DATA(insert OID = 2157 ( stddev PGNSP PGUID 12 1 0 0 t f f f f i 1 0 701 "700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for stddev_samp");
! DATA(insert OID = 2158 ( stddev PGNSP PGUID 12 1 0 0 t f f f f i 1 0 701 "701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for stddev_samp");
! DATA(insert OID = 2159 ( stddev PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1700 "1700" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("historical alias for stddev_samp");
! DATA(insert OID = 2818 ( regr_count PGNSP PGUID 12 1 0 0 t f f f f i 2 0 20 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("number of input rows in which both expressions are nonnull");
! DATA(insert OID = 2819 ( regr_sxx PGNSP PGUID 12 1 0 0 t f f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum of squares of the independent variable (sum(X^2) - sum(X)^2/N)");
! DATA(insert OID = 2820 ( regr_syy PGNSP PGUID 12 1 0 0 t f f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum of squares of the dependent variable (sum(Y^2) - sum(Y)^2/N)");
! DATA(insert OID = 2821 ( regr_sxy PGNSP PGUID 12 1 0 0 t f f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sum of products of independent times dependent variable (sum(X*Y) - sum(X) * sum(Y)/N)");
! DATA(insert OID = 2822 ( regr_avgx PGNSP PGUID 12 1 0 0 t f f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("average of the independent variable (sum(X)/N)");
! DATA(insert OID = 2823 ( regr_avgy PGNSP PGUID 12 1 0 0 t f f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("average of the dependent variable (sum(Y)/N)");
! DATA(insert OID = 2824 ( regr_r2 PGNSP PGUID 12 1 0 0 t f f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("square of the correlation coefficient");
! DATA(insert OID = 2825 ( regr_slope PGNSP PGUID 12 1 0 0 t f f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("slope of the least-squares-fit linear equation determined by the (X, Y) pairs");
! DATA(insert OID = 2826 ( regr_intercept PGNSP PGUID 12 1 0 0 t f f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("y-intercept of the least-squares-fit linear equation determined by the (X, Y) pairs");
! DATA(insert OID = 2827 ( covar_pop PGNSP PGUID 12 1 0 0 t f f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("population covariance");
! DATA(insert OID = 2828 ( covar_samp PGNSP PGUID 12 1 0 0 t f f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("sample covariance");
! DATA(insert OID = 2829 ( corr PGNSP PGUID 12 1 0 0 t f f f f i 2 0 701 "701 701" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("correlation coefficient");
! DATA(insert OID = 2160 ( text_pattern_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ text_pattern_lt _null_ _null_ _null_ ));
! DATA(insert OID = 2161 ( text_pattern_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ text_pattern_le _null_ _null_ _null_ ));
! DATA(insert OID = 2163 ( text_pattern_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ text_pattern_ge _null_ _null_ _null_ ));
! DATA(insert OID = 2164 ( text_pattern_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "25 25" _null_ _null_ _null_ _null_ text_pattern_gt _null_ _null_ _null_ ));
! DATA(insert OID = 2166 ( bttext_pattern_cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "25 25" _null_ _null_ _null_ _null_ bttext_pattern_cmp _null_ _null_ _null_ ));
! DATA(insert OID = 2174 ( bpchar_pattern_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ bpchar_pattern_lt _null_ _null_ _null_ ));
! DATA(insert OID = 2175 ( bpchar_pattern_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ bpchar_pattern_le _null_ _null_ _null_ ));
! DATA(insert OID = 2177 ( bpchar_pattern_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ bpchar_pattern_ge _null_ _null_ _null_ ));
! DATA(insert OID = 2178 ( bpchar_pattern_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1042 1042" _null_ _null_ _null_ _null_ bpchar_pattern_gt _null_ _null_ _null_ ));
! DATA(insert OID = 2180 ( btbpchar_pattern_cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "1042 1042" _null_ _null_ _null_ _null_ btbpchar_pattern_cmp _null_ _null_ _null_ ));
! DATA(insert OID = 2188 ( btint48cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "23 20" _null_ _null_ _null_ _null_ btint48cmp _null_ _null_ _null_ ));
! DATA(insert OID = 2189 ( btint84cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "20 23" _null_ _null_ _null_ _null_ btint84cmp _null_ _null_ _null_ ));
! DATA(insert OID = 2190 ( btint24cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "21 23" _null_ _null_ _null_ _null_ btint24cmp _null_ _null_ _null_ ));
! DATA(insert OID = 2191 ( btint42cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "23 21" _null_ _null_ _null_ _null_ btint42cmp _null_ _null_ _null_ ));
! DATA(insert OID = 2192 ( btint28cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "21 20" _null_ _null_ _null_ _null_ btint28cmp _null_ _null_ _null_ ));
! DATA(insert OID = 2193 ( btint82cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "20 21" _null_ _null_ _null_ _null_ btint82cmp _null_ _null_ _null_ ));
! DATA(insert OID = 2194 ( btfloat48cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "700 701" _null_ _null_ _null_ _null_ btfloat48cmp _null_ _null_ _null_ ));
! DATA(insert OID = 2195 ( btfloat84cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "701 700" _null_ _null_ _null_ _null_ btfloat84cmp _null_ _null_ _null_ ));
! DATA(insert OID = 2212 ( regprocedurein PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2202 "2275" _null_ _null_ _null_ _null_ regprocedurein _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2213 ( regprocedureout PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "2202" _null_ _null_ _null_ _null_ regprocedureout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2214 ( regoperin PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2203 "2275" _null_ _null_ _null_ _null_ regoperin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2215 ( regoperout PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "2203" _null_ _null_ _null_ _null_ regoperout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2216 ( regoperatorin PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2204 "2275" _null_ _null_ _null_ _null_ regoperatorin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2217 ( regoperatorout PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "2204" _null_ _null_ _null_ _null_ regoperatorout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2218 ( regclassin PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2205 "2275" _null_ _null_ _null_ _null_ regclassin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2219 ( regclassout PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "2205" _null_ _null_ _null_ _null_ regclassout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2220 ( regtypein PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2206 "2275" _null_ _null_ _null_ _null_ regtypein _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2221 ( regtypeout PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "2206" _null_ _null_ _null_ _null_ regtypeout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 1079 ( regclass PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2205 "25" _null_ _null_ _null_ _null_ text_regclass _null_ _null_ _null_ ));
DESCR("convert text to regclass");
! DATA(insert OID = 2246 ( fmgr_internal_validator PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2278 "26" _null_ _null_ _null_ _null_ fmgr_internal_validator _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 2247 ( fmgr_c_validator PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2278 "26" _null_ _null_ _null_ _null_ fmgr_c_validator _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 2248 ( fmgr_sql_validator PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2278 "26" _null_ _null_ _null_ _null_ fmgr_sql_validator _null_ _null_ _null_ ));
DESCR("(internal)");
! DATA(insert OID = 2250 ( has_database_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ has_database_privilege_name_name _null_ _null_ _null_ ));
DESCR("user privilege on database by username, database name");
! DATA(insert OID = 2251 ( has_database_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ has_database_privilege_name_id _null_ _null_ _null_ ));
DESCR("user privilege on database by username, database oid");
! DATA(insert OID = 2252 ( has_database_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ has_database_privilege_id_name _null_ _null_ _null_ ));
DESCR("user privilege on database by user oid, database name");
! DATA(insert OID = 2253 ( has_database_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ has_database_privilege_id_id _null_ _null_ _null_ ));
DESCR("user privilege on database by user oid, database oid");
! DATA(insert OID = 2254 ( has_database_privilege PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "25 25" _null_ _null_ _null_ _null_ has_database_privilege_name _null_ _null_ _null_ ));
DESCR("current user privilege on database by database name");
! DATA(insert OID = 2255 ( has_database_privilege PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "26 25" _null_ _null_ _null_ _null_ has_database_privilege_id _null_ _null_ _null_ ));
DESCR("current user privilege on database by database oid");
! DATA(insert OID = 2256 ( has_function_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ has_function_privilege_name_name _null_ _null_ _null_ ));
DESCR("user privilege on function by username, function name");
! DATA(insert OID = 2257 ( has_function_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ has_function_privilege_name_id _null_ _null_ _null_ ));
DESCR("user privilege on function by username, function oid");
! DATA(insert OID = 2258 ( has_function_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ has_function_privilege_id_name _null_ _null_ _null_ ));
DESCR("user privilege on function by user oid, function name");
! DATA(insert OID = 2259 ( has_function_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ has_function_privilege_id_id _null_ _null_ _null_ ));
DESCR("user privilege on function by user oid, function oid");
! DATA(insert OID = 2260 ( has_function_privilege PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "25 25" _null_ _null_ _null_ _null_ has_function_privilege_name _null_ _null_ _null_ ));
DESCR("current user privilege on function by function name");
! DATA(insert OID = 2261 ( has_function_privilege PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "26 25" _null_ _null_ _null_ _null_ has_function_privilege_id _null_ _null_ _null_ ));
DESCR("current user privilege on function by function oid");
! DATA(insert OID = 2262 ( has_language_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ has_language_privilege_name_name _null_ _null_ _null_ ));
DESCR("user privilege on language by username, language name");
! DATA(insert OID = 2263 ( has_language_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ has_language_privilege_name_id _null_ _null_ _null_ ));
DESCR("user privilege on language by username, language oid");
! DATA(insert OID = 2264 ( has_language_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ has_language_privilege_id_name _null_ _null_ _null_ ));
DESCR("user privilege on language by user oid, language name");
! DATA(insert OID = 2265 ( has_language_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ has_language_privilege_id_id _null_ _null_ _null_ ));
DESCR("user privilege on language by user oid, language oid");
! DATA(insert OID = 2266 ( has_language_privilege PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "25 25" _null_ _null_ _null_ _null_ has_language_privilege_name _null_ _null_ _null_ ));
DESCR("current user privilege on language by language name");
! DATA(insert OID = 2267 ( has_language_privilege PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "26 25" _null_ _null_ _null_ _null_ has_language_privilege_id _null_ _null_ _null_ ));
DESCR("current user privilege on language by language oid");
! DATA(insert OID = 2268 ( has_schema_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ has_schema_privilege_name_name _null_ _null_ _null_ ));
DESCR("user privilege on schema by username, schema name");
! DATA(insert OID = 2269 ( has_schema_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ has_schema_privilege_name_id _null_ _null_ _null_ ));
DESCR("user privilege on schema by username, schema oid");
! DATA(insert OID = 2270 ( has_schema_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ has_schema_privilege_id_name _null_ _null_ _null_ ));
DESCR("user privilege on schema by user oid, schema name");
! DATA(insert OID = 2271 ( has_schema_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ has_schema_privilege_id_id _null_ _null_ _null_ ));
DESCR("user privilege on schema by user oid, schema oid");
! DATA(insert OID = 2272 ( has_schema_privilege PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "25 25" _null_ _null_ _null_ _null_ has_schema_privilege_name _null_ _null_ _null_ ));
DESCR("current user privilege on schema by schema name");
! DATA(insert OID = 2273 ( has_schema_privilege PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "26 25" _null_ _null_ _null_ _null_ has_schema_privilege_id _null_ _null_ _null_ ));
DESCR("current user privilege on schema by schema oid");
! DATA(insert OID = 2390 ( has_tablespace_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "19 25 25" _null_ _null_ _null_ _null_ has_tablespace_privilege_name_name _null_ _null_ _null_ ));
DESCR("user privilege on tablespace by username, tablespace name");
! DATA(insert OID = 2391 ( has_tablespace_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ has_tablespace_privilege_name_id _null_ _null_ _null_ ));
DESCR("user privilege on tablespace by username, tablespace oid");
! DATA(insert OID = 2392 ( has_tablespace_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "26 25 25" _null_ _null_ _null_ _null_ has_tablespace_privilege_id_name _null_ _null_ _null_ ));
DESCR("user privilege on tablespace by user oid, tablespace name");
! DATA(insert OID = 2393 ( has_tablespace_privilege PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ has_tablespace_privilege_id_id _null_ _null_ _null_ ));
DESCR("user privilege on tablespace by user oid, tablespace oid");
! DATA(insert OID = 2394 ( has_tablespace_privilege PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "25 25" _null_ _null_ _null_ _null_ has_tablespace_privilege_name _null_ _null_ _null_ ));
DESCR("current user privilege on tablespace by tablespace name");
! DATA(insert OID = 2395 ( has_tablespace_privilege PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "26 25" _null_ _null_ _null_ _null_ has_tablespace_privilege_id _null_ _null_ _null_ ));
DESCR("current user privilege on tablespace by tablespace oid");
! DATA(insert OID = 2705 ( pg_has_role PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "19 19 25" _null_ _null_ _null_ _null_ pg_has_role_name_name _null_ _null_ _null_ ));
DESCR("user privilege on role by username, role name");
! DATA(insert OID = 2706 ( pg_has_role PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "19 26 25" _null_ _null_ _null_ _null_ pg_has_role_name_id _null_ _null_ _null_ ));
DESCR("user privilege on role by username, role oid");
! DATA(insert OID = 2707 ( pg_has_role PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "26 19 25" _null_ _null_ _null_ _null_ pg_has_role_id_name _null_ _null_ _null_ ));
DESCR("user privilege on role by user oid, role name");
! DATA(insert OID = 2708 ( pg_has_role PGNSP PGUID 12 1 0 0 f f f t f s 3 0 16 "26 26 25" _null_ _null_ _null_ _null_ pg_has_role_id_id _null_ _null_ _null_ ));
DESCR("user privilege on role by user oid, role oid");
! DATA(insert OID = 2709 ( pg_has_role PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "19 25" _null_ _null_ _null_ _null_ pg_has_role_name _null_ _null_ _null_ ));
DESCR("current user privilege on role by role name");
! DATA(insert OID = 2710 ( pg_has_role PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "26 25" _null_ _null_ _null_ _null_ pg_has_role_id _null_ _null_ _null_ ));
DESCR("current user privilege on role by role oid");
! DATA(insert OID = 1269 ( pg_column_size PGNSP PGUID 12 1 0 0 f f f t f s 1 0 23 "2276" _null_ _null_ _null_ _null_ pg_column_size _null_ _null_ _null_ ));
DESCR("bytes required to store the value, perhaps with compression");
! DATA(insert OID = 2322 ( pg_tablespace_size PGNSP PGUID 12 1 0 0 f f f t f v 1 0 20 "26" _null_ _null_ _null_ _null_ pg_tablespace_size_oid _null_ _null_ _null_ ));
DESCR("total disk space usage for the specified tablespace");
! DATA(insert OID = 2323 ( pg_tablespace_size PGNSP PGUID 12 1 0 0 f f f t f v 1 0 20 "19" _null_ _null_ _null_ _null_ pg_tablespace_size_name _null_ _null_ _null_ ));
DESCR("total disk space usage for the specified tablespace");
! DATA(insert OID = 2324 ( pg_database_size PGNSP PGUID 12 1 0 0 f f f t f v 1 0 20 "26" _null_ _null_ _null_ _null_ pg_database_size_oid _null_ _null_ _null_ ));
DESCR("total disk space usage for the specified database");
! DATA(insert OID = 2168 ( pg_database_size PGNSP PGUID 12 1 0 0 f f f t f v 1 0 20 "19" _null_ _null_ _null_ _null_ pg_database_size_name _null_ _null_ _null_ ));
DESCR("total disk space usage for the specified database");
! DATA(insert OID = 2325 ( pg_relation_size PGNSP PGUID 14 1 0 0 f f f t f v 1 0 20 "2205" _null_ _null_ _null_ _null_ "select pg_catalog.pg_relation_size($1, ''main'')" _null_ _null_ _null_ ));
DESCR("disk space usage for the specified table or index");
! DATA(insert OID = 2332 ( pg_relation_size PGNSP PGUID 12 1 0 0 f f f t f v 2 0 20 "2205 25" _null_ _null_ _null_ _null_ pg_relation_size _null_ _null_ _null_ ));
DESCR("disk space usage for the specified fork of a table or index");
! DATA(insert OID = 2286 ( pg_total_relation_size PGNSP PGUID 12 1 0 0 f f f t f v 1 0 20 "2205" _null_ _null_ _null_ _null_ pg_total_relation_size _null_ _null_ _null_ ));
DESCR("total disk space usage for the specified table and associated indexes and toast tables");
! DATA(insert OID = 2288 ( pg_size_pretty PGNSP PGUID 12 1 0 0 f f f t f v 1 0 25 "20" _null_ _null_ _null_ _null_ pg_size_pretty _null_ _null_ _null_ ));
DESCR("convert a long int to a human readable text using size units");
! DATA(insert OID = 2290 ( record_in PGNSP PGUID 12 1 0 0 f f f t f v 3 0 2249 "2275 26 23" _null_ _null_ _null_ _null_ record_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2291 ( record_out PGNSP PGUID 12 1 0 0 f f f t f v 1 0 2275 "2249" _null_ _null_ _null_ _null_ record_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2292 ( cstring_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "2275" _null_ _null_ _null_ _null_ cstring_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2293 ( cstring_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "2275" _null_ _null_ _null_ _null_ cstring_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2294 ( any_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2276 "2275" _null_ _null_ _null_ _null_ any_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2295 ( any_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "2276" _null_ _null_ _null_ _null_ any_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2296 ( anyarray_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2277 "2275" _null_ _null_ _null_ _null_ anyarray_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2297 ( anyarray_out PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "2277" _null_ _null_ _null_ _null_ anyarray_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2298 ( void_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2278 "2275" _null_ _null_ _null_ _null_ void_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2299 ( void_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "2278" _null_ _null_ _null_ _null_ void_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2300 ( trigger_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2279 "2275" _null_ _null_ _null_ _null_ trigger_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2301 ( trigger_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "2279" _null_ _null_ _null_ _null_ trigger_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2302 ( language_handler_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2280 "2275" _null_ _null_ _null_ _null_ language_handler_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2303 ( language_handler_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "2280" _null_ _null_ _null_ _null_ language_handler_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2304 ( internal_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2281 "2275" _null_ _null_ _null_ _null_ internal_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2305 ( internal_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "2281" _null_ _null_ _null_ _null_ internal_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2306 ( opaque_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2282 "2275" _null_ _null_ _null_ _null_ opaque_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2307 ( opaque_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "2282" _null_ _null_ _null_ _null_ opaque_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2312 ( anyelement_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2283 "2275" _null_ _null_ _null_ _null_ anyelement_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2313 ( anyelement_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "2283" _null_ _null_ _null_ _null_ anyelement_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2398 ( shell_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2282 "2275" _null_ _null_ _null_ _null_ shell_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2399 ( shell_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "2282" _null_ _null_ _null_ _null_ shell_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2597 ( domain_in PGNSP PGUID 12 1 0 0 f f f f f v 3 0 2276 "2275 26 23" _null_ _null_ _null_ _null_ domain_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2598 ( domain_recv PGNSP PGUID 12 1 0 0 f f f f f v 3 0 2276 "2281 26 23" _null_ _null_ _null_ _null_ domain_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2777 ( anynonarray_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2776 "2275" _null_ _null_ _null_ _null_ anynonarray_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2778 ( anynonarray_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "2776" _null_ _null_ _null_ _null_ anynonarray_out _null_ _null_ _null_ ));
DESCR("I/O");
/* cryptographic */
! DATA(insert OID = 2311 ( md5 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "25" _null_ _null_ _null_ _null_ md5_text _null_ _null_ _null_ ));
DESCR("calculates md5 hash");
! DATA(insert OID = 2321 ( md5 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "17" _null_ _null_ _null_ _null_ md5_bytea _null_ _null_ _null_ ));
DESCR("calculates md5 hash");
/* crosstype operations for date vs. timestamp and timestamptz */
! DATA(insert OID = 2338 ( date_lt_timestamp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1082 1114" _null_ _null_ _null_ _null_ date_lt_timestamp _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 2339 ( date_le_timestamp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1082 1114" _null_ _null_ _null_ _null_ date_le_timestamp _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 2340 ( date_eq_timestamp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1082 1114" _null_ _null_ _null_ _null_ date_eq_timestamp _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 2341 ( date_gt_timestamp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1082 1114" _null_ _null_ _null_ _null_ date_gt_timestamp _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 2342 ( date_ge_timestamp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1082 1114" _null_ _null_ _null_ _null_ date_ge_timestamp _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 2343 ( date_ne_timestamp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1082 1114" _null_ _null_ _null_ _null_ date_ne_timestamp _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 2344 ( date_cmp_timestamp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "1082 1114" _null_ _null_ _null_ _null_ date_cmp_timestamp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 2351 ( date_lt_timestamptz PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1082 1184" _null_ _null_ _null_ _null_ date_lt_timestamptz _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 2352 ( date_le_timestamptz PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1082 1184" _null_ _null_ _null_ _null_ date_le_timestamptz _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 2353 ( date_eq_timestamptz PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1082 1184" _null_ _null_ _null_ _null_ date_eq_timestamptz _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 2354 ( date_gt_timestamptz PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1082 1184" _null_ _null_ _null_ _null_ date_gt_timestamptz _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 2355 ( date_ge_timestamptz PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1082 1184" _null_ _null_ _null_ _null_ date_ge_timestamptz _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 2356 ( date_ne_timestamptz PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1082 1184" _null_ _null_ _null_ _null_ date_ne_timestamptz _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 2357 ( date_cmp_timestamptz PGNSP PGUID 12 1 0 0 f f f t f s 2 0 23 "1082 1184" _null_ _null_ _null_ _null_ date_cmp_timestamptz _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 2364 ( timestamp_lt_date PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1114 1082" _null_ _null_ _null_ _null_ timestamp_lt_date _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 2365 ( timestamp_le_date PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1114 1082" _null_ _null_ _null_ _null_ timestamp_le_date _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 2366 ( timestamp_eq_date PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1114 1082" _null_ _null_ _null_ _null_ timestamp_eq_date _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 2367 ( timestamp_gt_date PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1114 1082" _null_ _null_ _null_ _null_ timestamp_gt_date _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 2368 ( timestamp_ge_date PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1114 1082" _null_ _null_ _null_ _null_ timestamp_ge_date _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 2369 ( timestamp_ne_date PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "1114 1082" _null_ _null_ _null_ _null_ timestamp_ne_date _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 2370 ( timestamp_cmp_date PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "1114 1082" _null_ _null_ _null_ _null_ timestamp_cmp_date _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 2377 ( timestamptz_lt_date PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1184 1082" _null_ _null_ _null_ _null_ timestamptz_lt_date _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 2378 ( timestamptz_le_date PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1184 1082" _null_ _null_ _null_ _null_ timestamptz_le_date _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 2379 ( timestamptz_eq_date PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1184 1082" _null_ _null_ _null_ _null_ timestamptz_eq_date _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 2380 ( timestamptz_gt_date PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1184 1082" _null_ _null_ _null_ _null_ timestamptz_gt_date _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 2381 ( timestamptz_ge_date PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1184 1082" _null_ _null_ _null_ _null_ timestamptz_ge_date _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 2382 ( timestamptz_ne_date PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1184 1082" _null_ _null_ _null_ _null_ timestamptz_ne_date _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 2383 ( timestamptz_cmp_date PGNSP PGUID 12 1 0 0 f f f t f s 2 0 23 "1184 1082" _null_ _null_ _null_ _null_ timestamptz_cmp_date _null_ _null_ _null_ ));
DESCR("less-equal-greater");
/* crosstype operations for timestamp vs. timestamptz */
! DATA(insert OID = 2520 ( timestamp_lt_timestamptz PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1114 1184" _null_ _null_ _null_ _null_ timestamp_lt_timestamptz _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 2521 ( timestamp_le_timestamptz PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1114 1184" _null_ _null_ _null_ _null_ timestamp_le_timestamptz _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 2522 ( timestamp_eq_timestamptz PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1114 1184" _null_ _null_ _null_ _null_ timestamp_eq_timestamptz _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 2523 ( timestamp_gt_timestamptz PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1114 1184" _null_ _null_ _null_ _null_ timestamp_gt_timestamptz _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 2524 ( timestamp_ge_timestamptz PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1114 1184" _null_ _null_ _null_ _null_ timestamp_ge_timestamptz _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 2525 ( timestamp_ne_timestamptz PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1114 1184" _null_ _null_ _null_ _null_ timestamp_ne_timestamptz _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 2526 ( timestamp_cmp_timestamptz PGNSP PGUID 12 1 0 0 f f f t f s 2 0 23 "1114 1184" _null_ _null_ _null_ _null_ timestamp_cmp_timestamptz _null_ _null_ _null_ ));
DESCR("less-equal-greater");
! DATA(insert OID = 2527 ( timestamptz_lt_timestamp PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1184 1114" _null_ _null_ _null_ _null_ timestamptz_lt_timestamp _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 2528 ( timestamptz_le_timestamp PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1184 1114" _null_ _null_ _null_ _null_ timestamptz_le_timestamp _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 2529 ( timestamptz_eq_timestamp PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1184 1114" _null_ _null_ _null_ _null_ timestamptz_eq_timestamp _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 2530 ( timestamptz_gt_timestamp PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1184 1114" _null_ _null_ _null_ _null_ timestamptz_gt_timestamp _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 2531 ( timestamptz_ge_timestamp PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1184 1114" _null_ _null_ _null_ _null_ timestamptz_ge_timestamp _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 2532 ( timestamptz_ne_timestamp PGNSP PGUID 12 1 0 0 f f f t f s 2 0 16 "1184 1114" _null_ _null_ _null_ _null_ timestamptz_ne_timestamp _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 2533 ( timestamptz_cmp_timestamp PGNSP PGUID 12 1 0 0 f f f t f s 2 0 23 "1184 1114" _null_ _null_ _null_ _null_ timestamptz_cmp_timestamp _null_ _null_ _null_ ));
DESCR("less-equal-greater");
/* send/receive functions */
! DATA(insert OID = 2400 ( array_recv PGNSP PGUID 12 1 0 0 f f f t f s 3 0 2277 "2281 26 23" _null_ _null_ _null_ _null_ array_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2401 ( array_send PGNSP PGUID 12 1 0 0 f f f t f s 1 0 17 "2277" _null_ _null_ _null_ _null_ array_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2402 ( record_recv PGNSP PGUID 12 1 0 0 f f f t f v 3 0 2249 "2281 26 23" _null_ _null_ _null_ _null_ record_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2403 ( record_send PGNSP PGUID 12 1 0 0 f f f t f v 1 0 17 "2249" _null_ _null_ _null_ _null_ record_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2404 ( int2recv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 21 "2281" _null_ _null_ _null_ _null_ int2recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2405 ( int2send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "21" _null_ _null_ _null_ _null_ int2send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2406 ( int4recv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "2281" _null_ _null_ _null_ _null_ int4recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2407 ( int4send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "23" _null_ _null_ _null_ _null_ int4send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2408 ( int8recv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 20 "2281" _null_ _null_ _null_ _null_ int8recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2409 ( int8send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "20" _null_ _null_ _null_ _null_ int8send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2410 ( int2vectorrecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 22 "2281" _null_ _null_ _null_ _null_ int2vectorrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2411 ( int2vectorsend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "22" _null_ _null_ _null_ _null_ int2vectorsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2412 ( bytearecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "2281" _null_ _null_ _null_ _null_ bytearecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2413 ( byteasend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "17" _null_ _null_ _null_ _null_ byteasend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2414 ( textrecv PGNSP PGUID 12 1 0 0 f f f t f s 1 0 25 "2281" _null_ _null_ _null_ _null_ textrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2415 ( textsend PGNSP PGUID 12 1 0 0 f f f t f s 1 0 17 "25" _null_ _null_ _null_ _null_ textsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2416 ( unknownrecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 705 "2281" _null_ _null_ _null_ _null_ unknownrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2417 ( unknownsend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "705" _null_ _null_ _null_ _null_ unknownsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2418 ( oidrecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 26 "2281" _null_ _null_ _null_ _null_ oidrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2419 ( oidsend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "26" _null_ _null_ _null_ _null_ oidsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2420 ( oidvectorrecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 30 "2281" _null_ _null_ _null_ _null_ oidvectorrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2421 ( oidvectorsend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "30" _null_ _null_ _null_ _null_ oidvectorsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2422 ( namerecv PGNSP PGUID 12 1 0 0 f f f t f s 1 0 19 "2281" _null_ _null_ _null_ _null_ namerecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2423 ( namesend PGNSP PGUID 12 1 0 0 f f f t f s 1 0 17 "19" _null_ _null_ _null_ _null_ namesend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2424 ( float4recv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 700 "2281" _null_ _null_ _null_ _null_ float4recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2425 ( float4send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "700" _null_ _null_ _null_ _null_ float4send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2426 ( float8recv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 701 "2281" _null_ _null_ _null_ _null_ float8recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2427 ( float8send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "701" _null_ _null_ _null_ _null_ float8send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2428 ( point_recv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 600 "2281" _null_ _null_ _null_ _null_ point_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2429 ( point_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "600" _null_ _null_ _null_ _null_ point_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2430 ( bpcharrecv PGNSP PGUID 12 1 0 0 f f f t f s 3 0 1042 "2281 26 23" _null_ _null_ _null_ _null_ bpcharrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2431 ( bpcharsend PGNSP PGUID 12 1 0 0 f f f t f s 1 0 17 "1042" _null_ _null_ _null_ _null_ bpcharsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2432 ( varcharrecv PGNSP PGUID 12 1 0 0 f f f t f s 3 0 1043 "2281 26 23" _null_ _null_ _null_ _null_ varcharrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2433 ( varcharsend PGNSP PGUID 12 1 0 0 f f f t f s 1 0 17 "1043" _null_ _null_ _null_ _null_ varcharsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2434 ( charrecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 18 "2281" _null_ _null_ _null_ _null_ charrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2435 ( charsend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "18" _null_ _null_ _null_ _null_ charsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2436 ( boolrecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 16 "2281" _null_ _null_ _null_ _null_ boolrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2437 ( boolsend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "16" _null_ _null_ _null_ _null_ boolsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2438 ( tidrecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 27 "2281" _null_ _null_ _null_ _null_ tidrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2439 ( tidsend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "27" _null_ _null_ _null_ _null_ tidsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2440 ( xidrecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 28 "2281" _null_ _null_ _null_ _null_ xidrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2441 ( xidsend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "28" _null_ _null_ _null_ _null_ xidsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2442 ( cidrecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 29 "2281" _null_ _null_ _null_ _null_ cidrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2443 ( cidsend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "29" _null_ _null_ _null_ _null_ cidsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2444 ( regprocrecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 24 "2281" _null_ _null_ _null_ _null_ regprocrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2445 ( regprocsend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "24" _null_ _null_ _null_ _null_ regprocsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2446 ( regprocedurerecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2202 "2281" _null_ _null_ _null_ _null_ regprocedurerecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2447 ( regproceduresend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "2202" _null_ _null_ _null_ _null_ regproceduresend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2448 ( regoperrecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2203 "2281" _null_ _null_ _null_ _null_ regoperrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2449 ( regopersend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "2203" _null_ _null_ _null_ _null_ regopersend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2450 ( regoperatorrecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2204 "2281" _null_ _null_ _null_ _null_ regoperatorrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2451 ( regoperatorsend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "2204" _null_ _null_ _null_ _null_ regoperatorsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2452 ( regclassrecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2205 "2281" _null_ _null_ _null_ _null_ regclassrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2453 ( regclasssend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "2205" _null_ _null_ _null_ _null_ regclasssend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2454 ( regtyperecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2206 "2281" _null_ _null_ _null_ _null_ regtyperecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2455 ( regtypesend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "2206" _null_ _null_ _null_ _null_ regtypesend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2456 ( bit_recv PGNSP PGUID 12 1 0 0 f f f t f i 3 0 1560 "2281 26 23" _null_ _null_ _null_ _null_ bit_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2457 ( bit_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "1560" _null_ _null_ _null_ _null_ bit_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2458 ( varbit_recv PGNSP PGUID 12 1 0 0 f f f t f i 3 0 1562 "2281 26 23" _null_ _null_ _null_ _null_ varbit_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2459 ( varbit_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "1562" _null_ _null_ _null_ _null_ varbit_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2460 ( numeric_recv PGNSP PGUID 12 1 0 0 f f f t f i 3 0 1700 "2281 26 23" _null_ _null_ _null_ _null_ numeric_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2461 ( numeric_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "1700" _null_ _null_ _null_ _null_ numeric_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2462 ( abstimerecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 702 "2281" _null_ _null_ _null_ _null_ abstimerecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2463 ( abstimesend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "702" _null_ _null_ _null_ _null_ abstimesend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2464 ( reltimerecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 703 "2281" _null_ _null_ _null_ _null_ reltimerecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2465 ( reltimesend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "703" _null_ _null_ _null_ _null_ reltimesend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2466 ( tintervalrecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 704 "2281" _null_ _null_ _null_ _null_ tintervalrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2467 ( tintervalsend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "704" _null_ _null_ _null_ _null_ tintervalsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2468 ( date_recv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 1082 "2281" _null_ _null_ _null_ _null_ date_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2469 ( date_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "1082" _null_ _null_ _null_ _null_ date_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2470 ( time_recv PGNSP PGUID 12 1 0 0 f f f t f i 3 0 1083 "2281 26 23" _null_ _null_ _null_ _null_ time_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2471 ( time_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "1083" _null_ _null_ _null_ _null_ time_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2472 ( timetz_recv PGNSP PGUID 12 1 0 0 f f f t f i 3 0 1266 "2281 26 23" _null_ _null_ _null_ _null_ timetz_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2473 ( timetz_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "1266" _null_ _null_ _null_ _null_ timetz_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2474 ( timestamp_recv PGNSP PGUID 12 1 0 0 f f f t f i 3 0 1114 "2281 26 23" _null_ _null_ _null_ _null_ timestamp_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2475 ( timestamp_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "1114" _null_ _null_ _null_ _null_ timestamp_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2476 ( timestamptz_recv PGNSP PGUID 12 1 0 0 f f f t f i 3 0 1184 "2281 26 23" _null_ _null_ _null_ _null_ timestamptz_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2477 ( timestamptz_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "1184" _null_ _null_ _null_ _null_ timestamptz_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2478 ( interval_recv PGNSP PGUID 12 1 0 0 f f f t f i 3 0 1186 "2281 26 23" _null_ _null_ _null_ _null_ interval_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2479 ( interval_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "1186" _null_ _null_ _null_ _null_ interval_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2480 ( lseg_recv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 601 "2281" _null_ _null_ _null_ _null_ lseg_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2481 ( lseg_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "601" _null_ _null_ _null_ _null_ lseg_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2482 ( path_recv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 602 "2281" _null_ _null_ _null_ _null_ path_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2483 ( path_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "602" _null_ _null_ _null_ _null_ path_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2484 ( box_recv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 603 "2281" _null_ _null_ _null_ _null_ box_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2485 ( box_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "603" _null_ _null_ _null_ _null_ box_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2486 ( poly_recv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 604 "2281" _null_ _null_ _null_ _null_ poly_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2487 ( poly_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "604" _null_ _null_ _null_ _null_ poly_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2488 ( line_recv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 628 "2281" _null_ _null_ _null_ _null_ line_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2489 ( line_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "628" _null_ _null_ _null_ _null_ line_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2490 ( circle_recv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 718 "2281" _null_ _null_ _null_ _null_ circle_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2491 ( circle_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "718" _null_ _null_ _null_ _null_ circle_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2492 ( cash_recv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 790 "2281" _null_ _null_ _null_ _null_ cash_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2493 ( cash_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "790" _null_ _null_ _null_ _null_ cash_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2494 ( macaddr_recv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 829 "2281" _null_ _null_ _null_ _null_ macaddr_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2495 ( macaddr_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "829" _null_ _null_ _null_ _null_ macaddr_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2496 ( inet_recv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 869 "2281" _null_ _null_ _null_ _null_ inet_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2497 ( inet_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "869" _null_ _null_ _null_ _null_ inet_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2498 ( cidr_recv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 650 "2281" _null_ _null_ _null_ _null_ cidr_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2499 ( cidr_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "650" _null_ _null_ _null_ _null_ cidr_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2500 ( cstring_recv PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "2281" _null_ _null_ _null_ _null_ cstring_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2501 ( cstring_send PGNSP PGUID 12 1 0 0 f f f t f s 1 0 17 "2275" _null_ _null_ _null_ _null_ cstring_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2502 ( anyarray_recv PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2277 "2281" _null_ _null_ _null_ _null_ anyarray_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2503 ( anyarray_send PGNSP PGUID 12 1 0 0 f f f t f s 1 0 17 "2277" _null_ _null_ _null_ _null_ anyarray_send _null_ _null_ _null_ ));
DESCR("I/O");
/* System-view support functions with pretty-print option */
! DATA(insert OID = 2504 ( pg_get_ruledef PGNSP PGUID 12 1 0 0 f f f t f s 2 0 25 "26 16" _null_ _null_ _null_ _null_ pg_get_ruledef_ext _null_ _null_ _null_ ));
DESCR("source text of a rule with pretty-print option");
! DATA(insert OID = 2505 ( pg_get_viewdef PGNSP PGUID 12 1 0 0 f f f t f s 2 0 25 "25 16" _null_ _null_ _null_ _null_ pg_get_viewdef_name_ext _null_ _null_ _null_ ));
DESCR("select statement of a view with pretty-print option");
! DATA(insert OID = 2506 ( pg_get_viewdef PGNSP PGUID 12 1 0 0 f f f t f s 2 0 25 "26 16" _null_ _null_ _null_ _null_ pg_get_viewdef_ext _null_ _null_ _null_ ));
DESCR("select statement of a view with pretty-print option");
! DATA(insert OID = 2507 ( pg_get_indexdef PGNSP PGUID 12 1 0 0 f f f t f s 3 0 25 "26 23 16" _null_ _null_ _null_ _null_ pg_get_indexdef_ext _null_ _null_ _null_ ));
DESCR("index description (full create statement or single expression) with pretty-print option");
! DATA(insert OID = 2508 ( pg_get_constraintdef PGNSP PGUID 12 1 0 0 f f f t f s 2 0 25 "26 16" _null_ _null_ _null_ _null_ pg_get_constraintdef_ext _null_ _null_ _null_ ));
DESCR("constraint description with pretty-print option");
! DATA(insert OID = 2509 ( pg_get_expr PGNSP PGUID 12 1 0 0 f f f t f s 3 0 25 "25 26 16" _null_ _null_ _null_ _null_ pg_get_expr_ext _null_ _null_ _null_ ));
DESCR("deparse an encoded expression with pretty-print option");
! DATA(insert OID = 2510 ( pg_prepared_statement PGNSP PGUID 12 1 1000 0 f f f t t s 0 0 2249 "" "{25,25,1184,2211,16}" "{o,o,o,o,o}" "{name,statement,prepare_time,parameter_types,from_sql}" _null_ pg_prepared_statement _null_ _null_ _null_ ));
DESCR("get the prepared statements for this session");
! DATA(insert OID = 2511 ( pg_cursor PGNSP PGUID 12 1 1000 0 f f f t t s 0 0 2249 "" "{25,25,16,16,16,1184}" "{o,o,o,o,o,o}" "{name,statement,is_holdable,is_binary,is_scrollable,creation_time}" _null_ pg_cursor _null_ _null_ _null_ ));
DESCR("get the open cursors for this session");
! DATA(insert OID = 2599 ( pg_timezone_abbrevs PGNSP PGUID 12 1 1000 0 f f f t t s 0 0 2249 "" "{25,1186,16}" "{o,o,o}" "{abbrev,utc_offset,is_dst}" _null_ pg_timezone_abbrevs _null_ _null_ _null_ ));
DESCR("get the available time zone abbreviations");
! DATA(insert OID = 2856 ( pg_timezone_names PGNSP PGUID 12 1 1000 0 f f f t t s 0 0 2249 "" "{25,25,1186,16}" "{o,o,o,o}" "{name,abbrev,utc_offset,is_dst}" _null_ pg_timezone_names _null_ _null_ _null_ ));
DESCR("get the available time zone names");
/* non-persistent series generator */
! DATA(insert OID = 1066 ( generate_series PGNSP PGUID 12 1 1000 0 f f f t t i 3 0 23 "23 23 23" _null_ _null_ _null_ _null_ generate_series_step_int4 _null_ _null_ _null_ ));
DESCR("non-persistent series generator");
! DATA(insert OID = 1067 ( generate_series PGNSP PGUID 12 1 1000 0 f f f t t i 2 0 23 "23 23" _null_ _null_ _null_ _null_ generate_series_int4 _null_ _null_ _null_ ));
DESCR("non-persistent series generator");
! DATA(insert OID = 1068 ( generate_series PGNSP PGUID 12 1 1000 0 f f f t t i 3 0 20 "20 20 20" _null_ _null_ _null_ _null_ generate_series_step_int8 _null_ _null_ _null_ ));
DESCR("non-persistent series generator");
! DATA(insert OID = 1069 ( generate_series PGNSP PGUID 12 1 1000 0 f f f t t i 2 0 20 "20 20" _null_ _null_ _null_ _null_ generate_series_int8 _null_ _null_ _null_ ));
DESCR("non-persistent series generator");
! DATA(insert OID = 938 ( generate_series PGNSP PGUID 12 1 1000 0 f f f t t i 3 0 1114 "1114 1114 1186" _null_ _null_ _null_ _null_ generate_series_timestamp _null_ _null_ _null_ ));
DESCR("non-persistent series generator");
! DATA(insert OID = 939 ( generate_series PGNSP PGUID 12 1 1000 0 f f f t t s 3 0 1184 "1184 1184 1186" _null_ _null_ _null_ _null_ generate_series_timestamptz _null_ _null_ _null_ ));
DESCR("non-persistent series generator");
/* boolean aggregates */
! DATA(insert OID = 2515 ( booland_statefunc PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "16 16" _null_ _null_ _null_ _null_ booland_statefunc _null_ _null_ _null_ ));
DESCR("boolean-and aggregate transition function");
! DATA(insert OID = 2516 ( boolor_statefunc PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "16 16" _null_ _null_ _null_ _null_ boolor_statefunc _null_ _null_ _null_ ));
DESCR("boolean-or aggregate transition function");
! DATA(insert OID = 2517 ( bool_and PGNSP PGUID 12 1 0 0 t f f f f i 1 0 16 "16" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("boolean-and aggregate");
/* ANY, SOME? These names conflict with subquery operators. See doc. */
! DATA(insert OID = 2518 ( bool_or PGNSP PGUID 12 1 0 0 t f f f f i 1 0 16 "16" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("boolean-or aggregate");
! DATA(insert OID = 2519 ( every PGNSP PGUID 12 1 0 0 t f f f f i 1 0 16 "16" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("boolean-and aggregate");
/* bitwise integer aggregates */
! DATA(insert OID = 2236 ( bit_and PGNSP PGUID 12 1 0 0 t f f f f i 1 0 21 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("bitwise-and smallint aggregate");
! DATA(insert OID = 2237 ( bit_or PGNSP PGUID 12 1 0 0 t f f f f i 1 0 21 "21" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("bitwise-or smallint aggregate");
! DATA(insert OID = 2238 ( bit_and PGNSP PGUID 12 1 0 0 t f f f f i 1 0 23 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("bitwise-and integer aggregate");
! DATA(insert OID = 2239 ( bit_or PGNSP PGUID 12 1 0 0 t f f f f i 1 0 23 "23" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("bitwise-or integer aggregate");
! DATA(insert OID = 2240 ( bit_and PGNSP PGUID 12 1 0 0 t f f f f i 1 0 20 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("bitwise-and bigint aggregate");
! DATA(insert OID = 2241 ( bit_or PGNSP PGUID 12 1 0 0 t f f f f i 1 0 20 "20" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("bitwise-or bigint aggregate");
! DATA(insert OID = 2242 ( bit_and PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1560 "1560" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("bitwise-and bit aggregate");
! DATA(insert OID = 2243 ( bit_or PGNSP PGUID 12 1 0 0 t f f f f i 1 0 1560 "1560" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("bitwise-or bit aggregate");
/* formerly-missing interval + datetime operators */
! DATA(insert OID = 2546 ( interval_pl_date PGNSP PGUID 14 1 0 0 f f f t f i 2 0 1114 "1186 1082" _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ ));
! DATA(insert OID = 2547 ( interval_pl_timetz PGNSP PGUID 14 1 0 0 f f f t f i 2 0 1266 "1186 1266" _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ ));
! DATA(insert OID = 2548 ( interval_pl_timestamp PGNSP PGUID 14 1 0 0 f f f t f i 2 0 1114 "1186 1114" _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ ));
! DATA(insert OID = 2549 ( interval_pl_timestamptz PGNSP PGUID 14 1 0 0 f f f t f s 2 0 1184 "1186 1184" _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ ));
! DATA(insert OID = 2550 ( integer_pl_date PGNSP PGUID 14 1 0 0 f f f t f i 2 0 1082 "23 1082" _null_ _null_ _null_ _null_ "select $2 + $1" _null_ _null_ _null_ ));
! DATA(insert OID = 2556 ( pg_tablespace_databases PGNSP PGUID 12 1 1000 0 f f f t t s 1 0 26 "26" _null_ _null_ _null_ _null_ pg_tablespace_databases _null_ _null_ _null_ ));
DESCR("returns database oids in a tablespace");
! DATA(insert OID = 2557 ( bool PGNSP PGUID 12 1 0 0 f f f t f i 1 0 16 "23" _null_ _null_ _null_ _null_ int4_bool _null_ _null_ _null_ ));
DESCR("convert int4 to boolean");
! DATA(insert OID = 2558 ( int4 PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "16" _null_ _null_ _null_ _null_ bool_int4 _null_ _null_ _null_ ));
DESCR("convert boolean to int4");
! DATA(insert OID = 2559 ( lastval PGNSP PGUID 12 1 0 0 f f f t f v 0 0 20 "" _null_ _null_ _null_ _null_ lastval _null_ _null_ _null_ ));
DESCR("current value from last used sequence");
/* start time function */
! DATA(insert OID = 2560 ( pg_postmaster_start_time PGNSP PGUID 12 1 0 0 f f f t f s 0 0 1184 "" _null_ _null_ _null_ _null_ pg_postmaster_start_time _null_ _null_ _null_ ));
DESCR("postmaster start time");
/* config reload time function */
! DATA(insert OID = 2034 ( pg_conf_load_time PGNSP PGUID 12 1 0 0 f f f t f s 0 0 1184 "" _null_ _null_ _null_ _null_ pg_conf_load_time _null_ _null_ _null_ ));
DESCR("configuration load time");
/* new functions for Y-direction rtree opclasses */
! DATA(insert OID = 2562 ( box_below PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_below _null_ _null_ _null_ ));
DESCR("is below");
! DATA(insert OID = 2563 ( box_overbelow PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_overbelow _null_ _null_ _null_ ));
DESCR("overlaps or is below");
! DATA(insert OID = 2564 ( box_overabove PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_overabove _null_ _null_ _null_ ));
DESCR("overlaps or is above");
! DATA(insert OID = 2565 ( box_above PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "603 603" _null_ _null_ _null_ _null_ box_above _null_ _null_ _null_ ));
DESCR("is above");
! DATA(insert OID = 2566 ( poly_below PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_below _null_ _null_ _null_ ));
DESCR("is below");
! DATA(insert OID = 2567 ( poly_overbelow PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_overbelow _null_ _null_ _null_ ));
DESCR("overlaps or is below");
! DATA(insert OID = 2568 ( poly_overabove PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_overabove _null_ _null_ _null_ ));
DESCR("overlaps or is above");
! DATA(insert OID = 2569 ( poly_above PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "604 604" _null_ _null_ _null_ _null_ poly_above _null_ _null_ _null_ ));
DESCR("is above");
! DATA(insert OID = 2587 ( circle_overbelow PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_overbelow _null_ _null_ _null_ ));
DESCR("overlaps or is below");
! DATA(insert OID = 2588 ( circle_overabove PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "718 718" _null_ _null_ _null_ _null_ circle_overabove _null_ _null_ _null_ ));
DESCR("overlaps or is above");
/* support functions for GiST r-tree emulation */
! DATA(insert OID = 2578 ( gist_box_consistent PGNSP PGUID 12 1 0 0 f f f t f i 5 0 16 "2281 603 23 26 2281" _null_ _null_ _null_ _null_ gist_box_consistent _null_ _null_ _null_ ));
DESCR("GiST support");
! DATA(insert OID = 2579 ( gist_box_compress PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ gist_box_compress _null_ _null_ _null_ ));
DESCR("GiST support");
! DATA(insert OID = 2580 ( gist_box_decompress PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ gist_box_decompress _null_ _null_ _null_ ));
DESCR("GiST support");
! DATA(insert OID = 2581 ( gist_box_penalty PGNSP PGUID 12 1 0 0 f f f t f i 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ gist_box_penalty _null_ _null_ _null_ ));
DESCR("GiST support");
! DATA(insert OID = 2582 ( gist_box_picksplit PGNSP PGUID 12 1 0 0 f f f t f i 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ gist_box_picksplit _null_ _null_ _null_ ));
DESCR("GiST support");
! DATA(insert OID = 2583 ( gist_box_union PGNSP PGUID 12 1 0 0 f f f t f i 2 0 603 "2281 2281" _null_ _null_ _null_ _null_ gist_box_union _null_ _null_ _null_ ));
DESCR("GiST support");
! DATA(insert OID = 2584 ( gist_box_same PGNSP PGUID 12 1 0 0 f f f t f i 3 0 2281 "603 603 2281" _null_ _null_ _null_ _null_ gist_box_same _null_ _null_ _null_ ));
DESCR("GiST support");
! DATA(insert OID = 2585 ( gist_poly_consistent PGNSP PGUID 12 1 0 0 f f f t f i 5 0 16 "2281 604 23 26 2281" _null_ _null_ _null_ _null_ gist_poly_consistent _null_ _null_ _null_ ));
DESCR("GiST support");
! DATA(insert OID = 2586 ( gist_poly_compress PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ gist_poly_compress _null_ _null_ _null_ ));
DESCR("GiST support");
! DATA(insert OID = 2591 ( gist_circle_consistent PGNSP PGUID 12 1 0 0 f f f t f i 5 0 16 "2281 718 23 26 2281" _null_ _null_ _null_ _null_ gist_circle_consistent _null_ _null_ _null_ ));
DESCR("GiST support");
! DATA(insert OID = 2592 ( gist_circle_compress PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ gist_circle_compress _null_ _null_ _null_ ));
DESCR("GiST support");
/* GIN */
! DATA(insert OID = 2730 ( gingettuple PGNSP PGUID 12 1 0 0 f f f t f v 2 0 16 "2281 2281" _null_ _null_ _null_ _null_ gingettuple _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2731 ( gingetbitmap PGNSP PGUID 12 1 0 0 f f f t f v 2 0 20 "2281 2281" _null_ _null_ _null_ _null_ gingetbitmap _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2732 ( gininsert PGNSP PGUID 12 1 0 0 f f f t f v 6 0 16 "2281 2281 2281 2281 2281 2281" _null_ _null_ _null_ _null_ gininsert _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2733 ( ginbeginscan PGNSP PGUID 12 1 0 0 f f f t f v 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ ginbeginscan _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2734 ( ginrescan PGNSP PGUID 12 1 0 0 f f f t f v 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ ginrescan _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2735 ( ginendscan PGNSP PGUID 12 1 0 0 f f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ ginendscan _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2736 ( ginmarkpos PGNSP PGUID 12 1 0 0 f f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ ginmarkpos _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2737 ( ginrestrpos PGNSP PGUID 12 1 0 0 f f f t f v 1 0 2278 "2281" _null_ _null_ _null_ _null_ ginrestrpos _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2738 ( ginbuild PGNSP PGUID 12 1 0 0 f f f t f v 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ ginbuild _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2739 ( ginbulkdelete PGNSP PGUID 12 1 0 0 f f f t f v 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ ginbulkdelete _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2740 ( ginvacuumcleanup PGNSP PGUID 12 1 0 0 f f f t f v 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ ginvacuumcleanup _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2741 ( gincostestimate PGNSP PGUID 12 1 0 0 f f f t f v 8 0 2278 "2281 2281 2281 2281 2281 2281 2281 2281" _null_ _null_ _null_ _null_ gincostestimate _null_ _null_ _null_ ));
DESCR("gin(internal)");
! DATA(insert OID = 2788 ( ginoptions PGNSP PGUID 12 1 0 0 f f f t f s 2 0 17 "1009 16" _null_ _null_ _null_ _null_ ginoptions _null_ _null_ _null_ ));
DESCR("gin(internal)");
/* GIN array support */
! DATA(insert OID = 2743 ( ginarrayextract PGNSP PGUID 12 1 0 0 f f f t f i 2 0 2281 "2277 2281" _null_ _null_ _null_ _null_ ginarrayextract _null_ _null_ _null_ ));
DESCR("GIN array support");
! DATA(insert OID = 2774 ( ginqueryarrayextract PGNSP PGUID 12 1 0 0 f f f t f i 4 0 2281 "2277 2281 21 2281" _null_ _null_ _null_ _null_ ginqueryarrayextract _null_ _null_ _null_ ));
DESCR("GIN array support");
! DATA(insert OID = 2744 ( ginarrayconsistent PGNSP PGUID 12 1 0 0 f f f t f i 4 0 16 "2281 21 2281 2281" _null_ _null_ _null_ _null_ ginarrayconsistent _null_ _null_ _null_ ));
DESCR("GIN array support");
/* overlap/contains/contained */
! DATA(insert OID = 2747 ( arrayoverlap PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ arrayoverlap _null_ _null_ _null_ ));
DESCR("overlaps");
! DATA(insert OID = 2748 ( arraycontains PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ arraycontains _null_ _null_ _null_ ));
DESCR("contains");
! DATA(insert OID = 2749 ( arraycontained PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2277 2277" _null_ _null_ _null_ _null_ arraycontained _null_ _null_ _null_ ));
DESCR("is contained by");
/* userlock replacements */
! DATA(insert OID = 2880 ( pg_advisory_lock PGNSP PGUID 12 1 0 0 f f f t f v 1 0 2278 "20" _null_ _null_ _null_ _null_ pg_advisory_lock_int8 _null_ _null_ _null_ ));
DESCR("obtain exclusive advisory lock");
! DATA(insert OID = 2881 ( pg_advisory_lock_shared PGNSP PGUID 12 1 0 0 f f f t f v 1 0 2278 "20" _null_ _null_ _null_ _null_ pg_advisory_lock_shared_int8 _null_ _null_ _null_ ));
DESCR("obtain shared advisory lock");
! DATA(insert OID = 2882 ( pg_try_advisory_lock PGNSP PGUID 12 1 0 0 f f f t f v 1 0 16 "20" _null_ _null_ _null_ _null_ pg_try_advisory_lock_int8 _null_ _null_ _null_ ));
DESCR("obtain exclusive advisory lock if available");
! DATA(insert OID = 2883 ( pg_try_advisory_lock_shared PGNSP PGUID 12 1 0 0 f f f t f v 1 0 16 "20" _null_ _null_ _null_ _null_ pg_try_advisory_lock_shared_int8 _null_ _null_ _null_ ));
DESCR("obtain shared advisory lock if available");
! DATA(insert OID = 2884 ( pg_advisory_unlock PGNSP PGUID 12 1 0 0 f f f t f v 1 0 16 "20" _null_ _null_ _null_ _null_ pg_advisory_unlock_int8 _null_ _null_ _null_ ));
DESCR("release exclusive advisory lock");
! DATA(insert OID = 2885 ( pg_advisory_unlock_shared PGNSP PGUID 12 1 0 0 f f f t f v 1 0 16 "20" _null_ _null_ _null_ _null_ pg_advisory_unlock_shared_int8 _null_ _null_ _null_ ));
DESCR("release shared advisory lock");
! DATA(insert OID = 2886 ( pg_advisory_lock PGNSP PGUID 12 1 0 0 f f f t f v 2 0 2278 "23 23" _null_ _null_ _null_ _null_ pg_advisory_lock_int4 _null_ _null_ _null_ ));
DESCR("obtain exclusive advisory lock");
! DATA(insert OID = 2887 ( pg_advisory_lock_shared PGNSP PGUID 12 1 0 0 f f f t f v 2 0 2278 "23 23" _null_ _null_ _null_ _null_ pg_advisory_lock_shared_int4 _null_ _null_ _null_ ));
DESCR("obtain shared advisory lock");
! DATA(insert OID = 2888 ( pg_try_advisory_lock PGNSP PGUID 12 1 0 0 f f f t f v 2 0 16 "23 23" _null_ _null_ _null_ _null_ pg_try_advisory_lock_int4 _null_ _null_ _null_ ));
DESCR("obtain exclusive advisory lock if available");
! DATA(insert OID = 2889 ( pg_try_advisory_lock_shared PGNSP PGUID 12 1 0 0 f f f t f v 2 0 16 "23 23" _null_ _null_ _null_ _null_ pg_try_advisory_lock_shared_int4 _null_ _null_ _null_ ));
DESCR("obtain shared advisory lock if available");
! DATA(insert OID = 2890 ( pg_advisory_unlock PGNSP PGUID 12 1 0 0 f f f t f v 2 0 16 "23 23" _null_ _null_ _null_ _null_ pg_advisory_unlock_int4 _null_ _null_ _null_ ));
DESCR("release exclusive advisory lock");
! DATA(insert OID = 2891 ( pg_advisory_unlock_shared PGNSP PGUID 12 1 0 0 f f f t f v 2 0 16 "23 23" _null_ _null_ _null_ _null_ pg_advisory_unlock_shared_int4 _null_ _null_ _null_ ));
DESCR("release shared advisory lock");
! DATA(insert OID = 2892 ( pg_advisory_unlock_all PGNSP PGUID 12 1 0 0 f f f t f v 0 0 2278 "" _null_ _null_ _null_ _null_ pg_advisory_unlock_all _null_ _null_ _null_ ));
DESCR("release all advisory locks");
/* XML support */
! DATA(insert OID = 2893 ( xml_in PGNSP PGUID 12 1 0 0 f f f t f s 1 0 142 "2275" _null_ _null_ _null_ _null_ xml_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2894 ( xml_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "142" _null_ _null_ _null_ _null_ xml_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2895 ( xmlcomment PGNSP PGUID 12 1 0 0 f f f t f i 1 0 142 "25" _null_ _null_ _null_ _null_ xmlcomment _null_ _null_ _null_ ));
DESCR("generate an XML comment");
! DATA(insert OID = 2896 ( xml PGNSP PGUID 12 1 0 0 f f f t f s 1 0 142 "25" _null_ _null_ _null_ _null_ texttoxml _null_ _null_ _null_ ));
DESCR("perform a non-validating parse of a character string to produce an XML value");
! DATA(insert OID = 2897 ( xmlvalidate PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "142 25" _null_ _null_ _null_ _null_ xmlvalidate _null_ _null_ _null_ ));
DESCR("validate an XML value");
! DATA(insert OID = 2898 ( xml_recv PGNSP PGUID 12 1 0 0 f f f t f s 1 0 142 "2281" _null_ _null_ _null_ _null_ xml_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2899 ( xml_send PGNSP PGUID 12 1 0 0 f f f t f s 1 0 17 "142" _null_ _null_ _null_ _null_ xml_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2900 ( xmlconcat2 PGNSP PGUID 12 1 0 0 f f f f f i 2 0 142 "142 142" _null_ _null_ _null_ _null_ xmlconcat2 _null_ _null_ _null_ ));
DESCR("aggregate transition function");
! DATA(insert OID = 2901 ( xmlagg PGNSP PGUID 12 1 0 0 t f f f f i 1 0 142 "142" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("concatenate XML values");
! DATA(insert OID = 2922 ( text PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "142" _null_ _null_ _null_ _null_ xmltotext _null_ _null_ _null_ ));
DESCR("serialize an XML value to a character string");
! DATA(insert OID = 2923 ( table_to_xml PGNSP PGUID 12 100 0 0 f f f t f s 4 0 142 "2205 16 16 25" _null_ _null_ "{tbl,nulls,tableforest,targetns}" _null_ table_to_xml _null_ _null_ _null_ ));
DESCR("map table contents to XML");
! DATA(insert OID = 2924 ( query_to_xml PGNSP PGUID 12 100 0 0 f f f t f s 4 0 142 "25 16 16 25" _null_ _null_ "{query,nulls,tableforest,targetns}" _null_ query_to_xml _null_ _null_ _null_ ));
DESCR("map query result to XML");
! DATA(insert OID = 2925 ( cursor_to_xml PGNSP PGUID 12 100 0 0 f f f t f s 5 0 142 "1790 23 16 16 25" _null_ _null_ "{cursor,count,nulls,tableforest,targetns}" _null_ cursor_to_xml _null_ _null_ _null_ ));
DESCR("map rows from cursor to XML");
! DATA(insert OID = 2926 ( table_to_xmlschema PGNSP PGUID 12 100 0 0 f f f t f s 4 0 142 "2205 16 16 25" _null_ _null_ "{tbl,nulls,tableforest,targetns}" _null_ table_to_xmlschema _null_ _null_ _null_ ));
DESCR("map table structure to XML Schema");
! DATA(insert OID = 2927 ( query_to_xmlschema PGNSP PGUID 12 100 0 0 f f f t f s 4 0 142 "25 16 16 25" _null_ _null_ "{query,nulls,tableforest,targetns}" _null_ query_to_xmlschema _null_ _null_ _null_ ));
DESCR("map query result structure to XML Schema");
! DATA(insert OID = 2928 ( cursor_to_xmlschema PGNSP PGUID 12 100 0 0 f f f t f s 4 0 142 "1790 16 16 25" _null_ _null_ "{cursor,nulls,tableforest,targetns}" _null_ cursor_to_xmlschema _null_ _null_ _null_ ));
DESCR("map cursor structure to XML Schema");
! DATA(insert OID = 2929 ( table_to_xml_and_xmlschema PGNSP PGUID 12 100 0 0 f f f t f s 4 0 142 "2205 16 16 25" _null_ _null_ "{tbl,nulls,tableforest,targetns}" _null_ table_to_xml_and_xmlschema _null_ _null_ _null_ ));
DESCR("map table contents and structure to XML and XML Schema");
! DATA(insert OID = 2930 ( query_to_xml_and_xmlschema PGNSP PGUID 12 100 0 0 f f f t f s 4 0 142 "25 16 16 25" _null_ _null_ "{query,nulls,tableforest,targetns}" _null_ query_to_xml_and_xmlschema _null_ _null_ _null_ ));
DESCR("map query result and structure to XML and XML Schema");
! DATA(insert OID = 2933 ( schema_to_xml PGNSP PGUID 12 100 0 0 f f f t f s 4 0 142 "19 16 16 25" _null_ _null_ "{schema,nulls,tableforest,targetns}" _null_ schema_to_xml _null_ _null_ _null_ ));
DESCR("map schema contents to XML");
! DATA(insert OID = 2934 ( schema_to_xmlschema PGNSP PGUID 12 100 0 0 f f f t f s 4 0 142 "19 16 16 25" _null_ _null_ "{schema,nulls,tableforest,targetns}" _null_ schema_to_xmlschema _null_ _null_ _null_ ));
DESCR("map schema structure to XML Schema");
! DATA(insert OID = 2935 ( schema_to_xml_and_xmlschema PGNSP PGUID 12 100 0 0 f f f t f s 4 0 142 "19 16 16 25" _null_ _null_ "{schema,nulls,tableforest,targetns}" _null_ schema_to_xml_and_xmlschema _null_ _null_ _null_ ));
DESCR("map schema contents and structure to XML and XML Schema");
! DATA(insert OID = 2936 ( database_to_xml PGNSP PGUID 12 100 0 0 f f f t f s 3 0 142 "16 16 25" _null_ _null_ "{nulls,tableforest,targetns}" _null_ database_to_xml _null_ _null_ _null_ ));
DESCR("map database contents to XML");
! DATA(insert OID = 2937 ( database_to_xmlschema PGNSP PGUID 12 100 0 0 f f f t f s 3 0 142 "16 16 25" _null_ _null_ "{nulls,tableforest,targetns}" _null_ database_to_xmlschema _null_ _null_ _null_ ));
DESCR("map database structure to XML Schema");
! DATA(insert OID = 2938 ( database_to_xml_and_xmlschema PGNSP PGUID 12 100 0 0 f f f t f s 3 0 142 "16 16 25" _null_ _null_ "{nulls,tableforest,targetns}" _null_ database_to_xml_and_xmlschema _null_ _null_ _null_ ));
DESCR("map database contents and structure to XML and XML Schema");
! DATA(insert OID = 2931 ( xpath PGNSP PGUID 12 1 0 0 f f f t f i 3 0 143 "25 142 1009" _null_ _null_ _null_ _null_ xpath _null_ _null_ _null_ ));
DESCR("evaluate XPath expression, with namespaces support");
! DATA(insert OID = 2932 ( xpath PGNSP PGUID 14 1 0 0 f f f t f i 2 0 143 "25 142" _null_ _null_ _null_ _null_ "select pg_catalog.xpath($1, $2, ''{}''::pg_catalog.text[])" _null_ _null_ _null_ ));
DESCR("evaluate XPath expression");
/* uuid */
! DATA(insert OID = 2952 ( uuid_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2950 "2275" _null_ _null_ _null_ _null_ uuid_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2953 ( uuid_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "2950" _null_ _null_ _null_ _null_ uuid_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2954 ( uuid_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2950 2950" _null_ _null_ _null_ _null_ uuid_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 2955 ( uuid_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2950 2950" _null_ _null_ _null_ _null_ uuid_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 2956 ( uuid_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2950 2950" _null_ _null_ _null_ _null_ uuid_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 2957 ( uuid_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2950 2950" _null_ _null_ _null_ _null_ uuid_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 2958 ( uuid_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2950 2950" _null_ _null_ _null_ _null_ uuid_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 2959 ( uuid_ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2950 2950" _null_ _null_ _null_ _null_ uuid_ne _null_ _null_ _null_ ));
DESCR("not-equal");
! DATA(insert OID = 2960 ( uuid_cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "2950 2950" _null_ _null_ _null_ _null_ uuid_cmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 2961 ( uuid_recv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2950 "2281" _null_ _null_ _null_ _null_ uuid_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2962 ( uuid_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "2950" _null_ _null_ _null_ _null_ uuid_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2963 ( uuid_hash PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "2950" _null_ _null_ _null_ _null_ uuid_hash _null_ _null_ _null_ ));
DESCR("hash");
/* enum related procs */
! DATA(insert OID = 3504 ( anyenum_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 3500 "2275" _null_ _null_ _null_ _null_ anyenum_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3505 ( anyenum_out PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "3500" _null_ _null_ _null_ _null_ anyenum_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3506 ( enum_in PGNSP PGUID 12 1 0 0 f f f t f s 2 0 3500 "2275 26" _null_ _null_ _null_ _null_ enum_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3507 ( enum_out PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "3500" _null_ _null_ _null_ _null_ enum_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3508 ( enum_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3500 3500" _null_ _null_ _null_ _null_ enum_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 3509 ( enum_ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3500 3500" _null_ _null_ _null_ _null_ enum_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 3510 ( enum_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3500 3500" _null_ _null_ _null_ _null_ enum_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 3511 ( enum_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3500 3500" _null_ _null_ _null_ _null_ enum_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 3512 ( enum_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3500 3500" _null_ _null_ _null_ _null_ enum_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 3513 ( enum_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3500 3500" _null_ _null_ _null_ _null_ enum_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 3514 ( enum_cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "3500 3500" _null_ _null_ _null_ _null_ enum_cmp _null_ _null_ _null_ ));
DESCR("btree-less-equal-greater");
! DATA(insert OID = 3515 ( hashenum PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "3500" _null_ _null_ _null_ _null_ hashenum _null_ _null_ _null_ ));
DESCR("hash");
! DATA(insert OID = 3524 ( enum_smaller PGNSP PGUID 12 1 0 0 f f f t f i 2 0 3500 "3500 3500" _null_ _null_ _null_ _null_ enum_smaller _null_ _null_ _null_ ));
DESCR("smaller of two");
! DATA(insert OID = 3525 ( enum_larger PGNSP PGUID 12 1 0 0 f f f t f i 2 0 3500 "3500 3500" _null_ _null_ _null_ _null_ enum_larger _null_ _null_ _null_ ));
DESCR("larger of two");
! DATA(insert OID = 3526 ( max PGNSP PGUID 12 1 0 0 t f f f f i 1 0 3500 "3500" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("maximum of anyenum");
! DATA(insert OID = 3527 ( min PGNSP PGUID 12 1 0 0 t f f f f i 1 0 3500 "3500" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
DESCR("minimum of anyenum");
! DATA(insert OID = 3528 ( enum_first PGNSP PGUID 12 1 0 0 f f f f f s 1 0 3500 "3500" _null_ _null_ _null_ _null_ enum_first _null_ _null_ _null_ ));
DESCR("returns the first value of the input enum type");
! DATA(insert OID = 3529 ( enum_last PGNSP PGUID 12 1 0 0 f f f f f s 1 0 3500 "3500" _null_ _null_ _null_ _null_ enum_last _null_ _null_ _null_ ));
DESCR("returns the last value of the input enum type");
! DATA(insert OID = 3530 ( enum_range PGNSP PGUID 12 1 0 0 f f f f f s 2 0 2277 "3500 3500" _null_ _null_ _null_ _null_ enum_range_bounds _null_ _null_ _null_ ));
DESCR("returns the range between the two given enum values, as an ordered array");
! DATA(insert OID = 3531 ( enum_range PGNSP PGUID 12 1 0 0 f f f f f s 1 0 2277 "3500" _null_ _null_ _null_ _null_ enum_range_all _null_ _null_ _null_ ));
DESCR("returns the range of the given enum type as an ordered array");
! DATA(insert OID = 3532 ( enum_recv PGNSP PGUID 12 1 0 0 f f f t f s 2 0 3500 "2275 26" _null_ _null_ _null_ _null_ enum_recv _null_ _null_ _null_ ));
! DATA(insert OID = 3533 ( enum_send PGNSP PGUID 12 1 0 0 f f f t f s 1 0 17 "3500" _null_ _null_ _null_ _null_ enum_send _null_ _null_ _null_ ));
/* text search stuff */
! DATA(insert OID = 3610 ( tsvectorin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 3614 "2275" _null_ _null_ _null_ _null_ tsvectorin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3639 ( tsvectorrecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 3614 "2281" _null_ _null_ _null_ _null_ tsvectorrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3611 ( tsvectorout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "3614" _null_ _null_ _null_ _null_ tsvectorout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3638 ( tsvectorsend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "3614" _null_ _null_ _null_ _null_ tsvectorsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3612 ( tsqueryin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 3615 "2275" _null_ _null_ _null_ _null_ tsqueryin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3641 ( tsqueryrecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 3615 "2281" _null_ _null_ _null_ _null_ tsqueryrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3613 ( tsqueryout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "3615" _null_ _null_ _null_ _null_ tsqueryout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3640 ( tsquerysend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "3615" _null_ _null_ _null_ _null_ tsquerysend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3646 ( gtsvectorin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 3642 "2275" _null_ _null_ _null_ _null_ gtsvectorin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3647 ( gtsvectorout PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "3642" _null_ _null_ _null_ _null_ gtsvectorout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3616 ( tsvector_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3614 3614" _null_ _null_ _null_ _null_ tsvector_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 3617 ( tsvector_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3614 3614" _null_ _null_ _null_ _null_ tsvector_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 3618 ( tsvector_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3614 3614" _null_ _null_ _null_ _null_ tsvector_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 3619 ( tsvector_ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3614 3614" _null_ _null_ _null_ _null_ tsvector_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 3620 ( tsvector_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3614 3614" _null_ _null_ _null_ _null_ tsvector_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 3621 ( tsvector_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3614 3614" _null_ _null_ _null_ _null_ tsvector_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 3622 ( tsvector_cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "3614 3614" _null_ _null_ _null_ _null_ tsvector_cmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 3711 ( length PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "3614" _null_ _null_ _null_ _null_ tsvector_length _null_ _null_ _null_ ));
DESCR("number of lexemes");
! DATA(insert OID = 3623 ( strip PGNSP PGUID 12 1 0 0 f f f t f i 1 0 3614 "3614" _null_ _null_ _null_ _null_ tsvector_strip _null_ _null_ _null_ ));
DESCR("strip position information");
! DATA(insert OID = 3624 ( setweight PGNSP PGUID 12 1 0 0 f f f t f i 2 0 3614 "3614 18" _null_ _null_ _null_ _null_ tsvector_setweight _null_ _null_ _null_ ));
DESCR("set weight of lexeme's entries");
! DATA(insert OID = 3625 ( tsvector_concat PGNSP PGUID 12 1 0 0 f f f t f i 2 0 3614 "3614 3614" _null_ _null_ _null_ _null_ tsvector_concat _null_ _null_ _null_ ));
DESCR("concatenate");
! DATA(insert OID = 3634 ( ts_match_vq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3614 3615" _null_ _null_ _null_ _null_ ts_match_vq _null_ _null_ _null_ ));
DESCR("match tsvector to tsquery");
! DATA(insert OID = 3635 ( ts_match_qv PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3615 3614" _null_ _null_ _null_ _null_ ts_match_qv _null_ _null_ _null_ ));
DESCR("match tsquery to tsvector");
! DATA(insert OID = 3760 ( ts_match_tt PGNSP PGUID 12 3 0 0 f f f t f s 2 0 16 "25 25" _null_ _null_ _null_ _null_ ts_match_tt _null_ _null_ _null_ ));
DESCR("text search match");
! DATA(insert OID = 3761 ( ts_match_tq PGNSP PGUID 12 2 0 0 f f f t f s 2 0 16 "25 3615" _null_ _null_ _null_ _null_ ts_match_tq _null_ _null_ _null_ ));
DESCR("match text to tsquery");
! DATA(insert OID = 3648 ( gtsvector_compress PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ gtsvector_compress _null_ _null_ _null_ ));
DESCR("GiST tsvector support");
! DATA(insert OID = 3649 ( gtsvector_decompress PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ gtsvector_decompress _null_ _null_ _null_ ));
DESCR("GiST tsvector support");
! DATA(insert OID = 3650 ( gtsvector_picksplit PGNSP PGUID 12 1 0 0 f f f t f i 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ gtsvector_picksplit _null_ _null_ _null_ ));
DESCR("GiST tsvector support");
! DATA(insert OID = 3651 ( gtsvector_union PGNSP PGUID 12 1 0 0 f f f t f i 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ gtsvector_union _null_ _null_ _null_ ));
DESCR("GiST tsvector support");
! DATA(insert OID = 3652 ( gtsvector_same PGNSP PGUID 12 1 0 0 f f f t f i 3 0 2281 "3642 3642 2281" _null_ _null_ _null_ _null_ gtsvector_same _null_ _null_ _null_ ));
DESCR("GiST tsvector support");
! DATA(insert OID = 3653 ( gtsvector_penalty PGNSP PGUID 12 1 0 0 f f f t f i 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ gtsvector_penalty _null_ _null_ _null_ ));
DESCR("GiST tsvector support");
! DATA(insert OID = 3654 ( gtsvector_consistent PGNSP PGUID 12 1 0 0 f f f t f i 5 0 16 "2281 3642 23 26 2281" _null_ _null_ _null_ _null_ gtsvector_consistent _null_ _null_ _null_ ));
DESCR("GiST tsvector support");
! DATA(insert OID = 3656 ( gin_extract_tsvector PGNSP PGUID 12 1 0 0 f f f t f i 2 0 2281 "3614 2281" _null_ _null_ _null_ _null_ gin_extract_tsvector _null_ _null_ _null_ ));
DESCR("GIN tsvector support");
! DATA(insert OID = 3657 ( gin_extract_tsquery PGNSP PGUID 12 1 0 0 f f f t f i 4 0 2281 "3615 2281 21 2281" _null_ _null_ _null_ _null_ gin_extract_tsquery _null_ _null_ _null_ ));
DESCR("GIN tsvector support");
! DATA(insert OID = 3658 ( gin_tsquery_consistent PGNSP PGUID 12 1 0 0 f f f t f i 4 0 16 "2281 21 3615 2281" _null_ _null_ _null_ _null_ gin_tsquery_consistent _null_ _null_ _null_ ));
DESCR("GIN tsvector support");
! DATA(insert OID = 3724 ( gin_cmp_tslexeme PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "25 25" _null_ _null_ _null_ _null_ gin_cmp_tslexeme _null_ _null_ _null_ ));
DESCR("GIN tsvector support");
! DATA(insert OID = 2700 ( gin_cmp_prefix PGNSP PGUID 12 1 0 0 f f f t f i 3 0 23 "25 25 21" _null_ _null_ _null_ _null_ gin_cmp_prefix _null_ _null_ _null_ ));
DESCR("GIN tsvector support");
! DATA(insert OID = 3662 ( tsquery_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ tsquery_lt _null_ _null_ _null_ ));
DESCR("less-than");
! DATA(insert OID = 3663 ( tsquery_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ tsquery_le _null_ _null_ _null_ ));
DESCR("less-than-or-equal");
! DATA(insert OID = 3664 ( tsquery_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ tsquery_eq _null_ _null_ _null_ ));
DESCR("equal");
! DATA(insert OID = 3665 ( tsquery_ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ tsquery_ne _null_ _null_ _null_ ));
DESCR("not equal");
! DATA(insert OID = 3666 ( tsquery_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ tsquery_ge _null_ _null_ _null_ ));
DESCR("greater-than-or-equal");
! DATA(insert OID = 3667 ( tsquery_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ tsquery_gt _null_ _null_ _null_ ));
DESCR("greater-than");
! DATA(insert OID = 3668 ( tsquery_cmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "3615 3615" _null_ _null_ _null_ _null_ tsquery_cmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
! DATA(insert OID = 3669 ( tsquery_and PGNSP PGUID 12 1 0 0 f f f t f i 2 0 3615 "3615 3615" _null_ _null_ _null_ _null_ tsquery_and _null_ _null_ _null_ ));
DESCR("AND-concatenate");
! DATA(insert OID = 3670 ( tsquery_or PGNSP PGUID 12 1 0 0 f f f t f i 2 0 3615 "3615 3615" _null_ _null_ _null_ _null_ tsquery_or _null_ _null_ _null_ ));
DESCR("OR-concatenate");
! DATA(insert OID = 3671 ( tsquery_not PGNSP PGUID 12 1 0 0 f f f t f i 1 0 3615 "3615" _null_ _null_ _null_ _null_ tsquery_not _null_ _null_ _null_ ));
DESCR("NOT-tsquery");
! DATA(insert OID = 3691 ( tsq_mcontains PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ tsq_mcontains _null_ _null_ _null_ ));
DESCR("contains");
! DATA(insert OID = 3692 ( tsq_mcontained PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "3615 3615" _null_ _null_ _null_ _null_ tsq_mcontained _null_ _null_ _null_ ));
DESCR("contained");
! DATA(insert OID = 3672 ( numnode PGNSP PGUID 12 1 0 0 f f f t f i 1 0 23 "3615" _null_ _null_ _null_ _null_ tsquery_numnode _null_ _null_ _null_ ));
DESCR("number of nodes");
! DATA(insert OID = 3673 ( querytree PGNSP PGUID 12 1 0 0 f f f t f i 1 0 25 "3615" _null_ _null_ _null_ _null_ tsquerytree _null_ _null_ _null_ ));
DESCR("show real useful query for GiST index");
! DATA(insert OID = 3684 ( ts_rewrite PGNSP PGUID 12 1 0 0 f f f t f i 3 0 3615 "3615 3615 3615" _null_ _null_ _null_ _null_ tsquery_rewrite _null_ _null_ _null_ ));
DESCR("rewrite tsquery");
! DATA(insert OID = 3685 ( ts_rewrite PGNSP PGUID 12 1 0 0 f f f t f v 2 0 3615 "3615 25" _null_ _null_ _null_ _null_ tsquery_rewrite_query _null_ _null_ _null_ ));
DESCR("rewrite tsquery");
! DATA(insert OID = 3695 ( gtsquery_compress PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ gtsquery_compress _null_ _null_ _null_ ));
DESCR("GiST tsquery support");
! DATA(insert OID = 3696 ( gtsquery_decompress PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ gtsquery_decompress _null_ _null_ _null_ ));
DESCR("GiST tsquery support");
! DATA(insert OID = 3697 ( gtsquery_picksplit PGNSP PGUID 12 1 0 0 f f f t f i 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ gtsquery_picksplit _null_ _null_ _null_ ));
DESCR("GiST tsquery support");
! DATA(insert OID = 3698 ( gtsquery_union PGNSP PGUID 12 1 0 0 f f f t f i 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ gtsquery_union _null_ _null_ _null_ ));
DESCR("GiST tsquery support");
! DATA(insert OID = 3699 ( gtsquery_same PGNSP PGUID 12 1 0 0 f f f t f i 3 0 2281 "20 20 2281" _null_ _null_ _null_ _null_ gtsquery_same _null_ _null_ _null_ ));
DESCR("GiST tsquery support");
! DATA(insert OID = 3700 ( gtsquery_penalty PGNSP PGUID 12 1 0 0 f f f t f i 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ gtsquery_penalty _null_ _null_ _null_ ));
DESCR("GiST tsquery support");
! DATA(insert OID = 3701 ( gtsquery_consistent PGNSP PGUID 12 1 0 0 f f f t f i 5 0 16 "2281 2281 23 26 2281" _null_ _null_ _null_ _null_ gtsquery_consistent _null_ _null_ _null_ ));
DESCR("GiST tsquery support");
! DATA(insert OID = 3686 ( tsmatchsel PGNSP PGUID 12 1 0 0 f f f t f s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ tsmatchsel _null_ _null_ _null_ ));
DESCR("restriction selectivity of tsvector @@ tsquery");
! DATA(insert OID = 3687 ( tsmatchjoinsel PGNSP PGUID 12 1 0 0 f f f t f s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ tsmatchjoinsel _null_ _null_ _null_ ));
DESCR("join selectivity of tsvector @@ tsquery");
! DATA(insert OID = 3688 ( ts_typanalyze PGNSP PGUID 12 1 0 0 f f f t f s 1 0 16 "2281" _null_ _null_ _null_ _null_ ts_typanalyze _null_ _null_ _null_ ));
DESCR("tsvector typanalyze");
! DATA(insert OID = 3689 ( ts_stat PGNSP PGUID 12 10 10000 0 f f f t t v 1 0 2249 "25" "{25,25,23,23}" "{i,o,o,o}" "{query,word,ndoc,nentry}" _null_ ts_stat1 _null_ _null_ _null_ ));
DESCR("statistics of tsvector column");
! DATA(insert OID = 3690 ( ts_stat PGNSP PGUID 12 10 10000 0 f f f t t v 2 0 2249 "25 25" "{25,25,25,23,23}" "{i,i,o,o,o}" "{query,weights,word,ndoc,nentry}" _null_ ts_stat2 _null_ _null_ _null_ ));
DESCR("statistics of tsvector column");
! DATA(insert OID = 3703 ( ts_rank PGNSP PGUID 12 1 0 0 f f f t f i 4 0 700 "1021 3614 3615 23" _null_ _null_ _null_ _null_ ts_rank_wttf _null_ _null_ _null_ ));
DESCR("relevance");
! DATA(insert OID = 3704 ( ts_rank PGNSP PGUID 12 1 0 0 f f f t f i 3 0 700 "1021 3614 3615" _null_ _null_ _null_ _null_ ts_rank_wtt _null_ _null_ _null_ ));
DESCR("relevance");
! DATA(insert OID = 3705 ( ts_rank PGNSP PGUID 12 1 0 0 f f f t f i 3 0 700 "3614 3615 23" _null_ _null_ _null_ _null_ ts_rank_ttf _null_ _null_ _null_ ));
DESCR("relevance");
! DATA(insert OID = 3706 ( ts_rank PGNSP PGUID 12 1 0 0 f f f t f i 2 0 700 "3614 3615" _null_ _null_ _null_ _null_ ts_rank_tt _null_ _null_ _null_ ));
DESCR("relevance");
! DATA(insert OID = 3707 ( ts_rank_cd PGNSP PGUID 12 1 0 0 f f f t f i 4 0 700 "1021 3614 3615 23" _null_ _null_ _null_ _null_ ts_rankcd_wttf _null_ _null_ _null_ ));
DESCR("relevance");
! DATA(insert OID = 3708 ( ts_rank_cd PGNSP PGUID 12 1 0 0 f f f t f i 3 0 700 "1021 3614 3615" _null_ _null_ _null_ _null_ ts_rankcd_wtt _null_ _null_ _null_ ));
DESCR("relevance");
! DATA(insert OID = 3709 ( ts_rank_cd PGNSP PGUID 12 1 0 0 f f f t f i 3 0 700 "3614 3615 23" _null_ _null_ _null_ _null_ ts_rankcd_ttf _null_ _null_ _null_ ));
DESCR("relevance");
! DATA(insert OID = 3710 ( ts_rank_cd PGNSP PGUID 12 1 0 0 f f f t f i 2 0 700 "3614 3615" _null_ _null_ _null_ _null_ ts_rankcd_tt _null_ _null_ _null_ ));
DESCR("relevance");
! DATA(insert OID = 3713 ( ts_token_type PGNSP PGUID 12 1 16 0 f f f t t i 1 0 2249 "26" "{26,23,25,25}" "{i,o,o,o}" "{parser_oid,tokid,alias,description}" _null_ ts_token_type_byid _null_ _null_ _null_ ));
DESCR("get parser's token types");
! DATA(insert OID = 3714 ( ts_token_type PGNSP PGUID 12 1 16 0 f f f t t s 1 0 2249 "25" "{25,23,25,25}" "{i,o,o,o}" "{parser_name,tokid,alias,description}" _null_ ts_token_type_byname _null_ _null_ _null_ ));
DESCR("get parser's token types");
! DATA(insert OID = 3715 ( ts_parse PGNSP PGUID 12 1 1000 0 f f f t t i 2 0 2249 "26 25" "{26,25,23,25}" "{i,i,o,o}" "{parser_oid,txt,tokid,token}" _null_ ts_parse_byid _null_ _null_ _null_ ));
DESCR("parse text to tokens");
! DATA(insert OID = 3716 ( ts_parse PGNSP PGUID 12 1 1000 0 f f f t t s 2 0 2249 "25 25" "{25,25,23,25}" "{i,i,o,o}" "{parser_name,txt,tokid,token}" _null_ ts_parse_byname _null_ _null_ _null_ ));
DESCR("parse text to tokens");
! DATA(insert OID = 3717 ( prsd_start PGNSP PGUID 12 1 0 0 f f f t f i 2 0 2281 "2281 23" _null_ _null_ _null_ _null_ prsd_start _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3718 ( prsd_nexttoken PGNSP PGUID 12 1 0 0 f f f t f i 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ prsd_nexttoken _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3719 ( prsd_end PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2278 "2281" _null_ _null_ _null_ _null_ prsd_end _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3720 ( prsd_headline PGNSP PGUID 12 1 0 0 f f f t f i 3 0 2281 "2281 2281 3615" _null_ _null_ _null_ _null_ prsd_headline _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3721 ( prsd_lextype PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ prsd_lextype _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3723 ( ts_lexize PGNSP PGUID 12 1 0 0 f f f t f i 2 0 1009 "3769 25" _null_ _null_ _null_ _null_ ts_lexize _null_ _null_ _null_ ));
DESCR("normalize one word by dictionary");
! DATA(insert OID = 3725 ( dsimple_init PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ dsimple_init _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3726 ( dsimple_lexize PGNSP PGUID 12 1 0 0 f f f t f i 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ dsimple_lexize _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3728 ( dsynonym_init PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ dsynonym_init _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3729 ( dsynonym_lexize PGNSP PGUID 12 1 0 0 f f f t f i 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ dsynonym_lexize _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3731 ( dispell_init PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ dispell_init _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3732 ( dispell_lexize PGNSP PGUID 12 1 0 0 f f f t f i 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ dispell_lexize _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3740 ( thesaurus_init PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ thesaurus_init _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3741 ( thesaurus_lexize PGNSP PGUID 12 1 0 0 f f f t f i 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ thesaurus_lexize _null_ _null_ _null_ ));
DESCR("");
! DATA(insert OID = 3743 ( ts_headline PGNSP PGUID 12 1 0 0 f f f t f i 4 0 25 "3734 25 3615 25" _null_ _null_ _null_ _null_ ts_headline_byid_opt _null_ _null_ _null_ ));
DESCR("generate headline");
! DATA(insert OID = 3744 ( ts_headline PGNSP PGUID 12 1 0 0 f f f t f i 3 0 25 "3734 25 3615" _null_ _null_ _null_ _null_ ts_headline_byid _null_ _null_ _null_ ));
DESCR("generate headline");
! DATA(insert OID = 3754 ( ts_headline PGNSP PGUID 12 1 0 0 f f f t f s 3 0 25 "25 3615 25" _null_ _null_ _null_ _null_ ts_headline_opt _null_ _null_ _null_ ));
DESCR("generate headline");
! DATA(insert OID = 3755 ( ts_headline PGNSP PGUID 12 1 0 0 f f f t f s 2 0 25 "25 3615" _null_ _null_ _null_ _null_ ts_headline _null_ _null_ _null_ ));
DESCR("generate headline");
! DATA(insert OID = 3745 ( to_tsvector PGNSP PGUID 12 1 0 0 f f f t f i 2 0 3614 "3734 25" _null_ _null_ _null_ _null_ to_tsvector_byid _null_ _null_ _null_ ));
DESCR("transform to tsvector");
! DATA(insert OID = 3746 ( to_tsquery PGNSP PGUID 12 1 0 0 f f f t f i 2 0 3615 "3734 25" _null_ _null_ _null_ _null_ to_tsquery_byid _null_ _null_ _null_ ));
DESCR("make tsquery");
! DATA(insert OID = 3747 ( plainto_tsquery PGNSP PGUID 12 1 0 0 f f f t f i 2 0 3615 "3734 25" _null_ _null_ _null_ _null_ plainto_tsquery_byid _null_ _null_ _null_ ));
DESCR("transform to tsquery");
! DATA(insert OID = 3749 ( to_tsvector PGNSP PGUID 12 1 0 0 f f f t f s 1 0 3614 "25" _null_ _null_ _null_ _null_ to_tsvector _null_ _null_ _null_ ));
DESCR("transform to tsvector");
! DATA(insert OID = 3750 ( to_tsquery PGNSP PGUID 12 1 0 0 f f f t f s 1 0 3615 "25" _null_ _null_ _null_ _null_ to_tsquery _null_ _null_ _null_ ));
DESCR("make tsquery");
! DATA(insert OID = 3751 ( plainto_tsquery PGNSP PGUID 12 1 0 0 f f f t f s 1 0 3615 "25" _null_ _null_ _null_ _null_ plainto_tsquery _null_ _null_ _null_ ));
DESCR("transform to tsquery");
! DATA(insert OID = 3752 ( tsvector_update_trigger PGNSP PGUID 12 1 0 0 f f f f f v 0 0 2279 "" _null_ _null_ _null_ _null_ tsvector_update_trigger_byid _null_ _null_ _null_ ));
DESCR("trigger for automatic update of tsvector column");
! DATA(insert OID = 3753 ( tsvector_update_trigger_column PGNSP PGUID 12 1 0 0 f f f f f v 0 0 2279 "" _null_ _null_ _null_ _null_ tsvector_update_trigger_bycolumn _null_ _null_ _null_ ));
DESCR("trigger for automatic update of tsvector column");
! DATA(insert OID = 3759 ( get_current_ts_config PGNSP PGUID 12 1 0 0 f f f t f s 0 0 3734 "" _null_ _null_ _null_ _null_ get_current_ts_config _null_ _null_ _null_ ));
DESCR("get current tsearch configuration");
! DATA(insert OID = 3736 ( regconfigin PGNSP PGUID 12 1 0 0 f f f t f s 1 0 3734 "2275" _null_ _null_ _null_ _null_ regconfigin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3737 ( regconfigout PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "3734" _null_ _null_ _null_ _null_ regconfigout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3738 ( regconfigrecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 3734 "2281" _null_ _null_ _null_ _null_ regconfigrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3739 ( regconfigsend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "3734" _null_ _null_ _null_ _null_ regconfigsend _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3771 ( regdictionaryin PGNSP PGUID 12 1 0 0 f f f t f s 1 0 3769 "2275" _null_ _null_ _null_ _null_ regdictionaryin _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3772 ( regdictionaryout PGNSP PGUID 12 1 0 0 f f f t f s 1 0 2275 "3769" _null_ _null_ _null_ _null_ regdictionaryout _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3773 ( regdictionaryrecv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 3769 "2281" _null_ _null_ _null_ _null_ regdictionaryrecv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 3774 ( regdictionarysend PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "3769" _null_ _null_ _null_ _null_ regdictionarysend _null_ _null_ _null_ ));
DESCR("I/O");
/* txid */
! DATA(insert OID = 2939 ( txid_snapshot_in PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2970 "2275" _null_ _null_ _null_ _null_ txid_snapshot_in _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2940 ( txid_snapshot_out PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2275 "2970" _null_ _null_ _null_ _null_ txid_snapshot_out _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2941 ( txid_snapshot_recv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2970 "2281" _null_ _null_ _null_ _null_ txid_snapshot_recv _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2942 ( txid_snapshot_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "2970" _null_ _null_ _null_ _null_ txid_snapshot_send _null_ _null_ _null_ ));
DESCR("I/O");
! DATA(insert OID = 2943 ( txid_current PGNSP PGUID 12 1 0 0 f f f t f s 0 0 20 "" _null_ _null_ _null_ _null_ txid_current _null_ _null_ _null_ ));
DESCR("get current transaction ID");
! DATA(insert OID = 2944 ( txid_current_snapshot PGNSP PGUID 12 1 0 0 f f f t f s 0 0 2970 "" _null_ _null_ _null_ _null_ txid_current_snapshot _null_ _null_ _null_ ));
DESCR("get current snapshot");
! DATA(insert OID = 2945 ( txid_snapshot_xmin PGNSP PGUID 12 1 0 0 f f f t f i 1 0 20 "2970" _null_ _null_ _null_ _null_ txid_snapshot_xmin _null_ _null_ _null_ ));
DESCR("get xmin of snapshot");
! DATA(insert OID = 2946 ( txid_snapshot_xmax PGNSP PGUID 12 1 0 0 f f f t f i 1 0 20 "2970" _null_ _null_ _null_ _null_ txid_snapshot_xmax _null_ _null_ _null_ ));
DESCR("get xmax of snapshot");
! DATA(insert OID = 2947 ( txid_snapshot_xip PGNSP PGUID 12 1 50 0 f f f t t i 1 0 20 "2970" _null_ _null_ _null_ _null_ txid_snapshot_xip _null_ _null_ _null_ ));
DESCR("get set of in-progress txids in snapshot");
! DATA(insert OID = 2948 ( txid_visible_in_snapshot PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "20 2970" _null_ _null_ _null_ _null_ txid_visible_in_snapshot _null_ _null_ _null_ ));
DESCR("is txid visible in snapshot?");
/* record comparison */
! DATA(insert OID = 2981 ( record_eq PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ record_eq _null_ _null_ _null_ ));
DESCR("record equal");
! DATA(insert OID = 2982 ( record_ne PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ record_ne _null_ _null_ _null_ ));
DESCR("record not equal");
! DATA(insert OID = 2983 ( record_lt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ record_lt _null_ _null_ _null_ ));
DESCR("record less than");
! DATA(insert OID = 2984 ( record_gt PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ record_gt _null_ _null_ _null_ ));
DESCR("record greater than");
! DATA(insert OID = 2985 ( record_le PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ record_le _null_ _null_ _null_ ));
DESCR("record less than or equal");
! DATA(insert OID = 2986 ( record_ge PGNSP PGUID 12 1 0 0 f f f t f i 2 0 16 "2249 2249" _null_ _null_ _null_ _null_ record_ge _null_ _null_ _null_ ));
DESCR("record greater than or equal");
! DATA(insert OID = 2987 ( btrecordcmp PGNSP PGUID 12 1 0 0 f f f t f i 2 0 23 "2249 2249" _null_ _null_ _null_ _null_ btrecordcmp _null_ _null_ _null_ ));
DESCR("btree less-equal-greater");
+ /* SQL spec window functions */
+ DATA(insert OID = 3898 ( row_number PGNSP PGUID 12 1 0 0 f t f f f s 0 0 20 "" _null_ _null_ _null_ _null_ row_number _null_ _null_ _null_));
+ DESCR("row number of given frame");
+ DATA(insert OID = 3899 ( rank PGNSP PGUID 12 1 0 0 f t f f f s 0 0 20 "" _null_ _null_ _null_ _null_ rank _null_ _null_ _null_));
+ DESCR("integer rank with gap");
+ DATA(insert OID = 3900 ( dense_rank PGNSP PGUID 12 1 0 0 f t f f f s 0 0 20 "" _null_ _null_ _null_ _null_ dense_rank _null_ _null_ _null_));
+ DESCR("integer rank without gap");
+ DATA(insert OID = 3901 ( percent_rank PGNSP PGUID 12 1 0 0 f t f f f s 0 0 701 "" _null_ _null_ _null_ _null_ percent_rank _null_ _null_ _null_));
+ DESCR("fraction of rank per the partition rows");
+ DATA(insert OID = 3902 ( cume_dist PGNSP PGUID 12 1 0 0 f t f f f s 0 0 701 "" _null_ _null_ _null_ _null_ cume_dist _null_ _null_ _null_));
+ DESCR("fraction of row_number per the partition rows");
+ DATA(insert OID = 3903 ( ntile PGNSP PGUID 12 1 0 0 f t f t f s 1 0 23 "23" _null_ _null_ _null_ _null_ ntile _null_ _null_ _null_));
+ DESCR("split number of rows divided by a bucket number");
+ DATA(insert OID = 3904 ( lag PGNSP PGUID 12 1 0 0 f t f t f s 1 0 2283 "2283" _null_ _null_ _null_ _null_ lag _null_ _null_ _null_));
+ DESCR("fetch the preceding row value");
+ DATA(insert OID = 3905 ( lag PGNSP PGUID 12 1 0 0 f t f t f s 2 0 2283 "2283 23" _null_ _null_ _null_ _null_ lag_with_offset _null_ _null_ _null_));
+ DESCR("fetch the preceding row value");
+ DATA(insert OID = 3906 ( lag PGNSP PGUID 12 1 0 0 f t f t f s 3 0 2283 "2283 23 2283" _null_ _null_ _null_ _null_ lag_with_offset_and_default _null_ _null_ _null_));
+ DESCR("fetch the preceding row value with default");
+ DATA(insert OID = 3907 ( lead PGNSP PGUID 12 1 0 0 f t f t f s 1 0 2283 "2283" _null_ _null_ _null_ _null_ lead _null_ _null_ _null_));
+ DESCR("fetch the following row value");
+ DATA(insert OID = 3908 ( lead PGNSP PGUID 12 1 0 0 f t f t f s 2 0 2283 "2283 23" _null_ _null_ _null_ _null_ lead_with_offset _null_ _null_ _null_));
+ DESCR("fetch the following row value");
+ DATA(insert OID = 3909 ( lead PGNSP PGUID 12 1 0 0 f t f t f s 3 0 2283 "2283 23 2283" _null_ _null_ _null_ _null_ lead_with_offset_and_default _null_ _null_ _null_));
+ DESCR("fetch the following row value with default");
+ DATA(insert OID = 3910 ( first_value PGNSP PGUID 12 1 0 0 f t f t f s 1 0 2283 "2283" _null_ _null_ _null_ _null_ first_value _null_ _null_ _null_));
+ DESCR("fetch the first row value");
+ DATA(insert OID = 3911 ( last_value PGNSP PGUID 12 1 0 0 f t f t f s 1 0 2283 "2283" _null_ _null_ _null_ _null_ last_value _null_ _null_ _null_));
+ DESCR("fetch the last row value");
+ DATA(insert OID = 3912 ( nth_value PGNSP PGUID 12 1 0 0 f t f t f s 2 0 2283 "2283 23" _null_ _null_ _null_ _null_ nth_value _null_ _null_ _null_));
+ DESCR("fetch following row value");
/*
* Symbolic values for provolatile column: these indicate whether the result
*** /dev/null
--- b/src/include/executor/nodeWindow.h
***************
*** 0 ****
--- 1,49 ----
+ /*-------------------------------------------------------------------------
+ *
+ * nodeWindow.h
+ * prototypes for nodeWindow.c
+ *
+ *
+ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1994, Regents of the University of California
+ *
+ * $Id$
+ *
+ *-------------------------------------------------------------------------
+ */
+ #ifndef NODEWINDOW_H
+ #define NODEWINDOW_H
+
+ #include "nodes/execnodes.h"
+
+ extern int ExecCountSlotsWindow(Window *node);
+ extern WindowState *ExecInitWindow(Window *node, EState *estate, int eflags);
+ extern TupleTableSlot *ExecWindow(WindowState *node);
+ extern void ExecEndWindow(WindowState *node);
+ extern void ExecReScanWindow(WindowState *node, ExprContext *exprCtxt);
+
+ /* window function APIs */
+ #define PG_WINDOW_OBJECT() ((WindowObject) fcinfo->context)
+
+ #define WINDOW_SEEK_CURRENT 0
+ #define WINDOW_SEEK_HEAD 1
+ #define WINDOW_SEEK_TAIL 2
+
+ /*
+ * private in nodeWindow.c but exposed as window function APIs
+ */
+ typedef struct WindowObjectData *WindowObject;
+
+ #define WinRowGetArg(winobj, argstate, isnull) WinPartGetArg(winobj, argstate, 0, WINDOW_SEEK_CURRENT, isnull, NULL)
+
+ extern int64 WinRowCurrentPos(WindowObject winobj);
+ extern bool WinRowIsPeer(WindowObject winobj, int64 pos1, int64 pos2);
+
+ extern int64 WinPartGetRowNum(WindowObject winobj);
+ extern Datum WinPartGetArg(WindowObject winobj, int argno,
+ int relpos, int seektype, bool *isnull, bool *isout);
+
+ extern Datum WinFrameGetArg(WindowObject winobj, int argno,
+ int relpos, int seektype, bool *isnull, bool *isout);
+
+ #endif /* NODEWINDOW_H */
*** a/src/include/nodes/execnodes.h
--- b/src/include/nodes/execnodes.h
***************
*** 100,105 **** typedef struct ExprContext_CB
--- 100,108 ----
*
* CurrentMemoryContext should be set to ecxt_per_tuple_memory before
* calling ExecEvalExpr() --- see ExecEvalExprSwitchContext().
+ *
+ * WindowFunc node uses ecxt_aggvalues/ecxt_aggnulls for stored result as
+ * well as Aggref. This is no problem since in a Window node Aggref never appears.
* ----------------
*/
typedef struct ExprContext
***************
*** 119,127 **** typedef struct ExprContext
ParamExecData *ecxt_param_exec_vals; /* for PARAM_EXEC params */
ParamListInfo ecxt_param_list_info; /* for other param types */
! /* Values to substitute for Aggref nodes in expression */
! Datum *ecxt_aggvalues; /* precomputed values for Aggref nodes */
! bool *ecxt_aggnulls; /* null flags for Aggref nodes */
/* Value to substitute for CaseTestExpr nodes in expression */
Datum caseValue_datum;
--- 122,130 ----
ParamExecData *ecxt_param_exec_vals; /* for PARAM_EXEC params */
ParamListInfo ecxt_param_list_info; /* for other param types */
! /* Values to substitute for Aggref/WindowFunc nodes in expression */
! Datum *ecxt_aggvalues; /* precomputed values for Aggref/WindowFunc nodes */
! bool *ecxt_aggnulls; /* null flags for Aggref/WindowFunc nodes */
/* Value to substitute for CaseTestExpr nodes in expression */
Datum caseValue_datum;
***************
*** 512,517 **** typedef struct AggrefExprState
--- 515,531 ----
} AggrefExprState;
/* ----------------
+ * WindowFuncExprState node
+ * ----------------
+ */
+ typedef struct WindowFuncExprState
+ {
+ ExprState xprstate;
+ List *args; /* states of argument expressions */
+ int funcno; /* ID number for WindowFunc within its Window plan node */
+ } WindowFuncExprState;
+
+ /* ----------------
* ArrayRefExprState node
*
* Note: array types can be fixed-length (typlen > 0), but only when the
***************
*** 1578,1581 **** typedef struct LimitState
--- 1592,1658 ----
TupleTableSlot *subSlot; /* tuple last obtained from subplan */
} LimitState;
+ /* these are private structures in nodeWindow.c */
+ typedef struct WindowStatePerFuncData *WindowStatePerFunc;
+ typedef struct WindowStatePerAggData *WindowStatePerAgg;
+
+ /* ----------------
+ * WindowState -
+ *
+ * a state object used in nodeWindow.c. Similar to AggState, it holds
+ * another econtext for input tuples and per-agg information, but also
+ * WindowFrame list which is used to iterate inside the current partition and
+ * preserve the previous aggregated values.
+ * ----------------
+ */
+ typedef struct WindowState
+ {
+ ScanState ss; /* its first field is NodeTag */
+
+ FmgrInfo *prtEqfunctions; /* for partition by columns */
+ FmgrInfo *ordEqfunctions; /* for order by columns */
+ List *funcs; /* all WindowFunc nodes in targetlist */
+ int numfuncs; /* number of window functions */
+ int numaggs; /* number of wingow aggregates */
+ WindowStatePerFunc perfunc; /* per-WindowFunc information */
+ WindowStatePerAgg peragg; /* per-Agg function information */
+
+ Tuplestorestate *buffer; /* rows storage */
+ int current_ptr;
+ int agg_ptr;
+
+ int64 spooled_rows;
+
+ int64 currentpos; /* position of current row in partition */
+
+ /* this is for window aggregates */
+ int64 aggregatedupto;
+
+ /* current frame tail position */
+ int64 frametailpos;
+
+
+ ExprContext *tmpcontext;
+
+ bool all_done; /* true if the scan is finished */
+ bool partition_spooled; /* true if all tuples in the partition
+ * have been spooled into the tuplestore
+ */
+ bool more_partitions; /* true if there's more partitions after
+ * this one
+ */
+
+ MemoryContext wincontext; /* memory context for long-lived data */
+
+ int eflags; /* flags passed at InitNode */
+
+ TupleTableSlot *first_part_slot; /* first tuple of *next* partition */
+
+ TupleTableSlot *first_peer_slot; /* slot used in advance_aggregate */
+
+ TupleTableSlot *is_peer_slot1; /* temp slots used in in_peer */
+ TupleTableSlot *is_peer_slot2;
+
+ } WindowState;
+
#endif /* EXECNODES_H */
*** a/src/include/nodes/nodes.h
--- b/src/include/nodes/nodes.h
***************
*** 70,75 **** typedef enum NodeTag
--- 70,76 ----
T_Hash,
T_SetOp,
T_Limit,
+ T_Window,
/* this one isn't a subclass of Plan: */
T_PlanInvalItem,
***************
*** 107,112 **** typedef enum NodeTag
--- 108,114 ----
T_HashState,
T_SetOpState,
T_LimitState,
+ T_WindowState,
/*
* TAGS FOR PRIMITIVE NODES (primnodes.h)
***************
*** 118,123 **** typedef enum NodeTag
--- 120,126 ----
T_Const,
T_Param,
T_Aggref,
+ T_WindowFunc,
T_ArrayRef,
T_FuncExpr,
T_OpExpr,
***************
*** 164,169 **** typedef enum NodeTag
--- 167,173 ----
T_ExprState = 400,
T_GenericExprState,
T_AggrefExprState,
+ T_WindowFuncExprState,
T_ArrayRefExprState,
T_FuncExprState,
T_ScalarArrayOpExprState,
***************
*** 334,339 **** typedef enum NodeTag
--- 338,345 ----
T_ParamRef,
T_A_Const,
T_FuncCall,
+ T_WindowDef,
+ T_WindowClause,
T_A_Star,
T_A_Indices,
T_A_Indirection,
*** a/src/include/nodes/parsenodes.h
--- b/src/include/nodes/parsenodes.h
***************
*** 115,120 **** typedef struct Query
--- 115,121 ----
bool hasAggs; /* has aggregates in tlist or havingQual */
bool hasSubLinks; /* has subquery SubLink */
bool hasDistinctOn; /* distinctClause is from DISTINCT ON */
+ bool hasWindow; /* has Window process */
bool hasRecursive; /* WITH RECURSIVE was specified */
List *cteList; /* WITH list (of CommonTableExpr's) */
***************
*** 134,139 **** typedef struct Query
--- 135,142 ----
List *sortClause; /* a list of SortGroupClause's */
+ List *windowList; /* a list of WindowClause's */
+
Node *limitOffset; /* # of result tuples to skip (int8 expr) */
Node *limitCount; /* # of result tuples to return (int8 expr) */
***************
*** 272,277 **** typedef struct FuncCall
--- 275,281 ----
bool agg_star; /* argument was really '*' */
bool agg_distinct; /* arguments were labeled DISTINCT */
bool func_variadic; /* last argument was labeled VARIADIC */
+ struct WindowDef *win_definition; /* window definition */
int location; /* token location, or -1 if unknown */
} FuncCall;
***************
*** 686,691 **** typedef struct RangeTblEntry
--- 690,699 ----
* restriction ensures that only one sort step is needed to both satisfy the
* ORDER BY and set up for the Unique step. This is semantically necessary
* for DISTINCT ON, and presents no real drawback for DISTINCT.)
+ *
+ * In addition, PARTITION BY and ORDER BY in window specifications are
+ * represented by this struct. PARTITION BY clause is the same as GROUP BY
+ * and ORDER BY is ORDER BY in the normal way.
*/
typedef struct SortGroupClause
{
***************
*** 697,702 **** typedef struct SortGroupClause
--- 705,746 ----
} SortGroupClause;
/*
+ * WindowDef -
+ *
+ * This may come after function call expression or after HAVING clause.
+ * expr_list holds expression pointers attached with this window, which
+ * will be referred in the transformation process. Since window declaration
+ * appears more than once in a query, duplicated WindowDefs are created, then
+ * are aggregated in transformation.
+ */
+ typedef struct WindowDef
+ {
+ NodeTag type;
+ List *partitionClause; /* PARTITION BY expression list */
+ List *orderClause; /* ORDER BY expression list */
+ WindowFunc *wfunc; /* function calls attached with this definition */
+ char *name; /* WINDOW name if this definition refers to other one */
+ int location; /* parse location */
+ } WindowDef;
+
+ /*
+ * WindowCaluse -
+ * A unit of Window.
+ *
+ * winref is an identification and may be referred by window expressions.
+ */
+ typedef struct WindowClause
+ {
+ NodeTag type;
+ List *partitionClause; /* transformed PARTITION BY expression list */
+ List *orderClause; /* transformed ORDER BY expression list */
+ char *name; /* name if any */
+ bool has_wfunc; /* tied with any window functions? */
+ Index winref; /* id referred by window functions */
+ } WindowClause;
+
+
+ /*
* RowMarkClause -
* representation of FOR UPDATE/SHARE clauses
*
***************
*** 840,845 **** typedef struct SelectStmt
--- 884,890 ----
Node *whereClause; /* WHERE qualification */
List *groupClause; /* GROUP BY clauses */
Node *havingClause; /* HAVING conditional-expression */
+ List *windowClause; /* WINDOW window_name AS (...), ... */
WithClause *withClause; /* WITH clause */
/*
*** a/src/include/nodes/plannodes.h
--- b/src/include/nodes/plannodes.h
***************
*** 536,541 **** typedef struct Agg
--- 536,551 ----
long numGroups; /* estimated number of groups in input */
} Agg;
+ /*
+ typedef struct Partition
+ {
+ Plan plan;
+ int numCols;
+ AttrNumber *prtColIdx;
+ Oid *prtOperators;
+ } Partition;
+ */
+
/* ----------------
* unique node
* ----------------
***************
*** 604,609 **** typedef struct Limit
--- 614,659 ----
Node *limitCount; /* COUNT parameter, or NULL if none */
} Limit;
+ /* ----------------
+ * window frame bound type
+ * ----------------
+ */
+ #define FRAME_UNBOUNDED 1 /* [ROWS|RANGE] ... UNBOUNDED [PRECEDING|FOLLOWING] */
+ #define FRAME_CURRENT_ROWS 2 /* ROWS ... CURRENT ROW [PRECEDING|FOLLOWING] */
+ #define FRAME_CURRENT_RANGE 3 /* RANGE ... CURRENT ROW [PRECEDING|FOLLOWING] */
+ #define FRAME_VALUE_ROWS 4 /* ROWS ... {VALUE} [PRECEDING|FOLLOWING] */
+ #define FRAME_VALUE_RANGE 5 /* RANGE ... {VALUE} [PRECEDING|FOLLOWING] */
+
+ /* ----------------
+ * window buffering strategy ID
+ * ----------------
+ */
+ #define WINDOW_BUFFER_ROW 1 /* no buffering, only CURRENT ROW */
+ #define WINDOW_BUFFER_FRAME 2 /* including ROWS/RANGE */
+ #define WINDOW_BUFFER_PARTITION 4 /* all inclusive */
+
+ /* ----------------
+ * window node
+ * ----------------
+ */
+ typedef struct Window
+ {
+ Plan plan;
+ int prtNumCols; /* number of columns for partition boundary */
+ AttrNumber *prtColIdx; /* indices of partition boundary */
+ Oid *prtOperators; /* equation operators of partition columns */
+ int ordNumCols; /* number of columns for order keys */
+ AttrNumber *ordColIdx; /* indices of order keys */
+ Oid *ordOperators; /* equation operators of order columns */
+
+ int bound1_type; /* type of frame bound1 */
+ int bound2_type; /* type of frame bound2 */
+ uint32 bound1_rows; /* used only when FRAME_VALUE_ROWS */
+ uint32 bound2_rows; /* used only when FRAME_VALUE_ROWS */
+ Node *preceding; /* reserved. PRECEDING ... Const Expr for RANGE */
+ Node *following; /* reserved. FOLLOWING ... Const Expr for RANGE */
+ Index winref; /* ID of this window, associated with wfunc */
+ } Window;
/*
* Plan invalidation info
*** a/src/include/nodes/primnodes.h
--- b/src/include/nodes/primnodes.h
***************
*** 222,227 **** typedef struct Aggref
--- 222,249 ----
int location; /* token location, or -1 if unknown */
} Aggref;
+ /*
+ * WindowFunc is a representation of a window function call.
+ * This node shall be in Window node.
+ *
+ * A window-supported function is marked as pg_proc.proiswfunc = true,
+ * but we allow pure aggregate functions as window functions, which
+ * is done by eval_windowaggregate(). These functions are marked wfunc->winagg
+ * to true.
+ */
+ typedef struct WindowFunc
+ {
+ Expr xpr;
+ Oid winfnoid; /* pg_proc Oid of the window/aggregate function */
+ Oid wintype; /* type Oid of result of the window function */
+ List *args; /* arguments to the window function */
+ Index winlevelsup; /* > 0 if agg belongs to outer query */
+ bool winstar; /* TRUE if argument list was really '*' */
+ Index winref; /* tie with WindowDef */
+ bool winagg; /* is only-aggreate-support function? */
+ int location; /* token location, or -1 if unknown */
+ } WindowFunc;
+
/* ----------------
* ArrayRef: describes an array subscripting operation
*
*** a/src/include/nodes/relation.h
--- b/src/include/nodes/relation.h
***************
*** 174,179 **** typedef struct PlannerInfo
--- 174,181 ----
List *distinct_pathkeys; /* distinctClause pathkeys, if any */
List *sort_pathkeys; /* sortClause pathkeys, if any */
+ List *window_pathkeys; /* pathkeys of bottom Window, if any */
+
List *initial_rels; /* RelOptInfos we are now trying to join */
MemoryContext planner_cxt; /* context holding PlannerInfo */
*** a/src/include/optimizer/planmain.h
--- b/src/include/optimizer/planmain.h
***************
*** 69,74 **** extern SetOp *make_setop(SetOpCmd cmd, SetOpStrategy strategy, Plan *lefttree,
--- 69,77 ----
long numGroups, double outputRows);
extern Result *make_result(PlannerInfo *root, List *tlist,
Node *resconstantqual, Plan *subplan);
+ extern Window *make_window(PlannerInfo *root, List *tlist,
+ WindowClause *parse, Oid *prtOperators, Oid *ordOperators,
+ Plan *lefttree);
extern bool is_projection_capable_plan(Plan *plan);
/*
*** a/src/include/optimizer/var.h
--- b/src/include/optimizer/var.h
***************
*** 26,30 **** extern int locate_var_of_relation(Node *node, int relid, int levelsup);
--- 26,33 ----
extern int find_minimum_var_level(Node *node);
extern List *pull_var_clause(Node *node, bool includePlaceHolderVars);
extern Node *flatten_join_alias_vars(PlannerInfo *root, Node *node);
+ extern Node *find_wfunc_greater(Node *node);
+ extern Node *find_wfunc_lesser(Node *node);
+ extern Node *find_wfunc(Node *node);
#endif /* VAR_H */
*** a/src/include/parser/parse_agg.h
--- b/src/include/parser/parse_agg.h
***************
*** 1,7 ****
/*-------------------------------------------------------------------------
*
* parse_agg.h
! * handle aggregates in parser
*
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
--- 1,7 ----
/*-------------------------------------------------------------------------
*
* parse_agg.h
! * handle aggregates and window functions in parser
*
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
***************
*** 16,23 ****
--- 16,25 ----
#include "parser/parse_node.h"
extern void transformAggregateCall(ParseState *pstate, Aggref *agg);
+ extern void transformWindowCall(ParseState *pstate, WindowFunc *wfunc);
extern void parseCheckAggregates(ParseState *pstate, Query *qry);
+ extern void parseCheckWindow(ParseState *pstate, Query *qry);
extern void build_aggregate_fnexprs(Oid *agg_input_types,
int agg_num_inputs,
*** a/src/include/parser/parse_clause.h
--- b/src/include/parser/parse_clause.h
***************
*** 30,41 **** extern List *transformGroupClause(ParseState *pstate, List *grouplist,
--- 30,57 ----
List **targetlist, List *sortClause);
extern List *transformSortClause(ParseState *pstate, List *orderlist,
List **targetlist, bool resolveUnknown);
+ extern List *transformWindowOrderClause(ParseState *pstate,
+ List *orderlist, List **targetlist,
+ bool resolveUnknown);
+ extern List *transformWindowPartitionClause(ParseState *pstate,
+ List *partitionlist, List **targetlist);
+ extern List *transformWindowDef(ParseState *pstate,
+ List *windefinition, List **targetlist);
+
+ extern List *addAllTargetsToSortList(ParseState *pstate,
+ List *sortlist, List *targetlist,
+ bool resolveUnknown);
+ extern List *addTargetToOrderList(ParseState *pstate, TargetEntry *tle,
+ List *orderlist, List *targetlist,
+ SortByDir sortby_dir, SortByNulls sortby_nulls,
+ List *sortby_opname, bool resolveUnknown);
extern List *transformDistinctClause(ParseState *pstate,
List **targetlist, List *sortClause);
extern List *transformDistinctOnClause(ParseState *pstate, List *distinctlist,
List **targetlist, List *sortClause);
extern Index assignSortGroupRef(TargetEntry *tle, List *tlist);
+ extern Index assignOverRef(TargetEntry *tle, List *tlist);
extern bool targetIsInSortList(TargetEntry *tle, Oid sortop, List *sortList);
#endif /* PARSE_CLAUSE_H */
*** a/src/include/parser/parse_func.h
--- b/src/include/parser/parse_func.h
***************
*** 36,42 **** typedef enum
FUNCDETAIL_NOTFOUND, /* no matching function */
FUNCDETAIL_MULTIPLE, /* too many matching functions */
FUNCDETAIL_NORMAL, /* found a matching regular function */
! FUNCDETAIL_AGGREGATE, /* found a matching aggregate function */
FUNCDETAIL_COERCION /* it's a type coercion request */
} FuncDetailCode;
--- 36,42 ----
FUNCDETAIL_NOTFOUND, /* no matching function */
FUNCDETAIL_MULTIPLE, /* too many matching functions */
FUNCDETAIL_NORMAL, /* found a matching regular function */
! FUNCDETAIL_AGG_OR_WFUNC, /* found a matching aggregate or window function */
FUNCDETAIL_COERCION /* it's a type coercion request */
} FuncDetailCode;
***************
*** 44,55 **** typedef enum
extern Node *ParseFuncOrColumn(ParseState *pstate,
List *funcname, List *fargs,
bool agg_star, bool agg_distinct, bool func_variadic,
! bool is_column, int location);
extern FuncDetailCode func_get_detail(List *funcname, List *fargs,
int nargs, Oid *argtypes, bool expand_variadic,
Oid *funcid, Oid *rettype,
! bool *retset, int *nvargs, Oid **true_typeids,
List **argdefaults);
extern int func_match_argtypes(int nargs,
--- 44,56 ----
extern Node *ParseFuncOrColumn(ParseState *pstate,
List *funcname, List *fargs,
bool agg_star, bool agg_distinct, bool func_variadic,
! bool is_column, WindowDef *win_def, int location);
extern FuncDetailCode func_get_detail(List *funcname, List *fargs,
int nargs, Oid *argtypes, bool expand_variadic,
Oid *funcid, Oid *rettype,
! bool *retset, int *nvargs,
! bool *isagg, bool *iswfunc, Oid **true_typeids,
List **argdefaults);
extern int func_match_argtypes(int nargs,
*** a/src/include/parser/parse_node.h
--- b/src/include/parser/parse_node.h
***************
*** 89,94 **** typedef struct ParseState
--- 89,96 ----
bool p_is_update;
Relation p_target_relation;
RangeTblEntry *p_target_rangetblentry;
+ List *p_windef_list;
+ bool p_hasWindow;
} ParseState;
/* Support for parser_errposition_callback function */
*** a/src/include/rewrite/rewriteManip.h
--- b/src/include/rewrite/rewriteManip.h
***************
*** 38,43 **** extern void AddInvertedQual(Query *parsetree, Node *qual);
--- 38,44 ----
extern bool contain_aggs_of_level(Node *node, int levelsup);
extern int locate_agg_of_level(Node *node, int levelsup);
extern bool checkExprHasAggs(Node *node);
+ extern bool checkExprHasWindowFuncs(Node *node);
extern bool checkExprHasSubLink(Node *node);
extern Node *ResolveNew(Node *node, int target_varno, int sublevels_up,
*** a/src/include/utils/builtins.h
--- b/src/include/utils/builtins.h
***************
*** 976,981 **** extern Datum uuid_ne(PG_FUNCTION_ARGS);
--- 976,996 ----
extern Datum uuid_cmp(PG_FUNCTION_ARGS);
extern Datum uuid_hash(PG_FUNCTION_ARGS);
+ /* wfunc.c */
+ extern Datum row_number(PG_FUNCTION_ARGS);
+ extern Datum rank(PG_FUNCTION_ARGS);
+ extern Datum dense_rank(PG_FUNCTION_ARGS);
+ extern Datum percent_rank(PG_FUNCTION_ARGS);
+ extern Datum cume_dist(PG_FUNCTION_ARGS);
+ extern Datum ntile(PG_FUNCTION_ARGS);
+ extern Datum lag(PG_FUNCTION_ARGS);
+ extern Datum lag_withdefault(PG_FUNCTION_ARGS);
+ extern Datum lead(PG_FUNCTION_ARGS);
+ extern Datum lead_withdefault(PG_FUNCTION_ARGS);
+ extern Datum first_value(PG_FUNCTION_ARGS);
+ extern Datum last_value(PG_FUNCTION_ARGS);
+ extern Datum nth_value(PG_FUNCTION_ARGS);
+
/* access/transam/twophase.c */
extern Datum pg_prepared_xact(PG_FUNCTION_ARGS);
*** a/src/include/utils/errcodes.h
--- b/src/include/utils/errcodes.h
***************
*** 246,251 ****
--- 246,252 ----
#define ERRCODE_INSUFFICIENT_PRIVILEGE MAKE_SQLSTATE('4','2', '5','0','1')
#define ERRCODE_CANNOT_COERCE MAKE_SQLSTATE('4','2', '8','4','6')
#define ERRCODE_GROUPING_ERROR MAKE_SQLSTATE('4','2', '8','0','3')
+ #define ERRCODE_WINDOWING_ERROR MAKE_SQLSTATE('4','2', 'P','3','6')
#define ERRCODE_INVALID_RECURSION MAKE_SQLSTATE('4','2', 'P','1','9')
#define ERRCODE_INVALID_FOREIGN_KEY MAKE_SQLSTATE('4','2', '8','3','0')
#define ERRCODE_INVALID_NAME MAKE_SQLSTATE('4','2', '6','0','2')
*** a/src/include/utils/tuplestore.h
--- b/src/include/utils/tuplestore.h
***************
*** 72,77 **** extern bool tuplestore_advance(Tuplestorestate *state, bool forward);
--- 72,79 ----
extern bool tuplestore_ateof(Tuplestorestate *state);
+ extern bool tuplestore_in_memory(Tuplestorestate *state);
+
extern void tuplestore_rescan(Tuplestorestate *state);
extern void tuplestore_clear(Tuplestorestate *state);
*** a/src/pl/plpgsql/src/plerrcodes.h
--- b/src/pl/plpgsql/src/plerrcodes.h
***************
*** 484,489 ****
--- 484,493 ----
},
{
+ "windowing_error", ERRCODE_WINDOWING_ERROR
+ },
+
+ {
"invalid_recursion", ERRCODE_INVALID_RECURSION
},
*** a/src/test/regress/expected/opr_sanity.out
--- b/src/test/regress/expected/opr_sanity.out
***************
*** 1124,1126 **** WHERE p1.amproc = p2.oid AND
--- 1124,1148 ----
--------------+--------+--------
(0 rows)
+ -- Currently proiswfunc field is only set in pg_proc.h.
+ -- Any other than SQL spec builtin functions must not mark it.
+ SELECT oid, proname FROM pg_proc WHERE proiswfunc;
+ oid | proname
+ ------+--------------
+ 3898 | row_number
+ 3899 | rank
+ 3900 | dense_rank
+ 3901 | percent_rank
+ 3902 | cume_dist
+ 3903 | ntile
+ 3904 | lag
+ 3905 | lag
+ 3906 | lag
+ 3907 | lead
+ 3908 | lead
+ 3909 | lead
+ 3910 | first_value
+ 3911 | last_value
+ 3912 | nth_value
+ (15 rows)
+
*** /dev/null
--- b/src/test/regress/expected/window.out
***************
*** 0 ****
--- 1,666 ----
+ --
+ -- WINDOW FUNCTIONS
+ --
+ CREATE TEMPORARY TABLE empsalary (
+ depname varchar,
+ empno bigint,
+ salary int,
+ enroll_date date
+ );
+ INSERT INTO empsalary VALUES
+ ('develop', 10, 5200, '2007-08-01'),
+ ('sales', 1, 5000, '2006-10-01'),
+ ('personnel', 5, 3500, '2007-12-10'),
+ ('sales', 4, 4800, '2007-08-08'),
+ ('personnel', 2, 3900, '2006-12-23'),
+ ('develop', 7, 4200, '2008-01-01'),
+ ('develop', 9, 4500, '2008-01-01'),
+ ('sales', 3, 4800, '2007-08-01'),
+ ('develop', 8, 6000, '2006-10-01'),
+ ('develop', 11, 5200, '2007-08-15');
+ SELECT depname, empno, salary, sum(salary) OVER (PARTITION BY depname) FROM empsalary ORDER BY depname, salary;
+ depname | empno | salary | sum
+ -----------+-------+--------+-------
+ develop | 7 | 4200 | 25100
+ develop | 9 | 4500 | 25100
+ develop | 11 | 5200 | 25100
+ develop | 10 | 5200 | 25100
+ develop | 8 | 6000 | 25100
+ personnel | 5 | 3500 | 7400
+ personnel | 2 | 3900 | 7400
+ sales | 3 | 4800 | 14600
+ sales | 4 | 4800 | 14600
+ sales | 1 | 5000 | 14600
+ (10 rows)
+
+ SELECT depname, empno, salary, rank() OVER (PARTITION BY depname ORDER BY salary) FROM empsalary;
+ depname | empno | salary | rank
+ -----------+-------+--------+------
+ develop | 7 | 4200 | 1
+ develop | 9 | 4500 | 2
+ develop | 11 | 5200 | 3
+ develop | 10 | 5200 | 3
+ develop | 8 | 6000 | 5
+ personnel | 5 | 3500 | 1
+ personnel | 2 | 3900 | 2
+ sales | 3 | 4800 | 1
+ sales | 4 | 4800 | 1
+ sales | 1 | 5000 | 3
+ (10 rows)
+
+ -- with GROUP BY
+ SELECT four, ten, SUM(SUM(four)) OVER (PARTITION BY four), AVG(ten) FROM tenk1
+ GROUP BY four, ten ORDER BY four, ten;
+ four | ten | sum | avg
+ ------+-----+------+------------------------
+ 0 | 0 | 0 | 0.00000000000000000000
+ 0 | 2 | 0 | 2.0000000000000000
+ 0 | 4 | 0 | 4.0000000000000000
+ 0 | 6 | 0 | 6.0000000000000000
+ 0 | 8 | 0 | 8.0000000000000000
+ 1 | 1 | 2500 | 1.00000000000000000000
+ 1 | 3 | 2500 | 3.0000000000000000
+ 1 | 5 | 2500 | 5.0000000000000000
+ 1 | 7 | 2500 | 7.0000000000000000
+ 1 | 9 | 2500 | 9.0000000000000000
+ 2 | 0 | 5000 | 0.00000000000000000000
+ 2 | 2 | 5000 | 2.0000000000000000
+ 2 | 4 | 5000 | 4.0000000000000000
+ 2 | 6 | 5000 | 6.0000000000000000
+ 2 | 8 | 5000 | 8.0000000000000000
+ 3 | 1 | 7500 | 1.00000000000000000000
+ 3 | 3 | 7500 | 3.0000000000000000
+ 3 | 5 | 7500 | 5.0000000000000000
+ 3 | 7 | 7500 | 7.0000000000000000
+ 3 | 9 | 7500 | 9.0000000000000000
+ (20 rows)
+
+ SELECT depname, empno, salary, sum(salary) OVER w FROM empsalary WINDOW w AS (PARTITION BY depname);
+ depname | empno | salary | sum
+ -----------+-------+--------+-------
+ develop | 11 | 5200 | 25100
+ develop | 7 | 4200 | 25100
+ develop | 9 | 4500 | 25100
+ develop | 8 | 6000 | 25100
+ develop | 10 | 5200 | 25100
+ personnel | 5 | 3500 | 7400
+ personnel | 2 | 3900 | 7400
+ sales | 3 | 4800 | 14600
+ sales | 1 | 5000 | 14600
+ sales | 4 | 4800 | 14600
+ (10 rows)
+
+ SELECT depname, empno, salary, rank() OVER w FROM empsalary WINDOW w AS (PARTITION BY depname ORDER BY salary) ORDER BY rank() OVER w;
+ depname | empno | salary | rank
+ -----------+-------+--------+------
+ develop | 7 | 4200 | 1
+ personnel | 5 | 3500 | 1
+ sales | 3 | 4800 | 1
+ sales | 4 | 4800 | 1
+ personnel | 2 | 3900 | 2
+ develop | 9 | 4500 | 2
+ sales | 1 | 5000 | 3
+ develop | 11 | 5200 | 3
+ develop | 10 | 5200 | 3
+ develop | 8 | 6000 | 5
+ (10 rows)
+
+ -- empty Window specification
+ SELECT COUNT(*) OVER () FROM tenk1 WHERE unique2 < 10;
+ count
+ -------
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ (10 rows)
+
+ SELECT COUNT(*) OVER w FROM tenk1 WHERE unique2 < 10 WINDOW w AS ();
+ count
+ -------
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ (10 rows)
+
+ -- no Window operation
+ SELECT four FROM tenk1 WHERE FALSE WINDOW w AS (PARTITION BY ten);
+ four
+ ------
+ (0 rows)
+
+ -- cumulative aggregate
+ SELECT sum(four) OVER (PARTITION BY ten ORDER BY unique2) AS sum_1, ten, four FROM tenk1 WHERE unique2 < 10;
+ sum_1 | ten | four
+ -------+-----+------
+ 0 | 0 | 0
+ 0 | 0 | 0
+ 2 | 0 | 2
+ 3 | 1 | 3
+ 4 | 1 | 1
+ 5 | 1 | 1
+ 3 | 3 | 3
+ 0 | 4 | 0
+ 1 | 7 | 1
+ 1 | 9 | 1
+ (10 rows)
+
+ SELECT row_number() OVER (ORDER BY unique2) FROM tenk1 WHERE unique2 < 10;
+ row_number
+ ------------
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ (10 rows)
+
+ SELECT rank() OVER (PARTITION BY four ORDER BY ten) AS rank_1, ten, four FROM tenk1 WHERE unique2 < 10;
+ rank_1 | ten | four
+ --------+-----+------
+ 1 | 0 | 0
+ 1 | 0 | 0
+ 3 | 4 | 0
+ 1 | 1 | 1
+ 1 | 1 | 1
+ 3 | 7 | 1
+ 4 | 9 | 1
+ 1 | 0 | 2
+ 1 | 1 | 3
+ 2 | 3 | 3
+ (10 rows)
+
+ SELECT dense_rank() OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+ dense_rank | ten | four
+ ------------+-----+------
+ 1 | 0 | 0
+ 1 | 0 | 0
+ 2 | 4 | 0
+ 1 | 1 | 1
+ 1 | 1 | 1
+ 2 | 7 | 1
+ 3 | 9 | 1
+ 1 | 0 | 2
+ 1 | 1 | 3
+ 2 | 3 | 3
+ (10 rows)
+
+ SELECT percent_rank() OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+ percent_rank | ten | four
+ -------------------+-----+------
+ 0 | 0 | 0
+ 0 | 0 | 0
+ 1 | 4 | 0
+ 0 | 1 | 1
+ 0 | 1 | 1
+ 0.666666666666667 | 7 | 1
+ 1 | 9 | 1
+ 0 | 0 | 2
+ 0 | 1 | 3
+ 1 | 3 | 3
+ (10 rows)
+
+ SELECT cume_dist() OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+ cume_dist | ten | four
+ -------------------+-----+------
+ 0.666666666666667 | 0 | 0
+ 0.666666666666667 | 0 | 0
+ 1 | 4 | 0
+ 0.5 | 1 | 1
+ 0.5 | 1 | 1
+ 0.75 | 7 | 1
+ 1 | 9 | 1
+ 1 | 0 | 2
+ 0.5 | 1 | 3
+ 1 | 3 | 3
+ (10 rows)
+
+ SELECT ntile(3) OVER (ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+ ntile | ten | four
+ -------+-----+------
+ 1 | 0 | 0
+ 1 | 0 | 2
+ 1 | 0 | 0
+ 1 | 1 | 1
+ 2 | 1 | 3
+ 2 | 1 | 1
+ 2 | 3 | 3
+ 3 | 4 | 0
+ 3 | 7 | 1
+ 3 | 9 | 1
+ (10 rows)
+
+ SELECT ntile(NULL) OVER (ORDER BY ten), ten, four FROM tenk1 LIMIT 1;
+ ntile | ten | four
+ -------+-----+------
+ | 0 | 0
+ (1 row)
+
+ SELECT lag(ten) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+ lag | ten | four
+ -----+-----+------
+ | 0 | 0
+ 0 | 0 | 0
+ 0 | 4 | 0
+ | 1 | 1
+ 1 | 1 | 1
+ 1 | 7 | 1
+ 7 | 9 | 1
+ | 0 | 2
+ | 1 | 3
+ 1 | 3 | 3
+ (10 rows)
+
+ SELECT lag(ten, four) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+ lag | ten | four
+ -----+-----+------
+ 0 | 0 | 0
+ 0 | 0 | 0
+ 4 | 4 | 0
+ | 1 | 1
+ 1 | 1 | 1
+ 1 | 7 | 1
+ 7 | 9 | 1
+ | 0 | 2
+ | 1 | 3
+ | 3 | 3
+ (10 rows)
+
+ SELECT lag(ten, four, 0) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+ lag | ten | four
+ -----+-----+------
+ 0 | 0 | 0
+ 0 | 0 | 0
+ 4 | 4 | 0
+ 0 | 1 | 1
+ 1 | 1 | 1
+ 1 | 7 | 1
+ 7 | 9 | 1
+ 0 | 0 | 2
+ 0 | 1 | 3
+ 0 | 3 | 3
+ (10 rows)
+
+ SELECT lead(ten) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+ lead | ten | four
+ ------+-----+------
+ 0 | 0 | 0
+ 4 | 0 | 0
+ | 4 | 0
+ 1 | 1 | 1
+ 7 | 1 | 1
+ 9 | 7 | 1
+ | 9 | 1
+ | 0 | 2
+ 3 | 1 | 3
+ | 3 | 3
+ (10 rows)
+
+ SELECT lead(ten * 2, 1) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+ lead | ten | four
+ ------+-----+------
+ 0 | 0 | 0
+ 8 | 0 | 0
+ | 4 | 0
+ 2 | 1 | 1
+ 14 | 1 | 1
+ 18 | 7 | 1
+ | 9 | 1
+ | 0 | 2
+ 6 | 1 | 3
+ | 3 | 3
+ (10 rows)
+
+ SELECT lead(ten * 2, 1, -1) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+ lead | ten | four
+ ------+-----+------
+ 0 | 0 | 0
+ 8 | 0 | 0
+ -1 | 4 | 0
+ 2 | 1 | 1
+ 14 | 1 | 1
+ 18 | 7 | 1
+ -1 | 9 | 1
+ -1 | 0 | 2
+ 6 | 1 | 3
+ -1 | 3 | 3
+ (10 rows)
+
+ SELECT first_value(ten) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+ first_value | ten | four
+ -------------+-----+------
+ 0 | 0 | 0
+ 0 | 0 | 0
+ 0 | 4 | 0
+ 1 | 1 | 1
+ 1 | 1 | 1
+ 1 | 7 | 1
+ 1 | 9 | 1
+ 0 | 0 | 2
+ 1 | 1 | 3
+ 1 | 3 | 3
+ (10 rows)
+
+ -- last_value returns the last row of the frame, which is CURRENT ROW in ORDER BY window.
+ SELECT last_value(four) OVER (ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+ last_value | ten | four
+ ------------+-----+------
+ 0 | 0 | 0
+ 0 | 0 | 2
+ 0 | 0 | 0
+ 1 | 1 | 1
+ 1 | 1 | 3
+ 1 | 1 | 1
+ 3 | 3 | 3
+ 0 | 4 | 0
+ 1 | 7 | 1
+ 1 | 9 | 1
+ (10 rows)
+
+ SELECT last_value(ten) OVER (PARTITION BY four), ten, four FROM
+ (SELECT * FROM tenk1 WHERE unique2 < 10 ORDER BY four, ten)s
+ ORDER BY four, ten;
+ last_value | ten | four
+ ------------+-----+------
+ 4 | 0 | 0
+ 4 | 0 | 0
+ 4 | 4 | 0
+ 9 | 1 | 1
+ 9 | 1 | 1
+ 9 | 7 | 1
+ 9 | 9 | 1
+ 0 | 0 | 2
+ 3 | 1 | 3
+ 3 | 3 | 3
+ (10 rows)
+
+ SELECT nth_value(ten, four + 1) OVER (PARTITION BY four), ten, four
+ FROM (SELECT * FROM tenk1 WHERE unique2 < 10 ORDER BY four, ten)s;
+ nth_value | ten | four
+ -----------+-----+------
+ 0 | 0 | 0
+ 0 | 0 | 0
+ 0 | 4 | 0
+ 1 | 1 | 1
+ 1 | 1 | 1
+ 1 | 7 | 1
+ 1 | 9 | 1
+ | 0 | 2
+ | 1 | 3
+ | 3 | 3
+ (10 rows)
+
+ SELECT ten, two, sum(hundred) AS gsum, sum(sum(hundred)) OVER (PARTITION BY two ORDER BY ten) AS wsum
+ FROM tenk1 GROUP BY ten, two;
+ ten | two | gsum | wsum
+ -----+-----+-------+--------
+ 0 | 0 | 45000 | 45000
+ 2 | 0 | 47000 | 92000
+ 4 | 0 | 49000 | 141000
+ 6 | 0 | 51000 | 192000
+ 8 | 0 | 53000 | 245000
+ 1 | 1 | 46000 | 46000
+ 3 | 1 | 48000 | 94000
+ 5 | 1 | 50000 | 144000
+ 7 | 1 | 52000 | 196000
+ 9 | 1 | 54000 | 250000
+ (10 rows)
+
+ SELECT count(*) OVER (PARTITION BY four), four FROM (SELECT * FROM tenk1 WHERE two = 1)s WHERE unique2 < 10;
+ count | four
+ -------+------
+ 4 | 1
+ 4 | 1
+ 4 | 1
+ 4 | 1
+ 2 | 3
+ 2 | 3
+ (6 rows)
+
+ SELECT (count(*) OVER (PARTITION BY four ORDER BY ten) +
+ sum(hundred) OVER (PARTITION BY four ORDER BY ten))::varchar AS cntsum
+ FROM tenk1 WHERE unique2 < 10;
+ cntsum
+ --------
+ 22
+ 22
+ 87
+ 24
+ 24
+ 82
+ 92
+ 51
+ 92
+ 136
+ (10 rows)
+
+ -- opexpr with different windows evaluation.
+ SELECT * FROM(
+ SELECT count(*) OVER (PARTITION BY four ORDER BY ten) +
+ sum(hundred) OVER (PARTITION BY two ORDER BY ten) AS total,
+ count(*) OVER (PARTITION BY four ORDER BY ten) AS fourcount,
+ sum(hundred) OVER (PARTITION BY two ORDER BY ten) AS twosum
+ FROM tenk1
+ )sub
+ WHERE total <> fourcount + twosum;
+ total | fourcount | twosum
+ -------+-----------+--------
+ (0 rows)
+
+ SELECT avg(four) OVER (PARTITION BY four ORDER BY thousand / 100) FROM tenk1 WHERE unique2 < 10;
+ avg
+ ------------------------
+ 0.00000000000000000000
+ 0.00000000000000000000
+ 0.00000000000000000000
+ 1.00000000000000000000
+ 1.00000000000000000000
+ 1.00000000000000000000
+ 1.00000000000000000000
+ 2.0000000000000000
+ 3.0000000000000000
+ 3.0000000000000000
+ (10 rows)
+
+ SELECT ten, two, sum(hundred) AS gsum, sum(sum(hundred)) OVER win AS wsum
+ FROM tenk1 GROUP BY ten, two WINDOW win AS (PARTITION BY two ORDER BY ten);
+ ten | two | gsum | wsum
+ -----+-----+-------+--------
+ 0 | 0 | 45000 | 45000
+ 2 | 0 | 47000 | 92000
+ 4 | 0 | 49000 | 141000
+ 6 | 0 | 51000 | 192000
+ 8 | 0 | 53000 | 245000
+ 1 | 1 | 46000 | 46000
+ 3 | 1 | 48000 | 94000
+ 5 | 1 | 50000 | 144000
+ 7 | 1 | 52000 | 196000
+ 9 | 1 | 54000 | 250000
+ (10 rows)
+
+ -- more than a window with GROUP BY
+ SELECT sum(salary),
+ row_number() OVER (ORDER BY depname),
+ sum(sum(salary)) OVER (ORDER BY depname DESC) FROM empsalary GROUP BY depname;
+ sum | row_number | sum
+ -------+------------+-------
+ 14600 | 3 | 14600
+ 7400 | 2 | 22000
+ 25100 | 1 | 47100
+ (3 rows)
+
+ -- identical windows with different names
+ SELECT sum(salary) OVER w1, count(*) OVER w2 FROM empsalary WINDOW w1 AS (ORDER BY salary), w2 AS (ORDER BY salary);
+ sum | count
+ -------+-------
+ 3500 | 1
+ 7400 | 2
+ 11600 | 3
+ 16100 | 4
+ 25700 | 6
+ 25700 | 6
+ 30700 | 7
+ 41100 | 9
+ 41100 | 9
+ 47100 | 10
+ (10 rows)
+
+ -- subplan
+ SELECT lead(ten, (SELECT two FROM tenk1 WHERE s.unique2 = unique2)) OVER (PARTITION BY four ORDER BY ten)
+ FROM tenk1 s WHERE unique2 < 10;
+ lead
+ ------
+ 0
+ 0
+ 4
+ 1
+ 7
+ 9
+
+ 0
+ 3
+
+ (10 rows)
+
+ -- empty table
+ SELECT count(*) OVER (PARTITION BY four) FROM (SELECT * FROM tenk1 WHERE FALSE)s;
+ count
+ -------
+ (0 rows)
+
+ -- mixture of agg/wfunc in the same window
+ SELECT sum(salary) OVER w, rank() OVER w FROM empsalary WINDOW w AS (PARTITION BY depname ORDER BY salary DESC);
+ sum | rank
+ -------+------
+ 6000 | 1
+ 16400 | 2
+ 16400 | 2
+ 20900 | 4
+ 25100 | 5
+ 3900 | 1
+ 7400 | 2
+ 5000 | 1
+ 14600 | 2
+ 14600 | 2
+ (10 rows)
+
+ -- strict aggs
+ SELECT empno, depname, salary, bonus, depadj, MIN(bonus) OVER (ORDER BY empno), MAX(depadj) OVER () FROM(
+ SELECT *,
+ CASE WHEN enroll_date < '2008-01-01' THEN 2008 - extract(YEAR FROM enroll_date) END * 500 AS bonus,
+ CASE WHEN
+ AVG(salary) OVER (PARTITION BY depname) < salary
+ THEN 200 END AS depadj FROM empsalary
+ )s;
+ empno | depname | salary | bonus | depadj | min | max
+ -------+-----------+--------+-------+--------+------+-----
+ 1 | sales | 5000 | 1000 | 200 | 1000 | 200
+ 2 | personnel | 3900 | 1000 | 200 | 1000 | 200
+ 3 | sales | 4800 | 500 | | 500 | 200
+ 4 | sales | 4800 | 500 | | 500 | 200
+ 5 | personnel | 3500 | 500 | | 500 | 200
+ 7 | develop | 4200 | | | 500 | 200
+ 8 | develop | 6000 | 1000 | 200 | 500 | 200
+ 9 | develop | 4500 | | | 500 | 200
+ 10 | develop | 5200 | 500 | 200 | 500 | 200
+ 11 | develop | 5200 | 500 | 200 | 500 | 200
+ (10 rows)
+
+ -- with UNION
+ SELECT count(*) OVER (PARTITION BY four) FROM (SELECT * FROM tenk1 UNION ALL SELECT * FROM tenk2)s LIMIT 0;
+ count
+ -------
+ (0 rows)
+
+ -- via a VIEW
+ CREATE TEMPORARY VIEW vsumsalary AS
+ SELECT SUM(salary) OVER (PARTITION BY depname) FROM empsalary;
+ SELECT * FROM vsumsalary;
+ sum
+ -------
+ 25100
+ 25100
+ 25100
+ 25100
+ 25100
+ 7400
+ 7400
+ 14600
+ 14600
+ 14600
+ (10 rows)
+
+ SELECT rank() OVER (ORDER BY length('abc'));
+ rank
+ ------
+ 1
+ (1 row)
+
+ SELECT rank() OVER (ORDER BY 1);
+ rank
+ ------
+ 1
+ (1 row)
+
+ -- errors
+ SELECT * FROM empsalary WHERE row_number() OVER (ORDER BY salary) < 10;
+ ERROR: window functions not allowed in WHERE clause
+ SELECT * FROM empsalary INNER JOIN tenk1 ON row_number() OVER (ORDER BY salary) < 10;
+ ERROR: window functions not allowed in JOIN conditions
+ SELECT rank() OVER (ORDER BY 1), count(*) FROM empsalary GROUP BY 1;
+ ERROR: window functions not allowed in GROUP BY clause
+ SELECT * FROM rank() OVER (ORDER BY random());
+ ERROR: cannot use window function in function expression in FROM
+ DELETE FROM empsalary RETURNING rank() OVER (ORDER BY random());
+ ERROR: cannot use window function in RETURNING
+ SELECT count(*) OVER w FROM tenk1 WINDOW w AS (ORDER BY unique1), w AS (ORDER BY unique1);
+ ERROR: window name(w) is ambiguous
+ SELECT count(*) OVER (PARTITION BY four ROWS UNBOUNDED PRECEDING) FROM tenk1;
+ ERROR: ROWS/RANGE clause of window functions not yet implemented
+ SELECT count(*) OVER (PARTITION BY four RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM tenk1;
+ ERROR: ROWS/RANGE clause of window functions not yet implemented
+ SELECT count(*) OVER (PARTITION BY four RANGES UNBOUNDED PRECEDING) FROM tenk1;
+ ERROR: syntax error at or near "RANGES"
+ LINE 1: SELECT count(*) OVER (PARTITION BY four RANGES UNBOUNDED PRE...
+ ^
+ SELECT count(*) OVER (PARTITION BY four ROW UNBOUNDED PRECEDING) FROM tenk1;
+ ERROR: syntax error at or near "ROW"
+ LINE 1: SELECT count(*) OVER (PARTITION BY four ROW UNBOUNDED PRECED...
+ ^
+ SELECT rank() OVER (PARTITION BY four, ORDER BY ten) FROM tenk1;
+ ERROR: syntax error at or near "ORDER"
+ LINE 1: SELECT rank() OVER (PARTITION BY four, ORDER BY ten) FROM te...
+ ^
+ SELECT count() OVER () FROM tenk1;
+ ERROR: count(*) must be used to call a parameterless aggregate function
+ LINE 1: SELECT count() OVER () FROM tenk1;
+ ^
+ SELECT generate_series(1, 100) OVER () FROM empsalary;
+ ERROR: generate_series is not a window function nor an aggregate function
+ LINE 1: SELECT generate_series(1, 100) OVER () FROM empsalary;
+ ^
+ SELECT ntile(0) OVER (ORDER BY ten), ten, four FROM tenk1;
+ ERROR: negative or zero ntile argument not allowed
+ SELECT nth_value(four, 0) OVER (ORDER BY ten), ten, four FROM tenk1;
+ ERROR: negative or zero nth_value argument not allowed
+ -- cleanup
+ DROP VIEW vsumsalary;
+ DROP TABLE empsalary;
*** a/src/test/regress/parallel_schedule
--- b/src/test/regress/parallel_schedule
***************
*** 83,89 **** test: select_views portals_p2 rules foreign_key cluster dependency guc bitmapops
# Another group of parallel tests
# ----------
# "plpgsql" cannot run concurrently with "rules", nor can "plancache"
! test: plancache limit plpgsql copy2 temp domain rangefuncs prepare without_oid conversion truncate alter_table sequence polymorphism rowtypes returning largeobject with xml
# run stats by itself because its delay may be insufficient under heavy load
test: stats
--- 83,89 ----
# Another group of parallel tests
# ----------
# "plpgsql" cannot run concurrently with "rules", nor can "plancache"
! test: plancache limit plpgsql copy2 temp domain rangefuncs prepare without_oid conversion truncate alter_table sequence polymorphism rowtypes returning largeobject with xml window
# run stats by itself because its delay may be insufficient under heavy load
test: stats
*** a/src/test/regress/serial_schedule
--- b/src/test/regress/serial_schedule
***************
*** 119,121 **** test: with
--- 119,122 ----
test: xml
test: stats
test: tablespace
+ test: window
*** a/src/test/regress/sql/create_table.sql
--- b/src/test/regress/sql/create_table.sql
***************
*** 236,239 **** CREATE TABLE test_tsvector(
t text,
a tsvector
);
-
--- 236,238 ----
*** a/src/test/regress/sql/opr_sanity.sql
--- b/src/test/regress/sql/opr_sanity.sql
***************
*** 897,899 **** FROM pg_amproc AS p1, pg_proc AS p2
--- 897,903 ----
WHERE p1.amproc = p2.oid AND
p1.amproclefttype != p1.amprocrighttype AND
p2.provolatile = 'v';
+
+ -- Currently proiswfunc field is only set in pg_proc.h.
+ -- Any other than SQL spec builtin functions must not mark it.
+ SELECT oid, proname FROM pg_proc WHERE proiswfunc;
*** /dev/null
--- b/src/test/regress/sql/window.sql
***************
*** 0 ****
--- 1,179 ----
+ --
+ -- WINDOW FUNCTIONS
+ --
+ CREATE TEMPORARY TABLE empsalary (
+ depname varchar,
+ empno bigint,
+ salary int,
+ enroll_date date
+ );
+ INSERT INTO empsalary VALUES
+ ('develop', 10, 5200, '2007-08-01'),
+ ('sales', 1, 5000, '2006-10-01'),
+ ('personnel', 5, 3500, '2007-12-10'),
+ ('sales', 4, 4800, '2007-08-08'),
+ ('personnel', 2, 3900, '2006-12-23'),
+ ('develop', 7, 4200, '2008-01-01'),
+ ('develop', 9, 4500, '2008-01-01'),
+ ('sales', 3, 4800, '2007-08-01'),
+ ('develop', 8, 6000, '2006-10-01'),
+ ('develop', 11, 5200, '2007-08-15');
+
+ SELECT depname, empno, salary, sum(salary) OVER (PARTITION BY depname) FROM empsalary ORDER BY depname, salary;
+
+ SELECT depname, empno, salary, rank() OVER (PARTITION BY depname ORDER BY salary) FROM empsalary;
+
+ -- with GROUP BY
+ SELECT four, ten, SUM(SUM(four)) OVER (PARTITION BY four), AVG(ten) FROM tenk1
+ GROUP BY four, ten ORDER BY four, ten;
+
+ SELECT depname, empno, salary, sum(salary) OVER w FROM empsalary WINDOW w AS (PARTITION BY depname);
+
+ SELECT depname, empno, salary, rank() OVER w FROM empsalary WINDOW w AS (PARTITION BY depname ORDER BY salary) ORDER BY rank() OVER w;
+
+ -- empty Window specification
+ SELECT COUNT(*) OVER () FROM tenk1 WHERE unique2 < 10;
+
+ SELECT COUNT(*) OVER w FROM tenk1 WHERE unique2 < 10 WINDOW w AS ();
+
+ -- no Window operation
+ SELECT four FROM tenk1 WHERE FALSE WINDOW w AS (PARTITION BY ten);
+
+ -- cumulative aggregate
+ SELECT sum(four) OVER (PARTITION BY ten ORDER BY unique2) AS sum_1, ten, four FROM tenk1 WHERE unique2 < 10;
+
+ SELECT row_number() OVER (ORDER BY unique2) FROM tenk1 WHERE unique2 < 10;
+
+ SELECT rank() OVER (PARTITION BY four ORDER BY ten) AS rank_1, ten, four FROM tenk1 WHERE unique2 < 10;
+
+ SELECT dense_rank() OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+
+ SELECT percent_rank() OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+
+ SELECT cume_dist() OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+
+ SELECT ntile(3) OVER (ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+
+ SELECT ntile(NULL) OVER (ORDER BY ten), ten, four FROM tenk1 LIMIT 1;
+
+ SELECT lag(ten) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+
+ SELECT lag(ten, four) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+
+ SELECT lag(ten, four, 0) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+
+ SELECT lead(ten) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+
+ SELECT lead(ten * 2, 1) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+
+ SELECT lead(ten * 2, 1, -1) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+
+ SELECT first_value(ten) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+
+ -- last_value returns the last row of the frame, which is CURRENT ROW in ORDER BY window.
+ SELECT last_value(four) OVER (ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10;
+
+ SELECT last_value(ten) OVER (PARTITION BY four), ten, four FROM
+ (SELECT * FROM tenk1 WHERE unique2 < 10 ORDER BY four, ten)s
+ ORDER BY four, ten;
+
+ SELECT nth_value(ten, four + 1) OVER (PARTITION BY four), ten, four
+ FROM (SELECT * FROM tenk1 WHERE unique2 < 10 ORDER BY four, ten)s;
+
+ SELECT ten, two, sum(hundred) AS gsum, sum(sum(hundred)) OVER (PARTITION BY two ORDER BY ten) AS wsum
+ FROM tenk1 GROUP BY ten, two;
+
+ SELECT count(*) OVER (PARTITION BY four), four FROM (SELECT * FROM tenk1 WHERE two = 1)s WHERE unique2 < 10;
+
+ SELECT (count(*) OVER (PARTITION BY four ORDER BY ten) +
+ sum(hundred) OVER (PARTITION BY four ORDER BY ten))::varchar AS cntsum
+ FROM tenk1 WHERE unique2 < 10;
+
+ -- opexpr with different windows evaluation.
+ SELECT * FROM(
+ SELECT count(*) OVER (PARTITION BY four ORDER BY ten) +
+ sum(hundred) OVER (PARTITION BY two ORDER BY ten) AS total,
+ count(*) OVER (PARTITION BY four ORDER BY ten) AS fourcount,
+ sum(hundred) OVER (PARTITION BY two ORDER BY ten) AS twosum
+ FROM tenk1
+ )sub
+ WHERE total <> fourcount + twosum;
+
+ SELECT avg(four) OVER (PARTITION BY four ORDER BY thousand / 100) FROM tenk1 WHERE unique2 < 10;
+
+ SELECT ten, two, sum(hundred) AS gsum, sum(sum(hundred)) OVER win AS wsum
+ FROM tenk1 GROUP BY ten, two WINDOW win AS (PARTITION BY two ORDER BY ten);
+
+ -- more than a window with GROUP BY
+ SELECT sum(salary),
+ row_number() OVER (ORDER BY depname),
+ sum(sum(salary)) OVER (ORDER BY depname DESC) FROM empsalary GROUP BY depname;
+
+ -- identical windows with different names
+ SELECT sum(salary) OVER w1, count(*) OVER w2 FROM empsalary WINDOW w1 AS (ORDER BY salary), w2 AS (ORDER BY salary);
+
+ -- subplan
+ SELECT lead(ten, (SELECT two FROM tenk1 WHERE s.unique2 = unique2)) OVER (PARTITION BY four ORDER BY ten)
+ FROM tenk1 s WHERE unique2 < 10;
+
+ -- empty table
+ SELECT count(*) OVER (PARTITION BY four) FROM (SELECT * FROM tenk1 WHERE FALSE)s;
+
+ -- mixture of agg/wfunc in the same window
+ SELECT sum(salary) OVER w, rank() OVER w FROM empsalary WINDOW w AS (PARTITION BY depname ORDER BY salary DESC);
+
+ -- strict aggs
+ SELECT empno, depname, salary, bonus, depadj, MIN(bonus) OVER (ORDER BY empno), MAX(depadj) OVER () FROM(
+ SELECT *,
+ CASE WHEN enroll_date < '2008-01-01' THEN 2008 - extract(YEAR FROM enroll_date) END * 500 AS bonus,
+ CASE WHEN
+ AVG(salary) OVER (PARTITION BY depname) < salary
+ THEN 200 END AS depadj FROM empsalary
+ )s;
+
+ -- with UNION
+ SELECT count(*) OVER (PARTITION BY four) FROM (SELECT * FROM tenk1 UNION ALL SELECT * FROM tenk2)s LIMIT 0;
+
+ -- via a VIEW
+ CREATE TEMPORARY VIEW vsumsalary AS
+ SELECT SUM(salary) OVER (PARTITION BY depname) FROM empsalary;
+ SELECT * FROM vsumsalary;
+
+ SELECT rank() OVER (ORDER BY length('abc'));
+
+ SELECT rank() OVER (ORDER BY 1);
+
+ -- errors
+ SELECT * FROM empsalary WHERE row_number() OVER (ORDER BY salary) < 10;
+
+ SELECT * FROM empsalary INNER JOIN tenk1 ON row_number() OVER (ORDER BY salary) < 10;
+
+ SELECT rank() OVER (ORDER BY 1), count(*) FROM empsalary GROUP BY 1;
+
+ SELECT * FROM rank() OVER (ORDER BY random());
+
+ DELETE FROM empsalary RETURNING rank() OVER (ORDER BY random());
+
+ SELECT count(*) OVER w FROM tenk1 WINDOW w AS (ORDER BY unique1), w AS (ORDER BY unique1);
+
+ SELECT count(*) OVER (PARTITION BY four ROWS UNBOUNDED PRECEDING) FROM tenk1;
+
+ SELECT count(*) OVER (PARTITION BY four RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM tenk1;
+
+ SELECT count(*) OVER (PARTITION BY four RANGES UNBOUNDED PRECEDING) FROM tenk1;
+
+ SELECT count(*) OVER (PARTITION BY four ROW UNBOUNDED PRECEDING) FROM tenk1;
+
+ SELECT rank() OVER (PARTITION BY four, ORDER BY ten) FROM tenk1;
+
+ SELECT count() OVER () FROM tenk1;
+
+ SELECT generate_series(1, 100) OVER () FROM empsalary;
+
+ SELECT ntile(0) OVER (ORDER BY ten), ten, four FROM tenk1;
+
+ SELECT nth_value(four, 0) OVER (ORDER BY ten), ten, four FROM tenk1;
+
+ -- cleanup
+ DROP VIEW vsumsalary;
+ DROP TABLE empsalary;