Newer
Older
</itemizedlist>
</sect4>
<sect4>
<title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
<itemizedlist>
<listitem>
<para>
Add PL/Python <acronym>SPI</acronym> cursor support (Jan
Urbanski)
<para>
This allows PL/Python to read partial result sets.
</para>
</listitem>
<listitem>
<para>
Add result metadata functions to PL/Python (Peter Eisentraut)
Specifically, this adds result object functions
<literal>.colnames</literal>, <literal>.coltypes</literal>, and
<literal>.coltypmods</literal>.
</para>
</listitem>
<listitem>
<para>
Remove support for Python 2.2 (Peter Eisentraut)
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title><link linkend="xfunc-sql">SQL</link> Server-Side Language</title>
<itemizedlist>
<listitem>
<para>
Allow <acronym>SQL</acronym>-language functions to reference
parameters by name (Matthew Draper)
To use this, simply name the function arguments and then reference
the argument names in the <acronym>SQL</acronym> function body.
</para>
</listitem>
</itemizedlist>
</sect4>
</sect3>
<sect3>
<title>Client Applications</title>
<itemizedlist>
<listitem>
<para>
Add <link linkend="APP-INITDB"><application>initdb</></link>
options <option>--auth-local</> and <option>--auth-host</>
(Peter Eisentraut)
This allows separate control of <literal>local</> and
<literal>host</> <filename>pg_hba.conf</filename> authentication
settings. <option>--auth</> still controls both.
</para>
</listitem>
<listitem>
<para>
Add <option>--replication</>/<option>--no-replication</> flags to
<link linkend="APP-CREATEUSER"><application>createuser</></link>
to control replication permission (Fujii Masao)
</para>
</listitem>
<listitem>
<para>
Add the <option>--if-exists</> option to <link
linkend="APP-DROPDB"><application>dropdb</></link> and <link
linkend="APP-DROPUSER"><application>dropuser</></link> (Josh
Kupershmidt)
</para>
</listitem>
<listitem>
<para>
Give command-line tools the ability to specify the name of the
database to connect to, and fall back to <literal>template1</>
if a <literal>postgres</> database connection fails (Robert Haas)
</para>
</listitem>
</itemizedlist>
<sect4>
<title><link linkend="APP-PSQL"><application>psql</></link></title>
<itemizedlist>
<listitem>
<para>
Add a display mode to auto-expand output based on the
display width (Peter Eisentraut)
<para>
This adds the <literal>auto</> option to the <command>\x</>
command, which switches to the expanded mode when the normal
output would be wider than the screen.
</para>
</listitem>
<listitem>
<para>
Allow inclusion of a script file that is named relative to the
directory of the file from which it was invoked (Gurjeet Singh)
This is done with a new command <command>\ir</>.
</para>
</listitem>
<listitem>
<para>
Add support for non-<acronym>ASCII</acronym> characters in
<application>psql</> variable names (Tom Lane)
</para>
</listitem>
<listitem>
<para>
Add support for major-version-specific <filename>.psqlrc</> files
(Bruce Momjian)
</para>
<application>psql</> already supported minor-version-specific
<filename>.psqlrc</> files.
</para>
</listitem>
<listitem>
<para>
Provide environment variable overrides for <application>psql</>
history and startup file locations (Andrew Dunstan)
</para>
<envar>PSQL_HISTORY</envar> and <envar>PSQLRC</envar> now
determine these file names if set.
</para>
</listitem>
<listitem>
<para>
Add a <command>\setenv</> command to modify
the environment variables passed to child processes (Andrew Dunstan)
</para>
</listitem>
<listitem>
<para>
Name <application>psql</>'s temporary editor files with a
<filename>.sql</> extension (Peter Eisentraut)
</para>
<para>
This allows extension-sensitive editors to select the right mode.
</para>
<listitem>
<para>
Allow <application>psql</> to use zero-byte field and record
separators (Peter Eisentraut)
Various shell tools use zero-byte (NUL) separators,
e.g. <application>find</>.
</para>
</listitem>
<listitem>
<para>
Make the <command>\timing</> option report times for
failed queries (Magnus Hagander)
</para>
Previously times were reported only for successful queries.
</para>
</listitem>
<listitem>
<para>
Unify and tighten <application>psql</>'s treatment of <command>\copy</>
and SQL <command>COPY</> (Noah Misch)
This fix makes failure behavior more predictable and honors
<command>\set ON_ERROR_ROLLBACK</>.
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title>Informational Commands</title>
<itemizedlist>
<listitem>
<para>
Make <command>\d</> on a sequence show the
table/column name owning it (Magnus Hagander)
</para>
</listitem>
<listitem>
<para>
Show statistics target for columns in <command>\d+</> (Magnus
Hagander)
</para>
</listitem>
<listitem>
<para>
Show role password expiration dates in <command>\du</>
(Fabrízio de Royes Mello)
</para>
</listitem>
<listitem>
<para>
Display comments for casts, conversions, domains, and languages
(Josh Kupershmidt)
These are included in the output of <command>\dC+</>,
<command>\dc+</>, <command>\dD+</>, and <command>\dL</> respectively.
</para>
</listitem>
<listitem>
<para>
Display comments for <acronym>SQL</acronym>/<acronym>MED</acronym>
objects (Josh Kupershmidt)
These are included in the output of <command>\des+</>,
<command>\det+</>, and <command>\dew+</> for foreign servers, foreign
tables, and foreign data wrappers respectively.
</para>
</listitem>
<listitem>
<para>
Change <command>\dd</> to display comments only for object types
without their own backslash command (Josh Kupershmidt)
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title>Tab Completion</title>
<itemizedlist>
<listitem>
<para>
In <application>psql</> tab completion, complete <acronym>SQL</>
keywords in either upper or lower case according to the new <link
linkend="APP-PSQL-variables"><literal>COMP_KEYWORD_CASE</></link>
setting (Peter Eisentraut)
</para>
</listitem>
<listitem>
<para>
Add tab completion support for
<command>EXECUTE</command> (Andreas Karlsson)
</para>
</listitem>
<listitem>
<para>
Allow tab completion of role references in
<command>GRANT</command>/<command>REVOKE</command> (Peter
Eisentraut)
</para>
</listitem>
<listitem>
<para>
Allow tab completion of file names to supply quotes, when necessary
(Noah Misch)
</para>
</listitem>
<listitem>
<para>
Change tab completion support for
<command>TABLE</command> to also include views (Magnus Hagander)
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
<itemizedlist>
<listitem>
<para>
Add an <option>--exclude-table-data</> option to
<application>pg_dump</> (Andrew Dunstan)
</para>
<para>
This allows dumping of a table's definition but not its data,
on a per-table basis.
</para>
</listitem>
<listitem>
<para>
Add a <option>--section</> option to <application>pg_dump</>
and <application>pg_restore</> (Andrew Dunstan)
<para>
Valid values are <literal>pre-data</>, <literal>data</>,
and <literal>post-data</>. The option can be
given more than once to select two or more sections.
</para>
</listitem>
<listitem>
<para>
linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link> dump all
roles first, then all configuration settings on roles (Phil Sorber)
</para>
This allows a role's configuration settings to mention other
roles without generating an error.
</para>
</listitem>
<listitem>
<para>
Allow <application>pg_dumpall</> to avoid errors if the
<literal>postgres</> database is missing in the new cluster
(Robert Haas)
</para>
</listitem>
<listitem>
<para>
Dump foreign server user mappings in user name order (Peter
Eisentraut)
</para>
<para>
This helps produce deterministic dump files.
</para>
</listitem>
<listitem>
<para>
Dump operators in a predictable order (Peter Eisentraut)
</para>
</listitem>
<listitem>
<para>
Tighten rules for when extension configuration tables are dumped
by <application>pg_dump</> (Tom Lane)
</para>
</listitem>
10410
10411
10412
10413
10414
10415
10416
10417
10418
10419
10420
10421
10422
10423
10424
10425
10426
10427
10428
10429
10430
<listitem>
<para>
Make <application>pg_dump</> emit more useful dependency
information (Tom Lane)
</para>
<para>
The dependency links included in archive-format dumps were formerly
of very limited use, because they frequently referenced objects that
appeared nowhere in the dump. Now they represent actual dependencies
(possibly indirect) among the dumped objects.
</para>
</listitem>
<listitem>
<para>
Improve <application>pg_dump</>'s performance when dumping many
database objects (Tom Lane)
</para>
</listitem>
</itemizedlist>
</sect4>
</sect3>
<sect3>
<title><link linkend="libpq"><application>libpq</></link></title>
<itemizedlist>
<listitem>
<para>
Allow <application>libpq</> connection strings to have the format of a
<link linkend="libpq-connstring"><acronym>URI</acronym></link>
(Alexander Shulgin)
The syntax begins with <literal>postgres://</>. This can allow
applications to avoid implementing their own parser for URIs
representing database connections.
</para>
</listitem>
<listitem>
<para>
Add a <link linkend="libpq-connect-sslcompression">connection
option</link> to disable <acronym>SSL</acronym> compression
(Laurenz Albe)
<para>
This can be used to remove the overhead of <acronym>SSL</acronym>
compression on fast networks.
</para>
</listitem>
<listitem>
<para>
Add a <link linkend="libpq-single-row-mode">single-row processing
mode</link> for better handling of large result sets
(Kyotaro Horiguchi, Marko Kreen)
Previously, <application>libpq</> always collected the entire query
result in memory before passing it back to the application.
</para>
</listitem>
<listitem>
<para>
Add <literal>const</> qualifiers to the declarations of the functions
<function>PQconnectdbParams</>, <function>PQconnectStartParams</>,
and <function>PQpingParams</> (Lionel Elie Mamane)
</para>
</listitem>
<listitem>
<para>
Allow the <filename>.pgpass</> file to include escaped characters
in the password field (Robert Haas)
</para>
</listitem>
<listitem>
<para>
Make library functions use <function>abort()</> instead of
<function>exit()</> when it is necessary to terminate the process
(Peter Eisentraut)
This choice does not interfere with the normal exit codes used by the
program, and generates a signal that can be caught by the caller.
</para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Source Code</title>
<itemizedlist>
<listitem>
<para>
Remove dead ports (Peter Eisentraut)
</para>
<para>
The following platforms are no longer supported: dgux,
nextstep, sunos4, svr4, ultrix4, univel, bsdi.
</para>
</listitem>
<listitem>
<para>
Add support for building with <link linkend="install-windows">MS
Visual Studio 2010</link> (Brar Piening)
</para>
</listitem>
<listitem>
<para>
Enable compiling with the MinGW-w64 32-bit compiler (Lars Kanis)
</para>
</listitem>
<listitem>
<para>
Install <filename>plpgsql.h</> into <filename>include/server</> during installation
(Heikki Linnakangas)
</para>
</listitem>
<listitem>
<para>
Improve the latch facility to include detection of postmaster death
(Peter Geoghegan, Heikki Linnakangas, Tom Lane)
</para>
<para>
This eliminates one of the main reasons that background processes
formerly had to wake up to poll for events.
</para>
</listitem>
<listitem>
<para>
Use C flexible array members, where supported (Peter Eisentraut)
</para>
</listitem>
<listitem>
<para>
Improve the concurrent transaction regression tests
(<application>isolationtester</>) (Noah Misch)
</para>
</listitem>
<listitem>
<para>
Modify <application>thread_test</> to create its test files in
the current directory, rather than <filename>/tmp</> (Bruce Momjian)
</para>
</listitem>
<listitem>
<para>
Improve flex and bison warning and error reporting (Tom Lane)
</para>
</listitem>
<listitem>
<para>
Add memory barrier support (Robert Haas)
</para>
This is currently unused.
</para>
</listitem>
<listitem>
<para>
Modify pgindent to use a typedef file (Bruce Momjian)
</para>
</listitem>
<listitem>
<para>
Add a hook for processing messages due to be sent to the server
log (Martin Pihlak)
</para>
</listitem>
<listitem>
<para>
Add object access hooks for <command>DROP</command> commands
(KaiGai Kohei)
</para>
</listitem>
<listitem>
<para>
Centralize <command>DROP</command> handling for some object types
(KaiGai Kohei)
</para>
</listitem>
<listitem>
<para>
Add a <application>pg_upgrade</> test suite (Peter Eisentraut)
</para>
</listitem>
<listitem>
<para>
Sync regular expression code with <acronym>TCL</acronym> 8.5.11
and improve internal processing (Tom Lane)
</para>
</listitem>
<listitem>
<para>
Move <acronym>CRC</acronym> tables to libpgport, and provide them
in a separate include file (Daniel Farina)
</para>
</listitem>
<listitem>
<para>
Add options to <application>git_changelog</> for use in major
release note creation (Bruce Momjian)
</para>
</listitem>
<listitem>
<para>
Support Linux's <filename>/proc/self/oom_score_adj</> API (Tom Lane)
</para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Additional Modules</title>
<itemizedlist>
<listitem>
<para>
Improve efficiency of <link linkend="dblink">dblink</link> by using
libpq's new single-row processing mode (Kyotaro Horiguchi, Marko
Kreen)
This improvement does not apply to
<function>dblink_send_query()</>/<function>dblink_get_result()</>.
</para>
</listitem>
<listitem>
<para>
Support <literal>force_not_null</> option in <link
linkend="file-fdw">file_fdw</link> (Shigeru Hanada)
</para>
</listitem>
<listitem>
<para>
Implement dry-run mode for <link
linkend="pgarchivecleanup"><application>pg_archivecleanup</></link>
(Gabriele Bartolini)
<para>
This only outputs the names of files to be deleted.
</para>
</listitem>
<listitem>
<para>
Add new <link linkend="pgbench">pgbench</link> switches
<option>--unlogged-tables</>, <option>--tablespace</>, and
<option>--index-tablespace</> (Robert Haas)
</para>
</listitem>
<listitem>
<para>
Change <link
linkend="pgtestfsync"><application>pg_test_fsync</></link> to test
for a fixed amount of time, rather than a fixed number of cycles
(Bruce Momjian)
</para>
<para>
The <option>-o</>/cycles option was removed, and
<option>-s</>/seconds added.
</para>
</listitem>
<listitem>
<para>
Add a <link
linkend="pgtesttiming"><application>pg_test_timing</></link>
utility to measure clock monotonicity and timing overhead (Ants
Aasma, Greg Smith)
</para>
</listitem>
<listitem>
<para>
Add a <link linkend="tcn">tcn</link> (triggered change notification)
module to generate <command>NOTIFY</command> events on table changes
(Kevin Grittner)
</para>
</listitem>
</itemizedlist>
<sect4>
<title><link linkend="pgupgrade"><application>pg_upgrade</></link></title>
<itemizedlist>
<listitem>
<para>
Adjust <application>pg_upgrade</> environment variables (Bruce
Momjian)
</para>
<para>
Rename data, bin, and port environment
variables to begin with <literal>PG</>, and support
<envar>PGPORTOLD</envar>/<envar>PGPORTNEW</envar>, to replace
<envar>PGPORT</envar>.
</para>
</listitem>
<listitem>
<para>
Overhaul <application>pg_upgrade</> logging and failure reporting
(Bruce Momjian)
</para>
Create four append-only log files, and delete them on success.
Add <option>-r</>/<option>--retain</> option to unconditionally
retain these files. Also remove <application>pg_upgrade</> options
<option>-g</>/<option>-G</>/<option>-l</> options as unnecessary,
and tighten log file permissions.
</para>
</listitem>
<listitem>
<para>
Make <application>pg_upgrade</> create a script to incrementally
generate more accurate optimizer statistics (Bruce Momjian)
This reduces the time needed to generate minimal cluster statistics
after an upgrade.
</para>
</listitem>
<listitem>
<para>
Allow <application>pg_upgrade</> to upgrade an old cluster that
does not have a <literal>postgres</> database (Bruce Momjian)
</para>
</listitem>
<listitem>
<para>
Allow <application>pg_upgrade</> to handle cases where some
old or new databases are missing, as long as they are empty
(Bruce Momjian)
</para>
Allow <application>pg_upgrade</> to handle configuration-only
directory installations (Bruce Momjian)
</para>
</listitem>
<listitem>
<para>
In <application>pg_upgrade</>, add <option>-o</>/<option>-O</>
options to pass parameters to the servers (Bruce Momjian)
This is useful for configuration-only directory installs.
</para>
</listitem>
<listitem>
<para>
Change <application>pg_upgrade</> to use port 50432 by default
(Bruce Momjian)
This helps avoid unintended client connections during the upgrade.
</para>
</listitem>
<listitem>
<para>
Reduce cluster locking in <application>pg_upgrade</> (Bruce
Momjian)
</para>
<para>
Specifically, only lock the old cluster if link mode is used,
and do it right after the schema is restored.
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title><link linkend="pgstatstatements"><application>pg_stat_statements</></link></title>
<itemizedlist>
<listitem>
<para>
Allow <application>pg_stat_statements</> to aggregate similar
queries via SQL text normalization (Peter Geoghegan, Tom Lane)
</para>
<para>
Users with applications that use non-parameterized SQL will now
be able to monitor query performance without detailed log analysis.
</para>
</listitem>
<listitem>
<para>
Add dirtied and written block counts and read/write times to
<application>pg_stat_statements</> (Robert Haas, Ants Aasma)
</para>
</listitem>
<listitem>
<para>
Prevent <application>pg_stat_statements</> from double-counting
<command>PREPARE</command> and <command>EXECUTE</command> commands
(Tom Lane)
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title><link linkend="sepgsql">sepgsql</link></title>
<itemizedlist>
<listitem>
<para>
Support <literal>SECURITY LABEL</> on global objects (KaiGai
Kohei, Robert Haas)
Specifically, add security labels to databases,
tablespaces, and roles.
</para>
</listitem>
<listitem>
<para>
Allow sepgsql to honor database labels (KaiGai Kohei)
</para>
</listitem>
<listitem>
<para>
Perform sepgsql permission checks during the creation of various
objects (KaiGai Kohei)
</para>
</listitem>
<listitem>
<para>
Add <function>sepgsql_setcon()</> and related functions to control
the sepgsql security domain (KaiGai Kohei)
</para>
</listitem>
<listitem>
<para>
Add a user space access cache to sepgsql to improve performance
(KaiGai Kohei)
</para>
</listitem>
</itemizedlist>
</sect4>
</sect3>
<sect3>
<title>Documentation</title>
<itemizedlist>
<listitem>
<para>
Add a rule to optionally build HTML documentation using the
stylesheet from the website (Magnus Hagander)
Use <command>gmake STYLE=website draft</>.
</para>
</listitem>
<listitem>
<para>
Improve <command>EXPLAIN</command> documentation (Tom Lane)
</para>
</listitem>
<listitem>
<para>
Document that user/database names are preserved with double-quoting
by command-line tools like <application>vacuumdb</> (Bruce
Momjian)
</para>
</listitem>
<listitem>
<para>
Document the actual string returned by the client for MD5
authentication (Cyan Ogilvie)
</para>
</listitem>
<listitem>
<para>
Deprecate use of <literal>GLOBAL</> and <literal>LOCAL</> in
<command>CREATE TEMP TABLE</> (Noah Misch)
</para>
<para>
<productname>PostgreSQL</> has long treated these keyword as no-ops,
and continues to do so; but in future they might mean what the SQL
standard says they mean, so applications should avoid using them.
</para>
</listitem>
</itemizedlist>
</sect3>
</sect2>
</sect1>