Newer
Older
<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 <varname>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 <application>psql</> 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 <application>psql</> files relative to the
directory of the input file from which it was invoked (Gurjeet
<para>
The <application>psql</> command is <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>
<para>
Specifically, <envar>PSQL_HISTORY</envar> and
<envar>PSQLRC</envar>.
</para>
</listitem>
<listitem>
<para>
Add a <application>psql</> <command>\setenv</> command to modify
the environment variables used by child processes (Andrew Dunstan)
<para>
This is useful in <filename>.psqlrc</> files.
</para>
</listitem>
<listitem>
<para>
Have <application>psql</> temporary editor files use a
<filename>.sql</> extension (Peter Eisentraut)
</para>
</listitem>
<listitem>
<para>
Allows <application>psql</> to use zero-byte field and record
separators (Peter Eisentraut)
<para>
Various shell tools use zero/null-byte separators, e.g. find.
</para>
</listitem>
<listitem>
<para>
Have <application>psql</> <command>\timing</> report times for
failed queries (Magnus Hagander)
</para>
<para>
Previously only successful query times were reported.
</para>
</listitem>
<listitem>
<para>
Unify and tighten <application>psql</> treatment of <command>\copy</>
and plain <command>COPY</> (Noah Misch)
This 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 <application>psql</> <command>\d</> on a sequence show the
table/column name owning it (Magnus Hagander)
</para>
</listitem>
<listitem>
<para>
Show statistics target for columns in <application>psql</>
<command>\d+</> (Magnus Hagander)
</para>
</listitem>
<listitem>
<para>
Show role password expiration dates in <application>psql</>
<command>\du</> (Fabrízio de Royes Mello)
</para>
</listitem>
</itemizedlist>
<sect5>
<title>Comments</title>
<itemizedlist>
<listitem>
<para>
Allow <application>psql</> to display comments for languages and
casts (Josh Kupershmidt)
</para>
<para>
These are output via <command>\dL</> and <command>\dC</>.
</para>
</listitem>
<listitem>
<para>
Allow <application>psql</> to display comments for conversions
and domains (Josh Kupershmidt)
</para>
<para>
This is accomplished with the addition of <literal>+</> to
<command>\dc</> and <command>\dD</> commands.
</para>
</listitem>
<listitem>
<para>
Allow <application>psql</> to display the comments on
<acronym>SQL</acronym>/<acronym>MED</acronym> objects in verbose
mode (Josh Kupershmidt)
</para>
</listitem>
<listitem>
<para>
Change <application>psql</>'s <command>\dd</> command to display
only objects without their own backslash command (Josh Kupershmidt)
</para>
</listitem>
</itemizedlist>
</sect5>
</sect4>
<sect4>
<title>Tab Completion</title>
<itemizedlist>
<listitem>
<para>
In <application>psql</> tab completion,
complete <acronym>SQL</acronym> keywords based on
<varname>COMP_KEYWORD_CASE</> setting and the perhaps case of
the partially-supplied word (Peter Eisentraut)
</para>
</listitem>
<listitem>
<para>
Add <application>psql</> 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 <application>psql</> tab completion support for
<command>TABLE</command> to also display 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. <option>--schema-only</>
is equivalent to <literal>--section=pre-data
--section=post-data</>. <option>--data-only</> is equivalent to
<literal>--section=data</>.
</para>
</listitem>
<listitem>
<para>
Have <link
linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link> dump all
roles first, then all configuration settings on roles (Phil Sorber)
</para>
<para>
This allows a role's configuration settings to rely on 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>
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
<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>
Add <acronym>URI</acronym>s support to libpq connection functions
(Alexander Shulgin)
</para>
<para>
The syntax begins with <literal>postgres://</>.
</para>
</listitem>
<listitem>
<para>
Add a libpq <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> to libpq for better handling of large result sets
(Kyotaro Horiguchi, Marko Kreen)
Previously, libpq always collected the entire query result in memory
before passing it back to the application.
</para>
</listitem>
<listitem>
<para>
Enhance <literal>const</> qualifiers in the libpq functions
PQconnectdbParams, PQconnectStartParams, and PQpingParams (Lionel
Elie Mamane)
</para>
</listitem>
<listitem>
<para>
Allow libpq's <filename>.pgpass</> file to process escaped characters
in the password field (Robert Haas)
</para>
</listitem>
<listitem>
<para>
Have library functions use <function>abort()</> instead of
<function>exit()</> to terminate the executable (Peter Eisentraut)
</para>
<para>
This 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>
<listitem>
<para>
Fix a libpq memory leak by freeing client encoding connection
parameters (Peter Eisentraut)
</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 considered 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
(isolationtester) (Noah Misch)
</para>
</listitem>
<listitem>
<para>
Modify <application>thread_test</> to create its test files in
the current directory, rather than /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>
Add <link linkend="tcn">tcn</link> (triggered change notification)
to generate <command>NOTIFY</command> events on table changes
(Kevin Grittner)
</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>
Have <link linkend="vacuumlo">vacuumlo</link> remove large objects
in batches, to reduce locking (Tim Lewis, Tom Lane)
</para>
<para>
The new <option>-l</> option allows changing the number of large
objects removed per transaction.
</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>
</itemizedlist>
<sect4>
<title><link linkend="pgupgrade"><application>pg_upgrade</></link></title>
<itemizedlist>
<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>
</listitem>
<listitem>
<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)
</para>
<para>
This is useful for configuration-only directory installs.
</para>
</listitem>
<listitem>
<para>
Change <application>pg_upgrade</> to use port 50432 by default
(Bruce Momjian)
</para>
<para>
This helps avoid unintended client connections during the upgrade.
</para>
</listitem>
<listitem>
<para>
Overhaul <application>pg_upgrade</> logging and failure reporting
(Bruce Momjian)
</para>
<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>
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>. INCOMPATIBILITY?
</para>
</listitem>
<listitem>
<para>
Have <application>pg_upgrade</> create a script to incrementally
generate more accurate optimizer statistics (Bruce Momjian)
</para>
<para>
This reduces the time needed to generate minimal cluster statistics
after an 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 normalisation (Peter Geoghegan, Tom Lane)
</para>
<para>
Users with applications that use non-parameterized SQL will now
be able to monitor query performance without using log file
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)
<para>
Specifically, add <literal>SECURITY LABEL</>s 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 userspace 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 docs with the stylesheet from the
website (Magnus Hagander)
</para>
<para>
Use <command>make 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>
Improve the foreign data wrapper <acronym>API</acronym> and
documentation (Hanada Shigeru)
</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>