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