diff --git a/doc/src/sgml/release-9.4.sgml b/doc/src/sgml/release-9.4.sgml
index 88935444997..7ae67e0cec2 100644
--- a/doc/src/sgml/release-9.4.sgml
+++ b/doc/src/sgml/release-9.4.sgml
@@ -7,7 +7,7 @@
Release Date2014-??-??
- Current as of 2014-05-10
+ Current as of 2014-08-17
@@ -23,44 +23,44 @@
- Allow materialized views to be refreshed without blocking reads
+ Allow materialized views>
+ to be refreshed without blocking reads
- Logical decoding allows database
- changes to be streamed out in a customizable format
+ Add support for logical decoding>
+ of WAL data, to allow database changes to be streamed out in a
+ customizable format
- Allow background workers
+ Allow background worker processes>
to be dynamically registered, started and terminated
- Add structured (non-text) data type (JSONB>) for storing
- JSON> data
+ Add jsonb>, a more
+ capable and efficient data type for for storing JSON> data
- Add SQL>-level command ALTER SYSTEM>
- to edit the postgresql.conf> configuration file
+ Add new SQL> command
+ for updating postgresql.conf> configuration file entries
- Reduce lock levels of some ALTER TABLE> commands
+ Reduce lock strength for some
+ commands
@@ -77,10 +77,9 @@
Migration to Version 9.4
- A dump/restore using pg_dumpall>, or use
- of pg_upgrade>, is
- required for those wishing to migrate data from any previous release.
+ A dump/restore using , or use
+ of , is required for those wishing to migrate
+ data from any previous release.
@@ -90,6 +89,50 @@
+
+
+ Tighten checks for multidimensional array input (Bruce Momjian)
+
+
+
+ Previously, an input array string that started with a single-element
+ array dimension could later contain multidimensional segments,
+ e.g. '{{1}, {2,3}}'::int[]>.
+
+
+
+
+
+ Unicode escapes in JSON
+ text values are no longer rendered with the backslash escaped
+ (Andrew Dunstan)
+
+
+
+ Previously, all backslashes in text values being formed into JSON
+ were escaped. Now a backslash followed by u> and four
+ hexadecimal digits is not escaped, as this is a legal sequence in a
+ JSON string value, and escaping the backslash led to some perverse
+ results.
+
+
+
+
+
+ When converting values of type timestamp>
+ or timestamptz>
+ to JSON, render the
+ values in a format compliant with ISO 8601 (Andrew Dunstan)
+
+
+
+ Previously such values were rendered according to the current
+ setting; but many JSON processors
+ require timestamps to be in ISO 8601 format.
+
+
+
Cause consecutive whitespace in
- Previously consecutive whitespace characters in a non-FX>
+ Previously, consecutive whitespace characters in a non-FX>
format string behaved like a single whitespace character and consumed
all adjacent whitespace in the input string. For example, previously
- format string space-space-space would consume only the first space in
- ' 12', while it will now consume all three characters.
-
-
-
-
-
- Tighten checks for multidimensional array input (Bruce Momjian)
-
-
-
- Previously an input array string that started with a single-element
- array dimension could later contain multidimensional segments,
- e.g. '{{1}, {2,3}}'::int[]>.
-
-
-
-
-
- Change empty arrays returned by intarray> to be
- zero-dimensional arrays (Bruce Momjian)
-
-
-
- Previously, empty arrays were returned as one-dimensional empty arrays
- whose text representation looked the same as zero-dimensional arrays
- ({}>). intarray>'s behavior in this area
- now matches the built-in array operators.
-
-
-
-
-
- Disallow NULL VARIADIC>
- function arguments (Pavel Stehule)
-
-
-
- Such arguments must be cast to an array data type.
-
-
-
-
-
- SHOW TIME ZONE> now
- outputs constant time zone offsets in POSIX>-style zone
- format (Tom Lane)
-
-
-
- Previously it was returned in INTERVAL> format.
- The new format can be passed to SET TIME ZONE>.
-
-
-
-
-
- Values of type
- timestamp> and
- timestamptz> are now
- rendered in a string format compliant with ISO 8601 rather than the
- default output format when converting to or used in
- JSON.
- (Andrew Dunstan)
-
-
-
- Previously these were rendered in the default text output format
- for the type, but many JSON processors require timestamps in ISO 8601
- format.
-
-
-
-
-
- Unicode escapes in JSON
- text values are no longer rendered with the backslash escaped.
- (Andrew Dunstan)
-
-
-
- Previously all backslashes in text values being formed into JSON were
- escaped. Now a backslash followed by "u" and four hexadecimal digits is
- not escaped, as this is a legal sequence in a JSON string value, and
- escaping the backslash led to some perverse results.
-
-
-
-
-
- Rename EXPLAIN
- ANALYZE>'s total runtime output to execution time
- (Tom Lane)
-
-
-
- This was required now that planning time is also reported.
+ a format string of three spaces would consume only the first space in
+ ' 12'>, but it will now consume all three characters.
@@ -215,8 +160,60 @@
- Previously stripped lexemes got a default location and could be
- considered if mixed with non-stripped lexemes.
+ Previously, stripped lexemes were treated as if they had a default
+ location, producing a rank of dubious usefulness.
+
+
+
+
+
+ For functions declared to
+ take VARIADIC
+ "any">, an actual parameter marked as VARIADIC>
+ must be of a determinable array type (Pavel Stehule)
+
+
+
+ Such parameters can no longer be written as an undecorated string
+ literal or NULL>; a cast to an appropriate array data type
+ will now be required. Note that this does not affect parameters not
+ marked VARIADIC>.
+
+
+
+
+
+ now also discards sequence-related state
+ (Fabrízio de Royes Mello, Robert Haas)
+
+
+
+
+
+ Rename EXPLAIN
+ ANALYZE>'s total runtime output
+ to execution time (Tom Lane)
+
+
+
+ Now that planning time is also reported, the previous name was
+ confusing.
+
+
+
+
+
+ SHOW TIME ZONE> now
+ outputs simple numeric UTC offsets in POSIX> timezone
+ format (Tom Lane)
+
+
+
+ Previously, such timezone settings were displayed as interval> values.
+ The new output is properly interpreted by SET TIME ZONE>
+ when passed as a simple string, whereas the old output required
+ special treatment to be re-parsed correctly.
@@ -229,15 +226,15 @@
- Restoring such check constraints will lead to restore errors.
+ Previously such check constraints were allowed, but they would often
+ cause errors during restores.
- Use the last specified recovery_target> if
- multiple are specified (Heikki Linnakangas)
+ Use the last specified if multiple
+ values are specified (Heikki Linnakangas)
@@ -249,16 +246,15 @@
User commands that did their own quote preservation might need
- adjustment, e.g. archive_command, restore_command, COPY TO/FROM
- PROGRAM>.
+ adjustment. This is likely to be an issue for commands used in
+ , ,
+ and COPY TO/FROM PROGRAM>.
- Remove system column pg_class.reltoastidxid>
(Michael Paquier)
@@ -266,46 +262,7 @@
- Remove support for native krb5> authentication
- (Magnus Hagander)
-
-
-
- The proper way to use Kerberos> authentication is
- with GSSAPI>.
-
-
-
-
-
- Handle domains over arrays like plain arrays in PL/Python
- (Rodolfo Campero)
-
-
-
- Previously they were treated as strings.
-
-
-
-
-
- Have libpq's PQconnectdbParams()>
- and PQpingParams()>
- functions process zero-length strings as defaults (Adrian
- Vondendriesch)
-
-
-
- Previously, these functions treated zero-length string values as
- defaults only in some cases.
-
-
-
-
-
- Remove system column pg_rewrite.ev_attr>
(Kevin Grittner)
@@ -318,38 +275,69 @@
- pg_upgrade> now
- uses
- Previously
-u> was used to specify the user name.
- Also spell the long option as
--username>, again for
- consistency with other tools.
+ The supported way to use Kerberos> authentication is
+ with GSSAPI>. The native code has been deprecated since
+ PostgreSQL> 8.3.
- The maximum number of background workers
- that can be registered
- by RegisterBackgroundWorker() is now limited to
- max_worker_processes>
+ In PL/Python>, handle domains over arrays like the
+ underlying array type (Rodolfo Campero)
+
+
+
+ Previously such values were treated as strings.
- background workers registered at
- postmaster startup time should set
- bgw_notify_pid to 0.
- >
+ Make libpq's PQconnectdbParams()>
+ and PQpingParams()>
+ functions process zero-length strings as defaults (Adrian
+ Vondendriesch)
+
+
+
+ Previously, these functions treated zero-length string values as
+ selecting the default in only some cases.
- DISCARD ALL> now also discards sequence state.
+ Change empty arrays returned by the module
+ to be zero-dimensional arrays (Bruce Momjian)
+
+
+
+ Previously, empty arrays were returned as zero-length one-dimensional
+ arrays, whose text representation looked the same as zero-dimensional
+ arrays ({}>), but they acted differently in array
+ operations. intarray>'s behavior in this area now
+ matches the built-in array operators.
+
+
+
+
+
+ now uses
-U>
+ or
--username> to specify the user name (Bruce Momjian)
+
+
+
+ Previously this option was spelled
-u> or
--user>,
+ but that was inconsistent with other tools.
@@ -373,24 +361,13 @@
- Have VACUUM> properly
- report dead but not removable rows to the statistics collector
- (Hari Babu)
+ Allow background worker processes
+ to be dynamically registered, started and terminated (Robert Haas)
- Previously these were reported as live rows.
-
-
-
-
- Allow background workers to be
- dynamically registered, started and terminated (Robert Haas)
-
-
-
- worker_spi_launch()> in worker_spi>
- shows an example of its use.
+ The contrib/worker_spi> module shows an example of use
+ of this feature.
@@ -401,29 +378,22 @@
- This is illustrated in test_shm_mq>.
+ This feature is illustrated in .
- Improve SSL> renegotiation handling (Álvaro
- Herrera)
-
-
-
-
-
- During immediate shutdown send uncatchable termination signals
- to child processes that have not already shutdown (MauMau,
- Álvaro Herrera)
+ During crash recovery or immediate shutdown, send uncatchable
+ termination signals (SIGKILL>) to child processes
+ that do not shut down promptly (MauMau, Álvaro Herrera)
- This reduces the likelihood of orphaned child processes after
- postmaster>
- shutdown.
+ This reduces the likelihood of leaving orphaned child processes
+ behind after shutdown, as well
+ as ensuring that crash recovery can proceed if some child processes
+ have become stuck>.
@@ -433,6 +403,17 @@
+
+
+ Make properly report dead but
+ not-yet-removable rows to the statistics collector (Hari Babu)
+
+
+
+ Previously these were reported as live rows.
+
+
+
@@ -440,6 +421,20 @@
+
+
+ Reduce GIN> index size
+ (Alexander Korotkov, Heikki Linnakangas)
+
+
+
+ Indexes upgraded via will work fine
+ but will still be in the old, larger GIN> format.
+ Use to recreate such an index in the
+ new format.
+
+
+
Improve speed of multi-key
-
-
- Reduce GIN> index size
- (Alexander Korotkov, Heikki Linnakangas)
-
-
-
- Indexes upgraded via pg_upgrade> will work
- fine but will use the old larger GIN> format; REINDEX> will recreate
- the index in the new format.
-
-
-
Add GiST> index support
- for INET> and
- CIDR> data types
+ for inet> and
+ cidr> data types
(Emre Hasegeli)
Such indexes improve subnet and supernet
+ linkend="cidr-inet-operators-table">subnet and supernet
lookups and ordering comparisons.
- Fix race condition in B-tree page deletion (Heikki Linnakangas)
+ Fix rare race condition in B-tree page deletion (Heikki Linnakangas)
@@ -502,8 +482,9 @@
- Allow multiple backends to simultaneously insert into WAL> buffers (Heikki Linnakangas)
+ Allow multiple backends to insert
+ into WAL> buffers
+ concurrently (Heikki Linnakangas)
@@ -520,31 +501,25 @@
- Improve performance of WINDOW>
- aggregate functions (David Rowley, Florian Pflug, Tom Lane)
+ Improve performance of aggregate functions used as window functions
+ (David Rowley, Florian Pflug, Tom Lane)
- Improve speed of aggregates which use NUMERIC>s (Hadi
- Moshayedi)
-
-
-
- These include SUM()>, AVG()>, STDDEV()>,
- and VARIANCE()>.
+ Improve speed of aggregates that
+ use numeric> state
+ values (Hadi Moshayedi)
Attempt to freeze
- tuples when tables are rewritten with CLUSTER> or or VACUUM FULL> (Robert Haas,
Andres Freund)
@@ -556,7 +531,7 @@
- Improve speed of COPY>
+ Improve speed of
with DEFAULT> nextval()>
columns (Simon Riggs)
@@ -574,33 +549,46 @@
Raise hard limit on the number of tuples held in memory during sorting
- and B-tree index builds (Noah
- Misch)
+ and B-tree index builds (Noah Misch)
- Reduce memory allocated by DO> blocks (Tom Lane)
+ Reduce memory allocated by PL/pgSQL>
+ blocks (Tom Lane)
- Have the optimizer be more aggressive in creating restrictions
+ Make the planner more aggressive in extracting restriction clauses
from mixed AND>/OR> clauses (Tom Lane)
- Auto-resize the catalog cache (Heikki Linnakangas)
+ Disallow pushing volatile WHERE> clauses down
+ into DISTINCT> subqueries (Tom Lane)
- This reduces memory consumption for backends accessing only a few
- tables, and improves performance for backend accessing many tables.
+ Pushing down a WHERE> clause can produce a more
+ efficient plan overall, but at the cost of evaluating the clause
+ more often than is implied by the text of the query; so don't do it
+ if the clause contains any volatile functions.
+
+
+
+
+
+ Auto-resize the catalog caches (Heikki Linnakangas)
+
+
+
+ This reduces memory consumption for sessions accessing only a few
+ tables, and improves performance for sessions accessing many tables.
@@ -615,31 +603,32 @@
- Expose the estimation of number of changed tuples since last ANALYZE (Mark Kirkwood)
-
-
-
- This appears in pg_stat_all_tables.n_mod_since_analyze>.
+ Add system view to
+ report WAL> archiver activity
+ (Gabriele Bartolini)
- Add pg_stat_archiver>
- system view to report WAL>
- archiver activity (Gabriele Bartolini)
+ Add n_mod_since_analyze> columns to
+ and related system views
+ (Mark Kirkwood)
+
+
+
+ These columns expose the system's estimate of the number of changed
+ tuples since the table's last . This
+ estimate drives decisions about when to auto-analyze.
- Add backend_xid> and backend_xmin> columns to
- the system view pg_stat_activity>
- and backend_xmin> to pg_stat_replication>
- (Christian Kruse)
+ Add backend_xid> and backend_xmin>
+ columns to the system view ,
+ and a backend_xmin> column to
+ (Christian Kruse)
@@ -660,38 +649,47 @@
This allows use of Elliptic Curve keys for server authentication.
- Such keys are faster and have improved security over RSA> keys.
- The new configuration parameter
- ssl_ecdh_curve>
+ Such keys are faster and have better security than RSA>
+ keys. The new configuration parameter
+
controls which curve is used for ECDH>.
- Improve the default ssl_ciphers> value
+ Improve the default setting
(Marko Kreen)
- Allow the server to specify the preferred SSL> cipher
- order (Marko Kreen)
+ By default, the server not the client now controls the preference
+ order of SSL> ciphers
+ (Marko Kreen)
- This is controlled by the new configuration parameter ssl_prefer_server_ciphers>.
+ Previously, the order specified by
+ was usually ignored in favor of client-side defaults, which are not
+ configurable in most PostgreSQL> clients. If
+ desired, the old behavior can be restored via the new configuration
+ parameter .
- Have log_connections>
- show SSL> encryption information (Andreas Kunert)
+ Make show SSL>
+ encryption information (Andreas Kunert)
+
+
+
+
+
+ Improve SSL> renegotiation handling (Álvaro
+ Herrera)
@@ -706,42 +704,20 @@
- Add SQL>-level ALTER SYSTEM> command
- to adjust server-wide settings (Amit Kapila)
+ Add new SQL> command
+ for updating postgresql.conf> configuration file entries
+ (Amit Kapila)
- Previously such settings could only be changed by
- editing postgresql.conf> at the file system level.
+ Previously such settings could only be changed by manually
+ editing postgresql.conf>.
- Add huge_pages>
- configuration parameter to use huge memory pages on Linux
- (Christian Kruse, Richard Poole, Abhijit Menon-Sen)
-
-
-
- This can improve performance on large memory systems.
-
-
-
-
-
- Show PID>s of lock holders and
- waiters and improve relation information in log_lock_waits>
- log messages (Christian Kruse)
-
-
-
-
-
- Add parameter autovacuum_work_mem>
+ Add configuration parameter
to control the amount of memory used by autovacuum workers
(Peter Geoghegan)
@@ -749,54 +725,96 @@
- Add max_worker_processes>
+ Add parameter to allow using huge
+ memory pages on Linux (Christian Kruse, Richard Poole, Abhijit
+ Menon-Sen)
+
+
+
+ This can improve performance on large-memory systems.
+
+
+
+
+
+ Add parameter
to limit the number of background workers (Robert Haas)
- This is helpful in configuring the standby server to have the
- required same number of worker processes as the primary.
+ This is helpful in configuring a standby server to have the
+ required number of worker processes (the same as the primary).
- Add configuration parameter wal_log_hints>
- to enable logging of hint bits (Sawada Masahiko)
+ Add superuser-only
+ parameter to load libraries at session start (Peter Eisentraut)
- Hint bits are not normally logged, except when checksums are enabled.
- This is useful for external tools like pg_rewind>.
-
-
-
-
-
- Allow printf-style space padding to be specified in log_line_prefix>
- (David Rowley)
-
-
-
-
-
- Add superuser-only session_preload_libraries>
- configuration parameter to load libraries at session start
- (Peter Eisentraut)
-
-
-
- In contrast
- to local_preload_libraries>
- this parameter can load any shared library, not just those in
+ In contrast to , this
+ parameter can load any shared library, not just those in
the $libdir/plugins> directory.
+
+
+ Add parameter to enable WAL
+ logging of hint-bit changes (Sawada Masahiko)
+
+
+
+ Hint bit changes are not normally logged, except when checksums are
+ enabled. This is useful for external tools
+ like pg_rewind>.
+
+
+
+
+
+ Increase the default settings of
+ and by four times (Bruce
+ Momjian)
+
+
+
+ The new defaults are 4MB and 64MB respectively.
+
+
+
+
+
+ Increase the default setting of
+ to 4GB (Bruce Momjian, Tom Lane)
+
+
+
+
+
+ Allow printf-style space padding to be
+ specified in (David Rowley)
+
+
+
+
+
+ Allow terabyte units (TB>) to be used when specifying
+ configuration variable values (Simon Riggs)
+
+
+
+
+
+ Show PID>s of lock holders and waiters and improve
+ information about relations in
+ log messages (Christian Kruse)
+
+
+
Reduce server logging level when loading shared libraries (Peter
@@ -811,37 +829,9 @@
- Increase work_mem> and maintenance_work_mem>
- defaults by four times (Bruce Momjian)
-
-
-
- The new defaults are 4MB and 64MB respectively.
-
-
-
-
-
- Increase the default setting of effective_cache_size>
- to 4GB (Bruce Momjian, Tom Lane)
-
-
-
-
-
- Allow terabyte units to be specified for configuration variable
- values (Simon Riggs)
-
-
-
-
-
- Have Windows SQL_ASCII>-encoded databases and server
- process (e.g. postmaster>) emit
- messages in the character encoding of the server's Windows user locale
+ On Windows, make SQL_ASCII>-encoded databases and server
+ processes (e.g., ) emit messages in
+ the character encoding of the server's Windows user locale
(Alexander Law, Noah Misch)
@@ -864,22 +854,35 @@
- Add recovery.conf>
- parameter recovery_min_apply_delay>
- to delay replication (Robert Haas, Fabrízio de Royes Mello,
- Simon Riggs)
+ Add replication
+ slots to coordinate activity on streaming standbys with the
+ node they are streaming from (Andres Freund, Robert Haas)
- This is useful for delaying the replay of user errors on standby
- servers.
+ Replication slots allow preservation of resources like
+ WAL> files on the primary until they are no longer
+ needed by standby servers.
- Add recovery_target>
+ Add recovery.conf>
+ parameter
+ to delay replication (Robert Haas, Fabrízio de Royes Mello,
+ Simon Riggs)
+
+
+
+ Delaying replay on standby servers can be useful for recovering
+ from user errors.
+
+
+
+
+
+ Add
option
immediate> to stop WAL> recovery as soon as a
consistent state is reached (MauMau, Heikki Linnakangas)
@@ -894,9 +897,9 @@
The timestamp reported
by pg_last_xact_replay_timestamp()>
- now shows information about already-committed records, not of transactions
- about to be committed. Recovering to a restore point now replays the
- restore point, rather than stopping just before the restore point.
+ now reflects already-committed records, not transactions about to
+ be committed. Recovering to a restore point now replays the restore
+ point, rather than stopping just before the restore point.
@@ -904,7 +907,7 @@
pg_switch_xlog()>
- now clears the trailing unused space in the WAL> file
+ now clears any unused trailing space in the old WAL> file
(Heikki Linnakangas)
@@ -913,27 +916,6 @@
-
-
- Add replication
- slots to coordinate activity on streaming standbys with the
- node they are streaming from (Andres Freund, Robert Haas)
-
-
-
- Replication slots allow preservation of resources like
- WAL> files on the primary that are needed by standby
- servers.
-
-
-
-
-
- Reduce spinlock contention during WAL> replay (Heikki
- Linnakangas)
-
-
-
Report failure return codes from
+
+
+ Reduce spinlock contention during WAL> replay (Heikki
+ Linnakangas)
+
+
+
Write WAL> records of running transactions more
@@ -949,7 +938,7 @@
- This allows standby servers to start faster and cleanup resources
+ This allows standby servers to start faster and clean up resources
more aggressively.
@@ -960,7 +949,7 @@
Logical Decoding>
- Logical decoding allows database changes to be optionally streamed in a
+ Logical decoding allows database changes to be streamed in a
configurable format. The data is read from
the WAL> and transformed into the
desired target format. To implement this feature, the following changes
@@ -968,40 +957,20 @@
-
+
- Add new
logical> wal_level> to enable
- logical change-set encoding in WAL> (Andres Freund)
-
-
-
- This interacts with REPLICA IDENTITY>.
+ Add support for logical decoding>
+ of WAL data, to allow database changes to be streamed out in a
+ customizable format
+ (Andres Freund)
- Allow pg_recvlogical>
- to receive logical decoding data (Andres Freund)
-
-
-
-
-
- Add test_decoding>
- module to illustrate logical decoding at the SQL>
- level (Andres Freund)
-
-
-
-
-
- Allow logical decoding via the walsender interface ? (Andres
+ Add new setting
logical>
+ to enable logical change-set encoding in WAL> (Andres
Freund)
@@ -1023,6 +992,20 @@
+
+
+ Add application to receive
+ logical-decoding data (Andres Freund)
+
+
+
+
+
+ Add module to illustrate logical
+ decoding at the SQL> level (Andres Freund)
+
+
+
@@ -1034,19 +1017,12 @@
-
-
- Add ROWS
- FROM()> syntax to allow horizontal concatenation of
- set-returning functions in the FROM>-clause (Andrew Gierth)
-
-
-
Add WITH
ORDINALITY> syntax to number rows returned from
- FROM>-clause functions (Andrew Gierth, David Fetter)
+ set-returning functions in the FROM> clause
+ (Andrew Gierth, David Fetter)
@@ -1057,13 +1033,21 @@
- Allow SELECT> with
+ Add ROWS
+ FROM()> syntax to allow horizontal concatenation of
+ set-returning functions in the FROM> clause (Andrew Gierth)
+
+
+
+
+
+ Allow to have
an empty target list (Tom Lane)
- This was added so views that select from a table with zero columns
- can be dumped correctly.
+ This was added so that views that select from a table with zero
+ columns can be dumped and restored correctly.
@@ -1079,7 +1063,7 @@
Add DISCARD
- SEQUENCES> command to discard cached sequence information
+ SEQUENCES> command to discard cached sequence-related state
(Fabrízio de Royes Mello, Robert Haas)
@@ -1090,14 +1074,15 @@
- Add FORCE NULL> option
- to COPY FROM> which causes
- quoted strings matching the null string to be converted to NULL in
- CSV> mode (Ian Barwick, Michael Paquier)
+ Add FORCE NULL> option
+ to COPY FROM>, which
+ causes quoted strings matching the specified null string to be
+ converted to NULLs in CSV> mode (Ian Barwick, Michael
+ Paquier)
- Previously only unquoted matching strings would be imported
+ Without this option, only unquoted matching strings will be imported
as null values.
@@ -1105,41 +1090,41 @@
Issue warnings for commands used outside of transaction blocks
- because they have no effect (Bruce Momjian)
+ when they can have no effect (Bruce Momjian)
- The cases are SET
- LOCAL>, SET CONSTRAINTS>, SET TRANSACTION> and
- ABORT>.
+ New warnings are issued for SET
+ LOCAL>, SET CONSTRAINTS>, SET TRANSACTION> and
+ ABORT> when used outside a transaction block.
- EXPLAIN>
+
- Have EXPLAIN ANALYZE> output planning time (Andreas
+ Make EXPLAIN ANALYZE> show planning time (Andreas
Karlsson)
- Have EXPLAIN> print the grouping columns in Agg and
+ Make EXPLAIN> show the grouping columns in Agg and
Group nodes (Tom Lane)
- Have EXPLAIN ANALYZE> show bitmap heap scan exact/lossy
- block information (Etsuro Fujita)
+ Make EXPLAIN ANALYZE> show exact and lossy
+ block counts in bitmap heap scans (Etsuro Fujita)
@@ -1154,8 +1139,9 @@
- Allow materialized views to be refreshed without blocking reads
- (Kevin Grittner)
+ Allow materialized views>
+ to be refreshed without blocking reads
+ (Kevin Grittner)
@@ -1174,7 +1160,7 @@
- Previously the presence of non-updatable columns such as
+ Previously the presence of non-updatable output columns such as
expressions, literals, and function calls prevented automatic
updates. Now INSERT>s, UPDATE>s and
DELETE>s are supported, provided that they do not
@@ -1186,12 +1172,12 @@
Allow control over whether INSERT>s and
UPDATE>s can add rows to an auto-updatable view that
- would no longer appear in the view (Dean Rasheed)
+ would not appear in the view (Dean Rasheed)
- This is controlled with the new WITH CHECK OPTION>.
+ This is controlled with the new
+ clause WITH CHECK OPTION>.
@@ -1215,79 +1201,31 @@
- Allow triggers on foreign
+ Support triggers on foreign
tables> (Ronan Dunklau)
-
-
- Fix DROP IF EXISTS> to more consistently not error
- for non-existent objects (Pavel Stehule, Dean Rasheed)
-
-
-
-
-
- Improve how system-level relations are designated (Andres Freund,
- Robert Haas)
-
-
-
- Previously, relations once moved into the system catalog schema could
- no longer be modified or dropped.
-
-
-
-
-
- Allow ALTER
- TABLESPACE> options to be also set by CREATE TABLESPACE>
- (Vik Fearing)
-
-
-
-
-
- Allow CREATE
- AGGREGATE> to supply the size of the aggregate's
- transition state data (Hadi Moshayedi)
-
-
-
- This allows the optimizer to better estimate how much memory will be
- used by aggregates.
-
-
-
-
-
-
- ALTER>
-
-
-
Allow moving groups of objects from one tablespace to another
- using ALTER
- TABLESPACE> ... MOVE> (Stephen Frost)
+ using ... MOVE>
+ (Stephen Frost)
- Allow changing foreign key constraint deferrability via ALTER TABLE>
- ... ALTER CONSTRAINT> (Simon Riggs)
+ Allow changing foreign key constraint deferrability
+ via ... ALTER
+ CONSTRAINT> (Simon Riggs)
- Reduce lock levels of some ALTER TABLE> commands
+ Reduce lock strength for some
+ commands
(Simon Riggs, Noah Misch, Robert Haas)
@@ -1301,9 +1239,50 @@
-
+
+
+ Allow tablespace options to be set
+ in (Vik Fearing)
+
-
+
+ Formerly these options could only be set
+ via .
+
+
+
+
+
+ Allow to define the estimated
+ size of the aggregate's transition state data (Hadi Moshayedi)
+
+
+
+ Proper use of this feature allows the planner to better estimate
+ how much memory will be used by aggregates.
+
+
+
+
+
+ Fix DROP IF EXISTS> to avoid errors for non-existent
+ objects in more cases (Pavel Stehule, Dean Rasheed)
+
+
+
+
+
+ Improve how system relations are identified (Andres Freund,
+ Robert Haas)
+
+
+
+ Previously, relations once moved into the pg_catalog>
+ schema could no longer be modified or dropped.
+
+
+
+
@@ -1321,7 +1300,7 @@
The line segment> data type (LSEG>) has always been
+ linkend="datatype-lseg">lseg>) has always been
fully supported. The previous line> data type (enabled
only via a compile-time option) is not binary or dump-compatible.
@@ -1329,7 +1308,7 @@
- Add PG_LSN>
+ Add pg_lsn>
data type to represent a WAL> log sequence number
(LSN>) (Robert Haas, Michael Paquier)
@@ -1338,8 +1317,8 @@
Allow single-point POLYGON>s to be converted
- to CIRCLE>s
+ linkend="datatype-polygon">polygon>s to be converted
+ to circle>s
(Bruce Momjian)
@@ -1347,15 +1326,15 @@
Allow 5+ digit years for non-ISO> TIMESTAMP> and
- DATE> strings, where appropriate (Bruce Momjian)
+ linkend="datatype-datetime">timestamp> and
+ date> strings, where appropriate (Bruce Momjian)
Add checks for overflow/underflow of INTERVAL> values
+ linkend="datatype-datetime">interval> values
(Bruce Momjian)
@@ -1363,23 +1342,25 @@
- JSON>
+ JSON>
- Add structured (non-text) data type (jsonb>) for storing
- JSON data (Oleg Bartunov, Teodor Sigaev, Alexander
- Korotkov, Peter Geoghegan, and Andrew Dunstan)
+ Add jsonb>, a more
+ capable and efficient data type for for storing JSON> data
+ (Oleg Bartunov, Teodor Sigaev, Alexander
+ Korotkov, Peter Geoghegan, Andrew Dunstan)
- This allows for faster access to values in the JSON
- document and faster and more useful indexing of JSON.
- Scalar values in jsonb> documents are typed as appropriate
- scalar SQL types.
+ This new type allows faster access to values in a JSON
+ document and faster and more useful indexing of JSON columns.
+ Scalar values in jsonb> documents are stored as appropriate
+ scalar SQL types, and the JSON document structure is pre-parsed
+ rather than being stored as text as in the original json>
+ data type.
@@ -1412,7 +1393,6 @@
-
Functions
@@ -1422,12 +1402,13 @@
Add pg_sleep_for(interval)>
- and pg_sleep_until(timestamp)> to specify sophisticated
- delays (Vik Fearing, Julien Rouhaud)
+ and pg_sleep_until(timestamp)> to specify
+ delays more flexibly (Vik Fearing, Julien Rouhaud)
- pg_sleep()> only supports delays specified in seconds.
+ The existing pg_sleep()> function only supports delays
+ specified in seconds.
@@ -1468,28 +1449,29 @@
- These functions are prefixed with make_>,
+ These functions' names are prefixed with make_>,
e.g. make_date()>.
- Have to_char(TZ>)>
- return the proper value for constant time zone offsets (Tom Lane)
+ Make to_char()>'s
+ TZ> format specifier return a useful value for simple
+ numeric time zone offsets (Tom Lane)
Previously, to_char(CURRENT_TIMESTAMP, 'TZ')> returned
- NULL if the TIME ZONE> was set to a constant like
- -4>.
+ an empty string if the timezone> was set to a constant
+ like -4>.
- Add timezone offset output option OF> to OF> to to_char()>
(Bruce Momjian)
@@ -1503,6 +1485,19 @@
+
+
+ Tighten validity checking for Unicode code points in chr(int)>
+ (Tom Lane)
+
+
+
+ This function now only accepts values that are valid UTF8 characters
+ according to RFC 3629.
+
+
+
@@ -1514,7 +1509,7 @@
Add functions for looking up objects in pg_class>,
pg_proc>, pg_type>, and
- pg_operator> which do not generate errors for
+ pg_operator> that do not generate errors for
non-existent objects (Yugo Nagata, Nozomi Anzai,
Robert Haas)
@@ -1522,8 +1517,9 @@
For example, to_regclass()>
- does lookups of pg_class> and returns NULL for
- non-existent objects.
+ does a lookup in pg_class> similarly to
+ the regclass> input function, but it returns NULL for a
+ non-existent object instead of failing.
@@ -1531,30 +1527,28 @@
Add function pg_filenode_relation()>
- to allow for more efficient lookup of relation names from filenodes (Andres
- Freund)
+ to allow for more efficient lookup of relation names from filenodes
+ (Andres Freund)
- Add information_schema>
- column parameters.parameter_default>
- (Peter Eisentraut)
+ Add parameter_default> column to information_schema.parameters>
+ view (Peter Eisentraut)
- Have information_schema.schemata>
- show all accessible schema (Peter Eisentraut)
+ Make information_schema.schemata>
+ show all accessible schemas (Peter Eisentraut)
- Previously it only showed owned> schemas.
+ Previously it only showed schemas owned by the current user.
@@ -1569,20 +1563,7 @@
- Add aggregates percentile_cont()>,
- percentile_disc()>, rank()>,
- dense_rank()>, percent_rank()>,
- cume_dist()>, and mode()>
- (Atri Sharma, Andrew Gierth)
-
-
-
-
-
- Add control over which values are passed
+ Add control over which rows are passed
into aggregate functions using the FILTER> clause
(David Fetter)
@@ -1595,9 +1576,25 @@
linkend="syntax-aggregates">WITHIN GROUP>)
aggregates (Atri Sharma, Andrew Gierth, Tom Lane)
+
+
- This allows aggregates that require sorted input.
+ Add aggregates percentile_cont()>,
+ percentile_disc()>, mode()>, rank()>,
+ dense_rank()>, percent_rank()>, and
+ cume_dist()>
+ (Atri Sharma, Andrew Gierth)
+
+
+
+
+
+ Support VARIADIC>
+ aggregate functions (Tom Lane)
@@ -1607,19 +1604,11 @@
types (Tom Lane)
- This allows the declaration of aggregates like the built-in
+ This allows proper declaration of aggregates like the built-in
aggregate array_agg()> in SQL.
-
-
- Allow VARIADIC>
- aggregate functions (Tom Lane)
-
-
-
@@ -1640,13 +1629,14 @@
- Convert NUMERIC>s to
- decimal> values in PL/Python
+ Convert numeric>
+ values to decimal> in PL/Python
(Szymon Guz, Ronan Dunklau)
- Previously these were converted to float>s.
+ Previously such values were converted to Python float> values,
+ risking loss of precision.
@@ -1711,27 +1701,19 @@
Make libpq's PQconndefaults()>
- ignore invalid service files (Steve Singer, Bruce Momjian)
+ function ignore invalid service files (Steve Singer, Bruce Momjian)
- Previously it returned NULL.
+ Previously it returned NULL if an incorrect service file was
+ encountered.
- Allow libpq to support TLS> versions beyond
- TLSv1> (Marko Kreen)
-
-
-
-
-
- Document that libpq's PQclientEncoding()>
- returns -1> for an encoding lookup failure (Bruce
- Momjian)
+ Accept TLS> protocol versions beyond TLSv1>
+ in libpq (Marko Kreen)
@@ -1746,15 +1728,14 @@
- Add createuser>
-
-g> to specify role membership (Chistopher Browne)
+ Add option
-g>
+ to specify role membership (Chistopher Browne)
- Add vacuumdb>
+ Add
option
--analyze-in-stages> to analyze in stages of
increasing granularity (Peter Eisentraut)
@@ -1766,17 +1747,42 @@
- Allow pg_xlogdump>
- to report a live log stream with
--follow> (Heikki
- Linnakangas)
+ Make with option
-n>
+ output current and potentially changed values (Rajeev Rastogi)
- Have pg_resetxlog
- -n> output current and potentially changed values
- (Rajeev Rastogi)
+ Make throw error for incorrect locale
+ settings, rather than silently falling back to a default choice
+ (Tom Lane)
+
+
+
+
+
+ Make return exit code 4> for
+ an inaccessible data directory (Amit Kapila, Bruce Momjian)
+
+
+
+ This behavior more closely matches the Linux Standard Base
+ (LSB>) Core Specification.
+
+
+
+
+
+ On Windows, ensure that a non-absolute
-D> path
+ specification is interpreted relative
+ to 's current directory
+ (Kumar Rajeev Rastogi)
+
+
+
+ Previously it would be interpreted relative to whichever directory
+ the underlying Windows service was started in.
@@ -1789,38 +1795,16 @@
- Have ECPG properly handle nesting
- requirements in C and SQL> mode for C-style comments
+ Make ECPG properly handle nesting
+ of C-style comments in both C and SQL> text
(Michael Meskes)
-
-
- Have pg_ctl>
- return 4> for an inaccessible data directory
- specification (Amit Kapila, Bruce Momjian)
-
-
-
- This more closely matches the Linux Standard Base (LSB>)
- Core Specification.
-
-
-
-
-
- On Windows, interpret pg_ctl>'s non-absolute
- path
-D> directories relative to pg_ctl>'s
- current directory (Kumar Rajeev Rastogi)
-
-
-
- psql>
+
@@ -1834,7 +1818,7 @@
- Suppress "No rows" in psql> No rows output in psql>
expanded>
mode when the footer is disabled (Bruce Momjian)
@@ -1842,7 +1826,7 @@
- Allow Control-C to abort psql> hung at connection
+ Allow Control-C to abort psql> when hung at connection
startup (Peter Eisentraut)
@@ -1856,39 +1840,39 @@
- Have psql> \db+> show tablespace options
+ Make psql> \db+> show tablespace options
(Magnus Hagander)
- Have psql> \do+> display the functions
+ Make psql> \do+> display the functions
which implement the operators (Marko Tiikkaja)
- Have psql> \d+> output an
- OID> line only if an oid column exists in a table
- (Bruce Momjian)
+ Make psql> \d+> output an
+ OID> line only if an oid column
+ exists in a table (Bruce Momjian)
- Previously, the presence or absence of an oid column was always
- reported.
+ Previously, the presence or absence of an oid
+ column was always reported.
- Have \d> show disabled system triggers (Bruce
+ Make \d> show disabled system triggers (Bruce
Momjian)
- Previously if you disabled all triggers, only user triggers
+ Previously, if you disabled all triggers, only user triggers
would show as disabled.
@@ -1902,9 +1886,9 @@
- Output the row count at the end of
- psql> \copy> just like COPY> (Kumar Rajeev Rastogi)
+ Output the row count at the end
+ of psql> \copy> just
+ like (Kumar Rajeev Rastogi)
@@ -1944,12 +1928,13 @@
- In psql>, output the written history file name
- (\s>) without adding an absolute path prefix (Tom Lane)
+ In psql>, display the history file name written by
+ \s> without converting it to an absolute path (Tom Lane)
- The previous output was inconsistent.
+ The code previously attempted to convert a relative file name to
+ an absolute path for display, but frequently got it wrong.
@@ -1960,36 +1945,35 @@
- pg_dump>
+
- Allow pg_restore> options
+ Allow options
-I>,
-P>,
-T> and
-n>
to be specified multiple times (Heikki Linnakangas)
- This allows multiple restore object to be specified.
+ This allows multiple objects to be restored in one operation.
- Add IF EXISTS> clauses when removing old objects during
- dump and restore (Pavel Stehule)
+ Optionally add IF EXISTS> clauses to the DROP>
+ commands emitted when removing old objects during a restore (Pavel
+ Stehule)
- This suppresses errors when removing old objects.
- The new
--if-exists> option to pg_dump>, pg_dumpall>, and
- pg_restore>
- is only available when
--clean> is also specified.
+ This change prevents unnecessary errors when removing old objects.
+ The new
--if-exists> option
+ for , ,
+ and is only available
+ when
--clean> is also specified.
@@ -1998,7 +1982,7 @@
- pg_basebackup>
+
@@ -2024,7 +2008,7 @@
- Allow network-streams base backups to be throttled (Antonin Houska)
+ Allow network-stream base backups to be throttled (Antonin Houska)
@@ -2046,25 +2030,29 @@
- Improve the way tuples are frozen, to preserve forensic information
+ Improve the way tuples are frozen to preserve forensic information
(Robert Haas, Andres Freund)
- Code that inspects tuple flag bits will need to be modified.
+ This change removes the main objection to freezing tuples as soon
+ as possible. Code that inspects tuple flag bits will need to be
+ modified.
- No longer require function prototypes for function marked with the
+ No longer require function prototypes for functions marked with the
PG_FUNCTION_INFO_V1>
macro (Peter Eisentraut)
- This eliminates needless boilerplate prototypes whose lack
- generates compiler warnings.
+ This change eliminates the need to write boilerplate prototypes.
+ Note that the PG_FUNCTION_INFO_V1> macro must appear
+ before the corresponding function definition to avoid compiler
+ warnings.
@@ -2082,8 +2070,8 @@
- Add API> for memory allocations over one gigabyte (Noah
- Misch)
+ Add an API> to allow memory allocations over one gigabyte
+ (Noah Misch)
@@ -2096,8 +2084,8 @@
- Add printf()> modifier "z" to specify size_t>
- values (Andres Freund)
+ Support printf()> size modifier z> to
+ print size_t> values (Andres Freund)
@@ -2146,7 +2134,7 @@
Reduce the number of semaphores required by
-
--disable-spinlocks> (Robert Haas)
+
--disable-spinlocks> builds (Robert Haas)
@@ -2167,8 +2155,8 @@
Add make targets
check-tests> and
-
installcheck-tests> which allow per-test specification
- (Andrew Dunstan)
+
installcheck-tests>, which allow selection of individual
+ tests to be run (Andrew Dunstan)
@@ -2178,7 +2166,7 @@
- Its functionality is now done by the default build rules.
+ The default build rules now include all the formerly-optional tests.
@@ -2197,7 +2185,7 @@
- Add configure flag that appends custom text to the
+ Add a configure> flag that appends custom text to the
PG_VERSION> string (Oskari Saarenmaa)
@@ -2214,7 +2202,7 @@
- Various security and sanity fixes reported by the
+ Various minor security and sanity fixes reported by the
Coverity> scanner (Stephen Frost)
@@ -2228,7 +2216,7 @@
- Improve Emacs> configuration file
+ Improve sample Emacs> configuration file
emacs.samples> (Peter Eisentraut)
@@ -2239,26 +2227,28 @@
- Allow pgindent> to be supplied a command-line list
+ Allow pgindent> to accept a command-line list
of typedefs (Bruce Momjian)
- Pgindent> is also now smarter about blank lines
+ pgindent> is also now smarter about blank lines
around preprocessor conditionals.
- Avoid most uses of dlltool in Cygwin> and
+ Avoid most uses of dlltool
+ in Cygwin> and
Mingw> builds (Marco Atzeri, Hiroshi Inoue)
- Allow client-only installs for MSVC> (Windows) builds (MauMau)
+ Support client-only installs in MSVC> (Windows) builds
+ (MauMau)
@@ -2273,80 +2263,94 @@
- Add pg_prewarm>
- extension to preload relation data into the shared buffer cache
- (Robert Haas)
+ Add extension to preload relation data
+ into the shared buffer cache at server start (Robert Haas)
- This is useful at server start to produce more consistent
- performance.
+ This allows reaching full operating performance more quickly.
Add UUID> random number generator
- gen_random_uuid()> to pgcrypto> (Oskari
- Saarenmaa)
+ gen_random_uuid()> to
+ (Oskari Saarenmaa)
- This allows the creation of version 4 UUID>s without
- requiring the installation of uuid-ossp.
+ This allows creation of version 4 UUID>s without
+ requiring installation of .
- Add option to include trigger execution time to auto_explain>
- (Horiguchi Kyotaro)
+ Allow to work with
+ the BSD> or e2fsprogs> UUID libraries,
+ not only the OSSP> UUID library (Matteo Beccati)
+
+
+
+ This improves the uuid-ossp> module's portability
+ since it no longer has to have the increasingly-obsolete OSSP
+ library. The module's name is now rather a misnomer, but we won't
+ change it.
- Fix pgstattuple>
- to not report rows from uncommitted transactions as dead
- (Robert Haas)
+ Add option to to include trigger
+ execution time (Horiguchi Kyotaro)
- Have pgstattuple>
- functions use regclass-type arguments (Satoshi Nagayasu)
-
-
-
- While text-type arguments are still supported, they will be
- removed in a later major release.
+ Fix to not report rows from
+ uncommitted transactions as dead (Robert Haas)
- Improve consistency of pgrowlocks> output to
- honor snapshot rules more consistently (Robert Haas)
+ Make functions
+ use regclass-type arguments (Satoshi Nagayasu)
+
+
+
+ While text-type arguments are still supported, they
+ may be removed in a future major release.
- Improve pg_trgm>'s
- generation of trigrams for indexed regular expression searches by
- discouraging the indexing of trigrams containing whitespace (Alexander
- Korotkov)
+ Improve consistency of output to honor
+ snapshot rules more consistently (Robert Haas)
- Store cube> data more compactly
- (Stas Kelvich)
+ Improve 's choice of trigrams for indexed
+ regular expression searches by discouraging the selection of
+ trigrams containing whitespace (Alexander Korotkov)
+
+
+
+
+
+ Allow to report a live log stream
+ with
--follow> (Heikki Linnakangas)
+
+
+
+
+
+ Store data more compactly (Stas Kelvich)
@@ -2357,30 +2361,29 @@
- Reduce vacuumlo>
- client-side memory usage by using a cursor (Andrew Dunstan)
+ Reduce client-side memory usage by using
+ a cursor (Andrew Dunstan)
- Dramatically reduce memory consumption in pg_upgrade> (Bruce
- Momjian)
+ Dramatically reduce memory consumption
+ in (Bruce Momjian)
- Pass pg_upgrade>
- user names (
-U>) to analyze scripts (Bruce Momjian)
+ Pass user name (
--rate>) to control
+ Add long option names to pgbench> (Fabien Coelho)
+
+
+
+
+
+ Add pgbench> option
--rate> to control
the transaction rate (Fabien Coelho)
- Add
--progress> output option to pgbench> (Fabien Coelho)
-
-
-
-
-
- Add long options to pgbench> (Fabien Coelho)
+ Add pgbench> option
--progress> to
+ print periodic progress reports
+ (Fabien Coelho)
@@ -2419,19 +2424,19 @@
- pg_stat_statements>
+
- Have pg_stat_statements> use a flat file for query
- text storage (Peter Geoghegan)
+ Make pg_stat_statements> use a file, rather than
+ shared memory, for query text storage (Peter Geoghegan)
- This removes the limitation on query text length, and allows a
- higher default number of unique statements to be tracked.
+ This removes the previous limitation on query text length, and
+ allows a higher number of unique statements to be tracked by default.
@@ -2451,7 +2456,15 @@
This allows monitoring tools to only fetch query text for newly
- created entries, as reported in queryid>.
+ created entries, improving performance for repeated querying of the
+ statistics.
+
+
+
+
+
+ Save the statistics file into $PGDATA/pg_stat> at server
+ shutdown, rather than $PGDATA/global> (Fujii Masao)