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:
Typical markup:
...
@@ -142,7 +142,7 @@ do it for earlier branch release files.
...
@@ -142,7 +142,7 @@ do it for earlier branch release files.
</itemizedlist>
</itemizedlist>
</sect3>
</sect3>
<sect3>
<sect3>
<title>Server Settings</title>
<title>Server Settings</title>
...
@@ -231,10 +231,10 @@ do it for earlier branch release files.
...
@@ -231,10 +231,10 @@ do it for earlier branch release files.
</itemizedlist>
</itemizedlist>
</sect3>
</sect3>
<sect3>
<sect3>
<title>Queries</title>
<title>Queries</title>
<itemizedlist>
<itemizedlist>
...
@@ -293,11 +293,11 @@ do it for earlier branch release files.
...
@@ -293,11 +293,11 @@ do it for earlier branch release files.
</itemizedlist>
</itemizedlist>
</sect3>
</sect3>
<sect3>
<sect3>
<title>General
Functions and Operators</title>
<title>
Functions and Operators</title>
<itemizedlist>
<itemizedlist>
...
@@ -350,72 +350,72 @@ do it for earlier branch release files.
...
@@ -350,72 +350,72 @@ do it for earlier branch release files.
</itemizedlist>
</itemizedlist>
</sect3>
<sect4>
<sect3>
<title>Temporal Functions and Operators</title>
<title>Temporal Functions and Operators</title>
<itemizedlist>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
Have <function>to_char()</>'s localized month/day names depend
Have <function>to_char()</>'s localized month/day names depend
on <varname>LC_TIME</>, not <varname>LC_MESSAGES</> (Euler
on <varname>LC_TIME</>, not <varname>LC_MESSAGES</> (Euler
Taveira de Oliveira)
Taveira de Oliveira)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Cause <function>to_date()</> and <function>to_timestamp()</>
Cause <function>to_date()</> and <function>to_timestamp()</>
to more consistently report errors on invalid input (Brendan
to more consistently report errors on invalid input (Brendan
Jurd)
Jurd)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Provide consistent rounding for fractional seconds (Ron Mayer)
Provide consistent rounding for fractional seconds (Ron Mayer)
bjm: combine with another item?
bjm: combine with another item?
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Fix <function>to_timestamp()</> to not require upper/lower case
Fix <function>to_timestamp()</> to not require upper/lower case
matching for meridian (<literal>AM</>/<literal>PM</>) and era
matching for meridian (<literal>AM</>/<literal>PM</>) and era
(<literal>BC</>/<literal>AD</>) format designations (Brendan
(<literal>BC</>/<literal>AD</>) format designations (Brendan
Jurd)
Jurd)
</para>
</para>
<para>
<para>
For example, input value <literal>ad</> now matches the format
For example, input value <literal>ad</> now matches the format
string <literal>AD</>.
string <literal>AD</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Require the existence of periods in <function>to_timestamp()</>
Require the existence of periods in <function>to_timestamp()</>
meridian (<literal>AM</>/<literal>PM</>) and era
meridian (<literal>AM</>/<literal>PM</>) and era
(<literal>BC</>/<literal>AD</>) format designations to match
(<literal>BC</>/<literal>AD</>) format designations to match
(Brendan Jurd)
(Brendan Jurd)
</para>
</para>
<para>
<para>
For example, input value <literal>AD</> now does not match
For example, input value <literal>AD</> now does not match
format string <literal>A.D.</>.
format string <literal>A.D.</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
<varname>DateStyle</> no longer controls <type>INTERVAL</>
<varname>DateStyle</> no longer controls <type>INTERVAL</>
output (use new variable <varname>IntervalStyle</>)
output (use new variable <varname>IntervalStyle</>)
</para>
</para>
</listitem>
</listitem>
</itemizedlist>
</itemizedlist>
</sect4>
</sect3>
</sect3>
...
@@ -565,58 +565,216 @@ do it for earlier branch release files.
...
@@ -565,58 +565,216 @@ do it for earlier branch release files.
</sect3>
</sect3>
<sect3>
<sect3>
<title>Server Settings</title>
<title>Server</title>
<itemizedlist>
<listitem>
<sect4>
<para>
<title>Settings</title>
Convert many <filename>postgresql.conf</> settings to enumerated
values so <literal>pg_settings</> can easily display valid
<itemizedlist>
values (Magnus)
</para>
<listitem>
</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>
<listitem>
<para>
<para>
Add <varname>cursor_tuple_fraction</> parameter to control the
Have <function>pg_stop_backup()</> wait for modified <acronym>WAL</>
fraction of a cursor's rows expected to be requested by the
files to be archived (Simon)
user (Robert Hell)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
Allow underscores in <filename>postgresql.conf</> custom variabl
e
This guarantees that the backup is valid at the tim
e
classes (Tom)
<function>pg_stop_backup()</> completes.
</para>
</para>
</listitem>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Authentication</title>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
Report appropriate error message for combination of <literal>MD5</>
Prevent normal shutdown if a continuous archiving base backup
authentication and <varname>db_user_namespace</> enabled (Bruc
e)
is in progress (Laurenz Alb
e)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Support regular expressions in <filename>pg_ident.conf</>
Cancel a continuous archiving base backup if a fast shutdown
(Magnus
)
is requested (Laurenz Albe
)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow <productname>Kerberos</>/<acronym>GSSAPI</> parameters
Allow <filename>recovery.conf</> boolean variables to take the
to be changed without restarting the postmaster (Magnus)
same range of string values as <filename>postgresql.conf</>
(Bruce)
</para>
</para>
</listitem>
</listitem>
...
@@ -624,240 +782,88 @@ do it for earlier branch release files.
...
@@ -624,240 +782,88 @@ do it for earlier branch release files.
</sect3>
</sect3>
<sect3
id="release-8-4-pg-hba-conf"
>
<sect3>
<title>
<filename>pg_hba.conf</>
</title>
<title>
Monitoring
</title>
<itemizedlist>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
Parse <filename>pg_hba.conf</> in the postmaster so errors are
Add <function>pg_conf_load_time()</> to report when
reported on reload (Magnus)
the Postgres configuration files were last loaded (George
</para>
Gensure)
<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>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Remove the <literal>sameuser</> option, making it the default
Add <function>pg_terminate_backend()</> to safely terminate a
if no usermap is specified (Magnus
)
backend (the <literal>SIGTERM</> signal works also) (Tom, Bruce
)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Change all authentication options to be <literal>name=value</>
Add ability to track user-defined functions call counts and
settings (Magnus)
runtimes via parameter <varname>track_functions</> (Martin
</para>
Pihlak)
</listitem>
<listitem>
<para>
Allow usermap parameter for all external authentication methods
(Magnus)
</para>
</para>
<para>
<para>
Previously this was only supported for <literal>ident</>
Function statistics appear in a new system table,
authentication.
<literal>pg_stat_user_functions</>. However, inlined
<acronym>SQL</> functions are not tracked.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow <literal>ident</> authentication over Unix-domain sockets
Allow specification of the maximum <literal>pg_stat_activity</>
on <productname>Solaris</> (Garick Hamlin)
query string size via <varname>track_activity_query_size</>
parameter (Thomas Lee)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>clientcert</> option to control requesting of a
Improve syslog performance by increasing the maximum line length
client certificate (Magnus)
(Tom)
</para>
<para>
Previously this was controlled by the presence of a root
certificate file in the server's data directory.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>cert</> authentication method to allow user
Add read-only <filename>postgresql.conf</> variables <varname>segment_size</>,
authentication via <acronym>SSL</> certificates (Magnus)
<varname>wal_block_size</>, and <varname>wal_segment_size</> (Bernd Helmle)
</para>
<para>
Previously <acronym>SSL</> certificates could only verify that
the client had access to a certificate, not authenticate a
user.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow <literal>krb5</>, <literal>gssapi</> and <literal>sspi</>
When reporting a deadlock, report all session queries involved
realm and <literal>krb5</> host settings to be specified in
in the deadlock to the server log (Itagaki Takahiro)
<filename>pg_hba.conf</> (Magnus)
</para>
</para>
</listitem>
<listitem>
<para>
<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>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>krb5</>, <literal>gssapi</>, and <literal>sspi</>
Move the server statistics file into the subdirectory
<varname>include_realm</> parameter (Magnus)
<filename>pg_stat_tmp</> and allow its location to be specified
via <varname>stats_temp_directory</> (Magnus)
</para>
</para>
<para>
<para>
This allows identical usernames from different realms to be
This allows the statistics file to be placed in a
authenticated as different database users using usermaps.
<acronym>RAM</>-resident directory to reduce I/O requirements.
</para>
On startup/shutdown, the file is copied to the top-level
</listitem>
<literal>$PGDATA</> directory so it is preserved between
restarts.
<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.
</para>
</para>
</listitem>
</listitem>
...
@@ -974,1507 +980,1521 @@ do it for earlier branch release files.
...
@@ -974,1507 +980,1521 @@ do it for earlier branch release files.
</itemizedlist>
</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>
<sect3>
<sect3>
<title>
<command>TRUNCATE</>
</title>
<title>
Object Manipulation
</title>
<itemizedlist>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
Support statement-level <literal>ON TRUNCATE</> triggers (Simon)
Add support for column-level privileges (Stephen Frost, KaiGai
</para>
Kohei)
</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>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow <command>TRUNCATE tab1, tab1</> to succeed (Bruce)
Improve reporting of dependencies during <command>DROP</>
commands (Alex Hunsaker)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<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>
</para>
</listitem>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title><command>EXPLAIN</></title>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
Have <command>EXPLAIN VERBOSE</> show the output columns of a
Add <literal>WITH [NO] DATA</> clause to <command>CREATE TABLE
query (Tom)
AS</>, per the <acronym>SQL</> standard (Tom, Peter)
</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>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Have <command>EXPLAIN</> honor <varname>debug_print_plan</> (Tom
)
Add support for user-defined I/O conversion casts (Heikki
)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<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>
</para>
</listitem>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title><literal>LIMIT</>/<literal>OFFSET</></title>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
Allow <literal>LIMIT</> and <literal>OFFSET</> to use subselects
Add <literal>LIKE</> clause to <command>CREATE TYPE</> (Tom)
as arguments (Tom)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
Document that <literal>LIMIT NULL</> and <literal>OFFSET NULL</>
This simplifies creation of data types like existing types.
have no effect (Tom)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <acronym>SQL</>-standards syntax for
Allow <command>CREATE OR REPLACE VIEW</> to add columns to the
<literal>LIMIT</>/<literal>OFFSET</> capabilities (Peter)
<emphasis>end</> of a view (Robert Haas)
</para>
<para>
<literal>OFFSET num {ROW|ROWS} FETCH {FIRST|NEXT} [num] {ROW|ROWS}
ONLY</>.
</para>
</para>
</listitem>
</listitem>
</itemizedlist>
</itemizedlist>
</sect3>
<sect4>
<title><command>ALTER</></title>
<sect3>
<itemizedlist>
<title>Object Manipulation</title>
<itemizedlist>
<listitem>
<para>
<listitem>
Add <command>ALTER TYPE RENAME</> (Petr Jelinek)
<para>
</para>
Add support for column-level privileges (Stephen Frost, KaiGai
</listitem>
Kohei)
</para>
<listitem>
</listitem>
<para>
Add <command>ALTER SEQUENCE ... RESTART</> (no parameter) to
<listitem>
reset a sequence to its initial value (Zoltan Boszormenyi)
<para>
bjm: compatibility problem?
Improve reporting of dependencies during <command>DROP</>
</para>
commands (Alex Hunsaker)
</listitem>
</para>
</listitem>
<listitem>
<para>
<listitem>
Modify the <command>ALTER TABLE</> syntax to allow all reasonable
<para>
combinations for tables, indexes, sequences, and views (Tom)
Refactor multi-object <command>DROP</> operations so conflicting
</para>
dependencies do not generate an error (Alex Hunsaker)
</listitem>
</para>
</listitem>
<listitem>
<para>
<listitem>
New syntax supported (these formerly required <command>ALTER
<para>
TABLE</>)
Add <literal>WITH [NO] DATA</> clause to <command>CREATE TABLE
</para>
AS</>, per the <acronym>SQL</> standard (Tom, Peter)
</para>
<para>
</listitem>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
<command>ALTER SEQUENCE OWNER TO</>
Add support for user-defined I/O conversion casts (Heikki)
</para>
</para>
</listitem>
</listitem>
<listitem>
<para>
<listitem>
<command>ALTER VIEW ALTER COLUMN SET/DROP DEFAULT</>
<para>
</para>
Allow <command>CREATE AGGREGATE</> to use an <type>internal</>
</listitem>
transition datatype (for super-users only) (Tom)
<listitem>
</para>
<para>
</listitem>
<command>ALTER VIEW OWNER TO</>
</para>
<listitem>
</listitem>
<para>
<listitem>
Add <literal>LIKE</> clause to <command>CREATE TYPE</> (Tom)
<para>
</para>
<command>ALTER VIEW SET SCHEMA</>
</para>
<para>
</listitem>
This simplifies creation of data types like existing types.
</itemizedlist>
</para>
</para>
</listitem>
</listitem>
<listitem>
<para>
<listitem>
Allow <command>CREATE OR REPLACE VIEW</> to add columns to the
<para>
<emphasis>end</> of a view (Robert Haas)
Add support for the syntax <command>ALTER TABLE ... ALTER COLUMN
</para>
... SET DATA TYPE</> (Peter)
</listitem>
</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>
<sect3>
<sect3>
<title>
<command>ALTER</>
</title>
<title>
Data Types
</title>
<itemizedlist>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
Add <command>ALTER TYPE RENAME</> (Petr Jelinek)
Add a <literal>CaseSensitive</> option for text search synonym
</para>
dictionaries (Simon)
</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>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Have <command>ALTER TABLE SET WITHOUT OIDS</> rewrite the table
Improve the precision of <type>NUMERIC</> division (Tom)
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>
</para>
</listitem>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Database Manipulation</title>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
Improve reporting of
Add <type>int2</> with <type>int8</> basic arithmetic operators
<command>CREATE</>/<command>DROP</>/<command>RENAME DATABASE</>
failure when uncommitted prepared transactions are the cause
(Tom)
(Tom)
</para>
</para>
</listitem>
<listitem>
<para>
Make <varname>LC_COLLATE</> and <varname>LC_CTYPE</> database-level
settings (Radek Strnad, Heikki)
</para>
<para>
<para>
This makes collation similar to encoding, which was always
This simplifies casting requirements.
configurable per database.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Improve checks that the database encoding, collation
Allow <type>UUID</> input to accept optional hyphens after
(<varname>LC_COLLATE</>), and character classes
every four digits (Robert Haas)
(<varname>LC_CTYPE</>) match (Heikki)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
A
dd <command>ALTER DATABASE SET TABLESPACE</> to move a databas
e
A
ccept <literal>on</>/<literal>off</> as boolean data typ
e
to a new tablespace (Guillaume Lelarge, Bernd Helmle
)
values (Itagaki Takahiro
)
</para>
</para>
</listitem>
</listitem>
</itemizedlist>
</itemizedlist>
</sect3>
<sect4>
<title>Temporal Data Types</title>
<sect3>
<itemizedlist>
<title>General Indexes</title>
<itemizedlist>
<listitem>
<para>
<listitem>
Reject year <literal>0 BC</> and years <literal>000</> and
<para>
<literal>0000</> (Tom)
Dramatically improve the speed of building and accessing hash
</para>
indexes (Tom Raney, Shreya Bhargava, Kenneth Marshall)
</para>
<para>
Previously these were interpreted as <literal>1 BC</>; years
<para>
<literal>0</> and <literal>00</> are assumed to be the year
This allows hash indexes to be sometimes faster than btree
2000.
indexes. However, hash indexes are still not crash-safe.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Include <acronym>SGT</> (Singapore time) as a valid time zone
Have hash indexes store only the hashed value, not the full
abbreviation (Tom)
indexed columns (Xiao Meng)
</para>
</para>
</listitem>
<para>
<listitem>
This greatly reduces the size of hash indexes for long indexed
<para>
values, and improves performance.
Support the <acronym>IS0 8601</> <type>interval</> syntax (Tom,
</para>
Kevin Grittner)
</listitem>
</para>
<listitem>
<para>
<para>
For example, <literal>INTERVAL 'P1Y2M3DT4H5M6.7S'</> is now
Special xxx_pattern_ops <literal>LIKE</> indexes can now be
supported.
used for simple equality comparisons (Tom)
</para>
</para>
</listitem>
</listitem>
<listitem>
</itemizedlist>
<para>
Allow <type>INTERVAL</> precision to be specified after the
</sect3>
last field, for <acronym>SQL</>-standards compliance (Tom)
</para>
<sect3>
<title>Full Text Indexes</title>
<para>
<itemizedlist>
Formerly the precision had to be specified after the keyword
<type>INTERVAL</> (this syntax is still supported). Data type
<listitem>
definitions will now be output using the new format.
<para>
</para>
Remove the requirement to use <literal>@@@</> when doing
</listitem>
<acronym>GIN</> weighted lookups on full text indexes (Tom)
</para>
<listitem>
<para>
<para>
Support <literal>infinite</> dates (Tom)
The normal <literal>@@</> text search operator can be used
</para>
instead.
</listitem>
</para>
</listitem>
<listitem>
<para>
<listitem>
Add <varname>IntervalStyle</> parameter
<para>
which controls how <type>INTERVAL</> values are output (Ron Mayer)
Add an optimizer selectivity function for <literal>@@</> text
</para>
search operations (Jan Urbanski)
</para>
<para>
</listitem>
Valid value are: <literal>postgres</>, <literal>postgres_verbose</>,
<literal>sql_standard</>, <literal>iso_8601</>. This also
<listitem>
controls the handling of negative <type>INTERVAL</> input when only
<para>
some fields have positive/negative designations.
Add partial match support for <acronym>GIN</> indexes (Teodor
</para>
Sigaev, Oleg Bartunov)
</listitem>
</para>
</listitem>
<listitem>
<para>
<listitem>
Make <type>INTERVAL</> seconds rounding more consistent across
<para>
output formats (Ron Mayer)
Allow prefix matching in full text searches (Teodor Sigaev,
</para>
Oleg Bartunov)
</listitem>
</para>
</listitem>
</itemizedlist>
<listitem>
</sect4>
<para>
Support multi-column <acronym>GIN</> indexes (Teodor Sigaev)
<sect4>
</para>
<title>Arrays</title>
</listitem>
<itemizedlist>
</itemizedlist>
<listitem>
<para>
</sect3>
Have cast on <type>ARRAY</> apply to all elements, not just
the array result (Brendan Jurd)
<sect3>
</para>
<title><command>VACUUM</></title>
<itemizedlist>
<para>
This allows <literal>NULL</> <type>ARRAY</> entries as long as
<listitem>
they are properly cast.
<para>
</para>
Allow relation forks to track free space (Heikki)
</listitem>
</para>
<listitem>
<para>
<para>
This allows the recording of all free space discovered by vacuum
Make <acronym>SQL</>-syntax <type>ARRAY</> dimensions optional
in <filename>*.fsm</> files, rather than having to limit
to match the <acronym>SQL</> standard (Peter)
recording to a fixed-sized shared memory area;
</para>
<varname>max_fsm_pages</> and <varname>max_fsm_relations</>
</listitem>
settings have been removed.
</para>
<listitem>
</listitem>
<para>
Add <function>array_ndims()</> to return the number
<listitem>
of dimensions of an array (Robert Haas)
<para>
</para>
New visibility map file to track pages that do not require
</listitem>
vacuum (Heikki)
</para>
<listitem>
<para>
<para>
Add <function>array_length()</> to return the length
This allows <command>VACUUM</> to avoid sequentially scanning
of an array for the specified dimensions (Jim Nasby, Robert
a table when only a portion of the table needs vacuuming.
Haas, Peter Eisentraut)
</para>
</para>
</listitem>
<para>
<listitem>
Also add identically-functioning <acronym>SQL</>-standard
<para>
function <function>cardinality()</>.
Track explicit transaction snapshots (Alvaro)
</para>
</para>
</listitem>
<para>
<listitem>
This improves space reuse by vacuum in the presence of long-running
<para>
transactions.
Add new aggregate function <function>array_agg()</>, which
</para>
returns all aggregated values as a single array (Robert Haas,
</listitem>
Jeff Davis, Peter)
</para>
<listitem>
</listitem>
<para>
Add <varname>vacuum_freeze_table_age</> parameter to control
<listitem>
when <command>VACUUM</> should ignore the visibility map and
<para>
do a full table scan to set frozen xids (Heikki)
Add <function>unnest()</>, which converts an array to
</para>
individual row values (Tom)
</listitem>
</para>
<listitem>
<para>
<para>
This is the opposite of <function>array_agg()</>.
Add ability to specify autovacuum and <acronym>TOAST</> parameters
</para>
in <command>CREATE TABLE</> (Alvaro, Euler Taveira de Oliveira)
</listitem>
</para>
<listitem>
<para>
<para>
Autovacuum options used to be stored in a system table.
Add <function>array_fill()</> to create arrays initialized with
</para>
a value (Pavel Stehule)
</listitem>
</para>
</listitem>
<listitem>
<para>
<listitem>
Add <literal>--freeze</> option to <application>vacuumdb</>
<para>
(Bruce)
Add <function>generate_subscripts()</> to generate array
</para>
subscripts (Pavel Stehule)
</listitem>
</para>
</listitem>
</itemizedlist>
<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>
<sect3>
<sect3>
<title>
Other Utility Opera
tions</title>
<title>
Func
tions</title>
<itemizedlist>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
Add verbose option to the <command>CLUSTER</> command and
Document that <function>setseed()</> allows values from
<application>clusterdb</> (Jim Cox)
<literal>-1</> to <literal>1</> (not just <literal>0</> to
<literal>1</>), and enforce the valid range (Kris Jurka)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Decrease memory requirements for recording pending trigger
Add server side function <function>lo_import(filename, oid)</>
events (Tom
)
(Tatsuo
)
</para>
</para>
</listitem>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>General Data Types</title>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
Add a <literal>CaseSensitive</> option for text search synonym
Add <function>quote_nullable()</>, which behaves like
dictionaries (Simon)
<function>quote_literal()</> but returns <literal>NULL</> for
a null argument (Brendan Jurd)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Improve the precision of <type>NUMERIC</> division (Tom)
Improve full text search <function>headline()</> generation to
allow several fragments (Sushant Sinha)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <type>int2</> with <type>int8</> basic arithmetic operators
Add <function>suppress_redundant_updates_trigger()</> trigger
(Tom)
function to avoid non-data-changing updates (Andrew)
</para>
<para>
This simplifies casting requirements.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
A
llow <type>UUID</> input to accept optional hyphens after
A
dd <function>div(NUMERIC, NUMERIC)</> for <type>NUMERIC</>
every four digits (Robert Haas
)
division, without rounding (Tom
)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
A
ccept <literal>on</>/<literal>off</> as boolean data type
A
dd <type>TIMESTAMP</> and <type>TIMESTAMPTZ</> versions of
values (Itagaki Takahiro
)
<function>generate_series()</> (Hitoshi Harada
)
</para>
</para>
</listitem>
</listitem>
</itemizedlist>
</itemizedlist>
</sect3>
<sect4>
<title>Object Information Functions</title>
<sect3>
<itemizedlist>
<title>Temporal Data Types</title>
<itemizedlist>
<listitem>
<para>
<listitem>
Implement <function>current_query()</> for use by functions
<para>
that need to know the currently running query (Tomas Doran)
Reject year <literal>0 BC</> and years <literal>000</> and
</para>
<literal>0000</> (Tom)
</listitem>
</para>
<listitem>
<para>
<para>
Previously these were interpreted as <literal>1 BC</>; years
Add <function>pg_get_keywords()</> to return predefined
<literal>0</> and <literal>00</> are assumed to be the year
parser keywords (Dave Page)
2000.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <function>pg_get_functiondef()</> to see a functions
Include <acronym>SGT</> (Singapore time) as a valid time zone
definition (Abhijit Menon-Sen)
abbreviation (Tom)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Modify <function>pg_relation_size()</> to handle free space
Support the <acronym>IS0 8601</> <type>interval</> syntax (Tom,
map (<filename>*.fsm</>) files (Heikki)
Kevin Grittner)
</para>
</para>
</listitem>
<para>
<listitem>
For example, <literal>INTERVAL 'P1Y2M3DT4H5M6.7S'</> is now
<para>
supported.
Modify <function>pg_relation_size()</> to use <literal>regclass</>
</para>
(Heikki)
</listitem>
</para>
<listitem>
<para>
<para>
<function>pg_relation_size(data_type_name)</> no longer works.
Allow <type>INTERVAL</> precision to be specified after the
</para>
last field, for <acronym>SQL</>-standards compliance (Tom)
</listitem>
</para>
<listitem>
<para>
<para>
Formerly the precision had to be specified after the keyword
Add <literal>boot_val</> and <literal>reset_val</> columns to
<type>INTERVAL</> (this syntax is still supported). Data type
<literal>pg_settings</> output (Greg Smith)
definitions will now be output using the new format.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add support for <varname>CURRENT_CATALOG</>,
Support <literal>infinite</> dates (Tom)
<varname>CURRENT_SCHEMA</>, <varname>SET CATALOG</>, <varname>SET
</para>
SCHEMA</> (Peter)
</listitem>
</para>
<listitem>
<para>
<para>
These are <acronym>SQL</>-standard capabilities.
Add <varname>IntervalStyle</> parameter
</para>
which controls how <type>INTERVAL</> values are output (Ron Mayer)
</listitem>
</para>
<listitem>
<para>
<para>
Valid value are: <literal>postgres</>, <literal>postgres_verbose</>,
Add <function>pg_typeof()</> which returns the data type
<literal>sql_standard</>, <literal>iso_8601</>. This also
of any value (Brendan Jurd)
controls the handling of negative <type>INTERVAL</> input when only
</para>
some fields have positive/negative designations.
</listitem>
</para>
</listitem>
<listitem>
<para>
<listitem>
Have <function>version()</> return information about whether
<para>
the server is a 32 or 64-bit binary (Bruce)
Make <type>INTERVAL</> seconds rounding more consistent across
</para>
output formats (Ron Mayer)
</listitem>
</para>
</listitem>
<listitem>
<para>
Fix the behavior of information schema columns
</itemizedlist>
<literal>is_insertable_into</> and <literal>is_updatable</> to
be consistent (Peter)
</sect3>
</para>
</listitem>
<sect3>
<title>Arrays</title>
<listitem>
<itemizedlist>
<para>
Convert remaining builtin set-returning functions to use
<listitem>
<literal>OUT</> parameters (Jaime Casanova)
<para>
</para>
Have cast on <type>ARRAY</> apply to all elements, not just
the array result (Brendan Jurd)
<para>
</para>
This makes it possible to call these functions without specifying
a column list: <function>pg_show_all_settings()</>,
<para>
<function>pg_lock_status()</>, <function>pg_prepared_xact()</>,
This allows <literal>NULL</> <type>ARRAY</> entries as long as
<function>pg_prepared_statement()</>, <function>pg_cursor()</>
they are properly cast.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Have <function>pg_*_is_visible()</> and
Make <acronym>SQL</>-syntax <type>ARRAY</> dimensions optional
<function>has_*_privilege()</> functions return <literal>NULL</>
to match the <acronym>SQL</> standard (Peter)
for invalid oids, rather than generate an error (Tom)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <function>array_ndims()</> to return the number
Add <function>has_column_privilege()</> and
of dimensions of an array (Robert Haas)
<function>has_any_column_privilege()</> functions (Stephen
</para>
Frost, Tom)
</listitem>
</para>
</listitem>
<listitem>
<para>
</itemizedlist>
Add <function>array_length()</> to return the length
of an array for the specified dimensions (Jim Nasby, Robert
</sect4>
Haas, Peter Eisentraut)
</para>
<sect4>
<title>Function Creation</title>
<para>
<itemizedlist>
Also add identically-functioning <acronym>SQL</>-standard
function <function>cardinality()</>.
<listitem>
</para>
<para>
</listitem>
Support variadic functions (functions with a variable number
of arguments) (Pavel Stehule)
<listitem>
</para>
<para>
Add new aggregate function <function>array_agg()</>, which
<para>
returns all aggregated values as a single array (Robert Haas,
Only trailing arguments can be optional, and they all must be
Jeff Davis, Peter)
of the same data type.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <function>unnest()</>, which converts an array to
Allow <literal>DEFAULT</> values for function arguments (Pavel
individual row values (Tom)
Stehule)
</para>
</para>
</listitem>
<para>
This is the opposite of <function>array_agg()</>.
<listitem>
</para>
<para>
</listitem>
Add <command>CREATE FUNCTION ... RETURNS TABLE</> clause (Pavel
Stehule)
<listitem>
</para>
<para>
</listitem>
Add <function>array_fill()</> to create arrays initialized with
a value (Pavel Stehule)
<listitem>
</para>
<para>
</listitem>
Allow <acronym>SQL</>-language functions to return the output
of an <command>INSERT</>/<command>UPDATE</>/<command>DELETE</>
<listitem>
<literal>RETURNING</> clause (Tom)
<para>
</para>
Add <function>generate_subscripts()</> to generate array
subscripts (Pavel Stehule)
<para>
</para>
Formerly only <command>SELECT</> was supported.
</listitem>
</para>
</listitem>
<listitem>
<para>
</itemizedlist>
Generate proper error if a <type>SERIAL</> array is specified
(Tom)
</sect4>
</para>
</listitem>
<sect4>
<title>PL/PgSQL Server-Side Language</title>
</itemizedlist>
<itemizedlist>
</sect3>
<listitem>
<para>
<sect3>
Support <literal>EXECUTE USING</> (Pavel Stehule)
<title>Wide-Value Storage (<acronym>TOAST</>)</title>
</para>
<itemizedlist>
</listitem>
<listitem>
<listitem>
<para>
<para>
Consider <acronym>TOAST</> compression on values as short as
Allow looping over an open cursor using a <literal>FOR</>
32 bytes (previously 256 bytes) (Tom)
loop (Pavel Stehule)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Require 25% of space savings before using <acronym>TOAST</>
Support <literal>RETURN QUERY EXECUTE</> (Pavel
compression (previously 20%) (Tom)
Stehule)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Be more aggressive in storing <literal>EXTERNAL</> and
Improve the <literal>RAISE</> command: (Pavel Stehule)
<literal>EXTENDED</> column values in <acronym>TOAST</>(Tom)
</para>
</para>
</listitem>
</listitem>
<listitem>
</itemizedlist>
<para>
<itemizedlist>
</sect3>
<listitem>
<para>
<sect3>
Support <literal>DETAIL</> and <literal>HINT</> fields
<title>General Functions</title>
</para>
<itemizedlist>
</listitem>
<listitem>
<listitem>
<para>
<para>
Support <literal>SQLSTATE</> error codes
Document that <function>setseed()</> allows values from
</para>
<literal>-1</> to <literal>1</> (not just <literal>0</> to
</listitem>
<literal>1</>), and enforce the valid range (Kris Jurka)
<listitem>
</para>
<para>
</listitem>
Support an exception name parameter
</para>
<listitem>
</listitem>
<para>
<listitem>
Add server side function <function>lo_import(filename, oid)</>
<para>
(Tatsuo)
Allow <literal>RAISE</> without parameters in an exception
</para>
block to rethrow the current error
</listitem>
</para>
</listitem>
<listitem>
</itemizedlist>
<para>
</para>
Add <function>quote_nullable()</>, which behaves like
</listitem>
<function>quote_literal()</> but returns <literal>NULL</> for
a null argument (Brendan Jurd)
<listitem>
</para>
<para>
</listitem>
Allow specification of <varname>SQLSTATE</> numeric codes
in <literal>EXCEPTION</> lists (Pavel Stehule)
<listitem>
</para>
<para>
Improve full text search <function>headline()</> generation to
<para>
allow several fragments (Sushant Sinha)
This is useful for handling custom <varname>SQLSTATE</> codes.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <function>suppress_redundant_updates_trigger()</> trigger
Support the <literal>CASE</> statement (Pavel Stehule)
function to avoid non-data-changing updates (Andrew)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>FOUND</> and <command>GET DIAGNOSTICS</> support
Add <function>div(NUMERIC, NUMERIC)</> for <type>NUMERIC</>
for the <literal>RETURN QUERY</> statement (Pavel Stehule)
division, without rounding (Tom)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add message translation support (Alvaro)
Add <type>TIMESTAMP</> and <type>TIMESTAMPTZ</> versions of
</para>
<function>generate_series()</> (Hitoshi Harada)
</listitem>
</para>
</listitem>
</itemizedlist>
</itemizedlist>
</sect4>
</sect3>
</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>
<listitem>
<sect3>
<para>
<title>Client Applications</title>
ecpg parser is now automatically generated from the server
parser (Michael)
</para>
<para>
<sect4>
Previously a separate ecpg parser was maintained.
<title><link linkend="APP-PSQL"><application>psql</></link></title>
</para>
<itemizedlist>
</listitem>
<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>
<sect3>
<sect3>
<title>Server Programming Interface (<acronym>SPI</>)</title>
<title>Programming Tools</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>
<sect4>
This is used when a command is rewritten to another type of
<title><link linkend="libpq"><application>libpq</></link></title>
command.
<itemizedlist>
</para>
</listitem>
<listitem>
<para>
</itemizedlist>
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>
<sect3>
<sect3>
<title>Build Options</title>
<title>Build Options</title>
<itemizedlist>
<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