jeroen Fri Aug 3 15:24:40 2001 EDT
Modified files:
/phpdoc/en/functions pgsql.xml
Log:
Resurrected pgsql, hopefully not reserved anymore
Index: phpdoc/en/functions/pgsql.xml
diff -u /dev/null phpdoc/en/functions/pgsql.xml:1.42
--- /dev/null Fri Aug 3 15:24:40 2001
+++ phpdoc/en/functions/pgsql.xml Fri Aug 3 15:24:40 2001
@@ -0,0 +1,1458 @@
+<!-- $Revision: 1.42 $ -->
+ <reference id="ref.pgsql">
+ <title>PostgreSQL functions</title>
+ <titleabbrev>PostgreSQL</titleabbrev>
+
+ <partintro>
+ <para>
+ Postgres, developed originally in the UC Berkeley Computer Science
+ Department, pioneered many of the object-relational concepts now
+ becoming available in some commercial databases. It provides
+ SQL92/SQL3 language support, transaction integrity, and type
+ extensibility. PostgreSQL is an open source descendant of this
+ original Berkeley code.
+ </para>
+ <para>
+ PostgreSQL is available without cost. The current version is
+ available at <ulink url="&url.pgsql;">www.PostgreSQL.org</ulink>.
+ </para>
+ <para>
+ Since version 6.3 (03/02/1998) PostgreSQL uses unix domain sockets.
+ A table is shown below describing these new connection possibilities.
+ This socket will be found in <filename>/tmp/.s.PGSQL.5432</filename>.
+ This option can be enabled with the '-i' flag to <command>postmaster
+ </command> and it's meaning is: "listen on TCP/IP sockets as well as
+ Unix domain sockets".
+ <table>
+ <title>Postmaster and PHP</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>Postmaster</entry>
+ <entry>PHP</entry>
+ <entry>Status</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>postmaster &</entry>
+ <entry>pg_connect("dbname=MyDbName");</entry>
+ <entry>OK</entry>
+ </row>
+ <row>
+ <entry>postmaster -i &</entry>
+<!-- <entry>pg_connect("", "", "", "", "dbname");</entry> -->
+ <entry>pg_connect("dbname=MyDbName");</entry>
+ <entry>OK</entry>
+ </row>
+ <row>
+ <entry>postmaster &</entry>
+ <entry>pg_connect("host=localhost dbname=MyDbName");</entry>
+ <entry>
+ Unable to connect to PostgreSQL server: connectDB() failed:
+ Is the postmaster running and accepting TCP/IP (with -i)
+ connection at 'localhost' on port '5432'? in
+ /path/to/file.php3 on line 20.
+ </entry>
+ </row>
+ <row>
+ <entry>postmaster -i &</entry>
+ <entry>pg_connect("host=localhost dbname=MyDbName");</entry>
+ <entry>OK</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ <para>
+ One can establish a connection with the following value pairs
+ set in the command string:
+ <command>$conn = pg_Connect("host=myHost port=myPort tty=myTTY
+ options=myOptions dbname=myDB user=myUser password=myPassword ");
+ </command>
+ </para>
+ <para>
+ The previous syntax of:
+ <command>$conn = pg_connect ("host", "port", "options", "tty",
+ "dbname")
+ </command>
+ has been deprecated.
+ </para>
+ <para>
+ To use the large object (lo) interface, it is necessary to enclose
+ it within a transaction block. A transaction block starts with a
+ <command>begin</command> and if the transaction was valid ends
+ with <command>commit</command> or <command>end</command>. If the
+ transaction fails the transaction should be closed with
+ <command>rollback</command> or <command>abort</command>.
+ <example>
+ <title>Using Large Objects</title>
+ <programlisting role="php">
+<?php
+ $database = pg_Connect ("dbname=jacarta");
+ pg_exec ($database, "begin");
+ $oid = pg_locreate ($database);
+ echo ("$oid\n");
+ $handle = pg_loopen ($database, $oid, "w");
+ echo ("$handle\n");
+ pg_lowrite ($handle, "gaga");
+ pg_loclose ($handle);
+ pg_exec ($database, "commit");
+?>
+ </programlisting>
+ </example>
+ </para>
+ </partintro>
+
+ <refentry id="function.pg-close">
+ <refnamediv>
+ <refname>pg_close</refname>
+ <refpurpose>Close a PostgreSQL connection</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>bool <function>pg_close</function></funcdef>
+ <paramdef>int <parameter>connection</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ Returns &false; if connection is not a valid connection index, &true;
+ otherwise. Closes down the connection to a PostgreSQL database
+ associated with the given connection index.
+ </para>
+ <note><para>
+ This isn't usually necessary, as non-persistent open
+ links are automatically closed at the end of the script's
+ execution.
+ </para></note>
+ <para>
+ <function>pg_close</function> will not close persistent links
+ generated by <function>pg_pconnect</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-cmdtuples">
+ <refnamediv>
+ <refname>pg_cmdtuples</refname>
+ <refpurpose>Returns number of affected tuples</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>pg_cmdtuples</function></funcdef>
+ <paramdef>int <parameter>result_id</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_cmdtuples</function> returns the number of tuples
+ (instances) affected by INSERT, UPDATE, and DELETE queries. If no
+ tuple is affected the function will return 0.
+ <example>
+ <title><function>pg_cmdtuples</function></title>
+ <programlisting role="php">
+<?php
+$result = pg_exec ($conn, "INSERT INTO publisher VALUES ('Author')");
+$cmdtuples = pg_cmdtuples ($result);
+echo $cmdtuples . " <- cmdtuples affected.";
+?>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ See also <function>pg_numfields</function> and
+ <function>pg_numrows</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-connect">
+ <refnamediv>
+ <refname>pg_connect</refname>
+ <refpurpose>Open a PostgreSQL connection</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>pg_connect</function></funcdef>
+ <paramdef>string <parameter>host</parameter></paramdef>
+ <paramdef>string <parameter>port</parameter></paramdef>
+ <paramdef>string <parameter>dbname</parameter></paramdef>
+ </funcprototype>
+ <funcprototype>
+ <funcdef>int <function>pg_connect</function></funcdef>
+ <paramdef>string <parameter>host</parameter></paramdef>
+ <paramdef>string <parameter>port</parameter></paramdef>
+ <paramdef>string <parameter>options</parameter></paramdef>
+ <paramdef>string <parameter>dbname</parameter></paramdef>
+ </funcprototype>
+ <funcprototype>
+ <funcdef>int <function>pg_connect</function></funcdef>
+ <paramdef>string <parameter>host</parameter></paramdef>
+ <paramdef>string <parameter>port</parameter></paramdef>
+ <paramdef>string <parameter>options</parameter></paramdef>
+ <paramdef>string <parameter>tty</parameter></paramdef>
+ <paramdef>string <parameter>dbname</parameter></paramdef>
+ </funcprototype>
+ <funcprototype>
+ <funcdef>int <function>pg_connect</function></funcdef>
+ <paramdef>string <parameter>conn_string</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ Returns a connection index on success, or &false; if the connection
+ could not be made. Opens a connection to a PostgreSQL database.
+ The arguments should be within a quoted string.
+ <example>
+ <title>Using pg_connect arguments</title>
+ <programlisting role="php">
+<?php
+$dbconn = pg_Connect ("dbname=mary");
+//connect to a database named "mary"
+$dbconn2 = pg_Connect ("host=localhost port=5432 dbname=mary");
+//connect to a database named "mary" on "localhost" at port "5432"
+$dbconn3 = pg_Connect ("host=sheep port=5432 dbname=mary user=lamb password=baaaa");
+//connect to a database named "mary" on the host "sheep" with a username and password
+?>
+ </programlisting>
+ </example>
+ The arguments available include <parameter>host</parameter>,
+ <parameter>port</parameter>, <parameter>tty</parameter>,
+ <parameter>options</parameter>, <parameter>dbname</parameter>,
+ <parameter>user</parameter>, and <parameter>password</parameter>.
+ </para>
+ <para>
+ If a second call is made to <function>pg_connect</function> with
+ the same arguments, no new connection will be established, but
+ instead, the connection index of the already opened connection
+ will be returned.
+ </para>
+ <para>
+ This function returns a connection index that is needed by other
+ PostgreSQL functions. You can have multiple connections open at
+ once.
+ </para>
+ <para>
+ The previous syntax of:
+ <command>$conn = pg_connect ("host", "port", "options", "tty",
+ "dbname")
+ </command>
+ has been deprecated.
+ </para>
+ <para>
+ See also <function>pg_pconnect</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-dbname">
+ <refnamediv>
+ <refname>pg_dbname</refname>
+ <refpurpose>Get the database name</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>string <function>pg_dbname</function></funcdef>
+ <paramdef>int <parameter>connection</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ Returns the name of the database that the given PostgreSQL
+ connection index is connected to, or &false; if connection is not a
+ valid connection index.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-end-copy">
+ <refnamediv>
+ <refname>pg_end_copy</refname>
+ <refpurpose>Sync with PostgreSQL backend</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>bool <function>pg_end_copy</function></funcdef>
+ <paramdef>resource
+ <parameter><optional>connection</optional></parameter>
+ </paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_end_copy</function> syncs PostgreSQL frontend with
+ the backend after doing a copy operation. It must be issued or
+ the backend may get "out of sync" with the frontend. Returns
+ &true; if successfull, &false; otherwise.
+ </para>
+ <para>
+ For further details and an example, see also
+ <function>pg_put_line</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-errormessage">
+ <refnamediv>
+ <refname>pg_errormessage</refname>
+ <refpurpose>Get the error message string</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>string <function>pg_errormessage</function></funcdef>
+ <paramdef>int <parameter>connection</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ Returns a string containing the error message, &false; on failure.
+ Details about the error probably cannot be retrieved using the
+ <function>pg_errormessage</function> function if an error occured
+ on the last database action for which a valid connection exists,
+ this function will return a string containing the error message
+ generated by the backend server.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-exec">
+ <refnamediv>
+ <refname>pg_exec</refname>
+ <refpurpose>Execute a query</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>pg_exec</function></funcdef>
+ <paramdef>int <parameter>connection</parameter></paramdef>
+ <paramdef>string <parameter>query</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ Returns a result index if query could be executed, &false; on
+ failure or if connection is not a valid connection index. Details
+ about the error can be retrieved using the
+ <function>pg_ErrorMessage</function> function if connection is
+ valid. Sends an SQL statement to the PostgreSQL database
+ specified by the connection index. The connection must be a valid
+ index that was returned by <function>pg_Connect</function>. The
+ return value of this function is an index to be used to access
+ the results from other PostgreSQL functions.
+ <note>
+ <simpara>
+ PHP/FI returned 1 if the query was not expected to return data
+ (inserts or updates, for example) and greater than 1 even on
+ selects that did not return anything. No such assumption can be
+ made in PHP.
+ </simpara>
+ </note>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-fetch-array">
+ <refnamediv>
+ <refname>pg_fetch_array</refname>
+ <refpurpose>Fetch a row as an array</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>array <function>pg_fetch_array</function></funcdef>
+ <paramdef>int <parameter>result</parameter></paramdef>
+ <paramdef>int <parameter>row</parameter></paramdef>
+ <paramdef>int
+ <parameter><optional>result_type</optional></parameter>
+ </paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ Returns: An array that corresponds to the fetched row, or &false;
+ if there are no more rows.
+ </para>
+ <para>
+ <function>pg_fetch_array</function> is an extended version of
+ <function>pg_fetch_row</function>. In addition to storing the
+ data in the numeric indices of the result array, it also stores
+ the data in associative indices, using the field names as keys.
+ </para>
+ <para>
+ The third optional argument <parameter>result_type</parameter> in
+ <function>pg_fetch_array</function> is a constant and can take the
+ following values: PGSQL_ASSOC, PGSQL_NUM, and PGSQL_BOTH.
+ <note>
+ <para>
+ <parameter>Result_type</parameter> was added in PHP 4.0.
+ </para>
+ </note>
+ </para>
+ <para>
+ An important thing to note is that using
+ <function>pg_fetch_array</function> is NOT significantly
+ slower than using <function>pg_fetch_row</function>, while it
+ provides a significant added value.
+ </para>
+ <para>
+ For further details, see also
+ <function>pg_fetch_row</function>
+ </para>
+ <example>
+ <title>PostgreSQL fetch array</title>
+ <programlisting role="php">
+<?php
+$conn = pg_pconnect ("dbname=publisher");
+if (!$conn) {
+ echo "An error occured.\n";
+ exit;
+}
+
+$result = pg_Exec ($conn, "SELECT * FROM authors");
+if (!$result) {
+ echo "An error occured.\n";
+ exit;
+}
+
+$arr = pg_fetch_array ($result, 0);
+echo $arr[0] . " <- array\n";
+
+$arr = pg_fetch_array ($result, 1);
+echo $arr["author"] . " <- array\n";
+?>
+ </programlisting>
+ </example>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-fetch-object">
+ <refnamediv>
+ <refname>pg_fetch_object</refname>
+ <refpurpose>Fetch a row as an object</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>object <function>pg_fetch_object</function></funcdef>
+ <paramdef>int <parameter>result</parameter></paramdef>
+ <paramdef>int <parameter>row</parameter></paramdef>
+ <paramdef>int
+ <parameter><optional>result_type</optional></parameter>
+ </paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ Returns: An object with properties that correspond to the fetched
+ row, or &false; if there are no more rows.
+ </para>
+ <para>
+ <function>pg_fetch_object</function> is similar to
+ <function>pg_fetch_array</function>, with one difference - an
+ object is returned, instead of an array. Indirectly, that means
+ that you can only access the data by the field names, and not by
+ their offsets (numbers are illegal property names).
+ </para>
+ <para>
+ The third optional argument <parameter>result_type</parameter> in
+ <function>pg_fetch_object</function> is a constant and can take the
+ following values: PGSQL_ASSOC, PGSQL_NUM, and PGSQL_BOTH.
+ <note>
+ <para>
+ <parameter>Result_type</parameter> was added in PHP 4.0.
+ </para>
+ </note>
+ </para>
+ <para>
+ Speed-wise, the function is identical to
+ <function>pg_fetch_array</function>, and almost as quick as
+ <function>pg_fetch_row</function> (the difference is
+ insignificant).
+ </para>
+ <para>
+ See also: <function>pg_fetch_array</function> and
+ <function>pg_fetch_row</function>.
+ <example>
+ <title>Postgres fetch object</title>
+ <programlisting role="php">
+<?php
+$database = "verlag";
+$db_conn = pg_connect ("host=localhost port=5432 dbname=$database");
+if (!$db_conn): ?>
+ <H1>Failed connecting to postgres database <?php echo $database ?></H1>
+<?php
+ exit;
+endif;
+
+$qu = pg_exec ($db_conn, "SELECT * FROM verlag ORDER BY autor");
+$row = 0; // postgres needs a row counter other dbs might not
+
+while ($data = pg_fetch_object ($qu, $row)):
+ echo $data->autor." (";
+ echo $data->jahr ."): ";
+ echo $data->titel."<BR>";
+ $row++;
+endwhile; ?>
+
+<PRE><?php
+$fields[] = Array ("autor", "Author");
+$fields[] = Array ("jahr", " Year");
+$fields[] = Array ("titel", " Title");
+
+$row= 0; // postgres needs a row counter other dbs might not
+while ($data = pg_fetch_object ($qu, $row)):
+ echo "----------\n";
+ reset ($fields);
+ while (list (,$item) = each ($fields)):
+ echo $item[1].": ".$data->$item[0]."\n";
+ endwhile;
+ $row++;
+endwhile;
+echo "----------\n"; ?>
+</PRE> <?php
+pg_freeResult ($qu);
+pg_close ($db_conn);
+?>
+ </programlisting>
+ </example>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-fetch-row">
+ <refnamediv>
+ <refname>pg_fetch_row</refname>
+ <refpurpose>Get a row as an enumerated array</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>array <function>pg_fetch_row</function></funcdef>
+ <paramdef>int <parameter>result</parameter></paramdef>
+ <paramdef>int <parameter>row</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ Returns: An array that corresponds to the fetched row, or &false;
+ if there are no more rows.
+ </para>
+ <para>
+ <function>pg_fetch_row</function> fetches one row of data from
+ the result associated with the specified result identifier. The
+ row is returned as an array. Each result column is stored in an
+ array offset, starting at offset 0.
+ </para>
+ <para>
+ See also: <function>pg_fetch_array</function>,
+ <function>pg_fetch_object</function>,
+ <function>pg_result</function>.
+ <example>
+ <title>Postgres fetch row</title>
+ <programlisting role="php">
+<?php
+$conn = pg_pconnect ("dbname=publisher");
+if (!$conn) {
+ echo "An error occured.\n";
+ exit;
+}
+
+$result = pg_Exec ($conn, "SELECT * FROM authors");
+if (!$result) {
+ echo "An error occured.\n";
+ exit;
+}
+
+$num = pg_numrows($result);
+
+for ($i=0; $i<$num; $i++) {
+ $r = pg_fetch_row($result, $i);
+
+ for ($j=0; $j<count($r); $j++) {
+ echo "$r[$j]&nbsp;";
+ }
+
+ echo "<BR>";
+
+}
+
+?>
+ </programlisting>
+ </example>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-fieldisnull">
+ <refnamediv>
+ <refname>pg_fieldisnull</refname>
+ <refpurpose>Test if a field is &null;</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>pg_fieldisnull</function></funcdef>
+ <paramdef>int <parameter>result_id</parameter></paramdef>
+ <paramdef>int <parameter>row</parameter></paramdef>
+ <paramdef>mixed <parameter>field</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ Test if a field is &null; or not. Returns 0 if the field in the
+ given row is not &null;. Returns 1 if the field in the given row is
+ &null;. Field can be specified as number or fieldname. Row
+ numbering starts at 0.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-fieldname">
+ <refnamediv>
+ <refname>pg_fieldname</refname>
+ <refpurpose>Returns the name of a field</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>string <function>pg_fieldname</function></funcdef>
+ <paramdef>int <parameter>result_id</parameter></paramdef>
+ <paramdef>int <parameter>field_number</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_fieldname</function> will return the name of the
+ field occupying the given column number in the given PostgreSQL
+ result identifier. Field numbering starts from 0.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-fieldnum">
+ <refnamediv>
+ <refname>pg_fieldnum</refname>
+ <refpurpose>Returns the field number of the named field</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>pg_fieldnum</function></funcdef>
+ <paramdef>int <parameter>result_id</parameter></paramdef>
+ <paramdef>string <parameter>field_name</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_fieldnum</function> will return the number of the
+ column slot that corresponds to the named field in the given
+ PosgreSQL result identifier. Field numbering starts at 0. This
+ function will return -1 on error.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-fieldprtlen">
+ <refnamediv>
+ <refname>pg_fieldprtlen</refname>
+ <refpurpose>Returns the printed length</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>pg_fieldprtlen</function></funcdef>
+ <paramdef>int <parameter>result_id</parameter></paramdef>
+ <paramdef>int <parameter>row_number</parameter></paramdef>
+ <paramdef>string <parameter>field_name</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_fieldprtlen</function> will return the actual
+ printed length (number of characters) of a specific value in a
+ PostgreSQL result. Row numbering starts at 0. This function
+ will return -1 on an error.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-fieldsize">
+ <refnamediv>
+ <refname>pg_fieldsize</refname>
+ <refpurpose>
+ Returns the internal storage size of the named field
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>pg_fieldsize</function></funcdef>
+ <paramdef>int <parameter>result_id</parameter></paramdef>
+ <paramdef>int <parameter>field_number</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_fieldsize</function> will return the internal
+ storage size (in bytes) of the field number in the given
+ PostgreSQL result. Field numbering starts at 0. A field size of
+ -1 indicates a variable length field. This function will return
+ &false; on error.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-fieldtype">
+ <refnamediv>
+ <refname>pg_fieldtype</refname>
+ <refpurpose>
+ Returns the type name for the corresponding field number
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>string <function>pg_fieldtype</function></funcdef>
+ <paramdef>int <parameter>result_id</parameter></paramdef>
+ <paramdef>int <parameter>field_number</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_fieldtype</function> will return a string containing
+ the type name of the given field in the given PostgreSQL result
+ identifier. Field numbering starts at 0.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-freeresult">
+ <refnamediv>
+ <refname>pg_freeresult</refname>
+ <refpurpose>Free result memory</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>pg_freeresult</function></funcdef>
+ <paramdef>int <parameter>result_id</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_freeresult</function> only needs to be called if you
+ are worried about using too much memory while your script is
+ running. All result memory will automatically be freed when the
+ script is finished. But, if you are sure you are not going to
+ need the result data anymore in a script, you may call
+ <function>pg_freeresult</function> with the result identifier as
+ an argument and the associated result memory will be freed.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-getlastoid">
+ <refnamediv>
+ <refname>pg_getlastoid</refname>
+ <refpurpose>Returns the last object identifier</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>pg_getlastoid</function></funcdef>
+ <paramdef>int <parameter>result_id</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_getlastoid</function> can be used to retrieve the
+ <varname>oid</varname> assigned to an inserted tuple if the
+ result identifier is used from the last command sent via
+ <function>pg_exec</function> and was an SQL INSERT. This
+ function will return a positive integer if there was a valid
+ <varname>oid</varname>. It will return -1 if an error occured or
+ the last command sent via <function>pg_exec</function> was not an
+ INSERT.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-host">
+ <refnamediv>
+ <refname>pg_host</refname>
+ <refpurpose>
+ Returns the host name associated with the connection
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>string <function>pg_host</function></funcdef>
+ <paramdef>int <parameter>connection_id</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_host</function> will return the host name of the
+ given PostgreSQL connection identifier is connected to.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-loclose">
+ <refnamediv>
+ <refname>pg_loclose</refname>
+ <refpurpose>Close a large object</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>void <function>pg_loclose</function></funcdef>
+ <paramdef>int <parameter>fd</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_loclose</function> closes an Inversion Large
+ Object. <parameter>Fd</parameter> is a file descriptor for the
+ large object from <function>pg_loopen</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-locreate">
+ <refnamediv>
+ <refname>pg_locreate</refname>
+ <refpurpose>Create a large object</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>pg_locreate</function></funcdef>
+ <paramdef>int <parameter>conn</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_locreate</function> creates an Inversion Large
+ Object and returns the <varname>oid</varname> of the large
+ object. <parameter>conn</parameter> specifies a valid database
+ connection. PostgreSQL access modes INV_READ, INV_WRITE, and
+ INV_ARCHIVE are not supported, the object is created always with
+ both read and write access. INV_ARCHIVE has been removed from
+ PostgreSQL itself (version 6.3 and above).
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-loexport">
+ <refnamediv>
+ <refname>pg_loexport</refname>
+ <refpurpose>Export a large object to file</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>bool <function>pg_loexport</function></funcdef>
+ <paramdef>int
+ <parameter>oid</parameter>
+ </paramdef>
+ <paramdef>int
+ <parameter>file</parameter>
+ </paramdef>
+ <paramdef>int
+ <parameter><optional>connection_id</optional></parameter>
+ </paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ The <parameter>oid</parameter> argument specifies the object id
+ of the large object to export and the
+ <parameter>filename</parameter> argument specifies the pathname
+ of the file. Returns &false; if an error occurred, &true;
+ otherwise. Remember that handling large objects in PostgreSQL
+ must happen inside a transaction.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-loimport">
+ <refnamediv>
+ <refname>pg_loimport</refname>
+ <refpurpose>Import a large object from file</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>pg_loimport</function></funcdef>
+ <paramdef>int
+ <parameter>file</parameter>
+ </paramdef>
+ <paramdef>int
+ <parameter><optional>connection_id</optional></parameter>
+ </paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ The <parameter>filename</parameter> argument specifies the
+ pathname of the file to be imported as a large object. Returns
+ &false; if an error occurred, object id of the just created large
+ object otherwise. Remember that handling large objects in
+ PostgreSQL must happen inside a transaction.
+ </para>
+ ¬e.sm.uidcheck;
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-loopen">
+ <refnamediv>
+ <refname>pg_loopen</refname>
+ <refpurpose>Open a large object</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>pg_loopen</function></funcdef>
+ <paramdef>int <parameter>conn</parameter></paramdef>
+ <paramdef>int <parameter>objoid</parameter></paramdef>
+ <paramdef>string <parameter>mode</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_loopen</function> open an Inversion Large Object and
+ returns file descriptor of the large object. The file descriptor
+ encapsulates information about the connection. Do not close the
+ connection before closing the large object file descriptor.
+ <parameter>objoid</parameter> specifies a valid large object oid
+ and <parameter>mode</parameter> can be either "r", "w", or "rw".
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-loread">
+ <refnamediv>
+ <refname>pg_loread</refname>
+ <refpurpose>Read a large object</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>string <function>pg_loread</function></funcdef>
+ <paramdef>int <parameter>fd</parameter></paramdef>
+ <paramdef>int <parameter>len</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_loread</function> reads at most
+ <parameter>len</parameter> bytes from a large object and
+ returns it as a string.
+ <parameter>fd</parameter> specifies a valid large object file
+ descriptor and<parameter>len</parameter> specifies the maximum
+ allowable size of the large object segment.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-loreadall">
+ <refnamediv>
+ <refname>pg_loreadall</refname>
+ <refpurpose>
+ Read a entire large object and send straight to browser
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>void <function>pg_loreadall</function></funcdef>
+ <paramdef>int <parameter>fd</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_loreadall</function> reads a large object and
+ passes it straight through to the browser after sending all pending
+ headers. Mainly intended for sending binary data like images or sound.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-lounlink">
+ <refnamediv>
+ <refname>pg_lounlink</refname>
+ <refpurpose>Delete a large object</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>void <function>pg_lounlink</function></funcdef>
+ <paramdef>int <parameter>conn</parameter></paramdef>
+ <paramdef>int <parameter>lobjid</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_lounlink</function> deletes a large object with the
+ <parameter>lobjid</parameter> identifier for that large object.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-lowrite">
+ <refnamediv>
+ <refname>pg_lowrite</refname>
+ <refpurpose>Write a large object</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>pg_lowrite</function></funcdef>
+ <paramdef>int <parameter>fd</parameter></paramdef>
+ <paramdef>string <parameter>buf</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_lowrite</function> writes at most to a large object
+ from a variable <parameter>buf</parameter> and returns the number
+ of bytes actually written, or &false; in the case of an error.
+ <parameter>fd</parameter> is a file descriptor for the large
+ object from <function>pg_loopen</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-numfields">
+ <refnamediv>
+ <refname>pg_numfields</refname>
+ <refpurpose>Returns the number of fields</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>pg_numfields</function></funcdef>
+ <paramdef>int <parameter>result_id</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_numfields</function> will return the number of
+ fields (columns) in a PostgreSQL result. The argument is a valid
+ result identifier returned by <function>pg_exec</function>. This
+ function will return -1 on error.
+ </para>
+ <para>
+ See also <function>pg_numrows</function> and
+ <function>pg_cmdtuples</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-numrows">
+ <refnamediv>
+ <refname>pg_numrows</refname>
+ <refpurpose>Returns the number of rows</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>pg_numrows</function></funcdef>
+ <paramdef>int <parameter>result_id</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_numrows</function> will return the number of rows in a
+ PostgreSQL result. The argument is a valid result identifier
+ returned by <function>pg_exec</function>. This function will
+ return -1 on error.
+ </para>
+ <para>
+ See also <function>pg_numfields</function> and
+ <function>pg_cmdtuples</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-options">
+ <refnamediv>
+ <refname>pg_options</refname>
+ <refpurpose>Get the options associated with the connection</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>string <function>pg_options</function></funcdef>
+ <paramdef>int <parameter>connection_id</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_options</function> will return a string containing
+ the options specified on the given PostgreSQL connection
+ identifier.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-pconnect">
+ <refnamediv>
+ <refname>pg_pconnect</refname>
+ <refpurpose>Open a persistant PostgreSQL connection</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>pg_pconnect</function></funcdef>
+ <paramdef>string <parameter>conn_string</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ Returns a connection index on success, or &false; if the connection
+ could not be made. Opens a connection to a PostgreSQL database.
+ The arguments should be within a quoted string.
+ The arguments available include <parameter>host</parameter>,
+ <parameter>port</parameter>, <parameter>tty</parameter>,
+ <parameter>options</parameter>, <parameter>dbname</parameter>,
+ <parameter>user</parameter>, and <parameter>password</parameter>.
+ </para>
+ <para>
+ This function returns a connection index that is needed by other
+ PostgreSQL functions. You can have multiple connections open at
+ once.
+ </para>
+ <para>
+ The previous syntax of:
+ <command>$conn = pg_pconnect ("host", "port", "options", "tty",
+ "dbname")
+ </command>
+ has been deprecated.
+ </para>
+ <para>
+ See also <function>pg_connect</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-port">
+ <refnamediv>
+ <refname>pg_port</refname>
+ <refpurpose>
+ Return the port number associated with the connection
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>pg_port</function></funcdef>
+ <paramdef>int <parameter>connection_id</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_port</function> will return the port number that the
+ given PostgreSQL connection identifier is connected to.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-put-line">
+ <refnamediv>
+ <refname>pg_put_line</refname>
+ <refpurpose>Send a NULL-terminated string to PostgreSQL backend</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>bool <function>pg_put_line</function></funcdef>
+ <paramdef>resource
+ <parameter><optional>connection_id</optional></parameter>
+ </paramdef>
+ <paramdef>string <parameter>data</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_put_line</function> sends a NULL-terminated string
+ to the PostgreSQL backend server. This is useful for example for
+ very high-speed inserting of data into a table, initiated by
+ starting a PostgreSQL copy-operation. That final NULL-character
+ is added automatically. Returns &true; if successfull, &false;
+ otherwise.
+ </para>
+ <note>
+ <para>
+ Note the application must explicitly send the two characters "\."
+ on a final line to indicate to the backend that it has finished
+ sending its data.
+ </para>
+ </note>
+ <para>
+ See also <function>pg_end_copy</function>.
+ <example>
+ <title>High-speed insertion of data into a table</title>
+ <programlisting role="php">
+<?php
+ $conn = pg_pconnect ("dbname=foo");
+ pg_exec($conn, "create table bar (a int4, b char(16), d float8)");
+ pg_exec($conn, "copy bar from stdin");
+ pg_put_line($conn, "3\thello world\t4.5\n");
+ pg_put_line($conn, "4\tgoodbye world\t7.11\n");
+ pg_put_line($conn, "\\.\n");
+ pg_end_copy($conn);
+?>
+ </programlisting>
+ </example>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-result">
+ <refnamediv>
+ <refname>pg_result</refname>
+ <refpurpose>Returns values from a result identifier</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>mixed <function>pg_result</function></funcdef>
+ <paramdef>int <parameter>result_id</parameter></paramdef>
+ <paramdef>int <parameter>row_number</parameter></paramdef>
+ <paramdef>mixed <parameter>fieldname</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_result</function> will return values from a result
+ identifier produced by <function>pg_Exec</function>. The
+ <parameter>row_number</parameter> and
+ <parameter>fieldname</parameter> sepcify what cell in the table
+ of results to return. Row numbering starts from 0. Instead of
+ naming the field, you may use the field index as an unquoted
+ number. Field indices start from 0.
+ </para>
+ <para>
+ PostgreSQL has many built in types and only the basic ones are
+ directly supported here. All forms of integer, boolean and oid
+ types are returned as integer values. All forms of float, and
+ real types are returned as double values. All other types,
+ including arrays are returned as strings formatted in the same
+ default PostgreSQL manner that you would see in the
+ <command>psql</command> program.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-set-client-encoding">
+ <refnamediv>
+ <refname>pg_set_client_encoding</refname>
+ <refpurpose>
+ Set the client encoding
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>pg_set_client_encoding</function></funcdef>
+ <paramdef>int
+ <parameter><optional>connection</optional></parameter>
+ </paramdef>
+ <paramdef>string <parameter>encoding</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ The function set the client encoding and return 0 if success or
+ -1 if error.
+ </para>
+ <para>
+ <parameter>encoding</parameter> is the client
+ encoding and can be either :
+ SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE,
+ MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT,
+ SJIS, BIG5, WIN1250.
+ </para>
+ <note>
+ <para>
+ This function requires PHP-4.0.2 or higher and PostgreSQL-7.0 or
+ higher.
+ </para>
+ <para>
+ The function used to be called
+ <function>pg_setclientencoding</function>.
+ </para>
+ </note>
+ <para>
+ See also <function>pg_client_encoding</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-client-encoding">
+ <refnamediv>
+ <refname>pg_client_encoding</refname>
+ <refpurpose>
+ Get the client encoding
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>string <function>pg_client_encoding</function></funcdef>
+ <paramdef>int
+ <parameter><optional>connection</optional></parameter>
+ </paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ The functions returns the client encoding as the string. The
+ returned string should be either :
+ SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE,
+ MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT,
+ SJIS, BIG5, WIN1250.
+ </para>
+ <note>
+ <para>
+ This function requires PHP-4.0.2 or higher and PostgreSQL-7.0 or
+ higher.
+ </para>
+ <para>
+ The function used to be called
+ <function>pg_clientencoding</function>.
+ </para>
+ </note>
+ <para>
+ See also <function>pg_set_client_encoding</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-trace">
+ <refnamediv>
+ <refname>pg_trace</refname>
+ <refpurpose>Enable tracing a PostgreSQL connection</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>bool <function>pg_trace</function></funcdef>
+ <paramdef>string
+ <parameter>filename</parameter>
+ </paramdef>
+ <paramdef>string
+ <parameter><optional>mode</optional></parameter>
+ </paramdef>
+ <paramdef>int
+ <parameter><optional>connection</optional></parameter>
+ </paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ Enables tracing of the PostgreSQL frontend/backend communication
+ to a debugging file. To fully understand the results one needs to
+ be familiar with the internals of PostgreSQL communication
+ protocol. For those who are not, it can still be useful for
+ tracing errors in queries sent to the server, you could do for
+ example <command>grep '^To backend' trace.log</command> and see
+ what query actually were sent to the PostgreSQL server.
+ </para>
+ <para>
+ <parameter>Filename</parameter> and <parameter>mode</parameter>
+ are the same as in <function>fopen</function>
+ (<parameter>mode</parameter> defaults to 'w'),
+ <parameter>connection</parameter> specifies the connection to
+ trace and defaults to the last one opened.
+ </para>
+ <para>
+ Returns &true; if <parameter>filename</parameter> could be opened
+ for logging, &false; otherwise.
+ </para>
+ <para>
+ See also <function>fopen</function> and
+ <function>pg_untrace</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-tty">
+ <refnamediv>
+ <refname>pg_tty</refname>
+ <refpurpose>
+ Return the tty name associated with the connection
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>string <function>pg_tty</function></funcdef>
+ <paramdef>int <parameter>connection_id</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>pg_tty</function> will return the tty name that server
+ side debugging output is sent to on the given PostgreSQL
+ connection identifier.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.pg-untrace">
+ <refnamediv>
+ <refname>pg_untrace</refname>
+ <refpurpose>Disable tracing of a PostgreSQL connection</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>bool <function>pg_untrace</function></funcdef>
+ <paramdef>int
+ <parameter><optional>connection</optional></parameter>
+ </paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ Stop tracing started by <function>pg_trace</function>.
+ <parameter>connection</parameter> specifies the connection that was
+ traced and defaults to the last one opened.
+ </para>
+ <para>
+ Returns always &true;.
+ </para>
+ <para>
+ See also <function>pg_trace</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ </reference>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->