Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
979f8f04
Commit
979f8f04
authored
Aug 22, 2012
by
Tom Lane
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make an editorial pass over the 9.2 release notes.
A very large number of small improvements ...
parent
932a2719
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
598 additions
and
664 deletions
+598
-664
doc/src/sgml/datatype.sgml
doc/src/sgml/datatype.sgml
+3
-1
doc/src/sgml/func.sgml
doc/src/sgml/func.sgml
+1
-1
doc/src/sgml/release-9.2.sgml
doc/src/sgml/release-9.2.sgml
+594
-662
No files found.
doc/src/sgml/datatype.sgml
View file @
979f8f04
...
...
@@ -4196,7 +4196,9 @@ SET xmloption TO { DOCUMENT | CONTENT };
</indexterm>
<para>
The <type>json</type> data type can be used to store JSON data. Such
The <type>json</type> data type can be used to store JSON (JavaScript
Object Notation) data, as specified in <ulink
url="http://www.ietf.org/rfc/rfc4627.txt">RFC 4627</ulink>. Such
data can also be stored as <type>text</type>, but the
<type>json</type> data type has the advantage of checking that each
stored value is a valid JSON value. There are also related support
...
...
doc/src/sgml/func.sgml
View file @
979f8f04
...
...
@@ -9620,7 +9620,7 @@ table2-mapping
<sect1
id=
"functions-json"
>
<title>
JSON Functions
</title>
<indexterm
zone=
"
datatype
-json"
>
<indexterm
zone=
"
functions
-json"
>
<primary>
JSON
</primary>
<secondary>
Functions and operators
</secondary>
</indexterm>
...
...
doc/src/sgml/release-9.2.sgml
View file @
979f8f04
...
...
@@ -45,92 +45,95 @@
</para>
<sect3>
<title>
Function
s</title>
<title>
System Catalog
s</title>
<itemizedlist>
<listitem>
<para>
Ensure that
<link
linkend="
functions-xml-processing"><function>xpath()
</></link>
escapes special characters in string values (Florian Pflug
)
Remove the <structfield>spclocation</> field from
<link
linkend="
catalog-pg-tablespace"><structname>pg_tablespace
</></link>
(Magnus Hagander
)
</para>
<para>
Without this it is possible to output illegal
<acronym>XML</acronym>.
This field was duplicative of the symbolic links that actually define
tablespace locations, and thus risked errors of omission when moving
a tablespace. This change allows tablespace directories to be moved
while the server is down, by manually adjusting the symbolic links.
To replace this field, we have added <link
linkend="functions-info-catalog-table"><function>pg_tablespace_location()</></link>
to allow querying of the symbolic links.
</para>
</listitem>
<listitem>
<para>
Remove <link linkend="hstore">hstore</link>'s <literal>=></>
operator (Robert Haas)
Move <type>tsvector</> most-common-element statistics to new
<link linkend="view-pg-stats"><structname>pg_stats</></link> columns
(Alexander Korotkov)
</para>
<para>
Users should now use hstore(text, text). Since
<productname>PostgreSQL</productname> 9.0, a warning message is
emitted when an operator named => is created because
the <acronym>SQL</acronym> standard reserves that token for
another use.
Consult <structfield>most_common_elems</>
and <structfield>most_common_elem_freqs</> for the data formerly
available in <structfield>most_common_vals</>
and <structfield>most_common_freqs</> for a <type>tsvector</> column.
</para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Functions</title>
<itemizedlist>
<listitem>
<para>
Have <link
linkend="functions-admin-dbobject"><function>pg_relation_size()</></link>
and friends return NULL if the object does not exist (Phil Sorber)
Remove <link linkend="hstore">hstore</link>'s <literal>=></>
operator (Robert Haas)
</para>
<para>
This prevents queries that call these functions from returning
errors during concurrent drop operations.
Users should now use <function>hstore(text, text)</>. Since
<productname>PostgreSQL</productname> 9.0, a warning message has been
emitted when an operator named <literal>=></> is created because
the <acronym>SQL</acronym> standard reserves that token for
another use.
</para>
</listitem>
<listitem>
<para>
Remove the
<link
linkend="
catalog-pg-tablespace"><structname>spclocation
</></link>
field from <structname>pg_tablespace</> (Magnus Hagander
)
Ensure that
<link
linkend="
functions-xml-processing"><function>xpath()
</></link>
escapes special characters in string values (Florian Pflug
)
</para>
<para>
This field was duplicative of the symbolic links already
present in the data directory. This allows tablespace
directories to be moved while the server is down. Also add
<function>pg_tablespace_location()</> to allow querying of the
symbolic links.
Without this it is possible to output invalid <acronym>XML</acronym>.
</para>
</listitem>
<listitem>
<para>
M
ove <type>tsvector</> most-common-element statistics to new
<link linkend="view-pg-stats"><structname>pg_stats</></link> columns
(Alexander Korotkov
)
M
ake <link
linkend="functions-admin-dbobject"><function>pg_relation_size()</></link>
and friends return NULL if the object does not exist (Phil Sorber
)
</para>
<para>
Consult <structname>most_common_elems</>
and <structname>most_common_elem_freqs</> for the data formerly
available in <structname>most_common_vals</>
and <structname>most_common_freqs</>.
This prevents queries that call these functions from returning
errors immediately after a concurrent <command>DROP</>.
</para>
</listitem>
</itemizedlist>
<sect4>
<title>Temporal Functions</title>
<itemizedlist>
<listitem>
<para>
Hav
e <link
Mak
e <link
linkend="functions-datetime-extract"><function>EXTRACT</></link> of
a non-timezone-aware value measure the epoch from local midnight,
not <acronym>UTC</acronym> midnight (Tom Lane)
...
...
@@ -150,9 +153,8 @@
</para>
<para>
Previously, <command>SELECT '04:00:00
yesterday'::timestamp</command> returned yesterday's date at
midnight.
Previously, <literal>SELECT '04:00:00 yesterday'::timestamp</literal>
returned yesterday's date at midnight.
</para>
</listitem>
...
...
@@ -170,8 +172,7 @@
</para>
</listitem>
</itemizedlist>
</sect4>
</itemizedlist>
</sect3>
...
...
@@ -195,7 +196,7 @@
<listitem>
<para>
No longer
auto-
lowercase procedural language names (Robert Haas)
No longer
forcibly
lowercase procedural language names (Robert Haas)
</para>
<para>
...
...
@@ -207,6 +208,18 @@
</para>
</listitem>
<listitem>
<para>
Change system-generated names of foreign key enforcement triggers
(Tom Lane)
</para>
<para>
This change ensures that the triggers fire in the correct order in
some corner cases involving self-referential foreign key constraints.
</para>
</listitem>
</itemizedlist>
</sect3>
...
...
@@ -225,9 +238,11 @@
</para>
<para>
Previously, such usage was only properly expanded when isolated by
whitespace, e.g. <literal>'FOO'BAR</> was output as <literal>FOO
BAR</>.
Previously, such references were treated oddly when not separated by
whitespace from adjacent text. For example <literal>'FOO'BAR</> was
output as <literal>FOO BAR</> (unexpected insertion of a space) and
<literal>FOO'BAR'BAZ</> was output unchanged (not removing the quotes
as most would expect).
</para>
</listitem>
...
...
@@ -241,40 +256,27 @@
</para>
<para>
Users must supply double-quotes in the command arguments to
accomplish double-quoting behavior.
</para>
</listitem>
<listitem>
<para>
Disable prompting for the user name in <link
linkend="APP-DROPDB"><application>dropdb</></link> unless
<option>--interactive</> is specified (Peter Eisentraut)
Users must now include double-quotes in the command arguments if
quoting is wanted.
</para>
</listitem>
<listitem>
<para>
No longer have <link
linkend="APP-CREATEUSER"><application>createuser</></link> prompt
for settings (Peter Eisentraut)
<link linkend="APP-CREATEUSER"><application>createuser</></link>
no longer prompts for option settings by default (Peter Eisentraut)
</para>
<para>
Previously <application>createuser</> prompted regarding various
user settings.
Use <option>--interactive</> to obtain the old behavior.
</para>
</listitem>
<listitem>
<para>
Remove <link linkend="APP-INITDB"><application>initdb</></link>
support for the crypt authentication method (Peter Eisentraut)
</para>
<para>
This was removed from the backend years ago.
Disable prompting for the user name in <link
linkend="APP-DROPUSER"><application>dropuser</></link> unless
<option>--interactive</> is specified (Peter Eisentraut)
</para>
</listitem>
...
...
@@ -286,50 +288,51 @@
<title>Server Settings</title>
<itemizedlist>
<listitem>
<para>
Remove the <filename>postgresql.conf</filename> setting
<varname>silent_mode</> (Heikki Linnakangas)
Add server parameters for specifying the <link
linkend="guc-ssl-ca-file">locations of server-side
<acronym>SSL</acronym> files</link> (Peter Eisentraut)
</para>
<para>
This behavior could already be accomplished with <command>pg_ctl
-l postmaster.log</>.
This allows changing the names and locations of the files that were
previously hard-coded as <filename>server.crt</>,
<filename>server.key</>, <filename>root.crt</>, and
<filename>root.crl</> in the data directory.
<emphasis>The server will no longer examine <filename>root.crt</> or
<filename>root.crl</> by default</emphasis>; to load these files, the
associated parameters must be set to non-default values.
</para>
</listitem>
<listitem>
<para>
Remove <acronym>GUC</acronym> <varname>wal_sender_delay</>,
as it is no longer needed (Tom Lane)
Remove the <varname>silent_mode</> parameter (Heikki Linnakangas)
</para>
</listitem>
<listitem>
<para>
Remove the <varname>custom_variable_classes</>
<filename>postgresql.conf</filename> parameter (Tom Lane)
Similar behavior can be obtained with <command>pg_ctl start
-l postmaster.log</>.
</para>
</listitem>
<listitem>
<para>
The checking provided by this setting was dubious. Now any
setting can be prefixed by any class name.
Remove the <varname>wal_sender_delay</> parameter,
as it is no longer needed (Tom Lane)
</para>
</listitem>
<listitem>
<para>
Add GUC <link linkend="guc-ssl-key-file">parameters</link> for
specifying the locations of server-side <acronym>SSL</acronym>
files (Peter Eisentraut)
Remove the <varname>custom_variable_classes</> parameter (Tom Lane)
</para>
<para>
This allows changing the location of the files that were previously
hard-coded to <filename>server.crt</>, <filename>server.key</>,
<filename>root.crt</>, <filename>root.crl</>. <acronym>CA</>
(crt) and <acronym>CRL</acronym> files no longer have default
names, and if specified, these files must exist.
The checking provided by this setting was dubious. Now any
setting can be prefixed by any class name.
</para>
</listitem>
...
...
@@ -344,26 +347,28 @@
<listitem>
<para>
Rename <link
linkend="monitoring-stats-views-table"><structname>pg_stat_activity</></link><struct
name
>.procpid</>
to <struct
name
>pid</>, to match other system tables (Magnus Hagander)
linkend="monitoring-stats-views-table"><structname>pg_stat_activity</></link><struct
field
>.procpid</>
to <struct
field
>pid</>, to match other system tables (Magnus Hagander)
</para>
</listitem>
<listitem>
<para>
Create a separate <struct
name
>pg_stat_activity</> column to
report
state information, e.g. idl
e (Scott Mead, Magnus Hagander)
Create a separate <struct
field
>pg_stat_activity</> column to
report
process stat
e (Scott Mead, Magnus Hagander)
</para>
<para>
The last query values are preserved, allowing for enhanced analysis.
The previous <structfield>query</> and <structfield>query_start</>
values now remain available for an idle session, allowing enhanced
analysis.
</para>
</listitem>
<listitem>
<para>
Rename <structname>pg_stat_activity
.
current_query</> to
<struct
name
>query</> because it is not cleared when the query
Rename <structname>pg_stat_activity
</>.<structfield>
current_query</> to
<struct
field
>query</> because it is not cleared when the query
completes (Magnus Hagander)
</para>
</listitem>
...
...
@@ -371,22 +376,23 @@
<listitem>
<para>
Change all <acronym>SQL</acronym>-level statistics timing values
to
float8-stored
milliseconds (Tom Lane)
to
be <type>float8</> columns measured in
milliseconds (Tom Lane)
</para>
<para>
The columns affected are:
<structname>pg_stat_user_functions.total_time</>,
<structname>pg_stat_user_functions.self_time</>,
<structname>pg_stat_xact_user_functions.total_time</>,
<structname>pg_stat_xact_user_functions.self_time</>.
The columns affected are
<structname>pg_stat_user_functions</>.<structfield>total_time</>,
<structname>pg_stat_user_functions</>.<structfield>self_time</>,
<structname>pg_stat_xact_user_functions</>.<structfield>total_time</>,
and
<structname>pg_stat_xact_user_functions</>.<structfield>self_time</>.
</para>
</listitem>
<listitem>
<para>
Change <application>pg_stat_statements</>'
<struct
name
>total_time</> column to be measured in milliseconds
<struct
field
>total_time</> column to be measured in milliseconds
(Tom Lane)
</para>
</listitem>
...
...
@@ -420,83 +426,95 @@
</para>
<para>
This
is often called "index-only scans", a feature which now enables
the use of indexes with additional columns, or "covering indexes".
This is possible for heap pages with exclusively all-visible
t
uples, as reported by the visibility map. The visibility map was
made crash-safe as a necessary part of implementing this feature.
This
feature is often called <firstterm>index-only scans</>.
Heap access can be skipped for heap pages containing only tuples that
are visible to all sessions, as reported by the visibility map; so
t
he benefit applies mainly to mostly-static data. The visibility map
was
made crash-safe as a necessary part of implementing this feature.
</para>
</listitem>
<listitem>
<para>
Allow frequently uncontended locks to be recorded using a new
fast-path lock mechanism (Robert Haas)
Add the <link linkend="SPGiST">SP-GiST</link> (Space-Partitioned
GiST) index access method (Teodor Sigaev, Oleg Bartunov, Tom
Lane)
</para>
<para>
SP-GiST is comparable to GiST in flexibility, but supports
unbalanced partitioned search structures rather than balanced
trees. For suitable problems, SP-GiST can be faster than GiST in both
index build time and search time.
</para>
</listitem>
<listitem>
<para>
Move the frequently accessed members of the <structname>PGPROC</>
shared memory array to a separate section, for performance (Pavan
Deolasee, Heikki Linnakangas, Robert Haas)
Allow group commit to work effectively under heavy load (Peter
Geoghegan, Simon Riggs, Heikki Linnakangas)
</para>
<para>
Previously, batching of commits became ineffective as the write
workload increased, because of internal lock contention.
</para>
</listitem>
<listitem>
<para>
Reduce overhead of creating virtual transaction id locks (Robert
Haas)
Allow uncontended locks to be managed using a new
fast-path lock mechanism (Robert
Haas)
</para>
</listitem>
<listitem>
<para>
Reduce overhead
for shared invalidation cache message
s (Robert
Reduce overhead
of creating virtual transaction id lock
s (Robert
Haas)
</para>
</listitem>
<listitem>
<para>
Improve <command>COPY</command> performance by adding tuples to
the heap in batches (Heikki Linnakanga
s)
Reduce the overhead of serializable isolation level locks (Dan
Port
s)
</para>
</listitem>
<listitem>
<para>
Improve
GiST geometric type index performance by producing better
trees with less memory allocation overhead (Alexander Korotkov
)
Improve
PowerPC and Itanium spinlock performance (Manabu Ori,
Robert Haas, Tom Lane
)
</para>
</listitem>
<listitem>
<para>
Allow hint bits to be set sooner for temporary and unlogged tables
(Robert
Haas)
Reduce overhead for shared invalidation cache messages (Robert
Haas)
</para>
</listitem>
<listitem>
<para>
Allow sorting to be performed by inlined and faster,
non-<acronym>SQL</acronym>-callable comparison functions (Peter
Geoghegan, Robert Haas, Tom Lane
)
Move the frequently accessed members of the <structname>PGPROC</>
shared memory array to a separate array (Pavan
Deolasee, Heikki Linnakangas, Robert Haas
)
</para>
</listitem>
<listitem>
<para>
Add the <link linkend="SPGiST">SP-GiST</link> (Space-Partitioned
GiST) index access method (Teodor Sigaev, Oleg Bartunov, Tom
Lane)
Improve <command>COPY</command> performance by adding tuples to
the heap in batches (Heikki Linnakangas)
</para>
</listitem>
<listitem>
<para>
SP-GiST is comparable to GiST in flexibility, but supports
non-balanced partitioned search structures rather than balanced
trees. CLARIFY?
Improve GiST index performance for geometric data types by producing
better trees with less memory allocation overhead (Alexander Korotkov)
</para>
</listitem>
...
...
@@ -509,56 +527,56 @@
<listitem>
<para>
Take fewer <acronym>MVCC</acronym> snapshots, for performance
Allow hint bits to be set sooner for temporary and unlogged tables
(Robert Haas)
</para>
</listitem>
<listitem>
<para>
Have the number of clog buffers scale based on <link
linkend="guc-shared-buffers"><varname>shared_buffers</></link>
(Robert Haas, Simon Rigg
s, Tom Lane)
Allow sorting to be performed by inlined,
non-<acronym>SQL</acronym>-callable comparison functions (Peter
Geoghegan, Robert Haa
s, Tom Lane)
</para>
</listitem>
<listitem>
<para>
Reduce the overhead of serializable isolation level locks (Dan
Port
s)
Take fewer <acronym>MVCC</acronym> snapshots
(Robert Haa
s)
</para>
</listitem>
<listitem>
<para>
Allow group commit to work effectively under heavy load (Peter
Geoghegan, Simon Riggs, Heikki Linnakangas)
Make the number of CLOG buffers scale based on <link
linkend="guc-shared-buffers"><varname>shared_buffers</></link>
(Robert Haas, Simon Riggs, Tom Lane)
</para>
</listitem>
<listitem>
<para>
Previously, batching of commits became ineffective as the write
workload increased because of internal lock contention.
Improve performance of buffer pool scans that occur when tables or
databases are dropped (Jeff Janes, Simon Riggs)
</para>
</listitem>
<listitem>
<para>
Improve
PowerPC and Itanium spinlock performance (Manabu Ori,
Robert Haas,
Tom Lane)
Improve
performance of checkpointer's fsync-request queue
when many tables are being dropped or truncated (
Tom Lane)
</para>
</listitem>
<listitem>
<para>
Improve performance of buffer pool scans that occur when tables or
databases are dropped (Jeff Janes, Simon Rigg
s)
Pass the safe number of file descriptors to child processes on Windows
(Heikki Linnakanga
s)
</para>
</listitem>
<listitem>
<para>
Improve performance of checkpoint process's fsync-request queue
when many tables are being dropped or truncated (Tom Lane)
This allows Windows sessions to use more open file descriptors.
</para>
</listitem>
...
...
@@ -573,20 +591,21 @@
<listitem>
<para>
Create a dedicated
worker
process to perform checkpoints (Simon
Create a dedicated
background
process to perform checkpoints (Simon
Riggs)
</para>
<para>
Formerly the background writer did dirty page writing and
checkpointing.
Formerly the background writer did both dirty-page writing and
checkpointing. Separating this into two processes allows each goal
to be accomplished more predictably.
</para>
</listitem>
<listitem>
<para>
Improve asynchronous commit behavior by waking
up sooner (Simon
Riggs)
Improve asynchronous commit behavior by waking
the walwriter sooner
(Simon
Riggs)
</para>
<para>
...
...
@@ -600,9 +619,8 @@
<listitem>
<para>
Allow the bgwriter, walwriter, checkpointer, <link
linkend="monitoring-stats">statistics collector</link>, log
collector, and archiver background processes to sleep more
Allow the bgwriter, walwriter, checkpointer, statistics collector,
log collector, and archiver background processes to sleep more
efficiently during periods of inactivity (Peter Geoghegan, Tom Lane)
</para>
...
...
@@ -613,17 +631,6 @@
</para>
</listitem>
<listitem>
<para>
Pass the safe number of file descriptors to Windows processes
(Heikki Linnakangas)
</para>
<para>
This allows Windows sessions to cache more open file descriptors.
</para>
</listitem>
</itemizedlist>
</sect4>
...
...
@@ -635,57 +642,72 @@
<listitem>
<para>
Improve the ability of the planner to choose parameterized plans
Allow the planner to generate custom plans for specific parameter
values even when using prepared statements
(Tom Lane)
</para>
<para>
A prepared statement is now parsed, analyzed, and rewritten,
but not necessarily planned. When the prepared plan is executed
with parameters, the planner might replan it for every constant,
or it might execute a generic plan if its cost is close to that
of a constant-specific plan. CLARIFY
In the past, a prepared statement always had a single
<quote>generic</> plan that was used for all parameter values, which
was frequently much inferior to the plans used for non-prepared
statements containing explicit constant values. Now, the planner
attempts to generate custom plans for specific parameter values.
A generic plan will only be used after custom plans have repeatedly
proven to provide no benefit. This change should eliminate the
performance penalties formerly seen from use of prepared statements
(including non-dynamic statements in PL/pgSQL).
</para>
</listitem>
<listitem>
<para>
Allow the optimizer to use <literal>CHECK</> constraints defined
on tables referenced in subqueries in planning decisio
ns (Tom Lane)
Improve the planner's ability to use nested loops with inner
index sca
ns (Tom Lane)
</para>
<para>
This is only enabled when <link
linkend="guc-constraint-exclusion"><literal>constraint_exclusion
= on</></link>.
The new <quote>parameterized path</> mechanism allows inner
indexscans to use values from relations that are more than one join
level up from the scan. This can greatly improve performance in
situations where semantic restrictions (such as outer joins) limit
the allowed join orderings.
</para>
</listitem>
<listitem>
<para>
Allow <literal>indexedcol op ANY(ARRAY[...])</> conditions to be
used in plain indexscans (
Tom Lane)
Improve the planning <acronym>API</acronym> for foreign data wrappers
(Etsuro Fujita, Shigeru Hanada,
Tom Lane)
</para>
</listitem>
<listitem>
<para>
Improve heuristics for determining the type of unknown values by
considering other data types involved in the operation (Tom Lane)
Wrappers can now provide multiple access <quote>paths</> for their
tables, allowing more flexibility in join planning.
</para>
</listitem>
<listitem>
<para>
Allow better matching of index columns with non-default operator
qualifications (Tom Lane)
Recognize self-contradictory restriction clauses for non-table
relations (Tom Lane)
</para>
<para>
This is only enabled when <link
linkend="guc-constraint-exclusion"><varname>constraint_exclusion</></link>
is <literal>on</literal>.
</para>
</listitem>
<listitem>
<para>
Improve the planner's ability to use nested loops with inner
index scans (Tom Lane)
Allow <literal>indexed_col op ANY(ARRAY[...])</> conditions to be
used in plain indexscans and index-only scans (Tom Lane)
</para>
<para>
Formerly such conditions could only be used in bitmap index scans.
</para>
</listitem>
...
...
@@ -703,55 +725,55 @@
</para>
</listitem>
</itemizedlist>
<sect5>
<title>Optimizer Statistics</title>
<itemizedlist>
<listitem>
<para>
Improve the ability to use statistics on columns referenced in
subqueries
(Tom Lane)
Fix planner to handle indexes with duplicated columns more reliably
(Tom Lane)
</para>
</listitem>
<listitem>
<para>
Improve optimizer estimation for subqueries using
<literal>DISTINCT</> (Tom Lane)
Collect and use element-frequency statistics for arrays (Alexander
Korotkov, Tom Lane)
</para>
<para>
This change improves selectivity estimation for the array
<literal><@</literal>, <literal>&&</literal>, and
<literal>@></literal> (containment and overlaps) array operators.
</para>
</listitem>
<listitem>
<para>
Collect and use element-frequency statistics for arrays (Alexander
Korotkov, Tom Lane
)
Allow statistics to be collected for foreign tables
(Etsuro Fujita
)
</para>
</listitem>
<listitem>
<para>
This patch improves selectivity estimation for the array <@,
&&, and @> (containment and overlaps) array operators.
Improve cost estimates for use of partial indexes (Tom Lane)
</para>
</listitem>
<listitem>
<para>
Improve costing of partial indexes (Tom Lane)
Improve the planner's ability to use statistics for columns
referenced in subqueries (Tom Lane)
</para>
</listitem>
<listitem>
<para>
Allow analyze statistics to be collected for foreign tables
(Etsuro Fujita
)
Improve statistical estimates for subqueries using
<literal>DISTINCT</> (Tom Lane
)
</para>
</listitem>
</itemizedlist>
</sect5>
</sect4>
<sect4>
...
...
@@ -761,41 +783,40 @@
<listitem>
<para>
Do not
assume rol
es and <literal>samerole</> specified in <link
Do not
treat role nam
es and <literal>samerole</> specified in <link
linkend="auth-pg-hba-conf"><filename>pg_hba.conf</filename></link>
include
superusers (Andrew Dunstan)
as automatically including
superusers (Andrew Dunstan)
</para>
<para>
This makes it easier to use
reject
lines with group roles.
This makes it easier to use
<literal>reject</>
lines with group roles.
</para>
</listitem>
<listitem>
<para>
Make superuser imply replication privilege (Noah Misch)
Adjust <filename>pg_hba.conf</filename> processing to handle token
parsing more consistently (Brendan Jurd, Álvaro Herrera)
</para>
</listitem>
<listitem>
<para>
This avoids the need to explicitly assign such privileges.
Disallow empty <filename>pg_hba.conf</filename> files (Tom Lane)
</para>
</listitem>
<listitem>
<para>
Adjust <filename>pg_hba.conf</filename> processing to more
consistently handle token parsing (Brendan Jurd, Álvaro
Herrera)
This was done to more quickly detect misconfiguration.
</para>
</listitem>
<listitem>
<para>
Disallow empty <filename>pg_hba.conf</filename> files (Tom Lane
)
Make superuser privilege imply replication privilege (Noah Misch
)
</para>
<para>
This
was done to more quickly report misconfiguration
.
This
avoids the need to explicitly assign such privileges
.
</para>
</listitem>
...
...
@@ -810,7 +831,7 @@
<listitem>
<para>
Attempt to log the current query string
before
a backend crash
Attempt to log the current query string
during
a backend crash
(Marti Raudsepp)
</para>
</listitem>
...
...
@@ -829,7 +850,7 @@
<listitem>
<para>
Hav
e <acronym>WAL</acronym> replay report failures sooner
Mak
e <acronym>WAL</acronym> replay report failures sooner
(Fujii Masao)
</para>
...
...
@@ -843,7 +864,7 @@
<para>
Add <link
linkend="functions-admin-backup"><function>pg_xlog_location_diff()</></link>
to simplify
xlog
comparisons (Euler Taveira de Oliveira)
to simplify
WAL location
comparisons (Euler Taveira de Oliveira)
</para>
<para>
...
...
@@ -861,14 +882,14 @@
This allows different instances to use the eventlog
with different identifiers, by setting the <link
linkend="guc-event-source"><varname>event_source</></link>
<acronym>GUC</acronym>
, which is similar to how <link
server parameter
, which is similar to how <link
linkend="guc-syslog-ident"><varname>syslog_ident</></link> works.
</para>
</listitem>
<listitem>
<para>
Change
"unexpected EOF" message
to <literal>DEBUG1</> level,
Change
<quote>unexpected EOF</> messages
to <literal>DEBUG1</> level,
except when there is an open transaction (Magnus Hagander)
</para>
</listitem>
...
...
@@ -885,7 +906,7 @@
<listitem>
<para>
Track temporary file sizes and file counts in the <link
linkend="
monitoring-stats-views
"><structname>pg_stat_database</></link>
linkend="
pg-stat-database-view
"><structname>pg_stat_database</></link>
system view (Tomas Vondra)
</para>
</listitem>
...
...
@@ -899,7 +920,7 @@
<listitem>
<para>
Add a
<acronym>GUC</acronym> setting
<link
Add a
server parameter
<link
linkend="guc-track-io-timing"><varname>track_io_timing</></link>
to track I/O timings (Ants Aasma, Robert Haas)
</para>
...
...
@@ -924,36 +945,35 @@
<listitem>
<para>
Allow <link
Silently ignore nonexistent schemas specified in <link
linkend="guc-search-path"><varname>search_path</></link> (Tom Lane)
</para>
</listitem>
<listitem>
<para>
Allow superusers to set <link
linkend="guc-deadlock-timeout"><varname>deadlock_timeout</></link>
to be set per-session by superusers, not just per-cluster (Noah
Misch)
per-session, not just per-cluster (Noah Misch)
</para>
<para>
This allows <varname>deadlock_timeout</> to be reduced for
transactions that are likely to be involved in a deadlock,
thus detecting it more quickly. It can also be used to reduc
e
the chances of a session being chosen for cancellation due to
a deadlock.
transactions that are likely to be involved in a deadlock,
thus
detecting the failure more quickly. Alternatively, increasing th
e
value can be used to reduce the chances of a session being chosen for
cancellation due to
a deadlock.
</para>
</listitem>
<listitem>
<para>
Add
<acronym>GUC</acronym>
parameter <link
Add
a server
parameter <link
linkend="guc-temp-file-limit"><varname>temp_file_limit</></link>
to constrain temporary file space usage per session (Mark Kirkwood)
</para>
</listitem>
<listitem>
<para>
Add <filename>postgresql.conf</filename> category "Replication /
Sending Servers" (Fujii Masao)
</para>
</listitem>
<listitem>
<para>
Allow a superuser to <command>SET</command> an extension's
...
...
@@ -974,15 +994,24 @@
</para>
<para>
This allows <application>pg_ctl</> to better handle
configuration-only directory installations.
This allows <application>pg_ctl</> to better handle cases where
<envar>PGDATA</> or <option>-D</> points to a configuration-only
directory.
</para>
</listitem>
<listitem>
<para>
Force the locale to be recorded more specifically, rather than
using the empty string to mean the default (Tom Lane)
Replace an empty locale name with the implied value in
<command>CREATE DATABASE</>
(Tom Lane)
</para>
<para>
This prevents cases where
<structname>pg_database</>.<structfield>datcollate</> or
<structfield>datctype</> could be interpreted differently after a
server restart.
</para>
</listitem>
...
...
@@ -1004,13 +1033,13 @@
<listitem>
<para>
Allow a reload of <filename>postgresql.conf</filename> to be
processed by all
backends
even if there are some settings that
are invalid for
that session
(Alexey Klyukin)
processed by all
sessions,
even if there are some settings that
are invalid for
particular sessions
(Alexey Klyukin)
</para>
<para>
Previously, such not-valid-
for-session error
s would cause all
setting changes to be ignored by that
backend
.
Previously, such not-valid-
within-session value
s would cause all
setting changes to be ignored by that
session
.
</para>
</listitem>
...
...
@@ -1028,8 +1057,8 @@
<listitem>
<para>
Check the server time zone during initdb
, and set
<filename>postgresql.conf</filename>
valu
es
Identify the server time zone during <application>initdb</>
, and set
<filename>postgresql.conf</filename>
entri
es
<link linkend="guc-timezone"><varname>timezone</></link> and
<link linkend="guc-log-timezone"><varname>log_timezone</></link>
accordingly (Tom Lane)
...
...
@@ -1042,9 +1071,9 @@
<listitem>
<para>
Allow Windows to report
<filename>postgresql.conf</filename> line numbers in <link
linkend="view-pg-settings"><structname>pg_settings</></link>
Fix <link
linkend="view-pg-settings"><structname>pg_settings</></link> to
report <filename>postgresql.conf</filename> line numbers on Windows
(Tom Lane)
</para>
</listitem>
...
...
@@ -1060,21 +1089,18 @@
<sect3>
<title>Replication and Recovery</title>
<sect4>
<title>Streaming Replication</title>
<itemizedlist>
<itemizedlist>
<listitem>
<para>
Allow streaming replications slaves to serve other slaves (Fujii
Masao)
Allow streaming replication slaves to forward data to other slaves
(<link linkend="cascading-replication"><firstterm>cascading
replication</></link>) (Fujii Masao)
</para>
<para>
Previously, only the master server could supply streaming
replication log files to standby servers. Slaves can also now
do continuous archiving. (?)
replication log files to standby servers.
</para>
</listitem>
...
...
@@ -1082,12 +1108,13 @@
<para>
Add new <link
linkend="guc-synchronous-commit"><varname>synchronous_commit</></link>
replication
mode <literal>remote_write</> (Fujii Masao, Simon Riggs)
mode <literal>remote_write</> (Fujii Masao, Simon Riggs)
</para>
<para>
This waits for the remote server to acknowledge that it has received
the data, but does not wait for it to be written to the remote disk.
This mode waits for the standby server to write transaction data to
its own operating system, but does not wait for the data to be
flushed to the standby's disk.
</para>
</listitem>
...
...
@@ -1095,37 +1122,19 @@
<para>
Add a <link
linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
tool to archive xlog file changes as they are written, rather
than waiting for completed xlog files (Magnus Hagander)
</para>
</listitem>
<listitem>
<para>
Send keepalive messages to standby servers (Simon Riggs)
</para>
<para>
This allows administrators to accurately calculate streaming
replication transfer and application latency.
tool to archive WAL file changes as they are written, rather
than waiting for completed WAL files (Magnus Hagander)
</para>
</listitem>
</itemizedlist>
<sect5>
<title><link linkend="app-pgbasebackup"><application>pg_basebackup</></link></title>
<itemizedlist>
<listitem>
<para>
Allow streaming of
xlog files while <application>pg_basebackup</
>
Allow streaming of
WAL files while <link linkend="app-pgbasebackup"><application>pg_basebackup</></link
>
is performing a backup (Magnus Hagander)
</para>
<para>
This allows passing of
xlog
files to the standby before they are
This allows passing of
WAL
files to the standby before they are
discarded on the primary.
</para>
</listitem>
...
...
@@ -1137,17 +1146,7 @@
</para>
</listitem>
<listitem>
<para>
Exclude the postmaster.opts file from <application>pg_basebackup</>
backups (Magnus Hagander)
</para>
</listitem>
</itemizedlist>
</sect5>
</sect4>
</itemizedlist>
</sect3>
...
...
@@ -1158,30 +1157,45 @@
<listitem>
<para>
Improve columns labels produced by subqueries (Marti Raudsepp
)
Cancel queries if clients get disconnected (Florian Pflug
)
</para>
</listitem>
<listitem>
<para>
Previously, the generic label <literal>?column?</> was used.
Retain column names at runtime for row expressions
(Andrew Dunstan, Tom Lane)
</para>
</listitem>
<listitem>
<para>
Preserve column names in row expressions (Andrew Dunstan, Tom Lane)
This change allows better results when a row value is converted to
<type>hstore</> or <type>json</> type: the fields of the resulting
value will now have the expected names.
</para>
</listitem>
<listitem>
<para>
Cancel queries if clients get disconnected (Florian Pflug)
Improve column labels used for sub-<command>SELECT</> results
(Marti Raudsepp)
</para>
<para>
Previously, the generic label <literal>?column?</> was used.
</para>
</listitem>
<listitem>
<para>
Silently ignore nonexistent schemas specified in <link
linkend="guc-search-path"><varname>search_path</></link> (Tom Lane)
Improve heuristics for determining the types of unknown values
(Tom Lane)
</para>
<para>
The longstanding rule that an unknown constant might have the
same type as the value on the other side of the operator using it
is now applied when considering polymorphic operators, not only
for simple operator matches.
</para>
</listitem>
...
...
@@ -1198,7 +1212,7 @@
<listitem>
<para>
When a row fails a <literal>CHECK</> or <literal>NOT NULL</>
constraint, show the row's contents
in err
detail (Jan
constraint, show the row's contents
as error
detail (Jan
Kundrát)
</para>
...
...
@@ -1224,18 +1238,18 @@
</para>
<para>
This
eliminates "cache lookup failed" errors in many scenarios.
Also, it is no longer possible to add relations to a schema which
is being concurrently dropped, a scenario that formerly led to
inconsistent system catalog contents.
This
change adds locking that should eliminate <quote>cache lookup
failed</> errors in many scenarios. Also, it is no longer possible
to add relations to a schema that is being concurrently dropped, a
scenario that formerly led to
inconsistent system catalog contents.
</para>
</listitem>
<listitem>
<para>
Add <literal>CONCURRENTLY</> option to <link
linkend="SQL-DROPINDEX"><command>DROP INDEX
CONCURRENTLY</command></link>
(Simon Riggs)
linkend="SQL-DROPINDEX"><command>DROP INDEX
</command></link>
(Simon Riggs)
</para>
<para>
...
...
@@ -1243,6 +1257,18 @@
</para>
</listitem>
<listitem>
<para>
Allow foreign data wrappers to have per-column options (Shigeru Hanada)
</para>
</listitem>
<listitem>
<para>
Improve pretty printing of view definitions (Andrew Dunstan)
</para>
</listitem>
</itemizedlist>
<sect4>
...
...
@@ -1258,18 +1284,18 @@
</para>
<para>
A <literal>NOT VALID</> <literal>CHECK</> constraint can be added
to a table without the table's data being verified against the
constraint. New rows are verified.
Adding a <literal>NOT VALID</> constraint does not cause the table to
be scanned to verify that existing rows meet the constraint.
Subsequently, newly added or updated rows are checked.
Such constraints are ignored by the planner when considering
<varname>constraint_exclusion</>, since it is not certain that all
rows meet the constraint.
</para>
<para>
Such constraints are ignored by the planner when considering
<varname>constraint_exclusion</>. <command>ALTER TABLE</command> /
<literal>VALIDATE</> allows <literal>NOT VALID</> <literal>CHECK</>
check constraints to be fully validated and considered for
<varname>constraint_exclusion</>, including re-planning of
cached plans.
The new <command>ALTER TABLE VALIDATE</> command allows <literal>NOT
VALID</> constraints to be checked for existing rows, after which
they are converted into ordinary constraints.
</para>
</listitem>
...
...
@@ -1302,19 +1328,19 @@
<listitem>
<para>
Reduce need to rebuild tables and indexes for
various
<link
Reduce need to rebuild tables and indexes for
certain
<link
linkend="SQL-ALTERTABLE"><command>ALTER TABLE</command></link>
operations (Noah Misch)
</para>
<para>
Increasing the length
constraint on a <type>varchar</> or
<type>varbit</> column, or removing it altogether, no longer
re
quires a table rewrite. Increasing the allowable precision of
a <type>numeric</> constraint
, or changing a column from constrained
<type>numeric</> to unconstrained
numeric, no longer requires a
table rewrite. Table rewrites are also avoided in similar cases
involving the <type>interval</>, <type>timestamp</>, and
Increasing the length
limit for a <type>varchar</> or <type>varbit</>
column, or removing it altogether, no longer requires a table
re
write. Similarly, increasing the allowable precision of a
<type>numeric</> column
, or changing a column from constrained
<type>numeric</> to unconstrained
<type>numeric</>, no longer
requires a table rewrite. Table rewrites are also avoided in similar
cases
involving the <type>interval</>, <type>timestamp</>, and
<type>timestamptz</> types.
</para>
</listitem>
...
...
@@ -1329,7 +1355,7 @@
<listitem>
<para>
Add <literal>IF EXISTS</> clause to <command>ALTER</command>
Add <literal>IF EXISTS</> clause to
some
<command>ALTER</command>
commands (Pavel Stehule)
</para>
...
...
@@ -1342,16 +1368,16 @@
<listitem>
<para>
Add <link linkend="SQL-ALTERFOREIGNDATAWRAPPER"><command>ALTER
FOREIGN DATA WRAPPER</command></link>
/
<literal>RENAME</>
FOREIGN DATA WRAPPER</command></link>
...
<literal>RENAME</>
and <link linkend="SQL-ALTERSERVER"><command>ALTER
SERVER</command></link>
/
<literal>RENAME</> (Peter Eisentraut)
SERVER</command></link>
...
<literal>RENAME</> (Peter Eisentraut)
</para>
</listitem>
<listitem>
<para>
Add <link linkend="SQL-ALTERDOMAIN"><command>ALTER
DOMAIN</command></link>
/
<literal>RENAME</> (Peter Eisentraut)
DOMAIN</command></link>
...
<literal>RENAME</> (Peter Eisentraut)
</para>
<para>
...
...
@@ -1362,12 +1388,12 @@
<listitem>
<para>
Throw an error for <command>ALTER DOMAIN</command>
/
<literal>DROP
Throw an error for <command>ALTER DOMAIN</command>
...
<literal>DROP
CONSTRAINT</> on a nonexistent constraint (Peter Eisentraut)
</para>
<para>
An <literal>IF EXISTS</> option has been added to
enabl
e the
An <literal>IF EXISTS</> option has been added to
provid
e the
previous behavior.
</para>
</listitem>
...
...
@@ -1377,43 +1403,37 @@
</sect4>
<sect4>
<title><link linkend="SQL-CREATETABLE"><command>CREATE/ALTER
TABLE</></link></title>
<title><link linkend="SQL-CREATETABLE"><command>CREATE TABLE</></link></title>
<itemizedlist>
<listitem>
<para>
Fix <command>CREATE TABLE</command> ... <literal>AS EXECUTE</>
to handle <literal>WITH NO DATA</> and column name specification
(Tom Lane)
Allow <command>CREATE TABLE (LIKE ...)</command> from foreign
tables, views, and composite types (Peter Eisentraut)
</para>
</listitem>
<listitem>
<para>
Support <command>CREATE TABLE (LIKE ...)</command> from foreign
tables and views (Peter Eisentraut)
For example, this allows a table to be created whose schema matches a
view.
</para>
</listitem>
<listitem>
<para>
Allow <command>CREATE TABLE (LIKE ...)</command> from composite
type (Peter Eisentraut)
</para>
<para>
This also allows a table to be created whose schema matches a view.
Fix <command>CREATE TABLE (LIKE ...)</command> to avoid index name
conflicts when copying index comments (Tom Lane)
</para>
</listitem>
<listitem>
<para>
Fix <command>CREATE TABLE (LIKE ...)</command> to avoid index name
conflicts when copying index comments (Tom Lane)
Fix <command>CREATE TABLE</command> ... <literal>AS EXECUTE</>
to handle <literal>WITH NO DATA</> and column name specifications
(Tom Lane)
</para>
</listitem>
</itemizedlist>
</sect4>
...
...
@@ -1431,9 +1451,11 @@
</para>
<para>
This prevents <literal>security_barrier</> views from being moved
into other scopes, preventing possible leakage of view-prohibited
data. Such views might perform more poorly.
This option prevents optimizations that might allow view-protected
data to be exposed to users, for example pushing a clause involving
an insecure function into the <literal>WHERE</> clause of the view.
Such views can be expected to perform more poorly than ordinary
views.
</para>
</listitem>
...
...
@@ -1441,7 +1463,7 @@
<para>
Add a new <link
linkend="SQL-CREATEFUNCTION"><literal>LEAKPROOF</></link> function
specification to mark functions that can be safely
pushed down
attribute to mark functions that can safely be
pushed down
into <literal>security_barrier</> views (KaiGai Kohei)
</para>
</listitem>
...
...
@@ -1466,11 +1488,11 @@
</para>
<para>
Because the object is being created by <command>SELECT
INTO</command> or <command>CREATE TABLE AS</command>, it will
have
default insert permissions, except if <literal>ALTER DEFAULT
PRIVILEGES</> has removed such permissions, hence the need for
a permission check
.
Because the object is being created by <command>SELECT
INTO</command>
or <command>CREATE TABLE AS</command>, the creator would ordinarily
have
insert permissions; but there are corner cases where this is not
true, such as when <literal>ALTER DEFAULT PRIVILEGES</> has removed
such permissions
.
</para>
</listitem>
...
...
@@ -1493,46 +1515,37 @@
<para>
This change should greatly reduce the incidence of vacuum getting
"stuck"
.
<quote>stuck</>
.
</para>
</listitem>
</itemizedlist>
<sect4>
<title><link linkend="SQL-EXPLAIN"><command>EXPLAIN</></link></title>
<itemizedlist>
<listitem>
<para>
Make <
command>EXPLAIN (BUFFERS)</command> track blocks dirtied
and written (Robert Haas)
Make <
link linkend="SQL-EXPLAIN"><command>EXPLAIN</></link>
<literal>(BUFFERS)</> count blocks dirtied
and written (Robert Haas)
</para>
</listitem>
<listitem>
<para>
Hav
e <command>EXPLAIN ANALYZE</command> report the number of rows
Mak
e <command>EXPLAIN ANALYZE</command> report the number of rows
rejected by filter steps (Marko Tiikkaja)
</para>
</listitem>
<listitem>
<para>
Allow <command>EXPLAIN</command> to avoid timing overhead when
time values are
un
wanted (Tomas Vondra)
Allow <command>EXPLAIN
ANALYZE
</command> to avoid timing overhead when
time values are
not
wanted (Tomas Vondra)
</para>
<para>
This is accomplished by setting
<literal>TIMING</>
to
This is accomplished by setting
the new <literal>TIMING</> option
to
<literal>FALSE</>.
</para>
</listitem>
</itemizedlist>
</sect4>
</itemizedlist>
</sect3>
...
...
@@ -1543,45 +1556,46 @@
<listitem>
<para>
Add
a <link linkend="datatype-json"><type>JSON</type>
</link>
data type (Robert Haas
)
Add
support for <link linkend="rangetypes">range data types
</link>
(Jeff Davis, Tom Lane, Alexander Korotkov
)
</para>
<para>
This stores <acronym>JSON</acronym> data as text after proper
validation.
A range data type stores a lower and upper bound belonging to its
base data type. It supports operations like contains, overlaps, and
intersection.
</para>
</listitem>
<listitem>
<para>
Add <link
linkend="functions-json"><function>array_to_json()</></link>
and <function>row_to_json()</> (Andrew Dunstan)
Add a <link linkend="datatype-json"><type>JSON</type></link>
data type (Robert Haas)
</para>
</listitem>
<listitem>
<para>
Add support for <link linkend="rangetypes">range data types</link>
(Jeff Davis, Tom Lane, Alexander Korotkov)
This type stores <acronym>JSON</acronym> (JavaScript Object Notation)
data with proper validation.
</para>
</listitem>
<listitem>
<para>
The range data type records a lower and upper bound, and supports
operations like contains, overlaps, and intersection.
Add <link
linkend="functions-json"><function>array_to_json()</></link>
and <function>row_to_json()</> (Andrew Dunstan)
</para>
</listitem>
<listitem>
<para>
Add <link linkend="datatype-serial"><type>SMALLSERIAL</></link>
Add
a
<link linkend="datatype-serial"><type>SMALLSERIAL</></link>
data type (Mike Pultz)
</para>
<para>
This is like <type>SERIAL</>, except it stores the sequence in
a two-byte integer column (
int2
).
a two-byte integer column (
<type>int2</>
).
</para>
</listitem>
...
...
@@ -1592,45 +1606,40 @@
</para>
<para>
This
can be set at domain creation time, or via
<command>ALTER DOMAIN</command> / <literal>ADD CONSTRAINT /
NOT
VALID</>. <command>ALTER DOMAIN</command>
/
<literal>VALIDATE
CONSTRAINT</> fully validates the
domain
.
This
option can be set at domain creation time, or via <command>ALTER
DOMAIN</command> ... <literal>ADD CONSTRAINT</> ... <literal>
NOT
VALID</>. <command>ALTER DOMAIN</command>
...
<literal>VALIDATE
CONSTRAINT</> fully validates the
constraint
.
</para>
</listitem>
<listitem>
<para>
Support more locale-specific formatting options for the <link
linkend="datatype-money">
MONEY
</link> data type (Tom Lane)
linkend="datatype-money">
<type>money</>
</link> data type (Tom Lane)
</para>
<para>
Specifically, display the plus/minus sign, currency symbol,
and separators in a locale-specific order. CORRECT?
Specifically, honor all the POSIX options for ordering of the value,
sign, and currency symbol in monetary output. Also, make sure that
the thousands separator is only inserted to the left of the decimal
point, as required by POSIX.
</para>
</listitem>
<listitem>
<para>
Add bitwise "and", "or", and "not" <link
linkend="macaddr-functions-table">operators</link> for the macaddr
data type (Brendan Jurd)
Add bitwise <quote>and</>, <quote>or</>, and <quote>not</>
operators for the <type>macaddr</> data type (Brendan Jurd)
</para>
</listitem>
</itemizedlist>
<sect4>
<title><link linkend="functions-xml"><acronym>XML</></link></title>
<itemizedlist>
<listitem>
<para>
Allow <function>xpath()</> to return a single-element
<acronym>XML</acronym> array when supplied a scalar value (Florian
Pflug)
Allow <link
linkend="functions-xml-processing"><function>xpath()</></link> to
return a single-element <acronym>XML</acronym> array when supplied a
scalar value (Florian Pflug)
</para>
<para>
...
...
@@ -1647,9 +1656,7 @@
</para>
</listitem>
</itemizedlist>
</sect4>
</itemizedlist>
</sect3>
...
...
@@ -1663,8 +1670,8 @@
Allow non-superusers to use <link
linkend="functions-admin-signal"><function>pg_cancel_backend()</></link>
and <link
linkend="functions-admin-signal"><function>pg_terminate_backend()
()
</></link>
on other sessions
for
the same user
linkend="functions-admin-signal"><function>pg_terminate_backend()</></link>
on other sessions
belonging to
the same user
(Magnus Hagander, Josh Kupershmidt, Dan Farina)
</para>
...
...
@@ -1673,24 +1680,6 @@
</para>
</listitem>
<listitem>
<para>
Allow <link
linkend="functions-aggregate-table"><function>string_agg()</></link>
to process bytea values (Pavel Stehule)
</para>
</listitem>
<listitem>
<para>
Allow regular expressions to use back-references (Tom Lane)
</para>
<para>
For example, '^(\w+)( \1)+$'.
</para>
</listitem>
<listitem>
<para>
Allow importing and exporting of transaction snapshots (Joachim
...
...
@@ -1698,10 +1687,13 @@
</para>
<para>
This allows multiple transactions to share identical views of the
database state.
Snapshots are exported via <link
linkend="functions-snapshot-synchronization"><function>pg_export_snapshot()</></link>,
and imported via <command>SET TRANSACTION SNAPSHOT</command>.
Only snapshots of currently-running transactions can be imported.
linkend="functions-snapshot-synchronization"><function>pg_export_snapshot()</></link>
and imported via <link linkend="SQL-SET-TRANSACTION"><command>SET
TRANSACTION SNAPSHOT</command></link>. Only snapshots from
currently-running transactions can be imported.
</para>
</listitem>
...
...
@@ -1719,27 +1711,17 @@
<listitem>
<para>
Add
a <type>NUMERIC</> variant of
<link
linkend="functions-
admin-dbsize"><function>pg_size_pretty
()</></link>
for use with <function>pg_xlog_location_diff()</> (Fujii Masao
)
Add <link
linkend="functions-
info-schema-table"><function>pg_opfamily_is_visible
()</></link>
(Josh Kupershmidt
)
</para>
</listitem>
</itemizedlist>
<sect4>
<title>Function and Trigger Creation</title>
<itemizedlist>
<listitem>
<para>
Change default names of triggers to fire "action" triggers before
"check" triggers (Tom Lane)
</para>
<para>
This allows default-named check triggers to check post-action rows.
Add a <type>numeric</> variant of <link
linkend="functions-admin-dbsize"><function>pg_size_pretty()</></link>
for use with <function>pg_xlog_location_diff()</> (Fujii Masao)
</para>
</listitem>
...
...
@@ -1755,53 +1737,38 @@
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title>Object Information Functions</title>
<itemizedlist>
<listitem>
<para>
A
dd
<link
linkend="functions-
info-schema-table"><function>pg_opfamily_is_visible
()</></link>
(Josh Kupershmidt
)
A
llow
<link
linkend="functions-
aggregate-table"><function>string_agg
()</></link>
to process <type>bytea</> values (Pavel Stehule
)
</para>
</listitem>
<listitem>
<para>
Allow per-column foreign data wrapper options and
<literal>force_not_null</> (Shigeru Hanada
)
Fix regular expressions in which a back-reference occurs within
a larger quantified subexpression (Tom Lane
)
</para>
<para>
This allows <acronym>SQL</acronym> specification of per-column
information useful to foreign data sources. Includes
<application>psql</> option display support.
</para>
</listitem>
<listitem>
<para>
Improve pretty printing of view definitions (Andrew Dunstan)
For example, <literal>^(\w+)( \1)+$</>. Previous releases did not
check that the back-reference actually matched the first occurrence.
</para>
</listitem>
</itemizedlist>
</sect4
>
</sect3
>
<sect4
>
<title><link linkend="information-schema">Information Schema</link></title>
<sect3
>
<title><link linkend="information-schema">Information Schema</link></title>
<itemizedlist>
<listitem>
<para>
Add
<structname>information_schema</>
views
Add
information schema
views
<structname>role_udt_grants</>, <structname>udt_privileges</>,
and <structname>user_defined_types</> (Peter Eisentraut)
</para>
...
...
@@ -1810,60 +1777,60 @@
<listitem>
<para>
Add composite-type attributes to the
<varname>information_schema</>.<var
name>element_types</> view
information schema <struct
name>element_types</> view
(Peter Eisentraut)
</para>
</listitem>
<listitem>
<para>
Implement
information schema <varname>interval_type</> columns
(Peter Eisentraut)
Implement
<structfield>interval_type</> columns in the information
schema
(Peter Eisentraut)
</para>
</listitem>
<listitem>
<para>
Add collation columns to various information schema views (Peter
Eisentraut)
Formerly these columns read as nulls.
</para>
</listitem>
<listitem>
<para>
Specifically, provide collation columns for views referencing
attributes, columns, domains, and <varname>element_types</>.
Implement collation-related columns in the information schema
<structname>attributes</>, <structname>columns</>,
<structname>domains</>, and <structname>element_types</>
views (Peter Eisentraut)
</para>
</listitem>
<listitem>
<para>
Add display of sequence <literal>USAGE</> privileges to information
schema (Peter Eisentraut)
Implement the <structfield>with_hierarchy</> column in the
information schema <structname>table_privileges</> view (Peter
Eisentraut)
</para>
</listitem>
<listitem>
<para>
Add
a <varname>with_hierarchy</> column to the information schema
privileges display
(Peter Eisentraut)
Add
display of sequence <literal>USAGE</> privileges to information
schema
(Peter Eisentraut)
</para>
</listitem>
<listitem>
<para>
Hav
e the information schema show default privileges (Peter
Mak
e the information schema show default privileges (Peter
Eisentraut)
</para>
<para>
Previously,
default permissions generated <literal>NULL</> fields.
(WAS IT NULL?)
Previously,
non-empty default permissions were not represented in the
views.
</para>
</listitem>
</itemizedlist>
</sect4>
</sect3>
<sect3>
...
...
@@ -1897,7 +1864,7 @@
<listitem>
<para>
Improve performance and memory consumption
of the PL/pgSQL
Improve performance and memory consumption
for long chains of
<literal>ELSIF</> clauses (Tom Lane)
</para>
</listitem>
...
...
@@ -1935,8 +1902,9 @@
</para>
<para>
Specifically, this adds result object functions .colnames,
.coltypes, and .coltypmods.
Specifically, this adds result object functions
<literal>.colnames</literal>, <literal>.coltypes</literal>, and
<literal>.coltypmods</literal>.
</para>
</listitem>
...
...
@@ -1961,7 +1929,7 @@
</para>
<para>
To use this, simply name the function arguments and reference
To use this, simply name the function arguments and
then
reference
the argument names in the <acronym>SQL</acronym> function body.
</para>
</listitem>
...
...
@@ -1984,7 +1952,7 @@
</para>
<para>
This allows
individual
control of <literal>local</> and
This allows
separate
control of <literal>local</> and
<literal>host</> <filename>pg_hba.conf</filename> authentication
settings. <option>--auth</> still controls both.
</para>
...
...
@@ -2010,7 +1978,7 @@
<listitem>
<para>
Give command-line tools the ability to specify the name of the
database to connect to, and fall back to <
varname
>template1</>
database to connect to, and fall back to <
literal
>template1</>
if a <literal>postgres</> database connection fails (Robert Haas)
</para>
</listitem>
...
...
@@ -2024,7 +1992,7 @@
<listitem>
<para>
Add
<application>psql</>
mode to auto-expand output based on the
Add
a display
mode to auto-expand output based on the
display width (Peter Eisentraut)
</para>
...
...
@@ -2037,13 +2005,12 @@
<listitem>
<para>
Allow inclusion of <application>psql</> files relative to the
directory of the input file from which it was invoked (Gurjeet
Singh)
Allow inclusion of a script file relative to the directory of the
file from which it was invoked (Gurjeet Singh)
</para>
<para>
Th
e <application>psql</> command is
<command>\ir</>.
Th
is is done with a new command
<command>\ir</>.
</para>
</listitem>
...
...
@@ -2062,8 +2029,7 @@
<para>
<application>psql</> already supported minor-version-specific
<filename>.psqlrc</>
files.
<filename>.psqlrc</> files.
</para>
</listitem>
...
...
@@ -2075,59 +2041,59 @@
<para>
Specifically, <envar>PSQL_HISTORY</envar> and
<envar>PSQLRC</envar>.
<envar>PSQLRC</envar>
determine these file names if set
.
</para>
</listitem>
<listitem>
<para>
Add a <application>psql</> <command>\setenv</> command to modify
the environment variables used by child processes (Andrew Dunstan)
</para>
<para>
This is useful in <filename>.psqlrc</> files.
Add a <command>\setenv</> command to modify
the environment variables passed to child processes (Andrew Dunstan)
</para>
</listitem>
<listitem>
<para>
Have <application>psql</>
temporary editor files use a
Make <application>psql</>'s
temporary editor files use a
<filename>.sql</> extension (Peter Eisentraut)
</para>
<para>
This allows extension-sensitive editors to select the right mode.
</para>
</listitem>
<listitem>
<para>
Allow
s
<application>psql</> to use zero-byte field and record
Allow <application>psql</> to use zero-byte field and record
separators (Peter Eisentraut)
</para>
<para>
Various shell tools use zero
/null-byte
separators, e.g. find.
Various shell tools use zero
-byte (NUL)
separators, e.g. find.
</para>
</listitem>
<listitem>
<para>
Have <application>psql</> <command>\timing</>
report times for
Make the <command>\timing</> option
report times for
failed queries (Magnus Hagander)
</para>
<para>
Previously
only successful query times were reported
.
Previously
times were reported only for successful queries
.
</para>
</listitem>
<listitem>
<para>
Unify and tighten <application>psql</> treatment of <command>\copy</>
and
plain
<command>COPY</> (Noah Misch)
Unify and tighten <application>psql</>
's
treatment of <command>\copy</>
and
SQL
<command>COPY</> (Noah Misch)
</para>
<para>
This
makes failure behavior more predictable and honors <command>\set
ON_ERROR_ROLLBACK</>.
This
fix makes failure behavior more predictable and honors
<command>\set
ON_ERROR_ROLLBACK</>.
</para>
</listitem>
...
...
@@ -2141,74 +2107,59 @@
<itemizedlist>
<listitem>
<para>
Make <
application>psql</> <
command>\d</> on a sequence show the
Make <command>\d</> on a sequence show the
table/column name owning it (Magnus Hagander)
</para>
</listitem>
<listitem>
<para>
Show statistics target for columns in <
application>psql</>
<command>\d+</> (Magnus
Hagander)
Show statistics target for columns in <
command>\d+</> (Magnus
Hagander)
</para>
</listitem>
<listitem>
<para>
Show role password expiration dates in <
application>psql
</>
<command>\du</>
(Fabrízio de Royes Mello)
Show role password expiration dates in <
command>\du
</>
(Fabrízio de Royes Mello)
</para>
</listitem>
</itemizedlist>
<sect5>
<title>Comments</title>
<itemizedlist>
<listitem>
<para>
Allow <application>psql</> to display comments for languages and
casts
(Josh Kupershmidt)
Display comments for casts, conversions, domains, and languages
(Josh Kupershmidt)
</para>
<para>
These are output via <command>\dL</> and <command>\dC</>.
These are included in the output of <command>\dC+</>,
<command>\dc+</>, <command>\dD+</>, and <command>\dL</> respectively.
</para>
</listitem>
<listitem>
<para>
Allow <application>psql</> to display comments for conversions
and domain
s (Josh Kupershmidt)
Display comments for <acronym>SQL</acronym>/<acronym>MED</acronym>
object
s (Josh Kupershmidt)
</para>
<para>
This is accomplished with the addition of <literal>+</> to
<command>\dc</> and <command>\dD</> commands.
These are included in the output of <command>\des+</>,
<command>\det+</>, and <command>\dew+</> for foreign servers, foreign
tables, and foreign data wrappers respectively.
</para>
</listitem>
<listitem>
<para>
Allow <application>psql</> to display the comments on
<acronym>SQL</acronym>/<acronym>MED</acronym> objects in verbose
mode (Josh Kupershmidt)
</para>
</listitem>
<listitem>
<para>
Change <application>psql</>'s <command>\dd</> command to display
only objects without their own backslash command (Josh Kupershmidt)
Change <command>\dd</> to display comments only for object types
without their own backslash command (Josh Kupershmidt)
</para>
</listitem>
</itemizedlist>
</sect5>
</sect4>
<sect4>
...
...
@@ -2218,16 +2169,16 @@
<listitem>
<para>
In <application>psql</> tab completion,
complete <acronym>SQL</acronym> keywords based on
<varname>COMP_KEYWORD_CASE</> setting and the perhaps case of
the partially-supplied word
(Peter Eisentraut)
In <application>psql</> tab completion,
complete <acronym>SQL</>
keywords in either upper or lower case according to the new <link
linkend="APP-PSQL-variables"><literal>COMP_KEYWORD_CASE</></link>
setting
(Peter Eisentraut)
</para>
</listitem>
<listitem>
<para>
Add
<application>psql</>
tab completion support for
Add tab completion support for
<command>EXECUTE</command> (Andreas Karlsson)
</para>
</listitem>
...
...
@@ -2249,8 +2200,8 @@
<listitem>
<para>
Change
<application>psql</>
tab completion support for
<command>TABLE</command> to also
display
views (Magnus Hagander)
Change tab completion support for
<command>TABLE</command> to also
include
views (Magnus Hagander)
</para>
</listitem>
...
...
@@ -2284,22 +2235,19 @@
<para>
Valid values are <literal>pre-data</>, <literal>data</>,
and <literal>post-data</>. The option can be
given more than once. <option>--schema-only</>
is equivalent to <literal>--section=pre-data
--section=post-data</>. <option>--data-only</> is equivalent to
<literal>--section=data</>.
given more than once to select two or more sections.
</para>
</listitem>
<listitem>
<para>
Hav
e <link
Mak
e <link
linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link> dump all
roles first, then all configuration settings on roles (Phil Sorber)
</para>
<para>
This allows a role's configuration settings to
rely
on other
This allows a role's configuration settings to
menti
on other
roles without generating an error.
</para>
</listitem>
...
...
@@ -2370,18 +2318,21 @@
<listitem>
<para>
Add <acronym>URI</acronym>s support to libpq connection functions
(Alexander Shulgin)
Allow connection strings to have the format of a <link
linkend="libpq-connstring"><acronym>URI</acronym></link> (Alexander
Shulgin)
</para>
<para>
The syntax begins with <literal>postgres://</>.
The syntax begins with <literal>postgres://</>. This can allow
applications to avoid implementing their own parser for URIs
representing database connections.
</para>
</listitem>
<listitem>
<para>
Add a
libpq
<link linkend="libpq-connect-sslcompression">connection
Add a <link linkend="libpq-connect-sslcompression">connection
option</link> to disable <acronym>SSL</acronym> compression
(Laurenz Albe)
</para>
...
...
@@ -2395,50 +2346,44 @@
<listitem>
<para>
Add a <link linkend="libpq-single-row-mode">single-row processing
mode</link>
to libpq
for better handling of large result sets
mode</link> for better handling of large result sets
(Kyotaro Horiguchi, Marko Kreen)
</para>
<para>
Previously,
libpq always collected the entire query result in memo
ry
before passing it back to the application.
Previously,
<application>libpq</> always collected the entire que
ry
result in memory
before passing it back to the application.
</para>
</listitem>
<listitem>
<para>
Enhance <literal>const</> qualifiers in the libpq
functions
PQconnectdbParams, PQconnectStartParams, and PQpingParams (Lionel
Elie Mamane)
Add <literal>const</> qualifiers to the declarations of the
functions
<function>PQconnectdbParams</>, <function>PQconnectStartParams</>,
and <function>PQpingParams</> (Lionel
Elie Mamane)
</para>
</listitem>
<listitem>
<para>
Allow
libpq's <filename>.pgpass</> file to process
escaped characters
Allow
the <filename>.pgpass</> file to include
escaped characters
in the password field (Robert Haas)
</para>
</listitem>
<listitem>
<para>
Have library functions use <function>abort()</> instead of
<function>exit()</> to terminate the executable (Peter Eisentraut)
Make library functions use <function>abort()</> instead of
<function>exit()</> when it is necessary to terminate the process
(Peter Eisentraut)
</para>
<para>
This does not interfere with the normal exit codes used by the
This
choice
does not interfere with the normal exit codes used by the
program, and generates a signal that can be caught by the caller.
</para>
</listitem>
<listitem>
<para>
Fix a libpq memory leak by freeing client encoding connection
parameters (Peter Eisentraut)
</para>
</listitem>
</itemizedlist>
</sect3>
...
...
@@ -2454,7 +2399,7 @@
</para>
<para>
The following platforms are no longer
considered
supported: dgux,
The following platforms are no longer supported: dgux,
nextstep, sunos4, svr4, ultrix4, univel, bsdi.
</para>
</listitem>
...
...
@@ -2500,14 +2445,14 @@
<listitem>
<para>
Improve the concurrent transaction regression tests
(
isolationtester
) (Noah Misch)
(
<application>isolationtester</>
) (Noah Misch)
</para>
</listitem>
<listitem>
<para>
Modify <application>thread_test</> to create its test files in
the current directory, rather than
/tmp
(Bruce Momjian)
the current directory, rather than
<filename>/tmp</>
(Bruce Momjian)
</para>
</listitem>
...
...
@@ -2611,9 +2556,8 @@
<listitem>
<para>
Add <link linkend="tcn">tcn</link> (triggered change notification)
to generate <command>NOTIFY</command> events on table changes
(Kevin Grittner)
Support <literal>force_not_null</> option in <link
linkend="file-fdw">file_fdw</link> (Shigeru Hanada)
</para>
</listitem>
...
...
@@ -2637,18 +2581,6 @@
</para>
</listitem>
<listitem>
<para>
Have <link linkend="vacuumlo">vacuumlo</link> remove large objects
in batches, to reduce locking (Tim Lewis, Tom Lane)
</para>
<para>
The new <option>-l</> option allows changing the number of large
objects removed per transaction.
</para>
</listitem>
<listitem>
<para>
Change <link
...
...
@@ -2672,6 +2604,14 @@
</para>
</listitem>
<listitem>
<para>
Add a <link linkend="tcn">tcn</link> (triggered change notification)
module to generate <command>NOTIFY</command> events on table changes
(Kevin Grittner)
</para>
</listitem>
</itemizedlist>
<sect4>
...
...
@@ -2681,86 +2621,86 @@
<listitem>
<para>
Allow <application>pg_upgrade</> to upgrade an old cluster that
does not have a <literal>postgres</> database (Bruce Momjian)
Adjust <application>pg_upgrade</> environment variables (Bruce
Momjian)
</para>
<para>
Rename data, bin, and port environment
variables to begin with <literal>PG</>, and support
<envar>PGPORTOLD</envar>/<envar>PGPORTNEW</envar>, to replace
<envar>PGPORT</envar>.
</para>
</listitem>
<listitem>
<para>
Allow <application>pg_upgrade</> to handle cases where some
old or new databases are missing, as long as they are empty
Overhaul <application>pg_upgrade</> logging and failure reporting
(Bruce Momjian)
</para>
</listitem>
<listitem>
<para>
Allow <application>pg_upgrade</> to handle configuration-only
directory installations (Bruce Momjian)
Create four append-only log files, and delete them on success.
Add <option>-r</>/<option>--retain</> option to unconditionally
retain these files. Also remove <application>pg_upgrade</> options
<option>-g</>/<option>-G</>/<option>-l</> options as unnecessary,
and tighten log file permissions.
</para>
</listitem>
<listitem>
<para>
In <application>pg_upgrade</>, add <option>-o</>/<option>-O</>
options to pass parameters to the server
s (Bruce Momjian)
Make <application>pg_upgrade</> create a script to incrementally
generate more accurate optimizer statistic
s (Bruce Momjian)
</para>
<para>
This is useful for configuration-only directory installs.
This reduces the time needed to generate minimal cluster statistics
after an upgrade.
</para>
</listitem>
<listitem>
<para>
Change <application>pg_upgrade</> to use port 50432 by default
(Bruce Momjian)
</para>
<para>
This helps avoid unintended client connections during the upgrade.
Allow <application>pg_upgrade</> to upgrade an old cluster that
does not have a <literal>postgres</> database (Bruce Momjian)
</para>
</listitem>
<listitem>
<para>
Overhaul <application>pg_upgrade</> logging and failure reporting
Allow <application>pg_upgrade</> to handle cases where some
old or new databases are missing, as long as they are empty
(Bruce Momjian)
</para>
</listitem>
<listitem>
<para>
Create four append-only log files, and delete them on success.
Add <option>-r</>/<option>--retain</> option to unconditionally
retain these files. Also remove <application>pg_upgrade</> options
<option>-g</>/<option>-G</>/<option>-l</> options as unnecessary,
and tighten log file permissions.
Allow <application>pg_upgrade</> to handle configuration-only
directory installations (Bruce Momjian)
</para>
</listitem>
<listitem>
<para>
Adjust <application>pg_upgrade</> environment variables (Bruce
Momjian)
In <application>pg_upgrade</>, add <option>-o</>/<option>-O</>
options to pass parameters to the servers (Bruce
Momjian)
</para>
<para>
Rename data, bin, and port environment
variables to begin with <literal>PG</>, and support
<envar>PGPORTOLD</envar>/<envar>PGPORTNEW</envar>, to replace
<envar>PGPORT</envar>. INCOMPATIBILITY?
This is useful for configuration-only directory installs.
</para>
</listitem>
<listitem>
<para>
Have <application>pg_upgrade</> create a script to incrementally
generate more accurate optimizer statistics
(Bruce Momjian)
Change <application>pg_upgrade</> to use port 50432 by default
(Bruce Momjian)
</para>
<para>
This reduces the time needed to generate minimal cluster statistics
after an upgrade.
This helps avoid unintended client connections during the upgrade.
</para>
</listitem>
...
...
@@ -2788,13 +2728,12 @@
<listitem>
<para>
Allow <application>pg_stat_statements</> to aggregate similar
queries via SQL text normali
s
ation (Peter Geoghegan, Tom Lane)
queries via SQL text normali
z
ation (Peter Geoghegan, Tom Lane)
</para>
<para>
Users with applications that use non-parameterized SQL will now
be able to monitor query performance without using log file
analysis.
be able to monitor query performance without detailed log analysis.
</para>
</listitem>
...
...
@@ -2828,7 +2767,7 @@
</para>
<para>
Specifically, add
<literal>SECURITY LABEL</>
s to databases,
Specifically, add
security label
s to databases,
tablespaces, and roles.
</para>
</listitem>
...
...
@@ -2872,12 +2811,12 @@
<listitem>
<para>
Add a rule to optionally build
docs with the stylesheet from
the
website (Magnus Hagander)
Add a rule to optionally build
HTML documentation using
the
stylesheet from the
website (Magnus Hagander)
</para>
<para>
Use <command>make STYLE=website draft</>.
Use <command>
g
make STYLE=website draft</>.
</para>
</listitem>
...
...
@@ -2895,13 +2834,6 @@
</para>
</listitem>
<listitem>
<para>
Improve the foreign data wrapper <acronym>API</acronym> and
documentation (Hanada Shigeru)
</para>
</listitem>
<listitem>
<para>
Document the actual string returned by the client for MD5
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment