提交 20a1b9e7 编写于 作者: B Bruce Momjian

Add contrib function references in the doc index

Backpatch to 9.3.
Idea from Craig Ringer
上级 6bc8ef0b
......@@ -29,6 +29,10 @@
<refpurpose>opens a persistent connection to a remote database</refpurpose>
</refnamediv>
<indexterm>
<primary>dblink_connect</primary>
</indexterm>
<refsynopsisdiv>
<synopsis>
dblink_connect(text connstr) returns text
......@@ -189,6 +193,10 @@ DROP SERVER fdtest;
<refpurpose>opens a persistent connection to a remote database, insecurely</refpurpose>
</refnamediv>
<indexterm>
<primary>dblink_connect_u</primary>
</indexterm>
<refsynopsisdiv>
<synopsis>
dblink_connect_u(text connstr) returns text
......@@ -242,6 +250,10 @@ dblink_connect_u(text connname, text connstr) returns text
<refpurpose>closes a persistent connection to a remote database</refpurpose>
</refnamediv>
<indexterm>
<primary>dblink_disconnect</primary>
</indexterm>
<refsynopsisdiv>
<synopsis>
dblink_disconnect() returns text
......@@ -313,6 +325,10 @@ SELECT dblink_disconnect('myconn');
<refpurpose>executes a query in a remote database</refpurpose>
</refnamediv>
<indexterm>
<primary>dblink</primary>
</indexterm>
<refsynopsisdiv>
<synopsis>
dblink(text connname, text sql [, bool fail_on_error]) returns setof record
......@@ -527,6 +543,10 @@ SELECT * FROM dblink('myconn', 'select proname, prosrc from pg_proc')
<refpurpose>executes a command in a remote database</refpurpose>
</refnamediv>
<indexterm>
<primary>dblink_exec</primary>
</indexterm>
<refsynopsisdiv>
<synopsis>
dblink_exec(text connname, text sql [, bool fail_on_error]) returns text
......@@ -660,6 +680,10 @@ DETAIL: ERROR: null value in column "relnamespace" violates not-null constrain
<refpurpose>opens a cursor in a remote database</refpurpose>
</refnamediv>
<indexterm>
<primary>dblink_open</primary>
</indexterm>
<refsynopsisdiv>
<synopsis>
dblink_open(text cursorname, text sql [, bool fail_on_error]) returns text
......@@ -780,6 +804,10 @@ SELECT dblink_open('foo', 'select proname, prosrc from pg_proc');
<refpurpose>returns rows from an open cursor in a remote database</refpurpose>
</refnamediv>
<indexterm>
<primary>dblink_fetch</primary>
</indexterm>
<refsynopsisdiv>
<synopsis>
dblink_fetch(text cursorname, int howmany [, bool fail_on_error]) returns setof record
......@@ -929,6 +957,10 @@ SELECT * FROM dblink_fetch('foo', 5) AS (funcname name, source text);
<refpurpose>closes a cursor in a remote database</refpurpose>
</refnamediv>
<indexterm>
<primary>dblink_close</primary>
</indexterm>
<refsynopsisdiv>
<synopsis>
dblink_close(text cursorname [, bool fail_on_error]) returns text
......@@ -1036,6 +1068,10 @@ SELECT dblink_close('foo');
<refpurpose>returns the names of all open named dblink connections</refpurpose>
</refnamediv>
<indexterm>
<primary>dblink_get_connections</primary>
</indexterm>
<refsynopsisdiv>
<synopsis>
dblink_get_connections() returns text[]
......@@ -1077,6 +1113,10 @@ SELECT dblink_get_connections();
<refpurpose>gets last error message on the named connection</refpurpose>
</refnamediv>
<indexterm>
<primary>dblink_error_message</primary>
</indexterm>
<refsynopsisdiv>
<synopsis>
dblink_error_message(text connname) returns text
......@@ -1136,6 +1176,10 @@ SELECT dblink_error_message('dtest1');
<refpurpose>sends an async query to a remote database</refpurpose>
</refnamediv>
<indexterm>
<primary>dblink_send_query</primary>
</indexterm>
<refsynopsisdiv>
<synopsis>
dblink_send_query(text connname, text sql) returns int
......@@ -1214,6 +1258,10 @@ SELECT dblink_send_query('dtest1', 'SELECT * FROM foo WHERE f1 &lt; 3');
<refpurpose>checks if connection is busy with an async query</refpurpose>
</refnamediv>
<indexterm>
<primary>dblink_is_busy</primary>
</indexterm>
<refsynopsisdiv>
<synopsis>
dblink_is_busy(text connname) returns int
......@@ -1273,6 +1321,10 @@ SELECT dblink_is_busy('dtest1');
<refpurpose>retrieve async notifications on a connection</refpurpose>
</refnamediv>
<indexterm>
<primary>dblink_get_notify</primary>
</indexterm>
<refsynopsisdiv>
<synopsis>
dblink_get_notify() returns setof (notify_name text, be_pid int, extra text)
......@@ -1351,6 +1403,10 @@ SELECT * FROM dblink_get_notify();
<refpurpose>gets an async query result</refpurpose>
</refnamediv>
<indexterm>
<primary>dblink_get_result</primary>
</indexterm>
<refsynopsisdiv>
<synopsis>
dblink_get_result(text connname [, bool fail_on_error]) returns setof record
......@@ -1511,6 +1567,10 @@ contrib_regression=# SELECT * FROM dblink_get_result('dtest1') AS t1(f1 int, f2
<refpurpose>cancels any active query on the named connection</refpurpose>
</refnamediv>
<indexterm>
<primary>dblink_cancel_query</primary>
</indexterm>
<refsynopsisdiv>
<synopsis>
dblink_cancel_query(text connname) returns text
......@@ -1577,6 +1637,10 @@ SELECT dblink_cancel_query('dtest1');
</refpurpose>
</refnamediv>
<indexterm>
<primary>dblink_get_pkey</primary>
</indexterm>
<refsynopsisdiv>
<synopsis>
dblink_get_pkey(text relname) returns setof dblink_pkey_results
......@@ -1666,6 +1730,10 @@ SELECT * FROM dblink_get_pkey('foobar');
</refpurpose>
</refnamediv>
<indexterm>
<primary>dblink_build_sql_insert</primary>
</indexterm>
<refsynopsisdiv>
<synopsis>
dblink_build_sql_insert(text relname,
......@@ -1796,6 +1864,10 @@ SELECT dblink_build_sql_insert('foo', '1 2', 2, '{"1", "a"}', '{"1", "b''a"}');
</refpurpose>
</refnamediv>
<indexterm>
<primary>dblink_build_sql_delete</primary>
</indexterm>
<refsynopsisdiv>
<synopsis>
dblink_build_sql_delete(text relname,
......@@ -1910,6 +1982,10 @@ SELECT dblink_build_sql_delete('"MyFoo"', '1 2', 2, '{"1", "b"}');
</refpurpose>
</refnamediv>
<indexterm>
<primary>dblink_build_sql_update</primary>
</indexterm>
<refsynopsisdiv>
<synopsis>
dblink_build_sql_update(text relname,
......
......@@ -71,12 +71,12 @@
</thead>
<tbody>
<row>
<entry><function>earth()</function></entry>
<entry><function>earth()</function><indexterm><primary>earth</primary></indexterm></entry>
<entry><type>float8</type></entry>
<entry>Returns the assumed radius of the Earth.</entry>
</row>
<row>
<entry><function>sec_to_gc(float8)</function></entry>
<entry><function>sec_to_gc(float8)</function><indexterm><primary>sec_to_gc</primary></indexterm></entry>
<entry><type>float8</type></entry>
<entry>Converts the normal straight line
(secant) distance between two points on the surface of the Earth
......@@ -84,7 +84,7 @@
</entry>
</row>
<row>
<entry><function>gc_to_sec(float8)</function></entry>
<entry><function>gc_to_sec(float8)</function><indexterm><primary>gc_to_sec</primary></indexterm></entry>
<entry><type>float8</type></entry>
<entry>Converts the great circle distance between two points on the
surface of the Earth to the normal straight line (secant) distance
......@@ -92,35 +92,35 @@
</entry>
</row>
<row>
<entry><function>ll_to_earth(float8, float8)</function></entry>
<entry><function>ll_to_earth(float8, float8)</function><indexterm><primary>ll_to_earth</primary></indexterm></entry>
<entry><type>earth</type></entry>
<entry>Returns the location of a point on the surface of the Earth given
its latitude (argument 1) and longitude (argument 2) in degrees.
</entry>
</row>
<row>
<entry><function>latitude(earth)</function></entry>
<entry><function>latitude(earth)</function><indexterm><primary>latitude</primary></indexterm></entry>
<entry><type>float8</type></entry>
<entry>Returns the latitude in degrees of a point on the surface of the
Earth.
</entry>
</row>
<row>
<entry><function>longitude(earth)</function></entry>
<entry><function>longitude(earth)</function><indexterm><primary>longitude</primary></indexterm></entry>
<entry><type>float8</type></entry>
<entry>Returns the longitude in degrees of a point on the surface of the
Earth.
</entry>
</row>
<row>
<entry><function>earth_distance(earth, earth)</function></entry>
<entry><function>earth_distance(earth, earth)</function><indexterm><primary>earth_distance</primary></indexterm></entry>
<entry><type>float8</type></entry>
<entry>Returns the great circle distance between two points on the
surface of the Earth.
</entry>
</row>
<row>
<entry><function>earth_box(earth, float8)</function></entry>
<entry><function>earth_box(earth, float8)</function><indexterm><primary>earth_box</primary></indexterm></entry>
<entry><type>cube</type></entry>
<entry>Returns a box suitable for an indexed search using the cube
<literal>@&gt;</>
......
......@@ -35,6 +35,14 @@
for working with Soundex codes:
</para>
<indexterm>
<primary>soundex</primary>
</indexterm>
<indexterm>
<primary>difference</primary>
</indexterm>
<synopsis>
soundex(text) returns text
difference(text, text) returns int
......@@ -81,6 +89,14 @@ SELECT * FROM s WHERE difference(s.nm, 'john') &gt; 2;
This function calculates the Levenshtein distance between two strings:
</para>
<indexterm>
<primary>levenshtein</primary>
</indexterm>
<indexterm>
<primary>levenshtein_less_equal</primary>
</indexterm>
<synopsis>
levenshtein(text source, text target, int ins_cost, int del_cost, int sub_cost) returns int
levenshtein(text source, text target) returns int
......@@ -145,6 +161,10 @@ test=# SELECT levenshtein_less_equal('extensive', 'exhaustive',4);
This function calculates the metaphone code of an input string:
</para>
<indexterm>
<primary>metaphone</primary>
</indexterm>
<synopsis>
metaphone(text source, int max_output_length) returns text
</synopsis>
......@@ -180,6 +200,14 @@ test=# SELECT metaphone('GUMBO', 4);
These functions compute the primary and alternate codes:
</para>
<indexterm>
<primary>dmetaphone</primary>
</indexterm>
<indexterm>
<primary>dmetaphone_alt</primary>
</indexterm>
<synopsis>
dmetaphone(text source) returns text
dmetaphone_alt(text source) returns text
......
......@@ -233,7 +233,7 @@ key =&gt; NULL
<tbody>
<row>
<entry><function>hstore(record)</function></entry>
<entry><function>hstore(record)</function><indexterm><primary>hstore</primary></indexterm></entry>
<entry><type>hstore</type></entry>
<entry>construct an <type>hstore</> from a record or row</entry>
<entry><literal>hstore(ROW(1,2))</literal></entry>
......@@ -266,7 +266,7 @@ key =&gt; NULL
</row>
<row>
<entry><function>akeys(hstore)</function></entry>
<entry><function>akeys(hstore)</function><indexterm><primary>akeys</primary></indexterm></entry>
<entry><type>text[]</type></entry>
<entry>get <type>hstore</>'s keys as an array</entry>
<entry><literal>akeys('a=&gt;1,b=&gt;2')</literal></entry>
......@@ -274,7 +274,7 @@ key =&gt; NULL
</row>
<row>
<entry><function>skeys(hstore)</function></entry>
<entry><function>skeys(hstore)</function><indexterm><primary>skeys</primary></indexterm></entry>
<entry><type>setof text</type></entry>
<entry>get <type>hstore</>'s keys as a set</entry>
<entry><literal>skeys('a=&gt;1,b=&gt;2')</literal></entry>
......@@ -286,7 +286,7 @@ b
</row>
<row>
<entry><function>avals(hstore)</function></entry>
<entry><function>avals(hstore)</function><indexterm><primary>avals</primary></indexterm></entry>
<entry><type>text[]</type></entry>
<entry>get <type>hstore</>'s values as an array</entry>
<entry><literal>avals('a=&gt;1,b=&gt;2')</literal></entry>
......@@ -294,7 +294,7 @@ b
</row>
<row>
<entry><function>svals(hstore)</function></entry>
<entry><function>svals(hstore)</function><indexterm><primary>svals</primary></indexterm></entry>
<entry><type>setof text</type></entry>
<entry>get <type>hstore</>'s values as a set</entry>
<entry><literal>svals('a=&gt;1,b=&gt;2')</literal></entry>
......@@ -306,7 +306,7 @@ b
</row>
<row>
<entry><function>hstore_to_array(hstore)</function></entry>
<entry><function>hstore_to_array(hstore)</function><indexterm><primary>hstore_to_array</primary></indexterm></entry>
<entry><type>text[]</type></entry>
<entry>get <type>hstore</>'s keys and values as an array of alternating
keys and values</entry>
......@@ -315,7 +315,7 @@ b
</row>
<row>
<entry><function>hstore_to_matrix(hstore)</function></entry>
<entry><function>hstore_to_matrix(hstore)</function><indexterm><primary>hstore_to_matrix</primary></indexterm></entry>
<entry><type>text[]</type></entry>
<entry>get <type>hstore</>'s keys and values as a two-dimensional array</entry>
<entry><literal>hstore_to_matrix('a=&gt;1,b=&gt;2')</literal></entry>
......@@ -323,7 +323,7 @@ b
</row>
<row>
<entry><function>hstore_to_json(hstore)</function></entry>
<entry><function>hstore_to_json(hstore)</function><indexterm><primary>hstore_to_json</primary></indexterm></entry>
<entry><type>json</type></entry>
<entry>get <type>hstore</type> as a <type>json</type> value</entry>
<entry><literal>hstore_to_json('"a key"=&gt;1, b=&gt;t, c=&gt;null, d=&gt;12345, e=&gt;012345, f=&gt;1.234, g=&gt;2.345e+4')</literal></entry>
......@@ -331,7 +331,7 @@ b
</row>
<row>
<entry><function>hstore_to_json_loose(hstore)</function></entry>
<entry><function>hstore_to_json_loose(hstore)</function><indexterm><primary>hstore_to_json_loose</primary></indexterm></entry>
<entry><type>json</type></entry>
<entry>get <type>hstore</type> as a <type>json</type> value, but attempting to distinguish numerical and Boolean values so they are unquoted in the JSON</entry>
<entry><literal>hstore_to_json_loose('"a key"=&gt;1, b=&gt;t, c=&gt;null, d=&gt;12345, e=&gt;012345, f=&gt;1.234, g=&gt;2.345e+4')</literal></entry>
......@@ -339,7 +339,7 @@ b
</row>
<row>
<entry><function>slice(hstore, text[])</function></entry>
<entry><function>slice(hstore, text[])</function><indexterm><primary>slice</primary></indexterm></entry>
<entry><type>hstore</type></entry>
<entry>extract a subset of an <type>hstore</></entry>
<entry><literal>slice('a=&gt;1,b=&gt;2,c=&gt;3'::hstore, ARRAY['b','c','x'])</literal></entry>
......@@ -347,7 +347,7 @@ b
</row>
<row>
<entry><function>each(hstore)</function></entry>
<entry><function>each(hstore)</function><indexterm><primary>each</primary></indexterm></entry>
<entry><type>setof(key text, value text)</type></entry>
<entry>get <type>hstore</>'s keys and values as a set</entry>
<entry><literal>select * from each('a=&gt;1,b=&gt;2')</literal></entry>
......@@ -361,7 +361,7 @@ b
</row>
<row>
<entry><function>exist(hstore,text)</function></entry>
<entry><function>exist(hstore,text)</function><indexterm><primary>exist</primary></indexterm></entry>
<entry><type>boolean</type></entry>
<entry>does <type>hstore</> contain key?</entry>
<entry><literal>exist('a=&gt;1','a')</literal></entry>
......@@ -369,7 +369,7 @@ b
</row>
<row>
<entry><function>defined(hstore,text)</function></entry>
<entry><function>defined(hstore,text)</function><indexterm><primary>defined</primary></indexterm></entry>
<entry><type>boolean</type></entry>
<entry>does <type>hstore</> contain non-<literal>NULL</> value for key?</entry>
<entry><literal>defined('a=&gt;NULL','a')</literal></entry>
......@@ -377,7 +377,7 @@ b
</row>
<row>
<entry><function>delete(hstore,text)</function></entry>
<entry><function>delete(hstore,text)</function><indexterm><primary>delete</primary></indexterm></entry>
<entry><type>hstore</type></entry>
<entry>delete pair with matching key</entry>
<entry><literal>delete('a=&gt;1,b=&gt;2','b')</literal></entry>
......@@ -401,7 +401,7 @@ b
</row>
<row>
<entry><function>populate_record(record,hstore)</function></entry>
<entry><function>populate_record(record,hstore)</function><indexterm><primary>populate_record</primary></indexterm></entry>
<entry><type>record</type></entry>
<entry>replace fields in <type>record</> with matching values from <type>hstore</></entry>
<entry>see Examples section</entry>
......
......@@ -18,6 +18,14 @@
<sect2>
<title>Functions</title>
<indexterm>
<primary>int_array_aggregate</primary>
</indexterm>
<indexterm>
<primary>array_agg</primary>
</indexterm>
<para>
The aggregator is an aggregate function
<function>int_array_aggregate(integer)</>
......@@ -27,6 +35,10 @@
which does the same thing for any array type.
</para>
<indexterm>
<primary>int_array_enum</primary>
</indexterm>
<para>
The enumerator is a function
<function>int_array_enum(integer[])</>
......
......@@ -49,7 +49,7 @@
<tbody>
<row>
<entry><function>icount(int[])</function></entry>
<entry><function>icount(int[])</function><indexterm><primary>icount</primary></indexterm></entry>
<entry><type>int</type></entry>
<entry>number of elements in array</entry>
<entry><literal>icount('{1,2,3}'::int[])</literal></entry>
......@@ -57,7 +57,7 @@
</row>
<row>
<entry><function>sort(int[], text dir)</function></entry>
<entry><function>sort(int[], text dir)</function><indexterm><primary>sort</primary></indexterm></entry>
<entry><type>int[]</type></entry>
<entry>sort array &mdash; <parameter>dir</> must be <literal>asc</> or <literal>desc</></entry>
<entry><literal>sort('{1,2,3}'::int[], 'desc')</literal></entry>
......@@ -73,7 +73,7 @@
</row>
<row>
<entry><function>sort_asc(int[])</function></entry>
<entry><function>sort_asc(int[])</function><indexterm><primary>sort_asc</primary></indexterm></entry>
<entry><type>int[]</type></entry>
<entry>sort in ascending order</entry>
<entry><literal></literal></entry>
......@@ -81,7 +81,7 @@
</row>
<row>
<entry><function>sort_desc(int[])</function></entry>
<entry><function>sort_desc(int[])</function><indexterm><primary>sort_desc</primary></indexterm></entry>
<entry><type>int[]</type></entry>
<entry>sort in descending order</entry>
<entry><literal></literal></entry>
......@@ -89,7 +89,7 @@
</row>
<row>
<entry><function>uniq(int[])</function></entry>
<entry><function>uniq(int[])</function><indexterm><primary>uniq</primary></indexterm></entry>
<entry><type>int[]</type></entry>
<entry>remove adjacent duplicates</entry>
<entry><literal>uniq(sort('{1,2,3,2,1}'::int[]))</literal></entry>
......@@ -97,7 +97,7 @@
</row>
<row>
<entry><function>idx(int[], int item)</function></entry>
<entry><function>idx(int[], int item)</function><indexterm><primary>idx</primary></indexterm></entry>
<entry><type>int</type></entry>
<entry>index of first element matching <parameter>item</> (0 if none)</entry>
<entry><literal>idx(array[11,22,33,22,11], 22)</literal></entry>
......@@ -105,7 +105,7 @@
</row>
<row>
<entry><function>subarray(int[], int start, int len)</function></entry>
<entry><function>subarray(int[], int start, int len)</function><indexterm><primary>subarray</primary></indexterm></entry>
<entry><type>int[]</type></entry>
<entry>portion of array starting at position <parameter>start</>, <parameter>len</> elements</entry>
<entry><literal>subarray('{1,2,3,2,1}'::int[], 2, 3)</literal></entry>
......@@ -121,7 +121,7 @@
</row>
<row>
<entry><function>intset(int)</function></entry>
<entry><function>intset(int)</function><indexterm><primary>intset</primary></indexterm></entry>
<entry><type>int[]</type></entry>
<entry>make single-element array</entry>
<entry><literal>intset(42)</literal></entry>
......
......@@ -240,7 +240,7 @@
<tbody>
<row>
<entry><function>isn_weak(boolean)</function></entry>
<entry><function>isn_weak(boolean)</function><indexterm><primary>isn_weak</primary></indexterm></entry>
<entry><type>boolean</type></entry>
<entry>Sets the weak input mode (returns new setting)</entry>
</row>
......@@ -250,12 +250,12 @@
<entry>Gets the current status of the weak mode</entry>
</row>
<row>
<entry><function>make_valid(isn)</function></entry>
<entry><function>make_valid(isn)</function><indexterm><primary>make_valid</primary></indexterm></entry>
<entry><type>isn</type></entry>
<entry>Validates an invalid number (clears the invalid flag)</entry>
</row>
<row>
<entry><function>is_valid(isn)</function></entry>
<entry><function>is_valid(isn)</function><indexterm><primary>is_valid</primary></indexterm></entry>
<entry><type>boolean</type></entry>
<entry>Checks for the presence of the invalid flag</entry>
</row>
......
......@@ -381,7 +381,7 @@ Europe &amp; Russia*@ &amp; !Transportation
<tbody>
<row>
<entry><function>subltree(ltree, int start, int end)</function></entry>
<entry><function>subltree(ltree, int start, int end)</function><indexterm><primary>subltree</primary></indexterm></entry>
<entry><type>ltree</type></entry>
<entry>subpath of <type>ltree</> from position <parameter>start</> to
position <parameter>end</>-1 (counting from 0)</entry>
......@@ -390,7 +390,7 @@ Europe &amp; Russia*@ &amp; !Transportation
</row>
<row>
<entry><function>subpath(ltree, int offset, int len)</function></entry>
<entry><function>subpath(ltree, int offset, int len)</function><indexterm><primary>subpath</primary></indexterm></entry>
<entry><type>ltree</type></entry>
<entry>subpath of <type>ltree</> starting at position
<parameter>offset</>, length <parameter>len</>.
......@@ -413,7 +413,7 @@ Europe &amp; Russia*@ &amp; !Transportation
</row>
<row>
<entry><function>nlevel(ltree)</function></entry>
<entry><function>nlevel(ltree)</function><indexterm><primary>nlevel</primary></indexterm></entry>
<entry><type>integer</type></entry>
<entry>number of labels in path</entry>
<entry><literal>nlevel('Top.Child1.Child2')</literal></entry>
......@@ -421,7 +421,7 @@ Europe &amp; Russia*@ &amp; !Transportation
</row>
<row>
<entry><function>index(ltree a, ltree b)</function></entry>
<entry><function>index(ltree a, ltree b)</function><indexterm><primary>index</primary></indexterm></entry>
<entry><type>integer</type></entry>
<entry>position of first occurrence of <parameter>b</> in
<parameter>a</>; -1 if not found</entry>
......@@ -441,7 +441,7 @@ Europe &amp; Russia*@ &amp; !Transportation
</row>
<row>
<entry><function>text2ltree(text)</function></entry>
<entry><function>text2ltree(text)</function><indexterm><primary>text2ltree</primary></indexterm></entry>
<entry><type>ltree</type></entry>
<entry>cast <type>text</> to <type>ltree</></entry>
<entry><literal></literal></entry>
......@@ -449,7 +449,7 @@ Europe &amp; Russia*@ &amp; !Transportation
</row>
<row>
<entry><function>ltree2text(ltree)</function></entry>
<entry><function>ltree2text(ltree)</function><indexterm><primary>ltree2text</primary></indexterm></entry>
<entry><type>text</type></entry>
<entry>cast <type>ltree</> to <type>text</></entry>
<entry><literal></literal></entry>
......@@ -457,7 +457,7 @@ Europe &amp; Russia*@ &amp; !Transportation
</row>
<row>
<entry><function>lca(ltree, ltree, ...)</function></entry>
<entry><function>lca(ltree, ltree, ...)</function><indexterm><primary>lca</primary></indexterm></entry>
<entry><type>ltree</type></entry>
<entry>lowest common ancestor, i.e., longest common prefix of paths
(up to 8 arguments supported)</entry>
......
......@@ -18,6 +18,9 @@
<variablelist>
<varlistentry>
<indexterm>
<primary>get_raw_page</primary>
</indexterm>
<term>
<function>get_raw_page(relname text, fork text, blkno int) returns bytea</function>
</term>
......@@ -49,6 +52,9 @@
</varlistentry>
<varlistentry>
<indexterm>
<primary>page_header</primary>
</indexterm>
<term>
<function>page_header(page bytea) returns record</function>
</term>
......@@ -76,6 +82,9 @@ test=# SELECT * FROM page_header(get_raw_page('pg_class', 0));
</varlistentry>
<varlistentry>
<indexterm>
<primary>heap_page_items</primary>
</indexterm>
<term>
<function>heap_page_items(page bytea) returns setof record</function>
</term>
......@@ -101,6 +110,9 @@ test=# SELECT * FROM heap_page_items(get_raw_page('pg_class', 0));
</varlistentry>
<varlistentry>
<indexterm>
<primary>bt_metap</primary>
</indexterm>
<term>
<function>bt_metap(relname text) returns record</function>
</term>
......@@ -124,6 +136,9 @@ fastlevel | 0
</varlistentry>
<varlistentry>
<indexterm>
<primary>bt_page_stats</primary>
</indexterm>
<term>
<function>bt_page_stats(relname text, blkno int) returns record</function>
</term>
......@@ -152,6 +167,9 @@ btpo_flags | 3
</varlistentry>
<varlistentry>
<indexterm>
<primary>bt_page_items</primary>
</indexterm>
<term>
<function>bt_page_items(relname text, blkno int) returns setof record</function>
</term>
......@@ -178,6 +196,9 @@ test=# SELECT * FROM bt_page_items('pg_cast_oid_index', 1);
</varlistentry>
<varlistentry>
<indexterm>
<primary>fsm_page_contents</primary>
</indexterm>
<term>
<function>fsm_page_contents(page bytea) returns text</function>
</term>
......
......@@ -12,6 +12,10 @@
examining what's happening in the shared buffer cache in real time.
</para>
<indexterm>
<primary>pg_buffercache_pages</primary>
</indexterm>
<para>
The module provides a C function <function>pg_buffercache_pages</function>
that returns a set of records, plus a view
......
......@@ -23,6 +23,10 @@
<sect3>
<title><function>digest()</function></title>
<indexterm>
<primary>digest</primary>
</indexterm>
<synopsis>
digest(data text, type text) returns bytea
digest(data bytea, type text) returns bytea
......@@ -53,6 +57,10 @@ $$ LANGUAGE SQL STRICT IMMUTABLE;
<sect3>
<title><function>hmac()</function></title>
<indexterm>
<primary>hmac</primary>
</indexterm>
<synopsis>
hmac(data text, key text, type text) returns bytea
hmac(data bytea, key text, type text) returns bytea
......@@ -173,6 +181,10 @@ hmac(data bytea, key text, type text) returns bytea
<sect3>
<title><function>crypt()</></title>
<indexterm>
<primary>crypt</primary>
</indexterm>
<synopsis>
crypt(password text, salt text) returns text
</synopsis>
......@@ -202,6 +214,10 @@ SELECT pswhash = crypt('entered password', pswhash) FROM ... ;
<sect3>
<title><function>gen_salt()</></title>
<indexterm>
<primary>gen_salt</primary>
</indexterm>
<synopsis>
gen_salt(type text [, iter_count integer ]) returns text
</synopsis>
......@@ -497,6 +513,14 @@ gen_salt(type text [, iter_count integer ]) returns text
<sect3>
<title><function>pgp_sym_encrypt()</function></title>
<indexterm>
<primary>pgp_sym_encrypt</primary>
</indexterm>
<indexterm>
<primary>pgp_sym_encrypt_bytea</primary>
</indexterm>
<synopsis>
pgp_sym_encrypt(data text, psw text [, options text ]) returns bytea
pgp_sym_encrypt_bytea(data bytea, psw text [, options text ]) returns bytea
......@@ -511,6 +535,14 @@ pgp_sym_encrypt_bytea(data bytea, psw text [, options text ]) returns bytea
<sect3>
<title><function>pgp_sym_decrypt()</function></title>
<indexterm>
<primary>pgp_sym_decrypt</primary>
</indexterm>
<indexterm>
<primary>pgp_sym_decrypt_bytea</primary>
</indexterm>
<synopsis>
pgp_sym_decrypt(msg bytea, psw text [, options text ]) returns text
pgp_sym_decrypt_bytea(msg bytea, psw text [, options text ]) returns bytea
......@@ -532,6 +564,14 @@ pgp_sym_decrypt_bytea(msg bytea, psw text [, options text ]) returns bytea
<sect3>
<title><function>pgp_pub_encrypt()</function></title>
<indexterm>
<primary>pgp_pub_encrypt</primary>
</indexterm>
<indexterm>
<primary>pgp_pub_encrypt_bytea</primary>
</indexterm>
<synopsis>
pgp_pub_encrypt(data text, key bytea [, options text ]) returns bytea
pgp_pub_encrypt_bytea(data bytea, key bytea [, options text ]) returns bytea
......@@ -549,6 +589,14 @@ pgp_pub_encrypt_bytea(data bytea, key bytea [, options text ]) returns bytea
<sect3>
<title><function>pgp_pub_decrypt()</function></title>
<indexterm>
<primary>pgp_pub_decrypt</primary>
</indexterm>
<indexterm>
<primary>pgp_pub_decrypt_bytea</primary>
</indexterm>
<synopsis>
pgp_pub_decrypt(msg bytea, key bytea [, psw text [, options text ]]) returns text
pgp_pub_decrypt_bytea(msg bytea, key bytea [, psw text [, options text ]]) returns bytea
......@@ -574,6 +622,10 @@ pgp_pub_decrypt_bytea(msg bytea, key bytea [, psw text [, options text ]]) retur
<sect3>
<title><function>pgp_key_id()</function></title>
<indexterm>
<primary>pgp_key_id</primary>
</indexterm>
<synopsis>
pgp_key_id(bytea) returns text
</synopsis>
......@@ -616,6 +668,14 @@ pgp_key_id(bytea) returns text
<sect3>
<title><function>armor()</function>, <function>dearmor()</function></title>
<indexterm>
<primary>armor</primary>
</indexterm>
<indexterm>
<primary>dearmor</primary>
</indexterm>
<synopsis>
armor(data bytea) returns text
dearmor(data text) returns bytea
......@@ -913,6 +973,22 @@ gpg -a --export-secret-keys KEYID > secret.key
encryption functions is discouraged.
</para>
<indexterm>
<primary>encrypt</primary>
</indexterm>
<indexterm>
<primary>decrypt</primary>
</indexterm>
<indexterm>
<primary>encrypt_iv</primary>
</indexterm>
<indexterm>
<primary>decrypt_iv</primary>
</indexterm>
<synopsis>
encrypt(data bytea, key bytea, type text) returns bytea
decrypt(data bytea, key bytea, type text) returns bytea
......@@ -982,6 +1058,10 @@ encrypt(data, 'fooz', 'bf-cbc/pad:pkcs')
<sect2>
<title>Random-Data Functions</title>
<indexterm>
<primary>gen_random_bytes</primary>
</indexterm>
<synopsis>
gen_random_bytes(count integer) returns bytea
</synopsis>
......
......@@ -25,6 +25,9 @@
<variablelist>
<varlistentry>
<indexterm>
<primary>pg_freespace</primary>
</indexterm>
<term>
<function>pg_freespace(rel regclass IN, blkno bigint IN) returns int2</function>
</term>
......
......@@ -15,6 +15,10 @@
<sect2>
<title>Overview</title>
<indexterm>
<primary>pgrowlocks</primary>
</indexterm>
<synopsis>
pgrowlocks(text) returns setof record
</synopsis>
......
......@@ -235,6 +235,10 @@
<variablelist>
<varlistentry>
<indexterm>
<primary>pg_stat_statements_reset</primary>
</indexterm>
<term>
<function>pg_stat_statements_reset() returns void</function>
</term>
......
......@@ -17,6 +17,10 @@
<variablelist>
<varlistentry>
<indexterm>
<primary>pgstattuple</primary>
</indexterm>
<term>
<function>pgstattuple(text) returns record</>
</term>
......@@ -134,6 +138,9 @@ free_percent | 1.95
<varlistentry>
<term>
<indexterm>
<primary>pgstatindex</primary>
</indexterm>
<function>pgstatindex(text) returns record</>
</term>
......@@ -246,6 +253,9 @@ leaf_fragmentation | 0
<varlistentry>
<term>
<indexterm>
<primary>pgstatginindex</primary>
</indexterm>
<function>pgstatginindex(regclass) returns record</>
</term>
......@@ -303,6 +313,9 @@ pending_tuples | 0
<varlistentry>
<term>
<indexterm>
<primary>pg_relpages</primary>
</indexterm>
<function>pg_relpages(text) returns bigint</>
</term>
......
......@@ -75,7 +75,7 @@
<tbody>
<row>
<entry><function>similarity(text, text)</function></entry>
<entry><function>similarity(text, text)</function><indexterm><primary>similarity</primary></indexterm></entry>
<entry><type>real</type></entry>
<entry>
Returns a number that indicates how similar the two arguments are.
......@@ -85,7 +85,7 @@
</entry>
</row>
<row>
<entry><function>show_trgm(text)</function></entry>
<entry><function>show_trgm(text)</function><indexterm><primary>show_trgm</primary></indexterm></entry>
<entry><type>text[]</type></entry>
<entry>
Returns an array of all the trigrams in the given string.
......@@ -93,7 +93,7 @@
</entry>
</row>
<row>
<entry><function>show_limit()</function></entry>
<entry><function>show_limit()</function><indexterm><primary>show_limit</primary></indexterm></entry>
<entry><type>real</type></entry>
<entry>
Returns the current similarity threshold used by the <literal>%</>
......@@ -103,7 +103,7 @@
</entry>
</row>
<row>
<entry><function>set_limit(real)</function></entry>
<entry><function>set_limit(real)</function><indexterm><primary>set_limit</primary></indexterm></entry>
<entry><type>real</type></entry>
<entry>
Sets the current similarity threshold that is used by the <literal>%</>
......
......@@ -24,9 +24,12 @@
<variablelist>
<varlistentry>
<term><function>
ssl_is_used() returns boolean
</function></term>
<indexterm>
<primary>ssl_is_used</primary>
</indexterm>
<term>
<function>ssl_is_used() returns boolean</function>
</term>
<listitem>
<para>
Returns TRUE if current connection to server uses SSL, and FALSE
......@@ -36,9 +39,12 @@ ssl_is_used() returns boolean
</varlistentry>
<varlistentry>
<term><function>
ssl_version() returns text
</function></term>
<indexterm>
<primary>ssl_version</primary>
</indexterm>
<term>
<function>ssl_version() returns text</function>
</term>
<listitem>
<para>
Returns the name of the protocol used for the SSL connection (e.g. SSLv2,
......@@ -48,9 +54,12 @@ ssl_version() returns text
</varlistentry>
<varlistentry>
<term><function>
ssl_cipher() returns text
</function></term>
<indexterm>
<primary>ssl_cipher</primary>
</indexterm>
<term>
<function>ssl_cipher() returns text</function>
</term>
<listitem>
<para>
Returns the name of the cipher used for the SSL connection
......@@ -60,9 +69,12 @@ ssl_cipher() returns text
</varlistentry>
<varlistentry>
<term><function>
ssl_client_cert_present() returns boolean
</function></term>
<indexterm>
<primary>ssl_client_cert_present</primary>
</indexterm>
<term>
<function>ssl_client_cert_present() returns boolean</function>
</term>
<listitem>
<para>
Returns TRUE if current client has presented a valid SSL client
......@@ -73,9 +85,12 @@ ssl_client_cert_present() returns boolean
</varlistentry>
<varlistentry>
<term><function>
ssl_client_serial() returns numeric
</function></term>
<indexterm>
<primary>ssl_client_serial</primary>
</indexterm>
<term>
<function>ssl_client_serial() returns numeric</function>
</term>
<listitem>
<para>
Returns serial number of current client certificate. The combination of
......@@ -94,9 +109,12 @@ ssl_client_serial() returns numeric
</varlistentry>
<varlistentry>
<term><function>
ssl_client_dn() returns text
</function></term>
<indexterm>
<primary>ssl_client_dn</primary>
</indexterm>
<term>
<function>ssl_client_dn() returns text</function>
</term>
<listitem>
<para>
Returns the full subject of the current client certificate, converting
......@@ -114,9 +132,12 @@ ssl_client_dn() returns text
</varlistentry>
<varlistentry>
<term><function>
ssl_issuer_dn() returns text
</function></term>
<indexterm>
<primary>ssl_issuer_dn</primary>
</indexterm>
<term>
<function>ssl_issuer_dn() returns text</function>
</term>
<listitem>
<para>
Returns the full issuer name of the current client certificate, converting
......@@ -136,9 +157,12 @@ ssl_issuer_dn() returns text
</varlistentry>
<varlistentry>
<term><function>
ssl_client_dn_field(fieldname text) returns text
</function></term>
<indexterm>
<primary>ssl_client_dn_field</primary>
</indexterm>
<term>
<function>ssl_client_dn_field(fieldname text) returns text</function>
</term>
<listitem>
<para>
This function returns the value of the specified field in the
......@@ -182,9 +206,12 @@ emailAddress
</varlistentry>
<varlistentry>
<term><function>
ssl_issuer_field(fieldname text) returns text
</function></term>
<indexterm>
<primary>ssl_issuer_field</primary>
</indexterm>
<term>
<function>ssl_issuer_field(fieldname text) returns text</function>
</term>
<listitem>
<para>
Same as <function>ssl_client_dn_field</>, but for the certificate issuer
......
......@@ -86,6 +86,7 @@
[, text orderby_fld ], text start_with, int max_depth
[, text branch_delim ])
</function>
<indexterm><primary>connectby</primary></indexterm>
</entry>
<entry><type>setof record</></entry>
<entry>
......@@ -99,6 +100,10 @@
<sect3>
<title><function>normal_rand</function></title>
<indexterm>
<primary>normal_rand</primary>
</indexterm>
<synopsis>
normal_rand(int numvals, float8 mean, float8 stddev) returns setof float8
</synopsis>
......@@ -142,6 +147,10 @@ test=# SELECT * FROM normal_rand(1000, 5, 3);
<sect3>
<title><function>crosstab(text)</function></title>
<indexterm>
<primary>crosstab</primary>
</indexterm>
<synopsis>
crosstab(text sql)
crosstab(text sql, int N)
......@@ -289,6 +298,10 @@ AS ct(row_name text, category_1 text, category_2 text, category_3 text);
<sect3>
<title><function>crosstab<replaceable>N</>(text)</function></title>
<indexterm>
<primary>crosstab</primary>
</indexterm>
<synopsis>
crosstab<replaceable>N</>(text sql)
</synopsis>
......@@ -396,6 +409,10 @@ CREATE OR REPLACE FUNCTION crosstab_float8_5_cols(
<sect3>
<title><function>crosstab(text, text)</function></title>
<indexterm>
<primary>crosstab</primary>
</indexterm>
<synopsis>
crosstab(text source_sql, text category_sql)
</synopsis>
......@@ -602,6 +619,10 @@ AS
<sect3>
<title><function>connectby</function></title>
<indexterm>
<primary>connectby</primary>
</indexterm>
<synopsis>
connectby(text relname, text keyid_fld, text parent_keyid_fld
[, text orderby_fld ], text start_with, int max_depth
......
......@@ -42,7 +42,7 @@
</thead>
<tbody>
<row>
<entry><literal>uuid_generate_v1()</literal></entry>
<entry><function>uuid_generate_v1()</function><indexterm><primary>uuid_generate_v1</primary></indexterm></entry>
<entry>
<para>
This function generates a version 1 UUID. This involves the MAC
......@@ -54,7 +54,7 @@
</entry>
</row>
<row>
<entry><literal>uuid_generate_v1mc()</literal></entry>
<entry><function>uuid_generate_v1mc()</function><indexterm><primary>uuid_generate_v1mc</primary></indexterm></entry>
<entry>
<para>
This function generates a version 1 UUID but uses a random multicast
......@@ -63,7 +63,7 @@
</entry>
</row>
<row>
<entry><literal>uuid_generate_v3(namespace uuid, name text)</literal></entry>
<entry><function>uuid_generate_v3(namespace uuid, name text)</function><indexterm><primary>uuid_generate_v3</primary></indexterm></entry>
<entry>
<para>
This function generates a version 3 UUID in the given namespace using
......
......@@ -197,6 +197,10 @@
<sect2>
<title><literal>xpath_table</literal></title>
<indexterm>
<primary>xpath_table</primary>
</indexterm>
<synopsis>
xpath_table(text key, text document, text relation, text xpaths, text criteria) returns setof record
</synopsis>
......@@ -423,6 +427,10 @@ ORDER BY doc_num, line_num;
<sect3>
<title><literal>xslt_process</literal></title>
<indexterm>
<primary>xslt_process</primary>
</indexterm>
<synopsis>
xslt_process(text document, text stylesheet, text paramlist) returns text
</synopsis>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册