diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index 231ef4fe5cf075e9283d4a5d7824433edb505bb2..410e6ecc2f7a5d12e1f09160d2815f22a1185069 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -1,4 +1,4 @@ -<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.618 2009/03/30 20:32:49 momjian Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.619 2009/03/30 22:01:15 momjian Exp $ --> <!-- Typical markup: @@ -142,7 +142,7 @@ do it for earlier branch release files. </itemizedlist> - </sect3> + </sect3> <sect3> <title>Server Settings</title> @@ -231,10 +231,10 @@ do it for earlier branch release files. </itemizedlist> - </sect3> + </sect3> - <sect3> - <title>Queries</title> + <sect3> + <title>Queries</title> <itemizedlist> @@ -293,11 +293,11 @@ do it for earlier branch release files. </itemizedlist> - </sect3> + </sect3> - <sect3> - <title>General Functions and Operators</title> + <sect3> + <title>Functions and Operators</title> <itemizedlist> @@ -350,72 +350,72 @@ do it for earlier branch release files. </itemizedlist> - </sect3> - - <sect3> + <sect4> <title>Temporal Functions and Operators</title> - <itemizedlist> - - <listitem> - <para> - Have <function>to_char()</>'s localized month/day names depend - on <varname>LC_TIME</>, not <varname>LC_MESSAGES</> (Euler - Taveira de Oliveira) - </para> - </listitem> - - <listitem> - <para> - Cause <function>to_date()</> and <function>to_timestamp()</> - to more consistently report errors on invalid input (Brendan - Jurd) - </para> - </listitem> - - <listitem> - <para> - Provide consistent rounding for fractional seconds (Ron Mayer) - bjm: combine with another item? - </para> - </listitem> - - <listitem> - <para> - Fix <function>to_timestamp()</> to not require upper/lower case - matching for meridian (<literal>AM</>/<literal>PM</>) and era - (<literal>BC</>/<literal>AD</>) format designations (Brendan - Jurd) - </para> - - <para> - For example, input value <literal>ad</> now matches the format - string <literal>AD</>. - </para> - </listitem> - - <listitem> - <para> - Require the existence of periods in <function>to_timestamp()</> - meridian (<literal>AM</>/<literal>PM</>) and era - (<literal>BC</>/<literal>AD</>) format designations to match - (Brendan Jurd) - </para> - - <para> - For example, input value <literal>AD</> now does not match - format string <literal>A.D.</>. - </para> - </listitem> - - <listitem> - <para> - <varname>DateStyle</> no longer controls <type>INTERVAL</> - output (use new variable <varname>IntervalStyle</>) - </para> - </listitem> - - </itemizedlist> + <itemizedlist> + + <listitem> + <para> + Have <function>to_char()</>'s localized month/day names depend + on <varname>LC_TIME</>, not <varname>LC_MESSAGES</> (Euler + Taveira de Oliveira) + </para> + </listitem> + + <listitem> + <para> + Cause <function>to_date()</> and <function>to_timestamp()</> + to more consistently report errors on invalid input (Brendan + Jurd) + </para> + </listitem> + + <listitem> + <para> + Provide consistent rounding for fractional seconds (Ron Mayer) + bjm: combine with another item? + </para> + </listitem> + + <listitem> + <para> + Fix <function>to_timestamp()</> to not require upper/lower case + matching for meridian (<literal>AM</>/<literal>PM</>) and era + (<literal>BC</>/<literal>AD</>) format designations (Brendan + Jurd) + </para> + + <para> + For example, input value <literal>ad</> now matches the format + string <literal>AD</>. + </para> + </listitem> + + <listitem> + <para> + Require the existence of periods in <function>to_timestamp()</> + meridian (<literal>AM</>/<literal>PM</>) and era + (<literal>BC</>/<literal>AD</>) format designations to match + (Brendan Jurd) + </para> + + <para> + For example, input value <literal>AD</> now does not match + format string <literal>A.D.</>. + </para> + </listitem> + + <listitem> + <para> + <varname>DateStyle</> no longer controls <type>INTERVAL</> + output (use new variable <varname>IntervalStyle</>) + </para> + </listitem> + + </itemizedlist> + + </sect4> </sect3> @@ -565,58 +565,216 @@ do it for earlier branch release files. </sect3> <sect3> - <title>Server Settings</title> - <itemizedlist> + <title>Server</title> - <listitem> - <para> - Convert many <filename>postgresql.conf</> settings to enumerated - values so <literal>pg_settings</> can easily display valid - values (Magnus) - </para> - </listitem> + <sect4> + <title>Settings</title> + + <itemizedlist> + + <listitem> + <para> + Convert many <filename>postgresql.conf</> settings to enumerated + values so <literal>pg_settings</> can easily display valid + values (Magnus) + </para> + </listitem> + + <listitem> + <para> + Add <varname>cursor_tuple_fraction</> parameter to control the + fraction of a cursor's rows expected to be requested by the + user (Robert Hell) + </para> + </listitem> + + <listitem> + <para> + Allow underscores in <filename>postgresql.conf</> custom variable + classes (Tom) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title>Authentication</title> + <itemizedlist> + + <listitem> + <para> + Report appropriate error message for combination of <literal>MD5</> + authentication and <varname>db_user_namespace</> enabled (Bruce) + </para> + </listitem> + + <listitem> + <para> + Support regular expressions in <filename>pg_ident.conf</> + (Magnus) + </para> + </listitem> + + <listitem> + <para> + Allow <productname>Kerberos</>/<acronym>GSSAPI</> parameters + to be changed without restarting the postmaster (Magnus) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4 id="release-8-4-pg-hba-conf"> + <title><filename>pg_hba.conf</></title> + <itemizedlist> + + <listitem> + <para> + Parse <filename>pg_hba.conf</> in the postmaster so errors are + reported on reload (Magnus) + </para> + + <para> + Previously errors in the file wouldn't be detected until clients + tried to connect, which could leave the system with a broken + file loaded. + </para> + </listitem> + + <listitem> + <para> + Remove the <literal>sameuser</> option, making it the default + if no usermap is specified (Magnus) + </para> + </listitem> + + <listitem> + <para> + Change all authentication options to be <literal>name=value</> + settings (Magnus) + </para> + </listitem> + + <listitem> + <para> + Allow usermap parameter for all external authentication methods + (Magnus) + </para> + + <para> + Previously this was only supported for <literal>ident</> + authentication. + </para> + </listitem> + + <listitem> + <para> + Allow <literal>ident</> authentication over Unix-domain sockets + on <productname>Solaris</> (Garick Hamlin) + </para> + </listitem> + + <listitem> + <para> + Add <literal>clientcert</> option to control requesting of a + client certificate (Magnus) + </para> + + <para> + Previously this was controlled by the presence of a root + certificate file in the server's data directory. + </para> + </listitem> + + <listitem> + <para> + Add <literal>cert</> authentication method to allow user + authentication via <acronym>SSL</> certificates (Magnus) + </para> + + <para> + Previously <acronym>SSL</> certificates could only verify that + the client had access to a certificate, not authenticate a + user. + </para> + </listitem> + + <listitem> + <para> + Allow <literal>krb5</>, <literal>gssapi</> and <literal>sspi</> + realm and <literal>krb5</> host settings to be specified in + <filename>pg_hba.conf</> (Magnus) + </para> + + <para> + These override the settings in <filename>postgresql.conf</>. + </para> + </listitem> + + <listitem> + <para> + Add <literal>krb5</>, <literal>gssapi</>, and <literal>sspi</> + <varname>include_realm</> parameter (Magnus) + </para> + + <para> + This allows identical usernames from different realms to be + authenticated as different database users using usermaps. + </para> + </listitem> + + <listitem> + <para> + Show all parsing errors instead of aborting after the first + one (Selena Deckelmann) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + </sect3> + + <sect3> + <title>Continuous Archiving</title> + <itemizedlist> <listitem> <para> - Add <varname>cursor_tuple_fraction</> parameter to control the - fraction of a cursor's rows expected to be requested by the - user (Robert Hell) + Have <function>pg_stop_backup()</> wait for modified <acronym>WAL</> + files to be archived (Simon) </para> - </listitem> - <listitem> <para> - Allow underscores in <filename>postgresql.conf</> custom variable - classes (Tom) + This guarantees that the backup is valid at the time + <function>pg_stop_backup()</> completes. </para> </listitem> - </itemizedlist> - - </sect3> - - <sect3> - <title>Authentication</title> - <itemizedlist> - <listitem> <para> - Report appropriate error message for combination of <literal>MD5</> - authentication and <varname>db_user_namespace</> enabled (Bruce) + Prevent normal shutdown if a continuous archiving base backup + is in progress (Laurenz Albe) </para> </listitem> <listitem> <para> - Support regular expressions in <filename>pg_ident.conf</> - (Magnus) + Cancel a continuous archiving base backup if a fast shutdown + is requested (Laurenz Albe) </para> </listitem> <listitem> <para> - Allow <productname>Kerberos</>/<acronym>GSSAPI</> parameters - to be changed without restarting the postmaster (Magnus) + Allow <filename>recovery.conf</> boolean variables to take the + same range of string values as <filename>postgresql.conf</> + (Bruce) </para> </listitem> @@ -624,240 +782,88 @@ do it for earlier branch release files. </sect3> - <sect3 id="release-8-4-pg-hba-conf"> - <title><filename>pg_hba.conf</></title> + <sect3> + <title>Monitoring</title> <itemizedlist> <listitem> <para> - Parse <filename>pg_hba.conf</> in the postmaster so errors are - reported on reload (Magnus) - </para> - - <para> - Previously errors in the file wouldn't be detected until clients - tried to connect, which could leave the system with a broken - file loaded. + Add <function>pg_conf_load_time()</> to report when + the Postgres configuration files were last loaded (George + Gensure) </para> </listitem> <listitem> <para> - Remove the <literal>sameuser</> option, making it the default - if no usermap is specified (Magnus) + Add <function>pg_terminate_backend()</> to safely terminate a + backend (the <literal>SIGTERM</> signal works also) (Tom, Bruce) </para> </listitem> <listitem> <para> - Change all authentication options to be <literal>name=value</> - settings (Magnus) - </para> - </listitem> - - <listitem> - <para> - Allow usermap parameter for all external authentication methods - (Magnus) + Add ability to track user-defined functions call counts and + runtimes via parameter <varname>track_functions</> (Martin + Pihlak) </para> - + <para> - Previously this was only supported for <literal>ident</> - authentication. + Function statistics appear in a new system table, + <literal>pg_stat_user_functions</>. However, inlined + <acronym>SQL</> functions are not tracked. </para> </listitem> <listitem> <para> - Allow <literal>ident</> authentication over Unix-domain sockets - on <productname>Solaris</> (Garick Hamlin) + Allow specification of the maximum <literal>pg_stat_activity</> + query string size via <varname>track_activity_query_size</> + parameter (Thomas Lee) </para> </listitem> <listitem> <para> - Add <literal>clientcert</> option to control requesting of a - client certificate (Magnus) - </para> - - <para> - Previously this was controlled by the presence of a root - certificate file in the server's data directory. + Improve syslog performance by increasing the maximum line length + (Tom) </para> </listitem> <listitem> <para> - Add <literal>cert</> authentication method to allow user - authentication via <acronym>SSL</> certificates (Magnus) - </para> - - <para> - Previously <acronym>SSL</> certificates could only verify that - the client had access to a certificate, not authenticate a - user. + Add read-only <filename>postgresql.conf</> variables <varname>segment_size</>, + <varname>wal_block_size</>, and <varname>wal_segment_size</> (Bernd Helmle) </para> </listitem> <listitem> <para> - Allow <literal>krb5</>, <literal>gssapi</> and <literal>sspi</> - realm and <literal>krb5</> host settings to be specified in - <filename>pg_hba.conf</> (Magnus) + When reporting a deadlock, report all session queries involved + in the deadlock to the server log (Itagaki Takahiro) </para> + </listitem> + <listitem> <para> - These override the settings in <filename>postgresql.conf</>. + New <function>pg_stat_get_activity(pid)</> function to return + information about a specific process id (Magnus) </para> </listitem> <listitem> <para> - Add <literal>krb5</>, <literal>gssapi</>, and <literal>sspi</> - <varname>include_realm</> parameter (Magnus) + Move the server statistics file into the subdirectory + <filename>pg_stat_tmp</> and allow its location to be specified + via <varname>stats_temp_directory</> (Magnus) </para> <para> - This allows identical usernames from different realms to be - authenticated as different database users using usermaps. - </para> - </listitem> - - <listitem> - <para> - Show all parsing errors instead of aborting after the first - one (Selena Deckelmann) - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title>Continuous Archiving</title> - <itemizedlist> - - <listitem> - <para> - Have <function>pg_stop_backup()</> wait for modified <acronym>WAL</> - files to be archived (Simon) - </para> - - <para> - This guarantees that the backup is valid at the time - <function>pg_stop_backup()</> completes. - </para> - </listitem> - - <listitem> - <para> - Prevent normal shutdown if a continuous archiving base backup - is in progress (Laurenz Albe) - </para> - </listitem> - - <listitem> - <para> - Cancel a continuous archiving base backup if a fast shutdown - is requested (Laurenz Albe) - </para> - </listitem> - - <listitem> - <para> - Allow <filename>recovery.conf</> boolean variables to take the - same range of string values as <filename>postgresql.conf</> - (Bruce) - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title>Monitoring</title> - <itemizedlist> - - <listitem> - <para> - Add <function>pg_conf_load_time()</> to report when - the Postgres configuration files were last loaded (George - Gensure) - </para> - </listitem> - - <listitem> - <para> - Add <function>pg_terminate_backend()</> to safely terminate a - backend (the <literal>SIGTERM</> signal works also) (Tom, Bruce) - </para> - </listitem> - - <listitem> - <para> - Add ability to track user-defined functions call counts and - runtimes via parameter <varname>track_functions</> (Martin - Pihlak) - </para> - - <para> - Function statistics appear in a new system table, - <literal>pg_stat_user_functions</>. However, inlined - <acronym>SQL</> functions are not tracked. - </para> - </listitem> - - <listitem> - <para> - Allow specification of the maximum <literal>pg_stat_activity</> - query string size via <varname>track_activity_query_size</> - parameter (Thomas Lee) - </para> - </listitem> - - <listitem> - <para> - Improve syslog performance by increasing the maximum line length - (Tom) - </para> - </listitem> - - <listitem> - <para> - Add read-only <filename>postgresql.conf</> variables <varname>segment_size</>, - <varname>wal_block_size</>, and <varname>wal_segment_size</> (Bernd Helmle) - </para> - </listitem> - - <listitem> - <para> - When reporting a deadlock, report all session queries involved - in the deadlock to the server log (Itagaki Takahiro) - </para> - </listitem> - - <listitem> - <para> - New <function>pg_stat_get_activity(pid)</> function to return - information about a specific process id (Magnus) - </para> - </listitem> - - <listitem> - <para> - Move the server statistics file into the subdirectory - <filename>pg_stat_tmp</> and allow its location to be specified - via <varname>stats_temp_directory</> (Magnus) - </para> - - <para> - This allows the statistics file to be placed in a - <acronym>RAM</>-resident directory to reduce I/O requirements. - On startup/shutdown, the file is copied to the top-level - <literal>$PGDATA</> directory so it is preserved between - restarts. + This allows the statistics file to be placed in a + <acronym>RAM</>-resident directory to reduce I/O requirements. + On startup/shutdown, the file is copied to the top-level + <literal>$PGDATA</> directory so it is preserved between + restarts. </para> </listitem> @@ -974,1507 +980,1521 @@ do it for earlier branch release files. </itemizedlist> + <sect4> + <title><command>TRUNCATE</></title> + <itemizedlist> + + <listitem> + <para> + Support statement-level <literal>ON TRUNCATE</> triggers (Simon) + </para> + </listitem> + + <listitem> + <para> + Add <command>TRUNCATE TABLE</> ... + <literal>RESTART</>/<literal>CONTINUE IDENTITY</> clauses + (Zoltan Boszormenyi) + </para> + + <para> + The start value of a sequence can be changed by <command>ALTER + SEQUENCE START WITH</>. + </para> + </listitem> + + <listitem> + <para> + Allow <command>TRUNCATE tab1, tab1</> to succeed (Bruce) + </para> + </listitem> + + <listitem> + <para> + Add a separate <command>TRUNCATE</> permission (Robert Haas) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title><command>EXPLAIN</></title> + <itemizedlist> + + <listitem> + <para> + Have <command>EXPLAIN VERBOSE</> show the output columns of a + query (Tom) + </para> + + <para> + Previously <command>EXPLAIN VERBOSE</> output an internal + representation of the query plan. (That behavior is now + available via <varname>debug_print_plan</>.) + </para> + </listitem> + + <listitem> + <para> + Have <command>EXPLAIN</> honor <varname>debug_print_plan</> (Tom) + </para> + </listitem> + + <listitem> + <para> + Allow <command>EXPLAIN</> on <command>CREATE TABLE AS</> (Peter) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title><literal>LIMIT</>/<literal>OFFSET</></title> + <itemizedlist> + + <listitem> + <para> + Allow <literal>LIMIT</> and <literal>OFFSET</> to use subselects + as arguments (Tom) + </para> + </listitem> + + <listitem> + <para> + Document that <literal>LIMIT NULL</> and <literal>OFFSET NULL</> + have no effect (Tom) + </para> + </listitem> + + <listitem> + <para> + Add <acronym>SQL</>-standards syntax for + <literal>LIMIT</>/<literal>OFFSET</> capabilities (Peter) + </para> + + <para> + <literal>OFFSET num {ROW|ROWS} FETCH {FIRST|NEXT} [num] {ROW|ROWS} + ONLY</>. + </para> + </listitem> + + </itemizedlist> + + </sect4> + </sect3> - + <sect3> - <title><command>TRUNCATE</></title> + <title>Object Manipulation</title> <itemizedlist> <listitem> <para> - Support statement-level <literal>ON TRUNCATE</> triggers (Simon) - </para> - </listitem> - - <listitem> - <para> - Add <command>TRUNCATE TABLE</> ... - <literal>RESTART</>/<literal>CONTINUE IDENTITY</> clauses - (Zoltan Boszormenyi) - </para> - - <para> - The start value of a sequence can be changed by <command>ALTER - SEQUENCE START WITH</>. + Add support for column-level privileges (Stephen Frost, KaiGai + Kohei) </para> </listitem> <listitem> <para> - Allow <command>TRUNCATE tab1, tab1</> to succeed (Bruce) + Improve reporting of dependencies during <command>DROP</> + commands (Alex Hunsaker) </para> </listitem> <listitem> <para> - Add a separate <command>TRUNCATE</> permission (Robert Haas) + Refactor multi-object <command>DROP</> operations so conflicting + dependencies do not generate an error (Alex Hunsaker) </para> </listitem> - </itemizedlist> - - </sect3> - - <sect3> - <title><command>EXPLAIN</></title> - <itemizedlist> - <listitem> <para> - Have <command>EXPLAIN VERBOSE</> show the output columns of a - query (Tom) - </para> - - <para> - Previously <command>EXPLAIN VERBOSE</> output an internal - representation of the query plan. (That behavior is now - available via <varname>debug_print_plan</>.) + Add <literal>WITH [NO] DATA</> clause to <command>CREATE TABLE + AS</>, per the <acronym>SQL</> standard (Tom, Peter) </para> </listitem> <listitem> <para> - Have <command>EXPLAIN</> honor <varname>debug_print_plan</> (Tom) + Add support for user-defined I/O conversion casts (Heikki) </para> </listitem> <listitem> <para> - Allow <command>EXPLAIN</> on <command>CREATE TABLE AS</> (Peter) + Allow <command>CREATE AGGREGATE</> to use an <type>internal</> + transition datatype (for super-users only) (Tom) </para> </listitem> - </itemizedlist> - - </sect3> - - <sect3> - <title><literal>LIMIT</>/<literal>OFFSET</></title> - <itemizedlist> - <listitem> <para> - Allow <literal>LIMIT</> and <literal>OFFSET</> to use subselects - as arguments (Tom) + Add <literal>LIKE</> clause to <command>CREATE TYPE</> (Tom) </para> - </listitem> - <listitem> <para> - Document that <literal>LIMIT NULL</> and <literal>OFFSET NULL</> - have no effect (Tom) + This simplifies creation of data types like existing types. </para> </listitem> <listitem> <para> - Add <acronym>SQL</>-standards syntax for - <literal>LIMIT</>/<literal>OFFSET</> capabilities (Peter) - </para> - - <para> - <literal>OFFSET num {ROW|ROWS} FETCH {FIRST|NEXT} [num] {ROW|ROWS} - ONLY</>. + Allow <command>CREATE OR REPLACE VIEW</> to add columns to the + <emphasis>end</> of a view (Robert Haas) </para> </listitem> </itemizedlist> - </sect3> - - <sect3> - <title>Object Manipulation</title> - <itemizedlist> - - <listitem> - <para> - Add support for column-level privileges (Stephen Frost, KaiGai - Kohei) - </para> - </listitem> - - <listitem> - <para> - Improve reporting of dependencies during <command>DROP</> - commands (Alex Hunsaker) - </para> - </listitem> - - <listitem> - <para> - Refactor multi-object <command>DROP</> operations so conflicting - dependencies do not generate an error (Alex Hunsaker) - </para> - </listitem> - - <listitem> - <para> - Add <literal>WITH [NO] DATA</> clause to <command>CREATE TABLE - AS</>, per the <acronym>SQL</> standard (Tom, Peter) - </para> - </listitem> - - <listitem> - <para> - Add support for user-defined I/O conversion casts (Heikki) - </para> - </listitem> - - <listitem> - <para> - Allow <command>CREATE AGGREGATE</> to use an <type>internal</> - transition datatype (for super-users only) (Tom) - </para> - </listitem> - - <listitem> - <para> - Add <literal>LIKE</> clause to <command>CREATE TYPE</> (Tom) - </para> - - <para> - This simplifies creation of data types like existing types. - </para> - </listitem> - - <listitem> - <para> - Allow <command>CREATE OR REPLACE VIEW</> to add columns to the - <emphasis>end</> of a view (Robert Haas) - </para> - </listitem> + <sect4> + <title><command>ALTER</></title> + <itemizedlist> + + <listitem> + <para> + Add <command>ALTER TYPE RENAME</> (Petr Jelinek) + </para> + </listitem> + + <listitem> + <para> + Add <command>ALTER SEQUENCE ... RESTART</> (no parameter) to + reset a sequence to its initial value (Zoltan Boszormenyi) + bjm: compatibility problem? + </para> + </listitem> + + <listitem> + <para> + Modify the <command>ALTER TABLE</> syntax to allow all reasonable + combinations for tables, indexes, sequences, and views (Tom) + </para> + </listitem> + + <listitem> + <para> + New syntax supported (these formerly required <command>ALTER + TABLE</>) + </para> + + <para> + <itemizedlist> + <listitem> + <para> + <command>ALTER SEQUENCE OWNER TO</> + </para> + </listitem> + <listitem> + <para> + <command>ALTER VIEW ALTER COLUMN SET/DROP DEFAULT</> + </para> + </listitem> + <listitem> + <para> + <command>ALTER VIEW OWNER TO</> + </para> + </listitem> + <listitem> + <para> + <command>ALTER VIEW SET SCHEMA</> + </para> + </listitem> + </itemizedlist> + </para> + + </listitem> + + <listitem> + <para> + Add support for the syntax <command>ALTER TABLE ... ALTER COLUMN + ... SET DATA TYPE</> (Peter) + </para> + + <para> + This is <acronym>SQL</>-standard syntax for functionality that + was already supported. + </para> + </listitem> + + <listitem> + <para> + Have <command>ALTER TABLE SET WITHOUT OIDS</> rewrite the table + to remove <type>OID</> values (Tom) + </para> + + <para> + Also, add <command>ALTER TABLE SET WITH OIDS</> to rewrite the + table to add <type>OID</>s. + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title>Database Manipulation</title> + <itemizedlist> + + <listitem> + <para> + Improve reporting of + <command>CREATE</>/<command>DROP</>/<command>RENAME DATABASE</> + failure when uncommitted prepared transactions are the cause + (Tom) + </para> + </listitem> + + <listitem> + <para> + Make <varname>LC_COLLATE</> and <varname>LC_CTYPE</> database-level + settings (Radek Strnad, Heikki) + </para> + + <para> + This makes collation similar to encoding, which was always + configurable per database. + </para> + </listitem> + + <listitem> + <para> + Improve checks that the database encoding, collation + (<varname>LC_COLLATE</>), and character classes + (<varname>LC_CTYPE</>) match (Heikki) + </para> + </listitem> + + <listitem> + <para> + Add <command>ALTER DATABASE SET TABLESPACE</> to move a database + to a new tablespace (Guillaume Lelarge, Bernd Helmle) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + </sect3> - </itemizedlist> + <sect3> + <title>Utility Operations</title> + <sect4> + <title>Indexes</title> + <itemizedlist> + + <listitem> + <para> + Dramatically improve the speed of building and accessing hash + indexes (Tom Raney, Shreya Bhargava, Kenneth Marshall) + </para> + + <para> + This allows hash indexes to be sometimes faster than btree + indexes. However, hash indexes are still not crash-safe. + </para> + </listitem> + + <listitem> + <para> + Have hash indexes store only the hashed value, not the full + indexed columns (Xiao Meng) + </para> + + <para> + This greatly reduces the size of hash indexes for long indexed + values, and improves performance. + </para> + </listitem> + + <listitem> + <para> + Special xxx_pattern_ops <literal>LIKE</> indexes can now be + used for simple equality comparisons (Tom) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title>Full Text Indexes</title> + <itemizedlist> + + <listitem> + <para> + Remove the requirement to use <literal>@@@</> when doing + <acronym>GIN</> weighted lookups on full text indexes (Tom) + </para> + + <para> + The normal <literal>@@</> text search operator can be used + instead. + </para> + </listitem> + + <listitem> + <para> + Add an optimizer selectivity function for <literal>@@</> text + search operations (Jan Urbanski) + </para> + </listitem> + + <listitem> + <para> + Add partial match support for <acronym>GIN</> indexes (Teodor + Sigaev, Oleg Bartunov) + </para> + </listitem> + + <listitem> + <para> + Allow prefix matching in full text searches (Teodor Sigaev, + Oleg Bartunov) + </para> + </listitem> + + <listitem> + <para> + Support multi-column <acronym>GIN</> indexes (Teodor Sigaev) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title><command>VACUUM</></title> + <itemizedlist> + + <listitem> + <para> + Allow relation forks to track free space (Heikki) + </para> + + <para> + This allows the recording of all free space discovered by vacuum + in <filename>*.fsm</> files, rather than having to limit + recording to a fixed-sized shared memory area; + <varname>max_fsm_pages</> and <varname>max_fsm_relations</> + settings have been removed. + </para> + </listitem> + + <listitem> + <para> + New visibility map file to track pages that do not require + vacuum (Heikki) + </para> + + <para> + This allows <command>VACUUM</> to avoid sequentially scanning + a table when only a portion of the table needs vacuuming. + </para> + </listitem> + + <listitem> + <para> + Track explicit transaction snapshots (Alvaro) + </para> + + <para> + This improves space reuse by vacuum in the presence of long-running + transactions. + </para> + </listitem> + + <listitem> + <para> + Add <varname>vacuum_freeze_table_age</> parameter to control + when <command>VACUUM</> should ignore the visibility map and + do a full table scan to set frozen xids (Heikki) + </para> + </listitem> + + <listitem> + <para> + Add ability to specify autovacuum and <acronym>TOAST</> parameters + in <command>CREATE TABLE</> (Alvaro, Euler Taveira de Oliveira) + </para> + + <para> + Autovacuum options used to be stored in a system table. + </para> + </listitem> + + <listitem> + <para> + Add <literal>--freeze</> option to <application>vacuumdb</> + (Bruce) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title>Other Utility Operations</title> + <itemizedlist> + + <listitem> + <para> + Add verbose option to the <command>CLUSTER</> command and + <application>clusterdb</> (Jim Cox) + </para> + </listitem> + + <listitem> + <para> + Decrease memory requirements for recording pending trigger + events (Tom) + </para> + </listitem> + + </itemizedlist> + + </sect4> + </sect3> - + <sect3> - <title><command>ALTER</></title> + <title>Data Types</title> <itemizedlist> <listitem> <para> - Add <command>ALTER TYPE RENAME</> (Petr Jelinek) - </para> - </listitem> - - <listitem> - <para> - Add <command>ALTER SEQUENCE ... RESTART</> (no parameter) to - reset a sequence to its initial value (Zoltan Boszormenyi) - bjm: compatibility problem? - </para> - </listitem> - - <listitem> - <para> - Modify the <command>ALTER TABLE</> syntax to allow all reasonable - combinations for tables, indexes, sequences, and views (Tom) - </para> - </listitem> - - <listitem> - <para> - New syntax supported (these formerly required <command>ALTER - TABLE</>) - </para> - - <para> - <itemizedlist> - <listitem> - <para> - <command>ALTER SEQUENCE OWNER TO</> - </para> - </listitem> - <listitem> - <para> - <command>ALTER VIEW ALTER COLUMN SET/DROP DEFAULT</> - </para> - </listitem> - <listitem> - <para> - <command>ALTER VIEW OWNER TO</> - </para> - </listitem> - <listitem> - <para> - <command>ALTER VIEW SET SCHEMA</> - </para> - </listitem> - </itemizedlist> - </para> - - </listitem> - - <listitem> - <para> - Add support for the syntax <command>ALTER TABLE ... ALTER COLUMN - ... SET DATA TYPE</> (Peter) - </para> - - <para> - This is <acronym>SQL</>-standard syntax for functionality that - was already supported. + Add a <literal>CaseSensitive</> option for text search synonym + dictionaries (Simon) </para> </listitem> <listitem> <para> - Have <command>ALTER TABLE SET WITHOUT OIDS</> rewrite the table - to remove <type>OID</> values (Tom) - </para> - - <para> - Also, add <command>ALTER TABLE SET WITH OIDS</> to rewrite the - table to add <type>OID</>s. + Improve the precision of <type>NUMERIC</> division (Tom) </para> </listitem> - </itemizedlist> - - </sect3> - - <sect3> - <title>Database Manipulation</title> - <itemizedlist> - <listitem> <para> - Improve reporting of - <command>CREATE</>/<command>DROP</>/<command>RENAME DATABASE</> - failure when uncommitted prepared transactions are the cause + Add <type>int2</> with <type>int8</> basic arithmetic operators (Tom) </para> - </listitem> - - <listitem> - <para> - Make <varname>LC_COLLATE</> and <varname>LC_CTYPE</> database-level - settings (Radek Strnad, Heikki) - </para> <para> - This makes collation similar to encoding, which was always - configurable per database. + This simplifies casting requirements. </para> </listitem> <listitem> <para> - Improve checks that the database encoding, collation - (<varname>LC_COLLATE</>), and character classes - (<varname>LC_CTYPE</>) match (Heikki) + Allow <type>UUID</> input to accept optional hyphens after + every four digits (Robert Haas) </para> </listitem> <listitem> <para> - Add <command>ALTER DATABASE SET TABLESPACE</> to move a database - to a new tablespace (Guillaume Lelarge, Bernd Helmle) + Accept <literal>on</>/<literal>off</> as boolean data type + values (Itagaki Takahiro) </para> </listitem> </itemizedlist> - </sect3> - - <sect3> - <title>General Indexes</title> - <itemizedlist> - - <listitem> - <para> - Dramatically improve the speed of building and accessing hash - indexes (Tom Raney, Shreya Bhargava, Kenneth Marshall) - </para> - - <para> - This allows hash indexes to be sometimes faster than btree - indexes. However, hash indexes are still not crash-safe. - </para> - </listitem> - - <listitem> - <para> - Have hash indexes store only the hashed value, not the full - indexed columns (Xiao Meng) - </para> - - <para> - This greatly reduces the size of hash indexes for long indexed - values, and improves performance. - </para> - </listitem> - - <listitem> - <para> - Special xxx_pattern_ops <literal>LIKE</> indexes can now be - used for simple equality comparisons (Tom) - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title>Full Text Indexes</title> - <itemizedlist> - - <listitem> - <para> - Remove the requirement to use <literal>@@@</> when doing - <acronym>GIN</> weighted lookups on full text indexes (Tom) - </para> - - <para> - The normal <literal>@@</> text search operator can be used - instead. - </para> - </listitem> - - <listitem> - <para> - Add an optimizer selectivity function for <literal>@@</> text - search operations (Jan Urbanski) - </para> - </listitem> - - <listitem> - <para> - Add partial match support for <acronym>GIN</> indexes (Teodor - Sigaev, Oleg Bartunov) - </para> - </listitem> - - <listitem> - <para> - Allow prefix matching in full text searches (Teodor Sigaev, - Oleg Bartunov) - </para> - </listitem> - - <listitem> - <para> - Support multi-column <acronym>GIN</> indexes (Teodor Sigaev) - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title><command>VACUUM</></title> - <itemizedlist> - - <listitem> - <para> - Allow relation forks to track free space (Heikki) - </para> - - <para> - This allows the recording of all free space discovered by vacuum - in <filename>*.fsm</> files, rather than having to limit - recording to a fixed-sized shared memory area; - <varname>max_fsm_pages</> and <varname>max_fsm_relations</> - settings have been removed. - </para> - </listitem> - - <listitem> - <para> - New visibility map file to track pages that do not require - vacuum (Heikki) - </para> - - <para> - This allows <command>VACUUM</> to avoid sequentially scanning - a table when only a portion of the table needs vacuuming. - </para> - </listitem> - - <listitem> - <para> - Track explicit transaction snapshots (Alvaro) - </para> - - <para> - This improves space reuse by vacuum in the presence of long-running - transactions. - </para> - </listitem> - - <listitem> - <para> - Add <varname>vacuum_freeze_table_age</> parameter to control - when <command>VACUUM</> should ignore the visibility map and - do a full table scan to set frozen xids (Heikki) - </para> - </listitem> - - <listitem> - <para> - Add ability to specify autovacuum and <acronym>TOAST</> parameters - in <command>CREATE TABLE</> (Alvaro, Euler Taveira de Oliveira) - </para> - - <para> - Autovacuum options used to be stored in a system table. - </para> - </listitem> - - <listitem> - <para> - Add <literal>--freeze</> option to <application>vacuumdb</> - (Bruce) - </para> - </listitem> - - </itemizedlist> + <sect4> + <title>Temporal Data Types</title> + <itemizedlist> + + <listitem> + <para> + Reject year <literal>0 BC</> and years <literal>000</> and + <literal>0000</> (Tom) + </para> + + <para> + Previously these were interpreted as <literal>1 BC</>; years + <literal>0</> and <literal>00</> are assumed to be the year + 2000. + </para> + </listitem> + + <listitem> + <para> + Include <acronym>SGT</> (Singapore time) as a valid time zone + abbreviation (Tom) + </para> + </listitem> + + <listitem> + <para> + Support the <acronym>IS0 8601</> <type>interval</> syntax (Tom, + Kevin Grittner) + </para> + + <para> + For example, <literal>INTERVAL 'P1Y2M3DT4H5M6.7S'</> is now + supported. + </para> + </listitem> + + <listitem> + <para> + Allow <type>INTERVAL</> precision to be specified after the + last field, for <acronym>SQL</>-standards compliance (Tom) + </para> + + <para> + Formerly the precision had to be specified after the keyword + <type>INTERVAL</> (this syntax is still supported). Data type + definitions will now be output using the new format. + </para> + </listitem> + + <listitem> + <para> + Support <literal>infinite</> dates (Tom) + </para> + </listitem> + + <listitem> + <para> + Add <varname>IntervalStyle</> parameter + which controls how <type>INTERVAL</> values are output (Ron Mayer) + </para> + + <para> + Valid value are: <literal>postgres</>, <literal>postgres_verbose</>, + <literal>sql_standard</>, <literal>iso_8601</>. This also + controls the handling of negative <type>INTERVAL</> input when only + some fields have positive/negative designations. + </para> + </listitem> + + <listitem> + <para> + Make <type>INTERVAL</> seconds rounding more consistent across + output formats (Ron Mayer) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title>Arrays</title> + <itemizedlist> + + <listitem> + <para> + Have cast on <type>ARRAY</> apply to all elements, not just + the array result (Brendan Jurd) + </para> + + <para> + This allows <literal>NULL</> <type>ARRAY</> entries as long as + they are properly cast. + </para> + </listitem> + + <listitem> + <para> + Make <acronym>SQL</>-syntax <type>ARRAY</> dimensions optional + to match the <acronym>SQL</> standard (Peter) + </para> + </listitem> + + <listitem> + <para> + Add <function>array_ndims()</> to return the number + of dimensions of an array (Robert Haas) + </para> + </listitem> + + <listitem> + <para> + Add <function>array_length()</> to return the length + of an array for the specified dimensions (Jim Nasby, Robert + Haas, Peter Eisentraut) + </para> + + <para> + Also add identically-functioning <acronym>SQL</>-standard + function <function>cardinality()</>. + </para> + </listitem> + + <listitem> + <para> + Add new aggregate function <function>array_agg()</>, which + returns all aggregated values as a single array (Robert Haas, + Jeff Davis, Peter) + </para> + </listitem> + + <listitem> + <para> + Add <function>unnest()</>, which converts an array to + individual row values (Tom) + </para> + + <para> + This is the opposite of <function>array_agg()</>. + </para> + </listitem> + + <listitem> + <para> + Add <function>array_fill()</> to create arrays initialized with + a value (Pavel Stehule) + </para> + </listitem> + + <listitem> + <para> + Add <function>generate_subscripts()</> to generate array + subscripts (Pavel Stehule) + </para> + </listitem> + + <listitem> + <para> + Generate proper error if a <type>SERIAL</> array is specified + (Tom) + </para> + </listitem> + + </itemizedlist> + + </sect4> + <sect4> + <title>Wide-Value Storage (<acronym>TOAST</>)</title> + <itemizedlist> + + <listitem> + <para> + Consider <acronym>TOAST</> compression on values as short as + 32 bytes (previously 256 bytes) (Tom) + </para> + </listitem> + + <listitem> + <para> + Require 25% of space savings before using <acronym>TOAST</> + compression (previously 20%) (Tom) + </para> + </listitem> + + <listitem> + <para> + Be more aggressive in storing <literal>EXTERNAL</> and + <literal>EXTENDED</> column values in <acronym>TOAST</>(Tom) + </para> + </listitem> + + </itemizedlist> + + </sect4> + </sect3> - + <sect3> - <title>Other Utility Operations</title> + <title>Functions</title> <itemizedlist> <listitem> <para> - Add verbose option to the <command>CLUSTER</> command and - <application>clusterdb</> (Jim Cox) + Document that <function>setseed()</> allows values from + <literal>-1</> to <literal>1</> (not just <literal>0</> to + <literal>1</>), and enforce the valid range (Kris Jurka) </para> </listitem> <listitem> <para> - Decrease memory requirements for recording pending trigger - events (Tom) + Add server side function <function>lo_import(filename, oid)</> + (Tatsuo) </para> </listitem> - </itemizedlist> - - </sect3> - - <sect3> - <title>General Data Types</title> - <itemizedlist> - <listitem> <para> - Add a <literal>CaseSensitive</> option for text search synonym - dictionaries (Simon) + Add <function>quote_nullable()</>, which behaves like + <function>quote_literal()</> but returns <literal>NULL</> for + a null argument (Brendan Jurd) </para> </listitem> <listitem> <para> - Improve the precision of <type>NUMERIC</> division (Tom) + Improve full text search <function>headline()</> generation to + allow several fragments (Sushant Sinha) </para> </listitem> <listitem> <para> - Add <type>int2</> with <type>int8</> basic arithmetic operators - (Tom) - </para> - - <para> - This simplifies casting requirements. + Add <function>suppress_redundant_updates_trigger()</> trigger + function to avoid non-data-changing updates (Andrew) </para> </listitem> <listitem> <para> - Allow <type>UUID</> input to accept optional hyphens after - every four digits (Robert Haas) + Add <function>div(NUMERIC, NUMERIC)</> for <type>NUMERIC</> + division, without rounding (Tom) </para> </listitem> <listitem> <para> - Accept <literal>on</>/<literal>off</> as boolean data type - values (Itagaki Takahiro) + Add <type>TIMESTAMP</> and <type>TIMESTAMPTZ</> versions of + <function>generate_series()</> (Hitoshi Harada) </para> </listitem> </itemizedlist> - </sect3> - - <sect3> - <title>Temporal Data Types</title> - <itemizedlist> - - <listitem> - <para> - Reject year <literal>0 BC</> and years <literal>000</> and - <literal>0000</> (Tom) - </para> - - <para> - Previously these were interpreted as <literal>1 BC</>; years - <literal>0</> and <literal>00</> are assumed to be the year - 2000. - </para> - </listitem> - - <listitem> - <para> - Include <acronym>SGT</> (Singapore time) as a valid time zone - abbreviation (Tom) - </para> - </listitem> - - <listitem> - <para> - Support the <acronym>IS0 8601</> <type>interval</> syntax (Tom, - Kevin Grittner) - </para> - - <para> - For example, <literal>INTERVAL 'P1Y2M3DT4H5M6.7S'</> is now - supported. - </para> - </listitem> - - <listitem> - <para> - Allow <type>INTERVAL</> precision to be specified after the - last field, for <acronym>SQL</>-standards compliance (Tom) - </para> - - <para> - Formerly the precision had to be specified after the keyword - <type>INTERVAL</> (this syntax is still supported). Data type - definitions will now be output using the new format. - </para> - </listitem> - - <listitem> - <para> - Support <literal>infinite</> dates (Tom) - </para> - </listitem> - - <listitem> - <para> - Add <varname>IntervalStyle</> parameter - which controls how <type>INTERVAL</> values are output (Ron Mayer) - </para> - - <para> - Valid value are: <literal>postgres</>, <literal>postgres_verbose</>, - <literal>sql_standard</>, <literal>iso_8601</>. This also - controls the handling of negative <type>INTERVAL</> input when only - some fields have positive/negative designations. - </para> - </listitem> - - <listitem> - <para> - Make <type>INTERVAL</> seconds rounding more consistent across - output formats (Ron Mayer) - </para> - </listitem> - - - </itemizedlist> - - </sect3> - - <sect3> - <title>Arrays</title> - <itemizedlist> - - <listitem> - <para> - Have cast on <type>ARRAY</> apply to all elements, not just - the array result (Brendan Jurd) - </para> - - <para> - This allows <literal>NULL</> <type>ARRAY</> entries as long as - they are properly cast. - </para> - </listitem> - - <listitem> - <para> - Make <acronym>SQL</>-syntax <type>ARRAY</> dimensions optional - to match the <acronym>SQL</> standard (Peter) - </para> - </listitem> - - <listitem> - <para> - Add <function>array_ndims()</> to return the number - of dimensions of an array (Robert Haas) - </para> - </listitem> - - <listitem> - <para> - Add <function>array_length()</> to return the length - of an array for the specified dimensions (Jim Nasby, Robert - Haas, Peter Eisentraut) - </para> - - <para> - Also add identically-functioning <acronym>SQL</>-standard - function <function>cardinality()</>. - </para> - </listitem> - - <listitem> - <para> - Add new aggregate function <function>array_agg()</>, which - returns all aggregated values as a single array (Robert Haas, - Jeff Davis, Peter) - </para> - </listitem> - - <listitem> - <para> - Add <function>unnest()</>, which converts an array to - individual row values (Tom) - </para> - - <para> - This is the opposite of <function>array_agg()</>. - </para> - </listitem> - - <listitem> - <para> - Add <function>array_fill()</> to create arrays initialized with - a value (Pavel Stehule) - </para> - </listitem> - - <listitem> - <para> - Add <function>generate_subscripts()</> to generate array - subscripts (Pavel Stehule) - </para> - </listitem> - - <listitem> - <para> - Generate proper error if a <type>SERIAL</> array is specified - (Tom) - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title>Wide-Value Storage (<acronym>TOAST</>)</title> - <itemizedlist> - - <listitem> - <para> - Consider <acronym>TOAST</> compression on values as short as - 32 bytes (previously 256 bytes) (Tom) - </para> - </listitem> - - <listitem> - <para> - Require 25% of space savings before using <acronym>TOAST</> - compression (previously 20%) (Tom) - </para> - </listitem> - - <listitem> - <para> - Be more aggressive in storing <literal>EXTERNAL</> and - <literal>EXTENDED</> column values in <acronym>TOAST</>(Tom) - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title>General Functions</title> - <itemizedlist> - - <listitem> - <para> - Document that <function>setseed()</> allows values from - <literal>-1</> to <literal>1</> (not just <literal>0</> to - <literal>1</>), and enforce the valid range (Kris Jurka) - </para> - </listitem> - - <listitem> - <para> - Add server side function <function>lo_import(filename, oid)</> - (Tatsuo) - </para> - </listitem> - - <listitem> - <para> - Add <function>quote_nullable()</>, which behaves like - <function>quote_literal()</> but returns <literal>NULL</> for - a null argument (Brendan Jurd) - </para> - </listitem> - - <listitem> - <para> - Improve full text search <function>headline()</> generation to - allow several fragments (Sushant Sinha) - </para> - </listitem> - - <listitem> - <para> - Add <function>suppress_redundant_updates_trigger()</> trigger - function to avoid non-data-changing updates (Andrew) - </para> - </listitem> - - <listitem> - <para> - Add <function>div(NUMERIC, NUMERIC)</> for <type>NUMERIC</> - division, without rounding (Tom) - </para> - </listitem> - - <listitem> - <para> - Add <type>TIMESTAMP</> and <type>TIMESTAMPTZ</> versions of - <function>generate_series()</> (Hitoshi Harada) - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title>Object Information Functions</title> - <itemizedlist> - - <listitem> - <para> - Implement <function>current_query()</> for use by functions - that need to know the currently running query (Tomas Doran) - </para> - </listitem> - - <listitem> - <para> - Add <function>pg_get_keywords()</> to return predefined - parser keywords (Dave Page) - </para> - </listitem> - - <listitem> - <para> - Add <function>pg_get_functiondef()</> to see a functions - definition (Abhijit Menon-Sen) - </para> - </listitem> - - <listitem> - <para> - Modify <function>pg_relation_size()</> to handle free space - map (<filename>*.fsm</>) files (Heikki) - </para> - </listitem> - - <listitem> - <para> - Modify <function>pg_relation_size()</> to use <literal>regclass</> - (Heikki) - </para> - - <para> - <function>pg_relation_size(data_type_name)</> no longer works. - </para> - </listitem> - - <listitem> - <para> - Add <literal>boot_val</> and <literal>reset_val</> columns to - <literal>pg_settings</> output (Greg Smith) - </para> - </listitem> - - <listitem> - <para> - Add support for <varname>CURRENT_CATALOG</>, - <varname>CURRENT_SCHEMA</>, <varname>SET CATALOG</>, <varname>SET - SCHEMA</> (Peter) - </para> - - <para> - These are <acronym>SQL</>-standard capabilities. - </para> - </listitem> - - <listitem> - <para> - Add <function>pg_typeof()</> which returns the data type - of any value (Brendan Jurd) - </para> - </listitem> - - <listitem> - <para> - Have <function>version()</> return information about whether - the server is a 32 or 64-bit binary (Bruce) - </para> - </listitem> - - <listitem> - <para> - Fix the behavior of information schema columns - <literal>is_insertable_into</> and <literal>is_updatable</> to - be consistent (Peter) - </para> - </listitem> - - <listitem> - <para> - Convert remaining builtin set-returning functions to use - <literal>OUT</> parameters (Jaime Casanova) - </para> - - <para> - This makes it possible to call these functions without specifying - a column list: <function>pg_show_all_settings()</>, - <function>pg_lock_status()</>, <function>pg_prepared_xact()</>, - <function>pg_prepared_statement()</>, <function>pg_cursor()</> - </para> - </listitem> - - <listitem> - <para> - Have <function>pg_*_is_visible()</> and - <function>has_*_privilege()</> functions return <literal>NULL</> - for invalid oids, rather than generate an error (Tom) - </para> - </listitem> - - <listitem> - <para> - Add <function>has_column_privilege()</> and - <function>has_any_column_privilege()</> functions (Stephen - Frost, Tom) - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title>Function Creation</title> - <itemizedlist> - - <listitem> - <para> - Support variadic functions (functions with a variable number - of arguments) (Pavel Stehule) - </para> - - <para> - Only trailing arguments can be optional, and they all must be - of the same data type. - </para> - </listitem> - - <listitem> - <para> - Allow <literal>DEFAULT</> values for function arguments (Pavel - Stehule) - </para> - </listitem> - - <listitem> - <para> - Add <command>CREATE FUNCTION ... RETURNS TABLE</> clause (Pavel - Stehule) - </para> - </listitem> - - <listitem> - <para> - Allow <acronym>SQL</>-language functions to return the output - of an <command>INSERT</>/<command>UPDATE</>/<command>DELETE</> - <literal>RETURNING</> clause (Tom) - </para> - - <para> - Formerly only <command>SELECT</> was supported. - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title>PL/PgSQL Server-Side Language</title> - <itemizedlist> - - <listitem> - <para> - Support <literal>EXECUTE USING</> (Pavel Stehule) - </para> - </listitem> - - <listitem> - <para> - Allow looping over an open cursor using a <literal>FOR</> - loop (Pavel Stehule) - </para> - </listitem> - - <listitem> - <para> - Support <literal>RETURN QUERY EXECUTE</> (Pavel - Stehule) - </para> - </listitem> - - <listitem> - <para> - Improve the <literal>RAISE</> command: (Pavel Stehule) - </para> - </listitem> - - <listitem> - <para> - <itemizedlist> - <listitem> - <para> - Support <literal>DETAIL</> and <literal>HINT</> fields - </para> - </listitem> - <listitem> - <para> - Support <literal>SQLSTATE</> error codes - </para> - </listitem> - <listitem> - <para> - Support an exception name parameter - </para> - </listitem> - <listitem> - <para> - Allow <literal>RAISE</> without parameters in an exception - block to rethrow the current error - </para> - </listitem> - </itemizedlist> - </para> - </listitem> - - <listitem> - <para> - Allow specification of <varname>SQLSTATE</> numeric codes - in <literal>EXCEPTION</> lists (Pavel Stehule) - </para> - - <para> - This is useful for handling custom <varname>SQLSTATE</> codes. - </para> - </listitem> - - <listitem> - <para> - Support the <literal>CASE</> statement (Pavel Stehule) - </para> - </listitem> - - <listitem> - <para> - Add <literal>FOUND</> and <command>GET DIAGNOSTICS</> support - for the <literal>RETURN QUERY</> statement (Pavel Stehule) - </para> - </listitem> - - <listitem> - <para> - Add message translation support (Alvaro) - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title>General <link linkend="APP-PSQL"><application>psql</></link></title> - <itemizedlist> - - <listitem> - <para> - Remove startup banner; now just suggest <literal>help</> - (Joshua Drake) - </para> - </listitem> - - <listitem> - <para> - Have <literal>help</> show common backslash commands (Greg - Sabino Mullane) - </para> - </listitem> - - <listitem> - <para> - Add <literal>\pset format wrapped</> mode to wrap output to the - screen width, or file/pipe output too if <literal>\pset columns</> - is set (Bryce Nesbitt) - </para> - </listitem> - - <listitem> - <para> - Use the pager for wide output (Bruce) - </para> - </listitem> - - <listitem> - <para> - Require a space between a backslash command and the first - argument (Bernd Helmle) - </para> - </listitem> - - <listitem> - <para> - Display access control rights on multiple lines (Brendan - Jurd, Andreas Scherbaum) - </para> - </listitem> - - <listitem> - <para> - Improve tab completion support for schema qualified and - quoted identifiers (Greg Sabino Mullane) - </para> - </listitem> - - <listitem> - <para> - Allow the normal range of boolean values in <command>\pset</>, - rather than just <literal>on</> and <literal>off</> (Bruce) - </para> - </listitem> - - <listitem> - <para> - Add optional <literal>on</>/<literal>off</> arguments for - <command>\timing</> (David Fetter) - </para> - </listitem> - - <listitem> - <para> - Have <command>\l</> show access privileges (Andrew Gilligan) - </para> - </listitem> - - <listitem> - <para> - Have <command>\l+</> show database sizes, if permissions - allow (Andrew Gilligan) - </para> - </listitem> - - <listitem> - <para> - Add the <command>\ef</> command to edit function definitions - (Abhijit Menon-Sen) - </para> - - <para> - <command>\ef</> without a function name creates an empty - function template for editing. - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title><link linkend="APP-PSQL"><application>psql</></link> \d*</title> - <itemizedlist> - - <listitem> - <para> - Have <command>\d</> show cases where this table is referenced - as a foreign-key constraint (Kenneth D'Souza) - </para> - </listitem> - - <listitem> - <para> - Have <command>\d</> show the value of sequence columns - (Euler Taveira de Oliveira) - </para> - </listitem> - - <listitem> - <para> - Add column storage type and other relation options to the - <command>\d+</> display (Gregory Stark, Euler Taveira de - Oliveira) - </para> - </listitem> - - <listitem> - <para> - Show relation size in <command>\d+</> output (Dickson S. - Guedes) - </para> - </listitem> - - <listitem> - <para> - Have all <command>\d*</> commands show system objects only - if <literal>S</> is specified (Greg Sabino Mullane) - </para> - - <para> - <command>\dt</> already behaved this way. bjm: accuate? - </para> - </listitem> - - <listitem> - <para> - Make <command>\d</> and <command>\dt</> consistent in - their display of system tables (Bruce) - </para> - - <para> - Previously, <literal>\d pg_class</> would show <literal>pg_class</> - while <literal>\dt pg_class</> would not. - </para> - </listitem> - - <listitem> - <para> - Show enumerated values in <command>\dT+</> (David Fetter) - </para> - </listitem> - - <listitem> - <para> - Allow <command>\dC</> to accept wildcard patterns (Tom) - </para> - </listitem> - - <listitem> - <para> - Allow <command>\d*</> commands to work with versions of - <productname>PostgreSQL</> back to 7.4 (Guillaume Lelarge) - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title> - <itemizedlist> - - <listitem> - <para> - Add a <literal>--no-tablespaces</> option to - <application>pg_dump</>/<application>pg_dumpall</>/<application>pg_restore</> - so dumps can be restored to clusters that have non-matching - tablespace layouts (Gavin Roy) - </para> - </listitem> - - <listitem> - <para> - Remove <literal>-i</>/<literal>--ignore-version</> option from - <application>pg_dump</> and <application>pg_dumpall</> (Tom) - </para> - - <para> - Use of this option does not throw an error, but it has no - effect. This option was removed because the version checks - are considered necessary. - </para> - </listitem> - - <listitem> - <para> - Disable <varname>statement_timeout</> during dump and restore - (Joshua Drake) - </para> - </listitem> - - <listitem> - <para> - Add <application>pg_dump</>/<application>pg_dumpall</> option - <literal>--lock-wait-timeout</> (David Gould) - </para> - - <para> - This allows dumps to fail if unable to acquire a shared lock - within the specified amount of time. - </para> - </listitem> - - <listitem> - <para> - Reorder <application>pg_dump</> <literal>--data-only</> output - to dump primary-key tables referenced by foreign keys before - the foreign-key referencing tables (Tom) - </para> - - <para> - This allows data loads when foreign keys are already present. - If circular references make this impossible, a <literal>NOTICE</> - is issued. - </para> - </listitem> - - <listitem> - <para> - Allow <application>pg_dump</>, <application>pg_dumpall</>, and - <application>pg_restore</> to use a specified role (Benedek - L�szl�) - </para> - </listitem> - - <listitem> - <para> - Allow <application>pg_restore</> of a custom format archive to - use multiple concurrent connections to do the restore (Andrew) - </para> - - <para> - The number of concurrent connections is controlled by the option - <literal>--jobs</>. - </para> - </listitem> - - <listitem> - <para> - Add new <application>pg_dump</> <literal>--binary-upgrade</> - option for use by binary upgrade utilities (Bruce) - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title>Other Client Applications</title> - <itemizedlist> - - <listitem> - <para> - Fix <literal>pg_ctl restart</> to preserve command-line arguments - (Bruce) - </para> - </listitem> - - <listitem> - <para> - Add <literal>-w</>/<literal>--no-password</> option that - suppresses password prompts to all utilities that have a - <literal>-W</>/<literal>--password</> option (Peter) - </para> - </listitem> - - <listitem> - <para> - Remove <literal>-q</> (quiet) option for create* and drop* - utility commands (Peter) - </para> - - <para> - These options have had no effect since <productname>PostgreSQL</> - 8.3. - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title>General <link linkend="libpq"><application>libpq</></link></title> - <itemizedlist> - - <listitem> - <para> - Allow the <type>OID</> to be specified when importing large - objects using <function>lo_import_with_oid()</> (Tatsuo) - </para> - </listitem> - - <listitem> - <para> - Add events support (Andrew Chernow, Merlin Moncure) - </para> - - <para> - This adds the ability to register callbacks to handle private - data for connection and result creation and destruction. - </para> - </listitem> - - <listitem> - <para> - Improve error handling to allow the return of multiple - error messages as multi-line error reports (Magnus) - </para> - </listitem> - - <listitem> - <para> - Have <function>PQexecParams()</> return - <varname>PGRES_EMPTY_QUERY</> for an empty query (Tom) - </para> - - <para> - It previously returned <varname>PGRES_COMMAND_OK</>. - </para> - </listitem> - - <listitem> - <para> - Document how to avoid the overhead of <function>WSACleanup()</> - on Windows (Andrew Chernow) - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title><link linkend="libpq"><application>libpq</></link> - <acronym>SSL</> (Secure Sockets Layer)</title> - <itemizedlist> - - <listitem> - <para> - Fix certificate validation for <acronym>SSL</> connections - (Magnus) - </para> - - <para> - <application>libpq</> now verifies both the certificate and - the name of the server by default when making <acronym>SSL</> - connections. If a root certificate is not available to use for - verification, <acronym>SSL</> connections will fail. The - <literal>sslverify</> parameter can be used to disable the host - and certificate verification if required. - </para> - </listitem> - - <listitem> - <para> - Allow the file locations for client certificates to be specified - (Mark Woodward, Alvaro, Magnus) - </para> - </listitem> - - <listitem> - <para> - Add connection parameter <literal>sslverify</> to control - the verification of the server's certificate - (Magnus) - </para> - - <para> - The default is full verification. - </para> - </listitem> - - <listitem> - <para> - Properly unregister <application>OpenSSL</> callbacks when - libpq is done with all connection (Bruce, Magnus, Russell Smith) - </para> - - <para> - This is required for applications that unload the libpq library - so no invalid <application>OpenSSL</> callbacks remain. - </para> - </listitem> - - </itemizedlist> - - </sect3> - - <sect3> - <title><link linkend="ecpg"><application>ecpg</></link></title> - <itemizedlist> - - <listitem> - <para> - Add localization support for messages (Euler Taveira de - Oliveira) - </para> - </listitem> + <sect4> + <title>Object Information Functions</title> + <itemizedlist> + + <listitem> + <para> + Implement <function>current_query()</> for use by functions + that need to know the currently running query (Tomas Doran) + </para> + </listitem> + + <listitem> + <para> + Add <function>pg_get_keywords()</> to return predefined + parser keywords (Dave Page) + </para> + </listitem> + + <listitem> + <para> + Add <function>pg_get_functiondef()</> to see a functions + definition (Abhijit Menon-Sen) + </para> + </listitem> + + <listitem> + <para> + Modify <function>pg_relation_size()</> to handle free space + map (<filename>*.fsm</>) files (Heikki) + </para> + </listitem> + + <listitem> + <para> + Modify <function>pg_relation_size()</> to use <literal>regclass</> + (Heikki) + </para> + + <para> + <function>pg_relation_size(data_type_name)</> no longer works. + </para> + </listitem> + + <listitem> + <para> + Add <literal>boot_val</> and <literal>reset_val</> columns to + <literal>pg_settings</> output (Greg Smith) + </para> + </listitem> + + <listitem> + <para> + Add support for <varname>CURRENT_CATALOG</>, + <varname>CURRENT_SCHEMA</>, <varname>SET CATALOG</>, <varname>SET + SCHEMA</> (Peter) + </para> + + <para> + These are <acronym>SQL</>-standard capabilities. + </para> + </listitem> + + <listitem> + <para> + Add <function>pg_typeof()</> which returns the data type + of any value (Brendan Jurd) + </para> + </listitem> + + <listitem> + <para> + Have <function>version()</> return information about whether + the server is a 32 or 64-bit binary (Bruce) + </para> + </listitem> + + <listitem> + <para> + Fix the behavior of information schema columns + <literal>is_insertable_into</> and <literal>is_updatable</> to + be consistent (Peter) + </para> + </listitem> + + <listitem> + <para> + Convert remaining builtin set-returning functions to use + <literal>OUT</> parameters (Jaime Casanova) + </para> + + <para> + This makes it possible to call these functions without specifying + a column list: <function>pg_show_all_settings()</>, + <function>pg_lock_status()</>, <function>pg_prepared_xact()</>, + <function>pg_prepared_statement()</>, <function>pg_cursor()</> + </para> + </listitem> + + <listitem> + <para> + Have <function>pg_*_is_visible()</> and + <function>has_*_privilege()</> functions return <literal>NULL</> + for invalid oids, rather than generate an error (Tom) + </para> + </listitem> + + <listitem> + <para> + Add <function>has_column_privilege()</> and + <function>has_any_column_privilege()</> functions (Stephen + Frost, Tom) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title>Function Creation</title> + <itemizedlist> + + <listitem> + <para> + Support variadic functions (functions with a variable number + of arguments) (Pavel Stehule) + </para> + + <para> + Only trailing arguments can be optional, and they all must be + of the same data type. + </para> + </listitem> + + <listitem> + <para> + Allow <literal>DEFAULT</> values for function arguments (Pavel + Stehule) + </para> + </listitem> + + <listitem> + <para> + Add <command>CREATE FUNCTION ... RETURNS TABLE</> clause (Pavel + Stehule) + </para> + </listitem> + + <listitem> + <para> + Allow <acronym>SQL</>-language functions to return the output + of an <command>INSERT</>/<command>UPDATE</>/<command>DELETE</> + <literal>RETURNING</> clause (Tom) + </para> + + <para> + Formerly only <command>SELECT</> was supported. + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title>PL/PgSQL Server-Side Language</title> + <itemizedlist> + + <listitem> + <para> + Support <literal>EXECUTE USING</> (Pavel Stehule) + </para> + </listitem> + + <listitem> + <para> + Allow looping over an open cursor using a <literal>FOR</> + loop (Pavel Stehule) + </para> + </listitem> + + <listitem> + <para> + Support <literal>RETURN QUERY EXECUTE</> (Pavel + Stehule) + </para> + </listitem> + + <listitem> + <para> + Improve the <literal>RAISE</> command: (Pavel Stehule) + </para> + </listitem> + + <listitem> + <para> + <itemizedlist> + <listitem> + <para> + Support <literal>DETAIL</> and <literal>HINT</> fields + </para> + </listitem> + <listitem> + <para> + Support <literal>SQLSTATE</> error codes + </para> + </listitem> + <listitem> + <para> + Support an exception name parameter + </para> + </listitem> + <listitem> + <para> + Allow <literal>RAISE</> without parameters in an exception + block to rethrow the current error + </para> + </listitem> + </itemizedlist> + </para> + </listitem> + + <listitem> + <para> + Allow specification of <varname>SQLSTATE</> numeric codes + in <literal>EXCEPTION</> lists (Pavel Stehule) + </para> + + <para> + This is useful for handling custom <varname>SQLSTATE</> codes. + </para> + </listitem> + + <listitem> + <para> + Support the <literal>CASE</> statement (Pavel Stehule) + </para> + </listitem> + + <listitem> + <para> + Add <literal>FOUND</> and <command>GET DIAGNOSTICS</> support + for the <literal>RETURN QUERY</> statement (Pavel Stehule) + </para> + </listitem> + + <listitem> + <para> + Add message translation support (Alvaro) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + </sect3> - <listitem> - <para> - ecpg parser is now automatically generated from the server - parser (Michael) - </para> + <sect3> + <title>Client Applications</title> - <para> - Previously a separate ecpg parser was maintained. - </para> - </listitem> + <sect4> + <title><link linkend="APP-PSQL"><application>psql</></link></title> + <itemizedlist> + + <listitem> + <para> + Remove startup banner; now just suggest <literal>help</> + (Joshua Drake) + </para> + </listitem> + + <listitem> + <para> + Have <literal>help</> show common backslash commands (Greg + Sabino Mullane) + </para> + </listitem> + + <listitem> + <para> + Add <literal>\pset format wrapped</> mode to wrap output to the + screen width, or file/pipe output too if <literal>\pset columns</> + is set (Bryce Nesbitt) + </para> + </listitem> + + <listitem> + <para> + Use the pager for wide output (Bruce) + </para> + </listitem> + + <listitem> + <para> + Require a space between a backslash command and the first + argument (Bernd Helmle) + </para> + </listitem> + + <listitem> + <para> + Display access control rights on multiple lines (Brendan + Jurd, Andreas Scherbaum) + </para> + </listitem> + + <listitem> + <para> + Improve tab completion support for schema qualified and + quoted identifiers (Greg Sabino Mullane) + </para> + </listitem> + + <listitem> + <para> + Allow the normal range of boolean values in <command>\pset</>, + rather than just <literal>on</> and <literal>off</> (Bruce) + </para> + </listitem> + + <listitem> + <para> + Add optional <literal>on</>/<literal>off</> arguments for + <command>\timing</> (David Fetter) + </para> + </listitem> + + <listitem> + <para> + Have <command>\l</> show access privileges (Andrew Gilligan) + </para> + </listitem> + + <listitem> + <para> + Have <command>\l+</> show database sizes, if permissions + allow (Andrew Gilligan) + </para> + </listitem> + + <listitem> + <para> + Add the <command>\ef</> command to edit function definitions + (Abhijit Menon-Sen) + </para> + + <para> + <command>\ef</> without a function name creates an empty + function template for editing. + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title><link linkend="APP-PSQL"><application>psql</></link> \d*</title> + <itemizedlist> + + <listitem> + <para> + Have <command>\d</> show cases where this table is referenced + as a foreign-key constraint (Kenneth D'Souza) + </para> + </listitem> + + <listitem> + <para> + Have <command>\d</> show the value of sequence columns + (Euler Taveira de Oliveira) + </para> + </listitem> + + <listitem> + <para> + Add column storage type and other relation options to the + <command>\d+</> display (Gregory Stark, Euler Taveira de + Oliveira) + </para> + </listitem> + + <listitem> + <para> + Show relation size in <command>\d+</> output (Dickson S. + Guedes) + </para> + </listitem> + + <listitem> + <para> + Have all <command>\d*</> commands show system objects only + if <literal>S</> is specified (Greg Sabino Mullane) + </para> + + <para> + <command>\dt</> already behaved this way. bjm: accuate? + </para> + </listitem> + + <listitem> + <para> + Make <command>\d</> and <command>\dt</> consistent in + their display of system tables (Bruce) + </para> + + <para> + Previously, <literal>\d pg_class</> would show <literal>pg_class</> + while <literal>\dt pg_class</> would not. + </para> + </listitem> + + <listitem> + <para> + Show enumerated values in <command>\dT+</> (David Fetter) + </para> + </listitem> + + <listitem> + <para> + Allow <command>\dC</> to accept wildcard patterns (Tom) + </para> + </listitem> + + <listitem> + <para> + Allow <command>\d*</> commands to work with versions of + <productname>PostgreSQL</> back to 7.4 (Guillaume Lelarge) + </para> + </listitem> + + </itemizedlist> + + </sect4> - </itemizedlist> + <sect4> + <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title> + <itemizedlist> + + <listitem> + <para> + Add a <literal>--no-tablespaces</> option to + <application>pg_dump</>/<application>pg_dumpall</>/<application>pg_restore</> + so dumps can be restored to clusters that have non-matching + tablespace layouts (Gavin Roy) + </para> + </listitem> + + <listitem> + <para> + Remove <literal>-i</>/<literal>--ignore-version</> option from + <application>pg_dump</> and <application>pg_dumpall</> (Tom) + </para> + + <para> + Use of this option does not throw an error, but it has no + effect. This option was removed because the version checks + are considered necessary. + </para> + </listitem> + + <listitem> + <para> + Disable <varname>statement_timeout</> during dump and restore + (Joshua Drake) + </para> + </listitem> + + <listitem> + <para> + Add <application>pg_dump</>/<application>pg_dumpall</> option + <literal>--lock-wait-timeout</> (David Gould) + </para> + + <para> + This allows dumps to fail if unable to acquire a shared lock + within the specified amount of time. + </para> + </listitem> + + <listitem> + <para> + Reorder <application>pg_dump</> <literal>--data-only</> output + to dump primary-key tables referenced by foreign keys before + the foreign-key referencing tables (Tom) + </para> + + <para> + This allows data loads when foreign keys are already present. + If circular references make this impossible, a <literal>NOTICE</> + is issued. + </para> + </listitem> + + <listitem> + <para> + Allow <application>pg_dump</>, <application>pg_dumpall</>, and + <application>pg_restore</> to use a specified role (Benedek + L�szl�) + </para> + </listitem> + + <listitem> + <para> + Allow <application>pg_restore</> of a custom format archive to + use multiple concurrent connections to do the restore (Andrew) + </para> + + <para> + The number of concurrent connections is controlled by the option + <literal>--jobs</>. + </para> + </listitem> + + <listitem> + <para> + Add new <application>pg_dump</> <literal>--binary-upgrade</> + option for use by binary upgrade utilities (Bruce) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title>Other Client Applications</title> + <itemizedlist> + + <listitem> + <para> + Fix <literal>pg_ctl restart</> to preserve command-line arguments + (Bruce) + </para> + </listitem> + + <listitem> + <para> + Add <literal>-w</>/<literal>--no-password</> option that + suppresses password prompts to all utilities that have a + <literal>-W</>/<literal>--password</> option (Peter) + </para> + </listitem> + + <listitem> + <para> + Remove <literal>-q</> (quiet) option for create* and drop* + utility commands (Peter) + </para> + + <para> + These options have had no effect since <productname>PostgreSQL</> + 8.3. + </para> + </listitem> + + </itemizedlist> + + </sect4> </sect3> <sect3> - <title>Server Programming Interface (<acronym>SPI</>)</title> - <itemizedlist> - - <listitem> - <para> - Add support for single-use plans with out-of-line - parameters (Tom) - </para> - </listitem> - - <listitem> - <para> - Add new <varname>SPI_OK_REWRITTEN</> return code to - <function>SPI_execute()</> (Heikki) - </para> + <title>Programming Tools</title> - <para> - This is used when a command is rewritten to another type of - command. - </para> - </listitem> - - </itemizedlist> + <sect4> + <title><link linkend="libpq"><application>libpq</></link></title> + <itemizedlist> + + <listitem> + <para> + Allow the <type>OID</> to be specified when importing large + objects using <function>lo_import_with_oid()</> (Tatsuo) + </para> + </listitem> + + <listitem> + <para> + Add events support (Andrew Chernow, Merlin Moncure) + </para> + + <para> + This adds the ability to register callbacks to handle private + data for connection and result creation and destruction. + </para> + </listitem> + + <listitem> + <para> + Improve error handling to allow the return of multiple + error messages as multi-line error reports (Magnus) + </para> + </listitem> + + <listitem> + <para> + Have <function>PQexecParams()</> return + <varname>PGRES_EMPTY_QUERY</> for an empty query (Tom) + </para> + + <para> + It previously returned <varname>PGRES_COMMAND_OK</>. + </para> + </listitem> + + <listitem> + <para> + Document how to avoid the overhead of <function>WSACleanup()</> + on Windows (Andrew Chernow) + </para> + </listitem> + + </itemizedlist> + + </sect4> + <sect4> + <title><link linkend="libpq"><application>libpq</></link> + <acronym>SSL</> (Secure Sockets Layer)</title> + <itemizedlist> + + <listitem> + <para> + Fix certificate validation for <acronym>SSL</> connections + (Magnus) + </para> + + <para> + <application>libpq</> now verifies both the certificate and + the name of the server by default when making <acronym>SSL</> + connections. If a root certificate is not available to use for + verification, <acronym>SSL</> connections will fail. The + <literal>sslverify</> parameter can be used to disable the host + and certificate verification if required. + </para> + </listitem> + + <listitem> + <para> + Allow the file locations for client certificates to be specified + (Mark Woodward, Alvaro, Magnus) + </para> + </listitem> + + <listitem> + <para> + Add connection parameter <literal>sslverify</> to control + the verification of the server's certificate + (Magnus) + </para> + + <para> + The default is full verification. + </para> + </listitem> + + <listitem> + <para> + Properly unregister <application>OpenSSL</> callbacks when + libpq is done with all connection (Bruce, Magnus, Russell Smith) + </para> + + <para> + This is required for applications that unload the libpq library + so no invalid <application>OpenSSL</> callbacks remain. + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title><link linkend="ecpg"><application>ecpg</></link></title> + <itemizedlist> + + <listitem> + <para> + Add localization support for messages (Euler Taveira de + Oliveira) + </para> + </listitem> + + <listitem> + <para> + ecpg parser is now automatically generated from the server + parser (Michael) + </para> + + <para> + Previously a separate ecpg parser was maintained. + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title>Server Programming Interface (<acronym>SPI</>)</title> + <itemizedlist> + + <listitem> + <para> + Add support for single-use plans with out-of-line + parameters (Tom) + </para> + </listitem> + + <listitem> + <para> + Add new <varname>SPI_OK_REWRITTEN</> return code to + <function>SPI_execute()</> (Heikki) + </para> + + <para> + This is used when a command is rewritten to another type of + command. + </para> + </listitem> + + </itemizedlist> + + </sect4> + </sect3> - + <sect3> <title>Build Options</title> <itemizedlist>