*** a/doc/src/sgml/func.sgml --- b/doc/src/sgml/func.sgml *************** *** 10050,10055 **** SELECT count(*) FROM sometable; --- 10050,10286 ---- + + 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 default is specified and the target row is out + of the partition, default is returned. + + + + + + + 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 default is specified and the target row is out + of the partition, default is returned. + + + + + + + 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/keywords.sgml --- b/doc/src/sgml/keywords.sgml *************** *** 1510,1516 **** EXCLUDE ! non-reserved --- 1510,1516 ---- EXCLUDE ! non-reserved non-reserved *************** *** 2868,2874 **** OTHERS ! non-reserved --- 2868,2874 ---- OTHERS ! non-reserved non-reserved *************** *** 2896,2902 **** OVER ! reserved --- 2896,2902 ---- OVER ! reserved reserved *************** *** 3015,3021 **** PARTITION ! reserved --- 3015,3021 ---- PARTITION ! non-reserved reserved *************** *** 3106,3112 **** PRECEDING ! non-reserved --- 3106,3112 ---- PRECEDING ! reserved non-reserved *************** *** 3204,3210 **** RANGE ! reserved --- 3204,3210 ---- RANGE ! reserved reserved *************** *** 4128,4134 **** TIES ! non-reserved --- 4128,4134 ---- TIES ! non-reserved non-reserved *************** *** 4317,4323 **** UNBOUNDED ! non-reserved --- 4317,4323 ---- UNBOUNDED ! non-reserved non-reserved *************** *** 4590,4596 **** WINDOW ! reserved --- 4590,4596 ---- WINDOW ! reserved reserved *** 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,1017 ---- to be the same in all parts of the query. + + + The <literal>WINDOW</literal> Clauses + + + WINDOW + + + + windowing + + + + After WHERE and GROUP BY process, + rows might be windowed table, using the WINDOW + 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,970 ---- + + 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 expample 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 put in the SELECT list. + It is 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 togather 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 *************** *** 27,32 **** 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 } ] *************** *** 552,557 **** HAVING condition --- 553,590 ---- + + <literal>WINDOW</literal> 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. + + + <command>SELECT</command> List *** a/doc/src/sgml/syntax.sgml --- b/doc/src/sgml/syntax.sgml *************** *** 1539,1544 **** sqrt(2) --- 1539,1596 ---- + + 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. + + + + Windowed functions doesn't accept DISTINCT and ALL syntax, even though + the function is an aggregate function. + + + + Windowed functions are not placed in any of GROUP BY, HAVING and + WHERE clauses, which process values before any of the windows. If + there is need to qualify rows by the result of windowed functions, + whole of the query must be nested and append WHERE clause outer of + the current query. + + + Type Casts *** a/src/backend/catalog/pg_aggregate.c --- b/src/backend/catalog/pg_aggregate.c *************** *** 294,299 **** lookup_agg_function(List *fnName, --- 294,301 ---- Oid fnOid; bool retset; int nvargs; + bool isagg; + bool iswfunc; Oid *true_oid_array; FuncDetailCode fdresult; AclResult aclresult; *************** *** 308,313 **** lookup_agg_function(List *fnName, --- 310,316 ---- */ fdresult = func_get_detail(fnName, NIL, nargs, input_types, false, &fnOid, rettype, &retset, &nvargs, + &isagg, &iswfunc, &true_oid_array); /* 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 *************** *** 290,295 **** ProcedureCreate(const char *procedureName, --- 290,296 ---- 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 *************** *** 626,631 **** explain_outNode(StringInfo str, --- 626,634 ---- case T_Limit: pname = "Limit"; break; + case T_Window: + pname = "Window"; + break; case T_Hash: pname = "Hash"; break; *************** *** 912,917 **** explain_outNode(StringInfo str, --- 915,922 ---- 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/execGrouping.c --- b/src/backend/executor/execGrouping.c *************** *** 16,21 **** --- 16,22 ---- #include "executor/executor.h" #include "parser/parse_oper.h" + #include "utils/builtins.h" #include "utils/lsyscache.h" #include "utils/memutils.h" #include "utils/syscache.h" *************** *** 565,567 **** TupleHashTableMatch(const void *key1, const void *key2, Size keysize) --- 566,589 ---- else return 1; } + + /* + * GetAggInitVal + * return datum represented by textInitVal. + */ + 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; + } + *** 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 ExecEvalWFunc(WFuncExprState *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 ---- } /* ---------------------------------------------------------------- + * ExecEvalWFunc + * + * Returns a Datum whose value is the value of the precomputed + * window function found in the given expression context. + * + * Note: WFunc uses ecxt_aggvalues for stored result + * because Window node never contains Aggref node. + * ---------------------------------------------------------------- + */ + static Datum + ExecEvalWFunc(WFuncExprState *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 *************** *** 4126,4131 **** ExecInitExpr(Expr *node, PlanState *parent) --- 4153,4200 ---- state = (ExprState *) astate; } break; + case T_WFunc: + { + WFunc *wfunc = (WFunc *) node; + WFuncExprState *wfstate = makeNode(WFuncExprState); + + wfstate->xprstate.evalfunc = (ExprStateEvalFunc) ExecEvalWFunc; + 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->pure_agg) + 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; *** a/src/backend/executor/nodeAgg.c --- b/src/backend/executor/nodeAgg.c *************** *** 233,239 **** static AggHashEntry lookup_hash_entry(AggState *aggstate, static TupleTableSlot *agg_retrieve_direct(AggState *aggstate); static void agg_fill_hash_table(AggState *aggstate); static TupleTableSlot *agg_retrieve_hash_table(AggState *aggstate); - static Datum GetAggInitVal(Datum textInitVal, Oid transtype); /* --- 233,238 ---- *************** *** 1586,1607 **** ExecInitAgg(Agg *node, EState *estate, int eflags) return aggstate; } - 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; - } - int ExecCountSlotsAgg(Agg *node) { --- 1585,1590 ---- *** /dev/null --- b/src/backend/executor/nodeWindow.c *************** *** 0 **** --- 1,2254 ---- + /*------------------------------------------------------------------------- + * + * nodeWindow.c + * + * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * Window node evaluates only WFunc expression. Any other expressions are + * retrieved from the outer plan as Var or Const node. This is based on + * the fact window functions may evaluate those nodes more than once. + * The node collects rows into its WindowObject based on its row buffering + * strategy, which is classified into three; Row, Frame and Partition. + * Strategy requirement depends on types of desparate window functions. + * Each function declares somehow (currently macro in .c source code) which + * buffering is needed, decided by the usage of window function APIs. + * If a function chooses Row buffering, it is allowed to use WinRowXXX APIs + * and if Frame buffering, allowed to use WinRowXXX and WinFrameXXX, and if + * Partition buffering allowed to use WinRowXXX, WinFrameXXX and WinPartXXX. + * This mechanism avoids to store unused rows, which would be very expensive + * if the number of buffered rows got huge. + * + * The Row and Partition bufferings is relatively easy to operate, whereas + * Frame is hard because it may move within the partition. If the frame + * cuts off some preceding rows we call it "to shrink", and if the frame + * feeds in some following rows we call it "to extend". A moving frame + * moves shrinking and extending rows when the current row advances. + * + * A window function is defined as a function maked as wfunc in pg_proc. By this + * mark, it means the function can handle window function APIs that allow + * it to access arbitrary random rows within the window. + * + * 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. + * + * Currently Window node assume its input is sorted appropriately so it doesn't + * care sort operation. It may be optimized by HashTable or something, which + * is regarded as advanced challenges so we don't touch it for the first version. + * + * Note that the solid concept of the window functions is "they can access + * arbitrary rows within the frame as they want". As far as we keep the rule + * of thumb, any kind of optimization is allowed. + * + * IDENTIFICATION + * $Id$ + * + *------------------------------------------------------------------------- + */ + + #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; + } WindowStatePerAggData; + + typedef struct WindowStatePerGroupData + { + Datum transValue; /* current transition value */ + bool transValueIsNull; + + bool noTransValue; /* true if transValue not set yet */ + bool doneResult; /* true if cached result has been returned */ + } WindowStatePerGroupData; + + typedef struct WindowStatePerFuncData + { + /* Links to WFunc expr and state nodes this working state is for */ + WFuncExprState *wfuncstate; + WFunc *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; + } WindowStatePerFuncData; + + /* + * WindowObject is the core data that represents the window. + * The window may have frame and partition but not always, it depends + * on the Buffering Strategy. All the window function APIs are + * called with this object. + */ + typedef struct WindowObjectData + { + ExprContext *econtext; /* window expression context as like window node */ + Tuplestorestate *buffer; /* rows storage */ + int strategy; /* buffering strategy */ + HeapTuple currentrow; /* actual data of the current row */ + + /* + * currentptr is actually pointing the next row to the current. + */ + int currentptr; + + /* + * while iterator is executing, any seeking operation is forbidden, since + * iterator omits its seeking by seq scanning buffer without resetting + * buffer read pointers. + */ + bool iterating; + + /* + * frame informations + */ + int64 f_currentpos; /* relative position of the current row in the frame */ + int f_headptr; /* read pointer of the head row */ + int f_tailptr; /* read pointer of the tail row */ + int64 f_rownum; /* total row number of the frame */ + int f_shrinking; /* frame's shrinking row number until the next frame */ + bool f_shrinked; /* frame was shrinked since the last time */ + int f_extended; /* frame's extended row number since the last time */ + + int64 p_currentpos; /* relative position of the current row in the partition */ + int p_headptr; /* read pointer of the head row */ + int p_tailptr; /* read pointer of the tail row */ + int64 p_rownum; /* total row number of the frame */ + } WindowObjectData; + + /* + * WindowIter is an iterator to scan rows in the frame or + * the partition. Since WinFrameGetArg/WinPartGetArg or etc. + * is too heavy to call many times, iterator makes it easy. + * During the iterator scans rows, WindowObject related to + * this iterator is locked and cannot seek by itself. First + * finish the iterator scan then WindowObject can seek rows again. + */ + typedef struct WindowIterData + { + WindowObject winobj; /* the frame which this itrator came from */ + int type; /* FRAME or PARTITION */ + int position; /* current position within the window */ + bool finished; /* has finished? */ + } WindowIterData; + + #define WINDOW_CHECK_STRATEGY(winobj, req) do{\ + if ((winobj)->strategy < (req))\ + elog(ERROR, "window function API violation");\ + } while(0) + + #define WINDOW_TYPE_ROW 1 + #define WINDOW_TYPE_FRAME 2 + #define WINDOW_TYPE_PARTITION 3 + + static void initialize_windowaggregate(WindowState *winstate, + WindowStatePerFunc perfuncstate, WindowStatePerAgg peraggstate, + WindowStatePerGroup pergroupstate); + static void advance_windowaggregate(WindowState *winstate, + WindowIterData *iter, WindowStatePerFunc perfuncstate, + WindowStatePerAgg peraggstate, WindowStatePerGroup pergroupstate); + static void finalize_windowaggregate(WindowState *winstate, + WindowStatePerFunc perfuncstate, WindowStatePerAgg peraggstate, + WindowStatePerGroup pergroupstate, Datum *result, bool *isnull); + + static void eval_windowaggregate(WindowState *winstate, WindowObject winobj); + static void eval_windowfunction(WindowState *winstate, WindowObject winobj, + WindowStatePerFunc perfuncstate, Datum *result, bool *isnull); + + static WindowObject init_window_object(WindowState *winstate); + static void advance_row(WindowState *winstate); + static void start_frame(WindowState *winstate); + static void finish_frame(WindowState *winstate); + static void store_partition(WindowState *winstate); + static void release_partition(WindowState *winstate); + + static WindowStatePerAggData *initialize_peragg(WindowState *winstate, WFunc *wfunc, + WindowStatePerAgg peraggstate); + static bool window_seek(WindowObject winobj, int seek_pos, int seek_type, int window_type); + + /* + * initialize_windowaggregate + * parallel to initialize_aggregate in nodeAgg.c + */ + static void + initialize_windowaggregate(WindowState *winstate, + WindowStatePerFunc perfuncstate, + WindowStatePerAgg peraggstate, + WindowStatePerGroup pergroupstate) + { + MemoryContext oldContext; + + if (peraggstate->initValueIsNull) + pergroupstate->transValue = peraggstate->initValue; + else + { + oldContext = MemoryContextSwitchTo(winstate->wincontext); + pergroupstate->transValue = datumCopy(peraggstate->initValue, + peraggstate->transtypeByVal, + peraggstate->transtypeLen); + MemoryContextSwitchTo(oldContext); + } + pergroupstate->transValueIsNull = peraggstate->initValueIsNull; + pergroupstate->noTransValue = peraggstate->initValueIsNull; + } + + /* + * advance_windowaggregate + * parallel to advance_aggregate in nodeAgg.c + * + * Contrast to nodeAgg.c, arguments of the function are all ExprState + * instead of Datum itself. We convert it to Datum with the current row + * to match trans function compatibility. + */ + static void + advance_windowaggregate(WindowState *winstate, + WindowIterData *iter, + WindowStatePerFunc perfuncstate, + WindowStatePerAgg peraggstate, + WindowStatePerGroup pergroupstate) + { + WFuncExprState *wfuncstate = perfuncstate->wfuncstate; + int numArguments = perfuncstate->numArguments; + FunctionCallInfoData fcinfodata; + FunctionCallInfo fcinfo = &fcinfodata; + Datum newVal; + ListCell *arg; + int i; + MemoryContext oldContext; + + /* We start from 1, since the 0th arg will be the transition value */ + i = 1; + foreach(arg, wfuncstate->args) + { + ExprState *argstate = (ExprState *) lfirst(arg); + bool isnull; + + /* + * we assume the argument expressions are always static nodes. + */ + Assert(IsA(argstate->expr, Var) || IsA(argstate->expr, Const)); + fcinfo->arg[i] = WinIterGetArg(iter, argstate, &isnull); + fcinfo->argnull[i] = isnull; + 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]) + return; + } + if (pergroupstate->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. + */ + oldContext = MemoryContextSwitchTo(winstate->wincontext); + pergroupstate->transValue = datumCopy(fcinfo->arg[1], + peraggstate->transtypeByVal, + peraggstate->transtypeLen); + pergroupstate->transValueIsNull = false; + pergroupstate->noTransValue = false; + MemoryContextSwitchTo(oldContext); + return; + } + if (pergroupstate->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. + */ + return; + } + } + + oldContext = MemoryContextSwitchTo(winstate->ss.ps.ps_ExprContext->ecxt_per_tuple_memory); + + /* + * OK to call the transition function + */ + InitFunctionCallInfoData(*fcinfo, &(peraggstate->transfn), + numArguments + 1, + (void *) winstate, NULL); + fcinfo->arg[0] = pergroupstate->transValue; + fcinfo->argnull[0] = pergroupstate->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(pergroupstate->transValue)) + { + if (!fcinfo->isnull) + { + MemoryContextSwitchTo(winstate->wincontext); + newVal = datumCopy(newVal, + peraggstate->transtypeByVal, + peraggstate->transtypeLen); + } + if (!pergroupstate->transValueIsNull) + pfree(DatumGetPointer(pergroupstate->transValue)); + } + + MemoryContextSwitchTo(oldContext); + pergroupstate->transValue = newVal; + pergroupstate->transValueIsNull = fcinfo->isnull; + } + + /* + * finalize_windowaggregate + * parallel to finalize_aggregate in nodeAgg.c + */ + static void + finalize_windowaggregate(WindowState *winstate, + WindowStatePerFunc perfuncstate, + WindowStatePerAgg peraggstate, + WindowStatePerGroup pergroupstate, + 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] = pergroupstate->transValue; + fcinfo.argnull[0] = pergroupstate->transValueIsNull; + if (fcinfo.flinfo->fn_strict && pergroupstate->transValueIsNull) + { + /* don't call a strict function with NULL inputs */ + *result = (Datum) 0; + *isnull = true; + } + else + { + *result = FunctionCallInvoke(&fcinfo); + *isnull = fcinfo.isnull; + } + } + else + { + *result = pergroupstate->transValue; + *isnull = pergroupstate->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_windowaggregate + * evaluate normal aggregates (proiswfunc is false but proisagg is true). + * + * Many flows and ideas are ported from nodeAgg.c. + * + * If a window frame is moving whole the calculation of trans/final + * functions are executed again, whereas if not moving the only result + * is cached and returned while the frame is valid. + */ + static void + eval_windowaggregate(WindowState *winstate, WindowObject winobj) + { + WindowStatePerAgg peraggstate; + WindowStatePerGroup pergroupstate; + WindowIter iter; + int funcno, numaggs; + int i; + MemoryContext oldContext; + ExprContext *econtext; + bool need_scan; + Datum *result; + bool *isnull; + + numaggs = winstate->numaggs; + /* + * nothing to do. + */ + if(numaggs == 0) + return; + + /* final output execution is on ps_ExprContext */ + econtext = winstate->ss.ps.ps_ExprContext; + + need_scan = true; + for(i = 0; i < numaggs; i++) + { + peraggstate = &winstate->peragg[i]; + pergroupstate = &winstate->pergroup[i]; + pergroupstate->doneResult = false; + + funcno = peraggstate->funcno; + result = &econtext->ecxt_aggvalues[funcno]; + isnull = &econtext->ecxt_aggnulls[funcno]; + + if (!WinFrameShrinked(winobj) && !WinFrameExtended(winobj) && + peraggstate->hasResult) + { + pergroupstate->doneResult = true; + /* return the same value as the previous result */ + *isnull = peraggstate->resultValueIsNull; + if (*isnull) + continue; + + if (!peraggstate->resulttypeByVal && + !peraggstate->resultValueIsNull && + DatumGetPointer(peraggstate->resultValue) != NULL) + { + oldContext = MemoryContextSwitchTo(winstate->wincontext); + *result = datumCopy(peraggstate->resultValue, + peraggstate->resulttypeByVal, + peraggstate->resulttypeLen); + MemoryContextSwitchTo(oldContext); + } + else + *result = peraggstate->resultValue; + + continue; + } + else if (WinFrameShrinked(winobj) || !peraggstate->hasResult) + { + initialize_windowaggregate(winstate, + &winstate->perfunc[funcno], + &winstate->peragg[i], + &winstate->pergroup[i]); + } + /* + * If at least one aggregate needs scan, we go through scan process. + */ + need_scan = true; + } + + /* + * return if all aggs return cached value. + */ + if (!need_scan) + return; + + /* + * Scan frame from the head if shrinked. + * Otherwise, scan only extended rows. + */ + iter = WinFrameStartIter(winobj, + WinFrameShrinked(winobj) ? 0 : + WinFrameGetRowNum(winobj) - WinFrameExtendedNum(winobj)); + while(WinIterNext(iter)) + { + for(i = 0; i < numaggs; i++) + { + if (winstate->pergroup[i].doneResult) + continue; + funcno = winstate->peragg[i].funcno; + advance_windowaggregate(winstate, + iter, + &winstate->perfunc[funcno], + &winstate->peragg[i], + &winstate->pergroup[i]); + } + } + + /* + * finalize aggregates and fill result/isnull fields. + */ + for(i = 0; i < numaggs; i++) + { + peraggstate = &winstate->peragg[i]; + pergroupstate = &winstate->pergroup[i]; + + if (pergroupstate->doneResult) + continue; + funcno = peraggstate->funcno; + result = &econtext->ecxt_aggvalues[funcno]; + isnull = &econtext->ecxt_aggnulls[funcno]; + finalize_windowaggregate(winstate, + &winstate->perfunc[funcno], + peraggstate, pergroupstate, + result, isnull); + + /* + * If the frame is shrinking, we must re-compute + * from the start so cannot reuse the result. + */ + if (WinFrameShrinkingNum(winobj) > 0) + { + peraggstate->hasResult = false; + continue; + } + + /* + * 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 actual datum but expression node. + * This is based on the fact they can access arbitrary row column specified + * by their arguments. The window API can handle separate row evaluations. + * Since window functions' arguments must be Var or Const by the planner, + * fetching arbitrary separate row is always successful. + */ + static void + eval_windowfunction(WindowState *winstate, WindowObject winobj, + WindowStatePerFunc perfuncstate, Datum *result, bool *isnull) + { + WFuncExprState *wfuncstate = perfuncstate->wfuncstate; + FunctionCallInfoData fcinfo; + int i; + ListCell *arg; + MemoryContext oldContext; + + oldContext = MemoryContextSwitchTo(winstate->ss.ps.ps_ExprContext->ecxt_per_tuple_memory); + InitFunctionCallInfoData(fcinfo, &(perfuncstate->flinfo), + perfuncstate->numArguments, + (void *) winstate, NULL); + + i = 0; + foreach(arg, wfuncstate->args) + { + ExprState *argstate = (ExprState *) lfirst(arg); + + /* + * Window functions' arguments should be Var or Const. + * Any other types operation must have done at the outer + * nodes. + */ + Assert(IsA(argstate->expr, Var) || IsA(argstate->expr, Const)); + fcinfo.arg[i] = PointerGetDatum(argstate); + i++; + } + + *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); + } + + /* + * init_window_object + * initialize WindowObject for each partition. This handles + * only core preparation that doesn't depend on the different + * buffering strategies. + */ + static WindowObject + init_window_object(WindowState *winstate) + { + WindowObject winobj = winstate->winobj; + + MemSet(winobj, 0, sizeof(WindowObjectData)); + + /* + * window's econtext is tmpcontext. + */ + winobj->econtext = winstate->tmpcontext; + + winobj->strategy = winstate->strategy; + + /* + * set up positions + */ + winobj->f_currentpos = -1; + winobj->p_currentpos = -1; + winobj->iterating = false; + + return winobj; + } + + /* + * advance_row + * used with WINDOW_BUFFER_ROW. + */ + static void + advance_row(WindowState *winstate) + { + WindowObject winobj = winstate->winobj; + Window *node = (Window *) winstate->ss.ps.plan; + PlanState *outerPlan; + ExprContext *econtext; + TupleTableSlot *outerslot; + TupleTableSlot *firstSlot; + + outerPlan = outerPlanState(winstate); + econtext = winstate->ss.ps.ps_ExprContext; + firstSlot = winstate->ss.ss_ScanTupleSlot; + + outerslot = ExecProcNode(outerPlan); + if (!TupIsNull(outerslot)) + { + if (winstate->prt_firstTuple == NULL) + { + /* + * the first row of the first partition + */ + winstate->prt_firstTuple = ExecCopySlotTuple(outerslot); + winobj = init_window_object(winstate); + } + else + { + /* + * shouldFree is false, since + * prt_firstTuple is reused again and again. + */ + ExecStoreTuple(winstate->prt_firstTuple, + firstSlot, + InvalidBuffer, + false); + if (!execTuplesMatch(firstSlot, + outerslot, + node->prtNumCols, node->prtColIdx, + winstate->prtEqfunctions, + econtext->ecxt_per_tuple_memory)) + { + /* + * We free prt_firstTuple here. And it means + * end of the partition, we clear partition-based + * information such like perfunc->flinfo.fn_extra + */ + heap_freetuple(winstate->prt_firstTuple); + winstate->prt_firstTuple = ExecCopySlotTuple(outerslot); + release_partition(winstate); + winobj = init_window_object(winstate); + } + } + /* + * We must have currentrow, for process_current needs it. + * also, p_currentpos is used in WinRowXXX APIs. + */ + winobj->currentrow = ExecCopySlotTuple(outerslot); + winobj->p_currentpos++; + } + else + { + /* + * all rows are processed. let's finish it. + */ + release_partition(winstate); + winstate->win_done = true; + return; + } + } + + /* + * start_frame + */ + static void + start_frame(WindowState *winstate) + { + WindowObject winobj = winstate->winobj; + Window *node = (Window *) winstate->ss.ps.plan; + Tuplestorestate *buffer = winobj->buffer; + TupleTableSlot *slot = winobj->econtext->ecxt_outertuple; + int f_shrinking, f_extended; + + if (!winobj->f_headptr) + { + /* + * first row + */ + winobj->f_headptr = tuplestore_alloc_read_pointer(buffer, winstate->eflags); + switch(node->preceding_type) + { + case FRAME_UNBOUNDED: + f_shrinking = 0; + break; + case FRAME_CURRENT_ROW: + f_shrinking = 1; + break; + case FRAME_ROWS: + if (node->preceding_rows > 0) + f_shrinking = 0; + else + f_shrinking = 1; + break; + case FRAME_RANGE: + /* UNSUPPORTED */ + default: + elog(ERROR, "unknown preceding type %d", node->preceding_type); + return; /* keep compiler quiet */ + } + + Assert(!winobj->f_tailptr); + winobj->f_tailptr = tuplestore_alloc_read_pointer(buffer, winstate->eflags); + switch(node->following_type) + { + case FRAME_UNBOUNDED: + f_extended = winobj->p_rownum; + tuplestore_copy_read_pointer(buffer, winobj->p_tailptr, winobj->f_tailptr); + break; + case FRAME_CURRENT_ROW: + f_extended = 1; + /* f_tailptr == currentptr */ + break; + case FRAME_ROWS: + { + int i; + + if (winobj->p_rownum < node->following_rows) + f_extended = winobj->p_rownum; + else + f_extended = node->following_rows; + for(i = 0; i < f_extended; i++) + tuplestore_advance(buffer, true); + tuplestore_copy_read_pointer(buffer, 0, winobj->f_tailptr); + } + break; + case FRAME_RANGE: + /* UNSUPPORTED */ + default: + elog(ERROR, "unknown following type %d", node->following_type); + return; /* keep compiler quiet */ + } + winobj->f_shrinking = f_shrinking; + winobj->f_extended = f_extended; + /* + * In the first row, rownum of frame = extended rownum of frame. + */ + winobj->f_rownum = f_extended; + } + else + { + switch(node->preceding_type) + { + case FRAME_UNBOUNDED: + /* never shinks */ + f_shrinking = 0; + break; + case FRAME_CURRENT_ROW: + /* advance one row */ + f_shrinking = 1; + /* f_headptr will be updated in finish_frame() */ + break; + case FRAME_ROWS: + if (node->preceding_rows <= winobj->p_currentpos + 1) + f_shrinking = 1; + else + f_shrinking = 0; + /* f_headptr will be updated in finish_frame() */ + break; + case FRAME_RANGE: + /* UNSUPPORTED */ + default: + elog(ERROR, "unknown preceding type %d", node->preceding_type); + return; /* keep compiler quiet */ + } + winobj->f_shrinking = f_shrinking; + + switch(node->following_type) + { + case FRAME_UNBOUNDED: + /* never extends */ + f_extended = 0; + break; + case FRAME_CURRENT_ROW: + /* advance one row */ + f_extended = 1; + tuplestore_copy_read_pointer(buffer, winobj->currentptr, winobj->f_tailptr); + break; + case FRAME_ROWS: + if (node->following_rows + winobj->p_currentpos < winobj->p_rownum) + f_extended = 1; + else + f_extended = 0; + + if (f_extended > 0) + { + /* update f_tailptr */ + tuplestore_copy_read_pointer(buffer, winobj->f_tailptr, 0); + tuplestore_advance(buffer, true); + tuplestore_copy_read_pointer(buffer, 0, winobj->f_tailptr); + } + break; + case FRAME_RANGE: + /* UNSUPPORTED */ + default: + elog(ERROR, "unknown following type %d", node->following_type); + return; /* keep compiler quiet */ + } + winobj->f_extended = f_extended; + winobj->f_rownum += f_extended; + } + + /* + * advance current row + */ + tuplestore_copy_read_pointer(buffer, winobj->currentptr, 0); + tuplestore_gettupleslot(buffer, true, slot); + tuplestore_copy_read_pointer(buffer, 0, winobj->currentptr); + winobj->f_currentpos++; + winobj->p_currentpos++; + winobj->currentrow = ExecCopySlotTuple(slot); + } + + /* + * finish_frame + */ + static void + finish_frame(WindowState *winstate) + { + WindowObject winobj = winstate->winobj; + Tuplestorestate *buffer = winobj->buffer; + int i, f_shrinking = winobj->f_shrinking; + + if (f_shrinking > 0) + { + tuplestore_copy_read_pointer(buffer, winobj->f_headptr, 0); + for(i = 0; i < f_shrinking; i++) + tuplestore_advance(buffer, true); + tuplestore_copy_read_pointer(buffer, 0, winobj->f_headptr); + /* + * In the next frame, WinFrameShrinked(winobj) = true + */ + winobj->f_shrinked = true; + winobj->f_rownum -= f_shrinking; + } + else + { + winobj->f_shrinked = false; + } + } + + /* + * store_partition + * buffer all rows contained in the current partition. + */ + static void + store_partition(WindowState *winstate) + { + Window *node = (Window *) winstate->ss.ps.plan; + PlanState *outerPlan; + ExprContext *econtext; + TupleTableSlot *outerslot; + TupleTableSlot *firstSlot; + Tuplestorestate *buffer; + WindowObject winobj; + + outerPlan = outerPlanState(winstate); + econtext = winstate->ss.ps.ps_ExprContext; + firstSlot = winstate->ss.ss_ScanTupleSlot; + winobj = init_window_object(winstate); + + /* + * tuplestore needs randomAccess + */ + buffer = tuplestore_begin_heap(true, false, work_mem); + + /* + * allocate CURRENT ROW, head and tail pointers of the partition + */ + winobj->currentptr = tuplestore_alloc_read_pointer(buffer, winstate->eflags); + winobj->p_headptr = tuplestore_alloc_read_pointer(buffer, winstate->eflags); + winobj->p_tailptr = tuplestore_alloc_read_pointer(buffer, winstate->eflags); + winobj->buffer = buffer; + + /* + * see if the partition is the first one? + */ + if (winstate->prt_firstTuple == NULL) + { + outerslot = ExecProcNode(outerPlan); + if (!TupIsNull(outerslot)) + { + winstate->prt_firstTuple = ExecCopySlotTuple(outerslot); + } + else + { + /* nothing will be returned */ + winstate->win_done = true; + finish_frame(winstate); + return; + } + } + + if (winstate->prt_firstTuple != NULL) + { + ExecStoreTuple(winstate->prt_firstTuple, + firstSlot, + InvalidBuffer, + true); + winstate->prt_firstTuple = NULL; + outerslot = firstSlot; + + /* + * store partition rows into window buffer until + * the bottom of the partition. + */ + for(;;) + { + tuplestore_puttupleslot(buffer, outerslot); + winobj->p_rownum++; + + outerslot = ExecProcNode(outerPlan); + if (TupIsNull(outerslot)) + { + /* + * hit the bottom of the last partition. + */ + winstate->win_done = true; + break; + } + + if (!execTuplesMatch(firstSlot, + outerslot, + node->prtNumCols, node->prtColIdx, + winstate->prtEqfunctions, + econtext->ecxt_per_tuple_memory)) + { + /* + * at the end of each partition + * copy the tuple for the next partition cycle. + */ + winstate->prt_firstTuple = ExecCopySlotTuple(outerslot); + break; + } + } + } + + /* + * write pointer - 1 row is the last row of the partition. + */ + tuplestore_write_to_read_pointer(buffer, winobj->p_tailptr); + tuplestore_select_read_pointer(buffer, winobj->p_tailptr); + tuplestore_advance(buffer, false); + tuplestore_select_read_pointer(buffer, 0); + + winstate->prt_processing = true; + } + + /* + * release_partition + * clear information kept within a partition, including + * funcstate/fn_extra, tuplestore and aggregate result. + */ + static void + release_partition(WindowState *winstate) + { + WindowObject winobj = winstate->winobj; + int i; + int numfuncs = winstate->numfuncs; + + for(i = 0; i < 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; + } + } + + if(winobj->buffer) + tuplestore_end(winobj->buffer); + winstate->prt_processing = false; + } + + /* + * process_current + * given frame, evaluate each window function with it + * and return the result tuple. + */ + static TupleTableSlot * + process_current(WindowState *winstate, WindowObject winobj) + { + ExprContext *econtext; + ProjectionInfo *projInfo; + int i; + int numfuncs; + + /* 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); + + for(i = 0; i < numfuncs; i++) + { + WindowStatePerFunc perfuncstate; + Datum *result; + bool *isnull; + + perfuncstate = &(winstate->perfunc[i]); + /* + * normal aggregates are called from specialized environment + * rather than as window function. + * aggregates are called in a sequence later for performance, + * so we skip them here. + */ + if (perfuncstate->pure_agg) + continue; + result = &(econtext->ecxt_aggvalues[i]); + isnull = &(econtext->ecxt_aggnulls[i]); + eval_windowfunction(winstate, winobj, perfuncstate, result, isnull); + } + + /* + * process aggregate with trans and final functions, if any. + */ + if (winstate->numaggs > 0) + eval_windowaggregate(winstate, winobj); + + /* + * read back the current row from the frame to econtext + * as an outer tuple. econtext->ecxt_outertuple will be 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; + ExecStoreTuple(winobj->currentrow, + econtext->ecxt_outertuple, + InvalidBuffer, + true); + return ExecProject(projInfo, NULL); + } + + /* ----------------- + * 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. + * 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. + * + * Each Window node has their own buffering strategy. We currently 2 types, + * BUFFER_ROW and BUFFER_PARTITION. In BUFFER_ROW strategy, no additional rows + * after the current row are stored, whereas in BUFFER_PARTITION all the + * rows in the partition are stored at the first row in the partition. + * ----------------- + */ + TupleTableSlot * + ExecWindow(WindowState *winstate) + { + TupleTableSlot *slot; + + if (winstate->win_done && !winstate->prt_processing) + return NULL; + + if (winstate->strategy == WINDOW_BUFFER_PARTITION) + { + if (!winstate->prt_processing) + store_partition(winstate); + + /* + * we double-check if we can go processing frame. + * It means the first partition has no rows + * when this second check is false. + */ + if (winstate->win_done && !winstate->prt_processing) + return NULL; + + start_frame(winstate); + } + else + { + Assert(winstate->strategy == WINDOW_BUFFER_ROW); + advance_row(winstate); + + /* + * BUFFER_ROW will detect the bottom by calling + * advance_row, so if it is stop it here. + */ + if (winstate->win_done) + return NULL; + } + + /* + * This is the actual process to evaluate expressions + * and compute the result, then projection is done. + * It is the common code among the different strategies. + */ + slot = process_current(winstate, winstate->winobj); + + if (winstate->strategy == WINDOW_BUFFER_PARTITION) + { + finish_frame(winstate); + + /* + * make sure to clear the frame on the end of the partition. + */ + if (winstate->prt_processing && + winstate->winobj->p_currentpos == winstate->winobj->p_rownum - 1) + release_partition(winstate); + } + + return slot; + } + + /* ----------------- + * 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; + WindowObject winobj; + WindowStatePerFunc perfunc; + WindowStatePerAgg peragg; + WindowStatePerGroup pergroup; + int numfuncs = 0, funcno, + numaggs = 0, aggno; + int strategy; + 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 3 + + /* + * tuple table initialization + */ + ExecInitScanTupleSlot(estate, &winstate->ss); + ExecInitResultTupleSlot(estate, &winstate->ss.ps); + + /* + * 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); + + winobj = (WindowObject) palloc0(sizeof(WindowObjectData)); + winstate->winobj = winobj; + + 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); + pergroup = (WindowStatePerGroup) palloc0(sizeof(WindowStatePerGroupData) * numaggs); + winstate->perfunc = perfunc; + winstate->peragg = peragg; + winstate->pergroup = pergroup; + + winstate->prt_processing = false; + winstate->win_done = false; + + strategy = WINDOW_BUFFER_ROW; + + funcno = -1; + aggno = -1; + foreach(l, winstate->funcs) + { + WFuncExprState *wfuncstate = (WFuncExprState *) lfirst(l); + WFunc *wfunc = (WFunc *) 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 WFunc 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->pure_agg; + if (wfunc->pure_agg) + { + WindowStatePerAgg peraggstate; + + perfuncstate->aggno = ++aggno; + peraggstate = &winstate->peragg[aggno]; + initialize_peragg(winstate, wfunc, peraggstate); + peraggstate->funcno = funcno; + + /* window agg -- > frame */ + /* + * currently without supporting FRAME clauses, + * we use the partition buffering for these. + */ + strategy = WINDOW_BUFFER_PARTITION; + } + else + { + /* + * Window functions should declare to use type of + * APIs for best performance in nodeWindow. + * Until the APIs and user-define functions are + * public we have fixed these function mappings. + */ + switch(wfunc->winfnoid) + { + case 3898: /* row_number --> row */ + case 3899: /* rank --> row */ + case 3900: /* dense_rank --> row */ + break; + case 3901: /* percent_rank --> partition */ + case 3902: /* cume_dist --> partition */ + case 3903: /* ntile --> partition */ + case 3904: /* lag --> partition */ + case 3905: /* lag --> partition */ + case 3906: /* lead --> partition */ + case 3907: /* lead --> partition */ + strategy = WINDOW_BUFFER_PARTITION; + break; + case 3908: /* first_value --> frame */ + case 3909: /* last_value --> frame */ + case 3910: /* nth_value --> frame */ + /* + * currently without supporting FRAME clauses, + * we use the partition buffering for these. + */ + strategy = WINDOW_BUFFER_PARTITION; + break; + default: + elog(ERROR, "unknown function oid(%d)", wfunc->winfnoid); + } + } + } + + /* Update numfuncs to match number of unique function found */ + winstate->numfuncs = funcno + 1; + winstate->numaggs = aggno + 1; + + winstate->strategy = strategy; + + return winstate; + } + + /* ----------------- + * ExecCountSlotsWindow + * ----------------- + */ + int + ExecCountSlotsWindow(Window *node) + { + return ExecCountSlotsNode(outerPlan(node)) + + ExecCountSlotsNode(innerPlan(node)) + + WINDOW_NSLOTS; + } + /* ----------------- + * ExecEndWindow + * ----------------- + */ + void + ExecEndWindow(WindowState *node) + { + PlanState *outerPlan; + + pfree(node->perfunc); + pfree(node->peragg); + pfree(node->pergroup); + + /* + * 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); + + /* + * Free winobj after freeing its econtext (ie winstate->tmpcontext). + */ + pfree(node->winobj); + + if (node->prt_firstTuple != NULL) + heap_freetuple(node->prt_firstTuple); + + MemoryContextDelete(node->wincontext); + + outerPlan = outerPlanState(node); + ExecEndNode(outerPlan); + } + + /* ----------------- + * ExecRescanWindow + * ----------------- + */ + void + ExecReScanWindow(WindowState *node, ExprContext *exprCtxt) + { + ExprContext *econtext = node->ss.ps.ps_ExprContext; + int aggno; + + node->win_done = false; + + if (node->prt_processing) + release_partition(node); + + if (node->prt_firstTuple != NULL) + { + heap_freetuple(node->prt_firstTuple); + node->prt_firstTuple = NULL; + } + + 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, WFunc *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; + } + + /* window frame APIs and window iteration APIs */ + + /* + * window_seek + * Because tuplestore doesn't capability to seek nth row, + * we hold three marking points and from there advance rows as needed. + * + * The current row when seek_pos = 0 on WINDOW_SEEK_CURRENT, + * the first row when seek_pos = 0 on WINDOW_SEEK_HEAD, + * and the last row when seek_pos = 0 on WINDOW_SEEK_TAIL + * is fetched by the subsequent WinXXXGetArg/WinXXXGetTuple call. + * + * Since buffer may contain all the partition, window_seek is in charge + * of frame range boundary check. + */ + static bool + window_seek(WindowObject winobj, int seek_pos, int seek_type, int window_type) + { + Tuplestorestate *buffer = winobj->buffer; + int read_pointer; + + Assert(window_type == WINDOW_TYPE_FRAME || window_type == WINDOW_TYPE_PARTITION); + if (winobj->iterating) + elog(ERROR, "another iteration is going on"); + + switch(seek_type) + { + case WINDOW_SEEK_CURRENT: + read_pointer = winobj->currentptr; + if (window_type == WINDOW_TYPE_FRAME) + { + if (winobj->f_currentpos + seek_pos >= winobj->f_rownum) + return false; + if (winobj->f_currentpos + seek_pos < 0) + return false; + } + else + { + if (winobj->p_currentpos + seek_pos > winobj->p_rownum) + return false; + if (winobj->p_currentpos + seek_pos < 0) + return false; + } + /* + * Since frame->currentptr marks the next CURRENT ROW already, + * seek_pos is actually subtracted 1. + */ + seek_pos -= 1; + break; + + case WINDOW_SEEK_HEAD: + if (window_type == WINDOW_TYPE_FRAME) + read_pointer = winobj->f_headptr; + else + read_pointer = winobj->p_headptr; + + /* validation check */ + if (seek_pos < 0) + return false; + if (window_type == WINDOW_TYPE_FRAME) + { + if (seek_pos >= winobj->f_rownum) + return false; + } + break; + + case WINDOW_SEEK_TAIL: + if (window_type == WINDOW_TYPE_FRAME) + read_pointer = winobj->f_tailptr; + else + read_pointer = winobj->p_tailptr; + + /* validation check */ + if (seek_pos > 0) + return false; + if (window_type == WINDOW_TYPE_FRAME) + { + if (-seek_pos >= winobj->f_rownum) + return false; + } + break; + + default: + elog(ERROR, "unknown window seek type: %d", seek_type); + return false; + } + + tuplestore_copy_read_pointer(buffer, read_pointer, 0); + if (seek_pos != 0) + { + bool forward = (seek_pos > 0); + int num_ahead = (seek_pos < 0 ? (-seek_pos) : seek_pos); + int i; + + for(i = 0; i < num_ahead; i++) + { + if (!tuplestore_advance(buffer, forward)) + { + /* + * tuplestore_advance returns false when backward scan + * hit the head, which is valid position. + * But we consider window_seek going more than head, + * which means the seeking position is invalid. + */ + if (i < num_ahead - 1 || tuplestore_ateof(buffer)) + return false; + break; + } + } + } + + return true; + } + + /* + * WinRowCurrentPos + * return the position of CURRENT ROW in the partition. + */ + int64 + WinRowCurrentPos(WindowObject winobj) + { + return winobj->p_currentpos; + } + + /* + * WinRowGetArg + * return datum of the current row. + */ + Datum + WinRowGetArg(WindowObject winobj, ExprState *argstate, bool *isnull) + { + ExprContext *econtext = winobj->econtext; + + ExecStoreTuple(winobj->currentrow, + econtext->ecxt_outertuple, + InvalidBuffer, + false); + return ExecEvalExpr(argstate, econtext, isnull, NULL); + } + + /* + * WinRowGetTuple + * fetch tuple slot of the current row. returns true if succeeded. + */ + bool + WinRowGetTuple(WindowObject winobj, TupleTableSlot *slot) + { + ExecStoreTuple(winobj->currentrow, + slot, + InvalidBuffer, + false); + return true; + } + + /* + * WinFrameShrinked + * return true if the frame was shrinked since the last execution. + */ + bool + WinFrameShrinked(WindowObject winobj) + { + WINDOW_CHECK_STRATEGY(winobj, WINDOW_BUFFER_FRAME); + + return winobj->f_shrinked; + } + + /* + * WinFrameExtended + * return true if the frame was extended since the last execution. + */ + bool + WinFrameExtended(WindowObject winobj) + { + WINDOW_CHECK_STRATEGY(winobj, WINDOW_BUFFER_FRAME); + + return winobj->f_extended > 0; + } + + /* + * WinFrameGetRowNum + * return total row number of the frame. + */ + int64 + WinFrameGetRowNum(WindowObject winobj) + { + WINDOW_CHECK_STRATEGY(winobj, WINDOW_BUFFER_FRAME); + + return winobj->f_rownum; + } + + /* + * WinFrameGetArg + * return the value of the specific argument of the specific row. + * relpos can be positive or negative. + * If the target row is out of the frame, isout will be true as + * well as isnull. + */ + Datum + WinFrameGetArg(WindowObject winobj, ExprState *argstate, + int relpos, int seektype, bool *isnull, bool *isout) + { + ExprContext *econtext = winobj->econtext; + TupleTableSlot *slot = econtext->ecxt_outertuple; + Tuplestorestate *buffer = winobj->buffer; + + WINDOW_CHECK_STRATEGY(winobj, WINDOW_BUFFER_FRAME); + + *isout = false; + + if (!window_seek(winobj, relpos, seektype, WINDOW_TYPE_FRAME)) + { + *isout = true; + *isnull = true; + return (Datum) 0; + } + + if (!tuplestore_gettupleslot(buffer, true, slot)) + { + *isout = true; + *isnull = true; + return (Datum) 0; + } + + return ExecEvalExpr(argstate, econtext, isnull, NULL); + } + + /* + * WinFrameGetTuple + * fetch tuple slot of the specified row. + * If the target row is out of the frame, isout will be true + * and returns false. + */ + bool + WinFrameGetTuple(WindowObject winobj, TupleTableSlot *slot, + int relpos, int seektype, bool *isout) + { + Tuplestorestate *buffer = winobj->buffer; + + WINDOW_CHECK_STRATEGY(winobj, WINDOW_BUFFER_FRAME); + + *isout = false; + + if (!window_seek(winobj, relpos, seektype, WINDOW_TYPE_FRAME)) + { + *isout = true; + ExecClearTuple(slot); + return false; + } + + if (!tuplestore_gettupleslot(buffer, true, slot)) + { + *isout = true; + return false; + } + + return true; + } + + /* + * WinFrameShrinkingNum + * returns the shrinking number of the frame rows when + * the current frame is finishing. + */ + int + WinFrameShrinkingNum(WindowObject winobj) + { + WINDOW_CHECK_STRATEGY(winobj, WINDOW_BUFFER_FRAME); + + return winobj->f_shrinking; + } + + /* + * WinFrameExtendedNum + * returns the extended number of the frame row when + * the current frame was created. + */ + int + WinFrameExtendedNum(WindowObject winobj) + { + WINDOW_CHECK_STRATEGY(winobj, WINDOW_BUFFER_FRAME); + + return winobj->f_extended; + } + + /* + * WinPartGetRowNum + * return number of rows contained in the partition. + */ + int64 + WinPartGetRowNum(WindowObject winobj) + { + WINDOW_CHECK_STRATEGY(winobj, WINDOW_BUFFER_PARTITION); + + return winobj->p_rownum; + } + + /* + * 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, ExprState *argstate, + int relpos, int seektype, bool *isnull, bool *isout) + { + ExprContext *econtext = winobj->econtext; + TupleTableSlot *slot = econtext->ecxt_outertuple; + Tuplestorestate *buffer = winobj->buffer; + Datum result; + + WINDOW_CHECK_STRATEGY(winobj, WINDOW_BUFFER_PARTITION); + + *isout = false; + + if (!window_seek(winobj, relpos, seektype, WINDOW_TYPE_PARTITION)) + { + *isout = true; + *isnull = true; + return (Datum) 0; + } + + /* + * Even if window_seek succeeded, it may be the last row because + * tuplestore doesn't report it. + */ + if (!tuplestore_gettupleslot(buffer, true, slot)) + { + *isout = true; + *isnull = true; + return (Datum) 0; + } + + return ExecEvalExpr(argstate, econtext, isnull, NULL); + } + + /* + * WinPartGetTuple + * fetch tuple slot from the specified row in the partition. + * If the target row is out of the frame, isout will be true + * and returns false. + */ + bool + WinPartGetTuple(WindowObject winobj, TupleTableSlot *slot, + int relpos, int seektype, bool *isout) + { + Tuplestorestate *buffer = winobj->buffer; + + WINDOW_CHECK_STRATEGY(winobj, WINDOW_BUFFER_PARTITION); + + *isout = false; + + if (!window_seek(winobj, relpos, seektype, WINDOW_TYPE_PARTITION)) + { + *isout = true; + ExecClearTuple(slot); + return false; + } + + if (!tuplestore_gettupleslot(buffer, true, slot)) + { + *isout = true; + return false; + } + + return true; + } + + /* + * WinFrameStartIter + * initialize the frame iterator. + * pos is relative position from head of the frame. + */ + WindowIter + WinFrameStartIter(WindowObject winobj, int pos) + { + WindowIterData *iter; + + WINDOW_CHECK_STRATEGY(winobj, WINDOW_BUFFER_FRAME); + + /* + * We could use Assert() here but this assumption might be + * broken by external API call, so use elog(). + */ + if (winobj->iterating) + elog(ERROR, "another frame iteration is not done yet."); + + iter = (WindowIterData *) palloc0(sizeof(WindowIterData)); + iter->winobj = winobj; + iter->type = WINDOW_TYPE_FRAME; + iter->position = pos; + + /* + * seek must be done before iterating flag is set + */ + window_seek(winobj, pos, WINDOW_SEEK_HEAD, iter->type); + iter->finished = false; + winobj->iterating = true; + + return iter; + } + + /* + * WinPartStartIter + * initialize the partition iterator. + * pos is relative position from head of the partition. + */ + WindowIter + WinPartStartIter(WindowObject winobj, int pos) + { + WindowIterData *iter; + + WINDOW_CHECK_STRATEGY(winobj, WINDOW_BUFFER_PARTITION); + /* + * We could use Assert() here but this assumption might be + * broken by external API call, so use elog(). + */ + if (winobj->iterating) + elog(ERROR, "another frame iteration is not done yet."); + + iter = (WindowIterData *) palloc0(sizeof(WindowIterData)); + iter->winobj = winobj; + iter->type = WINDOW_TYPE_PARTITION; + iter->position = pos; + + /* + * seek must be done before iterating flag is set + */ + window_seek(winobj, pos, WINDOW_SEEK_HEAD, iter->type); + iter->finished = false; + winobj->iterating = true; + + return iter; + } + + + /* + * WinIterNext + * advance the iterator to the next row. Any tuple fetching is allowed + * after this method. + * return false if there is no more row. + */ + bool + WinIterNext(WindowIter iter) + { + WindowObject winobj = iter->winobj; + ExprContext *econtext = winobj->econtext; + TupleTableSlot *slot = econtext->ecxt_outertuple; + bool finished = false; + + iter->position++; + if(!tuplestore_gettupleslot(winobj->buffer, true, slot)) + { + finished = true; + } + else + { + /* + * Even though gettupeslot returns true, it could be + * the last row of the buffer. We track it by + * counting row numbers. + */ + if (iter->type == WINDOW_TYPE_FRAME) + { + finished = (iter->position > winobj->f_rownum); + } + else + { + finished = (iter->position > winobj->p_rownum); + } + } + + if (finished) + { + /* finish iteration */ + winobj->iterating = false; + pfree(iter); + } + + return !(iter->finished = finished); + } + + /* + * WinIterGetArg + * return datum from the current iterator row. + */ + Datum + WinIterGetArg(WindowIter iter, ExprState *argstate, bool *isnull) + { + WindowObject winobj = iter->winobj; + ExprContext *econtext = winobj->econtext; + + return ExecEvalExpr(argstate, econtext, isnull, NULL); + } + + /* + * WinIterGetTuple + * fetch tuple slot from the current iterator row. + */ + bool + WinIterGetTuple(WindowIter iter, TupleTableSlot *slot) + { + TupleTableSlot *orig = iter->winobj->econtext->ecxt_outertuple; + + ExecStoreTuple(ExecCopySlotTuple(orig), slot, InvalidBuffer, true); + return true; + } *** 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 ---- } /* + * _copyWFunc + */ + static WFunc * + _copyWFunc(WFunc *from) + { + WFunc *newnode = makeNode(WFunc); + + 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(pure_agg); + COPY_LOCATION_FIELD(location); + + return newnode; + } + + /* * _copyArrayRef */ static ArrayRef * *************** *** 1730,1735 **** _copySortGroupClause(SortGroupClause *from) --- 1772,1831 ---- return newnode; } + static OrderClause * + _copyOrderClause(OrderClause *from) + { + OrderClause *newnode = makeNode(OrderClause); + + COPY_SCALAR_FIELD(tleSortGroupRef); + COPY_SCALAR_FIELD(eqop); + COPY_SCALAR_FIELD(sortop); + COPY_SCALAR_FIELD(nulls_first); + + return newnode; + } + + static PartitionClause * + _copyPartitionClause(PartitionClause *from) + { + PartitionClause *newnode = makeNode(PartitionClause); + + COPY_SCALAR_FIELD(tleSortGroupRef); + COPY_SCALAR_FIELD(eqop); + COPY_SCALAR_FIELD(sortop); + COPY_SCALAR_FIELD(nulls_first); + + return newnode; + } + + static WinDef * + _copyWinDef(WinDef *from) + { + WinDef *newnode = makeNode(WinDef); + + 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) { *************** *** 1849,1854 **** _copyFuncCall(FuncCall *from) --- 1945,1951 ---- 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; *************** *** 2073,2078 **** _copyQuery(Query *from) --- 2170,2176 ---- COPY_SCALAR_FIELD(hasDistinctOn); COPY_SCALAR_FIELD(hasRecursive); COPY_NODE_FIELD(cteList); + COPY_SCALAR_FIELD(hasWindow); COPY_NODE_FIELD(rtable); COPY_NODE_FIELD(jointree); COPY_NODE_FIELD(targetList); *************** *** 2081,2086 **** _copyQuery(Query *from) --- 2179,2185 ---- 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); *************** *** 2141,2146 **** _copySelectStmt(SelectStmt *from) --- 2240,2246 ---- 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); *************** *** 3326,3331 **** copyObject(void *from) --- 3426,3433 ---- case T_Limit: retval = _copyLimit(from); break; + case T_Window: + retval = _copyWindow(from); case T_PlanInvalItem: retval = _copyPlanInvalItem(from); break; *************** *** 3354,3359 **** copyObject(void *from) --- 3456,3464 ---- case T_Aggref: retval = _copyAggref(from); break; + case T_WFunc: + retval = _copyWFunc(from); + break; case T_ArrayRef: retval = _copyArrayRef(from); break; *************** *** 3828,3833 **** copyObject(void *from) --- 3933,3950 ---- case T_SortGroupClause: retval = _copySortGroupClause(from); break; + case T_OrderClause: + retval = _copyOrderClause(from); + break; + case T_PartitionClause: + retval = _copyPartitionClause(from); + break; + case T_WinDef: + retval = _copyWinDef(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 + _equalWFunc(WFunc *a, WFunc *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(pure_agg); + COMPARE_LOCATION_FIELD(location); + + return true; + } + + static bool _equalArrayRef(ArrayRef *a, ArrayRef *b) { COMPARE_SCALAR_FIELD(refarraytype); *************** *** 904,909 **** _equalSelectStmt(SelectStmt *a, SelectStmt *b) --- 919,925 ---- 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); *************** *** 1799,1804 **** _equalFuncCall(FuncCall *a, FuncCall *b) --- 1815,1821 ---- 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; *************** *** 2003,2008 **** _equalSortGroupClause(SortGroupClause *a, SortGroupClause *b) --- 2020,2049 ---- } static bool + _equalWinDef(WinDef *a, WinDef *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); *************** *** 2204,2209 **** equal(void *a, void *b) --- 2245,2252 ---- break; case T_Aggref: retval = _equalAggref(a, b); + case T_WFunc: + retval = _equalWFunc(a, b); break; case T_ArrayRef: retval = _equalArrayRef(a, b); *************** *** 2310,2315 **** equal(void *a, void *b) --- 2353,2361 ---- case T_JoinExpr: retval = _equalJoinExpr(a, b); break; + case T_WindowClause: + retval = _equalWindowClause(a, b); + break; /* * RELATION NODES *************** *** 2664,2671 **** equal(void *a, void *b) --- 2710,2722 ---- retval = _equalRangeTblEntry(a, b); break; case T_SortGroupClause: + case T_OrderClause: + case T_PartitionClause: retval = _equalSortGroupClause(a, b); break; + case T_WinDef: + retval = _equalWinDef(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_WFunc: + type = ((WFunc *) expr)->wintype; + break; case T_ArrayRef: { ArrayRef *arrayref = (ArrayRef *) expr; *************** *** 1045,1050 **** expression_tree_walker(Node *node, --- 1048,1061 ---- return true; } break; + case T_WFunc: + { + WFunc *expr = (WFunc *) 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, --- 1550,1565 ---- return (Node *) newnode; } break; + case T_WFunc: + { + WFunc *wfunc = (WFunc *) node; + WFunc *newnode; + + FLATCOPY(newnode, wfunc, WFunc); + 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,711 ---- } 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]); + } + + static void _outPlanInvalItem(StringInfo str, PlanInvalItem *node) { WRITE_NODE_TYPE("PLANINVALITEM"); *************** *** 799,804 **** _outAggref(StringInfo str, Aggref *node) --- 821,841 ---- } static void + _outWFunc(StringInfo str, WFunc *node) + { + WRITE_NODE_TYPE("WFUNC"); + + 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(pure_agg); + WRITE_LOCATION_FIELD(location); + } + + static void _outArrayRef(StringInfo str, ArrayRef *node) { WRITE_NODE_TYPE("ARRAYREF"); *************** *** 1723,1728 **** _outSelectStmt(StringInfo str, SelectStmt *node) --- 1760,1766 ---- 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) --- 1782,1788 ---- 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) --- 1907,1913 ---- 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) --- 1918,1924 ---- 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) --- 1937,1989 ---- } static void + _outOrderClause(StringInfo str, OrderClause *node) + { + WRITE_NODE_TYPE("ORDERCLAUSE"); + + WRITE_UINT_FIELD(tleSortGroupRef); + WRITE_OID_FIELD(eqop); + WRITE_OID_FIELD(sortop); + WRITE_BOOL_FIELD(nulls_first); + } + + static void + _outPartitionClause(StringInfo str, PartitionClause *node) + { + WRITE_NODE_TYPE("PARTITIONCLAUSE"); + + WRITE_UINT_FIELD(tleSortGroupRef); + WRITE_OID_FIELD(eqop); + WRITE_OID_FIELD(sortop); + WRITE_BOOL_FIELD(nulls_first); + } + + static void + _outWinDef(StringInfo str, WinDef *node) + { + WRITE_NODE_TYPE("WINDEF"); + + 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"); *************** *** 2366,2371 **** _outNode(StringInfo str, void *obj) --- 2454,2462 ---- case T_Limit: _outLimit(str, obj); break; + case T_Window: + _outWindow(str, obj); + break; case T_PlanInvalItem: _outPlanInvalItem(str, obj); break; *************** *** 2390,2395 **** _outNode(StringInfo str, void *obj) --- 2481,2489 ---- case T_Aggref: _outAggref(str, obj); break; + case T_WFunc: + _outWFunc(str, obj); + break; case T_ArrayRef: _outArrayRef(str, obj); break; *************** *** 2614,2619 **** _outNode(StringInfo str, void *obj) --- 2708,2725 ---- case T_SortGroupClause: _outSortGroupClause(str, obj); break; + case T_OrderClause: + _outOrderClause(str, obj); + break; + case T_PartitionClause: + _outPartitionClause(str, obj); + break; + case T_WinDef: + _outWinDef(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,291 ---- } /* + * _readOrderClause + */ + static OrderClause * + _readOrderClause(void) + { + READ_LOCALS(OrderClause); + + READ_UINT_FIELD(tleSortGroupRef); + READ_OID_FIELD(eqop); + READ_OID_FIELD(sortop); + READ_BOOL_FIELD(nulls_first); + + READ_DONE(); + } + + /* + * _readPartitionClause + */ + static PartitionClause * + _readPartitionClause(void) + { + READ_LOCALS(PartitionClause); + + READ_UINT_FIELD(tleSortGroupRef); + READ_OID_FIELD(eqop); + READ_OID_FIELD(sortop); + READ_BOOL_FIELD(nulls_first); + + READ_DONE(); + } + + /* + * _readWinDef + */ + static WinDef * + _readWinDef(void) + { + READ_LOCALS(WinDef); + + 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 * *************** *** 401,406 **** _readAggref(void) --- 469,494 ---- } /* + * _readWFunc + */ + static WFunc * + _readWFunc(void) + { + READ_LOCALS(WFunc); + + 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(pure_agg); + READ_LOCATION_FIELD(location); + + READ_DONE(); + } + + /* * _readArrayRef */ static ArrayRef * *************** *** 1089,1094 **** parseNodeString(void) --- 1177,1190 ---- return_value = _readQuery(); else if (MATCH("SORTGROUPCLAUSE", 15)) return_value = _readSortGroupClause(); + else if (MATCH("ORDERCLAUSE", 11)) + return_value = _readOrderClause(); + else if (MATCH("PARTITIONCLAUSE", 15)) + return_value = _readPartitionClause(); + else if (MATCH("WINDEF", 6)) + return_value = _readWinDef(); + else if (MATCH("WINDOWCLAUSE", 12)) + return_value = _readWindowClause(); else if (MATCH("ROWMARKCLAUSE", 13)) return_value = _readRowMarkClause(); else if (MATCH("COMMONTABLEEXPR", 15)) *************** *** 1109,1114 **** parseNodeString(void) --- 1205,1212 ---- return_value = _readParam(); else if (MATCH("AGGREF", 6)) return_value = _readAggref(); + else if (MATCH("WFUNC", 5)) + return_value = _readWFunc(); 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 *************** *** 939,945 **** 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 --- 939,945 ---- * * 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 *************** *** 960,966 **** 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? */ --- 960,967 ---- 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 *************** *** 3496,3501 **** make_limit(Plan *lefttree, Node *limitOffset, Node *limitCount, --- 3496,3626 ---- 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) + { + PartitionClause *prtcl = (PartitionClause *) 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) + { + OrderClause *ordcl = (OrderClause *) 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->preceding_type = FRAME_UNBOUNDED; + node->following_type = (node->ordNumCols > 0 ? FRAME_CURRENT_ROW : FRAME_UNBOUNDED); + + node->preceding_rows = 0; + node->following_rows = 0; + node->preceding = NULL; + node->following = NULL; + + node->winref = parse->winref; + + return node; + } /* * make_result *** a/src/backend/optimizer/plan/planagg.c --- b/src/backend/optimizer/plan/planagg.c *************** *** 52,57 **** static ScanDirection match_agg_to_index_col(MinMaxAggInfo *info, --- 52,58 ---- static void make_agg_subplan(PlannerInfo *root, MinMaxAggInfo *info); static Node *replace_aggs_with_params_mutator(Node *node, List **context); static Oid fetch_agg_sort_op(Oid aggfnoid); + static bool find_aggref_walker(Node *node, Aggref **context); /* *************** *** 625,627 **** fetch_agg_sort_op(Oid aggfnoid) --- 626,652 ---- return aggsortop; } + + Aggref * + find_aggref(Node *node) + { + Aggref *context = NULL; + + find_aggref_walker(node, &context); + return context; + } + + static bool + find_aggref_walker(Node *node, Aggref **context) + { + if (node == NULL) + return false; + + if (IsA(node, Aggref)) + { + *context = (Aggref *) node; + return true; + } + + return expression_tree_walker(node, find_aggref_walker, (void *) context); + } *** 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); /***************************************************************************** *************** *** 1237,1242 **** grouping_planner(PlannerInfo *root, double tuple_fraction) --- 1240,1327 ---- } /* 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 strategy 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); + } + current_pathkeys = NIL; + } + + /* * 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; --- 2124,2130 ---- * 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) --- 2284,2458 ---- 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 + * WFunc 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; + WFunc *wfunc; + + /* + * WFuncs doesn't work in the current top plan. So + * we replace these nodes to NullConst but save their + * args in order that WFuncs argument evaluations contain + * only Var and Const. + */ + wfunc = (WFunc *) find_wfunc((Node *) tle->expr); + if (wfunc) + { + pulled_exprs = list_concat(pulled_exprs, 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); + } + + /* + * 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); + } + + 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); + WFunc *wfunc; + + tle = flatCopyTargetEntry(tle); + wfunc = (WFunc *) 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: *** 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 *************** *** 937,942 **** is_simple_subquery(Query *subquery) --- 937,943 ---- * 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 *************** *** 780,785 **** contain_volatile_functions_walker(Node *node, void *context) --- 780,793 ---- return true; /* else fall through to check args */ } + else if (IsA(node, WFunc)) + { + WFunc *winagg = (WFunc *) 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/optimizer/util/tlist.c --- b/src/backend/optimizer/util/tlist.c *************** *** 366,368 **** grouping_is_hashable(List *groupClause) --- 366,369 ---- } return true; } + *** a/src/backend/optimizer/util/var.c --- b/src/backend/optimizer/util/var.c *************** *** 65,70 **** typedef struct --- 65,76 ---- int sublevels_up; } flatten_join_alias_vars_context; + typedef struct + { + Node *node; + int prefer; + } find_wfunc_context; + static bool pull_varnos_walker(Node *node, pull_varnos_context *context); static bool pull_varattnos_walker(Node *node, Bitmapset **varattnos); *************** *** 81,86 **** static bool pull_var_clause_walker(Node *node, --- 87,94 ---- static Node *flatten_join_alias_vars_mutator(Node *node, flatten_join_alias_vars_context *context); static Relids alias_relid_set(PlannerInfo *root, Relids relids); + static Node *find_wfunc_inner(Node *node, int prefer); + static bool find_wfunc_walker(Node *node, find_wfunc_context *context); /* *************** *** 848,850 **** alias_relid_set(PlannerInfo *root, Relids relids) --- 856,937 ---- bms_free(tmprelids); return result; } + + /* + * 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, WFunc)) + { + if (context->node) + { + if (context->prefer > 0) + { + if (((WFunc *) context->node)->winref < ((WFunc *) node)->winref) + context->node = node; + } + else + { + /* context->node != NULL && context->prefer == 0 doesn't make sense */ + if (((WFunc *) context->node)->winref > ((WFunc *) 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); + } *** a/src/backend/parser/analyze.c --- b/src/backend/parser/analyze.c *************** *** 779,784 **** transformSelectStmt(ParseState *pstate, SelectStmt *stmt) --- 779,789 ---- qry->hasDistinctOn = true; } + pstate->p_windef_list = list_concat(stmt->windowClause, pstate->p_windef_list); + qry->windowList = transformWinDef(pstate, + pstate->p_windef_list, + &qry->targetList); + /* transform LIMIT */ qry->limitOffset = transformLimitClause(pstate, stmt->limitOffset, "OFFSET"); *************** *** 798,806 **** transformSelectStmt(ParseState *pstate, SelectStmt *stmt) --- 803,815 ---- 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) --- 1573,1580 ---- qry->hasSubLinks = pstate->p_hasSubLinks; /* ! * Top-level aggregates nor 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) --- 1584,1594 ---- 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) --- 1688,1699 ---- 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 *************** *** 385,390 **** static TypeName *TableFuncTypeName(List *columns); --- 385,395 ---- %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 *************** *** 414,423 **** 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 --- 419,428 ---- 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 *************** *** 444,458 **** 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 --- 449,463 ---- 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 *************** *** 462,478 **** 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 --- 467,483 ---- 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 *************** *** 506,512 **** 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 --- 511,521 ---- %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 *************** *** 6416,6422 **** 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; --- 6425,6431 ---- 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; *************** *** 6426,6431 **** simple_select: --- 6435,6441 ---- n->whereClause = $6; n->groupClause = $7; n->havingClause = $8; + n->windowClause = $9; $$ = (Node *)n; } | values_clause { $$ = $1; } *************** *** 8193,8199 **** 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; --- 8203,8209 ---- * (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; *************** *** 8201,8210 **** 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; --- 8211,8221 ---- n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; + n->win_definition = (WinDef *) $4; n->location = @1; $$ = (Node *)n; } ! | func_name '(' expr_list ')' over_clause { FuncCall *n = makeNode(FuncCall); n->funcname = $1; *************** *** 8212,8221 **** 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; --- 8223,8233 ---- n->agg_star = FALSE; n->agg_distinct = FALSE; n->func_variadic = FALSE; + n->win_definition = (WinDef *) $5; n->location = @1; $$ = (Node *)n; } ! | func_name '(' VARIADIC a_expr ')' /* intentionally not accept over_clause */ { FuncCall *n = makeNode(FuncCall); n->funcname = $1; *************** *** 8223,8232 **** 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; --- 8235,8245 ---- 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; *************** *** 8234,8243 **** 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; --- 8247,8257 ---- 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; *************** *** 8249,8258 **** 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; --- 8263,8273 ---- * 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; *************** *** 8260,8269 **** 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 --- 8275,8285 ---- 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 *************** *** 8281,8286 **** func_expr: func_name '(' ')' --- 8297,8303 ---- n->agg_star = TRUE; n->agg_distinct = FALSE; n->func_variadic = FALSE; + n->win_definition = (WinDef *) $5; n->location = @1; $$ = (Node *)n; } *************** *** 8728,8733 **** xml_whitespace_option: PRESERVE WHITESPACE_P { $$ = TRUE; } --- 8745,8899 ---- ; /* + * 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 + { + WinDef *n = makeNode(WinDef); + 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')' + { + WinDef *n = makeNode(WinDef); + 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 + { + WinDef *n = (WinDef *) $3; + n->name = pstrdup($1); + $$ = (Node *) n; + } + ; + + /* * Supporting nonterminals for expressions. */ *************** *** 9454,9459 **** unreserved_keyword: --- 9620,9626 ---- | ENCRYPTED | ENUM_P | ESCAPE + | EXCLUDE | EXCLUDING | EXCLUSIVE | EXECUTE *************** *** 9461,9466 **** unreserved_keyword: --- 9628,9634 ---- | EXTERNAL | FAMILY | FIRST_P + | FOLLOWING | FORCE | FORWARD | FUNCTION *************** *** 9526,9537 **** unreserved_keyword: --- 9694,9708 ---- | OIDS | OPERATOR | OPTION + | OTHERS | OWNED | OWNER | PARSER | PARTIAL | PASSWORD | PLANS + | PARTITION + | PRECEDING | PREPARE | PREPARED | PRESERVE *************** *** 9540,9545 **** unreserved_keyword: --- 9711,9717 ---- | PROCEDURAL | PROCEDURE | QUOTE + | RANGE | READ | REASSIGN | RECHECK *************** *** 9591,9601 **** unreserved_keyword: --- 9763,9775 ---- | TEMPLATE | TEMPORARY | TEXT_P + | TIES | TRANSACTION | TRIGGER | TRUNCATE | TRUSTED | TYPE_P + | UNBOUNDED | UNCOMMITTED | UNENCRYPTED | UNKNOWN *************** *** 9776,9781 **** reserved_keyword: --- 9950,9956 ---- | ONLY | OR | ORDER + | OVER | PLACING | PRIMARY | REFERENCES *************** *** 9796,9801 **** reserved_keyword: --- 9971,9977 ---- | 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 (checkExprHasWFuncs((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, WFunc *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 (checkExprHasWFuncs((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 (checkExprHasWFuncs(qry->jointree->quals)) + ereport(ERROR, + (errcode(ERRCODE_WINDOWING_ERROR), + errmsg("window functions not allowed in WHERE clause"))); + if (checkExprHasWFuncs((Node *) qry->jointree->fromlist)) + ereport(ERROR, + (errcode(ERRCODE_WINDOWING_ERROR), + errmsg("window functions not allowed in JOIN conditions"))); + if (checkExprHasWFuncs(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 (checkExprHasWFuncs(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 PARTITION_CLAUSE 3 + #define WIN_ORDER_CLAUSE 4 ! static char *clauseText[] = {"ORDER BY", "GROUP BY", "DISTINCT ON", "PARTITION", "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 (checkExprHasWFuncs(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 == WIN_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,1660 ---- } /* + * transformOrderClause - + * + * OrderClause is a set of SortBys. Only tag type is different. + */ + List * + transformOrderClause(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, WIN_ORDER_CLAUSE); + result = addTargetToSortList(pstate, tle, + result, *targetlist, + sortby, resolveUnknown); + } + + return result; + } + + /* + * transformPartitionClause - + * + * Almost everything PartitionClause has is the same as GroupClause. + */ + List * + transformPartitionClause(ParseState *pstate, + List *partitionlist, + List **targetlist) + { + List *result = NIL; + ListCell *l; + TargetEntry *tle; + + foreach(l, partitionlist) + { + Oid restype; + Oid sortop; + Oid eqop; + PartitionClause *pc; + + tle = findTargetlistEntry(pstate, lfirst(l), targetlist, 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(PartitionClause); + 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; + } + + /* + * transformWinDef - + * + * PARTITION BY and ORDER BY clauses are transformed and WFuncs are tied with + * WindowClause here. During this process, WindowClause that has not window function + * (this case would happen when using WINDOW clause) is removed. + */ + List * + transformWinDef(ParseState *pstate, + List *windefinition, + List **targetlist) + { + List *result = NIL, *window_clauses = NIL; + ListCell *l; + Index winref = 1; + + foreach(l, windefinition) + { + WinDef *windef = (WinDef *) lfirst(l); + List *partitionClause = NIL; + List *orderClause = NIL; + WindowClause *wc; + + partitionClause = transformPartitionClause(pstate, + windef->partitionClause, + targetlist); + orderClause = transformOrderClause(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) + { + /* + * 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))); + } + + 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); + } + + /* + * 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) --- 2122,2152 ---- } 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 *************** *** 15,20 **** --- 15,21 ---- #include "postgres.h" #include "access/heapam.h" + #include "catalog/pg_aggregate.h" #include "catalog/pg_inherits.h" #include "catalog/pg_proc.h" #include "catalog/pg_type.h" *************** *** 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; --- 64,70 ---- Node * ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs, bool agg_star, bool agg_distinct, bool func_variadic, ! bool is_column, WinDef *windef, int location) { Oid rettype; Oid funcid; *************** *** 76,81 **** ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs, --- 77,84 ---- Node *retval; bool retset; int nvargs; + bool isagg; + bool iswfunc; FuncDetailCode fdresult; /* *************** *** 164,169 **** 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); if (fdresult == FUNCDETAIL_COERCION) { *************** *** 195,201 **** 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. *************** *** 291,330 **** 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; --- 295,404 ---- 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 */ ! WFunc *wfunc = makeNode(WFunc); ! ! /* ! * 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->pure_agg = 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->pure_agg && 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; *************** *** 729,734 **** func_get_detail(List *funcname, --- 803,810 ---- 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 */ { FuncCandidateList raw_candidates; *************** *** 880,886 **** 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; } --- 956,972 ---- 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; } *************** *** 1374,1376 **** LookupAggNameTypeNames(List *aggname, List *argtypes, bool noError) --- 1460,1465 ---- return oid; } + + + *** 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 checkExprHasWFuncs_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 + checkExprHasWFuncs(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, + checkExprHasWFuncs_walker, + (void *) &context, + 0); + } + + static bool + checkExprHasWFuncs_walker(Node *node, contain_aggs_of_level_context *context) + { + if (node == NULL) + return false; + if (IsA(node, WFunc)) + { + if (((WFunc *) 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, + checkExprHasWFuncs_walker, + (void *) context, 0); + context->sublevels_up--; + return result; + } + return expression_tree_walker(node, checkExprHasWFuncs_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 *************** *** 183,188 **** static void get_oper_expr(OpExpr *expr, deparse_context *context); --- 183,189 ---- 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(WFunc *wfunc, deparse_context *context); static void get_coercion_expr(Node *arg, deparse_context *context, Oid resulttype, int32 resulttypmod, Node *parentNode); *************** *** 4014,4019 **** get_rule_expr(Node *node, deparse_context *context, --- 4015,4024 ---- get_agg_expr((Aggref *) node, context); break; + case T_WFunc: + get_wfunc_expr((WFunc *) node, context); + break; + case T_ArrayRef: { ArrayRef *aref = (ArrayRef *) node; *************** *** 4972,4977 **** get_agg_expr(Aggref *aggref, deparse_context *context) --- 4977,5015 ---- appendStringInfoChar(buf, ')'); } + /* + * get_wfunc_expr - Parse back an WFunc node + */ + static void + get_wfunc_expr(WFunc *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 * *************** *** 5983,5988 **** generate_function_name(Oid funcid, int nargs, Oid *argtypes, --- 6021,6028 ---- Oid p_rettype; bool p_retset; int p_nvargs; + bool p_isagg; + bool p_iswfunc; Oid *p_true_typeids; proctup = SearchSysCache(PROCOID, *************** *** 6002,6009 **** 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); ! if ((p_result == FUNCDETAIL_NORMAL || p_result == FUNCDETAIL_AGGREGATE) && p_funcid == funcid) nspname = NULL; else --- 6042,6050 ---- 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); ! 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,459 ---- + /*------------------------------------------------------------------------- + * + * 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); + + /* + * 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_withdefault(PG_FUNCTION_ARGS); + Datum lead(PG_FUNCTION_ARGS); + Datum lead_withdefault(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 */ + HeapTuple htup; /* row data one before the current */ + } 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(); + WindowState *winstate; + Window *node; + TupleTableSlot *scanslot; + TupleTableSlot *winslot; + rank_context *context; + bool up = false; /* should rank up? */ + bool res; + MemoryContext oldContext; + + allocate_if_new(fcinfo, sizeof(rank_context)); + + winstate = (WindowState *) fcinfo->context; + node = (Window *) winstate->ss.ps.plan; + context = (rank_context *) fcinfo->flinfo->fn_extra; + winslot = winstate->tmpcontext->ecxt_outertuple; + + if (context->rank == 0) + { + /* first call */ + context->rank = 1; + res = WinRowGetTuple(winobj, winslot); + Assert(res); + + oldContext = MemoryContextSwitchTo(fcinfo->flinfo->fn_mcxt); + context->htup = ExecCopySlotTuple(winslot); + MemoryContextSwitchTo(oldContext); + + if (!node->ordNumCols) + elog(ERROR, "this function requires ORDER BY clause in the window"); + } + else + { + /* we need two tuple slot to compare */ + scanslot = winstate->ss.ss_ScanTupleSlot; + + res = WinRowGetTuple(winobj, scanslot); + Assert(res); + ExecStoreTuple(context->htup, winslot, InvalidBuffer, false); + + /* tuples matching by ORDER BY clause */ + if (!execTuplesMatch(scanslot, winslot, + node->ordNumCols, node->ordColIdx, + winstate->ordEqfunctions, + winstate->tmpcontext->ecxt_per_tuple_memory)) + { + heap_freetuple(context->htup); + oldContext = MemoryContextSwitchTo(fcinfo->flinfo->fn_mcxt); + context->htup = ExecCopySlotTuple(scanslot); + MemoryContextSwitchTo(oldContext); + 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 and + * NR is the number of total row, per spec. + */ + Datum + cume_dist(PG_FUNCTION_ARGS) + { + WindowObject winobj = PG_WINDOW_OBJECT(); + int64 totalrow; + + totalrow = WinPartGetRowNum(winobj); + Assert(totalrow > 0); + + PG_RETURN_FLOAT8((float8) (WinRowCurrentPos(winobj) + 1) / (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, PG_WINDOW_ARG(0), &isnull); + + /* window functions cannot be strict, so raise error */ + if (isnull) + elog(ERROR, "null bucket number"); + + 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) + { + WindowObject winobj = PG_WINDOW_OBJECT(); + int4 offset; + Datum result; + bool isnull; + bool isout; + + offset = WinRowGetArg(winobj, PG_WINDOW_ARG(1), &isnull); + if (isnull) + PG_RETURN_NULL(); + + result = WinPartGetArg(winobj, PG_WINDOW_ARG(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, PG_WINDOW_ARG(2), &isnull); + } + + if (isnull) + PG_RETURN_NULL(); + + PG_RETURN_DATUM(result); + } + + /* + * lag + * returns the value of VE evaluated on a row that is OFFSET + * number of rows before the current row within a partition, + * per spec. + */ + Datum + lag(PG_FUNCTION_ARGS) + { + return leadlag_common(fcinfo, false, false); + } + + /* + * lag_withdefault + * same as lag but accepts default value as its third argument + */ + Datum + lag_withdefault(PG_FUNCTION_ARGS) + { + return leadlag_common(fcinfo, false, true); + } + + /* + * lead + * 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(PG_FUNCTION_ARGS) + { + return leadlag_common(fcinfo, true, false); + } + + /* + * lead_withdefault + * same as lead but accepts default value as its third argument + */ + Datum + lead_withdefault(PG_FUNCTION_ARGS) + { + return leadlag_common(fcinfo, 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, PG_WINDOW_ARG(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, PG_WINDOW_ARG(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, PG_WINDOW_ARG(1), &isnull); + + if (isnull) + elog(ERROR, "nth value is null"); + + result = WinFrameGetArg(winobj, PG_WINDOW_ARG(0), + nth, 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 *************** *** 1052,1057 **** tuplestore_copy_read_pointer(Tuplestorestate *state, --- 1052,1087 ---- } /* + * copy write pointer to the specified read pointer + */ + void + tuplestore_write_to_read_pointer(Tuplestorestate *state, int readptr) + { + TSReadPointer *ptr = &state->readptrs[readptr]; + + Assert(readptr >= 0 && readptr < state->readptrcount); + + switch(state->status) + { + case TSS_INMEM: + ptr->current = state->memtupcount; + break; + case TSS_WRITEFILE: + BufFileTell(state->myfile, + &ptr->file, + &ptr->offset); + break; + case TSS_READFILE: + ptr->file = state->writepos_file; + ptr->offset = state->writepos_offset; + break; + default: + elog(ERROR, "invalid tuplestore state"); + break; + } + } + + /* * tuplestore_trim - remove all no-longer-needed tuples */ static void *** a/src/include/catalog/pg_attribute.h --- b/src/include/catalog/pg_attribute.h *************** *** 295,314 **** 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, {"prorettype"}, 26, -1, 4, 14, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \ ! { 1255, {"proargtypes"}, 30, -1, -1, 15, 1, -1, -1, false, 'p', 'i', true, false, false, true, 0 }, \ ! { 1255, {"proallargtypes"}, 1028, -1, -1, 16, 1, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \ ! { 1255, {"proargmodes"}, 1002, -1, -1, 17, 1, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \ ! { 1255, {"proargnames"}, 1009, -1, -1, 18, 1, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \ ! { 1255, {"prosrc"}, 25, -1, -1, 19, 0, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \ ! { 1255, {"probin"}, 17, -1, -1, 20, 0, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \ ! { 1255, {"proconfig"}, 1009, -1, -1, 21, 1, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \ ! { 1255, {"proacl"}, 1034, -1, -1, 22, 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,315 ---- { 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, {"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, {"prosrc"}, 25, -1, -1, 20, 0, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \ ! { 1255, {"probin"}, 17, -1, -1, 21, 0, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \ ! { 1255, {"proconfig"}, 1009, -1, -1, 22, 1, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \ ! { 1255, {"proacl"}, 1034, -1, -1, 23, 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)); *************** *** 318,337 **** 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 prorettype 26 -1 4 14 0 -1 -1 t p i t f f t 0)); ! DATA(insert ( 1255 proargtypes 30 -1 -1 15 1 -1 -1 f p i t f f t 0)); ! DATA(insert ( 1255 proallargtypes 1028 -1 -1 16 1 -1 -1 f x i f f f t 0)); ! DATA(insert ( 1255 proargmodes 1002 -1 -1 17 1 -1 -1 f x i f f f t 0)); ! DATA(insert ( 1255 proargnames 1009 -1 -1 18 1 -1 -1 f x i f f f t 0)); ! DATA(insert ( 1255 prosrc 25 -1 -1 19 0 -1 -1 f x i f f f t 0)); ! DATA(insert ( 1255 probin 17 -1 -1 20 0 -1 -1 f x i f f f t 0)); ! DATA(insert ( 1255 proconfig 1009 -1 -1 21 1 -1 -1 f x i f f f t 0)); ! DATA(insert ( 1255 proacl 1034 -1 -1 22 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)); --- 319,339 ---- 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 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 prosrc 25 -1 -1 20 0 -1 -1 f x i f f f t 0)); ! DATA(insert ( 1255 probin 17 -1 -1 21 0 -1 -1 f x i f f f t 0)); ! DATA(insert ( 1255 proconfig 1009 -1 -1 22 1 -1 -1 f x i f f f t 0)); ! DATA(insert ( 1255 proacl 1034 -1 -1 23 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 *************** *** 131,137 **** DATA(insert OID = 1247 ( pg_type PGNSP 71 PGUID 0 1247 0 0 0 0 0 f f r 28 0 0 DESCR(""); DATA(insert OID = 1249 ( pg_attribute PGNSP 75 PGUID 0 1249 0 0 0 0 0 f f r 17 0 0 0 0 0 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 22 0 0 0 0 0 t 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 27 0 0 0 0 0 t f f f 3 _null_ _null_ )); DESCR(""); --- 131,137 ---- DESCR(""); DATA(insert OID = 1249 ( pg_attribute PGNSP 75 PGUID 0 1249 0 0 0 0 0 f f r 17 0 0 0 0 0 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 23 0 0 0 0 0 t 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 27 0 0 0 0 0 t 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? */ *************** *** 71,77 **** typedef FormData_pg_proc *Form_pg_proc; * compiler constants for pg_proc * ---------------- */ ! #define Natts_pg_proc 22 #define Anum_pg_proc_proname 1 #define Anum_pg_proc_pronamespace 2 #define Anum_pg_proc_proowner 3 --- 72,78 ---- * compiler constants for pg_proc * ---------------- */ ! #define Natts_pg_proc 23 #define Anum_pg_proc_proname 1 #define Anum_pg_proc_pronamespace 2 #define Anum_pg_proc_proowner 3 *************** *** 80,99 **** 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_prorettype 14 ! #define Anum_pg_proc_proargtypes 15 ! #define Anum_pg_proc_proallargtypes 16 ! #define Anum_pg_proc_proargmodes 17 ! #define Anum_pg_proc_proargnames 18 ! #define Anum_pg_proc_prosrc 19 ! #define Anum_pg_proc_probin 20 ! #define Anum_pg_proc_proconfig 21 ! #define Anum_pg_proc_proacl 22 /* ---------------- * initial contents of pg_proc --- 81,101 ---- #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_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_prosrc 20 ! #define Anum_pg_proc_probin 21 ! #define Anum_pg_proc_proconfig 22 ! #define Anum_pg_proc_proacl 23 /* ---------------- * initial contents of pg_proc *************** *** 104,4583 **** 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 16 "2275" _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 2275 "16" _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 17 "2275" _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 2275 "17" _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 18 "2275" _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 2275 "18" _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 19 "2275" _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 2275 "19" _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 21 "2275" _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 2275 "21" _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 22 "2275" _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 2275 "22" _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 23 "2275" _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 2275 "23" _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 24 "2275" _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 2275 "24" _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 25 "2275" _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 2275 "25" _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 27 "2275" _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 2275 "27" _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 28 "2275" _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 2275 "28" _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 29 "2275" _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 2275 "29" _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 30 "2275" _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 2275 "30" _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 16 "16 16" _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 16 "16 16" _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 16 "16 16" _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 16 "18 18" _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 16 "19 19" _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 16 "21 21" _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 16 "21 21" _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 16 "23 23" _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 16 "23 23" _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 16 "25 25" _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 16 "28 28" _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 16 "29 29" _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 16 "18 18" _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 16 "18 18" _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 16 "18 18" _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 16 "18 18" _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 16 "18 18" _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 23 "18" _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 18 "23" _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 16 "19 25" _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 16 "19 25" _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 16 "25 25" _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 16 "25 25" _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 23 "25" _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 25 "25 25" _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 16 "16 16" _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 25 "" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 21 2281" _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 705 "2275" _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 2275 "705" _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 1700 "20" _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 16 "603 603" _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 16 "603 603" _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 600 "2275" _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 2275 "600" _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 601 "2275" _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 2275 "601" _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 602 "2275" _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 2275 "602" _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 603 "2275" _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 2275 "603" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 16 "600 600" _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 16 "600 600" _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 16 "600 600" _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 16 "600 600" _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 16 "600 600" _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 16 "600 603" _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 16 "600 602" _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 600 "603" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 21 2281" _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 23 "23 23" _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 16 "23 23" _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 16 "21 21" _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 16 "21 21" _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 16 "23 23" _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 16 "21 21" _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 16 "23 23" _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 16 "23 23" _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 16 "21 21" _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 21 "21 21" _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 21 "21 21" _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 23 "23 23" _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 21 "21 21" _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 23 "23 23" _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 16 "25 25" _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 16 "21 23" _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 16 "23 21" _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 16 "21 23" _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 16 "23 21" _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 16 "21 23" _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 16 "23 21" _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 16 "21 23" _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 16 "23 21" _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 16 "21 23" _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 16 "23 21" _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 16 "21 23" _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 16 "23 21" _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 23 "21 23" _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 23 "23 21" _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 23 "21 23" _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 23 "23 21" _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 21 "21 21" _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 23 "23 23" _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 23 "21 23" _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 23 "23 21" _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 21 "21 21" _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 23 "23 23" _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 23 "21 23" _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 23 "23 21" _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 16 "26 26" _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 16 "26 26" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 700 "2275" _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 2275 "700" _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 700 "700 700" _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 700 "700 700" _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 700 "700 700" _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 700 "700 700" _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 700 "700" _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 700 "700" _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 1022 "1022 700" _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 700 "700 700" _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 700 "700 700" _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 23 "23" _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 21 "21" _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 701 "2275" _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 2275 "701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701" _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 701 "701" _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 1022 "1022 701" _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 701 "701 701" _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 701 "701 701" _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 600 "601" _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 600 "602" _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 600 "604" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701 701" _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 701 "701" _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 701 "701" _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 701 "21" _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 700 "21" _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 21 "701" _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 21 "700" _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 701 "628 628" _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 702 "2275" _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 2275 "702" _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 703 "2275" _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 2275 "703" _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 702 "702 703" _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 702 "702 703" _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 704 "2275" _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 2275 "704" _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 16 "702 704" _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 703 "704" _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 702 "" _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 16 "702 702" _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 16 "702 702" _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 16 "702 702" _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 16 "702 702" _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 16 "702 702" _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 16 "702 702" _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 16 "703 703" _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 16 "703 703" _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 16 "703 703" _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 16 "703 703" _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 16 "703 703" _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 16 "703 703" _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 16 "704 704" _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 16 "704 704" _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 16 "704 704" _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 16 "704 703" _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 16 "704 703" _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 16 "704 703" _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 16 "704 703" _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 16 "704 703" _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 16 "704 703" _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 702 "704" _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 702 "704" _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 25 "" _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 16 "702" _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 16 "601 628" _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 16 "628 603" _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 701 "700 701" _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 701 "700 701" _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 701 "700 701" _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 701 "700 701" _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 701 "701 700" _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 701 "701 700" _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 701 "701 700" _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 701 "701 700" _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 16 "700 700" _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 16 "700 700" _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 16 "700 700" _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 16 "700 700" _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 16 "700 700" _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 16 "700 700" _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 16 "701 701" _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 16 "701 701" _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 16 "701 701" _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 16 "701 701" _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 16 "701 701" _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 16 "701 701" _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 16 "700 701" _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 16 "700 701" _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 16 "700 701" _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 16 "700 701" _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 16 "700 701" _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 16 "700 701" _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 16 "701 700" _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 16 "701 700" _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 16 "701 700" _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 16 "701 700" _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 16 "701 700" _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 16 "701 700" _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 23 "701 701 701 23" _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 701 "700" _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 700 "701" _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 23 "21" _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 21 "23" _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 16 "22 22" _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 701 "23" _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 23 "701" _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 700 "23" _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 23 "700" _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 16 "2281 2281" _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 20 "2281 2281" _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 16 "2281 2281 2281 2281 2281 2281" _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 2281 "2281 2281 2281" _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 2278 "2281 2281" _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 2278 "2281" _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 2278 "2281" _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 2278 "2281" _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 2281 "2281 2281 2281" _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 2281 "2281 2281 2281 2281" _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 2281 "2281 2281" _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 2278 "2281 2281 2281 2281 2281 2281 2281 2281" _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 17 "1009 16" _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 16 "604 604" _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 16 "604 604" _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 16 "604 604" _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 16 "604 604" _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 16 "604 604" _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 16 "604 604" _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 16 "604 604" _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 16 "604 604" _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 604 "2275" _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 2275 "604" _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 23 "21 21" _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 23 "23 23" _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 23 "20 20" _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 23 "700 700" _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 23 "701 701" _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 23 "26 26" _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 23 "30 30" _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 23 "702 702" _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 23 "18 18" _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 23 "19 19" _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 23 "25 25" _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 23 "790 790" _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 23 "703 703" _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 23 "704 704" _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 23 "2277 2277" _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 701 "601 601" _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 600 "601 601" _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 701 "600 601" _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 701 "600 603" _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 701 "601 603" _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 600 "600 601" _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 600 "600 603" _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 600 "601 603" _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 16 "600 601" _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 701 "602 602" _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 701 "600 602" _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 16 "601 603" _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 16 "601 603" _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 25 "1042" _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 25 "19" _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 19 "25" _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 1042 "19" _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 19 "1042" _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 16 "2281 2281" _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 20 "2281 2281" _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 16 "2281 2281 2281 2281 2281 2281" _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 2281 "2281 2281 2281" _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 2278 "2281 2281" _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 2278 "2281" _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 2278 "2281" _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 2278 "2281" _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 2281 "2281 2281 2281" _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 2281 "2281 2281 2281 2281" _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 2281 "2281 2281" _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 2278 "2281 2281 2281 2281 2281 2281 2281 2281" _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 17 "1009 16" _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 23 "21" _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 23 "23" _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 23 "20" _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 23 "700" _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 23 "701" _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 23 "26" _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 23 "18" _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 23 "19" _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 23 "25" _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 23 "2281" _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 23 "30" _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 23 "1033" _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 23 "22" _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 23 "829" _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 23 "869" _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 23 "1700" _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 25 "25 25" _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 25 "25 25" _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 20 "2275" _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 2275 "20" _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 20 "20" _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 20 "20 20" _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 20 "20 20" _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 20 "20 20" _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 20 "20 20" _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 16 "20 20" _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 16 "20 20" _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 16 "20 20" _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 16 "20 20" _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 16 "20 20" _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 16 "20 20" _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 16 "20 23" _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 16 "20 23" _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 16 "20 23" _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 16 "20 23" _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 16 "20 23" _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 16 "20 23" _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 23 "20" _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 20 "23" _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 701 "20" _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 20 "701" _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 700 "20" _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 20 "700" _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 21 "20" _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 20 "21" _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 16 "19 19" _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 16 "19 19" _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 16 "19 19" _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 16 "19 19" _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 16 "19 19" _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 1042 "1042 23 16" _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 1043 "1043 23 16" _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 704 "702 702" _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 16 "30 30" _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 16 "30 30" _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 16 "30 30" _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 16 "30 30" _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 16 "30 30" _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 16 "30 30" _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 19 "" _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 16 "26 26" _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 16 "26 26" _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 23 "17" _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 23 "17 23" _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 17 "17 23 23" _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 23 "17 23" _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 17 "17 23 23" _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 701 "600 628" _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 701 "628 603" _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 701 "601 628" _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 701 "718 604" _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 701 "604 604" _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 16 "25 25" _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 16 "25 25" _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 16 "25 25" _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 16 "25 25" _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 19 "" _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 19 "" _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 16 "2277 2277" _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 16 "2277 2277" _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 16 "2277 2277" _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 16 "2277 2277" _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 16 "2277 2277" _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 16 "2277 2277" _null_ _null_ _null_ array_ge _null_ _null_ _null_ )); DESCR("array greater than or equal"); ! DATA(insert OID = 747 ( array_dims PGNSP PGUID 12 1 0 0 f f t f i 1 25 "2277" _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 2277 "2275 26 23" _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 2275 "2277" _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 23 "2277 23" _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 23 "2277 23" _null_ _null_ _null_ array_upper _null_ _null_ _null_ )); DESCR("array upper dimension"); ! DATA(insert OID = 378 ( array_append PGNSP PGUID 12 1 0 0 f f f f i 2 2277 "2277 2283" _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 2277 "2283 2277" _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 2277 "2277 2277" _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 1009 "25 25" _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 25 "2277 25" _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 2277 "2277 2277" _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 2277 "2277 2277" _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 23 "2277 23 16" _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 23 "2277 23" _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 2277 "2283 1007" _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 2277 "2283 1007 1007" _null_ _null_ _null_ array_fill_with_lower_bounds _null_ _null_ _null_ )); DESCR("array constructor with value"); ! DATA(insert OID = 760 ( smgrin PGNSP PGUID 12 1 0 0 f f t f s 1 210 "2275" _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 2275 "210" _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 16 "210 210" _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 16 "210 210" _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 26 "25" _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 26 "25 26" _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 23 "26 25" _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 23 "23" _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 23 "23 23" _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 23 "23 23" _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 21 "21 21" _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 21 "21 21" _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 16 "2281 2281" _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 20 "2281 2281" _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 16 "2281 2281 2281 2281 2281 2281" _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 2281 "2281 2281 2281" _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 2278 "2281 2281" _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 2278 "2281" _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 2278 "2281" _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 2278 "2281" _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 2281 "2281 2281 2281" _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 2281 "2281 2281 2281 2281" _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 2281 "2281 2281" _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 2278 "2281 2281 2281 2281 2281 2281 2281 2281" _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 17 "1009 16" _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 16 "704 704" _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 16 "704 704" _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 16 "704 704" _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 16 "704 704" _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 16 "704 704" _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 16 "704 704" _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 790 "790 700" _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 790 "790 700" _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 790 "700 790" _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 23 "25 25" _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 16 "25 25" _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 16 "25 25" _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 16 "23 20" _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 16 "23 20" _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 16 "23 20" _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 16 "23 20" _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 16 "23 20" _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 16 "23 20" _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 16 "19 25" _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 16 "19 25" _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 1042 "18" _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 19 "" _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 25 "" _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 790 "23 790" _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 790 "21 790" _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 790 "790 23" _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 790 "790 23" _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 790 "790 21" _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 790 "790 21" _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 790 "2275" _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 2275 "790" _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 16 "790 790" _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 16 "790 790" _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 16 "790 790" _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 16 "790 790" _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 16 "790 790" _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 16 "790 790" _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 790 "790 790" _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 790 "790 790" _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 790 "790 701" _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 790 "790 701" _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 790 "790 790" _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 790 "790 790" _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 790 "701 790" _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 25 "790" _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 21 "21 21" _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 23 "23 23" _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 20 "20 20" _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 20 "20 20" _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 18 "25" _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 25 "18" _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 23 "26 23" _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 23 "23" _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 17 "23 23" _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 23 "23 17" _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 23 "23 23 23" _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 26 "23" _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 26 "26" _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 23 "23" _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 23 "23 23" _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 16 "600 628" _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 16 "601 628" _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 600 "600 628" _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 600 "601 628" _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 600 "628 603" _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 23 "26" _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 16 "602 602" _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 701 "603" _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 701 "603" _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 701 "603" _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 701 "603 603" _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 701 "602" _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 603 "603 603" _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 601 "603" _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 16 "602 602" _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 16 "602 602" _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 16 "602 602" _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 16 "602 602" _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 16 "602 602" _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 701 "602" _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 16 "600 600" _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 16 "600 600" _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 16 "600 600" _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 701 "600 600" _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 701 "600 600" _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 601 "600 600" _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 16 "601 601" _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 16 "601 601" _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 16 "601 601" _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 16 "601" _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 16 "601" _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 16 "601 601" _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 1114 "1186 1184" _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 1033 "2275" _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 2275 "1033" _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 1034 "1034 1033" _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 1034 "1034 1033" _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 16 "1034 1033" _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 16 "1033 1033" _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 1033 "26 26 25 16" _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 1042 "2275 26 23" _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 2275 "1042" _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 23 "1263" _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 2275 "23" _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 1043 "2275 26 23" _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 2275 "1043" _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 23 "1263" _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 2275 "23" _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 16 "1042 1042" _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 16 "1042 1042" _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 16 "1042 1042" _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 16 "1042 1042" _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 16 "1042 1042" _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 16 "1042 1042" _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 1042 "1042 1042" _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 1042 "1042 1042" _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 23 "1042 1042" _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 23 "1042" _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 25 "26 23" _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 1082 "2275" _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 2275 "1082" _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 16 "1082 1082" _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 16 "1082 1082" _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 16 "1082 1082" _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 16 "1082 1082" _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 16 "1082 1082" _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 16 "1082 1082" _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 23 "1082 1082" _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 16 "1083 1083" _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 16 "1083 1083" _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 16 "1083 1083" _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 16 "1083 1083" _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 16 "1083 1083" _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 23 "1083 1083" _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 1082 "1082 1082" _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 1082 "1082 1082" _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 23 "1082 1082" _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 1082 "1082 23" _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 1082 "1082 23" _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 1083 "2275 26 23" _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 2275 "1083" _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 23 "1263" _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 2275 "23" _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 16 "1083 1083" _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 718 "718 600" _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 718 "718 600" _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 718 "718 600" _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 718 "718 600" _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 1184 "2275 26 23" _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 2275 "1184" _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 23 "1263" _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 2275 "23" _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 16 "1184 1184" _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 16 "1184 1184" _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 16 "1184 1184" _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 16 "1184 1184" _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 16 "1184 1184" _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 16 "1184 1184" _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 1184 "701" _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 1114 "25 1184" _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 1186 "2275 26 23" _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 2275 "1186" _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 23 "1263" _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 2275 "23" _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 16 "1186 1186" _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 16 "1186 1186" _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 16 "1186 1186" _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 16 "1186 1186" _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 16 "1186 1186" _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 16 "1186 1186" _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 1186 "1186" _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 1186 "1186 1186" _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 1186 "1186 1186" _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 701 "25 1184" _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 701 "25 1186" _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 1184 "702" _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 1184 "1082" _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 1186 "1186" _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 1186 "1186" _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 1186 "1186" _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 1184 "1082 1083" _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 1186 "703" _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 1082 "1184" _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 1082 "702" _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 702 "1184" _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 23 "28" _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 1186 "1184 1184" _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 1184 "1184 1186" _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 1184 "1184 1186" _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 703 "1186" _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 1184 "1184 1184" _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 1184 "1184 1184" _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 1186 "1186 1186" _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 1186 "1186 1186" _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 1186 "1184 1184" _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 1186 "1186 23" _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 25 "26 19" _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 25 "26 23" _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 25 "26 19" _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 1184 "25 1184" _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 1186 "25 1186" _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 20 "20" _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 20 "20 2276" _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 20 "20" _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 20 "20 20" _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 20 "20 20" _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 16 "25 25" _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 16 "25 25" _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 16 "19 25" _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 16 "19 25" _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 23 "23" _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 21 "21" _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 16 "1266 1266 1266 1266" _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 1114 "1082 1083" _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 701 "25 1266" _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 20 "20 23" _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 20 "20 23" _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 20 "20 23" _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 20 "20 23" _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 20 "23 20" _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 20 "23 20" _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 20 "23 20" _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 20 "23 20" _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 20 "20 21" _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 20 "20 21" _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 20 "20 21" _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 20 "20 21" _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 20 "21 20" _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 20 "21 20" _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 20 "21 20" _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 20 "21 20" _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 26 "20" _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 20 "26" _null_ _null_ _null_ oidtoi8 _null_ _null_ _null_ )); DESCR("convert oid to int8"); ! DATA(insert OID = 1292 ( tideq PGNSP PGUID 12 1 0 0 f f t f i 2 16 "27 27" _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 27 "26 27" _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 27 "25 27" _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 16 "27 27" _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 16 "27 27" _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 16 "27 27" _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 16 "27 27" _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 16 "27 27" _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 23 "27 27" _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 27 "27 27" _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 27 "27 27" _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 1114 "1083 1082" _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 1184 "1082 1266" _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 1184 "1266 1082" _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 1184 "" _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 1184 "" _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 1184 "" _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 1184 "" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 21 2281" _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 16 "1184 1184 1184 1184" _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 16 "1184 1186 1184 1186" _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 16 "1184 1184 1184 1186" _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 16 "1184 1186 1184 1184" _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 16 "1083 1083 1083 1083" _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 16 "1083 1186 1083 1186" _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 16 "1083 1083 1083 1186" _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 16 "1083 1186 1083 1083" _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 1114 "2275 26 23" _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 2275 "1114" _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 23 "1263" _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 2275 "23" _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 23 "1184 1184" _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 23 "1186 1186" _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 1083 "1114" _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 23 "25" _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 23 "1042" _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 16 "28 23" _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 1186 "1186 701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701 701" _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 701 "701 701" _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 701 "701" _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 25 "26" _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 25 "30" _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 1266 "2275 26 23" _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 2275 "1266" _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 23 "1263" _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 2275 "23" _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 16 "1266 1266" _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 16 "1266 1266" _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 16 "1266 1266" _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 16 "1266 1266" _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 16 "1266 1266" _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 16 "1266 1266" _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 23 "1266 1266" _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 1184 "1082 1266" _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 1083 "702" _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 23 "1042" _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 23 "25" _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 1186 "1083" _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 23 "1042" _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 23 "25" _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 23 "1042" _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 1083 "1083 1083" _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 1083 "1083 1083" _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 1266 "1266 1266" _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 1266 "1266 1266" _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 23 "25" _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 701 "25 702" _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 701 "25 703" _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 701 "25 1082" _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 701 "25 1083" _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 1186 "1184" _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 1266 "1184" _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 16 "1082" _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 16 "1184" _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 16 "1186" _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 1700 "20" _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 700 "700" _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 701 "701" _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 20 "20" _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 23 "23" _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 21 "21" _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 19 "1043" _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 1043 "19" _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 19 "" _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 1003 "16" _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 25 "25 25 23 23" _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 25 "25 25 23" _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 16 "600 600" _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 16 "600 600" _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 16 "601 601" _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 16 "601 601" _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 16 "601" _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 16 "601" _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 16 "628 628" _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 16 "628 628" _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 16 "628" _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 16 "628" _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 600 "718" _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 1083 "1186" _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 603 "600 600" _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 603 "603 600" _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 603 "603 600" _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 603 "603 600" _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 603 "603 600" _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 16 "602 600" _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 16 "604 600" _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 16 "600 604" _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 16 "602" _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 16 "602" _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 23 "602" _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 602 "602" _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 602 "602" _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 602 "602 602" _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 602 "602 600" _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 602 "602 600" _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 602 "602 600" _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 602 "602 600" _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 600 "701 701" _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 600 "600 600" _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 600 "600 600" _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 600 "600 600" _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 600 "600 600" _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 23 "604" _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 603 "604" _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 602 "604" _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 604 "603" _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 604 "602" _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 718 "2275" _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 2275 "718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 701 "718" _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 701 "718" _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 701 "718" _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 701 "718 718" _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 600 "718" _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 718 "600 701" _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 718 "604" _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 604 "23 718" _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 701 "600 718" _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 16 "718 600" _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 16 "600 718" _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 718 "603" _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 603 "718" _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 704 "702 702" _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 16 "601 601" _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 16 "601 601" _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 16 "601 601" _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 16 "601 601" _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 16 "601 601" _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 701 "601" _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 600 "628 601" _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 600 "601 601" _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 628 "2275" _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 2275 "628" _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 16 "628 628" _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 628 "600 600" _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 600 "628 628" _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 16 "628 628" _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 16 "628 628" _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 16 "628 628" _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 16 "628" _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 16 "628" _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 701 "601" _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 701 "602" _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 600 "601" _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 600 "602" _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 600 "603" _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 600 "604" _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 601 "603" _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 600 "603" _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 600 "718" _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 604 "718" _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 23 "602" _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 23 "604" _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 1560 "2275 26 23" _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 2275 "1560" _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 23 "1263" _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 2275 "23" _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 16 "25 25" _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 16 "25 25" _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 16 "19 25" _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 16 "19 25" _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 20 "2205" _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 20 "2205" _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 20 "2205 20" _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 20 "2205 20 16" _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 1562 "2275 26 23" _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 2275 "1562" _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 23 "1263" _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 2275 "23" _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 16 "1560 1560" _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 16 "1560 1560" _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 16 "1560 1560" _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 16 "1560 1560" _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 16 "1560 1560" _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 16 "1560 1560" _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 23 "1560 1560" _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 701 "" _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 2278 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701 701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "" _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 1186 "1186 701" _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 23 "25" _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 25 "23" _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 25 "25 23" _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 25 "25 25" _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 1186 "701 1186" _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 16 "1042 25" _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 16 "1042 25" _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 16 "25 25" _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 16 "25 25" _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 16 "19 25" _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 16 "19 25" _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 25 "25 25" _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 16 "1042 25" _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 16 "1042 25" _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 16 "1042 25" _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 16 "1042 25" _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 16 "1042 25" _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 16 "1042 25" _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 2279 "" _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 23 "25 25" _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 25 "25" _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 25 "25" _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 25 "25" _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 25 "25 23 25" _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 25 "25 23 25" _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 25 "25 25" _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 25 "25 25" _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 25 "25 23 23" _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 25 "25 25 25" _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 25 "25 23" _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 25 "25 23" _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 25 "25" _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 25 "25" _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 25 "25 23" _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 25 "25 25" _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 25 "25" _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 25 "25 23 23" _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 25 "25 23" _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 25 "25 25 25" _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 25 "25 25 25" _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 25 "25 25 25 25" _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 1009 "25 25" _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 1009 "25 25 25" _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 25 "25 25 23" _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 25 "25 25" _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 25 "25 25 25" _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 1009 "25 25" _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 1009 "25 25 25" _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 25 "23" _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 25 "20" _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 19 "" _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 19 "" _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 23 "17 19" _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 25 "17 19" _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 17 "25 19" _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 17 "17 19 19" _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 23 "19" _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 19 "23" _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 16 "26 26" _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 16 "26 26" _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 25 "26" _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 25 "25" _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 25 "26" _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 19 "26" _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 25 "26" _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 25 "26" _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 25 "26" _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 25 "25 26" _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 25 "25 25" _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 25 "26" _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 25 "26" _null_ _null_ _null_ pg_get_function_arguments _null_ _null_ _null_ )); DESCR("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 25 "26" _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 2249 "" "{25,18,25}" "{o,o,o}" "{word,catcode,catdesc}" pg_get_keywords _null_ _null_ _null_ )); DESCR("list of SQL keywords"); /* 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 2279 "" _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 2279 "" _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 2279 "" _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 2279 "" _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 2279 "" _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 2279 "" _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 2279 "" _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 2279 "" _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 2279 "" _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 2279 "" _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 2279 "" _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 2279 "" _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 16 "1562 1562" _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 16 "1562 1562" _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 16 "1562 1562" _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 16 "1562 1562" _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 16 "1562 1562" _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 16 "1562 1562" _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 23 "1562 1562" _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 1560 "1560 1560" _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 1560 "1560 1560" _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 1560 "1560 1560" _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 1560 "1560" _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 1560 "1560 23" _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 1560 "1560 23" _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 1562 "1562 1562" _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 1560 "1560 23 23" _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 23 "1560" _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 23 "1560" _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 1560 "23 23" _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 23 "1560" _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 1560 "1560 23 16" _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 1562 "1562 23 16" _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 23 "1560 1560" _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 1560 "1560 23" _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 829 "2275" _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 2275 "829" _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 829 "829" _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 16 "829 829" _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 16 "829 829" _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 16 "829 829" _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 16 "829 829" _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 16 "829 829" _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 16 "829 829" _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 23 "829 829" _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 869 "2275" _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 2275 "869" _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 650 "2275" _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 2275 "650" _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 16 "869 869" _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 16 "869 869" _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 16 "869 869" _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 16 "869 869" _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 16 "869 869" _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 16 "869 869" _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 23 "869 869" _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 16 "869 869" _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 16 "869 869" _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 16 "869 869" _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 16 "869 869" _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 25 "869" _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 25 "650" _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 869 "869 23" _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 650 "650 23" _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 23 "869" _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 650 "869" _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 869 "869" _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 23 "869" _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 869 "869" _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 25 "869" _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 25 "869" _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 869 "869" _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 650 "869" _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 869 "" _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 23 "" _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 869 "" _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 23 "" _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 869 "869" _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 869 "869 869" _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 869 "869 869" _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 869 "869 20" _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 869 "20 869" _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 869 "869 20" _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 20 "869 869" _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 1186 "1083 1083" _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 16 "16 16" _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 16 "16 16" _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 23 "16 16" _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 23 "1083" _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 23 "1266" _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 23 "1186" _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 1700 "2275 26 23" _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 2275 "1700" _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 23 "1263" _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 2275 "23" _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 1700 "1700 23" _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 1700 "1700" _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 1700 "1700" _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 1700 "1700" _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 1700 "1700 23" _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 1700 "1700" _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 1700 "1700 23" _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 1700 "1700" _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 1700 "1700" _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 1700 "1700" _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 1700 "1700" _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 16 "1700 1700" _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 16 "1700 1700" _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 16 "1700 1700" _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 16 "1700 1700" _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 16 "1700 1700" _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 16 "1700 1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 1700 "1700" _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 1700 "1700" _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 1700 "1700" _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 1700 "1700" _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 1700 "1700" _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 1700 "1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 1700 "23" _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 1700 "1700" _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 1700 "700" _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 1700 "701" _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 23 "1700" _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 700 "1700" _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 701 "1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 23 "1700 1700 1700 23" _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 1083 "1083 1186" _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 1083 "1083 1186" _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 1266 "1266 1186" _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 1266 "1266 1186" _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 1700 "1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 23 "1700 1700" _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 1700 "1700" _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 20 "1700" _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 1700 "20" _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 1700 "21" _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 21 "1700" _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 25 "1184 25" _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 25 "1700 25" _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 25 "23 25" _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 25 "20 25" _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 25 "700 25" _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 25 "701 25" _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 1700 "25 25" _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 1184 "25 25" _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 1082 "25 25" _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 25 "1186 25" _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 25 "25" _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 25 "25" _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 25 "2283" _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 25 "25" _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 25 "2283" _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 26 "2275" _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 2275 "26" _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 23 "17" _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 23 "25" _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 23 "1560" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 21 2281" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 1231 "1231 1700" _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 1231 "1231 1700" _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 1231 "1231 21" _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 1231 "1231 23" _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 1231 "1231 20" _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 1231 "1231 20" _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 1700 "1231" _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 1700 "1231" _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 1700 "1231" _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 1700 "1231" _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 1700 "1231" _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 20 "20 21" _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 20 "20 23" _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 1700 "1700 20" _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 1187 "1187 1186" _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 1186 "1187" _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 1016 "1016 21" _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 1016 "1016 23" _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 1700 "1016" _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 20 "20 701 701" _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 1022 "1022 701 701" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 25 "25" _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 25 "25 23" _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 25 "25 19" _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 1083 "1186 1083" _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 16 "21 20" _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 16 "21 20" _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 16 "21 20" _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 16 "21 20" _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 16 "21 20" _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 16 "21 20" _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 16 "20 21" _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 16 "20 21" _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 16 "20 21" _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 16 "20 21" _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 16 "20 21" _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 16 "20 21" _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 21 "21 21" _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 21 "21 21" _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 21 "21 21" _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 21 "21" _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 21 "21 23" _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 21 "21 23" _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 23 "23 23" _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 23 "23 23" _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 23 "23 23" _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 23 "23" _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 23 "23 23" _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 23 "23 23" _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 20 "20 20" _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 20 "20 20" _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 20 "20 20" _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 20 "20" _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 20 "20 23" _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 20 "20 23" _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 20 "20" _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 21 "21" _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 23 "23" _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 700 "700" _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 701 "701" _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 1700 "1700" _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 16 "19 25 25" _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 16 "19 26 25" _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 16 "26 25 25" _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 16 "26 26 25" _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 16 "25 25" _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 16 "26 25" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 1184 "26" _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 1184 "26" _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 1184 "26" _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 1184 "26" _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 23 "" _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 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}" 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 23 "" _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 23 "23" _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 26 "23" _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 26 "23" _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 25 "23" _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 16 "23" _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 1184 "23" _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 1184 "23" _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 1184 "23" _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 869 "23" _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 23 "23" _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 23 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "" _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 20 "" _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 20 "" _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 20 "" _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 20 "" _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 20 "" _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 20 "" _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 20 "26" _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 20 "26" _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 20 "26" _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 2278 "" _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 2278 "" _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 25 "17 25" _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 17 "25 25" _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 16 "17 17" _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 16 "17 17" _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 16 "17 17" _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 16 "17 17" _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 16 "17 17" _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 16 "17 17" _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 23 "17 17" _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 1114 "1114 23" _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 26 "26 26" _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 26 "26 26" _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 1184 "1184 23" _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 1083 "1083 23" _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 1266 "1266 23" _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 25 "25 2776" _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 25 "2776 25" _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 16 "17 17" _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 16 "17 17" _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 16 "17 17" _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 16 "17 17" _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 17 "17 17" _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 23 "17" _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 17 "17 17" _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 17 "17 23 23" _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 17 "17 23" _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 17 "17 23 23" _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 17 "17 23" _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 23 "17 17" _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 17 "17 17" _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 1083 "1184" _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 1114 "25 1114" _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 701 "25 1114" _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 1114 "702" _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 1114 "1082" _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 1114 "1082 1083" _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 1114 "1184" _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 1184 "1114" _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 1082 "1114" _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 702 "1114" _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 1186 "1114 1114" _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 1114 "1114 1186" _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 1114 "1114 1186" _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 1114 "1114 1114" _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 1114 "1114 1114" _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 1266 "25 1266" _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 1266 "1186 1266" _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 23 "1114" _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 16 "1114 1114 1114 1114" _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 16 "1114 1186 1114 1186" _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 16 "1114 1114 1114 1186" _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 16 "1114 1186 1114 1114" _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 23 "1114 1114" _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 1083 "1266" _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 1266 "1083" _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 16 "1114" _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 25 "1114 25" _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 16 "1114 1114" _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 16 "1114 1114" _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 16 "1114 1114" _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 16 "1114 1114" _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 16 "1114 1114" _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 16 "1114 1114" _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 1186 "1114 1114" _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 1186 "1114" _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 1184 "25 1114" _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 1184 "1186 1114" _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 1114 "1082 1186" _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 1114 "1082 1186" _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 25 "25 25" _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 25 "25 25 25" _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 1560 "20 23" _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 20 "1560" _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 25 "25" _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 25 "25 25 16" _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 2249 "" "{25,25,25,25,25,25,25,25,25,25,25,25,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}" 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 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}" 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 2249 "" "{28,25,1184,26,26}" "{o,o,o,o,o}" "{transaction,gid,prepared,ownerid,dbid}" 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 16 "26" _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 16 "26" _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 16 "26" _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 16 "26" _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 16 "26" _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 16 "26" _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 16 "26" _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 16 "26" _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 16 "26" _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 16 "26" _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 26 "" _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 16 "26" _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 16 "23" _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 16 "23" _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 25 "25" _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 25 "" _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 25 "" _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 25 "" _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 25 "" _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 2249 "25" "{25,25,23}" "{i,o,o}" "{wal_location,file_name,file_offset}" 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 25 "25" _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 16 "" _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 16 "" _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 2249 "25" "{25,20,1184,1184,1184,1184,16}" "{i,o,o,o,o,o,o}" "{filename,size,access,modification,change,creation,isdir}" 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 25 "25 20 20" _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 25 "25" _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 2278 "701" _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 25 "16" _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 1700 "20" _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 1700 "23" _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 1700 "21" _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 1700 "1700" _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 701 "700" _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 701 "701" _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 1186 "1186" _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 1700 "20" _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 20 "23" _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 20 "21" _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 700 "700" _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 701 "701" _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 790 "790" _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 1186 "1186" _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 1700 "1700" _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 20 "20" _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 23 "23" _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 21 "21" _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 26 "26" _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 700 "700" _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 701 "701" _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 702 "702" _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 1082 "1082" _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 1083 "1083" _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 1266 "1266" _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 790 "790" _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 1114 "1114" _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 1184 "1184" _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 1186 "1186" _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 25 "25" _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 1700 "1700" _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 2277 "2277" _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 1042 "1042" _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 27 "27" _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 20 "20" _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 23 "23" _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 21 "21" _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 26 "26" _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 700 "700" _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 701 "701" _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 702 "702" _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 1082 "1082" _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 1083 "1083" _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 1266 "1266" _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 790 "790" _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 1114 "1114" _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 1184 "1184" _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 1186 "1186" _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 25 "25" _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 1700 "1700" _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 2277 "2277" _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 1042 "1042" _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 27 "27" _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 20 "2276" _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 20 "" _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 1700 "20" _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 1700 "23" _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 1700 "21" _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 701 "700" _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 701 "701" _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 1700 "1700" _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 1700 "20" _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 1700 "23" _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 1700 "21" _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 701 "700" _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 701 "701" _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 1700 "1700" _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 1700 "20" _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 1700 "23" _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 1700 "21" _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 701 "700" _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 701 "701" _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 1700 "1700" _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 1700 "20" _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 1700 "23" _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 1700 "21" _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 701 "700" _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 701 "701" _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 1700 "1700" _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 1700 "20" _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 1700 "23" _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 1700 "21" _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 701 "700" _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 701 "701" _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 1700 "1700" _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 1700 "20" _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 1700 "23" _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 1700 "21" _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 701 "700" _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 701 "701" _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 1700 "1700" _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 20 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 16 "25 25" _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 16 "25 25" _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 16 "25 25" _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 16 "25 25" _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 23 "25 25" _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 16 "1042 1042" _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 16 "1042 1042" _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 16 "1042 1042" _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 16 "1042 1042" _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 23 "1042 1042" _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 23 "23 20" _null_ _null_ _null_ btint48cmp _null_ _null_ _null_ )); ! DATA(insert OID = 2189 ( btint84cmp PGNSP PGUID 12 1 0 0 f f t f i 2 23 "20 23" _null_ _null_ _null_ btint84cmp _null_ _null_ _null_ )); ! DATA(insert OID = 2190 ( btint24cmp PGNSP PGUID 12 1 0 0 f f t f i 2 23 "21 23" _null_ _null_ _null_ btint24cmp _null_ _null_ _null_ )); ! DATA(insert OID = 2191 ( btint42cmp PGNSP PGUID 12 1 0 0 f f t f i 2 23 "23 21" _null_ _null_ _null_ btint42cmp _null_ _null_ _null_ )); ! DATA(insert OID = 2192 ( btint28cmp PGNSP PGUID 12 1 0 0 f f t f i 2 23 "21 20" _null_ _null_ _null_ btint28cmp _null_ _null_ _null_ )); ! DATA(insert OID = 2193 ( btint82cmp PGNSP PGUID 12 1 0 0 f f t f i 2 23 "20 21" _null_ _null_ _null_ btint82cmp _null_ _null_ _null_ )); ! DATA(insert OID = 2194 ( btfloat48cmp PGNSP PGUID 12 1 0 0 f f t f i 2 23 "700 701" _null_ _null_ _null_ btfloat48cmp _null_ _null_ _null_ )); ! DATA(insert OID = 2195 ( btfloat84cmp PGNSP PGUID 12 1 0 0 f f t f i 2 23 "701 700" _null_ _null_ _null_ btfloat84cmp _null_ _null_ _null_ )); ! DATA(insert OID = 2212 ( regprocedurein PGNSP PGUID 12 1 0 0 f f t f s 1 2202 "2275" _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 2275 "2202" _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 2203 "2275" _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 2275 "2203" _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 2204 "2275" _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 2275 "2204" _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 2205 "2275" _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 2275 "2205" _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 2206 "2275" _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 2275 "2206" _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 2205 "25" _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 2278 "26" _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 2278 "26" _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 2278 "26" _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 16 "19 25 25" _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 16 "19 26 25" _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 16 "26 25 25" _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 16 "26 26 25" _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 16 "25 25" _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 16 "26 25" _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 16 "19 25 25" _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 16 "19 26 25" _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 16 "26 25 25" _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 16 "26 26 25" _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 16 "25 25" _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 16 "26 25" _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 16 "19 25 25" _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 16 "19 26 25" _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 16 "26 25 25" _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 16 "26 26 25" _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 16 "25 25" _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 16 "26 25" _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 16 "19 25 25" _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 16 "19 26 25" _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 16 "26 25 25" _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 16 "26 26 25" _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 16 "25 25" _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 16 "26 25" _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 16 "19 25 25" _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 16 "19 26 25" _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 16 "26 25 25" _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 16 "26 26 25" _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 16 "25 25" _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 16 "26 25" _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 16 "19 19 25" _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 16 "19 26 25" _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 16 "26 19 25" _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 16 "26 26 25" _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 16 "19 25" _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 16 "26 25" _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 23 "2276" _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 20 "26" _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 20 "19" _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 20 "26" _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 20 "19" _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 20 "2205" _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 20 "2205 25" _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 20 "2205" _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 25 "20" _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 2249 "2275 26 23" _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 2275 "2249" _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 2275 "2275" _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 2275 "2275" _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 2276 "2275" _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 2275 "2276" _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 2277 "2275" _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 2275 "2277" _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 2278 "2275" _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 2275 "2278" _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 2279 "2275" _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 2275 "2279" _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 2280 "2275" _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 2275 "2280" _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 2281 "2275" _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 2275 "2281" _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 2282 "2275" _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 2275 "2282" _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 2283 "2275" _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 2275 "2283" _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 2282 "2275" _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 2275 "2282" _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 2276 "2275 26 23" _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 2276 "2281 26 23" _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 2776 "2275" _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 2275 "2776" _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 25 "25" _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 25 "17" _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 16 "1082 1114" _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 16 "1082 1114" _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 16 "1082 1114" _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 16 "1082 1114" _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 16 "1082 1114" _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 16 "1082 1114" _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 23 "1082 1114" _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 16 "1082 1184" _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 16 "1082 1184" _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 16 "1082 1184" _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 16 "1082 1184" _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 16 "1082 1184" _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 16 "1082 1184" _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 23 "1082 1184" _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 16 "1114 1082" _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 16 "1114 1082" _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 16 "1114 1082" _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 16 "1114 1082" _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 16 "1114 1082" _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 16 "1114 1082" _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 23 "1114 1082" _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 16 "1184 1082" _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 16 "1184 1082" _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 16 "1184 1082" _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 16 "1184 1082" _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 16 "1184 1082" _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 16 "1184 1082" _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 23 "1184 1082" _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 16 "1114 1184" _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 16 "1114 1184" _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 16 "1114 1184" _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 16 "1114 1184" _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 16 "1114 1184" _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 16 "1114 1184" _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 23 "1114 1184" _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 16 "1184 1114" _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 16 "1184 1114" _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 16 "1184 1114" _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 16 "1184 1114" _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 16 "1184 1114" _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 16 "1184 1114" _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 23 "1184 1114" _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 2277 "2281 26 23" _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 17 "2277" _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 2249 "2281 26 23" _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 17 "2249" _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 21 "2281" _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 17 "21" _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 23 "2281" _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 17 "23" _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 20 "2281" _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 17 "20" _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 22 "2281" _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 17 "22" _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 17 "2281" _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 17 "17" _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 25 "2281" _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 17 "25" _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 705 "2281" _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 17 "705" _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 26 "2281" _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 17 "26" _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 30 "2281" _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 17 "30" _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 19 "2281" _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 17 "19" _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 700 "2281" _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 17 "700" _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 701 "2281" _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 17 "701" _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 600 "2281" _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 17 "600" _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 1042 "2281 26 23" _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 17 "1042" _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 1043 "2281 26 23" _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 17 "1043" _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 18 "2281" _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 17 "18" _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 16 "2281" _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 17 "16" _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 27 "2281" _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 17 "27" _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 28 "2281" _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 17 "28" _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 29 "2281" _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 17 "29" _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 24 "2281" _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 17 "24" _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 2202 "2281" _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 17 "2202" _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 2203 "2281" _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 17 "2203" _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 2204 "2281" _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 17 "2204" _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 2205 "2281" _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 17 "2205" _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 2206 "2281" _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 17 "2206" _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 1560 "2281 26 23" _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 17 "1560" _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 1562 "2281 26 23" _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 17 "1562" _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 1700 "2281 26 23" _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 17 "1700" _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 702 "2281" _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 17 "702" _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 703 "2281" _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 17 "703" _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 704 "2281" _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 17 "704" _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 1082 "2281" _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 17 "1082" _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 1083 "2281 26 23" _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 17 "1083" _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 1266 "2281 26 23" _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 17 "1266" _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 1114 "2281 26 23" _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 17 "1114" _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 1184 "2281 26 23" _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 17 "1184" _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 1186 "2281 26 23" _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 17 "1186" _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 601 "2281" _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 17 "601" _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 602 "2281" _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 17 "602" _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 603 "2281" _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 17 "603" _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 604 "2281" _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 17 "604" _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 628 "2281" _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 17 "628" _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 718 "2281" _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 17 "718" _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 790 "2281" _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 17 "790" _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 829 "2281" _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 17 "829" _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 869 "2281" _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 17 "869" _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 650 "2281" _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 17 "650" _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 2275 "2281" _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 17 "2275" _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 2277 "2281" _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 17 "2277" _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 25 "26 16" _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 25 "25 16" _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 25 "26 16" _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 25 "26 23 16" _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 25 "26 16" _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 25 "25 26 16" _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 2249 "" "{25,25,1184,2211,16}" "{o,o,o,o,o}" "{name,statement,prepare_time,parameter_types,from_sql}" 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 2249 "" "{25,25,16,16,16,1184}" "{o,o,o,o,o,o}" "{name,statement,is_holdable,is_binary,is_scrollable,creation_time}" 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 2249 "" "{25,1186,16}" "{o,o,o}" "{abbrev,utc_offset,is_dst}" 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 2249 "" "{25,25,1186,16}" "{o,o,o,o}" "{name,abbrev,utc_offset,is_dst}" 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 23 "23 23 23" _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 23 "23 23" _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 20 "20 20 20" _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 20 "20 20" _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 1114 "1114 1114 1186" _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 1184 "1184 1184 1186" _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 16 "16 16" _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 16 "16 16" _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 16 "16" _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 16 "16" _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 16 "16" _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 21 "21" _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 21 "21" _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 23 "23" _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 23 "23" _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 20 "20" _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 20 "20" _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 1560 "1560" _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 1560 "1560" _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 1114 "1186 1082" _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 1266 "1186 1266" _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 1114 "1186 1114" _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 1184 "1186 1184" _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 1082 "23 1082" _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 26 "26" _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 16 "23" _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 23 "16" _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 20 "" _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 1184 "" _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 1184 "" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 16 "604 604" _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 16 "604 604" _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 16 "604 604" _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 16 "604 604" _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 16 "718 718" _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 16 "718 718" _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 16 "2281 603 23 26 2281" _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 2281 "2281" _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 2281 "2281" _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 2281 "2281 2281 2281" _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 2281 "2281 2281" _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 603 "2281 2281" _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 2281 "603 603 2281" _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 16 "2281 604 23 26 2281" _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 2281 "2281" _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 16 "2281 718 23 26 2281" _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 2281 "2281" _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 16 "2281 2281" _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 20 "2281 2281" _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 16 "2281 2281 2281 2281 2281 2281" _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 2281 "2281 2281 2281" _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 2278 "2281 2281" _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 2278 "2281" _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 2278 "2281" _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 2278 "2281" _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 2281 "2281 2281 2281" _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 2281 "2281 2281 2281 2281" _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 2281 "2281 2281" _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 2278 "2281 2281 2281 2281 2281 2281 2281 2281" _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 17 "1009 16" _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 2281 "2277 2281" _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 2281 "2277 2281 21 2281" _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 16 "2281 21 2281 2281" _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 16 "2277 2277" _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 16 "2277 2277" _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 16 "2277 2277" _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 2278 "20" _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 2278 "20" _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 16 "20" _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 16 "20" _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 16 "20" _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 16 "20" _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 2278 "23 23" _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 2278 "23 23" _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 16 "23 23" _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 16 "23 23" _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 16 "23 23" _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 16 "23 23" _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 2278 "" _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 142 "2275" _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 2275 "142" _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 142 "25" _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 142 "25" _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 16 "142 25" _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 142 "2281" _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 17 "142" _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 142 "142 142" _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 142 "142" _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 25 "142" _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 142 "2205 16 16 25" _null_ _null_ "{tbl,nulls,tableforest,targetns}" 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 142 "25 16 16 25" _null_ _null_ "{query,nulls,tableforest,targetns}" 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 142 "1790 23 16 16 25" _null_ _null_ "{cursor,count,nulls,tableforest,targetns}" 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 142 "2205 16 16 25" _null_ _null_ "{tbl,nulls,tableforest,targetns}" 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 142 "25 16 16 25" _null_ _null_ "{query,nulls,tableforest,targetns}" 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 142 "1790 16 16 25" _null_ _null_ "{cursor,nulls,tableforest,targetns}" 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 142 "2205 16 16 25" _null_ _null_ "{tbl,nulls,tableforest,targetns}" 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 142 "25 16 16 25" _null_ _null_ "{query,nulls,tableforest,targetns}" 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 142 "19 16 16 25" _null_ _null_ "{schema,nulls,tableforest,targetns}" 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 142 "19 16 16 25" _null_ _null_ "{schema,nulls,tableforest,targetns}" 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 142 "19 16 16 25" _null_ _null_ "{schema,nulls,tableforest,targetns}" 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 142 "16 16 25" _null_ _null_ "{nulls,tableforest,targetns}" 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 142 "16 16 25" _null_ _null_ "{nulls,tableforest,targetns}" 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 142 "16 16 25" _null_ _null_ "{nulls,tableforest,targetns}" 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 143 "25 142 1009" _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 143 "25 142" _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 2950 "2275" _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 2275 "2950" _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 16 "2950 2950" _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 16 "2950 2950" _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 16 "2950 2950" _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 16 "2950 2950" _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 16 "2950 2950" _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 16 "2950 2950" _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 23 "2950 2950" _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 2950 "2281" _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 17 "2950" _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 23 "2950" _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 3500 "2275" _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 2275 "3500" _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 3500 "2275 26" _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 2275 "3500" _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 16 "3500 3500" _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 16 "3500 3500" _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 16 "3500 3500" _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 16 "3500 3500" _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 16 "3500 3500" _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 16 "3500 3500" _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 23 "3500 3500" _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 23 "3500" _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 3500 "3500 3500" _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 3500 "3500 3500" _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 3500 "3500" _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 3500 "3500" _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 3500 "3500" _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 3500 "3500" _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 2277 "3500 3500" _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 2277 "3500" _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 3500 "2275 26" _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 17 "3500" _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 3614 "2275" _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 3614 "2281" _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 2275 "3614" _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 17 "3614" _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 3615 "2275" _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 3615 "2281" _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 2275 "3615" _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 17 "3615" _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 3642 "2275" _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 2275 "3642" _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 16 "3614 3614" _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 16 "3614 3614" _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 16 "3614 3614" _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 16 "3614 3614" _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 16 "3614 3614" _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 16 "3614 3614" _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 23 "3614 3614" _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 23 "3614" _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 3614 "3614" _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 3614 "3614 18" _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 3614 "3614 3614" _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 16 "3614 3615" _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 16 "3615 3614" _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 16 "25 25" _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 16 "25 3615" _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 2281 "2281" _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 2281 "2281" _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 2281 "2281 2281" _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 2281 "2281 2281" _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 2281 "3642 3642 2281" _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 2281 "2281 2281 2281" _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 16 "2281 3642 23 26 2281" _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 2281 "3614 2281" _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 2281 "3615 2281 21 2281" _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 16 "2281 21 3615 2281" _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 23 "25 25" _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 23 "25 25 21" _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 16 "3615 3615" _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 16 "3615 3615" _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 16 "3615 3615" _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 16 "3615 3615" _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 16 "3615 3615" _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 16 "3615 3615" _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 23 "3615 3615" _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 3615 "3615 3615" _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 3615 "3615 3615" _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 3615 "3615" _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 16 "3615 3615" _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 16 "3615 3615" _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 23 "3615" _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 25 "3615" _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 3615 "3615 3615 3615" _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 3615 "3615 25" _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 2281 "2281" _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 2281 "2281" _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 2281 "2281 2281" _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 2281 "2281 2281" _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 2281 "20 20 2281" _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 2281 "2281 2281 2281" _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 16 "2281 2281 23 26 2281" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 21 2281" _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 16 "2281" _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 2249 "25" "{25,25,23,23}" "{i,o,o,o}" "{query,word,ndoc,nentry}" 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 2249 "25 25" "{25,25,25,23,23}" "{i,i,o,o,o}" "{query,weights,word,ndoc,nentry}" 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 700 "1021 3614 3615 23" _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 700 "1021 3614 3615" _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 700 "3614 3615 23" _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 700 "3614 3615" _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 700 "1021 3614 3615 23" _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 700 "1021 3614 3615" _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 700 "3614 3615 23" _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 700 "3614 3615" _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 2249 "26" "{26,23,25,25}" "{i,o,o,o}" "{parser_oid,tokid,alias,description}" 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 2249 "25" "{25,23,25,25}" "{i,o,o,o}" "{parser_name,tokid,alias,description}" 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 2249 "26 25" "{26,25,23,25}" "{i,i,o,o}" "{parser_oid,txt,tokid,token}" 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 2249 "25 25" "{25,25,23,25}" "{i,i,o,o}" "{parser_name,txt,tokid,token}" 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 2281 "2281 23" _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 2281 "2281 2281 2281" _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 2278 "2281" _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 2281 "2281 2281 3615" _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 2281 "2281" _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 1009 "3769 25" _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 2281 "2281" _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 2281 "2281 2281 2281 2281" _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 2281 "2281" _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 2281 "2281 2281 2281 2281" _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 2281 "2281" _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 2281 "2281 2281 2281 2281" _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 2281 "2281" _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 2281 "2281 2281 2281 2281" _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 25 "3734 25 3615 25" _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 25 "3734 25 3615" _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 25 "25 3615 25" _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 25 "25 3615" _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 3614 "3734 25" _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 3615 "3734 25" _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 3615 "3734 25" _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 3614 "25" _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 3615 "25" _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 3615 "25" _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 2279 "" _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 2279 "" _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 3734 "" _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 3734 "2275" _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 2275 "3734" _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 3734 "2281" _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 17 "3734" _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 3769 "2275" _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 2275 "3769" _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 3769 "2281" _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 17 "3769" _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 2970 "2275" _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 2275 "2970" _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 2970 "2281" _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 17 "2970" _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 20 "" _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 2970 "" _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 20 "2970" _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 20 "2970" _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 20 "2970" _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 16 "20 2970" _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 16 "2249 2249" _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 16 "2249 2249" _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 16 "2249 2249" _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 16 "2249 2249" _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 16 "2249 2249" _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 16 "2249 2249" _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 23 "2249 2249" _null_ _null_ _null_ btrecordcmp _null_ _null_ _null_ )); DESCR("btree less-equal-greater"); /* * Symbolic values for provolatile column: these indicate whether the result --- 106,4612 ---- /* OIDS 1 - 99 */ ! DATA(insert OID = 1242 ( boolin PGNSP PGUID 12 1 0 0 f f f t f i 1 16 "2275" _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 2275 "16" _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 17 "2275" _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 2275 "17" _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 18 "2275" _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 2275 "18" _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 19 "2275" _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 2275 "19" _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 21 "2275" _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 2275 "21" _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 22 "2275" _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 2275 "22" _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 23 "2275" _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 2275 "23" _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 24 "2275" _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 2275 "24" _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 25 "2275" _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 2275 "25" _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 27 "2275" _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 2275 "27" _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 28 "2275" _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 2275 "28" _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 29 "2275" _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 2275 "29" _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 30 "2275" _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 2275 "30" _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 16 "16 16" _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 16 "16 16" _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 16 "16 16" _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 16 "18 18" _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 16 "19 19" _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 16 "21 21" _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 16 "21 21" _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 16 "23 23" _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 16 "23 23" _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 16 "25 25" _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 16 "28 28" _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 16 "29 29" _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 16 "18 18" _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 16 "18 18" _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 16 "18 18" _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 16 "18 18" _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 16 "18 18" _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 23 "18" _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 18 "23" _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 16 "19 25" _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 16 "19 25" _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 16 "25 25" _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 16 "25 25" _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 23 "25" _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 25 "25 25" _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 16 "16 16" _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 25 "" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 21 2281" _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 705 "2275" _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 2275 "705" _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 1700 "20" _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 16 "603 603" _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 16 "603 603" _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 600 "2275" _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 2275 "600" _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 601 "2275" _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 2275 "601" _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 602 "2275" _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 2275 "602" _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 603 "2275" _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 2275 "603" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 16 "600 600" _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 16 "600 600" _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 16 "600 600" _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 16 "600 600" _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 16 "600 600" _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 16 "600 603" _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 16 "600 602" _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 600 "603" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 21 2281" _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 23 "23 23" _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 16 "23 23" _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 16 "21 21" _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 16 "21 21" _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 16 "23 23" _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 16 "21 21" _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 16 "23 23" _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 16 "23 23" _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 16 "21 21" _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 21 "21 21" _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 21 "21 21" _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 23 "23 23" _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 21 "21 21" _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 23 "23 23" _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 16 "25 25" _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 16 "21 23" _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 16 "23 21" _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 16 "21 23" _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 16 "23 21" _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 16 "21 23" _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 16 "23 21" _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 16 "21 23" _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 16 "23 21" _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 16 "21 23" _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 16 "23 21" _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 16 "21 23" _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 16 "23 21" _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 23 "21 23" _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 23 "23 21" _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 23 "21 23" _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 23 "23 21" _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 21 "21 21" _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 23 "23 23" _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 23 "21 23" _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 23 "23 21" _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 21 "21 21" _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 23 "23 23" _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 23 "21 23" _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 23 "23 21" _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 16 "26 26" _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 16 "26 26" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 700 "2275" _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 2275 "700" _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 700 "700 700" _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 700 "700 700" _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 700 "700 700" _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 700 "700 700" _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 700 "700" _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 700 "700" _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 1022 "1022 700" _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 700 "700 700" _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 700 "700 700" _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 23 "23" _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 21 "21" _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 701 "2275" _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 2275 "701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701" _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 701 "701" _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 1022 "1022 701" _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 701 "701 701" _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 701 "701 701" _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 600 "601" _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 600 "602" _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 600 "604" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701 701" _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 701 "701" _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 701 "701" _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 701 "21" _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 700 "21" _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 21 "701" _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 21 "700" _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 701 "628 628" _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 702 "2275" _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 2275 "702" _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 703 "2275" _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 2275 "703" _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 702 "702 703" _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 702 "702 703" _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 704 "2275" _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 2275 "704" _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 16 "702 704" _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 703 "704" _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 702 "" _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 16 "702 702" _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 16 "702 702" _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 16 "702 702" _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 16 "702 702" _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 16 "702 702" _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 16 "702 702" _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 16 "703 703" _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 16 "703 703" _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 16 "703 703" _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 16 "703 703" _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 16 "703 703" _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 16 "703 703" _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 16 "704 704" _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 16 "704 704" _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 16 "704 704" _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 16 "704 703" _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 16 "704 703" _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 16 "704 703" _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 16 "704 703" _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 16 "704 703" _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 16 "704 703" _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 702 "704" _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 702 "704" _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 25 "" _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 16 "702" _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 16 "601 628" _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 16 "628 603" _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 701 "700 701" _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 701 "700 701" _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 701 "700 701" _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 701 "700 701" _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 701 "701 700" _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 701 "701 700" _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 701 "701 700" _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 701 "701 700" _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 16 "700 700" _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 16 "700 700" _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 16 "700 700" _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 16 "700 700" _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 16 "700 700" _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 16 "700 700" _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 16 "701 701" _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 16 "701 701" _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 16 "701 701" _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 16 "701 701" _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 16 "701 701" _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 16 "701 701" _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 16 "700 701" _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 16 "700 701" _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 16 "700 701" _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 16 "700 701" _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 16 "700 701" _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 16 "700 701" _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 16 "701 700" _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 16 "701 700" _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 16 "701 700" _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 16 "701 700" _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 16 "701 700" _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 16 "701 700" _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 23 "701 701 701 23" _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 701 "700" _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 700 "701" _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 23 "21" _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 21 "23" _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 16 "22 22" _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 701 "23" _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 23 "701" _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 700 "23" _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 23 "700" _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 16 "2281 2281" _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 20 "2281 2281" _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 16 "2281 2281 2281 2281 2281 2281" _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 2281 "2281 2281 2281" _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 2278 "2281 2281" _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 2278 "2281" _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 2278 "2281" _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 2278 "2281" _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 2281 "2281 2281 2281" _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 2281 "2281 2281 2281 2281" _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 2281 "2281 2281" _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 2278 "2281 2281 2281 2281 2281 2281 2281 2281" _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 17 "1009 16" _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 16 "604 604" _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 16 "604 604" _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 16 "604 604" _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 16 "604 604" _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 16 "604 604" _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 16 "604 604" _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 16 "604 604" _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 16 "604 604" _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 604 "2275" _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 2275 "604" _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 23 "21 21" _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 23 "23 23" _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 23 "20 20" _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 23 "700 700" _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 23 "701 701" _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 23 "26 26" _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 23 "30 30" _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 23 "702 702" _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 23 "18 18" _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 23 "19 19" _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 23 "25 25" _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 23 "790 790" _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 23 "703 703" _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 23 "704 704" _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 23 "2277 2277" _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 701 "601 601" _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 600 "601 601" _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 701 "600 601" _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 701 "600 603" _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 701 "601 603" _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 600 "600 601" _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 600 "600 603" _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 600 "601 603" _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 16 "600 601" _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 701 "602 602" _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 701 "600 602" _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 16 "601 603" _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 16 "601 603" _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 25 "1042" _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 25 "19" _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 19 "25" _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 1042 "19" _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 19 "1042" _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 16 "2281 2281" _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 20 "2281 2281" _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 16 "2281 2281 2281 2281 2281 2281" _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 2281 "2281 2281 2281" _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 2278 "2281 2281" _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 2278 "2281" _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 2278 "2281" _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 2278 "2281" _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 2281 "2281 2281 2281" _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 2281 "2281 2281 2281 2281" _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 2281 "2281 2281" _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 2278 "2281 2281 2281 2281 2281 2281 2281 2281" _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 17 "1009 16" _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 23 "21" _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 23 "23" _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 23 "20" _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 23 "700" _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 23 "701" _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 23 "26" _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 23 "18" _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 23 "19" _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 23 "25" _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 23 "2281" _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 23 "30" _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 23 "1033" _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 23 "22" _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 23 "829" _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 23 "869" _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 23 "1700" _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 25 "25 25" _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 25 "25 25" _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 20 "2275" _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 2275 "20" _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 20 "20" _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 20 "20 20" _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 20 "20 20" _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 20 "20 20" _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 20 "20 20" _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 16 "20 20" _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 16 "20 20" _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 16 "20 20" _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 16 "20 20" _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 16 "20 20" _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 16 "20 20" _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 16 "20 23" _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 16 "20 23" _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 16 "20 23" _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 16 "20 23" _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 16 "20 23" _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 16 "20 23" _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 23 "20" _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 20 "23" _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 701 "20" _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 20 "701" _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 700 "20" _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 20 "700" _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 21 "20" _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 20 "21" _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 16 "19 19" _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 16 "19 19" _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 16 "19 19" _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 16 "19 19" _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 16 "19 19" _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 1042 "1042 23 16" _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 1043 "1043 23 16" _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 704 "702 702" _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 16 "30 30" _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 16 "30 30" _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 16 "30 30" _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 16 "30 30" _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 16 "30 30" _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 16 "30 30" _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 19 "" _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 16 "26 26" _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 16 "26 26" _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 23 "17" _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 23 "17 23" _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 17 "17 23 23" _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 23 "17 23" _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 17 "17 23 23" _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 701 "600 628" _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 701 "628 603" _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 701 "601 628" _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 701 "718 604" _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 701 "604 604" _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 16 "25 25" _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 16 "25 25" _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 16 "25 25" _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 16 "25 25" _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 19 "" _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 19 "" _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 16 "2277 2277" _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 16 "2277 2277" _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 16 "2277 2277" _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 16 "2277 2277" _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 16 "2277 2277" _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 16 "2277 2277" _null_ _null_ _null_ array_ge _null_ _null_ _null_ )); DESCR("array greater than or equal"); ! DATA(insert OID = 747 ( array_dims PGNSP PGUID 12 1 0 0 f f f t f i 1 25 "2277" _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 2277 "2275 26 23" _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 2275 "2277" _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 23 "2277 23" _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 23 "2277 23" _null_ _null_ _null_ array_upper _null_ _null_ _null_ )); DESCR("array upper dimension"); ! DATA(insert OID = 378 ( array_append PGNSP PGUID 12 1 0 0 f f f f f i 2 2277 "2277 2283" _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 2277 "2283 2277" _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 2277 "2277 2277" _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 1009 "25 25" _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 25 "2277 25" _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 2277 "2277 2277" _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 2277 "2277 2277" _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 23 "2277 23 16" _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 23 "2277 23" _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 2277 "2283 1007" _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 2277 "2283 1007 1007" _null_ _null_ _null_ array_fill_with_lower_bounds _null_ _null_ _null_ )); DESCR("array constructor with value"); ! DATA(insert OID = 760 ( smgrin PGNSP PGUID 12 1 0 0 f f f t f s 1 210 "2275" _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 2275 "210" _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 16 "210 210" _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 16 "210 210" _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 26 "25" _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 26 "25 26" _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 23 "26 25" _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 23 "23" _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 23 "23 23" _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 23 "23 23" _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 21 "21 21" _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 21 "21 21" _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 16 "2281 2281" _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 20 "2281 2281" _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 16 "2281 2281 2281 2281 2281 2281" _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 2281 "2281 2281 2281" _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 2278 "2281 2281" _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 2278 "2281" _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 2278 "2281" _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 2278 "2281" _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 2281 "2281 2281 2281" _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 2281 "2281 2281 2281 2281" _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 2281 "2281 2281" _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 2278 "2281 2281 2281 2281 2281 2281 2281 2281" _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 17 "1009 16" _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 16 "704 704" _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 16 "704 704" _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 16 "704 704" _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 16 "704 704" _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 16 "704 704" _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 16 "704 704" _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 790 "790 700" _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 790 "790 700" _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 790 "700 790" _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 23 "25 25" _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 16 "25 25" _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 16 "25 25" _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 16 "23 20" _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 16 "23 20" _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 16 "23 20" _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 16 "23 20" _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 16 "23 20" _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 16 "23 20" _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 16 "19 25" _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 16 "19 25" _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 1042 "18" _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 19 "" _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 25 "" _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 790 "23 790" _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 790 "21 790" _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 790 "790 23" _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 790 "790 23" _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 790 "790 21" _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 790 "790 21" _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 790 "2275" _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 2275 "790" _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 16 "790 790" _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 16 "790 790" _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 16 "790 790" _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 16 "790 790" _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 16 "790 790" _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 16 "790 790" _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 790 "790 790" _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 790 "790 790" _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 790 "790 701" _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 790 "790 701" _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 790 "790 790" _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 790 "790 790" _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 790 "701 790" _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 25 "790" _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 21 "21 21" _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 23 "23 23" _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 20 "20 20" _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 20 "20 20" _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 18 "25" _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 25 "18" _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 23 "26 23" _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 23 "23" _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 17 "23 23" _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 23 "23 17" _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 23 "23 23 23" _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 26 "23" _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 26 "26" _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 23 "23" _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 23 "23 23" _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 16 "600 628" _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 16 "601 628" _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 600 "600 628" _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 600 "601 628" _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 600 "628 603" _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 23 "26" _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 16 "602 602" _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 701 "603" _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 701 "603" _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 701 "603" _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 701 "603 603" _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 701 "602" _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 603 "603 603" _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 601 "603" _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 16 "602 602" _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 16 "602 602" _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 16 "602 602" _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 16 "602 602" _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 16 "602 602" _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 701 "602" _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 16 "600 600" _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 16 "600 600" _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 16 "600 600" _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 701 "600 600" _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 701 "600 600" _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 601 "600 600" _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 16 "601 601" _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 16 "601 601" _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 16 "601 601" _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 16 "601" _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 16 "601" _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 16 "601 601" _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 1114 "1186 1184" _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 1033 "2275" _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 2275 "1033" _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 1034 "1034 1033" _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 1034 "1034 1033" _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 16 "1034 1033" _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 16 "1033 1033" _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 1033 "26 26 25 16" _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 1042 "2275 26 23" _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 2275 "1042" _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 23 "1263" _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 2275 "23" _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 1043 "2275 26 23" _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 2275 "1043" _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 23 "1263" _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 2275 "23" _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 16 "1042 1042" _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 16 "1042 1042" _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 16 "1042 1042" _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 16 "1042 1042" _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 16 "1042 1042" _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 16 "1042 1042" _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 1042 "1042 1042" _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 1042 "1042 1042" _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 23 "1042 1042" _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 23 "1042" _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 25 "26 23" _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 1082 "2275" _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 2275 "1082" _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 16 "1082 1082" _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 16 "1082 1082" _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 16 "1082 1082" _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 16 "1082 1082" _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 16 "1082 1082" _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 16 "1082 1082" _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 23 "1082 1082" _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 16 "1083 1083" _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 16 "1083 1083" _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 16 "1083 1083" _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 16 "1083 1083" _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 16 "1083 1083" _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 23 "1083 1083" _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 1082 "1082 1082" _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 1082 "1082 1082" _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 23 "1082 1082" _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 1082 "1082 23" _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 1082 "1082 23" _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 1083 "2275 26 23" _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 2275 "1083" _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 23 "1263" _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 2275 "23" _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 16 "1083 1083" _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 718 "718 600" _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 718 "718 600" _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 718 "718 600" _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 718 "718 600" _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 1184 "2275 26 23" _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 2275 "1184" _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 23 "1263" _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 2275 "23" _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 16 "1184 1184" _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 16 "1184 1184" _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 16 "1184 1184" _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 16 "1184 1184" _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 16 "1184 1184" _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 16 "1184 1184" _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 1184 "701" _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 1114 "25 1184" _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 1186 "2275 26 23" _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 2275 "1186" _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 23 "1263" _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 2275 "23" _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 16 "1186 1186" _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 16 "1186 1186" _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 16 "1186 1186" _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 16 "1186 1186" _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 16 "1186 1186" _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 16 "1186 1186" _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 1186 "1186" _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 1186 "1186 1186" _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 1186 "1186 1186" _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 701 "25 1184" _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 701 "25 1186" _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 1184 "702" _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 1184 "1082" _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 1186 "1186" _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 1186 "1186" _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 1186 "1186" _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 1184 "1082 1083" _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 1186 "703" _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 1082 "1184" _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 1082 "702" _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 702 "1184" _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 23 "28" _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 1186 "1184 1184" _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 1184 "1184 1186" _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 1184 "1184 1186" _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 703 "1186" _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 1184 "1184 1184" _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 1184 "1184 1184" _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 1186 "1186 1186" _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 1186 "1186 1186" _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 1186 "1184 1184" _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 1186 "1186 23" _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 25 "26 19" _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 25 "26 23" _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 25 "26 19" _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 1184 "25 1184" _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 1186 "25 1186" _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 20 "20" _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 20 "20 2276" _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 20 "20" _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 20 "20 20" _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 20 "20 20" _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 16 "25 25" _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 16 "25 25" _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 16 "19 25" _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 16 "19 25" _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 23 "23" _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 21 "21" _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 16 "1266 1266 1266 1266" _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 1114 "1082 1083" _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 701 "25 1266" _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 20 "20 23" _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 20 "20 23" _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 20 "20 23" _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 20 "20 23" _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 20 "23 20" _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 20 "23 20" _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 20 "23 20" _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 20 "23 20" _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 20 "20 21" _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 20 "20 21" _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 20 "20 21" _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 20 "20 21" _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 20 "21 20" _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 20 "21 20" _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 20 "21 20" _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 20 "21 20" _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 26 "20" _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 20 "26" _null_ _null_ _null_ oidtoi8 _null_ _null_ _null_ )); DESCR("convert oid to int8"); ! DATA(insert OID = 1292 ( tideq PGNSP PGUID 12 1 0 0 f f f t f i 2 16 "27 27" _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 27 "26 27" _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 27 "25 27" _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 16 "27 27" _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 16 "27 27" _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 16 "27 27" _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 16 "27 27" _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 16 "27 27" _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 23 "27 27" _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 27 "27 27" _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 27 "27 27" _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 1114 "1083 1082" _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 1184 "1082 1266" _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 1184 "1266 1082" _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 1184 "" _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 1184 "" _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 1184 "" _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 1184 "" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 21 2281" _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 16 "1184 1184 1184 1184" _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 16 "1184 1186 1184 1186" _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 16 "1184 1184 1184 1186" _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 16 "1184 1186 1184 1184" _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 16 "1083 1083 1083 1083" _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 16 "1083 1186 1083 1186" _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 16 "1083 1083 1083 1186" _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 16 "1083 1186 1083 1083" _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 1114 "2275 26 23" _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 2275 "1114" _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 23 "1263" _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 2275 "23" _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 23 "1184 1184" _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 23 "1186 1186" _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 1083 "1114" _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 23 "25" _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 23 "1042" _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 16 "28 23" _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 1186 "1186 701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701 701" _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 701 "701 701" _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 701 "701" _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 25 "26" _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 25 "30" _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 1266 "2275 26 23" _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 2275 "1266" _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 23 "1263" _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 2275 "23" _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 16 "1266 1266" _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 16 "1266 1266" _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 16 "1266 1266" _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 16 "1266 1266" _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 16 "1266 1266" _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 16 "1266 1266" _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 23 "1266 1266" _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 1184 "1082 1266" _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 1083 "702" _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 23 "1042" _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 23 "25" _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 1186 "1083" _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 23 "1042" _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 23 "25" _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 23 "1042" _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 1083 "1083 1083" _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 1083 "1083 1083" _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 1266 "1266 1266" _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 1266 "1266 1266" _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 23 "25" _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 701 "25 702" _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 701 "25 703" _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 701 "25 1082" _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 701 "25 1083" _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 1186 "1184" _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 1266 "1184" _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 16 "1082" _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 16 "1184" _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 16 "1186" _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 1700 "20" _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 700 "700" _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 701 "701" _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 20 "20" _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 23 "23" _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 21 "21" _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 19 "1043" _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 1043 "19" _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 19 "" _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 1003 "16" _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 25 "25 25 23 23" _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 25 "25 25 23" _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 16 "600 600" _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 16 "600 600" _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 16 "601 601" _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 16 "601 601" _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 16 "601" _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 16 "601" _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 16 "628 628" _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 16 "628 628" _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 16 "628" _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 16 "628" _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 600 "718" _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 1083 "1186" _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 603 "600 600" _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 603 "603 600" _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 603 "603 600" _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 603 "603 600" _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 603 "603 600" _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 16 "602 600" _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 16 "604 600" _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 16 "600 604" _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 16 "602" _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 16 "602" _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 23 "602" _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 602 "602" _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 602 "602" _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 602 "602 602" _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 602 "602 600" _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 602 "602 600" _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 602 "602 600" _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 602 "602 600" _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 600 "701 701" _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 600 "600 600" _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 600 "600 600" _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 600 "600 600" _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 600 "600 600" _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 23 "604" _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 603 "604" _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 602 "604" _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 604 "603" _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 604 "602" _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 718 "2275" _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 2275 "718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 16 "718 718" _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 701 "718" _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 701 "718" _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 701 "718" _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 701 "718 718" _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 600 "718" _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 718 "600 701" _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 718 "604" _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 604 "23 718" _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 701 "600 718" _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 16 "718 600" _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 16 "600 718" _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 718 "603" _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 603 "718" _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 704 "702 702" _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 16 "601 601" _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 16 "601 601" _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 16 "601 601" _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 16 "601 601" _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 16 "601 601" _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 701 "601" _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 600 "628 601" _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 600 "601 601" _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 628 "2275" _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 2275 "628" _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 16 "628 628" _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 628 "600 600" _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 600 "628 628" _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 16 "628 628" _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 16 "628 628" _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 16 "628 628" _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 16 "628" _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 16 "628" _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 701 "601" _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 701 "602" _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 600 "601" _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 600 "602" _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 600 "603" _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 600 "604" _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 601 "603" _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 600 "603" _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 600 "718" _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 604 "718" _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 23 "602" _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 23 "604" _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 1560 "2275 26 23" _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 2275 "1560" _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 23 "1263" _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 2275 "23" _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 16 "25 25" _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 16 "25 25" _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 16 "19 25" _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 16 "19 25" _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 20 "2205" _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 20 "2205" _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 20 "2205 20" _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 20 "2205 20 16" _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 1562 "2275 26 23" _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 2275 "1562" _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 23 "1263" _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 2275 "23" _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 16 "1560 1560" _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 16 "1560 1560" _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 16 "1560 1560" _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 16 "1560 1560" _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 16 "1560 1560" _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 16 "1560 1560" _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 23 "1560 1560" _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 701 "" _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 2278 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701 701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "701" _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 701 "" _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 1186 "1186 701" _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 23 "25" _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 25 "23" _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 25 "25 23" _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 25 "25 25" _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 1186 "701 1186" _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 16 "1042 25" _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 16 "1042 25" _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 16 "25 25" _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 16 "25 25" _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 16 "19 25" _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 16 "19 25" _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 25 "25 25" _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 16 "1042 25" _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 16 "1042 25" _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 16 "1042 25" _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 16 "1042 25" _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 16 "1042 25" _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 16 "1042 25" _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 2279 "" _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 23 "25 25" _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 25 "25" _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 25 "25" _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 25 "25" _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 25 "25 23 25" _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 25 "25 23 25" _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 25 "25 25" _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 25 "25 25" _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 25 "25 23 23" _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 25 "25 25 25" _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 25 "25 23" _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 25 "25 23" _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 25 "25" _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 25 "25" _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 25 "25 23" _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 25 "25 25" _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 25 "25" _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 25 "25 23 23" _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 25 "25 23" _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 25 "25 25 25" _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 25 "25 25 25" _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 25 "25 25 25 25" _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 1009 "25 25" _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 1009 "25 25 25" _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 25 "25 25 23" _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 25 "25 25" _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 25 "25 25 25" _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 1009 "25 25" _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 1009 "25 25 25" _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 25 "23" _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 25 "20" _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 19 "" _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 19 "" _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 23 "17 19" _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 25 "17 19" _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 17 "25 19" _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 17 "17 19 19" _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 23 "19" _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 19 "23" _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 16 "26 26" _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 16 "26 26" _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 25 "26" _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 25 "25" _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 25 "26" _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 19 "26" _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 25 "26" _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 25 "26" _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 25 "26" _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 25 "25 26" _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 25 "25 25" _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 25 "26" _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 25 "26" _null_ _null_ _null_ pg_get_function_arguments _null_ _null_ _null_ )); DESCR("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 25 "26" _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 2249 "" "{25,18,25}" "{o,o,o}" "{word,catcode,catdesc}" pg_get_keywords _null_ _null_ _null_ )); DESCR("list of SQL keywords"); /* 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 2279 "" _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 2279 "" _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 2279 "" _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 2279 "" _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 2279 "" _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 2279 "" _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 2279 "" _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 2279 "" _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 2279 "" _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 2279 "" _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 2279 "" _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 2279 "" _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 16 "1562 1562" _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 16 "1562 1562" _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 16 "1562 1562" _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 16 "1562 1562" _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 16 "1562 1562" _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 16 "1562 1562" _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 23 "1562 1562" _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 1560 "1560 1560" _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 1560 "1560 1560" _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 1560 "1560 1560" _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 1560 "1560" _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 1560 "1560 23" _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 1560 "1560 23" _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 1562 "1562 1562" _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 1560 "1560 23 23" _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 23 "1560" _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 23 "1560" _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 1560 "23 23" _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 23 "1560" _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 1560 "1560 23 16" _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 1562 "1562 23 16" _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 23 "1560 1560" _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 1560 "1560 23" _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 829 "2275" _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 2275 "829" _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 829 "829" _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 16 "829 829" _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 16 "829 829" _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 16 "829 829" _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 16 "829 829" _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 16 "829 829" _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 16 "829 829" _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 23 "829 829" _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 869 "2275" _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 2275 "869" _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 650 "2275" _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 2275 "650" _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 16 "869 869" _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 16 "869 869" _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 16 "869 869" _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 16 "869 869" _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 16 "869 869" _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 16 "869 869" _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 23 "869 869" _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 16 "869 869" _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 16 "869 869" _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 16 "869 869" _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 16 "869 869" _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 25 "869" _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 25 "650" _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 869 "869 23" _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 650 "650 23" _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 23 "869" _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 650 "869" _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 869 "869" _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 23 "869" _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 869 "869" _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 25 "869" _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 25 "869" _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 869 "869" _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 650 "869" _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 869 "" _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 23 "" _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 869 "" _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 23 "" _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 869 "869" _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 869 "869 869" _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 869 "869 869" _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 869 "869 20" _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 869 "20 869" _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 869 "869 20" _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 20 "869 869" _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 1186 "1083 1083" _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 16 "16 16" _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 16 "16 16" _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 23 "16 16" _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 23 "1083" _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 23 "1266" _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 23 "1186" _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 1700 "2275 26 23" _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 2275 "1700" _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 23 "1263" _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 2275 "23" _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 1700 "1700 23" _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 1700 "1700" _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 1700 "1700" _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 1700 "1700" _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 1700 "1700 23" _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 1700 "1700" _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 1700 "1700 23" _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 1700 "1700" _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 1700 "1700" _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 1700 "1700" _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 1700 "1700" _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 16 "1700 1700" _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 16 "1700 1700" _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 16 "1700 1700" _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 16 "1700 1700" _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 16 "1700 1700" _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 16 "1700 1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 1700 "1700" _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 1700 "1700" _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 1700 "1700" _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 1700 "1700" _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 1700 "1700" _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 1700 "1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 1700 "23" _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 1700 "1700" _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 1700 "700" _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 1700 "701" _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 23 "1700" _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 700 "1700" _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 701 "1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 23 "1700 1700 1700 23" _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 1083 "1083 1186" _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 1083 "1083 1186" _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 1266 "1266 1186" _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 1266 "1266 1186" _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 1700 "1700" _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 1700 "1700 1700" _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 1700 "1700 1700" _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 23 "1700 1700" _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 1700 "1700" _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 20 "1700" _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 1700 "20" _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 1700 "21" _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 21 "1700" _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 25 "1184 25" _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 25 "1700 25" _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 25 "23 25" _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 25 "20 25" _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 25 "700 25" _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 25 "701 25" _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 1700 "25 25" _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 1184 "25 25" _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 1082 "25 25" _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 25 "1186 25" _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 25 "25" _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 25 "25" _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 25 "2283" _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 25 "25" _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 25 "2283" _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 26 "2275" _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 2275 "26" _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 23 "17" _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 23 "25" _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 23 "1560" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 21 2281" _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 701 "2281 26 2281 21 2281" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 1231 "1231 1700" _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 1231 "1231 1700" _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 1231 "1231 21" _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 1231 "1231 23" _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 1231 "1231 20" _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 1231 "1231 20" _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 1700 "1231" _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 1700 "1231" _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 1700 "1231" _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 1700 "1231" _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 1700 "1231" _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 20 "20 21" _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 20 "20 23" _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 1700 "1700 20" _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 1187 "1187 1186" _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 1186 "1187" _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 1016 "1016 21" _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 1016 "1016 23" _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 1700 "1016" _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 20 "20 701 701" _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 1022 "1022 701 701" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 701 "1022" _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 25 "25" _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 25 "25 23" _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 25 "25 19" _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 1083 "1186 1083" _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 16 "21 20" _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 16 "21 20" _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 16 "21 20" _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 16 "21 20" _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 16 "21 20" _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 16 "21 20" _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 16 "20 21" _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 16 "20 21" _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 16 "20 21" _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 16 "20 21" _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 16 "20 21" _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 16 "20 21" _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 21 "21 21" _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 21 "21 21" _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 21 "21 21" _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 21 "21" _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 21 "21 23" _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 21 "21 23" _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 23 "23 23" _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 23 "23 23" _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 23 "23 23" _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 23 "23" _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 23 "23 23" _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 23 "23 23" _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 20 "20 20" _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 20 "20 20" _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 20 "20 20" _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 20 "20" _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 20 "20 23" _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 20 "20 23" _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 20 "20" _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 21 "21" _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 23 "23" _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 700 "700" _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 701 "701" _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 1700 "1700" _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 16 "19 25 25" _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 16 "19 26 25" _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 16 "26 25 25" _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 16 "26 26 25" _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 16 "25 25" _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 16 "26 25" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 1184 "26" _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 1184 "26" _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 1184 "26" _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 1184 "26" _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 23 "" _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 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}" 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 23 "" _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 23 "23" _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 26 "23" _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 26 "23" _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 25 "23" _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 16 "23" _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 1184 "23" _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 1184 "23" _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 1184 "23" _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 869 "23" _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 23 "23" _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 23 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "26" _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 20 "" _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 20 "" _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 20 "" _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 20 "" _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 20 "" _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 20 "" _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 20 "" _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 20 "26" _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 20 "26" _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 20 "26" _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 2278 "" _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 2278 "" _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 25 "17 25" _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 17 "25 25" _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 16 "17 17" _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 16 "17 17" _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 16 "17 17" _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 16 "17 17" _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 16 "17 17" _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 16 "17 17" _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 23 "17 17" _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 1114 "1114 23" _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 26 "26 26" _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 26 "26 26" _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 1184 "1184 23" _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 1083 "1083 23" _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 1266 "1266 23" _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 25 "25 2776" _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 25 "2776 25" _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 16 "17 17" _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 16 "17 17" _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 16 "17 17" _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 16 "17 17" _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 17 "17 17" _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 23 "17" _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 17 "17 17" _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 17 "17 23 23" _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 17 "17 23" _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 17 "17 23 23" _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 17 "17 23" _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 23 "17 17" _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 17 "17 17" _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 1083 "1184" _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 1114 "25 1114" _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 701 "25 1114" _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 1114 "702" _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 1114 "1082" _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 1114 "1082 1083" _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 1114 "1184" _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 1184 "1114" _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 1082 "1114" _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 702 "1114" _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 1186 "1114 1114" _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 1114 "1114 1186" _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 1114 "1114 1186" _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 1114 "1114 1114" _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 1114 "1114 1114" _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 1266 "25 1266" _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 1266 "1186 1266" _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 23 "1114" _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 16 "1114 1114 1114 1114" _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 16 "1114 1186 1114 1186" _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 16 "1114 1114 1114 1186" _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 16 "1114 1186 1114 1114" _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 23 "1114 1114" _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 1083 "1266" _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 1266 "1083" _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 16 "1114" _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 25 "1114 25" _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 16 "1114 1114" _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 16 "1114 1114" _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 16 "1114 1114" _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 16 "1114 1114" _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 16 "1114 1114" _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 16 "1114 1114" _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 1186 "1114 1114" _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 1186 "1114" _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 1184 "25 1114" _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 1184 "1186 1114" _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 1114 "1082 1186" _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 1114 "1082 1186" _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 25 "25 25" _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 25 "25 25 25" _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 1560 "20 23" _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 20 "1560" _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 25 "25" _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 25 "25 25 16" _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 2249 "" "{25,25,25,25,25,25,25,25,25,25,25,25,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}" 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 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}" 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 2249 "" "{28,25,1184,26,26}" "{o,o,o,o,o}" "{transaction,gid,prepared,ownerid,dbid}" 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 16 "26" _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 16 "26" _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 16 "26" _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 16 "26" _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 16 "26" _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 16 "26" _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 16 "26" _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 16 "26" _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 16 "26" _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 16 "26" _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 26 "" _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 16 "26" _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 16 "23" _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 16 "23" _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 25 "25" _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 25 "" _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 25 "" _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 25 "" _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 25 "" _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 2249 "25" "{25,25,23}" "{i,o,o}" "{wal_location,file_name,file_offset}" 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 25 "25" _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 16 "" _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 16 "" _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 2249 "25" "{25,20,1184,1184,1184,1184,16}" "{i,o,o,o,o,o,o}" "{filename,size,access,modification,change,creation,isdir}" 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 25 "25 20 20" _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 25 "25" _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 2278 "701" _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 25 "16" _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 1700 "20" _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 1700 "23" _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 1700 "21" _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 1700 "1700" _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 701 "700" _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 701 "701" _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 1186 "1186" _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 1700 "20" _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 20 "23" _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 20 "21" _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 700 "700" _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 701 "701" _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 790 "790" _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 1186 "1186" _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 1700 "1700" _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 20 "20" _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 23 "23" _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 21 "21" _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 26 "26" _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 700 "700" _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 701 "701" _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 702 "702" _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 1082 "1082" _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 1083 "1083" _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 1266 "1266" _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 790 "790" _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 1114 "1114" _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 1184 "1184" _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 1186 "1186" _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 25 "25" _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 1700 "1700" _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 2277 "2277" _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 1042 "1042" _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 27 "27" _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 20 "20" _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 23 "23" _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 21 "21" _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 26 "26" _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 700 "700" _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 701 "701" _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 702 "702" _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 1082 "1082" _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 1083 "1083" _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 1266 "1266" _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 790 "790" _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 1114 "1114" _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 1184 "1184" _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 1186 "1186" _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 25 "25" _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 1700 "1700" _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 2277 "2277" _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 1042 "1042" _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 27 "27" _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 20 "2276" _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 20 "" _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 1700 "20" _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 1700 "23" _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 1700 "21" _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 701 "700" _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 701 "701" _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 1700 "1700" _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 1700 "20" _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 1700 "23" _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 1700 "21" _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 701 "700" _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 701 "701" _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 1700 "1700" _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 1700 "20" _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 1700 "23" _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 1700 "21" _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 701 "700" _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 701 "701" _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 1700 "1700" _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 1700 "20" _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 1700 "23" _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 1700 "21" _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 701 "700" _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 701 "701" _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 1700 "1700" _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 1700 "20" _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 1700 "23" _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 1700 "21" _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 701 "700" _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 701 "701" _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 1700 "1700" _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 1700 "20" _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 1700 "23" _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 1700 "21" _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 701 "700" _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 701 "701" _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 1700 "1700" _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 20 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 701 "701 701" _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 16 "25 25" _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 16 "25 25" _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 16 "25 25" _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 16 "25 25" _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 23 "25 25" _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 16 "1042 1042" _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 16 "1042 1042" _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 16 "1042 1042" _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 16 "1042 1042" _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 23 "1042 1042" _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 23 "23 20" _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 23 "20 23" _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 23 "21 23" _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 23 "23 21" _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 23 "21 20" _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 23 "20 21" _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 23 "700 701" _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 23 "701 700" _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 2202 "2275" _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 2275 "2202" _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 2203 "2275" _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 2275 "2203" _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 2204 "2275" _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 2275 "2204" _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 2205 "2275" _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 2275 "2205" _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 2206 "2275" _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 2275 "2206" _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 2205 "25" _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 2278 "26" _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 2278 "26" _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 2278 "26" _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 16 "19 25 25" _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 16 "19 26 25" _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 16 "26 25 25" _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 16 "26 26 25" _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 16 "25 25" _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 16 "26 25" _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 16 "19 25 25" _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 16 "19 26 25" _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 16 "26 25 25" _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 16 "26 26 25" _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 16 "25 25" _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 16 "26 25" _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 16 "19 25 25" _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 16 "19 26 25" _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 16 "26 25 25" _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 16 "26 26 25" _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 16 "25 25" _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 16 "26 25" _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 16 "19 25 25" _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 16 "19 26 25" _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 16 "26 25 25" _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 16 "26 26 25" _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 16 "25 25" _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 16 "26 25" _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 16 "19 25 25" _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 16 "19 26 25" _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 16 "26 25 25" _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 16 "26 26 25" _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 16 "25 25" _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 16 "26 25" _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 16 "19 19 25" _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 16 "19 26 25" _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 16 "26 19 25" _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 16 "26 26 25" _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 16 "19 25" _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 16 "26 25" _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 23 "2276" _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 20 "26" _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 20 "19" _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 20 "26" _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 20 "19" _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 20 "2205" _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 20 "2205 25" _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 20 "2205" _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 25 "20" _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 2249 "2275 26 23" _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 2275 "2249" _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 2275 "2275" _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 2275 "2275" _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 2276 "2275" _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 2275 "2276" _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 2277 "2275" _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 2275 "2277" _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 2278 "2275" _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 2275 "2278" _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 2279 "2275" _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 2275 "2279" _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 2280 "2275" _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 2275 "2280" _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 2281 "2275" _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 2275 "2281" _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 2282 "2275" _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 2275 "2282" _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 2283 "2275" _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 2275 "2283" _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 2282 "2275" _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 2275 "2282" _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 2276 "2275 26 23" _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 2276 "2281 26 23" _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 2776 "2275" _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 2275 "2776" _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 25 "25" _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 25 "17" _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 16 "1082 1114" _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 16 "1082 1114" _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 16 "1082 1114" _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 16 "1082 1114" _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 16 "1082 1114" _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 16 "1082 1114" _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 23 "1082 1114" _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 16 "1082 1184" _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 16 "1082 1184" _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 16 "1082 1184" _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 16 "1082 1184" _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 16 "1082 1184" _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 16 "1082 1184" _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 23 "1082 1184" _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 16 "1114 1082" _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 16 "1114 1082" _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 16 "1114 1082" _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 16 "1114 1082" _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 16 "1114 1082" _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 16 "1114 1082" _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 23 "1114 1082" _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 16 "1184 1082" _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 16 "1184 1082" _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 16 "1184 1082" _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 16 "1184 1082" _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 16 "1184 1082" _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 16 "1184 1082" _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 23 "1184 1082" _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 16 "1114 1184" _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 16 "1114 1184" _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 16 "1114 1184" _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 16 "1114 1184" _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 16 "1114 1184" _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 16 "1114 1184" _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 23 "1114 1184" _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 16 "1184 1114" _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 16 "1184 1114" _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 16 "1184 1114" _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 16 "1184 1114" _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 16 "1184 1114" _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 16 "1184 1114" _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 23 "1184 1114" _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 2277 "2281 26 23" _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 17 "2277" _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 2249 "2281 26 23" _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 17 "2249" _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 21 "2281" _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 17 "21" _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 23 "2281" _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 17 "23" _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 20 "2281" _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 17 "20" _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 22 "2281" _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 17 "22" _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 17 "2281" _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 17 "17" _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 25 "2281" _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 17 "25" _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 705 "2281" _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 17 "705" _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 26 "2281" _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 17 "26" _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 30 "2281" _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 17 "30" _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 19 "2281" _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 17 "19" _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 700 "2281" _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 17 "700" _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 701 "2281" _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 17 "701" _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 600 "2281" _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 17 "600" _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 1042 "2281 26 23" _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 17 "1042" _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 1043 "2281 26 23" _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 17 "1043" _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 18 "2281" _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 17 "18" _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 16 "2281" _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 17 "16" _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 27 "2281" _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 17 "27" _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 28 "2281" _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 17 "28" _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 29 "2281" _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 17 "29" _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 24 "2281" _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 17 "24" _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 2202 "2281" _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 17 "2202" _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 2203 "2281" _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 17 "2203" _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 2204 "2281" _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 17 "2204" _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 2205 "2281" _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 17 "2205" _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 2206 "2281" _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 17 "2206" _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 1560 "2281 26 23" _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 17 "1560" _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 1562 "2281 26 23" _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 17 "1562" _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 1700 "2281 26 23" _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 17 "1700" _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 702 "2281" _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 17 "702" _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 703 "2281" _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 17 "703" _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 704 "2281" _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 17 "704" _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 1082 "2281" _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 17 "1082" _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 1083 "2281 26 23" _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 17 "1083" _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 1266 "2281 26 23" _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 17 "1266" _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 1114 "2281 26 23" _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 17 "1114" _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 1184 "2281 26 23" _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 17 "1184" _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 1186 "2281 26 23" _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 17 "1186" _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 601 "2281" _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 17 "601" _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 602 "2281" _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 17 "602" _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 603 "2281" _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 17 "603" _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 604 "2281" _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 17 "604" _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 628 "2281" _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 17 "628" _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 718 "2281" _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 17 "718" _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 790 "2281" _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 17 "790" _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 829 "2281" _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 17 "829" _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 869 "2281" _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 17 "869" _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 650 "2281" _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 17 "650" _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 2275 "2281" _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 17 "2275" _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 2277 "2281" _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 17 "2277" _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 25 "26 16" _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 25 "25 16" _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 25 "26 16" _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 25 "26 23 16" _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 25 "26 16" _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 25 "25 26 16" _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 2249 "" "{25,25,1184,2211,16}" "{o,o,o,o,o}" "{name,statement,prepare_time,parameter_types,from_sql}" 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 2249 "" "{25,25,16,16,16,1184}" "{o,o,o,o,o,o}" "{name,statement,is_holdable,is_binary,is_scrollable,creation_time}" 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 2249 "" "{25,1186,16}" "{o,o,o}" "{abbrev,utc_offset,is_dst}" 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 2249 "" "{25,25,1186,16}" "{o,o,o,o}" "{name,abbrev,utc_offset,is_dst}" 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 23 "23 23 23" _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 23 "23 23" _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 20 "20 20 20" _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 20 "20 20" _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 1114 "1114 1114 1186" _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 1184 "1184 1184 1186" _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 16 "16 16" _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 16 "16 16" _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 16 "16" _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 16 "16" _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 16 "16" _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 21 "21" _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 21 "21" _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 23 "23" _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 23 "23" _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 20 "20" _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 20 "20" _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 1560 "1560" _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 1560 "1560" _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 1114 "1186 1082" _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 1266 "1186 1266" _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 1114 "1186 1114" _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 1184 "1186 1184" _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 1082 "23 1082" _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 26 "26" _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 16 "23" _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 23 "16" _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 20 "" _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 1184 "" _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 1184 "" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 16 "603 603" _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 16 "604 604" _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 16 "604 604" _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 16 "604 604" _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 16 "604 604" _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 16 "718 718" _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 16 "718 718" _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 16 "2281 603 23 26 2281" _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 2281 "2281" _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 2281 "2281" _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 2281 "2281 2281 2281" _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 2281 "2281 2281" _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 603 "2281 2281" _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 2281 "603 603 2281" _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 16 "2281 604 23 26 2281" _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 2281 "2281" _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 16 "2281 718 23 26 2281" _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 2281 "2281" _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 16 "2281 2281" _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 20 "2281 2281" _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 16 "2281 2281 2281 2281 2281 2281" _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 2281 "2281 2281 2281" _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 2278 "2281 2281" _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 2278 "2281" _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 2278 "2281" _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 2278 "2281" _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 2281 "2281 2281 2281" _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 2281 "2281 2281 2281 2281" _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 2281 "2281 2281" _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 2278 "2281 2281 2281 2281 2281 2281 2281 2281" _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 17 "1009 16" _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 2281 "2277 2281" _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 2281 "2277 2281 21 2281" _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 16 "2281 21 2281 2281" _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 16 "2277 2277" _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 16 "2277 2277" _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 16 "2277 2277" _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 2278 "20" _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 2278 "20" _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 16 "20" _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 16 "20" _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 16 "20" _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 16 "20" _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 2278 "23 23" _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 2278 "23 23" _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 16 "23 23" _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 16 "23 23" _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 16 "23 23" _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 16 "23 23" _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 2278 "" _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 142 "2275" _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 2275 "142" _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 142 "25" _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 142 "25" _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 16 "142 25" _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 142 "2281" _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 17 "142" _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 142 "142 142" _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 142 "142" _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 25 "142" _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 142 "2205 16 16 25" _null_ _null_ "{tbl,nulls,tableforest,targetns}" 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 142 "25 16 16 25" _null_ _null_ "{query,nulls,tableforest,targetns}" 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 142 "1790 23 16 16 25" _null_ _null_ "{cursor,count,nulls,tableforest,targetns}" 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 142 "2205 16 16 25" _null_ _null_ "{tbl,nulls,tableforest,targetns}" 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 142 "25 16 16 25" _null_ _null_ "{query,nulls,tableforest,targetns}" 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 142 "1790 16 16 25" _null_ _null_ "{cursor,nulls,tableforest,targetns}" 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 142 "2205 16 16 25" _null_ _null_ "{tbl,nulls,tableforest,targetns}" 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 142 "25 16 16 25" _null_ _null_ "{query,nulls,tableforest,targetns}" 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 142 "19 16 16 25" _null_ _null_ "{schema,nulls,tableforest,targetns}" 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 142 "19 16 16 25" _null_ _null_ "{schema,nulls,tableforest,targetns}" 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 142 "19 16 16 25" _null_ _null_ "{schema,nulls,tableforest,targetns}" 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 142 "16 16 25" _null_ _null_ "{nulls,tableforest,targetns}" 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 142 "16 16 25" _null_ _null_ "{nulls,tableforest,targetns}" 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 142 "16 16 25" _null_ _null_ "{nulls,tableforest,targetns}" 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 143 "25 142 1009" _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 143 "25 142" _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 2950 "2275" _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 2275 "2950" _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 16 "2950 2950" _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 16 "2950 2950" _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 16 "2950 2950" _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 16 "2950 2950" _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 16 "2950 2950" _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 16 "2950 2950" _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 23 "2950 2950" _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 2950 "2281" _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 17 "2950" _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 23 "2950" _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 3500 "2275" _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 2275 "3500" _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 3500 "2275 26" _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 2275 "3500" _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 16 "3500 3500" _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 16 "3500 3500" _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 16 "3500 3500" _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 16 "3500 3500" _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 16 "3500 3500" _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 16 "3500 3500" _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 23 "3500 3500" _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 23 "3500" _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 3500 "3500 3500" _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 3500 "3500 3500" _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 3500 "3500" _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 3500 "3500" _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 3500 "3500" _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 3500 "3500" _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 2277 "3500 3500" _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 2277 "3500" _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 3500 "2275 26" _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 17 "3500" _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 3614 "2275" _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 3614 "2281" _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 2275 "3614" _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 17 "3614" _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 3615 "2275" _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 3615 "2281" _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 2275 "3615" _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 17 "3615" _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 3642 "2275" _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 2275 "3642" _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 16 "3614 3614" _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 16 "3614 3614" _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 16 "3614 3614" _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 16 "3614 3614" _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 16 "3614 3614" _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 16 "3614 3614" _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 23 "3614 3614" _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 23 "3614" _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 3614 "3614" _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 3614 "3614 18" _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 3614 "3614 3614" _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 16 "3614 3615" _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 16 "3615 3614" _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 16 "25 25" _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 16 "25 3615" _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 2281 "2281" _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 2281 "2281" _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 2281 "2281 2281" _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 2281 "2281 2281" _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 2281 "3642 3642 2281" _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 2281 "2281 2281 2281" _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 16 "2281 3642 23 26 2281" _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 2281 "3614 2281" _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 2281 "3615 2281 21 2281" _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 16 "2281 21 3615 2281" _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 23 "25 25" _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 23 "25 25 21" _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 16 "3615 3615" _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 16 "3615 3615" _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 16 "3615 3615" _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 16 "3615 3615" _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 16 "3615 3615" _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 16 "3615 3615" _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 23 "3615 3615" _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 3615 "3615 3615" _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 3615 "3615 3615" _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 3615 "3615" _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 16 "3615 3615" _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 16 "3615 3615" _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 23 "3615" _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 25 "3615" _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 3615 "3615 3615 3615" _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 3615 "3615 25" _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 2281 "2281" _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 2281 "2281" _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 2281 "2281 2281" _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 2281 "2281 2281" _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 2281 "20 20 2281" _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 2281 "2281 2281 2281" _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 16 "2281 2281 23 26 2281" _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 701 "2281 26 2281 23" _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 701 "2281 26 2281 21 2281" _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 16 "2281" _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 2249 "25" "{25,25,23,23}" "{i,o,o,o}" "{query,word,ndoc,nentry}" 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 2249 "25 25" "{25,25,25,23,23}" "{i,i,o,o,o}" "{query,weights,word,ndoc,nentry}" 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 700 "1021 3614 3615 23" _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 700 "1021 3614 3615" _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 700 "3614 3615 23" _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 700 "3614 3615" _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 700 "1021 3614 3615 23" _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 700 "1021 3614 3615" _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 700 "3614 3615 23" _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 700 "3614 3615" _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 2249 "26" "{26,23,25,25}" "{i,o,o,o}" "{parser_oid,tokid,alias,description}" 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 2249 "25" "{25,23,25,25}" "{i,o,o,o}" "{parser_name,tokid,alias,description}" 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 2249 "26 25" "{26,25,23,25}" "{i,i,o,o}" "{parser_oid,txt,tokid,token}" 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 2249 "25 25" "{25,25,23,25}" "{i,i,o,o}" "{parser_name,txt,tokid,token}" 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 2281 "2281 23" _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 2281 "2281 2281 2281" _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 2278 "2281" _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 2281 "2281 2281 3615" _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 2281 "2281" _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 1009 "3769 25" _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 2281 "2281" _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 2281 "2281 2281 2281 2281" _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 2281 "2281" _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 2281 "2281 2281 2281 2281" _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 2281 "2281" _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 2281 "2281 2281 2281 2281" _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 2281 "2281" _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 2281 "2281 2281 2281 2281" _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 25 "3734 25 3615 25" _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 25 "3734 25 3615" _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 25 "25 3615 25" _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 25 "25 3615" _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 3614 "3734 25" _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 3615 "3734 25" _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 3615 "3734 25" _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 3614 "25" _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 3615 "25" _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 3615 "25" _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 2279 "" _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 2279 "" _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 3734 "" _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 3734 "2275" _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 2275 "3734" _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 3734 "2281" _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 17 "3734" _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 3769 "2275" _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 2275 "3769" _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 3769 "2281" _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 17 "3769" _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 2970 "2275" _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 2275 "2970" _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 2970 "2281" _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 17 "2970" _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 20 "" _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 2970 "" _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 20 "2970" _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 20 "2970" _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 20 "2970" _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 16 "20 2970" _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 16 "2249 2249" _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 16 "2249 2249" _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 16 "2249 2249" _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 16 "2249 2249" _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 16 "2249 2249" _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 16 "2249 2249" _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 23 "2249 2249" _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 20 "" _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 20 "" _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 20 "" _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 701 "" _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 701 "" _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 23 "23" _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 2 2283 "2283 23" _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 3 2283 "2283 23 2283" _null_ _null_ _null_ lag_withdefault _null_ _null_ _null_)); + DESCR("fetch the preceding row value with default"); + DATA(insert OID = 3906 ( lead PGNSP PGUID 12 1 0 0 f t f t f s 2 2283 "2283 23" _null_ _null_ _null_ lead _null_ _null_ _null_)); + DESCR("fetch the following row value"); + DATA(insert OID = 3907 ( lead PGNSP PGUID 12 1 0 0 f t f t f s 3 2283 "2283 23 2283" _null_ _null_ _null_ lead_withdefault _null_ _null_ _null_)); + DESCR("fetch the following row value with default"); + DATA(insert OID = 3908 ( first_value PGNSP PGUID 12 1 0 0 f t f t f s 1 2283 "2283" _null_ _null_ _null_ first_value _null_ _null_ _null_)); + DESCR("fetch the first row value"); + DATA(insert OID = 3909 ( last_value PGNSP PGUID 12 1 0 0 f t f t f s 1 2283 "2283" _null_ _null_ _null_ last_value _null_ _null_ _null_)); + DESCR("fetch the last row value"); + DATA(insert OID = 3910 ( nth_value PGNSP PGUID 12 1 0 0 f t f t f s 2 2283 "2283 23" _null_ _null_ _null_ nth_value _null_ _null_ _null_)); + DESCR("fetch following row value"); /* * Symbolic values for provolatile column: these indicate whether the result *** a/src/include/executor/executor.h --- b/src/include/executor/executor.h *************** *** 118,123 **** extern TupleHashEntry FindTupleHashEntry(TupleHashTable hashtable, --- 118,124 ---- TupleTableSlot *slot, FmgrInfo *eqfunctions, FmgrInfo *hashfunctions); + extern Datum GetAggInitVal(Datum textInitVal, Oid transtype); /* * prototypes from functions in execJunk.c *** /dev/null --- b/src/include/executor/nodeWindow.h *************** *** 0 **** --- 1,65 ---- + /*------------------------------------------------------------------------- + * + * 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(n) ((WindowObject) ((WindowState *) fcinfo->context)->winobj) + #define PG_WINDOW_ARG(n) ((ExprState *) (DatumGetPointer(fcinfo->arg[n]))) + + #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; + typedef struct WindowIterData *WindowIter; + + extern int64 WinRowCurrentPos(WindowObject winobj); + extern Datum WinRowGetArg(WindowObject winobj, ExprState *argstate, bool *isnull); + extern bool WinRowGetTuple(WindowObject winobj, TupleTableSlot *slot); + + extern bool WinFrameShrinked(WindowObject winobj); + extern bool WinFrameExtended(WindowObject winobj); + extern int64 WinFrameGetRowNum(WindowObject winobj); + extern Datum WinFrameGetArg(WindowObject winobj, ExprState *argstate, + int relpos, int seektype, bool *isnull, bool *isout); + extern bool WinFrameGetTuple(WindowObject winobj, TupleTableSlot *slot, + int relpos, int seektype, bool *isout); + extern int WinFrameShrinkingNum(WindowObject winobj); + extern int WinFrameExtendedNum(WindowObject winobj); + + extern int64 WinPartGetRowNum(WindowObject winobj); + extern Datum WinPartGetArg(WindowObject winobj, ExprState *argstate, + int relpos, int seektype, bool *isnull, bool *isout); + extern bool WinPartGetTuple(WindowObject winobj, TupleTableSlot *slot, + int relpos, int seektype, bool *isout); + + extern WindowIter WinFrameStartIter(WindowObject winobj, int pos); + extern WindowIter WinPartStartIter(WindowObject winobj, int pos); + extern bool WinIterNext(WindowIter iter); + extern Datum WinIterGetArg(WindowIter iter, ExprState *argstate, bool *isnull); + extern bool WinIterGetTuple(WindowIter iter, TupleTableSlot *slot); + + #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(). + * + * WFunc 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/WFunc nodes in expression */ ! Datum *ecxt_aggvalues; /* precomputed values for Aggref/WFunc nodes */ ! bool *ecxt_aggnulls; /* null flags for Aggref/WFunc nodes */ /* Value to substitute for CaseTestExpr nodes in expression */ Datum caseValue_datum; *************** *** 504,509 **** typedef struct AggrefExprState --- 507,523 ---- } AggrefExprState; /* ---------------- + * WFuncExprState node + * ---------------- + */ + typedef struct WFuncExprState + { + ExprState xprstate; + List *args; /* states of argument expressions */ + int funcno; /* ID number for WFunc within its Window plan node */ + } WFuncExprState; + + /* ---------------- * ArrayRefExprState node * * Note: array types can be fixed-length (typlen > 0), but only when the *************** *** 1570,1573 **** typedef struct LimitState --- 1584,1626 ---- TupleTableSlot *subSlot; /* tuple last obtained from subplan */ } LimitState; + /* these are private structures in nodeWindow.c */ + typedef struct WindowStatePerFuncData *WindowStatePerFunc; + typedef struct WindowStatePerAggData *WindowStatePerAgg; + typedef struct WindowStatePerGroupData *WindowStatePerGroup; + + /* ---------------- + * 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 WFunc nodes in targetlist */ + int numfuncs; /* number of window functions */ + int numaggs; /* number of wingow aggregates */ + WindowStatePerFunc perfunc; /* per-WFunc information */ + WindowStatePerAgg peragg; /* per-Agg function information */ + WindowStatePerGroup pergroup; /* per-Agg, per-Group function information */ + struct WindowObjectData *winobj; /* window object used in window API */ + int strategy; /* buffering strategy ID */ + + ExprContext *tmpcontext; + bool win_done; /* indicates completion of Window scan */ + HeapTuple prt_firstTuple; /* copy of first tuple of current partition */ + bool prt_processing; + + MemoryContext wincontext; /* memory context for long-lived data */ + + int eflags; /* flags passed at InitNode */ + } 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_WFunc, T_ArrayRef, T_FuncExpr, T_OpExpr, *************** *** 164,169 **** typedef enum NodeTag --- 167,173 ---- T_ExprState = 400, T_GenericExprState, T_AggrefExprState, + T_WFuncExprState, T_ArrayRefExprState, T_FuncExprState, T_ScalarArrayOpExprState, *************** *** 334,339 **** typedef enum NodeTag --- 338,347 ---- T_ParamRef, T_A_Const, T_FuncCall, + T_WinDef, + T_OrderClause, + T_PartitionClause, + 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; + 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 WinDef *win_definition; /* window definition */ int location; /* token location, or -1 if unknown */ } FuncCall; *************** *** 697,702 **** typedef struct SortGroupClause --- 701,755 ---- } SortGroupClause; /* + * OrderClause - + * representation of ORDER BY in Window + */ + typedef SortGroupClause OrderClause; + + + /* + * PartitionClause - + * representaition of PATITION BY in Window + */ + typedef SortGroupClause PartitionClause; + + /* + * WinDef - + * + * 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 WinDefs are created, then + * are aggregated in transformation. + */ + typedef struct WinDef + { + NodeTag type; + List *partitionClause; /* PARTITION BY expression list */ + List *orderClause; /* ORDER BY expression list */ + WFunc *wfunc; /* function calls attached with this definition */ + char *name; /* WINDOW name if this definition refers to other one */ + int location; /* parse location */ + } WinDef; + + /* + * 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 * *************** *** 831,836 **** 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,658 ---- Node *limitCount; /* COUNT parameter, or NULL if none */ } Limit; + /* ---------------- + * window frame bound type + * ---------------- + */ + #define FRAME_UNBOUNDED 1 + #define FRAME_CURRENT_ROW 2 + #define FRAME_ROWS 3 + #define FRAME_RANGE 4 + + /* ---------------- + * 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 preceding_type; /* type of frame preceding bound */ + int following_type; /* type of frame following bound */ + uint32 preceding_rows; /* used only when FRAME_ROWS */ + uint32 following_rows; /* used only when FRAME_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; + /* + * WFunc 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->pure_agg + * to true. + */ + typedef struct WFunc + { + 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 WinDef */ + bool pure_agg; /* is only-aggreate-support function? */ + int location; /* token location, or -1 if unknown */ + } WFunc; + /* ---------------- * ArrayRef: describes an array subscripting operation * *** a/src/include/optimizer/planmain.h --- b/src/include/optimizer/planmain.h *************** *** 34,39 **** extern void query_planner(PlannerInfo *root, List *tlist, --- 34,40 ---- */ extern Plan *optimize_minmax_aggregates(PlannerInfo *root, List *tlist, Path *best_path); + extern Aggref *find_aggref(Node *node); /* * prototypes for plan/createplan.c *************** *** 69,74 **** extern SetOp *make_setop(SetOpCmd cmd, SetOpStrategy strategy, Plan *lefttree, --- 70,78 ---- 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, WFunc *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 *transformOrderClause(ParseState *pstate, List *orderlist, + List **targetlist, bool resolveUnknown); + extern List *transformPartitionClause(ParseState *pstate, List *partitionlist, + List **targetlist); + + extern List *transformWinDef(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); extern int func_match_argtypes(int nargs, Oid *input_typeids, --- 44,56 ---- extern Node *ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs, bool agg_star, bool agg_distinct, bool func_variadic, ! bool is_column, WinDef *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); extern int func_match_argtypes(int nargs, Oid *input_typeids, *** 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 checkExprHasWFuncs(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 *************** *** 971,976 **** extern Datum uuid_ne(PG_FUNCTION_ARGS); --- 971,991 ---- 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', '8','1','3') #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 *************** *** 65,70 **** extern void tuplestore_select_read_pointer(Tuplestorestate *state, int ptr); --- 65,71 ---- extern void tuplestore_copy_read_pointer(Tuplestorestate *state, int srcptr, int destptr); + extern void tuplestore_write_to_read_pointer(Tuplestorestate * state, int readptr); extern bool tuplestore_gettupleslot(Tuplestorestate *state, bool forward, TupleTableSlot *slot); *** a/src/interfaces/ecpg/preproc/preproc.y --- b/src/interfaces/ecpg/preproc/preproc.y *************** *** 436,445 **** add_typedef(char *name, char * dimension, char * length, enum ECPGttype type_enu 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 EXCLUSIVE EXCLUDING ! 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 --- 436,445 ---- 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 EXCLUSIVE ! EXCLUDING 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 *************** *** 466,481 **** add_typedef(char *name, char * dimension, char * length, enum ECPGttype type_enu 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 SAVEPOINT SCHEMA SCROLL SEARCH SECOND_P SECURITY SELECT SEQUENCE --- 466,481 ---- 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 SAVEPOINT SCHEMA SCROLL SEARCH SECOND_P SECURITY SELECT SEQUENCE *************** *** 484,498 **** add_typedef(char *name, char * dimension, char * length, enum ECPGttype type_enu 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 --- 484,498 ---- 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 *** a/src/test/regress/expected/opr_sanity.out --- b/src/test/regress/expected/opr_sanity.out *************** *** 1116,1118 **** WHERE p1.amproc = p2.oid AND --- 1116,1138 ---- --------------+--------+-------- (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 | lead + 3907 | lead + 3908 | first_value + 3909 | last_value + 3910 | nth_value + (13 rows) + *** /dev/null --- b/src/test/regress/expected/window.out *************** *** 0 **** --- 1,578 ---- + -- + -- 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.333333333333333 | 0 | 0 + 0.666666666666667 | 0 | 0 + 1 | 4 | 0 + 0.25 | 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 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 * 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(ten) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10; + last_value | ten | four + ------------+-----+------ + 0 | 0 | 0 + 0 | 0 | 0 + 4 | 4 | 0 + 1 | 1 | 1 + 1 | 1 | 1 + 7 | 7 | 1 + 9 | 9 | 1 + 0 | 0 | 2 + 1 | 1 | 3 + 3 | 3 | 3 + (10 rows) + + SELECT last_value(ten) OVER (PARTITION BY four), ten, four FROM tenk1 WHERE unique2 < 10 ORDER BY four, ten; + last_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 + 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 + 7 | 1 | 1 + 7 | 1 | 1 + 7 | 7 | 1 + 7 | 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 + -------- + 21 + 22 + 87 + 22 + 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) + + -- 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 + 11200 | 2 + 16400 | 2 + 20900 | 4 + 25100 | 5 + 3900 | 1 + 7400 | 2 + 5000 | 1 + 9800 | 2 + 14600 | 2 + (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 (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 rank() OVER (PARTITION BY four) FROM tenk1; + ERROR: this function requires ORDER BY clause in the window + 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(null) OVER (ORDER BY ten), ten, four FROM tenk1; + ERROR: null bucket number + SELECT nth_value(four, null) OVER (ORDER BY ten), ten, four FROM tenk1; + ERROR: nth value is null + -- cleanup + DROP VIEW vsumsalary; + DROP TABLE empsalary; *** a/src/test/regress/parallel_schedule --- b/src/test/regress/parallel_schedule *************** *** 69,75 **** ignore: random # ---------- # Another group of parallel tests # ---------- ! test: select_into select_distinct select_distinct_on select_implicit select_having subselect union case join aggregates transactions random portals arrays btree_index hash_index update namespace prepared_xacts delete test: privileges test: misc --- 69,75 ---- # ---------- # Another group of parallel tests # ---------- ! test: select_into select_distinct select_distinct_on select_implicit select_having subselect union case join aggregates transactions random portals arrays btree_index hash_index update namespace prepared_xacts delete window test: privileges test: misc *** 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 *************** *** 892,894 **** FROM pg_amproc AS p1, pg_proc AS p2 --- 892,898 ---- 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,153 ---- + -- + -- 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 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 * 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(ten) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10; + + SELECT last_value(ten) OVER (PARTITION BY four), ten, four FROM tenk1 WHERE unique2 < 10 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); + + -- 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); + + -- 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 (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 rank() OVER (PARTITION BY four) FROM tenk1; + + SELECT count() OVER () FROM tenk1; + + SELECT generate_series(1, 100) OVER () FROM empsalary; + + SELECT ntile(null) OVER (ORDER BY ten), ten, four FROM tenk1; + + SELECT nth_value(four, null) OVER (ORDER BY ten), ten, four FROM tenk1; + + -- cleanup + DROP VIEW vsumsalary; + DROP TABLE empsalary;