<formalpara>
<title>Release date:</title>
- <para>2019-??-??, CURRENT AS OF 2019-09-06</para>
+ <para>2019-??-??, CURRENT AS OF 2019-09-21</para>
</formalpara>
<sect2>
<itemizedlist>
<listitem>
<para>
- Client- and server-side encryption for authentication using
+ Encryption of TCP/IP connections when using
<link linkend="gssapi-auth"><acronym>GSSAPI</acronym></link>
+ authentication
</para>
</listitem>
and the server will not start if that file exists. <link
linkend="runtime-config-wal-archive-recovery">recovery.signal</link>
and <filename>standby.signal</filename> files are now used to switch
- into non-primary mode. <varname>trigger_file</varname> has been
- renamed to <xref linkend="guc-promote-trigger-file"/>. The
+ into non-primary mode. The <varname>trigger_file</varname> setting
+ has been renamed to <xref linkend="guc-promote-trigger-file"/>. The
<varname>standby_mode</varname> setting has been removed.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
-2018-12-19 [586b98fdf] Make type "name" collation-aware.
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2019-04-05 [478cacb50] Ensure consistent name matching behavior in processSQLNa
--->
-
- <para>
- Allow data type <link
- linkend="datatype-character-special-table">name</link> to use
- non-C collations (Tom Lane, Daniel Vérité)
- </para>
-
- <para>
- Type <type>name</type> still uses the <quote>C</quote> collation by
- default, rather than defaulting to the database collation.
- Regular-expression operators on <type>name</type> columns will now
- use the <quote>C</quote> collation by default. If you want non-C
- behavior for locale-dependent regular expression patterns (such
- as <literal>\w</literal>), attach an
- explicit <literal>COLLATE</literal> clause.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
2019-03-21 [bfb456c1b] Improve error reporting for DROP FUNCTION/PROCEDURE/AGGR
-->
<listitem>
<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+2018-12-19 [586b98fdf] Make type "name" collation-aware.
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+2019-04-05 [478cacb50] Ensure consistent name matching behavior in processSQLNa
+-->
+
+ <para>
+ Mark table columns of type <link
+ linkend="datatype-character-special-table">name</link> as having
+ <quote>C</quote> collation by default (Tom Lane, Daniel Vérité)
+ </para>
+
+ <para>
+ The comparison operators for data type <type>name</type> can now use
+ any collation, rather than always using <quote>C</quote> collation.
+ To preserve the previous semantics of queries, columns of
+ type <type>name</type> are now explicitly marked as
+ having <quote>C</quote> collation. A side effect of this is that
+ regular-expression operators on <type>name</type> columns will now
+ use the <quote>C</quote> collation by default, not the database
+ collation, to determine the behavior of locale-dependent regular
+ expression patterns (such as <literal>\w</literal>). If you want
+ non-C behavior for a regular expression on a <type>name</type>
+ column, attach an explicit <literal>COLLATE</literal> clause. (For
+ user-defined <type>name</type> columns, another possibility is to
+ specify a different collation at table creation time; but that just
+ moves the non-backwards-compatibility to the comparison operators.)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+2018-12-20 [7c15cef86] Base information_schema.sql_identifier domain on name, n
+2018-12-20 [5bbee34d9] Avoid producing over-length specific_name outputs in inf
+2018-12-18 [6b0faf723] Make collation-aware system catalog columns use "C" coll
+-->
+
+ <para>
+ Treat object-name columns in
+ the <link linkend="information-schema"><structname>information_schema</structname></link>
+ views as being of type <type>name</type> not <type>varchar</type>
+ (Tom Lane)
+ </para>
+
+ <para>
+ Per the SQL standard, object-name columns in
+ the <structname>information_schema</structname> views are declared
+ as being of domain type <type>sql_identifier</type>.
+ In <productname>PostgreSQL</productname>, the underlying catalog
+ columns are really of type <type>name</type>. This change
+ makes <type>sql_identifier</type> be a domain
+ over <type>name</type>, rather than <type>varchar</type> as before.
+ This eliminates a semantic mismatch in comparison and sorting
+ behavior, which can greatly improve the performance of queries
+ on <structname>information_schema</structname> views that restrict
+ an object-name column. Note however that inequality restrictions,
+ for example
+<programlisting>
+SELECT ... FROM information_schema.tables WHERE table_name < 'foo';
+</programlisting>
+ will now use <quote>C</quote>-locale comparison semantics by
+ default, rather than the database's default collation as before.
+ Sorting on these columns will also follow <quote>C</quote> ordering
+ rules. The previous behavior (and inefficiency) can be enforced by
+ adding a <literal>COLLATE "default"</literal> clause.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2018-07-10 [bcbd94080] Remove dynamic_shared_memory_type=none
-->
</para>
<para>
- Global objects have a <link
+ Global objects are shown with a <link
linkend="pg-stat-database-view"><structname>pg_stat_database</structname></link>.<structfield>datid</structfield>
value of zero.
</para>
</itemizedlist>
- <sect5>
- <title><link linkend="information-schema">Information Schema</link></title>
-
- <itemizedlist>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2018-12-20 [7c15cef86] Base information_schema.sql_identifier domain on name, n
--->
-
- <para>
- Allow more use of indexes for text comparisons with
- <structname>information_schema</structname> columns (Tom Lane)
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2018-12-18 [6b0faf723] Make collation-aware system catalog columns use "C" coll
--->
-
- <para>
- Use <quote>C</quote> collation for <type>name</type>-type columns in
- <structname>information_schema</structname> views and the system
- catalogs (Tom Lane)
- </para>
-
- <para>
- This will produce more consistent behavior in databases with
- different collations, but will also cause sorts on these columns
- to produce results in <quote>C</quote> ordering, rather
- than the database's default collation.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2018-12-20 [5bbee34d9] Avoid producing over-length specific_name outputs in inf
--->
-
- <para>
- Ensure that <structname>information_schema</structname> outputs honor
- the system-defined maximum identifier length (Tom Lane)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </sect5>
</sect4>
<sect4>
<para>
Add <link linkend="gssapi-auth"><acronym>GSSAPI</acronym></link>
- client- and server-side encryption support (Robbie Harwood,
- Stephen Frost)
+ encryption support (Robbie Harwood, Stephen Frost)
</para>
<para>
- Add <literal>hostgssenc</literal>
+ This feature allows TCP/IP connections to be encrypted when using
+ GSSAPI authentication, without having to set up a separate
+ encryption facility such as SSL.
+ In support of this, add <literal>hostgssenc</literal>
and <literal>hostnogssenc</literal> record types in <link
- linkend="auth-pg-hba-conf"><filename>pg_hba.conf</filename></link>.
- Such entries would typically use the <literal>gss</literal>
- authentication method. This change also adds a libpq
- <xref linkend="libpq-connect-gssencmode"/> option, and a
- <xref linkend="pg-stat-gssapi-view"/> system view.
+ linkend="auth-pg-hba-conf"><filename>pg_hba.conf</filename></link>
+ for selecting connections that do or do not use GSSAPI encryption,
+ corresponding to the existing <literal>hostssl</literal>
+ and <literal>hostnossl</literal> record types.
+ There is also a new <xref linkend="libpq-connect-gssencmode"/>
+ libpq option, and a <xref linkend="pg-stat-gssapi-view"/> system
+ view.
</para>
</listitem>
-->
<para>
- Add a <literal>WHERE</literal> clause to <command>COPY
- FROM</command> to control which rows are accepted (Surafel
- Temesgen)
+ Add a <literal>WHERE</literal> clause
+ to <link linkend="sql-copy"><command>COPY FROM</command></link> to
+ control which rows are accepted (Surafel Temesgen)
</para>
<para>
-->
<para>
- Allow enumerated values to be added in more transaction types
+ Allow enumerated values to be added more flexibly
(Andrew Dunstan, Tom Lane, Thomas Munro)
</para>
<para>
- Previously, <link linkend="sql-altertype"><command>ALTER
- TYPE ... ADD VALUE</command></link> could only be called in
- a transaction that created the enumerated type. Now, the only
- restriction is that the new enumerated value cannot be referenced
- until the transaction commits.
+ Previously, <link linkend="sql-altertype"><command>ALTER TYPE
+ ... ADD VALUE</command></link> could not be called in a transaction
+ block, unless it was part of the same transaction that created the
+ enumerated type. Now it can be called in a later transaction, so
+ long as the new enumerated value is not referenced until after it is
+ committed.
</para>
</listitem>
<para>
The commands are <link linkend="sql-commit"><command>COMMIT AND
- CHAIN</command></link> and <command>ROLLBACK AND CHAIN</command>.
+ CHAIN</command></link>
+ and <link linkend="sql-rollback"><command>ROLLBACK AND
+ CHAIN</command></link>.
</para>
</listitem>
<para>
These options are <varname>vacuum_truncate</varname> and
<varname>toast.vacuum_truncate</varname>. Use of these options
- reduces vacuum's locking requirements, but prevents returning disk
- space to the operating system.
+ reduces <command>VACUUM</command>'s locking requirements, but
+ prevents returning disk space to the operating system.
</para>
</listitem>
<para>
Add the ability to skip <command>VACUUM</command> and
<command>ANALYZE</command> operations on tables that cannot be
- immediately locked (Nathan Bossart)
+ locked immediately (Nathan Bossart)
</para>
<para>
</para>
<para>
- This output can also be obtained in auto-explain via <xref
- linkend="auto-explain"/>.<literal>log_settings</literal>.
+ This output can also be obtained in <xref linkend="auto-explain"/>
+ by setting <varname>auto_explain.log_settings</varname>.
</para>
</listitem>
</para>
<para>
- This allows modifications of <literal>reloptions</literal> and
- autovacuum settings.
+ Modifications of catalogs' <literal>reloptions</literal> and
+ autovacuum settings are now supported.
</para>
</listitem>
</para>
<para>
- Previously, only the first column name was used, resulting in
- ambiguity for multi-column foreign keys.
+ Previously, only the first column name was included in the constraint
+ name, resulting in ambiguity for multi-column foreign keys.
</para>
</listitem>
<para>
Allow creation of <link
linkend="collation">collations</link> that report
- string equality for strings that are not byte-wise equal (Peter
+ string equality for strings that are not bit-wise equal (Peter
Eisentraut)
</para>
<listitem>
<!--
Author: Michael Meskes <meskes@postgresql.org>
-2019-02-16 [bd7c95f0c] Add DECLARE STATEMENT support to ECPG.
--->
-
- <para>
- Add <command>DECLARE STATEMENT</command> support to
- <productname>ECPG</productname> (Takeshi Ideriha, Hayato Kuroda)
- </para>
-
- <para>
- This allows statements to be associated with named connections,
- so future operations like cursors don't need to re-reference the
- connection name.
- </para>
- </listitem>
-
- <listitem>
-<!--
-Author: Michael Meskes <meskes@postgresql.org>
2019-05-22 [a1dc6ab46] Implement PREPARE AS statement for ECPG.
-->
<para>
Show the manual page <acronym>URL</acronym> in
<application>psql</application>'s <command>\help</command> output
- (Peter Eisentraut)
+ for a SQL command (Peter Eisentraut)
</para>
</listitem>
-->
<para>
- Properly detach the server on <application>pg_ctl</application>
- start (Paul Guo)
+ Properly detach the new server process
+ during <literal><application>pg_ctl</application> start</literal>
+ (Paul Guo)
</para>
<para>
- This prevents later shell activity from interfering with the
- postmaster.
+ This prevents the server from being shut down if the shell script
+ that invoked <application>pg_ctl</application> is interrupted later.
</para>
</listitem>
While <literal>CHECK OPTION</literal>s on
<application>postgres_fdw</application> tables are ignored (because
the reference is foreign), views on such tables are considered
- local, so this release enforces <literal>CHECK OPTION</literal>s
+ local, so this change enforces <literal>CHECK OPTION</literal>s
on them. Previously, only <command>INSERT</command>s and
<command>UPDATE</command>s with <literal>RETURNING</literal>
clauses that returned <literal>CHECK OPTION</literal> values