Update 9.4 release notes.

Set release date, do a final pass of wordsmithing, improve some other
new-in-9.4 documentation.
This commit is contained in:
Tom Lane 2014-12-14 14:58:03 -05:00
parent c50423c0fe
commit 0923b01e3e
3 changed files with 152 additions and 179 deletions

View File

@ -3180,9 +3180,10 @@ SELECT person.name, holidays.num_weeks FROM person, holidays
</indexterm>
<para>
Lines (<type>line</type>) are represented by the linear equation Ax + By
+ C = 0, where A and B are not both zero. Values of
type <type>line</type> is input and output in the following form:
Lines are represented by the linear
equation <replaceable>A</>x + <replaceable>B</>y + <replaceable>C</> = 0,
where <replaceable>A</> and <replaceable>B</> are not both zero. Values
of type <type>line</type> are input and output in the following form:
<synopsis>
{ <replaceable>A</replaceable>, <replaceable>B</replaceable>, <replaceable>C</replaceable> }
</synopsis>
@ -3200,7 +3201,7 @@ SELECT person.name, holidays.num_weeks FROM person, holidays
<literal>(<replaceable>x1</replaceable>,<replaceable>y1</replaceable>)</literal>
and
<literal>(<replaceable>x2</replaceable>,<replaceable>y2</replaceable>)</literal>
are two (different) points on the line.
are two different points on the line.
</para>
</sect2>
@ -3216,9 +3217,9 @@ SELECT person.name, holidays.num_weeks FROM person, holidays
</indexterm>
<para>
Line segments (<type>lseg</type>) are represented by pairs of points.
Values of type <type>lseg</type> are specified using any of the following
syntaxes:
Line segments are represented by pairs of points that are the endpoints
of the segment. Values of type <type>lseg</type> are specified using any
of the following syntaxes:
<synopsis>
[ ( <replaceable>x1</replaceable> , <replaceable>y1</replaceable> ) , ( <replaceable>x2</replaceable> , <replaceable>y2</replaceable> ) ]

View File

