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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-11 [c6b3c93] Tom Lane: Make operator precedence follow the SQL standar..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-04 [1345cc6] Tom Lane: Use standard casting mechanism to convert type..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-08-28 [11a020e] Andres..: Allow escaping of option values for options pas..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-08 [9a08841] Stephe..: Change default for include_realm to 1
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-01-22 [59367fd] Bruce ..: adjust ACL owners for REASSIGN and ALTER OWNER..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-05 [525a489] Tom Lane: Remove the last vestige of server-side autocomm..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-06 [bb8582a] Peter ..: Remove rolcatupdate
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-07 [7516f52] Alvaro..: BRIN: Block Range Indexes
|
|
|
|
2015-05-05 [3b6db1f] Alvaro..: Add geometry/range functions to support BRIN in..
|
|
|
|
2015-05-15 [b0b7be6] Alvaro..: Add BRIN infrastructure for "inclusion" opclasses
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:09:51 +02:00
|
|
|
<acronym>BRIN</> indexes are very compact and cheap to update by
|
2015-06-30 21:00:12 +02:00
|
|
|
storing min/max values for a range of heap blocks.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-15 [35fcb1b] Heikki..: Allow GiST distance function to return merely ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-26 [d04c8ed] Heikki..: Add support for index-only scans in GiST.
|
|
|
|
2015-03-27 [e09b483] Heikki..: Add index-only scan support to btree_gist.
|
|
|
|
2015-03-28 [3a20b0e] Heikki..: Add index-only scan support to inet GiST opclass.
|
|
|
|
2015-03-30 [0633a60] Heikki..: Add index-only scan support to range type GiST ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
Add GUC and storage parameter to set the maximum size of GIN pending list.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-10 [84aa8ba] Bruce ..: Issue a warning during the creation of hash in..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-01-19 [4ea51cd] Robert..: Use abbreviated keys for faster sorting of text..
|
|
|
|
2014-09-19 [e246b3d] Robert..: Add a fast pre-check for equality of equal-leng..
|
|
|
|
2015-05-13 [78efd5c] Robert..: Extend abbreviated key infrastructure to datum ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
2015-06-30 21:09:51 +02:00
|
|
|
2014-11-07 [5ea86e6] Robert..: Use the sortsupport infrastructure in more cas..
|
2015-06-30 21:00:12 +02:00
|
|
|
-->
|
2015-06-26 20:48:52 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-10 [45f6240] Heikki..: Pack tuples in a hash join batch densely, to sa..
|
|
|
|
2014-09-12 [8cce08f] Robert..: Change NTUP_PER_BUCKET to 1 to improve hash joi..
|
|
|
|
2014-10-13 [30d7ae3] Kevin ..: Increase number of hash join buckets for undere..
|
|
|
|
FIXME: bad description? Should talk about hash joins
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-25 [5d7962c] Robert..: Change locking regimen around buffer replacement.
|
|
|
|
2014-12-25 [d72731a] Andres..: Lockless StrategyGetBuffer clock sweep hot path.
|
|
|
|
FIXME: Add Andres
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-25 [2ed5b87f] Kevin ..: Reduce pinning and buffer content locking for b..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-30 21:00:12 +02:00
|
|
|
Reduce the number of page locks and pins during index scans (Kevin Grittner)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The primary benefit of this is to allow index vacuums to be blocked
|
|
|
|
less often.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
2014-08-30 [4b4b680] Andres..: Make backend local tracking of buffer pins memo..
|
|
|
|
2015-01-19 [2d115e4] Andres..: Fix various shortcomings of the new PrivateRefC..
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Make backend local tracking of buffer pins memory efficient (Andres Freund)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Previously each session allocated an array with space for every buffer
|
|
|
|
in <link linkend="guc-shared-buffers"><varname>shared_buffers</></link>.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
2014-12-25 [ab5194e] Andres..: Improve LWLock scalability.
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Improve lock scalability (Andres Freund)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This particularly addresses scalability problems when running on
|
|
|
|
systems with multiple <acronym>CPU</> sockets.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-13 03:47:08 +02:00
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-15 [f15821e] Tom Lane: Allow join removal in some cases involving a le..
|
|
|
|
-->
|
2015-06-13 03:47:08 +02:00
|
|
|
<para>
|
|
|
|
Allow the optimizer to remove unnecessary references to left
|
|
|
|
outer join subqueries (David Rowley)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-06-27 [d222585] Tom Lane: Allow pushdown of WHERE quals into subqueries w..
|
|
|
|
-->
|
2015-06-13 03:47:08 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-04 [5028f22] Heikki..: Switch to CRC-32C in WAL and other places.
|
|
|
|
2015-02-10 [025c024] Heikki..: Speed up CRC calculation using slicing-by-8 alg..
|
|
|
|
2015-04-14 [3dc2d62] Heikki..: Use Intel SSE 4.2 CRC instructions where availa..
|
|
|
|
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Speed up <acronym>CRC</> (cyclic redundancy check) computations
|
|
|
|
(Abhijit Menon-Sen, Heikki Linnakangas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-30 21:00:12 +02:00
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
2015-01-16 [f5ae3ba] Andres..: Make tbm_add_tuples more efficient by caching t..
|
|
|
|
2015-01-16 [779fdcd] Tom Lane: Improve new caching logic in tbm_add_tuples().
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Improve bitmap index scan performance (Teodor Sigaev, Tom Lane)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
<!--
|
|
|
|
2014-07-01 [9f03ca9] Robert..: Avoid copying index tuples when building an ind..
|
|
|
|
-->
|
|
|
|
Speed up CREATE INDEX by avoiding unneccessary memory copies (Robert Haas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
2015-06-11 06:08:55 +02:00
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Monitoring</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-03 [4ff695b1] Alvaro..: Add log_min_autovacuum_duration per-table option
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-06-29 [51adcaa] Andres..: Add cluster_name GUC which is included in proce..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-13 [fe550b2] Tom Lane: Invent PGC_SU_BACKEND and mark log_connections..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-12 [acd08d7] Heikki..: Support Subject Alternative Names in SSL server..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-12 [9029f4b] Magnus..: Add system view pg_stat_ssl
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-02-03 [91fa7b4] Heikki..: Add API functions to libpq to interrogate SSL ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-09 [8a0d34e4] Peter ..: libpq: Don't overwrite existing OpenSSL thread..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-02-23 [88e9823] Heikki..: Replace checkpoint_segments with min_wal_size a..
|
|
|
|
2015-03-15 [a0f5954] Andres..: Increase max_wal_size's default from 128MB to 1..
|
|
|
|
2015-06-29 [d661532] Heikki..: Also trigger restartpoints based on max_wal_siz..
|
|
|
|
FIXME: Add docs about restartpoint behaviour change
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
This allows the allocation of a large number of <acronym>WAL</> files
|
|
|
|
without keeping them if they are not needed. Thus the default
|
|
|
|
for <xref linkend="guc-max-wal-size"> has been increased
|
|
|
|
to <literal>1GB</>.
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-11 [57aa5b2] Fujii ..: Add GUC to enable compression of full page imag..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-03 [73c986a] Alvaro..: Keep track of transaction commit timestamps
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-22 [584e35d] Peter ..: Change local_preload_libraries to PGC_USERSET
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-03 [a75fb9b] Alvaro..: Have autovacuum workers listen to SIGHUP, too
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-06-20 [3bdcf6a] Andres..: Don't allow to disable backend assertions via t..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-10-18 [7feaccc] Peter ..: Allow setting effective_io_concurrency even on..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-06-18 [df8b7bc] Tom Lane: Improve our mechanism for controlling the Linux..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-08 [a97e0c3] Stephe..: Add pg_file_settings view and function
|
|
|
|
2015-06-28 [62d16c7] Tom Lane: Improve design and implementation of pg_file_se..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-14 [a486e35] Peter ..: Add pg_settings.pending_restart column
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-02 [bd3b7a9] Fujii ..: Support ALTER SYSTEM RESET command.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-25 [aedccb1] Simon ..: action_at_recovery_target recovery config option
|
|
|
|
2014-12-07 [b8e33a8] Simon ..: Tweaks for recovery_target_action
|
|
|
|
2015-03-15 [51c11a7] Andres..: Remove pause_at_recovery_target recovery.conf s..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-15 [ffd3774] Heikki..: Add archive_mode='always' option.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-02-23 [5d2b45e] Fujii ..: Add GUC to control the time to wait before retr..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-08 [de76884] Heikki..: At promotion, archive last segment from old tim..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Archive <acronym>WAL</> files with suffix <literal>.partial</>
|
|
|
|
during standby promotion (Heikki Linnakangas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-13 [4ad2a54] Fujii ..: Add GUC to enable logging of replication comman..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-29 [5aa2350] Andres..: Introduce replication progress tracking infrast..
|
|
|
|
2015-03-15 [4f1b890] Andres..: Merge the various forms of transaction commit &..
|
|
|
|
FIXME: Correct description
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-21 [d811c03] Andres..: Add 'active_in' column to pg_replication_slots.
|
|
|
|
2015-04-21 [d811c03] Andres..: Add 'active_in' column to pg_replication_slots.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-25 [b3fc672] Heikki..: Allow using connection URI in primary_conninfo.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-08 [168d580] Andres..: Add support for INSERT ... ON CONFLICT DO NOTHI..
|
|
|
|
2015-05-08 [2c8f483] Andres..: Represent columns requiring insert and update p..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-16 [f3d3118] Andres..: Support GROUPING SETS, CUBE and ROLLUP.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-06-18 [8f889b1] Tom Lane: Implement UPDATE tab SET (col1,col2,...) = (SEL..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-30 21:00:12 +02:00
|
|
|
Allow to set multiple columns in
|
|
|
|
an <link linkend="SQL-UPDATE"><command>UPDATE</></> to the result of a
|
|
|
|
single subselect (Tom Lane)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is accomplished using the syntax <command>UPDATE tab SET
|
|
|
|
(col1, col2, ...) = (SELECT ...)</>.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-10-07 [df630b0] Alvaro..: Implement SKIP LOCKED for row-level locks
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-15 [f6d208d] Simon ..: TABLESAMPLE, SQL Standard and extensible
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-11 [e529cd4] Robert..: Suggest to the user the column they may have m..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Suggest possible matches for mistyped column names (Peter
|
|
|
|
Geoghegan, Robert Haas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Utility Commands</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-01-16 [20af53d] Tom Lane: Show sort ordering options in EXPLAIN output.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-18 [35192f0] Alvaro..: Have VACUUM log number of skipped pages due to ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-02-20 [d42358e] Alvaro..: Have TRUNCATE update pgstat tuple counters
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-09 [fe263d1] Simon ..: REINDEX SCHEMA
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Allow <command>REINDEX</> to reindex an entire schema using the
|
|
|
|
<literal>SCHEMA</> option (Sawada Masahiko)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-15 [ecd222e] Fujii ..: Support VERBOSE option in REINDEX command.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-09 [ae4e688] Simon ..: Silence REINDEX
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Prevent <command>REINDEX DATABASE</> and <command>SCHEMA</>
|
|
|
|
from outputting object names, unless <literal>VERBOSE</> is used
|
|
|
|
(Simon Riggs)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-09 [17d436d] Fujii ..: Remove obsolete FORCE option from REINDEX.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Remove obsolete <literal>FORCE</> option from <command>REINDEX</>
|
|
|
|
(Fujii Masao)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
<sect3>
|
|
|
|
<title>Object Manipulation</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-19 [491c029] Stephe..: Row-Level Security Policies (RLS)
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-08-22 [f41872d] Alvaro..: Implement ALTER TABLE .. SET LOGGED / UNLOGGED
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-30 21:00:12 +02:00
|
|
|
Allow to convert a <acronym>WAL</acronym> logged table to an UNLOGGED
|
|
|
|
one, and the other way round 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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-08-26 [0076f26] Heikki..: Implement IF NOT EXISTS for CREATE SEQUENCE.
|
|
|
|
2014-11-06 [08309aa] Fujii ..: Implement IF NOT EXIST for CREATE INDEX.
|
|
|
|
2014-12-13 [e39b6f9] Andrew..: Add CINE option for CREATE TABLE AS and CREATE ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-24 [1d8198b] Bruce ..: Add support for ALTER TABLE IF EXISTS ... RENAM..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-09 [31eae60] Alvaro..: Allow CURRENT/SESSION_USER to be used in certai..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-06-21 [ad89a5d] Alvaro..: Add transforms to pg_get_object_address and fr..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-05 [0ef0396] Simon ..: Reduce lock levels of some trigger DDL and add ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Reduce lock levels of some create and alter trigger and foreign
|
|
|
|
key commands (Simon Riggs, Andreas Karlsson)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-11 [fa26424] Stephe..: Allow LOCK TABLE .. ROW EXCLUSIVE MODE with IN..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-23 [e5f455f] Tom Lane: Apply table and domain CHECK constraints in nam.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Apply table and domain <literal>CHECK</> constraints in name order
|
|
|
|
(Tom Lane)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The previous order was indeterminate.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-01 [15c82ef] Tom Lane: Refactor CREATE/ALTER DATABASE syntax so option..
|
|
|
|
2014-07-01 [fbb1d7d] Tom Lane: Allow CREATE/ALTER DATABASE to manipulate datis..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-10 [59efda3] Tom Lane: Implement IMPORT FOREIGN SCHEMA.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-22 [cb1ca4d] Tom Lane: Allow foreign tables to participate in inherita..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-17 [fc2ac1f] Tom Lane: Allow CHECK constraints to be placed on foreign..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-01 [e7cb7ee] Robert..: Allow FDWs and custom scan providers to replace..
|
|
|
|
2015-05-10 [1a8a4e5] Tom Lane: Code review for foreign/custom join pushdown pa..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-11 [b488c58] Alvaro..: Allow on-the-fly capture of DDL event details
|
|
|
|
FIXME: Better description?
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-08 [618c943] Simon ..: Event Trigger for table_rewrite
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-02-23 [296f3a6] Alvaro..: Support more commands in event triggers
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-30 [72dd233] Alvaro..: pg_event_trigger_dropped_objects: Add name/args..
|
|
|
|
2015-04-06 [e9a077c] Alvaro..: pg_event_trigger_dropped_objects: add is_temp c..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-09 [57b1085] Peter ..: Allow empty content in xml type
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-01-06 [79af9a1] Peter ..: Fix namespace handling in xpath function
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-10-21 [6f04368] Peter ..: Allow input format xxxx-xxxx-xxxx for macaddr ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-10-18 [417f924] Bruce ..: interval: tighten precision specification
|
|
|
|
FIXME: Add more specifics?
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-01 [89840d7] Tom Lane: Provide real selectivity estimators for inet/ci..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-12 [c694701] Andrew..: Additional functions and operators for jsonb
|
|
|
|
2015-05-31 [37def42] Andrew..: Rename jsonb_replace to jsonb_set and allow it ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-12 [7e354ab] Andrew..: Add several generator functions for jsonb that ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-03 [b67f1ce] Tom Lane: Reduce json <=> jsonb casts from explicit-only..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-06-11 [908e234] Andrew..: Rename jsonb - text[] operator to #- to avoid a..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-12 [c694701] Andrew..: Additional functions and operators for jsonb
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-12 [237a882] Andrew..: Add json_strip_nulls and jsonb_strip_nulls fun..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-11 [1871c89] Fujii ..: Add generate_series(numeric, numeric).
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-25 [bac2739] Tom Lane: Support arrays as input to array_agg() and ARRA..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-18 [13dbc7a] Alvaro..: array_offset() and array_offsets()
|
|
|
|
2015-03-30 [97690ea] Alvaro..: Change array_offset to return subscripts, not o..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-15 [4520ba6] Heikki..: Add point <-> polygon distance operator.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-08-27 [8167a38] Jeff D..: Allow multibyte characters as escape in SIMILA..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-09 [e80252d] Tom Lane: Add width_bucket(anyelement, anyarray).
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-10 [865f14a] Robert..: Allow named parameters to be specified using =>..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-25 [06bf0dd] Tom Lane: Upgrade src/port/rint.c to be POSIX-compliant.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-23 [d7ee82e] Alvaro..: Add SQL-callable pg_get_object_address
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-30 [a676201] Alvaro..: Add pg_identify_object_as_address
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-19 [bf03889] Stephe..: GetUserId() changes to has_privs_of_role()
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-02-19 [2fb7a75] Tom Lane: Add pg_stat_get_snapshot_timestamp() to show s..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-10 [36ad1a8] Bruce ..: Implement mxid_age() to compute multi-xid age
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-09 [0c90f67] Andrew..: Add new OID alias type regrole
|
|
|
|
2015-05-09 [cb9fa80] Andrew..: Add new OID alias type regnamespace
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-30 21:00:12 +02:00
|
|
|
Add data types <link
|
|
|
|
linkend="datatype-oid-table"><type>regrole</> <type>regnamespace</></> that returns
|
2015-06-12 05:04:46 +02:00
|
|
|
the <type>OID</> of a role (Kyotaro Horiguchi)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
</sect4>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>Aggregates</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-08-28 [6c40f83] Tom Lane: Add min and max aggregates for inet/cidr data t..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-20 [8122e14] Andres..: Add, optional, support for 128bit integers.
|
|
|
|
2015-03-20 [959277a] Andres..: Use 128-bit math to accelerate some aggregation..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-03 [8b6010b] Tom Lane: Improve support for composite types in PL/Python.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-11 [1ce7a57] Peter ..: PL/Python: Avoid lossiness in float conversion
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-26 [cac7658] Peter ..: Add transforms feature
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-14 [1dc5ebc] Tom Lane: Support "expanded" objects, particularly arrays..
|
|
|
|
2015-02-16 [e983c4d] Tom Lane: Rationalize the APIs of array element/slice acc..
|
|
|
|
2015-02-18 [56a79a8] Tom Lane: Split array_push into separate array_append and..
|
|
|
|
2015-02-16 [9e3ad1a] Tom Lane: Use fast path in plpgsql's RETURN/RETURN NEXT i..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-25 [a4847fc] Tom Lane: Add an ASSERT statement in plpgsql.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-25 [bb1b8f6] Tom Lane: De-reserve most statement-introducing keywords ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-11 [83aca89] Peter ..: Move pg_archivecleanup from contrib/ to src/bin/
|
|
|
|
2015-04-19 [00882d9] Peter ..: Move pg_test_fsync from contrib/ to src/bin/
|
|
|
|
2015-04-20 [528c2e4] Peter ..: Move pg_test_timing from contrib/ to src/bin/
|
|
|
|
2015-04-21 [b0a738f] Peter ..: Move pg_xlogdump from contrib/ to src/bin/
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-23 [61081e7] Heikki..: Add pg_rewind, for re-synchronizing a master se..
|
|
|
|
-->
|
2015-06-29 21:38:46 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-10-06 [d9f38c7] Andres..: Add support for managing physical replication s..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-18 [c4f99d2] Fujii ..: Add ––synchronous option to pg_receivexlog, for..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-01-23 [a179232] Alvaro..: vacuumdb: enable parallel mode
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-15 [458a077] Fujii ..: Support ––verbose option in reindexdb.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-12 [72d422a] Andrew..: Map basebackup tablespaces using a tablespace_..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-19 [728f152] Andres..: Add rmgr callback to name xlog record types for..
|
|
|
|
2014-09-19 [bdd5726] Andres..: Add the capability to display summary statistic..
|
|
|
|
-->
|
2015-06-29 21:38:46 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-31 [9d9991c] Bruce ..: psql: add asciidoc output format
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Allow <application>psql</> to produce AsciiDoc output (Szymon Guz)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-10 [5b214c5] Fujii ..: Add new ECHO mode 'errors' that displays only ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-12 [a2dabf0] Stephe..: Add unicode_{column|header|border}_style to psql
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-02 [51bb795] Andres..: Add psql PROMPT variable showing which line of ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-28 [7655f4c] Andrew..: Add a pager_min_lines setting to psql
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-21 [4077fb4] Andrew..: Fix an error in psql that overcounted output l..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Improve <application>psql</> line counting used when deciding
|
|
|
|
to invoke the pager (Andrew Dunstan)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-12 [bd40951] Andres..: Minimal psql tab completion support for SET se..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-06-23 [631e7f6] Heikki..: Improve tab-completion of DROP and ALTER ENABLE..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-10 [07c8651] Andres..: Add new psql help topics, accessible to both..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-14 [ee80f04] Alvaro..: psql: Show tablespace size in \db+
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Show tablespace size in <application>psql</>'s <literal>\db+</>
|
|
|
|
(Fabrízio de Royes Mello)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-09 [a6f3c1f] Magnus..: Show owner of types in psql \dT+
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Show data type owners in <application>psql</>'s <literal>\dT+</>
|
|
|
|
(Magnus Hagander)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-04 [f6f654f] Fujii ..: Allow \watch to display query execution time if..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-22 [eca2b9b] Andrew..: Rework echo_hidden for \sf and \ef from commit ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Allow <application>psql</>'s <literal>\sf</> and <literal>\ef</>
|
|
|
|
to honor <envar>ECHO_HIDDEN</> (Andrew Dunstan)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-08-12 [e15c4ab] Fujii ..: Add tab-completion for \unset and valid setting..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Improve <application>psql</> tab completion for <command>\set</>,
|
|
|
|
<command>\unset</>, and <literal>:variable</> names (Pavel
|
|
|
|
Stehule)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-10 [095d401] Robert..: Tab complete second argument to \c with role n..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-17 [be1cc8f] Simon ..: Add pg_dump ––snapshot option
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-07 [7700597] Tom Lane: In pg_dump, show server and pg_dump versions w..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-31 [0badb06] Bruce ..: pg_ctl: change default shutdown mode from 'sma..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-08-25 [ebe30ad] Bruce ..: pg_ctl, pg_upgrade: allow multiple -o/-O opti..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Allow multiple <application>pg_ctl</> <option>-o</> options to
|
|
|
|
be appended (Bruce Momjian)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-17 [c0e4520] Magnus..: Add option to pg_ctl to choose event source for..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-14 [9fa8b0e] Peter ..: Move pg_upgrade from contrib/ to src/bin/
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-08-25 [ebe30ad] Bruce ..: pg_ctl, pg_upgrade: allow multiple -o/-O optio..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Allow multiple <application>pg_upgrade</>
|
|
|
|
<option>-o</>/<option>-O</> options to be appended (Bruce Momjian)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-10-10 [33755e8] Heikki..: Change the way encoding and locale checks are d..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Improve database collation comparisons in
|
|
|
|
<application>pg_upgrade</> (Heikki Linnakangas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-18 [417f78a] Bruce ..: pg_upgrade: document use of rsync for slave up..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Document the use of <application>rsync</> for standby server
|
|
|
|
upgrades using <application>pg_upgrade</> (Stephen Frost,
|
|
|
|
Bruce Momjian)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-08-25 [2209b39] Bruce ..: pg_upgrade: remove support for 8.3 old clusters
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-13 [81134af] Peter ..: Move pgbench from contrib/ to src/bin/
|
|
|
|
-->
|
2015-06-29 21:38:46 +02:00
|
|
|
<para>
|
|
|
|
Move pgbench from <filename>contrib</> to <filename>src/bin</>
|
|
|
|
(Peter Eisentraut)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-10-13 [98aed6c] Heikki..: Add ––latency-limit option to pgbench.
|
|
|
|
-->
|
2015-06-29 21:38:46 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-30 [ed802e7] Robert..: pgbench: Allow \setrandom to generate Gaussian..
|
|
|
|
-->
|
2015-06-29 21:38:46 +02:00
|
|
|
<para>
|
|
|
|
Allow pgbench to generate Gaussian/exponential distributions
|
|
|
|
using <command>\setrandom</> (Kondo Mitsumasa, Fabien Coelho)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-02 [878fdcb] Robert..: pgbench: Add a real expression syntax to \set
|
|
|
|
FIXME: Improve description, link
|
|
|
|
-->
|
2015-06-29 21:38:46 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-20 [2c03216] Heikki..: Revamp the WAL record format.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-25 [b64d92f] Andres..: Add a basic atomic ops API abstracting away pla..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
2015-06-30 21:00:12 +02:00
|
|
|
Add atomic memory operations <acronym>API</> (Andres Freund)
|
2015-06-11 06:08:55 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-07 [0b03e59] Robert..: Introduce custom path and scan providers.
|
|
|
|
2014-11-20 [a34fa8e] Tom Lane: Initial code review for CustomScan patch.
|
|
|
|
2014-11-21 [c2ea228] Tom Lane: Simplify API for initially hooking custom-path ..
|
|
|
|
2014-11-21 [4477704] Tom Lane: Rearrange CustomScan API.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-12 [afb9249] Tom Lane: Add support for doing late row locking in FDWs.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Allow foreign data wrappers to do post-filter locking (Etsuro
|
|
|
|
Fujita)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-13 04:16:08 +02:00
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-18 [4a14f13] Tom Lane: Improve hash_create's API for selecting simple-..
|
|
|
|
-->
|
2015-06-13 04:16:08 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-30 [924bcf4] Robert..: Create an infrastructure for parallel computati..
|
|
|
|
2014-10-31 [2bd9e41] Robert..: Support frontend-backend protocol communication..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Improve parallel execution infrastructure (Robert Haas, Amit
|
|
|
|
Kapila, Noah Misch, Rushabh Lathia, Jeevan Chalke)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-06-28 [a6d488c] Andres..: Remove Alpha and Tru64 support.
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Remove <productname>Alpha</> (<acronym>CPU</>) and <systemitem
|
|
|
|
class="osname">Tru64</> (OS) ports (Andres Freund)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-06 [4893ccd] Robert..: Remove swpb-based spinlock implementation for A..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-02-24 [23a7835] Peter ..: Error when creating names too long for tar for..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-19 [0b28ea7] Tom Lane: Avoid collation dependence in indexes of syste..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
|
|
|
|
2015-06-30 21:00:12 +02:00
|
|
|
<listitem>
|
|
|
|
<!--
|
|
|
|
2014-09-09 [0709b7e] Robert..: Change the spinlock primitives to function as c..
|
|
|
|
-->
|
|
|
|
<para>
|
|
|
|
Change the spinlock primitives to function as compiler barriers
|
|
|
|
(Robert Haas)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
2015-06-11 06:08:55 +02:00
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
<title>MS Windows</title>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-12-08 [519b075] Simon ..: Use GetSystemTimeAsFileTime directly in win32
|
|
|
|
2014-12-08 [8001fe6] Simon ..: Windows: use GetSystemTimePreciseAsFileTime if ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-18 [f9dead5] Alvaro..: Install shared libraries to bin/ in Windows un..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Install shared libraries to <filename>bin</> in <systemitem
|
|
|
|
class="osname">MS Windows</> (Peter Eisentraut, Michael Paquier)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-04-16 [22d0053] Alvaro..: MSVC: install src/test/modules together with c..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Install <filename>src/test/modules</> together with
|
|
|
|
<filename>contrib</> on <productname>MSVC</> builds (Michael
|
|
|
|
Paquier)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-12 [8d9a0e8] Magnus..: Support ––with-extra-version equivalent functi..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-14 [91f03ba] Noah M..: MSVC: Recognize PGFILEDESC in contrib and conv..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<para>
|
|
|
|
Pass <envar>PGFILEDESC</> into <productname>MSVC</> contrib builds
|
|
|
|
(Michael Paquier)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-07-14 [c4a448e] Noah M..: MSVC: Apply icons to all binaries having them ..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-09-10 [311da16] Andres..: Add support for optional_argument to our own ge..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-03-27 [717f709] Andrew..: Add stats for min, max, mean, stddev times to p..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-10-01 [32984d8] Heikki..: Add functions for dealing with PGP armor heade..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-06-30 [97c40ce] Tom Lane: Allow empty replacement strings in contrib/unac..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-06-30 [1b24887] Tom Lane: Allow multi-character source strings in contrib..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-15 [9689290] Simon ..: TABLESAMPLE system_rows(limit)
|
|
|
|
2015-05-15 [149f6f1] Simon ..: TABLESAMPLE system_time(limit)
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-21 [3a82bc6] Heikki..: Add pageinspect functions for inspecting GIN in..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-08-22 [f577919] Andres..: Add pinning_backends column to the pg_buffercac..
|
|
|
|
-->
|
2015-06-11 17:13:49 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2015-05-13 [5850b20] Andres..: Add pgstattuple_approx() to the pgstattuple ext..
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|
2015-06-30 21:00:12 +02:00
|
|
|
<!--
|
|
|
|
2014-11-29 [22dfd11] Alvaro..: Move test modules from contrib to src/test/modu..
|
|
|
|
2014-12-01 [df761e3] Alvaro..: Move security_label test
|
|
|
|
-->
|
2015-06-11 06:08:55 +02:00
|
|
|
<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>
|