2013-04-20 22:32:32 +02:00
|
|
|
<!-- doc/src/sgml/release-9.3.sgml -->
|
|
|
|
<!-- See header comment in release.sgml about typical markup -->
|
|
|
|
|
|
|
|
<sect1 id="release-9-3">
|
|
|
|
<title>Release 9.3</title>
|
|
|
|
|
|
|
|
<note>
|
|
|
|
<title>Release Date</title>
|
2013-09-01 05:53:24 +02:00
|
|
|
<simpara>2013-09-09</simpara>
|
2013-04-20 22:32:32 +02:00
|
|
|
</note>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Overview</title>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Major enhancements in <productname>PostgreSQL</> 9.3 include:
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
2013-08-17 00:01:05 +02:00
|
|
|
<!-- This list duplicates items below, but without authors or details-->
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
|
|
|
|
views</link>
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Make simple views <link
|
|
|
|
linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Add many features for the <type>JSON</> data type,
|
|
|
|
including <link linkend="functions-json">operators and functions</link>
|
|
|
|
to extract elements from <type>JSON</> values
|
2013-08-17 00:01:05 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Implement <acronym>SQL</>-standard <link
|
|
|
|
linkend="queries-lateral"><literal>LATERAL</></link> option for
|
|
|
|
<literal>FROM</>-clause subqueries and function calls
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
|
|
|
|
wrappers</link> to support writes (inserts/updates/deletes) on foreign
|
|
|
|
tables
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
|
|
|
|
data wrapper</link> to allow access to
|
|
|
|
other <productname>Postgres</> servers
|
2013-08-17 00:01:05 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add support for <link linkend="event-triggers">event triggers</link>
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add optional ability to <link
|
|
|
|
linkend="app-initdb-data-checksums">checksum</link> data pages and
|
|
|
|
report corruption
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Prevent non-key-field row updates from blocking foreign key checks
|
2013-08-17 00:01:05 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Greatly reduce System V <link linkend="sysvipc">shared
|
2013-08-17 00:01:05 +02:00
|
|
|
memory</link> requirements
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
2013-05-06 22:02:37 +02:00
|
|
|
|
2013-04-20 22:32:32 +02:00
|
|
|
<para>
|
|
|
|
The above items are explained in more detail in the sections below.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
|
|
|
|
<title>Migration to Version 9.3</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
A dump/restore using <link
|
|
|
|
linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, or use
|
|
|
|
of <link linkend="pgupgrade"><application>pg_upgrade</></link>, is
|
|
|
|
required for those wishing to migrate data from any previous release.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Version 9.3 contains a number of changes that may affect compatibility
|
|
|
|
with previous releases. Observe the following incompatibilities:
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<sect3>
|
2013-05-04 03:11:35 +02:00
|
|
|
<title>Server Settings</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Rename <varname>replication_timeout</> to <link
|
|
|
|
linkend="guc-wal-sender-timeout"><varname>wal_sender_timeout</></link>
|
|
|
|
(Amit Kapila)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This setting controls the <link
|
|
|
|
linkend="wal"><acronym>WAL</></link> sender timeout.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 16:44:49 +02:00
|
|
|
Require superuser privileges to set <link
|
2013-05-04 03:11:35 +02:00
|
|
|
linkend="guc-commit-delay"><varname>commit_delay</></link>
|
2013-05-04 16:44:49 +02:00
|
|
|
because it can now potentially delay other sessions (Simon Riggs)
|
2013-05-04 03:11:35 +02:00
|
|
|
</para>
|
2013-05-04 16:44:49 +02:00
|
|
|
</listitem>
|
2013-05-04 03:11:35 +02:00
|
|
|
|
2013-05-04 16:44:49 +02:00
|
|
|
<listitem>
|
2013-05-04 03:11:35 +02:00
|
|
|
<para>
|
2013-05-04 16:44:49 +02:00
|
|
|
Allow in-memory sorts to use their full memory allocation (Jeff Janes)
|
2013-05-04 03:11:35 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-04 16:44:49 +02:00
|
|
|
Users who have set <link
|
|
|
|
linkend="guc-work-mem"><varname>work_mem</></link> based on the
|
2013-09-01 05:53:24 +02:00
|
|
|
previous behavior may need to revisit that setting.
|
2013-05-04 03:11:35 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Other</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Throw an error if a tuple to be updated or deleted has already been
|
|
|
|
updated or deleted by a <literal>BEFORE</> trigger (Kevin Grittner)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Formerly, the originally-intended update was silently skipped,
|
|
|
|
resulting in logical inconsistency since the trigger might have
|
|
|
|
propagated data to other places based on the intended update.
|
|
|
|
Now an error is thrown to prevent the inconsistent results from being
|
|
|
|
committed. If this change affects your application, the best solution
|
|
|
|
is usually to move the data-propagation actions to
|
|
|
|
an <literal>AFTER</> trigger.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This error will also be thrown if a query invokes a volatile function
|
|
|
|
that modifies rows that are later modified by the query itself.
|
|
|
|
Such cases likewise previously resulted in silently skipping updates.
|
2013-05-04 03:11:35 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Change multicolumn <link linkend="SQL-CREATETABLE"><literal>ON UPDATE
|
2013-05-04 03:11:35 +02:00
|
|
|
SET NULL/SET DEFAULT</></link> foreign key actions to affect
|
2013-09-01 05:53:24 +02:00
|
|
|
all columns of the constraint, not just those changed in the
|
2013-05-04 03:11:35 +02:00
|
|
|
<command>UPDATE</> (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Previously, we would set only those referencing columns that
|
|
|
|
correspond to referenced columns that were changed by
|
|
|
|
the <command>UPDATE</>. This was what was required by SQL-92,
|
|
|
|
but more recent editions of the SQL standard specify the new behavior.
|
2013-05-04 03:11:35 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Force cached plans to be replanned if the <link
|
|
|
|
linkend="guc-search-path"><varname>search_path</></link> changes
|
|
|
|
(Tom Lane)
|
2013-05-04 03:11:35 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Previously, cached plans already generated in the current session were
|
|
|
|
not redone if the query was re-executed with a
|
|
|
|
new <varname>search_path</> setting, resulting in surprising behavior.
|
2013-05-04 03:11:35 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Fix <link
|
|
|
|
linkend="functions-formatting-table"><function>to_number()</></link>
|
|
|
|
to properly handle a period used as a thousands separator (Tom Lane)
|
2013-05-04 03:11:35 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Previously, a period was considered to be a decimal point even when
|
|
|
|
the locale says it isn't and the <literal>D</> format code is used to
|
|
|
|
specify use of the locale-specific decimal point. This resulted in
|
|
|
|
wrong answers if <literal>FM</> format was also used.
|
2013-05-04 03:11:35 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-08-16 22:54:18 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Fix <literal>STRICT</> non-set-returning functions that have
|
|
|
|
set-returning functions in their arguments to properly return null
|
|
|
|
rows (Tom Lane)
|
2013-08-16 22:54:18 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
A null value passed to the strict function should result in a null
|
|
|
|
output, but instead, that output row was suppressed entirely.
|
2013-08-16 22:54:18 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Store <link linkend="wal"><acronym>WAL</></link> in a continuous
|
|
|
|
stream, rather than skipping the last 16MB segment every 4GB
|
|
|
|
(Heikki Linnakangas)
|
2013-08-16 22:54:18 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Previously, <acronym>WAL</> files with names ending in <literal>FF</>
|
|
|
|
were not used because of this skipping. If you have <acronym>WAL</>
|
|
|
|
backup or restore scripts that took this behavior into account, they
|
|
|
|
will need to be adjusted.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
In <link
|
|
|
|
linkend="catalog-pg-constraint"><structname>pg_constraint.confmatchtype</></link>,
|
|
|
|
store the default foreign key match type (non-<literal>FULL</>,
|
|
|
|
non-<literal>PARTIAL</>) as <literal>s</> for <quote>simple</>
|
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously this case was represented by <literal>u</>
|
|
|
|
for <quote>unspecified</>.
|
2013-08-16 22:54:18 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-05-04 03:11:35 +02:00
|
|
|
</itemizedlist>
|
|
|
|
|
2013-04-20 22:32:32 +02:00
|
|
|
</sect3>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Changes</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Below you will find a detailed account of the changes between
|
|
|
|
<productname>PostgreSQL</productname> 9.3 and the previous major
|
|
|
|
release.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Server</title>
|
|
|
|
|
|
|
|
<sect4>
|
2013-04-20 22:50:56 +02:00
|
|
|
<title>Locking</title>
|
2013-04-20 22:32:32 +02:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Prevent non-key-field row updates from blocking foreign key checks
|
2013-04-22 22:05:06 +02:00
|
|
|
(Álvaro Herrera, Noah Misch, Andres Freund, Alexander
|
2013-09-01 05:53:24 +02:00
|
|
|
Shulgin, Marti Raudsepp, Alexander Shulgin)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
This change improves concurrency and reduces the probability of
|
|
|
|
deadlocks when updating tables involved in a foreign-key constraint.
|
|
|
|
<command>UPDATE</>s that do not change any columns referenced in a
|
|
|
|
foreign key now take the new <literal>NO KEY UPDATE</> lock mode on
|
|
|
|
the row, while foreign key checks use the new <literal>KEY SHARE</>
|
|
|
|
lock mode, which does not conflict with <literal>NO KEY UPDATE</>.
|
|
|
|
So there is no blocking unless a foreign-key column is changed.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-24 05:21:09 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Add configuration variable <link
|
2013-09-01 05:53:24 +02:00
|
|
|
linkend="guc-lock-timeout"><varname>lock_timeout</></link> to
|
|
|
|
allow limiting how long a session will wait to acquire any one lock
|
|
|
|
(Zoltán Böszörményi)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 22:50:56 +02:00
|
|
|
</itemizedlist>
|
2013-04-20 22:32:32 +02:00
|
|
|
|
2013-04-20 22:50:56 +02:00
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Indexes</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
2013-04-20 22:32:32 +02:00
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Add <link linkend="rangetypes-indexing"><acronym>SP-GiST</></link>
|
2013-05-04 01:40:23 +02:00
|
|
|
support for range data types (Alexander Korotkov)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Allow <link linkend="GiST"><acronym>GiST</></link> indexes to be
|
|
|
|
unlogged (Jeevan Chalke)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Improve performance of <acronym>GiST</> index insertion by randomizing
|
|
|
|
the choice of which page to descend to when there are multiple equally
|
|
|
|
good alternatives (Heikki Linnakangas)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Improve concurrency of hash index operations (Robert Haas)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Optimizer</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Collect and use histograms of upper and lower bounds, as well as range
|
|
|
|
lengths, for <link linkend="rangetypes">range types</link>
|
|
|
|
(Alexander Korotkov)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Improve optimizer's cost estimation for index access (Tom Lane)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Improve optimizer's hash table size estimate for
|
|
|
|
doing <literal>DISTINCT</> via hash aggregation (Tom Lane)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Suppress no-op Result and Limit plan nodes
|
|
|
|
(Kyotaro Horiguchi, Amit Kapila, Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Reduce optimizer overhead by not keeping plans on the basis of cheap
|
|
|
|
startup cost when the optimizer only cares about total cost overall
|
|
|
|
(Tom Lane)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
2013-04-20 22:50:56 +02:00
|
|
|
<title>General Performance</title>
|
2013-04-20 22:32:32 +02:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Add <link linkend="SQL-COPY"><command>COPY FREEZE</></link>
|
2013-09-01 05:53:24 +02:00
|
|
|
option to avoid the overhead of marking tuples as frozen later
|
2013-05-04 01:40:23 +02:00
|
|
|
(Simon Riggs, Jeff Davis)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Improve performance of <link
|
|
|
|
linkend="datatype-numeric"><type>NUMERIC</></link> calculations
|
|
|
|
(Kyotaro Horiguchi)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Improve synchronization of sessions waiting for <link
|
2013-05-04 16:44:49 +02:00
|
|
|
linkend="guc-commit-delay"><varname>commit_delay</></link>
|
|
|
|
(Peter Geoghegan)
|
2013-04-20 22:50:56 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
This greatly improves the usefulness of <varname>commit_delay</>.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Improve performance of the <link
|
|
|
|
linkend="SQL-CREATETABLE"><command>CREATE TEMPORARY TABLE ... ON
|
|
|
|
COMMIT DELETE ROWS</></link> option by not truncating such temporary
|
|
|
|
tables in transactions that haven't touched any temporary tables
|
|
|
|
(Heikki Linnakangas)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 22:50:56 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Make vacuum recheck visibility after it has removed expired tuples
|
|
|
|
(Pavan Deolasee)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This increases the chance of a page being marked as all-visible.
|
2013-04-20 22:50:56 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
2013-04-20 22:32:32 +02:00
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Add per-resource-owner lock caches (Jeff Janes)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
This speeds up lock bookkeeping at statement completion in
|
|
|
|
multi-statement transactions that hold many locks; it is particularly
|
|
|
|
useful for <application>pg_dump</>.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Avoid scanning the entire relation cache at commit of a transaction
|
|
|
|
that creates a new relation (Jeff Janes)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This speeds up sessions that create many tables in successive
|
|
|
|
small transactions, such as a <application>pg_restore</> run.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
2013-09-01 05:53:24 +02:00
|
|
|
</listitem>
|
2013-04-20 22:32:32 +02:00
|
|
|
|
2013-09-01 05:53:24 +02:00
|
|
|
<listitem>
|
2013-04-20 22:32:32 +02:00
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Improve performance of transactions that drop many relations
|
|
|
|
(Tomas Vondra)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
2013-04-20 22:50:56 +02:00
|
|
|
<title>Monitoring</title>
|
2013-04-20 22:32:32 +02:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Add optional ability to <link
|
|
|
|
linkend="app-initdb-data-checksums">checksum</link> data pages and
|
|
|
|
report corruption (Simon Riggs, Jeff Davis, Greg Smith, Ants Aasma)
|
2013-04-20 22:50:56 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
The checksum option can be set during <link
|
|
|
|
linkend="APP-INITDB">initdb</link>.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Split the <link linkend="monitoring-stats">statistics collector's</link>
|
|
|
|
data file into separate global and per-database files (Tomas Vondra)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This reduces the I/O required for statistics tracking.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Fix the statistics collector to operate properly in cases where the
|
|
|
|
system clock goes backwards (Tom Lane)
|
2013-04-20 22:50:56 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Previously, statistics collection would stop until the time again
|
|
|
|
reached the latest time previously recorded.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Emit an informative message to postmaster standard error when we
|
|
|
|
are about to stop logging there
|
|
|
|
(Tom Lane)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
This should help reduce user confusion about where to look for log
|
|
|
|
output in common configurations that log to standard error only during
|
|
|
|
postmaster startup.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
2013-04-20 22:50:56 +02:00
|
|
|
<title>Authentication</title>
|
2013-04-20 22:32:32 +02:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
2013-09-01 05:53:24 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
When an authentication failure occurs, log the relevant
|
|
|
|
<link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
|
|
|
|
line, to ease debugging of unintended failures
|
|
|
|
(Magnus Hagander)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 22:32:32 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Improve <link linkend="auth-ldap"><acronym>LDAP</></link> error
|
|
|
|
reporting and documentation (Peter Eisentraut)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Add support for specifying <acronym>LDAP</> authentication parameters
|
|
|
|
in <acronym>URL</> format, per RFC 4516 (Peter Eisentraut)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Change the <link
|
|
|
|
linkend="guc-ssl-ciphers"><varname>ssl_ciphers</></link> parameter
|
|
|
|
to start with <literal>DEFAULT</>, rather than <literal>ALL</>,
|
|
|
|
then remove insecure ciphers (Magnus Hagander)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
This should yield a more appropriate SSL cipher set.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Parse and load <link
|
|
|
|
linkend="auth-username-maps"><filename>pg_ident.conf</></link>
|
|
|
|
once, not during each connection (Amit Kapila)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
This is similar to how <filename>pg_hba.conf</> is processed.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Server Settings</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Greatly reduce System V <link linkend="sysvipc">shared
|
2013-05-04 16:44:49 +02:00
|
|
|
memory</link> requirements (Robert Haas)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
On Unix-like systems, <function>mmap()</> is now used for most
|
|
|
|
of <productname>PostgreSQL</>'s shared memory. For most users, this
|
|
|
|
will eliminate any need to adjust kernel parameters for shared memory.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-04-20 22:50:56 +02:00
|
|
|
Allow the postmaster to listen on multiple Unix-domain sockets
|
2013-04-22 23:17:00 +02:00
|
|
|
(Honza Horák)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
The configuration parameter
|
|
|
|
<varname>unix_socket_directory</> is replaced by <link
|
2013-05-04 01:40:23 +02:00
|
|
|
linkend="guc-unix-socket-directories"><varname>unix_socket_directories</></link>,
|
|
|
|
which accepts a list of directories.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 22:50:56 +02:00
|
|
|
<listitem>
|
2013-04-20 22:32:32 +02:00
|
|
|
<para>
|
2013-04-20 22:50:56 +02:00
|
|
|
Allow a directory of configuration files to be processed (Magnus
|
|
|
|
Hagander, Greg Smith, Selena Deckelmann)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
Such a directory is specified with <link
|
|
|
|
linkend="config-includes"><varname>include_dir</></link> in the server
|
2013-05-03 20:48:12 +02:00
|
|
|
configuration file.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Increase the maximum <link
|
|
|
|
linkend="APP-INITDB">initdb</link>-configured value for <link
|
|
|
|
linkend="guc-shared-buffers"><varname>shared_buffers</></link>
|
|
|
|
to 128MB (Robert Haas)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
This is the maximum value that initdb will attempt to set in <link
|
2013-05-04 01:40:23 +02:00
|
|
|
linkend="config-setting-configuration-file"><filename>postgresql.conf</></link>;
|
2013-05-06 22:02:37 +02:00
|
|
|
the previous maximum was 32MB.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Remove the <link linkend="guc-external-pid-file">external
|
2013-09-01 05:53:24 +02:00
|
|
|
<acronym>PID</> file</link>, if any, on postmaster exit
|
|
|
|
(Peter Eisentraut)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
2013-04-20 22:50:56 +02:00
|
|
|
</listitem>
|
2013-04-20 22:32:32 +02:00
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Replication and Recovery</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
2013-04-20 22:50:56 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 17:52:18 +02:00
|
|
|
Allow a streaming replication standby to <link
|
2013-05-04 01:40:23 +02:00
|
|
|
linkend="protocol-replication">follow a timeline switch</link>
|
2013-05-03 20:48:12 +02:00
|
|
|
(Heikki Linnakangas)
|
2013-04-20 22:50:56 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
This allows streaming standby servers to receive WAL data from a slave
|
|
|
|
newly promoted to master status. Previously, other standbys would
|
|
|
|
require a resync to begin following the new master.
|
2013-04-20 22:50:56 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 22:32:32 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Add <acronym>SQL</> functions <link
|
|
|
|
linkend="functions-admin-backup"><function>pg_is_in_backup()</></link>
|
2013-05-04 02:55:03 +02:00
|
|
|
and <link
|
|
|
|
linkend="functions-admin-backup"><function>pg_backup_start_time()</></link>
|
|
|
|
(Gilles Darold)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
These functions report the status of base backups.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Improve performance of streaming log shipping with <link
|
|
|
|
linkend="guc-synchronous-commit"><varname>synchronous_commit</></link>
|
|
|
|
disabled (Andres Freund)
|
2013-04-22 03:05:31 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-04-22 16:22:43 +02:00
|
|
|
Allow much faster promotion of a streaming standby to primary (Simon
|
|
|
|
Riggs, Kyotaro Horiguchi)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Add the last checkpoint's redo location to <link
|
|
|
|
linkend="APP-PGCONTROLDATA"><application>pg_controldata</></link>'s
|
|
|
|
output (Fujii Masao)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
This information is useful for determining which <acronym>WAL</>
|
|
|
|
files are needed for restore.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 17:52:18 +02:00
|
|
|
Allow tools like <link
|
2013-05-04 01:40:23 +02:00
|
|
|
linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
|
|
|
|
to run on computers with different architectures (Heikki
|
|
|
|
Linnakangas)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
2013-05-06 22:02:37 +02:00
|
|
|
|
|
|
|
<para>
|
|
|
|
WAL files can still only be replayed on servers with the same
|
|
|
|
architecture as the primary; but they can now be transmitted to and
|
|
|
|
stored on machines of any architecture, since the
|
|
|
|
streaming replication protocol is now machine-independent.
|
|
|
|
</para>
|
2013-04-20 22:32:32 +02:00
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Make <link
|
2013-05-04 01:40:23 +02:00
|
|
|
linkend="app-pgbasebackup"><application>pg_basebackup</></link>
|
|
|
|
<option>--write-recovery-conf</> output a
|
2013-09-01 05:53:24 +02:00
|
|
|
minimal <filename>recovery.conf</> file (Zoltán
|
2013-05-03 20:48:12 +02:00
|
|
|
Böszörményi, Magnus Hagander)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This simplifies setting up a standby server.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Allow <link
|
|
|
|
linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
|
|
|
|
and <link
|
|
|
|
linkend="app-pgbasebackup"><application>pg_basebackup</></link>
|
|
|
|
<option>--xlog-method</> to handle streaming timeline switches
|
|
|
|
(Heikki Linnakangas)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Add <link
|
|
|
|
linkend="guc-wal-receiver-timeout"><varname>wal_receiver_timeout</></link>
|
2013-09-01 05:53:24 +02:00
|
|
|
parameter to control the <acronym>WAL</> receiver's timeout
|
2013-05-04 01:40:23 +02:00
|
|
|
(Amit Kapila)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-06 16:47:10 +02:00
|
|
|
This allows more rapid detection of connection failure.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Change the <link linkend="wal"><acronym>WAL</></link> record format to
|
|
|
|
allow splitting the record header across pages (Heikki Linnakangas)
|
2013-04-23 23:06:17 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
The new format is slightly more compact, and is more efficient to
|
|
|
|
write.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Queries</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Implement <acronym>SQL</>-standard <link
|
2013-05-06 22:02:37 +02:00
|
|
|
linkend="queries-lateral"><literal>LATERAL</></link> option for
|
2013-05-03 20:48:12 +02:00
|
|
|
<literal>FROM</>-clause subqueries and function calls (Tom Lane)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
This feature allows subqueries and functions in <literal>FROM</> to
|
|
|
|
reference columns from other tables in the <literal>FROM</>
|
2013-05-03 20:48:12 +02:00
|
|
|
clause. The <literal>LATERAL</> keyword is optional for functions.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 23:31:06 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Add support for piping <link
|
|
|
|
linkend="SQL-COPY"><command>COPY</></link> and <link
|
|
|
|
linkend="APP-PSQL"><application>psql</></link> <command>\copy</>
|
2013-09-01 05:53:24 +02:00
|
|
|
data to/from an external program (Etsuro Fujita)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow a multirow <link
|
|
|
|
linkend="SQL-VALUES"><literal>VALUES</></link> clause in a rule
|
|
|
|
to reference <literal>OLD</>/<literal>NEW</> (Tom Lane)
|
2013-04-20 23:31:06 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 22:32:32 +02:00
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Object Manipulation</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
Add support for <link linkend="event-triggers">event triggers</link>
|
2013-05-04 01:40:23 +02:00
|
|
|
(Dimitri Fontaine, Robert Haas, Álvaro Herrera)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-18 17:01:55 +02:00
|
|
|
This allows server-side functions written in event-enabled
|
2013-09-01 05:53:24 +02:00
|
|
|
languages to be called when DDL commands are run.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-08-13 18:49:24 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
|
|
|
|
wrappers</link> to support writes (inserts/updates/deletes) on foreign
|
|
|
|
tables (KaiGai Kohei)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 22:32:32 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Add <link linkend="SQL-CREATESCHEMA"><command>CREATE SCHEMA ... IF
|
|
|
|
NOT EXISTS</></link> clause (Fabrízio de Royes Mello)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Make <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN
|
2013-05-04 01:40:23 +02:00
|
|
|
OWNED</></link> also change ownership of shared objects
|
|
|
|
(Álvaro Herrera)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-09-01 05:53:24 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Make <link linkend="sql-createaggregate"><command>CREATE
|
|
|
|
AGGREGATE</></link> complain if the given initial value string is not
|
|
|
|
valid input for the transition datatype (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
2013-04-20 22:50:56 +02:00
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Suppress <link linkend="SQL-CREATETABLE"><command>CREATE
|
|
|
|
TABLE</></link>'s messages about implicit index and sequence creation
|
2013-05-06 22:02:37 +02:00
|
|
|
(Robert Haas)
|
2013-04-20 22:50:56 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
These messages now appear at <literal>DEBUG1</> verbosity, so that
|
|
|
|
they will not be shown by default.
|
2013-04-20 22:50:56 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-21 04:38:37 +02:00
|
|
|
Allow <link linkend="SQL-DROPTABLE"><command>DROP TABLE IF
|
2013-05-21 14:06:32 +02:00
|
|
|
EXISTS</></link> to succeed when a non-existent schema is specified
|
2013-05-21 04:38:37 +02:00
|
|
|
in the table name (Bruce Momjian)
|
2013-04-20 22:50:56 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-04-21 15:05:16 +02:00
|
|
|
Previously, it threw an error if the schema did not exist.
|
2013-04-20 22:50:56 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 22:32:32 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Provide clients with <link
|
|
|
|
linkend="libpq-pqresulterrorfield">constraint violation details</link>
|
|
|
|
as separate fields (Pavel Stehule)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
This allows clients to retrieve table, column, data type, or
|
|
|
|
constraint name error details. Previously such information had to be
|
|
|
|
extracted from error strings. Client library support is required to
|
|
|
|
access these fields.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><command>ALTER</></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
Support <literal>IF NOT EXISTS</> option in <link
|
|
|
|
linkend="SQL-ALTERTYPE"><command>ALTER TYPE ... ADD VALUE</></link>
|
2013-05-04 01:40:23 +02:00
|
|
|
(Andrew Dunstan)
|
2013-04-20 23:31:06 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
This is useful for conditionally adding values to enumerated types.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Add <link linkend="SQL-ALTERROLE"><command>ALTER ROLE ALL
|
2013-09-01 05:53:24 +02:00
|
|
|
SET</></link> to establish settings for all users (Peter Eisentraut)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
This allows settings to apply to all users in all databases. <link
|
|
|
|
linkend="SQL-ALTERDATABASE"><command>ALTER DATABASE SET</></link>
|
|
|
|
already allowed addition of settings for all users in a single
|
|
|
|
database. <filename>postgresql.conf</> has a similar effect.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Add support for <link linkend="SQL-ALTERRULE"><command>ALTER RULE
|
|
|
|
... RENAME</></link> (Ali Dar)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><link linkend="rules-views"><command>VIEWs</></link></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
|
|
|
|
views</link> (Kevin Grittner)
|
2013-04-20 23:31:06 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-04-21 06:57:18 +02:00
|
|
|
Unlike ordinary views, where the base tables are read on every access,
|
2013-04-20 23:31:06 +02:00
|
|
|
materialized views create physical tables at creation or refresh time.
|
2013-05-06 22:02:37 +02:00
|
|
|
Access to the materialized view then reads from its physical
|
|
|
|
table. There is not yet any facility for incrementally refreshing
|
|
|
|
materialized views or auto-accessing them via base table access.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Make simple views <link
|
|
|
|
linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
|
|
|
|
(Dean Rasheed)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Simple views that reference some or all columns from a
|
|
|
|
single base table are now updatable by default. More
|
|
|
|
complex views can be made updatable using <link
|
|
|
|
linkend="SQL-CREATETRIGGER"><literal>INSTEAD OF</></link> triggers
|
|
|
|
or <link linkend="SQL-CREATERULE"><literal>INSTEAD</></link> rules.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Add <link linkend="SQL-CREATEVIEW"><command>CREATE RECURSIVE
|
|
|
|
VIEW</></link> syntax (Peter Eisentraut)
|
2013-05-06 22:02:37 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Internally this is translated into <command>CREATE VIEW ... WITH
|
|
|
|
RECURSIVE ...</>.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Improve view/rule printing code to handle cases where referenced
|
|
|
|
tables are renamed, or columns are renamed, added, or dropped
|
|
|
|
(Tom Lane)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Table and column renamings can produce cases where, if we merely
|
|
|
|
substitute the new name into the original text of a rule or view, the
|
|
|
|
result is ambiguous. This change fixes the rule-dumping code to insert
|
|
|
|
manufactured table and column aliases when needed to preserve the
|
|
|
|
original semantics.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Data Types</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Increase the maximum size of <link linkend="largeObjects">large
|
2013-05-04 01:40:23 +02:00
|
|
|
objects</link> from 2GB to 4TB (Nozomi Anzai, Yugo Nagata)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
This change includes adding 64-bit-capable large object access
|
|
|
|
functions, both in the server and in libpq.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Allow text <link linkend="datatype-timezones">timezone
|
2013-09-01 05:53:24 +02:00
|
|
|
designations</link>, e.g. <quote>America/Chicago</>, in the
|
|
|
|
<quote>T</> field of <acronym>ISO</>-format <type>timestamptz</type>
|
|
|
|
input (Bruce Momjian)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 23:31:06 +02:00
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
2013-05-04 01:40:23 +02:00
|
|
|
<title><link linkend="datatype-json"><type>JSON</></link></title>
|
2013-04-20 23:31:06 +02:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
2013-04-20 22:32:32 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Add <link linkend="functions-json">operators and functions</link>
|
2013-09-01 05:53:24 +02:00
|
|
|
to extract elements from <type>JSON</> values (Andrew Dunstan)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Allow <type>JSON</> values to be <link
|
2013-05-04 01:40:23 +02:00
|
|
|
linkend="functions-json-table">converted into records</link>
|
|
|
|
(Andrew Dunstan)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 23:31:06 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Add <link linkend="functions-json-table">functions</link> to convert
|
|
|
|
scalars, records, and <type>hstore</> values to <type>JSON</> (Andrew
|
|
|
|
Dunstan)
|
2013-04-20 23:31:06 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 22:32:32 +02:00
|
|
|
</itemizedlist>
|
|
|
|
|
2013-04-20 23:31:06 +02:00
|
|
|
</sect4>
|
|
|
|
|
2013-04-20 22:32:32 +02:00
|
|
|
</sect3>
|
|
|
|
|
2013-04-20 23:31:06 +02:00
|
|
|
|
2013-04-20 22:32:32 +02:00
|
|
|
<sect3>
|
|
|
|
<title>Functions</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Add <link
|
|
|
|
linkend="array-functions-table"><function>array_remove()</></link>
|
|
|
|
and <link
|
|
|
|
linkend="array-functions-table"><function>array_replace()</></link>
|
2013-05-03 20:48:12 +02:00
|
|
|
functions (Marco Nenciarini, Gabriele Bartolini)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Allow <link
|
|
|
|
linkend="functions-string-other"><function>concat()</></link>
|
|
|
|
and <link
|
|
|
|
linkend="functions-string-format"><function>format()</></link>
|
|
|
|
to properly expand <literal>VARIADIC</>-labeled arguments
|
|
|
|
(Pavel Stehule)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
2013-04-20 23:31:06 +02:00
|
|
|
</listitem>
|
2013-04-20 22:32:32 +02:00
|
|
|
|
2013-04-20 23:31:06 +02:00
|
|
|
<listitem>
|
2013-04-20 22:32:32 +02:00
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Improve <link
|
|
|
|
linkend="functions-string-format"><function>format()</></link>
|
2013-09-01 05:53:24 +02:00
|
|
|
to provide field width and left/right alignment options (Pavel Stehule)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Make <link
|
2013-05-04 01:40:23 +02:00
|
|
|
linkend="functions-formatting-table"><function>to_char()</></link>,
|
|
|
|
<link
|
|
|
|
linkend="functions-formatting-table"><function>to_date()</></link>,
|
|
|
|
and <link
|
|
|
|
linkend="functions-formatting-table"><function>to_timestamp()</></link>
|
2013-09-01 05:53:24 +02:00
|
|
|
handle negative (BC) century values properly
|
2013-05-04 01:40:23 +02:00
|
|
|
(Bruce Momjian)
|
2013-04-20 23:31:06 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-03 20:48:12 +02:00
|
|
|
Previously the behavior was either wrong or inconsistent
|
2013-09-01 05:53:24 +02:00
|
|
|
with positive/<acronym>AD</> handling, e.g. with the format mask
|
2013-05-03 20:48:12 +02:00
|
|
|
<quote>IYYY-IW-DY</>.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Make <link
|
2013-05-04 01:40:23 +02:00
|
|
|
linkend="functions-formatting-table"><function>to_date()</></link>
|
|
|
|
and <link
|
|
|
|
linkend="functions-formatting-table"><function>to_timestamp()</></link>
|
2013-05-03 20:48:12 +02:00
|
|
|
return proper results when mixing <acronym>ISO</> and Gregorian
|
|
|
|
week/day designations (Bruce Momjian)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Cause <link
|
|
|
|
linkend="functions-info-catalog-table"><function>pg_get_viewdef()</></link>
|
2013-09-01 05:53:24 +02:00
|
|
|
to start a new line by default after each <literal>SELECT</> target
|
|
|
|
list entry and <literal>FROM</> entry (Marko Tiikkaja)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
This reduces line length in view printing, for instance in <link
|
|
|
|
linkend="APP-PGDUMP"><application>pg_dump</></link> output.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
Fix <function>map_sql_value_to_xml_value()</> to print values of
|
|
|
|
domain types the same way their base type would be printed
|
|
|
|
(Pavel Stehule)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
There are special formatting rules for certain built-in types such as
|
|
|
|
<type>boolean</>; these rules now also apply to domains over these
|
|
|
|
types.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Server-Side Languages</title>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-03 20:48:12 +02:00
|
|
|
Allow PL/pgSQL to use <literal>RETURN</> with a composite-type
|
2013-05-06 22:02:37 +02:00
|
|
|
expression (Asif Rehman)
|
2013-04-20 23:31:06 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
Previously, in a function returning a composite type,
|
|
|
|
<literal>RETURN</> could only reference a variable of that type.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-08-17 00:01:05 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow PL/pgSQL to access <link
|
2013-08-20 15:39:01 +02:00
|
|
|
linkend="plpgsql-exception-diagnostics">constraint violation
|
2013-08-17 00:01:05 +02:00
|
|
|
details</link> as separate fields (Pavel Stehule)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 22:32:32 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-03 20:48:12 +02:00
|
|
|
Allow PL/pgSQL to access the number of rows processed by
|
2013-05-04 01:40:23 +02:00
|
|
|
<link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
A <command>COPY</> executed in a PL/pgSQL function now updates the
|
|
|
|
value retrieved by <link
|
2013-05-04 01:40:23 +02:00
|
|
|
linkend="plpgsql-statements-diagnostics"><command>GET DIAGNOSTICS
|
|
|
|
x = ROW_COUNT</></link>.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Allow unreserved keywords to be used as identifiers everywhere in
|
|
|
|
PL/pgSQL (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
In certain places in the PL/pgSQL grammar, keywords had to be quoted
|
|
|
|
to be used as identifiers, even if they were nominally unreserved.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-04-20 23:31:06 +02:00
|
|
|
Add PL/Python result object string handler (Peter Eisentraut)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-21 03:13:13 +02:00
|
|
|
This allows <literal>plpy.debug(rv)</literal> to output something reasonable.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
Make PL/Python convert OID values to a proper Python numeric type
|
2013-05-04 01:40:23 +02:00
|
|
|
(Peter Eisentraut)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Handle <link linkend="spi"><acronym>SPI</></link> errors raised
|
2013-05-06 22:02:37 +02:00
|
|
|
explicitly (with PL/Python's <literal>RAISE</>) the same as
|
2013-05-04 01:40:23 +02:00
|
|
|
internal <acronym>SPI</> errors (Oskari Saarenmaa and Jan Urbanski)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
2013-09-01 05:53:24 +02:00
|
|
|
<sect3>
|
|
|
|
<title>Server Programming Interface (<link linkend="spi">SPI</link>)</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Prevent leakage of <acronym>SPI</> tuple tables during subtransaction
|
|
|
|
abort (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
At the end of any failed subtransaction, the core SPI code now
|
|
|
|
releases any SPI tuple tables that were created during that
|
|
|
|
subtransaction. This avoids the need for SPI-using code to keep track
|
|
|
|
of such tuple tables and release them manually in error-recovery code.
|
|
|
|
Failure to do so caused a number of transaction-lifespan memory leakage
|
|
|
|
issues in PL/pgSQL and perhaps other SPI clients. <link
|
|
|
|
linkend="spi-spi-freetupletable"><function>SPI_freetuptable()</></link>
|
|
|
|
now protects itself against multiple freeing requests, so any existing
|
|
|
|
code that did take care to clean up shouldn't be broken by this change.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow <acronym>SPI</> functions to access the number of rows processed
|
|
|
|
by <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
2013-04-20 22:32:32 +02:00
|
|
|
<sect3>
|
|
|
|
<title>Client Applications</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Add command-line utility <link
|
|
|
|
linkend="app-pg-isready"><application>pg_isready</></link> to
|
|
|
|
check if the server is ready to accept connections (Phil Sorber)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Support multiple <option>--table</> arguments for <link
|
|
|
|
linkend="APP-PGRESTORE"><application>pg_restore</></link>,
|
|
|
|
<link linkend="APP-CLUSTERDB"><application>clusterdb</></link>,
|
|
|
|
<link linkend="APP-REINDEXDB"><application>reindexdb</></link>,
|
|
|
|
and <link linkend="APP-VACUUMDB"><application>vacuumdb</></link>
|
|
|
|
(Josh Kupershmidt)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
This is similar to the way <link
|
|
|
|
linkend="APP-PGDUMP"><application>pg_dump</></link>'s
|
|
|
|
<option>--table</> option works.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Add <option>--dbname</> option to <link
|
|
|
|
linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, <link
|
2013-05-06 22:02:37 +02:00
|
|
|
linkend="app-pgbasebackup"><application>pg_basebackup</></link>, and
|
2013-05-04 01:40:23 +02:00
|
|
|
<link
|
|
|
|
linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
|
2013-09-01 05:53:24 +02:00
|
|
|
to allow specifying a connection string (Amit Kapila)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Add libpq function <link
|
|
|
|
linkend="libpq-pqconninfo"><function>PQconninfo()</></link>
|
|
|
|
to return connection information (Zoltán
|
|
|
|
Böszörményi, Magnus Hagander)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><link linkend="APP-PSQL"><application>psql</></link></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-03 20:48:12 +02:00
|
|
|
Adjust function cost settings so <application>psql</> tab
|
2013-09-01 05:53:24 +02:00
|
|
|
completion and pattern searching are more efficient (Tom Lane)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Improve <application>psql</>'s tab completion coverage (Jeff Janes,
|
|
|
|
Dean Rasheed, Peter Eisentraut, Magnus Hagander)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-08-17 00:01:05 +02:00
|
|
|
Allow the <application>psql</> <option>--single-transaction</>
|
|
|
|
mode to work when reading from standard input (Fabien Coelho,
|
|
|
|
Robert Haas)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-04-20 23:31:06 +02:00
|
|
|
Previously this option only worked when reading from a file.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-03 20:48:12 +02:00
|
|
|
Remove <application>psql</> warning when connecting to an older
|
|
|
|
server (Peter Eisentraut)
|
2013-04-20 23:31:06 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
A warning is still issued when connecting to a server of a newer major
|
|
|
|
version than <application>psql</>'s.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect5>
|
2013-09-01 05:53:24 +02:00
|
|
|
<title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
|
2013-04-20 22:32:32 +02:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Add <application>psql</> command <command>\watch</> to repeatedly
|
|
|
|
execute a SQL command (Will Leinweber)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-03 20:48:12 +02:00
|
|
|
Add <application>psql</> command <command>\gset</> to store query
|
|
|
|
results in <application>psql</> variables (Pavel Stehule)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
2013-04-20 23:31:06 +02:00
|
|
|
</listitem>
|
2013-04-20 22:32:32 +02:00
|
|
|
|
2013-04-20 23:31:06 +02:00
|
|
|
<listitem>
|
2013-04-20 22:32:32 +02:00
|
|
|
<para>
|
2013-05-03 20:48:12 +02:00
|
|
|
Add <acronym>SSL</> information to <application>psql</>'s
|
|
|
|
<command>\conninfo</> command (Alastair Turner)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Add <quote>Security</> column to <application>psql</>'s
|
|
|
|
<command>\df+</> output (Jon Erdman)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Allow <application>psql</> command <command>\l</> to accept a database
|
2013-05-03 20:48:12 +02:00
|
|
|
name pattern (Peter Eisentraut)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
2013-04-20 23:31:06 +02:00
|
|
|
</listitem>
|
2013-04-20 22:32:32 +02:00
|
|
|
|
2013-04-20 23:31:06 +02:00
|
|
|
<listitem>
|
2013-04-20 22:32:32 +02:00
|
|
|
<para>
|
2013-05-03 20:48:12 +02:00
|
|
|
In <application>psql</>, do not allow <command>\connect</> to
|
|
|
|
use defaults if there is no active connection (Bruce Momjian)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-04-20 23:31:06 +02:00
|
|
|
This might be the case if the server had crashed.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Properly reset state after failure of a SQL command executed with
|
|
|
|
<application>psql</>'s <literal>\g</> <replaceable>file</>
|
|
|
|
(Tom Lane)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
Previously, the output from subsequent SQL commands would unexpectedly
|
|
|
|
continue to go to the same file.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect5>
|
|
|
|
|
|
|
|
<sect5>
|
|
|
|
<title>Output</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-03 20:48:12 +02:00
|
|
|
Add a <literal>latex-longtable</> output format to
|
|
|
|
<application>psql</> (Bruce Momjian)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
This format allows tables to span multiple pages.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-03 20:48:12 +02:00
|
|
|
Add a <literal>border=3</> output mode to the <application>psql</>
|
|
|
|
<literal>latex</> format (Bruce Momjian)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
In <application>psql</>'s tuples-only and expanded output modes, no
|
|
|
|
longer emit <quote>(No rows)</> for zero rows (Peter Eisentraut)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
In <application>psql</>'s unaligned, expanded output mode, no longer
|
|
|
|
print an empty line for zero rows (Peter Eisentraut)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect5>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
Add <application>pg_dump</> <option>--jobs</> option to dump tables in
|
|
|
|
parallel (Joachim Wieland)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Make <application>pg_dump</> output functions in a more predictable
|
2013-05-03 20:48:12 +02:00
|
|
|
order (Joel Jacobson)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 23:31:06 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Fix tar files emitted by <application>pg_dump</>
|
2013-05-04 01:40:23 +02:00
|
|
|
to be <acronym>POSIX</> conformant (Brian Weaver, Tom Lane)
|
2013-04-20 23:31:06 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 22:32:32 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-03 20:48:12 +02:00
|
|
|
Add <option>--dbname</> option to <application>pg_dump</>, for
|
|
|
|
consistency with other client commands (Heikki Linnakangas)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The database name could already be supplied last without a flag.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 23:31:06 +02:00
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><link linkend="APP-INITDB"><application>initdb</></link></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
2013-04-20 22:32:32 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Make initdb fsync the newly created data directory (Jeff Davis)
|
2013-04-20 23:31:06 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
This insures data integrity in event of a system crash shortly after
|
|
|
|
initdb. This can be disabled by using <option>--nosync</>.
|
2013-04-20 23:31:06 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-03 20:48:12 +02:00
|
|
|
Add initdb <option>--sync-only</> option to sync the data directory to durable
|
2013-04-20 23:31:06 +02:00
|
|
|
storage (Bruce Momjian)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
This is used by <link
|
|
|
|
linkend="pgupgrade"><application>pg_upgrade</></link>.
|
2013-04-20 23:31:06 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Make initdb issue a warning about placing the data directory at the
|
2013-05-06 22:02:37 +02:00
|
|
|
top of a file system mount point (Bruce Momjian)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Source Code</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Add infrastructure to allow plug-in <link
|
2013-05-04 01:40:23 +02:00
|
|
|
linkend="bgworker">background worker processes</link>
|
|
|
|
(Álvaro Herrera)
|
2013-04-21 06:57:18 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-03 20:48:12 +02:00
|
|
|
Create a centralized timeout <acronym>API</> (Zoltán
|
|
|
|
Böszörményi)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-03 20:48:12 +02:00
|
|
|
Create libpgcommon and move <function>pg_malloc()</> and other
|
|
|
|
functions there (Álvaro Herrera, Andres Freund)
|
2013-04-20 23:31:06 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
This allows libpgport to be used solely for portability-related code.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add support for list links embedded in larger structs (Andres Freund)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Use <literal>SA_RESTART</> for all signals,
|
|
|
|
including <literal>SIGALRM</> (Tom Lane)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Ensure that the correct text domain is used when
|
|
|
|
translating <function>errcontext()</> messages
|
|
|
|
(Heikki Linnakangas)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Standardize naming of client-side memory allocation functions (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Provide support for <quote>static assertions</> that will fail at
|
|
|
|
compile time if some compile-time-constant condition is not met
|
|
|
|
(Andres Freund, Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Support <function>Assert()</> in client-side code (Andrew Dunstan)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add decoration to inform the C compiler that some <function>ereport()</>
|
2013-05-03 20:48:12 +02:00
|
|
|
and <function>elog()</> calls do not return (Peter Eisentraut,
|
|
|
|
Andres Freund, Tom Lane, Heikki Linnakangas)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Allow options to be passed to the regression
|
|
|
|
test output comparison utility via <link
|
|
|
|
linkend="regress-evaluation"><envar>PG_REGRESS_DIFF_OPTS</></link>
|
|
|
|
(Peter Eisentraut)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-21 15:05:16 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Add isolation tests for <link
|
|
|
|
linkend="SQL-CREATEINDEX"><command>CREATE INDEX
|
|
|
|
CONCURRENTLY</></link> (Abhijit Menon-Sen)
|
2013-04-21 15:05:16 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 22:32:32 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Remove typedefs for <type>int2</>/<type>int4</> as they are better
|
|
|
|
represented as <type>int16</>/<type>int32</> (Peter Eisentraut)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Fix <link linkend="install">install-strip</link> on Mac <productname>OS
|
|
|
|
X</> (Peter Eisentraut)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Remove <link linkend="configure">configure</link> flag
|
2013-09-01 05:53:24 +02:00
|
|
|
<option>--disable-shared</>, as it is no longer supported
|
|
|
|
(Bruce Momjian)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Rewrite pgindent in <application>Perl</> (Andrew Dunstan)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
2013-04-20 23:31:06 +02:00
|
|
|
</listitem>
|
2013-04-20 22:32:32 +02:00
|
|
|
|
2013-04-20 23:31:06 +02:00
|
|
|
<listitem>
|
2013-04-20 22:32:32 +02:00
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Provide Emacs macro to set Perl formatting to
|
|
|
|
match <productname>PostgreSQL</>'s perltidy settings (Peter Eisentraut)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Run tool to check the keyword list whenever the backend grammar is
|
2013-05-04 01:40:23 +02:00
|
|
|
changed (Tom Lane)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Change the way <literal>UESCAPE</> is lexed, to significantly reduce
|
|
|
|
the size of the lexer tables (Heikki Linnakangas)
|
2013-04-20 23:31:06 +02:00
|
|
|
</para>
|
2013-09-01 05:53:24 +02:00
|
|
|
</listitem>
|
2013-04-20 23:31:06 +02:00
|
|
|
|
2013-09-01 05:53:24 +02:00
|
|
|
<listitem>
|
2013-04-20 23:31:06 +02:00
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Centralize <application>flex</> and <application>bison</>
|
|
|
|
<application>make</> rules (Peter Eisentraut)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
This is useful for <application>pgxs</> authors.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Change many internal backend functions to return object <type>OID</>s
|
2013-05-04 01:40:23 +02:00
|
|
|
rather than void (Dimitri Fontaine)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is useful for event triggers.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Invent pre-commit/pre-prepare/pre-subcommit events for transaction
|
|
|
|
callbacks (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Loadable modules that use transaction callbacks might need modification
|
|
|
|
to handle these new event types.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Add function <link
|
|
|
|
linkend="functions-info-catalog-table"><function>pg_identify_object()</></link>
|
2013-09-01 05:53:24 +02:00
|
|
|
to produce a machine-readable description of a database object
|
|
|
|
(Álvaro Herrera)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-03 20:48:12 +02:00
|
|
|
Add post-<command>ALTER</>-object server hooks (KaiGai Kohei)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-22 20:33:28 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Implement a generic binary heap and use it for Merge-Append
|
|
|
|
operations (Abhijit Menon-Sen)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 22:32:32 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Provide a tool to help detect timezone abbreviation changes when
|
|
|
|
updating the <filename>src/timezone/data</> files
|
2013-04-21 06:57:18 +02:00
|
|
|
(Tom Lane)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Add <application>pkg-config</> support for <application>libpq</>
|
2013-05-04 01:40:23 +02:00
|
|
|
and <application>ecpg</> libraries (Peter Eisentraut)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-03 20:48:12 +02:00
|
|
|
Remove <filename>src/tool/backend</>, now that the content is on
|
|
|
|
the <productname>PostgreSQL</> wiki (Bruce Momjian)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Split out <link linkend="wal"><acronym>WAL</></link> reading as
|
|
|
|
an independent facility (Heikki Linnakangas, Andres Freund)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-23 23:06:17 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Use a 64-bit integer to represent <link
|
|
|
|
linkend="wal"><acronym>WAL</></link> positions
|
|
|
|
(<structname>XLogRecPtr</>) instead of two 32-bit integers
|
|
|
|
(Heikki Linnakangas)
|
2013-04-23 23:06:17 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-03 20:48:12 +02:00
|
|
|
Generally, tools that need to read the <acronym>WAL</> format
|
|
|
|
will need to be adjusted.
|
2013-04-23 23:06:17 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 23:31:06 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Allow <link linkend="plpython">PL/Python</link> to support
|
|
|
|
platform-specific include directories (Peter Eisentraut)
|
2013-04-20 23:31:06 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Allow <link linkend="plpython">PL/Python</link> on <productname>OS
|
|
|
|
X</> to build against custom versions of <application>Python</>
|
|
|
|
(Peter Eisentraut)
|
2013-04-20 23:31:06 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 22:32:32 +02:00
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Additional Modules</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
|
|
|
|
data wrapper</link> contrib module to allow access to
|
|
|
|
other <productname>Postgres</> servers (Shigeru Hanada)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
This foreign data wrapper supports writes.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Add <link linkend="pgxlogdump"><application>pg_xlogdump</></link>
|
|
|
|
contrib program (Andres Freund)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-04-21 06:57:18 +02:00
|
|
|
Add support for indexing of regular-expression searches in
|
2013-05-06 22:02:37 +02:00
|
|
|
<link linkend="pgtrgm"><productname>pg_trgm</></link>
|
2013-05-04 01:40:23 +02:00
|
|
|
(Alexander Korotkov)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Improve <link linkend="pgtrgm"><productname>pg_trgm</></link>'s
|
2013-05-04 01:40:23 +02:00
|
|
|
handling of multibyte characters (Tom Lane)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
2013-09-01 05:53:24 +02:00
|
|
|
|
|
|
|
<para>
|
|
|
|
On a platform that does not have the wcstombs() or towlower() library
|
|
|
|
functions, this could result in an incompatible change in the contents
|
|
|
|
of <productname>pg_trgm</> indexes for non-ASCII data. In such cases,
|
|
|
|
<command>REINDEX</> those indexes to ensure correct search results.
|
|
|
|
</para>
|
2013-04-20 22:32:32 +02:00
|
|
|
</listitem>
|
|
|
|
|
2013-04-22 20:33:28 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Add a <link linkend="pgstattuple">pgstattuple</link> function to report
|
|
|
|
the size of the pending-insertions list of a <acronym>GIN</> index
|
|
|
|
(Fujii Masao)
|
2013-04-22 20:33:28 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2013-04-20 22:32:32 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Make <link linkend="oid2name"><application>oid2name</></link>,
|
2013-05-04 01:40:23 +02:00
|
|
|
<link linkend="pgbench"><application>pgbench</></link>, and
|
|
|
|
<link linkend="vacuumlo"><application>vacuumlo</></link> set
|
|
|
|
<varname>fallback_application_name</> (Amit Kapila)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Improve output of <link
|
|
|
|
linkend="pgtesttiming"><application>pg_test_timing</></link>
|
|
|
|
(Bruce Momjian)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
2013-04-21 06:57:18 +02:00
|
|
|
</listitem>
|
2013-04-20 22:32:32 +02:00
|
|
|
|
2013-04-21 06:57:18 +02:00
|
|
|
<listitem>
|
2013-04-20 22:32:32 +02:00
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Improve output of <link
|
|
|
|
linkend="pgtestfsync"><application>pg_test_fsync</></link>
|
|
|
|
(Peter Geoghegan)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Create a dedicated foreign data wrapper, with its own option validator
|
|
|
|
function, for <link linkend="dblink">dblink</link> (Shigeru Hanada)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
When using this FDW to define the target of a <application>dblink</>
|
|
|
|
connection, instead of using a hard-wired list of connection options,
|
|
|
|
the underlying <application>libpq</> library is consulted to see what
|
|
|
|
connection options it supports.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><link linkend="pgupgrade"><application>pg_upgrade</></link></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Allow <application>pg_upgrade</> to do dumps and restores in
|
|
|
|
parallel (Bruce Momjian, Andrew Dunstan)
|
2013-04-21 06:57:18 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows parallel schema dump/restore of databases, as well as
|
2013-09-01 05:53:24 +02:00
|
|
|
parallel copy/link of data files per tablespace. Use the
|
|
|
|
<option>--jobs</> option to specify the level of parallelism.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Make <application>pg_upgrade</> create Unix-domain sockets in
|
2013-05-03 20:48:12 +02:00
|
|
|
the current directory (Bruce Momjian, Tom Lane)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This reduces the possibility that someone will accidentally connect
|
|
|
|
during the upgrade.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Make <application>pg_upgrade</> <option>--check</> mode properly
|
2013-05-03 20:48:12 +02:00
|
|
|
detect the location of non-default socket directories (Bruce
|
|
|
|
Momjian, Tom Lane)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-03 20:48:12 +02:00
|
|
|
Improve performance of <application>pg_upgrade</> for databases
|
|
|
|
with many tables (Bruce Momjian)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Improve <application>pg_upgrade</>'s logs by showing
|
|
|
|
executed commands (Álvaro Herrera)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Improve <application>pg_upgrade</>'s status display during
|
|
|
|
copy/link (Bruce Momjian)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><link linkend="pgbench"><application>pgbench</></link></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
2013-04-21 06:57:18 +02:00
|
|
|
|
2013-04-20 22:32:32 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
Add <option>--foreign-keys</> option to <application>pgbench</>
|
|
|
|
(Jeff Janes)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
This adds foreign key constraints to the standard tables created by
|
|
|
|
<application>pgbench</>, for use in foreign key performance testing.
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Allow <application>pgbench</> to aggregate performance statistics
|
2013-05-06 22:02:37 +02:00
|
|
|
and produce output every <option>--aggregate-interval</>
|
2013-05-04 01:40:23 +02:00
|
|
|
seconds (Tomas Vondra)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-06 22:02:37 +02:00
|
|
|
Add <application>pgbench</> <option>--sampling-rate</> option
|
2013-05-04 01:40:23 +02:00
|
|
|
to control the percentage of transactions logged (Tomas Vondra)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Reduce and improve the status message output of
|
|
|
|
<application>pgbench</>'s initialization mode (Robert Haas,
|
|
|
|
Peter Eisentraut)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
2013-04-21 06:57:18 +02:00
|
|
|
</listitem>
|
2013-04-20 22:32:32 +02:00
|
|
|
|
2013-04-21 06:57:18 +02:00
|
|
|
<listitem>
|
2013-04-20 22:32:32 +02:00
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Add <application>pgbench</> <option>-q</> mode to print one output
|
|
|
|
line every five seconds (Tomas Vondra)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
2013-05-06 22:02:37 +02:00
|
|
|
</listitem>
|
2013-04-20 22:32:32 +02:00
|
|
|
|
2013-05-06 22:02:37 +02:00
|
|
|
<listitem>
|
2013-04-20 22:32:32 +02:00
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Output <application>pgbench</> elapsed and estimated remaining
|
2013-05-06 22:02:37 +02:00
|
|
|
time during initialization (Tomas Vondra)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Allow <application>pgbench</> to use much larger scale factors,
|
|
|
|
by changing relevant columns from <type>integer</> to <type>bigint</>
|
|
|
|
when the requested scale factor exceeds 20000
|
2013-05-04 01:40:23 +02:00
|
|
|
(Greg Smith)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Documentation</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-03 20:48:12 +02:00
|
|
|
Allow <productname>EPUB</>-format documentation to be created
|
|
|
|
(Peter Eisentraut)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Update <productname>FreeBSD</> kernel configuration documentation
|
|
|
|
(Brad Davis)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Improve <link linkend="tutorial-window"><literal>WINDOW</>
|
2013-09-01 05:53:24 +02:00
|
|
|
function</link> documentation (Bruce Momjian, Florian Pflug)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-09-01 05:53:24 +02:00
|
|
|
Add <link linkend="docguide-toolsets">instructions</link> for setting
|
2013-05-04 01:40:23 +02:00
|
|
|
up the documentation tool chain on Mac <productname>OS X</>
|
|
|
|
(Peter Eisentraut)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2013-05-04 01:40:23 +02:00
|
|
|
Improve <link
|
|
|
|
linkend="guc-commit-delay"><varname>commit_delay</></link>
|
|
|
|
documentation (Peter Geoghegan)
|
2013-04-20 22:32:32 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|