@ -1078,15 +1078,26 @@ END;
always sets <literal>FOUND</literal> to true.
</para>
<para>
For <command>INSERT</>/<command>UPDATE</>/<command>DELETE</> with
<literal>RETURNING</>, <application>PL/pgSQL</application> reports
an error for more than one returned row, even when
<literal>STRICT</literal> is not specified. This is because there
is no option such as <literal>ORDER BY</> with which to determine
which affected row should be returned.
</para>
<para>
If <literal>print_strict_params</> is enabled for the function,
you will get information about the parameters passed to the
query in the <literal>DETAIL</> part of the error message produced
when the requirements of STRICT are not met. You can change this
setting on a system-wide basis by setting
then when an error is thrown because the requirements
of <literal>STRICT</> are not met, the <literal>DETAIL</> part of
the error message will include information about the parameters
passed to the query.
You can change the <literal>print_strict_params</>
setting for all functions by setting
<varname>plpgsql.print_strict_params</>, though only subsequent
function compilations will be affected. You can also enable it
on a per-function basis by using a compiler option:
on a per-function basis by using a compiler option, for example:
<programlisting>
CREATE FUNCTION get_userid(username text) RETURNS int
AS $$
@ -1100,15 +1111,12 @@ BEGIN
END
$$ LANGUAGE plpgsql;
</programlisting>
</para>
<para>
For <command>INSERT</>/<command>UPDATE</>/<command>DELETE</> with
<literal>RETURNING</>, <application>PL/pgSQL</application> reports
an error for more than one returned row, even when
<literal>STRICT</literal> is not specified. This is because there
is no option such as <literal>ORDER BY</> with which to determine
which affected row should be returned.
On failure, this function might produce an error message such as
<programlisting>
ERROR: query returned no rows
DETAIL: parameters: $1 = 'nosuchuser'
CONTEXT: PL/pgSQL function get_userid(text) line 6 at SQL statement
</programlisting>
</para>
<note>
@ -2767,28 +2775,36 @@ END;
</sect2>
<sect2 id="plpgsql-get-diagnostics-context">
<title>Obtaining the Call Stack Context Information</title>
<title>Obtaining Current Execution Information</title>
<para>
The <command>GET <optional> CURRENT </optional> DIAGNOSTICS</command>
command retrieves information about current execution state (whereas
the <command>GET STACKED DIAGNOSTICS</command> command discussed above
reports information about the execution state as of a previous error).
This command has the form:
</para>
<synopsis>
GET <optional> CURRENT </optional> DIAGNOSTICS <replaceable>variable</replaceable> { = | := } <replaceable>PG_CONTEXT</replaceable> <optional> , ... </optional>;
GET <optional> CURRENT </optional> DIAGNOSTICS <replaceable>variable</replaceable> { = | := } <replaceable>item</replaceable> <optional> , ... </optional>;
</synopsis>
<para>
Calling <command>GET DIAGNOSTICS</command> with status
item <varname>PG_CONTEXT</> will return a text string with line(s) of
text describing the call stack. The first row refers to the
Currently only one information item is supported. Status
item <literal>PG_CONTEXT</> will return a text string with line(s) of
text describing the call stack. The first line refers to the
current function and currently executing <command>GET DIAGNOSTICS</command>
command. The second and any subsequent rows refer to the calling functions
up the call stack.
command. The second and any subsequent lines refer to calling functions
further up the call stack. For example:
<programlisting>
CREATE OR REPLACE FUNCTION public.outer_func() RETURNS integer AS $$
CREATE OR REPLACE FUNCTION outer_func() RETURNS integer AS $$
BEGIN
RETURN inner_func();
END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION public.inner_func() RETURNS integer AS $$
CREATE OR REPLACE FUNCTION inner_func() RETURNS integer AS $$
DECLARE
stack text;
BEGIN
@ -2801,8 +2817,9 @@ $$ LANGUAGE plpgsql;
SELECT outer_func();
NOTICE: --- Call Stack ---
PL/pgSQL function inner_func() line 4 at GET DIAGNOSTICS
PL/pgSQL function inner_func() line 5 at GET DIAGNOSTICS
PL/pgSQL function outer_func() line 3 at RETURN
CONTEXT: PL/pgSQL function outer_func() line 3 at RETURN
outer_func
------------
1

View File

