2015-06-14 03:41:34 +02:00
|
|
|
<!-- doc/src/sgml/release-9.5.sgml -->
|
2015-06-11 06:08:55 +02:00
|
|
|
<!-- See header comment in release.sgml about typical markup -->
|
|
|
|
|
|
|
|
<sect1 id="release-9-5">
|
|
|
|
<title>Release 9.5</title>
|
|
|
|
|
|
|
|
<note>
|
|
|
|
<title>Release Date</title>
|
Improve design and implementation of pg_file_settings view.
As first committed, this view reported on the file contents as they were
at the last SIGHUP event. That's not as useful as reporting on the current
contents, and what's more, it didn't work right on Windows unless the
current session had serviced at least one SIGHUP. Therefore, arrange to
re-read the files when pg_show_all_settings() is called. This requires
only minor refactoring so that we can pass changeVal = false to
set_config_option() so that it won't actually apply any changes locally.
In addition, add error reporting so that errors that would prevent the
configuration files from being loaded, or would prevent individual settings
from being applied, are visible directly in the view. This makes the view
usable for pre-testing whether edits made in the config files will have the
desired effect, before one actually issues a SIGHUP.
I also added an "applied" column so that it's easy to identify entries that
are superseded by later entries; this was the main use-case for the original
design, but it seemed unnecessarily hard to use for that.
Also fix a 9.4.1 regression that allowed multiple entries for a
PGC_POSTMASTER variable to cause bogus complaints in the postmaster log.
(The issue here was that commit bf007a27acd7b2fb unintentionally reverted
3e3f65973a3c94a6, which suppressed any duplicate entries within
ParseConfigFp. However, since the original coding of the pg_file_settings
view depended on such suppression *not* happening, we couldn't have fixed
this issue now without first doing something with pg_file_settings.
Now we suppress duplicates by marking them "ignored" within
ProcessConfigFileInternal, which doesn't hide them in the view.)
Lesser changes include:
Drive the view directly off the ConfigVariable list, instead of making a
basically-equivalent second copy of the data. There's no longer any need
to hang onto the data permanently, anyway.
Convert show_all_file_settings() to do its work in one call and return a
tuplestore; this avoids risks associated with assuming that the GUC state
will hold still over the course of query execution. (I think there were
probably latent bugs here, though you might need something like a cursor
on the view to expose them.)
Arrange to run SIGHUP processing in a short-lived memory context, to
forestall process-lifespan memory leaks. (There is one known leak in this
code, in ProcessConfigDirectory; it seems minor enough to not be worth
back-patching a specific fix for.)
Remove mistaken assignment to ConfigFileLineno that caused line counting
after an include_dir directive to be completely wrong.
Add missed failure check in AlterSystemSetConfigFile(). We don't really
expect ParseConfigFp() to fail, but that's not an excuse for not checking.
2015-06-29 00:06:14 +02:00
|
|
|
<simpara>2015-??-??</simpara>
|
|
|
|
<simpara>Current as of 2015-06-01</simpara>
|
2015-06-11 06:08:55 +02:00
|
|
|
</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>
|
Improve design and implementation of pg_file_settings view.
As first committed, this view reported on the file contents as they were
at the last SIGHUP event. That's not as useful as reporting on the current
contents, and what's more, it didn't work right on Windows unless the
current session had serviced at least one SIGHUP. Therefore, arrange to
re-read the files when pg_show_all_settings() is called. This requires
only minor refactoring so that we can pass changeVal = false to
set_config_option() so that it won't actually apply any changes locally.
In addition, add error reporting so that errors that would prevent the
configuration files from being loaded, or would prevent individual settings
from being applied, are visible directly in the view. This makes the view
usable for pre-testing whether edits made in the config files will have the
desired effect, before one actually issues a SIGHUP.
I also added an "applied" column so that it's easy to identify entries that
are superseded by later entries; this was the main use-case for the original
design, but it seemed unnecessarily hard to use for that.
Also fix a 9.4.1 regression that allowed multiple entries for a
PGC_POSTMASTER variable to cause bogus complaints in the postmaster log.
(The issue here was that commit bf007a27acd7b2fb unintentionally reverted
3e3f65973a3c94a6, which suppressed any duplicate entries within
ParseConfigFp. However, since the original coding of the pg_file_settings
view depended on such suppression *not* happening, we couldn't have fixed
this issue now without first doing something with pg_file_settings.
Now we suppress duplicates by marking them "ignored" within
ProcessConfigFileInternal, which doesn't hide them in the view.)
Lesser changes include:
Drive the view directly off the ConfigVariable list, instead of making a
basically-equivalent second copy of the data. There's no longer any need
to hang onto the data permanently, anyway.
Convert show_all_file_settings() to do its work in one call and return a
tuplestore; this avoids risks associated with assuming that the GUC state
will hold still over the course of query execution. (I think there were
probably latent bugs here, though you might need something like a cursor
on the view to expose them.)
Arrange to run SIGHUP processing in a short-lived memory context, to
forestall process-lifespan memory leaks. (There is one known leak in this
code, in ProcessConfigDirectory; it seems minor enough to not be worth
back-patching a specific fix for.)
Remove mistaken assignment to ConfigFileLineno that caused line counting
after an include_dir directive to be completely wrong.
Add missed failure check in AlterSystemSetConfigFile(). We don't really
expect ParseConfigFp() to fail, but that's not an excuse for not checking.
2015-06-29 00:06:14 +02:00
|
|
|
... to be filled in ...
|
2015-06-11 06:08:55 +02:00
|
|
|
</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>
|
2015-06-13 04:23:40 +02:00
|
|
|
Improve the speed of sorting character and numeric fields (Peter
|
2015-06-13 04:25:30 +02:00
|
|
|
Geoghegan, Andrew Gierth, Robert Haas)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-26 20:48:52 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-26 22:04:46 +02:00
|
|
|
Extend the infrastructure that allows sorting to be performed by
|
|
|
|
inlined, non-<acronym>SQL</acronym>-callable comparison functions to
|
|
|
|
cover <command>CREATE INDEX</>, <command>REINDEX</>, and
|
2015-06-26 20:48:52 +02:00
|
|
|
<command>CLUSTER</> (Peter Geoghegan)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-11 06:08:55 +02:00
|
|
|
<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</></>
|
2015-06-14 03:00:30 +02:00
|
|
|
is enabled (Álvaro Herrera, Petr Jelínek)
|
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>
|
Improve design and implementation of pg_file_settings view.
As first committed, this view reported on the file contents as they were
at the last SIGHUP event. That's not as useful as reporting on the current
contents, and what's more, it didn't work right on Windows unless the
current session had serviced at least one SIGHUP. Therefore, arrange to
re-read the files when pg_show_all_settings() is called. This requires
only minor refactoring so that we can pass changeVal = false to
set_config_option() so that it won't actually apply any changes locally.
In addition, add error reporting so that errors that would prevent the
configuration files from being loaded, or would prevent individual settings
from being applied, are visible directly in the view. This makes the view
usable for pre-testing whether edits made in the config files will have the
desired effect, before one actually issues a SIGHUP.
I also added an "applied" column so that it's easy to identify entries that
are superseded by later entries; this was the main use-case for the original
design, but it seemed unnecessarily hard to use for that.
Also fix a 9.4.1 regression that allowed multiple entries for a
PGC_POSTMASTER variable to cause bogus complaints in the postmaster log.
(The issue here was that commit bf007a27acd7b2fb unintentionally reverted
3e3f65973a3c94a6, which suppressed any duplicate entries within
ParseConfigFp. However, since the original coding of the pg_file_settings
view depended on such suppression *not* happening, we couldn't have fixed
this issue now without first doing something with pg_file_settings.
Now we suppress duplicates by marking them "ignored" within
ProcessConfigFileInternal, which doesn't hide them in the view.)
Lesser changes include:
Drive the view directly off the ConfigVariable list, instead of making a
basically-equivalent second copy of the data. There's no longer any need
to hang onto the data permanently, anyway.
Convert show_all_file_settings() to do its work in one call and return a
tuplestore; this avoids risks associated with assuming that the GUC state
will hold still over the course of query execution. (I think there were
probably latent bugs here, though you might need something like a cursor
on the view to expose them.)
Arrange to run SIGHUP processing in a short-lived memory context, to
forestall process-lifespan memory leaks. (There is one known leak in this
code, in ProcessConfigDirectory; it seems minor enough to not be worth
back-patching a specific fix for.)
Remove mistaken assignment to ConfigFileLineno that caused line counting
after an include_dir directive to be completely wrong.
Add missed failure check in AlterSystemSetConfigFile(). We don't really
expect ParseConfigFp() to fail, but that's not an excuse for not checking.
2015-06-29 00:06:14 +02:00
|
|
|
Add system view <link
|
|
|
|
linkend="view-pg-file-settings"><structname>pg_file_settings</></>
|
|
|
|
to show the contents of the server's 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>
|
Improve design and implementation of pg_file_settings view.
As first committed, this view reported on the file contents as they were
at the last SIGHUP event. That's not as useful as reporting on the current
contents, and what's more, it didn't work right on Windows unless the
current session had serviced at least one SIGHUP. Therefore, arrange to
re-read the files when pg_show_all_settings() is called. This requires
only minor refactoring so that we can pass changeVal = false to
set_config_option() so that it won't actually apply any changes locally.
In addition, add error reporting so that errors that would prevent the
configuration files from being loaded, or would prevent individual settings
from being applied, are visible directly in the view. This makes the view
usable for pre-testing whether edits made in the config files will have the
desired effect, before one actually issues a SIGHUP.
I also added an "applied" column so that it's easy to identify entries that
are superseded by later entries; this was the main use-case for the original
design, but it seemed unnecessarily hard to use for that.
Also fix a 9.4.1 regression that allowed multiple entries for a
PGC_POSTMASTER variable to cause bogus complaints in the postmaster log.
(The issue here was that commit bf007a27acd7b2fb unintentionally reverted
3e3f65973a3c94a6, which suppressed any duplicate entries within
ParseConfigFp. However, since the original coding of the pg_file_settings
view depended on such suppression *not* happening, we couldn't have fixed
this issue now without first doing something with pg_file_settings.
Now we suppress duplicates by marking them "ignored" within
ProcessConfigFileInternal, which doesn't hide them in the view.)
Lesser changes include:
Drive the view directly off the ConfigVariable list, instead of making a
basically-equivalent second copy of the data. There's no longer any need
to hang onto the data permanently, anyway.
Convert show_all_file_settings() to do its work in one call and return a
tuplestore; this avoids risks associated with assuming that the GUC state
will hold still over the course of query execution. (I think there were
probably latent bugs here, though you might need something like a cursor
on the view to expose them.)
Arrange to run SIGHUP processing in a short-lived memory context, to
forestall process-lifespan memory leaks. (There is one known leak in this
code, in ProcessConfigDirectory; it seems minor enough to not be worth
back-patching a specific fix for.)
Remove mistaken assignment to ConfigFileLineno that caused line counting
after an include_dir directive to be completely wrong.
Add missed failure check in AlterSystemSetConfigFile(). We don't really
expect ParseConfigFp() to fail, but that's not an excuse for not checking.
2015-06-29 00:06:14 +02:00
|
|
|
This command removes the setting from <filename>postgresql.auto.conf</>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</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</></>
|
2015-06-14 19:41:37 +02:00
|
|
|
to control post-recovery activity (Petr Jelínek)
|
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>
|
2015-06-13 04:31:17 +02:00
|
|
|
By default, replication commands, e.g. <link
|
|
|
|
linkend="protocol-replication"><literal>IDENTIFY_SYSTEM</></>,
|
|
|
|
are not logged, even when <link
|
|
|
|
linkend="guc-log-statement"><varname>log_statement</></> is set
|
|
|
|
to <literal>all</>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</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-14 03:10:48 +02:00
|
|
|
(Alexander Shulgin)
|
2015-06-11 06:08:55 +02:00
|
|
|
</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
|
2015-06-14 19:41:37 +02:00
|
|
|
Jelínek)
|
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>
|
2015-06-13 04:31:17 +02:00
|
|
|
Add <literal>VERBOSE</> option to <command>REINDEX</> (Sawada
|
|
|
|
Masahiko)
|
2015-06-11 06:08:55 +02:00
|
|
|
</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
|
2015-06-14 03:07:24 +02:00
|
|
|
current user in some commands (Kyotaro Horiguchi, Álvaro
|
|
|
|
Herrera)
|
2015-06-11 06:08:55 +02:00
|
|
|
</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>
|
|
|
|
|
|
|
|
</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</></>
|
2015-06-14 03:00:30 +02:00
|
|
|
(Dmitry Dolgov, Andrew Dunstan, Petr Jelínek)
|
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
|
2015-06-14 03:00:30 +02:00
|
|
|
(Petr Jelínek)
|
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>
|
2015-06-11 06:08:55 +02:00
|
|
|
</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>
|
2015-06-26 20:20:29 +02:00
|
|
|
|
|
|
|
<para>
|
|
|
|
In connection with this change, the functionality previously
|
|
|
|
provided by the <application>pg_upgrade_support</> module has been
|
|
|
|
moved into the core server.
|
|
|
|
</para>
|
2015-06-11 06:08:55 +02:00
|
|
|
</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>
|
2015-06-14 03:07:24 +02:00
|
|
|
Remove support for upgrading from 8.3 clusters (Bruce Momjian)
|
2015-06-11 06:08:55 +02:00
|
|
|
</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</></>
|
2015-06-14 03:00:30 +02:00
|
|
|
to allow additional table sampling methods (Petr Jelínek)
|
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>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>
|