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-29 21:38:46 +02:00
|
|
|
Adjust <link linkend="sql-precedence">operator precedence</>
|
2015-06-12 05:04:46 +02:00
|
|
|
to match the <acronym>SQL</> standard (Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
The precedence of <literal><=</literal>, <literal>>=</literal>
|
|
|
|
and <literal><></literal> has been reduced to match that of
|
|
|
|
<literal><</literal>, <literal>></literal>
|
|
|
|
and <literal>=</literal>. The precedence of <literal>IS</> tests
|
|
|
|
(e.g., <replaceable>x</> <literal>IS NULL</>) has been reduced to be
|
|
|
|
just below these six comparison operators.
|
|
|
|
Also, multi-keyword operators beginning with <literal>NOT</> now have
|
|
|
|
the precedence of their base operator (for example, <literal>NOT
|
|
|
|
BETWEEN</> now has the same precedence as <literal>BETWEEN</>) whereas
|
|
|
|
before they had inconsistent precedence, behaving like <literal>NOT</>
|
|
|
|
with respect to their left operand but like their base operator with
|
|
|
|
respect to their right operand. The new configuration
|
|
|
|
parameter <xref linkend="guc-operator-precedence-warning"> can be
|
|
|
|
enabled to warn about queries in which these precedence changes result
|
|
|
|
in different parsing choices.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Use assignment cast behavior for data type conversions
|
|
|
|
in <application>PL/pgSQL</> assignments, rather than converting to and
|
|
|
|
from text (Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
This change causes conversions of booleans to strings to
|
|
|
|
produce <literal>true</> or <literal>false</>, not <literal>t</>
|
|
|
|
or <literal>f</>. Other type conversions may succeed in more cases
|
|
|
|
than before; for example, assigning a numeric value <literal>3.9</> to
|
|
|
|
an integer variable will now assign 4 rather than failing. If no
|
|
|
|
assignment-grade cast is defined for the particular source and
|
|
|
|
destination types, <application>PL/pgSQL</> will fall back to its old
|
|
|
|
I/O conversion behavior.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Allow characters in <link linkend="libpq-connect-options">server
|
|
|
|
command-line options</> to be escaped with a backslash (Andres Freund)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Formerly, spaces in the options string always separated options, so
|
|
|
|
there was no way to include a space in an option value. Including
|
|
|
|
a backslash in an option value now requires writing <literal>\\</>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Change the default value of <link
|
|
|
|
linkend="gssapi-auth"><varname>include_realm</></> to 1, so that
|
|
|
|
by default the realm is not removed from a <acronym>GSS</>
|
|
|
|
or <acronym>SSPI</> principal name (Stephen Frost)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Fix <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN OWNED</></>
|
|
|
|
and <link linkend="SQL-ALTERTYPE"><command>ALTER OWNER TO</></>
|
|
|
|
to properly update permissions lists (ACLs) when changing ownership of
|
|
|
|
types, foreign data wrappers, and foreign servers (Bruce Momjian)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Remove server configuration parameter <varname>autocommit</>, which
|
2015-06-11 06:08:55 +02:00
|
|
|
was already deprecated and non-operational (Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Remove <link linkend="catalog-pg-authid"><structname>pg_authid</></>'s
|
|
|
|
<structfield>rolcatupdate</> field, as it had no value (Adam Brightwell)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2>
|
|
|
|
<title>Changes</title>
|
|
|
|
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Below you will find a detailed account of the changes between
|
2015-06-11 06:08:55 +02:00
|
|
|
<productname>PostgreSQL</productname> 9.5 and the previous major
|
2015-06-29 21:38:46 +02:00
|
|
|
release.
|
2015-06-11 06:08:55 +02:00
|
|
|
</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-29 21:38:46 +02:00
|
|
|
Add configuration parameter <xref linkend="guc-gin-pending-list-limit">
|
2015-06-12 05:04:46 +02:00
|
|
|
to control the size of <acronym>GIN</> pending lists (Fujii Masao)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Previously the list size was controlled
|
|
|
|
by <xref linkend="guc-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
|
2015-06-29 21:38:46 +02:00
|
|
|
linkend="indexes-types">hash</> indexes because they are not
|
2015-06-12 05:04:46 +02:00
|
|
|
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-29 21:38:46 +02:00
|
|
|
Improve concurrency of 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>
|
|
|
|
</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-29 21:38:46 +02:00
|
|
|
Add new configuration parameter <xref linkend="guc-cluster-name">
|
|
|
|
(Thomas Munro)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
This string, typically set in <link
|
2015-06-12 05:04:46 +02:00
|
|
|
linkend="config-setting-configuration-file"><filename>postgresql.conf</></>,
|
2015-06-29 21:38:46 +02:00
|
|
|
allows clients to identify the cluster. This name also appears
|
|
|
|
in the process title of all server processes, allowing for easier
|
|
|
|
identification of processes belonging to the same cluster.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Prevent non-superusers from changing <xref
|
|
|
|
linkend="guc-log-disconnections"> on connection startup (Fujii Masao)
|
2015-06-11 06:08:55 +02:00
|
|
|
</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>
|
2015-06-29 21:38:46 +02:00
|
|
|
When they are present, this replaces checks against the certificate's
|
2015-06-11 06:08:55 +02:00
|
|
|
<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()</></>
|
2015-06-29 21:38:46 +02:00
|
|
|
can still be used to call <productname>OpenSSL</>
|
2015-06-12 05:04:46 +02:00
|
|
|
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>
|
2015-06-29 21:38:46 +02:00
|
|
|
Make <application>libpq</> honor any <productname>OpenSSL</>
|
2015-06-11 06:08:55 +02:00
|
|
|
thread callbacks (Jan Urbanski)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously they were overwritten.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Server Settings</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Replace configuration parameter <varname>checkpoint_segments</>
|
|
|
|
with <xref linkend="guc-min-wal-size">
|
|
|
|
and <xref linkend="guc-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-29 21:38:46 +02:00
|
|
|
Add configuration parameter <xref linkend="guc-wal-compression"> to
|
|
|
|
control 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-29 21:38:46 +02:00
|
|
|
Allow recording of transaction
|
|
|
|
commit timestamps when configuration parameter <xref
|
|
|
|
linkend="guc-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-29 21:38:46 +02:00
|
|
|
Allow <xref linkend="guc-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-29 21:38:46 +02:00
|
|
|
Make configuration parameter <xref linkend="guc-debug-assertions">
|
2015-06-12 05:04:46 +02:00
|
|
|
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
|
2015-06-29 21:38:46 +02:00
|
|
|
off if they were enabled at compile time, allowing for more
|
|
|
|
efficient code optimization. This change also removed the <link
|
2015-06-12 05:04:46 +02:00
|
|
|
linkend="app-postgres-options">postgres</> <option>-A</> option.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Allow setting <xref linkend="guc-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</></>
|
2015-06-29 21:38:46 +02:00
|
|
|
to help control the Linux <acronym>OOM</> killer (Gurjeet Singh)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
The previous <acronym>OOM</> control infrastructure involved a
|
|
|
|
compile-time option.
|
2015-06-11 06:08:55 +02:00
|
|
|
</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>
|
2015-06-29 21:38:46 +02:00
|
|
|
This replaces the old parameter <varname>pause_at_recovery_target</>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Add new <xref linkend="guc-archive-mode"> value
|
2015-06-12 05:04:46 +02:00
|
|
|
<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-29 21:38:46 +02:00
|
|
|
Add configuration
|
|
|
|
parameter <xref linkend="guc-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-29 21:38:46 +02:00
|
|
|
Add configuration parameter <xref
|
|
|
|
linkend="guc-log-replication-commands">
|
2015-06-12 05:04:46 +02:00
|
|
|
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</></>,
|
2015-06-29 21:38:46 +02:00
|
|
|
are not logged, even when <xref linkend="guc-log-statement"> is set
|
2015-06-13 04:31:17 +02:00
|
|
|
to <literal>all</>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Allow <link linkend="pg-replication-origin-create">labeling</>
|
2015-06-12 05:04:46 +02:00
|
|
|
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-29 21:38:46 +02:00
|
|
|
Report the processes holding replication slots in <link
|
2015-06-12 05:04:46 +02:00
|
|
|
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>
|
2015-06-29 21:38:46 +02:00
|
|
|
This command allows automatic creation of local foreign tables
|
|
|
|
that match the structure of existing tables on a remote server.
|
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>
|
2015-06-29 21:38:46 +02:00
|
|
|
These constraints are assumed to be enforced on the remote server,
|
|
|
|
and are not enforced locally. However, they are assumed to hold for
|
|
|
|
purposes of query optimization, such
|
|
|
|
as <link linkend="ddl-partitioning-constraint-exclusion">constraint
|
|
|
|
exclusion</>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</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-29 21:38:46 +02:00
|
|
|
Add a set-returning function <link
|
|
|
|
linkend="pg-event-trigger-ddl-command-end-functions"><function>pg_event_trigger_ddl_commands()</></>, which returns <acronym>DDL</> activity
|
2015-06-12 05:04:46 +02:00
|
|
|
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>
|
2015-06-29 21:38:46 +02:00
|
|
|
Previously the namespace was not returned, potentially leading to
|
|
|
|
invalid <type>XML</>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</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-29 21:38:46 +02:00
|
|
|
Tighten syntax of <link
|
2015-06-12 05:04:46 +02:00
|
|
|
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
|
2015-06-29 21:38:46 +02:00
|
|
|
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>
|
2015-06-29 21:38:46 +02:00
|
|
|
Add several generator functions for <type>JSONB</> that already
|
|
|
|
existed for <type>JSON</> (Andrew Dunstan)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
These are <link
|
2015-06-12 05:04:46 +02:00
|
|
|
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-29 21:38:46 +02:00
|
|
|
Add a <link
|
2015-06-12 05:04:46 +02:00
|
|
|
linkend="functions-math-func-table"><function>width_bucket()</></>
|
2015-06-29 21:38:46 +02:00
|
|
|
variant that supports any sortable data type and non-uniform bucket
|
|
|
|
widths (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-29 21:38:46 +02:00
|
|
|
Previously only <literal>:=</> could be used. This requires removing
|
|
|
|
the possibility for <literal>=></> to be a user-defined operator.
|
|
|
|
Creation of user-defined <literal>=></> operators has been issuing
|
|
|
|
warnings since Postgres 9.0.
|
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-29 21:38:46 +02:00
|
|
|
Loosen security checks for viewing queries in <link
|
2015-06-12 05:04:46 +02:00
|
|
|
linkend="pg-stat-activity-view"><structname>pg_stat_activity</></>,
|
2015-06-29 21:38:46 +02:00
|
|
|
executing <link
|
2015-06-12 05:04:46 +02:00
|
|
|
linkend="functions-admin-signal-table"><function>pg_cancel_backend()</></>,
|
2015-06-29 21:38:46 +02:00
|
|
|
and executing <link
|
|
|
|
linkend="functions-admin-signal-table"><function>pg_terminate_backend()</></>
|
2015-06-12 05:04:46 +02:00
|
|
|
(Stephen Frost)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Now, role membership is sufficient; previously only the same
|
|
|
|
role could perform these operations.
|
2015-06-11 06:08:55 +02:00
|
|
|
</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>
|
2015-06-29 21:38:46 +02:00
|
|
|
Allow specification of conversion routines between <acronym>SQL</>
|
|
|
|
data types and data types of procedural languages (Peter Eisentraut)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
This change adds new commands <link
|
2015-06-12 05:04:46 +02:00
|
|
|
linkend="SQL-CREATETRANSFORM"><command>CREATE</></>/<link
|
|
|
|
linkend="SQL-DROPTRANSFORM"><command>DROP TRANSFORM</></>.
|
2015-06-29 21:38:46 +02:00
|
|
|
This also adds optional transformations between the <link
|
2015-06-12 05:04:46 +02:00
|
|
|
linkend="hstore"><application>hstore</></> and <link
|
2015-06-29 21:38:46 +02:00
|
|
|
linkend="ltree"><application>ltree</></> types to/from <link
|
2015-06-12 05:04:46 +02:00
|
|
|
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>
|
|
|
|
|
2015-06-29 21:38:46 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add <link linkend="app-pgrewind"><application>pg_rewind</></>,
|
|
|
|
which allows re-synchronizing a master server after failback
|
|
|
|
(Heikki Linnakangas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-11 06:08:55 +02:00
|
|
|
<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-29 21:38:46 +02:00
|
|
|
Make <link linkend="app-pgbasebackup"><application>pg_basebackup</></>
|
|
|
|
use a tablespace mapping file when using <application>tar</> format,
|
|
|
|
to support symbolic links and file paths of 100+ characters in length
|
|
|
|
on <systemitem class="osname">MS Windows</> (Amit Kapila)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Add <link linkend="pgxlogdump"><application>pg_xlogdump</></> option
|
|
|
|
<option>--stats</> to display summary statistics (Abhijit Menon-Sen)
|
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-29 21:38:46 +02:00
|
|
|
to control pager invocation (Andrew Dunstan)
|
2015-06-11 06:08:55 +02:00
|
|
|
</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
|
2015-06-29 21:38:46 +02:00
|
|
|
<xref linkend="guc-search-path"> variable (Jeff Janes)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Currently only the first schema can be tab-completed.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
Improve <application>psql</>'s tab completion for triggers and rules
|
2015-06-11 06:08:55 +02:00
|
|
|
(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>
|
2015-06-29 21:38:46 +02:00
|
|
|
Allow <application>psql</>'s <command>\watch</> to output
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-29 21:38:46 +02:00
|
|
|
Allow tab completion of role names
|
|
|
|
in <application>psql</> <literal>\c</> commands (Ian Barwick)
|
2015-06-11 06:08:55 +02:00
|
|
|
</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>
|
2015-06-29 21:38:46 +02:00
|
|
|
Change <application>pg_ctl</>'s default shutdown mode from
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
|
|
|
|
2015-06-29 21:38:46 +02:00
|
|
|
<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>
|
|
|
|
|
2015-06-11 06:08:55 +02:00
|
|
|
</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>
|
2015-06-29 21:38:46 +02:00
|
|
|
Improve <function>hash_create()</>'s API for selecting
|
|
|
|
simple-binary-key hash functions (Teodor Sigaev, Tom Lane)
|
2015-06-13 04:16:08 +02:00
|
|
|
</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-29 21:38:46 +02:00
|
|
|
Change index opclass for columns <link
|
2015-06-12 05:04:46 +02:00
|
|
|
linkend="catalog-pg-seclabel"><structname>pg_seclabel</></>.<structname>provider</>
|
|
|
|
and <link
|
2015-06-29 21:38:46 +02:00
|
|
|
linkend="catalog-pg-shseclabel"><structname>pg_shseclabel</></>.<structname>provider</>
|
|
|
|
to be <literal>text_pattern_ops</> (Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2015-06-29 21:38:46 +02:00
|
|
|
This avoids possible problems with these indexes when different
|
|
|
|
databases of a cluster have different default collations.
|
2015-06-11 06:08:55 +02:00
|
|
|
</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 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-29 21:38:46 +02:00
|
|
|
Add <link linkend="GIN"><acronym>GIN</></>
|
2015-06-12 05:04:46 +02:00
|
|
|
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>
|
2015-06-29 21:38:46 +02:00
|
|
|
|
|
|
|
<para>
|
|
|
|
These modules are only meant for server testing, so they do not need
|
|
|
|
to be built or installed when packaging <productname>PostgreSQL</>.
|
|
|
|
</para>
|
2015-06-11 06:08:55 +02:00
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
</sect1>
|