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:
parent
c50423c0fe
commit
0923b01e3e
@ -3180,9 +3180,10 @@ SELECT person.name, holidays.num_weeks FROM person, holidays
|
|||||||
</indexterm>
|
</indexterm>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Lines (<type>line</type>) are represented by the linear equation Ax + By
|
Lines are represented by the linear
|
||||||
+ C = 0, where A and B are not both zero. Values of
|
equation <replaceable>A</>x + <replaceable>B</>y + <replaceable>C</> = 0,
|
||||||
type <type>line</type> is input and output in the following form:
|
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>
|
<synopsis>
|
||||||
{ <replaceable>A</replaceable>, <replaceable>B</replaceable>, <replaceable>C</replaceable> }
|
{ <replaceable>A</replaceable>, <replaceable>B</replaceable>, <replaceable>C</replaceable> }
|
||||||
</synopsis>
|
</synopsis>
|
||||||
@ -3200,7 +3201,7 @@ SELECT person.name, holidays.num_weeks FROM person, holidays
|
|||||||
<literal>(<replaceable>x1</replaceable>,<replaceable>y1</replaceable>)</literal>
|
<literal>(<replaceable>x1</replaceable>,<replaceable>y1</replaceable>)</literal>
|
||||||
and
|
and
|
||||||
<literal>(<replaceable>x2</replaceable>,<replaceable>y2</replaceable>)</literal>
|
<literal>(<replaceable>x2</replaceable>,<replaceable>y2</replaceable>)</literal>
|
||||||
are two (different) points on the line.
|
are two different points on the line.
|
||||||
</para>
|
</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
@ -3216,9 +3217,9 @@ SELECT person.name, holidays.num_weeks FROM person, holidays
|
|||||||
</indexterm>
|
</indexterm>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Line segments (<type>lseg</type>) are represented by pairs of points.
|
Line segments are represented by pairs of points that are the endpoints
|
||||||
Values of type <type>lseg</type> are specified using any of the following
|
of the segment. Values of type <type>lseg</type> are specified using any
|
||||||
syntaxes:
|
of the following syntaxes:
|
||||||
|
|
||||||
<synopsis>
|
<synopsis>
|
||||||
[ ( <replaceable>x1</replaceable> , <replaceable>y1</replaceable> ) , ( <replaceable>x2</replaceable> , <replaceable>y2</replaceable> ) ]
|
[ ( <replaceable>x1</replaceable> , <replaceable>y1</replaceable> ) , ( <replaceable>x2</replaceable> , <replaceable>y2</replaceable> ) ]
|
||||||
|
@ -1078,15 +1078,26 @@ END;
|
|||||||
always sets <literal>FOUND</literal> to true.
|
always sets <literal>FOUND</literal> to true.
|
||||||
</para>
|
</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>
|
<para>
|
||||||
If <literal>print_strict_params</> is enabled for the function,
|
If <literal>print_strict_params</> is enabled for the function,
|
||||||
you will get information about the parameters passed to the
|
then when an error is thrown because the requirements
|
||||||
query in the <literal>DETAIL</> part of the error message produced
|
of <literal>STRICT</> are not met, the <literal>DETAIL</> part of
|
||||||
when the requirements of STRICT are not met. You can change this
|
the error message will include information about the parameters
|
||||||
setting on a system-wide basis by setting
|
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
|
<varname>plpgsql.print_strict_params</>, though only subsequent
|
||||||
function compilations will be affected. You can also enable it
|
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>
|
<programlisting>
|
||||||
CREATE FUNCTION get_userid(username text) RETURNS int
|
CREATE FUNCTION get_userid(username text) RETURNS int
|
||||||
AS $$
|
AS $$
|
||||||
@ -1100,15 +1111,12 @@ BEGIN
|
|||||||
END
|
END
|
||||||
$$ LANGUAGE plpgsql;
|
$$ LANGUAGE plpgsql;
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</para>
|
On failure, this function might produce an error message such as
|
||||||
|
<programlisting>
|
||||||
<para>
|
ERROR: query returned no rows
|
||||||
For <command>INSERT</>/<command>UPDATE</>/<command>DELETE</> with
|
DETAIL: parameters: $1 = 'nosuchuser'
|
||||||
<literal>RETURNING</>, <application>PL/pgSQL</application> reports
|
CONTEXT: PL/pgSQL function get_userid(text) line 6 at SQL statement
|
||||||
an error for more than one returned row, even when
|
</programlisting>
|
||||||
<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>
|
||||||
|
|
||||||
<note>
|
<note>
|
||||||
@ -2767,28 +2775,36 @@ END;
|
|||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2 id="plpgsql-get-diagnostics-context">
|
<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>
|
<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>
|
</synopsis>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Calling <command>GET DIAGNOSTICS</command> with status
|
Currently only one information item is supported. Status
|
||||||
item <varname>PG_CONTEXT</> will return a text string with line(s) of
|
item <literal>PG_CONTEXT</> will return a text string with line(s) of
|
||||||
text describing the call stack. The first row refers to the
|
text describing the call stack. The first line refers to the
|
||||||
current function and currently executing <command>GET DIAGNOSTICS</command>
|
current function and currently executing <command>GET DIAGNOSTICS</command>
|
||||||
command. The second and any subsequent rows refer to the calling functions
|
command. The second and any subsequent lines refer to calling functions
|
||||||
up the call stack.
|
further up the call stack. For example:
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
CREATE OR REPLACE FUNCTION public.outer_func() RETURNS integer AS $$
|
CREATE OR REPLACE FUNCTION outer_func() RETURNS integer AS $$
|
||||||
BEGIN
|
BEGIN
|
||||||
RETURN inner_func();
|
RETURN inner_func();
|
||||||
END;
|
END;
|
||||||
$$ LANGUAGE plpgsql;
|
$$ LANGUAGE plpgsql;
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION public.inner_func() RETURNS integer AS $$
|
CREATE OR REPLACE FUNCTION inner_func() RETURNS integer AS $$
|
||||||
DECLARE
|
DECLARE
|
||||||
stack text;
|
stack text;
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -2801,8 +2817,9 @@ $$ LANGUAGE plpgsql;
|
|||||||
SELECT outer_func();
|
SELECT outer_func();
|
||||||
|
|
||||||
NOTICE: --- Call Stack ---
|
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
|
PL/pgSQL function outer_func() line 3 at RETURN
|
||||||
|
CONTEXT: PL/pgSQL function outer_func() line 3 at RETURN
|
||||||
outer_func
|
outer_func
|
||||||
------------
|
------------
|
||||||
1
|
1
|
||||||
|
@ -6,9 +6,7 @@
|
|||||||
|
|
||||||
<note>
|
<note>
|
||||||
<title>Release Date</title>
|
<title>Release Date</title>
|
||||||
<simpara>2014-??-??</simpara>
|
<simpara>2014-12-18</simpara>
|
||||||
<simpara>Current as of 2014-11-17</simpara>
|
|
||||||
<!-- Be sure to remove "delta from 9.4beta" items below before final! -->
|
|
||||||
</note>
|
</note>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
@ -22,10 +20,31 @@
|
|||||||
|
|
||||||
<itemizedlist>
|
<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>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Allow <link linkend="rules-materializedviews">materialized views</>
|
Allow <link linkend="rules-materializedviews">materialized views</>
|
||||||
to be refreshed without blocking reads
|
to be refreshed without blocking concurrent reads
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -44,27 +63,6 @@
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</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>
|
</itemizedlist>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@ -90,39 +88,6 @@
|
|||||||
|
|
||||||
<itemizedlist>
|
<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>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Tighten checks for multidimensional <link
|
Tighten checks for multidimensional <link
|
||||||
@ -131,8 +96,8 @@
|
|||||||
|
|
||||||
<para>
|
<para>
|
||||||
Previously, an input array string that started with a single-element
|
Previously, an input array string that started with a single-element
|
||||||
array dimension could later contain multidimensional segments,
|
sub-array could later contain multi-element sub-arrays,
|
||||||
e.g. <literal>'{{1}, {2,3}}'::int[]</>.
|
e.g. <literal>'{{1}, {2,3}}'::int[]</> would be accepted.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -173,7 +138,7 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The <link linkend="functions-json-op-table"><type>json</type>
|
The <link linkend="functions-json-op-table"><type>json</type>
|
||||||
<literal>#></> <type>text[]</> path extraction operator</link> now
|
<literal>#></> <type>text[]</></link> path extraction operator now
|
||||||
returns its lefthand input, not NULL, if the array is empty (Tom Lane)
|
returns its lefthand input, not NULL, if the array is empty (Tom Lane)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@ -335,8 +300,14 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Use the last specified <xref linkend="recovery-target"> if multiple
|
Use the last specified <link linkend="recovery-target-settings">recovery
|
||||||
values are specified (Heikki Linnakangas)
|
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>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -443,29 +414,6 @@
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</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>
|
</itemizedlist>
|
||||||
|
|
||||||
</sect2>
|
</sect2>
|
||||||
@ -491,7 +439,7 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<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.
|
of this feature.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -503,7 +451,8 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<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>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -555,7 +504,7 @@
|
|||||||
<para>
|
<para>
|
||||||
Indexes upgraded via <xref linkend="pgupgrade"> will work fine
|
Indexes upgraded via <xref linkend="pgupgrade"> will work fine
|
||||||
but will still be in the old, larger <acronym>GIN</> format.
|
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.
|
new format.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -656,8 +605,7 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Improve speed of <xref linkend="SQL-COPY">
|
Improve speed of <xref linkend="SQL-COPY"> with default <link
|
||||||
with <literal>DEFAULT</> <link
|
|
||||||
linkend="functions-sequence-table"><function>nextval()</></link>
|
linkend="functions-sequence-table"><function>nextval()</></link>
|
||||||
columns (Simon Riggs)
|
columns (Simon Riggs)
|
||||||
</para>
|
</para>
|
||||||
@ -687,7 +635,7 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<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)
|
from mixed <literal>AND</>/<literal>OR</> clauses (Tom Lane)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -830,7 +778,7 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add new <acronym>SQL</> command <xref linkend="SQL-ALTERSYSTEM">
|
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)
|
(Amit Kapila)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@ -948,7 +896,7 @@
|
|||||||
|
|
||||||
<para>
|
<para>
|
||||||
The previous level was <literal>LOG</>, which was too verbose
|
The previous level was <literal>LOG</>, which was too verbose
|
||||||
for per-session libraries.
|
for libraries loaded per-session.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -993,8 +941,7 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add <link linkend="recovery-config"><filename>recovery.conf</></link>
|
Add recovery parameter <xref linkend="recovery-min-apply-delay">
|
||||||
parameter <xref linkend="recovery-min-apply-delay">
|
|
||||||
to delay replication (Robert Haas, Fabrízio de Royes Mello,
|
to delay replication (Robert Haas, Fabrízio de Royes Mello,
|
||||||
Simon Riggs)
|
Simon Riggs)
|
||||||
</para>
|
</para>
|
||||||
@ -1145,8 +1092,8 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add <link linkend="queries-tablefunctions"><literal>WITH
|
Add <link linkend="queries-tablefunctions"><literal>WITH
|
||||||
ORDINALITY</></link> syntax to number rows returned from
|
ORDINALITY</></link> syntax to number the rows returned from a
|
||||||
set-returning functions in the <literal>FROM</> clause
|
set-returning function in the <literal>FROM</> clause
|
||||||
(Andrew Gierth, David Fetter)
|
(Andrew Gierth, David Fetter)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@ -1272,9 +1219,9 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Allow <link linkend="rules-materializedviews">materialized views</>
|
Allow a <link linkend="rules-materializedviews">materialized view</>
|
||||||
to be refreshed without blocking reads
|
to be refreshed without blocking other sessions from reading the view
|
||||||
(Kevin Grittner)
|
meanwhile (Kevin Grittner)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@ -1435,8 +1382,9 @@
|
|||||||
<para>
|
<para>
|
||||||
The line <emphasis>segment</> data type (<link
|
The line <emphasis>segment</> data type (<link
|
||||||
linkend="datatype-lseg"><type>lseg</></link>) has always been
|
linkend="datatype-lseg"><type>lseg</></link>) has always been
|
||||||
fully supported. The previous <type>line</> data type (enabled
|
fully supported. The previous <type>line</> data type (which was
|
||||||
only via a compile-time option) is not binary or dump-compatible.
|
enabled only via a compile-time option) is not binary or
|
||||||
|
dump-compatible with the new implementation.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -1459,8 +1407,8 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Support time zone abbreviations that change from time to time
|
Support time zone abbreviations that change UTC offset from time to
|
||||||
(Tom Lane)
|
time (Tom Lane)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@ -1472,6 +1420,8 @@
|
|||||||
Update the zone abbreviation definition files to make use of this
|
Update the zone abbreviation definition files to make use of this
|
||||||
feature in timezone locales that have changed the UTC offset of their
|
feature in timezone locales that have changed the UTC offset of their
|
||||||
abbreviations since 1970 (according to the IANA timezone database).
|
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>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -1507,8 +1457,8 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
This new type allows faster access to values in a JSON
|
This new type allows faster access to values within a JSON
|
||||||
document and faster and more useful indexing of JSON columns.
|
document, and faster and more useful indexing of JSON columns.
|
||||||
Scalar values in <type>jsonb</> documents are stored as appropriate
|
Scalar values in <type>jsonb</> documents are stored as appropriate
|
||||||
scalar SQL types, and the JSON document structure is pre-parsed
|
scalar SQL types, and the JSON document structure is pre-parsed
|
||||||
rather than being stored as text as in the original <type>json</>
|
rather than being stored as text as in the original <type>json</>
|
||||||
@ -1716,7 +1666,7 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add control over which rows are passed
|
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
|
linkend="syntax-aggregates"><literal>FILTER</></link> clause
|
||||||
(David Fetter)
|
(David Fetter)
|
||||||
</para>
|
</para>
|
||||||
@ -1732,7 +1682,7 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add aggregates <link
|
Add standard ordered-set aggregates <link
|
||||||
linkend="functions-orderedset-table"><function>percentile_cont()</></link>,
|
linkend="functions-orderedset-table"><function>percentile_cont()</></link>,
|
||||||
<function>percentile_disc()</>, <function>mode()</>, <link
|
<function>percentile_disc()</>, <function>mode()</>, <link
|
||||||
linkend="functions-hypothetical-table"><function>rank()</></link>,
|
linkend="functions-hypothetical-table"><function>rank()</></link>,
|
||||||
@ -1756,8 +1706,8 @@
|
|||||||
types (Tom Lane)
|
types (Tom Lane)
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
This allows proper declaration of aggregates like the built-in
|
This allows proper declaration in SQL of aggregates like the built-in
|
||||||
aggregate <function>array_agg()</> in SQL.
|
aggregate <function>array_agg()</>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -1801,9 +1751,9 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add ability to store the PL/PgSQL
|
Add ability to retrieve the current PL/PgSQL call stack
|
||||||
call stack into a variable using <link
|
using <link linkend="plpgsql-get-diagnostics-context"><command>GET
|
||||||
linkend="plpgsql-get-diagnostics-context"><literal>PG_CONTEXT</></link>
|
DIAGNOSTICS</></link>
|
||||||
(Pavel Stehule, Stephen Frost)
|
(Pavel Stehule, Stephen Frost)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -1811,10 +1761,9 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add option <link
|
Add option <link
|
||||||
linkend="plpgsql-statements-assignment"><option>print_strict_params</></link>
|
linkend="plpgsql-statements-sql-onerow"><option>print_strict_params</></link>
|
||||||
to output parameters passed to queries generating <link
|
to display the parameters passed to a query that violated a
|
||||||
linkend="plpgsql-statements-sql-onerow"><literal>STRICT</></link>
|
<literal>STRICT</> constraint (Marko Tiikkaja)
|
||||||
errors (Marko Tiikkaja)
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -1827,7 +1776,7 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Currently only shadowed variable errors/warnings are available.
|
Currently only warnings/errors about shadowed variables are available.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -1962,8 +1911,8 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Allow Control-C to abort <application>psql</> when hung at connection
|
Allow Control-C to abort <application>psql</> when it's hung at
|
||||||
startup (Peter Eisentraut)
|
connection startup (Peter Eisentraut)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -1976,23 +1925,23 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Make <application>psql</> <command>\db+</> show tablespace options
|
Make <application>psql</>'s <command>\db+</> show tablespace options
|
||||||
(Magnus Hagander)
|
(Magnus Hagander)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Make <application>psql</> <command>\do+</> display the functions
|
Make <command>\do+</> display the functions
|
||||||
which implement the operators (Marko Tiikkaja)
|
that implement the operators (Marko Tiikkaja)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Make <application>psql</> <command>\d+</> output an
|
Make <command>\d+</> output an
|
||||||
<literal>OID</> line only if an <literal>oid</literal> column
|
<literal>OID</> line only if an <literal>oid</literal> column
|
||||||
exists in a table (Bruce Momjian)
|
exists in the table (Bruce Momjian)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@ -2015,23 +1964,22 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<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)
|
a space between <literal>stdin</> and a semicolon (Etsuro Fujita)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Output the row count at the end
|
Output the row count at the end of <command>\copy</>, just
|
||||||
of <application>psql</> <command>\copy</> just
|
like <command>COPY</> already did (Kumar Rajeev Rastogi)
|
||||||
like <xref linkend="SQL-COPY"> (Kumar Rajeev Rastogi)
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Fix <application>psql</> <command>\conninfo</> to display the
|
Fix <command>\conninfo</> to display the
|
||||||
server's <acronym>IP</> address for clients that connect using
|
server's <acronym>IP</> address for connections using
|
||||||
<literal>hostaddr</> (Fujii Masao)
|
<literal>hostaddr</> (Fujii Masao)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@ -2043,29 +1991,29 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Mention the <acronym>SSL</> protocol version in
|
Show the <acronym>SSL</> protocol version in
|
||||||
<application>psql</>'s <command>\conninfo</> (Marko Kreen)
|
<command>\conninfo</> (Marko Kreen)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add <application>psql</> tab completion for <command>\pset</>
|
Add tab completion for <command>\pset</>
|
||||||
(Pavel Stehule)
|
(Pavel Stehule)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Allow <application>psql</>'s <command>\pset</> with no arguments
|
Allow <command>\pset</> with no arguments
|
||||||
to show all settings (Gilles Darold)
|
to show all settings (Gilles Darold)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
In <application>psql</>, display the history file name written by
|
Make <command>\s</> display the name of the history file it wrote
|
||||||
<command>\s</> without converting it to an absolute path (Tom Lane)
|
without converting it to an absolute path (Tom Lane)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@ -2291,7 +2239,7 @@
|
|||||||
Currently, these tests are run by <literal>make check-world</>
|
Currently, these tests are run by <literal>make check-world</>
|
||||||
only if the <option>--enable-tap-tests</> option was given
|
only if the <option>--enable-tap-tests</> option was given
|
||||||
to <application>configure</>.
|
to <application>configure</>.
|
||||||
This might become the default in some future release.
|
This might become the default behavior in some future release.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -2316,7 +2264,7 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Improve support for <envar>VPATH</> builds of <acronym>PGXS</>
|
Improve support for <envar>VPATH</> builds of <acronym>PGXS</>
|
||||||
modules (Cédric Villemain, Andrew Dunstan)
|
modules (Cédric Villemain, Andrew Dunstan, Peter Eisentraut)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -2345,14 +2293,15 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<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)
|
<productname>Coverity</> scanner (Stephen Frost)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Improve <application>Valgrind</> detection of invalid memory usage
|
Improve detection of invalid memory usage when testing
|
||||||
|
<productname>PostgreSQL</> with <application>Valgrind</>
|
||||||
(Noah Misch)
|
(Noah Misch)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -2373,10 +2322,12 @@
|
|||||||
Allow <application>pgindent</> to accept a command-line list
|
Allow <application>pgindent</> to accept a command-line list
|
||||||
of typedefs (Bruce Momjian)
|
of typedefs (Bruce Momjian)
|
||||||
</para>
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<application>pgindent</> is also now smarter about blank lines
|
Make <application>pgindent</> smarter about blank lines
|
||||||
around preprocessor conditionals.
|
around preprocessor conditionals (Bruce Momjian)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -2479,8 +2430,12 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Improve <xref linkend="pgtrgm">'s choice of trigrams for indexed
|
Improve <xref linkend="pgtrgm">'s choice of trigrams for indexed
|
||||||
regular expression searches by discouraging the selection of
|
regular expression searches (Alexander Korotkov)
|
||||||
trigrams containing whitespace (Alexander Korotkov)
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This change discourages use of trigrams containing whitespace, which
|
||||||
|
are usually less selective.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -2518,8 +2473,8 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Pass <xref linkend="pgupgrade"> user name (<option>-U</> option) to
|
Pass <xref linkend="pgupgrade">'s user name (<option>-U</>) option to
|
||||||
analyze scripts (Bruce Momjian)
|
generated analyze scripts (Bruce Momjian)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user