2015-06-11 06:08:55 +02:00
|
|
|
<!-- doc/src/sgml/release-9.5.sgml -->
|
|
|
|
<!-- See header comment in release.sgml about typical markup -->
|
|
|
|
|
|
|
|
<sect1 id="release-9-5">
|
|
|
|
<title>Release 9.5</title>
|
|
|
|
|
|
|
|
<note>
|
|
|
|
<title>Release Date</title>
|
|
|
|
<para>AS OF 2015-06-01</para>
|
|
|
|
<simpara>2015-XX-XX</simpara>
|
|
|
|
</note>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Overview</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Major enhancements in <productname>PostgreSQL</> 9.5 include:
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<!-- This list duplicates items below, but without authors or details-->
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The above items are explained in more detail in the sections below.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
|
|
|
|
<title>Migration to Version 9.5</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
A dump/restore using <xref linkend="app-pg-dumpall">, or use
|
|
|
|
of <xref linkend="pgupgrade">, is required for those wishing to migrate
|
|
|
|
data from any previous release.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Version 9.5 contains a number of changes that may affect compatibility
|
|
|
|
with previous releases. Observe the following incompatibilities:
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Adjust <link linkend="functions-comparison">operator precedence</>
|
|
|
|
to match the <acronym>SQL</> standard (Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
"<" and ">" now have the same precedence as "<="
|
|
|
|
">=" and "<>", and <literal>IS</> now has lower
|
|
|
|
precedence. <literal>NOT</> now also has symmetric precedence.
|
|
|
|
The <acronym>GUC</> <varname>operator_precedence_warning</> can be
|
|
|
|
enabled to warn about queries where the precedence has changed.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Use cast conversions for <application>PL/pgSQL</> type conversions,
|
|
|
|
rather than converting to and from text (Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This causes conversions of booleans to strings to
|
|
|
|
return <literal>true</> or <literal>false</>, not
|
|
|
|
<literal>t</>/<literal>f</>.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow special characters in <link linkend="libpq-envars">server
|
|
|
|
startup option values</> to be escaped with a backslash (Andres
|
|
|
|
Freund)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows characters like spaces to be passed inside option values.
|
|
|
|
Passing a backslash now requires supplying a double-backslash.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Set the default value of <link
|
|
|
|
linkend="gssapi-auth"><varname>include_realm</></> to not remove
|
2015-06-11 06:08:55 +02:00
|
|
|
the <acronym>GSS</> and <acronym>SSPI</> realm from the principal
|
|
|
|
(Stephen Frost)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Fix <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN</></>
|
|
|
|
and <link linkend="SQL-ALTERTABLE"><command>ALTER OWNER TO</></>
|
|
|
|
to properly reassign ownership of types, foreign data wrappers,
|
|
|
|
and foreign servers (Bruce Momjian)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Remove server-side <acronym>GUC</> <varname>autocommit</>, which
|
|
|
|
was already deprecated and non-operational (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Remove <link
|
|
|
|
linkend="catalog-pg-authid"><structname>pg_authid</>.<structname>rolcatupdate</></>,
|
|
|
|
as it had no purpose (Adam Brightwell)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Changes</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Below you will find a detailed account of the changes between
|
|
|
|
<productname>PostgreSQL</productname> 9.5 and the previous major
|
|
|
|
release.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Server</title>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Indexes</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <link linkend="BRIN">Block Range Indexes</> (<acronym>BRIN</>)
|
|
|
|
(Álvaro Herrera, Heikki Linnakangas, Emre Hasegeli)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
<acronym>BRIN</> indexes are very compact and store the min/max
|
|
|
|
values for a range of heap blocks.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow queries to perform accurate distance filtering of
|
2015-06-12 05:04:46 +02:00
|
|
|
bounding-box-indexed objects (polygons, circles) using <link
|
|
|
|
linkend="GiST">GiST</> indexes (Alexander Korotkov, Heikki
|
|
|
|
Linnakangas)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously, a common table expression was required to return a
|
|
|
|
large number of rows ordered by bounding-box distance, and then
|
|
|
|
filtered further with a more accurate non-bounding-box distance
|
|
|
|
calculation.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow <link linkend="GiST">GiST</> indexes to perform index-only
|
|
|
|
scans (Anastasia Lubennikova, Heikki Linnakangas, Andreas Karlsson)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <acronym>GUC</> <link
|
|
|
|
linkend="guc-gin-pending-list-limit"><varname>gin_pending_list_limit</></>
|
|
|
|
to control the size of <acronym>GIN</> pending lists (Fujii Masao)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Previously this was controlled by <link
|
|
|
|
linkend="guc-work-mem"><varname>work_mem</></>. This can also
|
|
|
|
be set as an index storage parameter.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Issue a warning during the creation of <link
|
|
|
|
linkend="SQL-CREATEINDEX">hash</> indexes because they are not
|
|
|
|
crash-safe (Bruce Momjian)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>General Performance</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Improve the speed of sorting character and numeric fields (Robert
|
|
|
|
Haas, Peter Geoghegan, Andrew Gierth)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-13 04:16:08 +02:00
|
|
|
Improve in-memory hash performance (Tomas Vondra, Robert Haas)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Improve concurrency of <link linkend="guc-shared-buffers">shared
|
|
|
|
buffer</> replacement (Robert Haas, Amit Kapila)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Improve concurrent locking and buffer scan performance (Andres
|
|
|
|
Freund, Kevin Grittner)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-13 03:47:08 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow the optimizer to remove unnecessary references to left
|
|
|
|
outer join subqueries (David Rowley)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow pushdown of query restrictions into <link
|
|
|
|
linkend="functions-window">window functions</>, where appropriate
|
|
|
|
(David Rowley)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-11 06:08:55 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Speed up <acronym>CRC</> (cyclic redundancy check) computations
|
|
|
|
(Abhijit Menon-Sen, Heikki Linnakangas)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Also use <acronym>CPU</> instructions for <acronym>CRC</>
|
|
|
|
calculations, if supported
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Monitoring</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add per-table autovacuum logging control via
|
|
|
|
<varname>log_min_autovacuum_duration</> (Michael Paquier)
|
|
|
|
</para>
|
2015-06-12 05:04:46 +02:00
|
|
|
|
|
|
|
<para>
|
|
|
|
NOT DOCUMENTED?
|
|
|
|
</para>
|
2015-06-11 06:08:55 +02:00
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <acronym>GUC</> variable <link
|
|
|
|
linkend="guc-cluster-name"><varname>cluster_name</></> (Thomas
|
2015-06-11 06:08:55 +02:00
|
|
|
Munro)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
This string, set in <link
|
|
|
|
linkend="config-setting-configuration-file"><filename>postgresql.conf</></>,
|
|
|
|
allows clients to query the cluster name. This name also appears
|
|
|
|
in the process title, allowing for easier grouping of processes
|
|
|
|
belonging to the same cluster.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Prevent non-superusers from changing <link
|
|
|
|
linkend="guc-log-disconnections"><varname>log_disconnections</></>
|
2015-06-11 06:08:55 +02:00
|
|
|
on connection startup (Fujii Masao)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><acronym>SSL</></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Check <link linkend="libpq-ssl"><quote>Subject Alternative
|
|
|
|
Names</></> in <acronym>SSL</> server certificates, if present
|
|
|
|
(Alexey Klyukin)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Their presence replaces checks against the certificate's
|
|
|
|
<quote>Common Name</>.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add system view <link
|
|
|
|
linkend="pg-stat-ssl-view"><structname>pg_stat_ssl</></> to report
|
2015-06-11 06:08:55 +02:00
|
|
|
<acronym>SSL</> connection information (Magnus Hagander)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <application>libpq</> function <link
|
|
|
|
linkend="libpq-pqsslAttribute"><function>PQsslAttribute()</></>
|
2015-06-11 06:08:55 +02:00
|
|
|
that returns <acronym>SSL</> information (Heikki Linnakangas)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
While <link linkend="libpq-pqgetssl"><function>PQgetssl()</></>
|
|
|
|
can still be used to then call <productname>OpenSSL</>
|
|
|
|
functions, <function>PQsslAttribute()</> returns <acronym>SSL</>
|
2015-06-11 06:08:55 +02:00
|
|
|
information in an <acronym>SSL</>-implementation-independent way.
|
|
|
|
(Future versions of libpq might support other <acronym>SSL</>
|
|
|
|
implementations.)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Have <application>libpq</> honor any <productname>OpenSSL</>
|
|
|
|
thread callbacks (Jan Urbanski)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously they were overwritten.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Server Settings</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Replace <varname>checkpoint_segments</> with <link
|
|
|
|
linkend="guc-min-wal-size"><varname>min_wal_size</></> and
|
|
|
|
<link linkend="guc-max-wal-size"><varname>max_wal_size</></>
|
|
|
|
(Heikki Linnakangas)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows the allocation of a large number of <acronym>WAL</>
|
|
|
|
files without keeping them if they are not needed.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <acronym>GUC</> <link
|
|
|
|
linkend="guc-wal-compression"><varname>wal_compression</></> to
|
|
|
|
enable compression of full page images stored in <acronym>WAL</>
|
2015-06-11 06:08:55 +02:00
|
|
|
(Rahila Syed, Michael Paquier)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow the recording of transaction
|
|
|
|
commit timestamps when <acronym>GUC</> <link
|
|
|
|
linkend="guc-track-commit-timestamp"><varname>track_commit_timestamp</></>
|
|
|
|
is enabled (Álvaro Herrera, Petr Jelinek)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Timestamp information can be accessed using functions <link
|
|
|
|
linkend="functions-commit-timestamp"><function>pg_xact_commit_timestamp()</></>
|
|
|
|
and <function>pg_last_committed_xact()</>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow <link
|
|
|
|
linkend="guc-local-preload-libraries"><varname>local_preload_libraries</></>
|
|
|
|
to be set by <command>ALTER ROLE SET</> (Peter Eisentraut,
|
|
|
|
Kyotaro Horiguchi)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow running <link linkend="autovacuum">autovacuum workers</>
|
|
|
|
to respond to configuration parameter changes (Michael Paquier)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Make <acronym>GUC</> <link
|
|
|
|
linkend="guc-debug-assertions"><varname>debug_assertions</></>
|
|
|
|
read-only (Andres Freund)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
This means that assertions can no longer be turned
|
|
|
|
off once enabled at compile-time, allowing for more
|
|
|
|
efficient code optimization. This also removed the <link
|
|
|
|
linkend="app-postgres-options">postgres</> <option>-A</> option.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow setting <link
|
|
|
|
linkend="guc-effective-io-concurrency"><varname>effective_io_concurrency</></>
|
|
|
|
on systems where it has no effect (Peter Eisentraut)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add environment variables <link
|
|
|
|
linkend="linux-memory-overcommit"><envar>PG_OOM_ADJUST_FILE</></>
|
|
|
|
and <link
|
|
|
|
linkend="linux-memory-overcommit"><envar>PG_OOM_ADJUST_VALUE</></>
|
|
|
|
to control Linux <acronym>OOM</> killer (Gurjeet Singh)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The previous <acronym>OOM</> control involved a compile-time
|
|
|
|
option.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add function and view <link
|
|
|
|
linkend="view-pg-file-settings"><function>pg_file_settings</></>
|
|
|
|
to show the source of <acronym>GUC</> values set in configuration
|
|
|
|
files (Sawada Masahiko)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <structname>pending_restart</> to the system view <link
|
|
|
|
linkend="view-pg-settings"><structname>pg_settings</></> to
|
|
|
|
indicate a change is pending a restart (Peter Eisentraut)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow <link linkend="SQL-ALTERSYSTEM"><command>ALTER SYSTEM</></>
|
|
|
|
values to be reset with <command>ALTER SYSTEM RESET</> (Vik
|
|
|
|
Fearing)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This removes the setting from <filename>postgresql.auto.conf</>.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Replication and Recovery</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <link linkend="recovery-config"><filename>recovery.conf</></>
|
|
|
|
parameter <link
|
|
|
|
linkend="recovery-target-action"><varname>recovery_target_action</></>
|
|
|
|
to control post-recovery activity (Petr Jelinek)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
<acronym>GUC</> <varname>pause_at_recovery_target</> was also
|
|
|
|
removed.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <link linkend="guc-archive-mode"><varname>archive_mode</></>
|
|
|
|
<literal>always</> to allow standbys to always archive received
|
|
|
|
<acronym>WAL</> files (Fujii Masao)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <acronym>GUC</> <link
|
|
|
|
linkend="guc-wal-retrieve-retry-interval"><varname>wal_retrieve_retry_interval</></>
|
|
|
|
to control <acronym>WAL</> read retry after failure (Alexey
|
|
|
|
Vasiliev, Michael Paquier)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is particularly helpful for warm standbys.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Archive <acronym>WAL</> files with suffix <literal>.partial</>
|
|
|
|
during standby promotion (Heikki Linnakangas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <acronym>GUC</> <link
|
|
|
|
linkend="guc-log-replication-commands"><varname>log_replication_commands</></>
|
|
|
|
to log replication commands (Fujii Masao)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
By default, replication commands,
|
|
|
|
e.g. <literal>IDENTIFY_COMMAND</>, are not logged, even when
|
|
|
|
<varname>log_statements</> is set to <literal>all</>.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow the <link linkend="pg-replication-origin-create">labeling</>
|
|
|
|
of the origin of logical replication changes (Andres Freund)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This helps with change tracking.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Report the backends holding replication slots in <link
|
|
|
|
linkend="catalog-pg-replication-slots"><structname>pg_replication_slots</></>
|
|
|
|
(Craig Ringer)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The new output column is <structname>active_pid</>.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow <filename>recovery.conf</>'s <link
|
|
|
|
linkend="primary-conninfo"><varname>primary_conninfo</></> to
|
|
|
|
use connection <acronym>URI</>s, e.g. <literal>postgres://</>
|
2015-06-11 06:08:55 +02:00
|
|
|
(Alex Shulgin)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Queries</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow <link linkend="sql-on-conflict"><command>INSERTS</></>
|
|
|
|
that would generate constraint conflicts to be turned into
|
|
|
|
<command>UPDATE</>s or ignored (Peter Geoghegan, Heikki
|
|
|
|
Linnakangas, Andres Freund)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The syntax is <command>INSERT ... ON CONFLICT DO NOTHING/UPDATE</>.
|
|
|
|
This is the Postgres implementation of the popular
|
|
|
|
<command>UPSERT</> command.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <literal>GROUP BY</> analysis functions <link
|
|
|
|
linkend="queries-grouping-sets"><literal>GROUPING SETS</></>,
|
|
|
|
<link linkend="queries-grouping-sets"><literal>CUBE</></> and
|
|
|
|
<link linkend="queries-grouping-sets"><literal>ROLLUP</></>
|
|
|
|
(Andrew Gierth, Atri Sharma)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow multi-column <link
|
|
|
|
linkend="SQL-UPDATE"><command>UPDATE</></>s with a single subselect
|
2015-06-11 06:08:55 +02:00
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is accomplished using the syntax <command>UPDATE tab SET
|
|
|
|
(col1, col2, ...) = (SELECT ...)</>.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add new <link linkend="SQL-SELECT"><command>SELECT</></> option
|
|
|
|
<literal>SKIP LOCKED</> to skip locked rows (Thomas Munro)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This does not throw an error for locked rows like
|
|
|
|
<literal>NOWAIT</> does.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <link linkend="SQL-SELECT"><command>SELECT</></> option
|
|
|
|
<literal>TABLESAMPLE</> to return a subset of a table (Petr
|
|
|
|
Jelinek)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Suggest possible matches for mistyped column names (Peter
|
|
|
|
Geoghegan, Robert Haas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Utility Commands</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add more details about sort ordering in <link
|
|
|
|
linkend="SQL-EXPLAIN"><command>EXPLAIN</></> output (Marius Timmer,
|
|
|
|
Lukas Kreft, Arne Scheffer)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Details include <literal>COLLATE</>, <literal>DESC</>,
|
|
|
|
<literal>USING</>, and <literal>NULLS FIRST</><literal>/LAST</>.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Have <link linkend="SQL-VACUUM"><command>VACUUM</></> log the
|
|
|
|
number of pages skipped due to pins (Jim Nasby)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Have <link linkend="SQL-TRUNCATE"><command>TRUNCATE</></> properly
|
|
|
|
update the <literal>pg_stat</>* tuple counters (Alexander Shulgin)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><xref linkend="SQL-REINDEX"></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow <command>REINDEX</> to reindex an entire schema using the
|
|
|
|
<literal>SCHEMA</> option (Sawada Masahiko)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add <literal>VERBOSE</> option to <command>REINDEX</> (Fujii Masao)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Prevent <command>REINDEX DATABASE</> and <command>SCHEMA</>
|
|
|
|
from outputting object names, unless <literal>VERBOSE</> is used
|
|
|
|
(Simon Riggs)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Remove obsolete <literal>FORCE</> option from <command>REINDEX</>
|
|
|
|
(Fujii Masao)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Object Manipulation</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add row-level security control (Craig Ringer, KaiGai Kohei,
|
|
|
|
Adam Brightwell, Dean Rasheed, Stephen Frost)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This controls viewing and adding/modifying rows via new commands
|
2015-06-12 05:04:46 +02:00
|
|
|
<link linkend="SQL-CREATEPOLICY"><command>CREATE</></>/<link
|
|
|
|
linkend="SQL-ALTERPOLICY"><command>ALTER</></>/<link
|
|
|
|
linkend="SQL-DROPPOLICY"><command>DROP POLICY</></> and <link
|
|
|
|
linkend="SQL-ALTERTABLE"><command>ALTER TABLE ... ENABLE/DISABLE
|
|
|
|
ROW SECURITY</></>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow control of table <acronym>WAL</> logging after table creation
|
|
|
|
with <link linkend="SQL-ALTERTABLE"><command>ALTER TABLE .. SET
|
|
|
|
LOGGED / UNLOGGED</></> (Fabrízio de Royes Mello)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <literal>IF NOT EXISTS</> clause to <link
|
|
|
|
linkend="SQL-CREATETABLEAS"><command>CREATE TABLE AS</></>,
|
|
|
|
<link linkend="SQL-CREATEINDEX"><command>CREATE INDEX</></>,
|
|
|
|
<link linkend="SQL-CREATESEQUENCE"><command>CREATE SEQUENCE</></>,
|
|
|
|
and <link linkend="SQL-CREATEMATERIALIZEDVIEW"><command>CREATE
|
|
|
|
MATERIALIZED VIEW</></> (Fabrízio de Royes Mello)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add support for <literal>IF EXISTS</> to <link
|
|
|
|
linkend="SQL-ALTERTABLE"><command>ALTER TABLE ... RENAME
|
|
|
|
CONSTRAINT</></> (Bruce Momjian)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow <literal>CURRENT</><literal>/SESSION_USER</> to specify the
|
|
|
|
current user in certain (Kyotaro Horiguchi, Álvaro Herrera)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Commands include <link linkend="SQL-ALTERUSER"><command>ALTER
|
|
|
|
USER</></>,
|
|
|
|
<link linkend="SQL-ALTERGROUP"><command>ALTER
|
|
|
|
GROUP</></>, <link linkend="SQL-ALTERROLE"><command>ALTER
|
|
|
|
ROLE</></>, <link linkend="SQL-GRANT"><command>GRANT</></>,
|
|
|
|
and various <command>ALTER OBJECT / OWNER TO</> commands.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow comments on <link linkend="SQL-CREATEDOMAIN">domain
|
|
|
|
constraints</> (Álvaro Herrera)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Reduce lock levels of some create and alter trigger and foreign
|
|
|
|
key commands (Simon Riggs, Andreas Karlsson)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow <link linkend="SQL-LOCK"><command>LOCK TABLE .. ROW EXCLUSIVE
|
|
|
|
MODE</></> for those with <command>INSERT</> privileges (Stephen
|
|
|
|
Frost)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously only <command>UPDATE</>, <command>DELETE</>, and
|
|
|
|
<command>TRUNCATE</> privileges allowed this.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Apply table and domain <literal>CHECK</> constraints in name order
|
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The previous order was indeterminate.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow <link
|
|
|
|
linkend="SQL-CREATEDATABASE"><command>CREATE</></>/<link
|
|
|
|
linkend="SQL-ALTERDATABASE"><command>ALTER DATABASE</></>
|
|
|
|
to manipulate <structname>datistemplate</> and
|
|
|
|
<structname>datallowconn</> (Vik Fearing)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
This allows these database settings to be
|
|
|
|
changed more easily than modifying the <link
|
|
|
|
linkend="catalog-pg-database"><structname>pg_database</></>
|
|
|
|
system table.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Have <link linkend="SQL-CREATETABLEAS"><command>CREATE
|
|
|
|
TABLE AS</></> and <link
|
|
|
|
linkend="SQL-REFRESHMATERIALIZEDVIEW"><command>REFRESH</></>
|
|
|
|
return an <type>OID</> (Álvaro Herrera)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
RETURN WHERE
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><xref linkend="SQL-CREATEFOREIGNDATAWRAPPER"></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add support for <link
|
|
|
|
linkend="SQL-IMPORTFOREIGNSCHEMA"><command>IMPORT FOREIGN
|
|
|
|
SCHEMA</></> (Ronan Dunklau, Michael Paquier, Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows the creation of local foreign tables definitions
|
|
|
|
that match the remote table structure. Currently, only the
|
2015-06-12 05:04:46 +02:00
|
|
|
<link linkend="postgres-fdw"><application>postgres_fdw</></>
|
|
|
|
foreign data wrapper supports this feature.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow foreign tables to participate in inheritance (Shigeru Hanada,
|
|
|
|
Etsuro Fujita)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This also allows foreign tables to mark check constraints as not
|
|
|
|
valid, and to set storage and <type>OID</> characteristics.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow <literal>CHECK</> constraints to be placed on foreign tables
|
|
|
|
(Shigeru Hanada, Etsuro Fujita)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
These checks are assumed to be enforced on the remote server,
|
|
|
|
and are not checked locally. However, they are considered for
|
|
|
|
optimization and constraint-exclusion checking.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow foreign data wrappers and custom scans to implement join
|
|
|
|
pushdown (KaiGai Kohei)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><xref linkend="SQL-CREATEEVENTTRIGGER"></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <link
|
|
|
|
linkend="pg-event-trigger-ddl-command-end-functions"><function>pg_event_trigger_ddl_commands</></>
|
|
|
|
set-returning function, which returns <acronym>DDL</> activity
|
|
|
|
associated with event triggers (Álvaro Herrera)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow event triggers on table rewrites caused by <link
|
|
|
|
linkend="SQL-ALTERTABLE"><command>ALTER TABLE</></> (Dimitri
|
|
|
|
Fontaine)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add event trigger support for database-level <link
|
|
|
|
linkend="SQL-COMMENT"><command>COMMENT</></>, <link
|
|
|
|
linkend="SQL-SECURITY-LABEL"><command>SECURITY LABEL</></>,
|
|
|
|
and <link linkend="SQL-GRANT"><command>GRANT</></>/<link
|
|
|
|
linkend="SQL-REVOKE"><command>REVOKE</></> (Álvaro Herrera)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add columns to the output of <link
|
|
|
|
linkend="pg-event-trigger-sql-drop-functions"><function>pg_event_trigger_dropped_objects</></>
|
|
|
|
(Álvaro Herrera)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows simpler processing of delete operations.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Data Types</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow the <link linkend="datatype-xml"><type>XML</></> data type
|
|
|
|
to accept empty or all-whitespace values (Peter Eisentraut)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is required by the <acronym>SQL</>/<acronym>XML</>
|
|
|
|
specification.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Fix <type>XML</> <link
|
|
|
|
linkend="functions-xml-processing"><function>xpath()</></> handling
|
|
|
|
to return namespace declarations even if the namespace is in a
|
|
|
|
parent element (Ali Akbar)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously the namespace was not returned, leading to invalid
|
|
|
|
<type>XML</>.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow <link linkend="datatype-macaddr"><type>MACADDR</></> input
|
|
|
|
using the format <literal>xxxx-xxxx-xxxx</> (Herwin Weststrate)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Tighten specification of <link
|
|
|
|
linkend="datatype-interval-input"><type>INTERVAL</></> precision
|
|
|
|
specifications (Bruce Momjian)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Only allow interval precision to be specified after the
|
|
|
|
<literal>INTERVAL</> keyword if no units are specified.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add selectivity estimators for <link
|
|
|
|
linkend="datatype-inet"><type>INET</></>/<link
|
|
|
|
linkend="datatype-cidr"><type>CIDR</></> operators and improve
|
|
|
|
estimators for text search functions (Emre Hasegeli, Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><link linkend="datatype-json"><acronym>JSON</></link></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <type>JSONB</> functions <link
|
|
|
|
linkend="functions-json-processing-table"><function>jsonb_set()</></>
|
|
|
|
and <link
|
|
|
|
linkend="functions-json-processing-table"><function>jsonb_pretty</></>
|
|
|
|
(Dmitry Dolgov, Andrew Dunstan)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add several generator functions for <type>JSONB</> that exist
|
|
|
|
for <type>JSON</> (Andrew Dunstan)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
The functions are <link
|
|
|
|
linkend="functions-json-creation-table"><function>to_jsonb()</></>,
|
|
|
|
<link
|
|
|
|
linkend="functions-json-creation-table"><function>jsonb_object()</></>,
|
|
|
|
<link
|
|
|
|
linkend="functions-json-creation-table"><function>jsonb_build_object()</></>,
|
|
|
|
<link
|
|
|
|
linkend="functions-json-creation-table"><function>jsonb_build_array()</></>,
|
|
|
|
<link
|
|
|
|
linkend="functions-aggregate-table"><function>jsonb_agg()</></>,
|
|
|
|
and <link
|
|
|
|
linkend="functions-aggregate-table"><function>jsonb_object_agg()</></>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Reduce casting requirements to/from <link
|
|
|
|
linkend="datatype-json"><type>JSON</></> and <link
|
|
|
|
linkend="datatype-json"><type>JSONB</></> (Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow <type>TEXT</>, <type>TEXT</> array, and <type>INTEGER</>
|
2015-06-12 05:04:46 +02:00
|
|
|
values to be <link linkend="functions-jsonb-op-table">subtracted</>
|
|
|
|
from <type>JSONB</> documents (Dmitry Dolgov, Andrew Dunstan)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <type>JSONB</> <link
|
|
|
|
linkend="functions-jsonb-op-table">operator</> <literal>||</>
|
|
|
|
(Dmitry Dolgov, Andrew Dunstan)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <link
|
|
|
|
linkend="functions-json-processing-table"><function>json_strip_nulls()</></>
|
|
|
|
and <link
|
|
|
|
linkend="functions-json-processing-table"><function>jsonb_strip_nulls()</></>
|
|
|
|
functions to remove <type>JSON</> null values from documents
|
|
|
|
(Andrew Dunstan)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Functions</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <link linkend="functions-srf"><function>generate_series()</></>
|
|
|
|
for <type>NUMERIC</> values (Plato Malugin)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow <link
|
|
|
|
linkend="functions-aggregate-table"><function>array_agg()</></> and
|
|
|
|
<function>ARRAY()</> to take arrays as inputs (Ali Akbar, Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add functions <link
|
|
|
|
linkend="array-functions-table"><function>array_position()</></>
|
|
|
|
and <link
|
|
|
|
linkend="array-functions-table"><function>array_positions()</></>
|
|
|
|
to return subscripts of array values (Pavel Stehule)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <link
|
|
|
|
linkend="gist-builtin-opclasses-table"><type>point</>-to-<type>polygon</></>
|
|
|
|
distance operator (<->) (Alexander Korotkov)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow multi-byte characters as escape in <link
|
|
|
|
linkend="functions-similarto-regexp"><literal>SIMILAR TO</></>
|
|
|
|
and <link linkend="functions-string-sql"><literal>SUBSTRING</></>
|
|
|
|
(Jeff Davis)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously, only a single-byte character was allowed as an escape.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <link
|
|
|
|
linkend="functions-math-func-table"><function>width_bucket()</></>
|
|
|
|
which supports any sortable data type and non-uniform bucket widths
|
|
|
|
(Petr Jelinek)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow <link linkend="sql-syntax-calling-funcs"><literal>=></></>
|
|
|
|
to specify named parameters in function calls (Pavel Stehule)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
User-defined <literal>=></> operators have been issuing
|
|
|
|
warnings since Postgres 9.0, and were removed in hstore in 9.2.
|
|
|
|
Previously only <literal>:=</> could be used.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add <acronym>POSIX</>-compliant rounding for platforms that use
|
|
|
|
Postgres-supplied rounding functions (Pedro Gimeno Fortea)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>System Information Functions and Views</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add function <link
|
|
|
|
linkend="functions-info-object-table"><function>pg_get_object_address()</></>
|
|
|
|
to return <type>OID</>s that uniquely identify an object
|
|
|
|
(Álvaro Herrera)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add function <link
|
|
|
|
linkend="functions-info-object-table"><function>pg_identify_object_as_address()</></>
|
|
|
|
to return object information based on <type>OID</>s (Álvaro
|
|
|
|
Herrera)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Loosen security checks for viewing <link
|
|
|
|
linkend="pg-stat-activity-view"><structname>pg_stat_activity</></>,
|
|
|
|
<link
|
|
|
|
linkend="functions-admin-signal-table"><function>pg_cancel_backend()</></>,
|
|
|
|
and <link
|
|
|
|
linkend="functions-admin-signal-table"><function>pg_terminate_backend</></>
|
|
|
|
(Stephen Frost)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Now, role membership is sufficient; previously only the same
|
|
|
|
role could perform such operations.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <link
|
|
|
|
linkend="monitoring-stats-funcs-table"><function>pg_stat_get_snapshot_timestamp()</></>
|
|
|
|
to output the timestamp of the statistics snapshot (Matt Kelly)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-11 16:58:38 +02:00
|
|
|
This represents the last time the snapshot files was written to
|
|
|
|
the file system.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <link
|
|
|
|
linkend="vacuum-for-multixact-wraparound"><function>mxid_age()</></>
|
|
|
|
to compute multi-xid age (Bruce Momjian)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add data type <link
|
|
|
|
linkend="datatype-oid-table"><type>regrole</></> that returns
|
|
|
|
the <type>OID</> of a role (Kyotaro Horiguchi)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add data type <link
|
|
|
|
linkend="datatype-oid-table"><type>regnamespace</></> that returns
|
|
|
|
the <type>OID</> of a schema (Kyotaro Horiguchi)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Aggregates</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <function>MIN()</>/<function>MAX()</> aggregates
|
|
|
|
for <link linkend="datatype-inet"><type>INET</></>/<link
|
|
|
|
linkend="datatype-cidr"><type>CIDR</></> data types (Haribabu
|
|
|
|
Kommi)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Use 128-bit integers, where supported, as aggregate accumulators
|
|
|
|
(Andreas Karlsson)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Server-Side Languages</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Improve support for composite types in <link
|
|
|
|
linkend="plpython"><application>PL/Python</></> (Ed Behn, Ronan
|
|
|
|
Dunklau)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows <application>PL/Python</> functions to return arrays
|
|
|
|
of composite types.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Reduce lossiness of <link
|
|
|
|
linkend="plpython"><application>PL/Python</></> floating value
|
2015-06-11 06:08:55 +02:00
|
|
|
conversions (Marko Kreen)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add specification of conversion routines to/from <acronym>SQL</>
|
|
|
|
data types to procedural languages data types (Peter Eisentraut)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
This adds new commands <link
|
|
|
|
linkend="SQL-CREATETRANSFORM"><command>CREATE</></>/<link
|
|
|
|
linkend="SQL-DROPTRANSFORM"><command>DROP TRANSFORM</></>.
|
|
|
|
This also adds transformations between <link
|
|
|
|
linkend="hstore"><application>hstore</></> and <link
|
|
|
|
linkend="ltree"><application>ltree</></> to/from <link
|
|
|
|
linkend="plperl"><application>PL/Perl</></> and <link
|
|
|
|
linkend="plpython"><application>PL/Python</></>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Improve <link linkend="plpgsql"><application>PL/pgSQL</></> array
|
|
|
|
performance (Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <link linkend="plpgsql-statements-assert"><command>ASSERT</></>
|
|
|
|
statement in <application>PL/pgSQL</> (Pavel Stehule)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow more <link linkend="plpgsql"><application>PL/pgSQL</></>
|
|
|
|
keywords to be used as identifiers (Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Client Applications</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Move <link
|
|
|
|
linkend="pgarchivecleanup"><application>pg_archivecleanup</></>,
|
|
|
|
<link linkend="pgtestfsync"><application>pg_test_fsync</></>,
|
|
|
|
<link linkend="pgtesttiming"><application>pg_test_timing</></>,
|
|
|
|
and <link linkend="pgxlogdump"><application>pg_xlogdump</></>
|
|
|
|
from <filename>contrib</> to <filename>src/bin</> (Peter Eisentraut)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow <link
|
|
|
|
linkend="app-pgreceivexlog"><application>pg_receivexlog</></>
|
|
|
|
to manage physical replication slots (Michael Paquier)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is controlled via new <option>--create-slot</> and
|
|
|
|
<option>--drop-slot</> options.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow the <link
|
|
|
|
linkend="app-pgreceivexlog"><application>pg_receivexlog</></>
|
|
|
|
to synchronously flush <acronym>WAL</> to storage using
|
|
|
|
<option>--synchronous</> (Furuya Osamu, Fujii Masao)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Without this, <acronym>WAL</> files are fsynced only on close.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow <link linkend="APP-VACUUMDB"><command>vacuumdb</></> to
|
|
|
|
vacuum in parallel using <option>--jobs</> (Dilip Kumar)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <option>--verbose</> option to <link
|
|
|
|
linkend="APP-REINDEXDB"><application>reindexdb</></> (Sawada
|
|
|
|
Masahiko)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Have <link
|
|
|
|
linkend="app-pgbasebackup"><application>pg_basebackup</></> use
|
|
|
|
a tablespace mapping file with the <application>tar</> format,
|
|
|
|
to handle file paths of 100+ characters in length and sybolic
|
|
|
|
links on <systemitem class="osname">MS Windows</> (Amit Kapila)
|
2015-06-11 16:51:18 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This change prevents <application>pg_basebackup</> from backing
|
|
|
|
up pre-9.5 servers.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><xref linkend="APP-PSQL"></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow <application>psql</> to produce AsciiDoc output (Szymon Guz)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add <literal>errors</> mode to <application>psql</>'s
|
|
|
|
<varname>ECHO</> variable to display only failed commands
|
|
|
|
(Pavel Stehule)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This can also be enabled with the <application>psql</>
|
|
|
|
<option>-b</> option.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow column, header, and border control to <application>psql</>'s
|
|
|
|
Unicode style (Pavel Stehule)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Single or double output is supported; the default is
|
|
|
|
<literal>single</>.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <application>psql</> <link
|
|
|
|
linkend="APP-PSQL-variables"><envar>PROMPT</></> variables option
|
2015-06-11 06:08:55 +02:00
|
|
|
(<literal>%l</>) to display the multi-line statement line number
|
|
|
|
(Sawada Masahiko)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <application>psql</> setting <link
|
|
|
|
linkend="APP-PSQL-meta-commands"><varname>pager_min_lines</></>
|
2015-06-11 06:08:55 +02:00
|
|
|
setting to control pager invocation (Andrew Dunstan)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Improve <application>psql</> line counting used when deciding
|
|
|
|
to invoke the pager (Andrew Dunstan)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add <application>psql</> tab completion when setting the
|
|
|
|
<varname>search_path</> variable (Jeff Janes)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Currently only the first schema can be tab-completed.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Improve <application>psql</> tab-completion for triggers and rules
|
|
|
|
(Andreas Karlsson)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect5>
|
|
|
|
<title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add <application>psql</> <command>\?</> help sections
|
|
|
|
<literal>variables</> and <literal>options</> (Pavel Stehule)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
<literal>variables</> outputs <application>psql</> variables
|
|
|
|
and <literal>options</> shows command-line options.
|
|
|
|
<command>\? commands</> is the default output. This help
|
|
|
|
information can also be output via <literal>--help=section</>.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Show tablespace size in <application>psql</>'s <literal>\db+</>
|
|
|
|
(Fabrízio de Royes Mello)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Show data type owners in <application>psql</>'s <literal>\dT+</>
|
|
|
|
(Magnus Hagander)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow <application>psql</> <command>\watch</> to output
|
|
|
|
<command>\timing</> information (Fujii Masao)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Also prevent <option>--echo-hidden</> from echoing
|
|
|
|
<command>\watch</> queries.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow <application>psql</>'s <literal>\sf</> and <literal>\ef</>
|
|
|
|
to honor <envar>ECHO_HIDDEN</> (Andrew Dunstan)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Improve <application>psql</> tab completion for <command>\set</>,
|
|
|
|
<command>\unset</>, and <literal>:variable</> names (Pavel
|
|
|
|
Stehule)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow tab completion of <application>psql</> <literal>\c</>
|
|
|
|
role names (Ian Barwick)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect5>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><xref linkend="APP-PGDUMP"></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow <application>pg_dump</> to share a snapshot taken by another
|
|
|
|
session using <option>--snapshot</> (Simon Riggs, Michael Paquier)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The remote snapshot must have been exported by
|
2015-06-11 17:11:43 +02:00
|
|
|
<function>pg_export_snapshot()</> or been defined when creating
|
|
|
|
a logical replication slot. This can be used by parallel
|
2015-06-11 06:08:55 +02:00
|
|
|
<application>pg_dump</> to use a consistent snapshot across
|
|
|
|
<application>pg_dump</> processes.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Always have <application>pg_dump</> print server and
|
|
|
|
<application>pg_dump</> versions (Jing Wang)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously, version information was only printed in
|
|
|
|
<option>--verbose</> mode.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><xref linkend="app-pg-ctl"></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Change <application>pg_ctl</> default shutdown mode from
|
|
|
|
<literal>smart</> to <literal>fast</> (Bruce Momjian)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow multiple <application>pg_ctl</> <option>-o</> options to
|
|
|
|
be appended (Bruce Momjian)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow control of <application>pg_ctl</>'s event source logging
|
|
|
|
on <systemitem class="osname">MS Windows</> (MauMau)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This only controls <application>pg_ctl</>, not the server, which
|
|
|
|
has separate settings in <filename>postgresql.conf</>.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><xref linkend="pgupgrade"></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Move <application>pg_upgrade</> from <filename>contrib</> to
|
|
|
|
<filename>src/bin</> (Peter Eisentraut)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow multiple <application>pg_upgrade</>
|
|
|
|
<option>-o</>/<option>-O</> options to be appended (Bruce Momjian)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Improve database collation comparisons in
|
|
|
|
<application>pg_upgrade</> (Heikki Linnakangas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Document the use of <application>rsync</> for standby server
|
|
|
|
upgrades using <application>pg_upgrade</> (Stephen Frost,
|
|
|
|
Bruce Momjian)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Remove <application>pg_upgrade</> support for 8.3 old clusters
|
|
|
|
(Bruce Momjian)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Source Code</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Simplify <link linkend="wal"><acronym>WAL</></> record format
|
|
|
|
(Heikki Linnakangas)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-11 17:11:43 +02:00
|
|
|
This allows external tools to more easily track what blocks
|
|
|
|
are modified.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add basic atomics <acronym>API</> support (Andres Freund, Oskari
|
|
|
|
Saarenmaa)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add native compiler and memory barriers for <productname>Solaris
|
|
|
|
Studio</> (Oskari Saarenmaa)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
IS THIS PART OF ATOMICS?
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow custom path and scan methods (KaiGai Kohei, Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows extensions greater control over the optimizer and
|
|
|
|
executor.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow foreign data wrappers to do post-filter locking (Etsuro
|
|
|
|
Fujita)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-13 04:16:08 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Improve dynahash capabilities (Teodor Sigaev, Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-11 06:08:55 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Improve parallel execution infrastructure (Robert Haas, Amit
|
|
|
|
Kapila, Noah Misch, Rushabh Lathia, Jeevan Chalke)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Remove <productname>Alpha</> (<acronym>CPU</>) and <systemitem
|
|
|
|
class="osname">Tru64</> (OS) ports (Andres Freund)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Remove swap-byte-based spinlock implementation for
|
|
|
|
<acronym>ARM</>v5 and earlier <acronym>CPU</>s (Robert Haas)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
<acronym>ARM</>v5's weak memory ordering made this locking
|
|
|
|
implementation unsafe. Spinlock support is still possible on
|
|
|
|
newer gcc implementations with atomics support.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Generate an error when excessively long (100+ character) file
|
|
|
|
paths are written to tar files (Peter Eisentraut)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Tar does not support such overly-long paths.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Change columns <link
|
|
|
|
linkend="catalog-pg-seclabel"><structname>pg_seclabel</></>.<structname>provider</>
|
|
|
|
and <link
|
|
|
|
linkend="catalog-pg-seclabel"><structname>pg_shseclabel</></>.<structname>provider</>
|
|
|
|
to <type>TEXT</> (Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This allows these columns to store 64+ characters.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>MS Windows</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow higher-precision timestamp resolution on <systemitem
|
|
|
|
class="osname">Windows 8</> or <systemitem class="osname">Windows
|
|
|
|
Server 2012</> and later Windows systems (Craig Ringer)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Install shared libraries to <filename>bin</> in <systemitem
|
|
|
|
class="osname">MS Windows</> (Peter Eisentraut, Michael Paquier)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Install <filename>src/test/modules</> together with
|
|
|
|
<filename>contrib</> on <productname>MSVC</> builds (Michael
|
|
|
|
Paquier)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow <link linkend="install-procedure">configure's
|
|
|
|
<option>--with-extra-version</></> to be honored by the
|
|
|
|
<productname>MSVC</> build (Michael Paquier)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Pass <envar>PGFILEDESC</> into <productname>MSVC</> contrib builds
|
|
|
|
(Michael Paquier)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-11 17:11:43 +02:00
|
|
|
Add icons to all <productname>MSVC</>-built binaries and version
|
|
|
|
information to all <systemitem class="osname">MS Windows</>
|
|
|
|
binaries (Noah Misch)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
MinGW already had such icons.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add optional-argument support to the internal
|
|
|
|
<function>getopt_long()</> implementation (Michael Paquier,
|
|
|
|
Andres Freund)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is used by the <productname>MSVC</> build.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Additional Modules</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <link linkend="app-pgrewind"><application>pg_rewind</></>,
|
|
|
|
which allows re-synchronizing a master server after failback
|
|
|
|
(Heikki Linnakangas)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add statistics for minimum, maximum,
|
|
|
|
mean, and standard deviation times to <link
|
|
|
|
linkend="pgstatstatements-columns"><application>pg_stat_statements</></>
|
|
|
|
(Mitsumasa Kondo, Andrew Dunstan)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <link linkend="pgcrypto"><application>pgcrypto</></> function
|
2015-06-11 06:08:55 +02:00
|
|
|
<function>pgp_armor_headers()</> to extract <productname>PGP</>
|
|
|
|
armor headers (Marko Tiikkaja, Heikki Linnakangas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow empty replacement strings in <link
|
|
|
|
linkend="unaccent"><application>unaccent</></> (Mohammad Alhashash)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is useful in languages where diacritic signs are represented
|
|
|
|
as separate characters.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow multi-character source strings in <link
|
|
|
|
linkend="unaccent"><application>unaccent</></> (Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This could be useful in languages where diacritic signs are
|
|
|
|
represented as separate characters. It also allows more complex
|
|
|
|
unaccent dictionaries.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <filename>contrib</> modules <link
|
|
|
|
linkend="tsm-system-rows"><application>tsm_system_rows</></> and
|
|
|
|
<link linkend="tsm-system-time"><application>tsm_system_time</></>
|
|
|
|
to allow additional table sampling methods (Petr Jelinek)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add <link linkend="pgxlogdump"><application>pg_xlogdump</></> option
|
|
|
|
<option>--stats</> to display summary statistics (Abhijit Menon-Sen)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow <link linkend="GIN"><acronym>GIN</></>
|
|
|
|
index inspection functions to <link
|
|
|
|
linkend="pageinspect"><application>pageinspect</></> (Heikki
|
|
|
|
Linnakangas, Peter Geoghegan, Michael Paquier)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-11 17:13:49 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Add information about buffer pins to <link
|
|
|
|
linkend="pgbuffercache"><application>pg_buffercache</></> display
|
|
|
|
(Andres Freund)
|
2015-06-11 17:13:49 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-11 06:08:55 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-12 05:04:46 +02:00
|
|
|
Allow <link linkend="pgstattuple"><application>pgstattuple</></>
|
|
|
|
to report approximate answers with less overhead using
|
|
|
|
<function>pgstattuple_approx()</> (Abhijit Menon-Sen)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Move <application>pg_upgrade_support</> code into backend and
|
|
|
|
remove the module (Peter Eisentraut)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Move <application>dummy_seclabel</>, <application>test_shm_mq</>,
|
|
|
|
<application>test_parser</>, and <application>worker_spi</>
|
|
|
|
from <filename>contrib</> to <filename>src/test/modules</>
|
|
|
|
(Álvaro Herrera)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title><xref linkend="pgbench"></title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Move pgbench from <filename>contrib</> to <filename>src/bin</>
|
|
|
|
(Peter Eisentraut)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow counting of pgbench transactions that take over a specified
|
|
|
|
amount of time (Fabien Coelho)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is controlled by new <option>--latency-limit</> option.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow pgbench to generate Gaussian/exponential distributions
|
|
|
|
using <command>\setrandom</> (Kondo Mitsumasa, Fabien Coelho)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Allow <application>pgbench</>'s <command>\set</> command to handle
|
|
|
|
multi-operator expressions (Robert Haas, Fabien Coelho)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
</sect1>
|