Commit 20a1b9e7 authored by Bruce Momjian's avatar Bruce Momjian

Add contrib function references in the doc index

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