@ -6,9 +6,7 @@
<note>
<title>Release Date</title>
<simpara>2014-??-??</simpara>
<simpara>Current as of 2014-11-17</simpara>
<!-- Be sure to remove "delta from 9.4beta" items below before final! -->
<simpara>2014-12-18</simpara>
</note>
<sect2>
@ -22,10 +20,31 @@
<itemizedlist>
<listitem>
<para>
Add <link linkend="datatype-json"><type>jsonb</></link>, a more
capable and efficient data type for storing <acronym>JSON</> data
</para>
</listitem>
<listitem>
<para>
Add new <acronym>SQL</> command <xref linkend="SQL-ALTERSYSTEM">
for changing <filename>postgresql.conf</> configuration file entries
</para>
</listitem>
<listitem>
<para>
Reduce lock strength for some <xref linkend="SQL-ALTERTABLE">
commands
</para>
</listitem>
<listitem>
<para>
Allow <link linkend="rules-materializedviews">materialized views</>
to be refreshed without blocking reads
to be refreshed without blocking concurrent reads
</para>
</listitem>
@ -44,27 +63,6 @@
</para>
</listitem>
<listitem>
<para>
Add <link linkend="datatype-json"><type>jsonb</></link>, a more
capable and efficient data type for storing <acronym>JSON</> data
</para>
</listitem>
<listitem>
<para>
Add new <acronym>SQL</> command <xref linkend="SQL-ALTERSYSTEM">
for updating <filename>postgresql.conf</> configuration file entries
</para>
</listitem>
<listitem>
<para>
Reduce lock strength for some <xref linkend="SQL-ALTERTABLE">
commands
</para>
</listitem>
</itemizedlist>
<para>
@ -90,39 +88,6 @@
<itemizedlist>
<!-- delta from 9.4beta2, be sure to remove before final: -->
<listitem>
<para>
Change on-disk format of <type>jsonb</> data
(Heikki Linnakangas and Tom Lane)
</para>
<para>
The on-disk representation was changed after 9.4beta2 to improve
efficiency. <application>pg_upgrade</> will refuse to upgrade any
9.4beta1 or 9.4beta2 database containing <type>jsonb</> columns; you
will need to use <application>pg_dumpall</> instead to migrate such
databases.
</para>
</listitem>
<!-- delta from 9.4beta3, be sure to remove before final: -->
<listitem>
<para>
Fix representation of numeric values in <type>jsonb</> GIN indexes
(Tom Lane)
</para>
<para>
Numeric items within <type>jsonb</> values are converted to strings
for storage in GIN <literal>jsonb_ops</> indexes. In 9.4beta3,
trailing zeroes in such items were mishandled. Beta testers
should <command>REINDEX</> any such indexes after upgrading, to ensure
that searches for numeric values will find the expected rows. Note
that <literal>jsonb_path_ops</> indexes were not affected by this bug.
</para>
</listitem>
<listitem>
<para>
Tighten checks for multidimensional <link
@ -131,8 +96,8 @@
<para>
Previously, an input array string that started with a single-element
array dimension could later contain multidimensional segments,
e.g. <literal>'{{1}, {2,3}}'::int[]</>.
sub-array could later contain multi-element sub-arrays,
e.g. <literal>'{{1}, {2,3}}'::int[]</> would be accepted.
</para>
</listitem>
@ -173,7 +138,7 @@
<listitem>
<para>
The <link linkend="functions-json-op-table"><type>json</type>
<literal>#&gt;</> <type>text[]</> path extraction operator</link> now
<literal>#&gt;</> <type>text[]</></link> path extraction operator now
returns its lefthand input, not NULL, if the array is empty (Tom Lane)
</para>
@ -335,8 +300,14 @@
<listitem>
<para>
Use the last specified <xref linkend="recovery-target"> if multiple
values are specified (Heikki Linnakangas)
Use the last specified <link linkend="recovery-target-settings">recovery
target parameter</link> if multiple target parameters are specified
(Heikki Linnakangas)
</para>
<para>
Previously, there was an undocumented precedence order among
the <literal>recovery_target_<replaceable>xxx</></literal> parameters.
</para>
</listitem>
@ -443,29 +414,6 @@
</para>
</listitem>
<!-- delta from 9.4beta2, be sure to remove before final: -->
<listitem>
<para>
Update time zone data files to tzdata release 2014j for DST law
changes in Russia and elsewhere
</para>
<para>
This change is more significant than most time zone updates because
many Russian zone abbreviations are changing meaning, including IRKT,
KRAT, MAGT, MSK, NOVT, OMST, SAKT, VLAT, YAKT, and YEKT.
<productname>PostgreSQL</> will now associate the correct UTC offset
with these abbreviations depending on the given date. Also, IANA
has formally recognized abbreviations of the form
A<replaceable>x</>ST/A<replaceable>x</>DT for Australian timezones,
so adopt those names as part of the <quote>Default</> abbreviation
set in <productname>PostgreSQL</>. The <quote>Australia</>
abbreviation set now need be selected only if it's desired to use
historical abbreviations that conflict with abbreviations commonly
used elsewhere, such as EST or SAST.
</para>
</listitem>
</itemizedlist>
</sect2>
@ -491,7 +439,7 @@
</para>
<para>
The <filename>contrib/worker_spi</> module shows an example of use
The new <filename>worker_spi</> module shows an example of use
of this feature.
</para>
</listitem>
@ -503,7 +451,8 @@
</para>
<para>
This feature is illustrated in <filename>contrib/test_shm_mq</filename>.
This feature is illustrated in the <filename>test_shm_mq</filename>
module.
</para>
</listitem>
@ -555,7 +504,7 @@
<para>
Indexes upgraded via <xref linkend="pgupgrade"> will work fine
but will still be in the old, larger <acronym>GIN</> format.
Use <xref linkend="SQL-REINDEX"> to recreate such an index in the
Use <xref linkend="SQL-REINDEX"> to recreate old GIN indexes in the
new format.
</para>
</listitem>
@ -656,8 +605,7 @@
<listitem>
<para>
Improve speed of <xref linkend="SQL-COPY">
with <literal>DEFAULT</> <link
Improve speed of <xref linkend="SQL-COPY"> with default <link
linkend="functions-sequence-table"><function>nextval()</></link>
columns (Simon Riggs)
</para>
@ -687,7 +635,7 @@
<listitem>
<para>
Make the planner more aggressive in extracting restriction clauses
Make the planner more aggressive about extracting restriction clauses
from mixed <literal>AND</>/<literal>OR</> clauses (Tom Lane)
</para>
</listitem>
@ -830,7 +778,7 @@
<listitem>
<para>
Add new <acronym>SQL</> command <xref linkend="SQL-ALTERSYSTEM">
for updating <filename>postgresql.conf</> configuration file entries
for changing <filename>postgresql.conf</> configuration file entries
(Amit Kapila)
</para>
@ -948,7 +896,7 @@
<para>
The previous level was <literal>LOG</>, which was too verbose
for per-session libraries.
for libraries loaded per-session.
</para>
</listitem>
@ -993,8 +941,7 @@
<listitem>
<para>
Add <link linkend="recovery-config"><filename>recovery.conf</></link>
parameter <xref linkend="recovery-min-apply-delay">
Add recovery parameter <xref linkend="recovery-min-apply-delay">
to delay replication (Robert Haas, Fabr&iacute;zio de Royes Mello,
Simon Riggs)
</para>
@ -1145,8 +1092,8 @@
<listitem>
<para>
Add <link linkend="queries-tablefunctions"><literal>WITH
ORDINALITY</></link> syntax to number rows returned from
set-returning functions in the <literal>FROM</> clause
ORDINALITY</></link> syntax to number the rows returned from a
set-returning function in the <literal>FROM</> clause
(Andrew Gierth, David Fetter)
</para>
@ -1272,9 +1219,9 @@
<listitem>
<para>
Allow <link linkend="rules-materializedviews">materialized views</>
to be refreshed without blocking reads
(Kevin Grittner)
Allow a <link linkend="rules-materializedviews">materialized view</>
to be refreshed without blocking other sessions from reading the view
meanwhile (Kevin Grittner)
</para>
<para>
@ -1435,8 +1382,9 @@
<para>
The line <emphasis>segment</> data type (<link
linkend="datatype-lseg"><type>lseg</></link>) has always been
fully supported. The previous <type>line</> data type (enabled
only via a compile-time option) is not binary or dump-compatible.
fully supported. The previous <type>line</> data type (which was
enabled only via a compile-time option) is not binary or
dump-compatible with the new implementation.
</para>
</listitem>
@ -1459,8 +1407,8 @@
<listitem>
<para>
Support time zone abbreviations that change from time to time
(Tom Lane)
Support time zone abbreviations that change UTC offset from time to
time (Tom Lane)
</para>
<para>
@ -1472,6 +1420,8 @@
Update the zone abbreviation definition files to make use of this
feature in timezone locales that have changed the UTC offset of their
abbreviations since 1970 (according to the IANA timezone database).
In such timezones, <productname>PostgreSQL</> will now associate the
correct UTC offset with the abbreviation depending on the given date.
</para>
</listitem>
@ -1507,8 +1457,8 @@
</para>
<para>
This new type allows faster access to values in a JSON
document and faster and more useful indexing of JSON columns.
This new type allows faster access to values within a JSON
document, and faster and more useful indexing of JSON columns.
Scalar values in <type>jsonb</> documents are stored as appropriate
scalar SQL types, and the JSON document structure is pre-parsed
rather than being stored as text as in the original <type>json</>
@ -1716,7 +1666,7 @@
<listitem>
<para>
Add control over which rows are passed
into aggregate functions using the <link
into aggregate functions via the <link
linkend="syntax-aggregates"><literal>FILTER</></link> clause
(David Fetter)
</para>
@ -1732,7 +1682,7 @@
<listitem>
<para>
Add aggregates <link
Add standard ordered-set aggregates <link
linkend="functions-orderedset-table"><function>percentile_cont()</></link>,
<function>percentile_disc()</>, <function>mode()</>, <link
linkend="functions-hypothetical-table"><function>rank()</></link>,
@ -1756,8 +1706,8 @@
types (Tom Lane)
</para>
<para>
This allows proper declaration of aggregates like the built-in
aggregate <function>array_agg()</> in SQL.
This allows proper declaration in SQL of aggregates like the built-in
aggregate <function>array_agg()</>.
</para>
</listitem>
@ -1801,9 +1751,9 @@
<listitem>
<para>
Add ability to store the PL/PgSQL
call stack into a variable using <link
linkend="plpgsql-get-diagnostics-context"><literal>PG_CONTEXT</></link>
Add ability to retrieve the current PL/PgSQL call stack
using <link linkend="plpgsql-get-diagnostics-context"><command>GET
DIAGNOSTICS</></link>
(Pavel Stehule, Stephen Frost)
</para>
</listitem>
@ -1811,10 +1761,9 @@
<listitem>
<para>
Add option <link
linkend="plpgsql-statements-assignment"><option>print_strict_params</></link>
to output parameters passed to queries generating <link
linkend="plpgsql-statements-sql-onerow"><literal>STRICT</></link>
errors (Marko Tiikkaja)
linkend="plpgsql-statements-sql-onerow"><option>print_strict_params</></link>
to display the parameters passed to a query that violated a
<literal>STRICT</> constraint (Marko Tiikkaja)
</para>
</listitem>
@ -1827,7 +1776,7 @@
</para>
<para>
Currently only shadowed variable errors/warnings are available.
Currently only warnings/errors about shadowed variables are available.
</para>
</listitem>
@ -1962,8 +1911,8 @@
<listitem>
<para>
Allow Control-C to abort <application>psql</> when hung at connection
startup (Peter Eisentraut)
Allow Control-C to abort <application>psql</> when it's hung at
connection startup (Peter Eisentraut)
</para>
</listitem>
@ -1976,23 +1925,23 @@
<listitem>
<para>
Make <application>psql</> <command>\db+</> show tablespace options
Make <application>psql</>'s <command>\db+</> show tablespace options
(Magnus Hagander)
</para>
</listitem>
<listitem>
<para>
Make <application>psql</> <command>\do+</> display the functions
which implement the operators (Marko Tiikkaja)
Make <command>\do+</> display the functions
that implement the operators (Marko Tiikkaja)
</para>
</listitem>
<listitem>
<para>
Make <application>psql</> <command>\d+</> output an
Make <command>\d+</> output an
<literal>OID</> line only if an <literal>oid</literal> column
exists in a table (Bruce Momjian)
exists in the table (Bruce Momjian)
</para>
<para>
@ -2015,23 +1964,22 @@
<listitem>
<para>
Fix <application>psql</> <command>\copy</> to no longer require
Fix <command>\copy</> to no longer require
a space between <literal>stdin</> and a semicolon (Etsuro Fujita)
</para>
</listitem>
<listitem>
<para>
Output the row count at the end
of <application>psql</> <command>\copy</> just
like <xref linkend="SQL-COPY"> (Kumar Rajeev Rastogi)
Output the row count at the end of <command>\copy</>, just
like <command>COPY</> already did (Kumar Rajeev Rastogi)
</para>
</listitem>
<listitem>
<para>
Fix <application>psql</> <command>\conninfo</> to display the
server's <acronym>IP</> address for clients that connect using
Fix <command>\conninfo</> to display the
server's <acronym>IP</> address for connections using
<literal>hostaddr</> (Fujii Masao)
</para>
@ -2043,29 +1991,29 @@
<listitem>
<para>
Mention the <acronym>SSL</> protocol version in
<application>psql</>'s <command>\conninfo</> (Marko Kreen)
Show the <acronym>SSL</> protocol version in
<command>\conninfo</> (Marko Kreen)
</para>
</listitem>
<listitem>
<para>
Add <application>psql</> tab completion for <command>\pset</>
Add tab completion for <command>\pset</>
(Pavel Stehule)
</para>
</listitem>
<listitem>
<para>
Allow <application>psql</>'s <command>\pset</> with no arguments
Allow <command>\pset</> with no arguments
to show all settings (Gilles Darold)
</para>
</listitem>
<listitem>
<para>
In <application>psql</>, display the history file name written by
<command>\s</> without converting it to an absolute path (Tom Lane)
Make <command>\s</> display the name of the history file it wrote
without converting it to an absolute path (Tom Lane)
</para>
<para>
@ -2291,7 +2239,7 @@
Currently, these tests are run by <literal>make check-world</>
only if the <option>--enable-tap-tests</> option was given
to <application>configure</>.
This might become the default in some future release.
This might become the default behavior in some future release.
</para>
</listitem>
@ -2316,7 +2264,7 @@
<listitem>
<para>
Improve support for <envar>VPATH</> builds of <acronym>PGXS</>
modules (C&eacute;dric Villemain, Andrew Dunstan)
modules (C&eacute;dric Villemain, Andrew Dunstan, Peter Eisentraut)
</para>
</listitem>
@ -2345,14 +2293,15 @@
<listitem>
<para>
Various minor security and sanity fixes reported by the
Fix various minor security and sanity issues reported by the
<productname>Coverity</> scanner (Stephen Frost)
</para>
</listitem>
<listitem>
<para>
Improve <application>Valgrind</> detection of invalid memory usage
Improve detection of invalid memory usage when testing
<productname>PostgreSQL</> with <application>Valgrind</>
(Noah Misch)
</para>
</listitem>
@ -2373,10 +2322,12 @@
Allow <application>pgindent</> to accept a command-line list
of typedefs (Bruce Momjian)
</para>
</listitem>
<listitem>
<para>
<application>pgindent</> is also now smarter about blank lines
around preprocessor conditionals.
Make <application>pgindent</> smarter about blank lines
around preprocessor conditionals (Bruce Momjian)
</para>
</listitem>
@ -2479,8 +2430,12 @@
<listitem>
<para>
Improve <xref linkend="pgtrgm">'s choice of trigrams for indexed
regular expression searches by discouraging the selection of
trigrams containing whitespace (Alexander Korotkov)
regular expression searches (Alexander Korotkov)
</para>
<para>
This change discourages use of trigrams containing whitespace, which
are usually less selective.
</para>
</listitem>
@ -2518,8 +2473,8 @@
<listitem>
<para>
Pass <xref linkend="pgupgrade"> user name (<option>-U</> option) to
analyze scripts (Bruce Momjian)
Pass <xref linkend="pgupgrade">'s user name (<option>-U</>) option to
generated analyze scripts (Bruce Momjian)
</para>
</listitem>