- Adjust functions-comparison">operator precedence>
+ Adjust sql-precedence">operator precedence>
to match the
SQL> standard (Tom Lane)
- "<" and ">" now have the same precedence as "<="
- ">=" and "<>", and IS> now has lower
- precedence. NOT> now also has symmetric precedence.
- The
GUC> operator_precedence_warning> can be
- enabled to warn about queries where the precedence has changed.
+ The precedence of <= , >=
+ and <> has been reduced to match that of
+ < , >
+ and = . The precedence of IS> tests
+ (e.g., x> IS NULL>) has been reduced to be
+ just below these six comparison operators.
+ Also, multi-keyword operators beginning with NOT> now have
+ the precedence of their base operator (for example, NOT
+ BETWEEN> now has the same precedence as BETWEEN>) whereas
+ before they had inconsistent precedence, behaving like NOT>
+ with respect to their left operand but like their base operator with
+ respect to their right operand. The new configuration
+ parameter can be
+ enabled to warn about queries in which these precedence changes result
+ in different parsing choices.
- Use cast conversions for
PL/pgSQL> type conversions,
- rather than converting to and from text (Tom Lane)
+ Use assignment cast behavior for data type conversions
+ in
PL/pgSQL> assignments, rather than converting to and
+ from text (Tom Lane)
- This causes conversions of booleans to strings to
- return true> or false>, not
- t>/f>.
+ This change causes conversions of booleans to strings to
+ produce true> or false>, not t>
+ or f>. Other type conversions may succeed in more cases
+ than before; for example, assigning a numeric value 3.9> to
+ an integer variable will now assign 4 rather than failing. If no
+ assignment-grade cast is defined for the particular source and
+ destination types,
PL/pgSQL> will fall back to its old
+ I/O conversion behavior.
- Allow special characters in server
- startup option values> to be escaped with a backslash (Andres
- Freund)
+ Allow characters in server
+ command-line options> to be escaped with a backslash (Andres Freund)
- This allows characters like spaces to be passed inside option values.
- Passing a backslash now requires supplying a double-backslash.
+ Formerly, spaces in the options string always separated options, so
+ there was no way to include a space in an option value. Including
+ a backslash in an option value now requires writing \\>.
-
Set the default value of
- linkend="gssapi-auth">include_realm>> to not remove
- the
GSS> and SSPI> realm from the principal
- (Stephen Frost)
+
Change the default value of
+ linkend="gssapi-auth">include_realm>> to 1, so that
+ by default the realm is not removed from a
GSS>
+
or SSPI> principal name (Stephen Frost)
- Fix REASSIGN>>
- and ABLE">ALTER OWNER TO>>
- to properly reassign ownership of types, foreign data wrappers,
- and foreign servers (Bruce Momjian)
+ Fix REASSIGN OWNED >>
+ and YPE">ALTER OWNER TO>>
+ to properly update permissions lists (ACLs) when changing ownership of
+ types, foreign data wrappers, and foreign servers (Bruce Momjian)
- Remove server
-side GUC> autocommit>, which
+ Remove server configuration parameter autocommit>, which
was already deprecated and non-operational (Tom Lane)
- Remove
- linkend="catalog-pg-authid">pg_authid>.rolcatupdate>>,
- as it had no purpose (Adam Brightwell)
+ Remove pg_authid>>'s
+ rolcatupdate> field, as it had no value (Adam Brightwell)
Changes
- Below you will find a detailed account of the changes between
+ Below you will find a detailed account of the changes between
PostgreSQL 9.5 and the previous major
- release.
+ release.
- Add
GUC>
- linkend="guc-gin-pending-list-limit">gin_pending_list_limit>>
+ Add configuration parameter
to control the size of
GIN> pending lists (Fujii Masao)
- Previously this was controlled by
- linkend="guc-work-mem">work_mem>>. This can also
- be set as an index storage parameter.
+ Previously the list size was controlled
+ by . This can also be set as an index
+ storage parameter.
Issue a warning during the creation of
- linkend="SQL-CREATEINDEX ">hash> indexes because they are not
+ linkend="indexes-types ">hash> indexes because they are not
crash-safe (Bruce Momjian)
- Improve concurrency of shared
- buffer> replacement (Robert Haas, Amit Kapila)
+ Improve concurrency of shared buffer replacement
+ (Robert Haas, Amit Kapila)
Speed up
CRC> (cyclic redundancy check) computations
(Abhijit Menon-Sen, Heikki Linnakangas)
-
- Also use
CPU> instructions for CRC>
- calculations, if supported
-
- Add
GUC> variable
- linkend="guc-cluster-name">cluster_name>> (Thomas
- Munro)
+ Add new configuration parameter
+ (Thomas Munro)
- This string, set in
+ This string,
typically set in
linkend="config-setting-configuration-file">postgresql.conf>>,
- allows clients to query the cluster name . This name also appears
- in the process title, allowing for easier grouping of processes
- belonging to the same cluster.
+ allows clients to identify the cluster . This name also appears
+ in the process title of all server processes, allowing for easier
+ identification of processes belonging to the same cluster.
- Prevent non-superusers from changing
- linkend="guc-log-disconnections">log_disconnections>>
- on connection startup (Fujii Masao)
+ Prevent non-superusers from changing
+ linkend="guc-log-disconnections"> on connection startup (Fujii Masao)
- Their presence replaces checks against the certificate's
+ When they are present, this replaces checks against the certificate's
Common Name>.
While PQgetssl()>>
- can still be used to
then call
OpenSSL>
+ can still be used to call
OpenSSL>
functions,
PQsslAttribute()> returns SSL>
information in an
SSL>-implementation-independent way.
(Future versions of libpq might support other
SSL>
-
Hav e
libpq> honor any OpenSSL>
+
Mak e
libpq> honor any OpenSSL>
thread callbacks (Jan Urbanski)
- Replace
checkpoint_segments> with
- linkend="guc-min-wal-size">min_wal_size>> and
- max_wal_size>>
- (Heikki Linnakangas)
+ Replace configuration parameter checkpoint_segments>
+ with
+ and (Heikki Linnakangas)
- Add
GUC>
- linkend="guc-wal-compression">wal_compression>> to
- enable compression of full page images stored in
WAL>
+ Add configuration parameter to
+ control compression of full page images stored in
WAL>
(Rahila Syed, Michael Paquier)
- Allow the recording of transaction
- commit timestamps when
GUC>
- linkend="guc-track-commit-timestamp">track_commit_timestamp>>
+ Allow recording of transaction
+ commit timestamps when configuration parameter
+ linkend="guc-track-commit-timestamp">
is enabled (Álvaro Herrera, Petr Jelínek)
- Allow
- linkend="guc-local-preload-libraries">local_preload_libraries>>
- to be set by ALTER ROLE SET> (Peter Eisentraut,
- Kyotaro Horiguchi)
+ Allow to be set
+ by ALTER ROLE SET> (Peter Eisentraut, Kyotaro Horiguchi)
- Make
GUC>
- linkend="guc-debug-assertions">debug_assertions>>
+ Make configuration parameter
read-only (Andres Freund)
This means that assertions can no longer be turned
- off once enabled at compile- time, allowing for more
- efficient code optimization. This also removed the
+ off if they were enabled at compile time, allowing for more
+ efficient code optimization. This
change also removed the
linkend="app-postgres-options">postgres> -A> option.
- Allow setting
- linkend="guc-effective-io-concurrency">effective_io_concurrency>>
- on systems where it has no effect (Peter Eisentraut)
+ Allow setting on
+ systems where it has no effect (Peter Eisentraut)
linkend="linux-memory-overcommit">PG_OOM_ADJUST_FILE>>
and
linkend="linux-memory-overcommit">PG_OOM_ADJUST_VALUE>>
- to
control Linux
OOM> killer (Gurjeet Singh)
+ to
help control the Linux
OOM> killer (Gurjeet Singh)
- The previous
OOM> control involved a compile-time
- option.
+ The previous
OOM> control infrastructure involved a
+ compile-time option.
-
GUC> pause_at_recovery_target> was also
- removed.
+ This replaces the old parameter pause_at_recovery_target>.
-
- Add archive_mode>>
+ Add new value
always> to allow standbys to always archive received
- linkend="guc-wal-retrieve-retry-interval">wal_retrieve_retry_interval>>
- to control
WAL> read retry after failure (Alexey
- Vasiliev, Michael Paquier)
+ Add configuration
+ parameter to
+ control
WAL> read retry after failure
+ (Alexey Vasiliev, Michael Paquier)
- linkend="guc-log-replication-commands">log_replication_commands>>
+ Add configuration parameter
+ linkend="guc-log-replication-commands">
to log replication commands (Fujii Masao)
By default, replication commands, e.g.
linkend="protocol-replication">IDENTIFY_SYSTEM>>,
- are not logged, even when
- linkend="guc-log-statement">log_statement>> is set
+ are not logged, even when is set
to all>.
- Allow the labeling>
+ Allow labeling>
of the origin of logical replication changes (Andres Freund)
- Report the
backend s holding replication slots in
+ Report the
processe s holding replication slots in
linkend="catalog-pg-replication-slots">pg_replication_slots>>
(Craig Ringer)
- This allows the creation of local foreign tables definitions
- that match the remote table structure. Currently, only the
- foreign data wrapper supports this feature.
+ This command allows automatic creation of local foreign tables
+ that match the structure of existing tables on a remote server.
- These checks are assumed to be enforced on the remote server,
- and are not checked locally. However, they are considered for
- optimization and constraint-exclusion checking.
+ These constraints are assumed to be enforced on the remote server,
+ and are not enforced locally. However, they are assumed to hold for
+ purposes of query optimization, such
+ as constraint
+ exclusion>.
- Add
- linkend="pg-event-trigger-ddl-command-end-functions">pg_event_trigger_ddl_commands>>
- set-returning function, which returns
DDL> activity
+ Add a set-returning function
+ linkend="pg-event-trigger-ddl-command-end-functions">
pg_event_trigger_ddl_commands()>>, which returns DDL> activity
associated with event triggers (Álvaro Herrera)
- Previously the namespace was not returned, leading to invalid
- XML>.
+ Previously the namespace was not returned, potentially leading to
+ invalid XML>.
- Tighten s
pecification of
+ Tighten s
yntax of
linkend="datatype-interval-input">INTERVAL>> precision
specifications (Bruce Momjian)
Add
JSONB> functions
linkend="functions-json-processing-table">jsonb_set()>>
and
- linkend="functions-json-processing-table">jsonb_pretty>>
+ linkend="functions-json-processing-table">jsonb_pretty() >>
(Dmitry Dolgov, Andrew Dunstan, Petr Jelínek)
- Add several generator functions for JSONB> that exist
- for JSON> (Andrew Dunstan)
+ Add several generator functions for JSONB> that already
+ existed for JSON> (Andrew Dunstan)
- The
functions are
+ The
se are
linkend="functions-json-creation-table">to_jsonb()>>,
linkend="functions-json-creation-table">jsonb_object()>>,
- Add
+ Add
a
linkend="functions-math-func-table">width_bucket()>>
- which supports any sortable data type and non-uniform bucket widths
- (Petr Jelínek)
+ variant that supports any sortable data type and non-uniform bucket
+ widths (Petr Jelínek)
- User-defined =>> operators have been issuing
- warnings since Postgres 9.0, and were removed in hstore in 9.2.
- Previously only :=> could be used.
+ Previously only :=> could be used. This requires removing
+ the possibility for =>> to be a user-defined operator.
+ Creation of user-defined =>> operators has been issuing
+ warnings since Postgres 9.0.
- Loosen security checks for viewing
+ Loosen security checks for viewing
queries in
linkend="pg-stat-activity-view">pg_stat_activity>>,
-
+
executing
linkend="functions-admin-signal-table">pg_cancel_backend()>>,
- and
- linkend="functions-admin-signal-table">pg_terminate_backend>>
+ and
executing
+ linkend="functions-admin-signal-table">pg_terminate_backend() >>
(Stephen Frost)
- Now, role membership is sufficient; previously only the same
- role could perform such operations.
+ Now, role membership is sufficient; previously only the same
+ role could perform these operations.
- A
dd specification of conversion routines to/from SQL>
- data types to procedural languages data typ es (Peter Eisentraut)
+ A
llow specification of conversion routines between SQL>
+ data types and data types of procedural languag es (Peter Eisentraut)
- This adds new commands
+ This
change adds new commands
linkend="SQL-CREATETRANSFORM">
CREATE>>/
linkend="SQL-DROPTRANSFORM">DROP TRANSFORM>>.
- This also adds
transformations between
+ This also adds
optional transformations between the
linkend="hstore">
hstore>> and
- linkend="ltree">
ltree>> to/from
+ linkend="ltree">
ltree>> types t o/from
linkend="plperl">
PL/Perl>> and
linkend="plpython">
PL/Python>>.
+
+ which allows re-synchronizing a master server after failback
+ (Heikki Linnakangas)
+
+
+
Allow
- Have
- linkend="app-pgbasebackup">
pg_basebackup>> use
- a tablespace mapping file with the
tar> format,
- to handle file paths of 100+ characters in length and sybolic
- links on MS Windows> (Amit Kapila)
+ use a tablespace mapping file when using
tar> format,
+ to support symbolic links and file paths of 100+ characters in length
+ on MS Windows> (Amit Kapila)
+
+
+
+
+ Add
pg_xlogdump>> option
+ --stats> to display summary statistics (Abhijit Menon-Sen)
Add
psql> setting
linkend="APP-PSQL-meta-commands">pager_min_lines>>
- setting to control pager invocation (Andrew Dunstan)
+ to control pager invocation (Andrew Dunstan)
Add
psql> tab completion when setting the
- <varname>search_path > variable (Jeff Janes)
+ <xref linkend="guc-search-path" > variable (Jeff Janes)
- Improve
psql> tab- completion for triggers and rules
+ Improve
psql>'s tab completion for triggers and rules
(Andreas Karlsson)
- Allow
psql> \watch> to output
+ Allow
psql>'s \watch> to output
\timing> information (Fujii Masao)
- Allow tab completion of
psql> \c>
- role name s (Ian Barwick)
+ Allow tab completion of role names
+
in psql> \c> command s (Ian Barwick)
- Change
pg_ctl> default shutdown mode from
+ Change
pg_ctl>'s default shutdown mode from
smart> to fast> (Bruce Momjian)
+
+
+
+
+
+
+ Move pgbench from contrib> to src/bin>
+ (Peter Eisentraut)
+
+
+
+
+ Allow counting of pgbench transactions that take over a specified
+ amount of time (Fabien Coelho)
+
+
+ This is controlled by new --latency-limit> option.
+
+
+
+
+ Allow pgbench to generate Gaussian/exponential distributions
+ using \setrandom> (Kondo Mitsumasa, Fabien Coelho)
+
+
+
+
+ Allow
pgbench>'s \set> command to handle
+ multi-operator expressions (Robert Haas, Fabien Coelho)
+
+
+
+
+
+
+
- Improve dynahash capabilities (Teodor Sigaev, Tom Lane)
+ Improve hash_create()>'s API for selecting
+ simple-binary-key hash functions (Teodor Sigaev, Tom Lane)
- Change columns
+ Change
index opclass for columns
linkend="catalog-pg-seclabel">pg_seclabel>>.provider>
and
- linkend="catalog-pg-seclabel">pg_shseclabel>>.provider>
- to TEXT > (Tom Lane)
+ linkend="catalog-pg-shs eclabel">pg_shseclabel>>.provider>
+ to be text_pattern_ops > (Tom Lane)
- This allows these columns to store 64+ characters.
+ This avoids possible problems with these indexes when different
+ databases of a cluster have different default collations.
-
- which allows re-synchronizing a master server after failback
- (Heikki Linnakangas)
-
-
-
Add statistics for minimum, maximum,
- Add
pg_xlogdump>> option
- --stats> to display summary statistics (Abhijit Menon-Sen)
-
-
-
-
index inspection functions to
linkend="pageinspect">
pageinspect>> (Heikki
Linnakangas, Peter Geoghegan, Michael Paquier)
from contrib> to src/test/modules>
(Álvaro Herrera)
+
+ These modules are only meant for server testing, so they do not need
+ to be built or installed when packaging
PostgreSQL>.
+
-
-
-
-
-
-
- Move pgbench from contrib> to src/bin>
- (Peter Eisentraut)
-
-
-
-
- Allow counting of pgbench transactions that take over a specified
- amount of time (Fabien Coelho)
-
-
- This is controlled by new --latency-limit> option.
-
-
-
-
- Allow pgbench to generate Gaussian/exponential distributions
- using \setrandom> (Kondo Mitsumasa, Fabien Coelho)
-
-
-
-
- Allow
pgbench>'s \set> command to handle
- multi-operator expressions (Robert Haas, Fabien Coelho)
-
-
-
-
-
-
-