Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
5f6f72b0
Commit
5f6f72b0
authored
Mar 30, 2009
by
Bruce Momjian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
More release note changes, including a lower level of subsections.
parent
3eedb9a1
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
1672 additions
and
1652 deletions
+1672
-1652
doc/src/sgml/release.sgml
doc/src/sgml/release.sgml
+1672
-1652
No files found.
doc/src/sgml/release.sgml
View file @
5f6f72b0
<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.61
8 2009/03/30 20:32:49
momjian Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.61
9 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 variabl
e
classes (Tom)
This guarantees that the backup is valid at the tim
e
<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 (Bruc
e)
Prevent normal shutdown if a continuous archiving base backup
is in progress (Laurenz Alb
e)
</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>
A
dd <command>ALTER DATABASE SET TABLESPACE</> to move a databas
e
to a new tablespace (Guillaume Lelarge, Bernd Helmle
)
A
ccept <literal>on</>/<literal>off</> as boolean data typ
e
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 Opera
tions</title>
<title>
Func
tions</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>
A
llow <type>UUID</> input to accept optional hyphens after
every four digits (Robert Haas
)
A
dd <function>div(NUMERIC, NUMERIC)</> for <type>NUMERIC</>
division, without rounding (Tom
)
</para>
</listitem>
<listitem>
<para>
A
ccept <literal>on</>/<literal>off</> as boolean data type
values (Itagaki Takahiro
)
A
dd <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
Lszl)
</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
Lszl)
</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>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment