diff --git a/doc/src/sgml/release-9.5.sgml b/doc/src/sgml/release-9.5.sgml index ffb2f5d7b6e..a010ffcd0f2 100644 --- a/doc/src/sgml/release-9.5.sgml +++ b/doc/src/sgml/release-9.5.sgml @@ -54,75 +54,90 @@ - Adjust operator precedence + Adjust 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 include_realm to not remove - the GSS and SSPI realm from the principal - (Stephen Frost) + Change the default value of 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 ALTER OWNER TO - to properly reassign ownership of types, foreign data wrappers, - and foreign servers (Bruce Momjian) + Fix REASSIGN OWNED + and 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 pg_authid.rolcatupdate, - as it had no purpose (Adam Brightwell) + Remove pg_authid's + rolcatupdate field, as it had no value (Adam Brightwell) @@ -134,9 +149,9 @@ 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. @@ -184,22 +199,21 @@ - Add GUC gin_pending_list_limit + Add configuration parameter to control the size of GIN pending lists (Fujii Masao) - Previously this was controlled by 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 hash indexes because they are not + linkend="indexes-types">hash indexes because they are not crash-safe (Bruce Momjian) @@ -237,8 +251,8 @@ - Improve concurrency of shared - buffer replacement (Robert Haas, Amit Kapila) + Improve concurrency of shared buffer replacement + (Robert Haas, Amit Kapila) @@ -269,11 +283,6 @@ Speed up CRC (cyclic redundancy check) computations (Abhijit Menon-Sen, Heikki Linnakangas) - - - Also use CPU instructions for CRC - calculations, if supported - @@ -298,25 +307,23 @@ - Add GUC variable cluster_name (Thomas - Munro) + Add new configuration parameter + (Thomas Munro) - This string, set in 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 log_disconnections - on connection startup (Fujii Masao) + Prevent non-superusers from changing on connection startup (Fujii Masao) @@ -337,7 +344,7 @@ - Their presence replaces checks against the certificate's + When they are present, this replaces checks against the certificate's Common Name. @@ -359,7 +366,7 @@ 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 @@ -369,7 +376,7 @@ - Have libpq honor any OpenSSL + Make libpq honor any OpenSSL thread callbacks (Jan Urbanski) @@ -389,10 +396,9 @@ - Replace checkpoint_segments with min_wal_size and - max_wal_size - (Heikki Linnakangas) + Replace configuration parameter checkpoint_segments + with + and (Heikki Linnakangas) @@ -403,18 +409,17 @@ - Add GUC 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 track_commit_timestamp + Allow recording of transaction + commit timestamps when configuration parameter is enabled (Álvaro Herrera, Petr Jelínek) @@ -427,10 +432,8 @@ - Allow 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) @@ -443,24 +446,22 @@ - Make GUC 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 postgres - Allow setting effective_io_concurrency - on systems where it has no effect (Peter Eisentraut) + Allow setting on + systems where it has no effect (Peter Eisentraut) @@ -470,12 +471,12 @@ linkend="linux-memory-overcommit">PG_OOM_ADJUST_FILE and 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. @@ -528,15 +529,13 @@ - 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 WAL files (Fujii Masao) @@ -544,10 +543,10 @@ - Add GUC 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) @@ -564,23 +563,22 @@ - Add GUC log_replication_commands + Add configuration parameter to log replication commands (Fujii Masao) By default, replication commands, e.g. IDENTIFY_SYSTEM, - are not logged, even when 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) @@ -591,7 +589,7 @@ - Report the backends holding replication slots in pg_replication_slots (Craig Ringer) @@ -896,10 +894,8 @@ - This allows the creation of local foreign tables definitions - that match the remote table structure. Currently, only the - postgres_fdw - 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. @@ -922,9 +918,11 @@ - 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. @@ -946,9 +944,8 @@ - Add pg_event_trigger_ddl_commands - set-returning function, which returns DDL activity + Add a set-returning function pg_event_trigger_ddl_commands(), which returns DDL activity associated with event triggers (Álvaro Herrera) @@ -1015,8 +1012,8 @@ - Previously the namespace was not returned, leading to invalid - XML. + Previously the namespace was not returned, potentially leading to + invalid XML. @@ -1029,7 +1026,7 @@ - Tighten specification of INTERVAL precision specifications (Bruce Momjian) @@ -1061,19 +1058,19 @@ Add JSONB functions jsonb_set() and 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 to_jsonb(), jsonb_object(), @@ -1182,10 +1179,10 @@ - Add 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) @@ -1196,9 +1193,10 @@ - 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. @@ -1236,18 +1234,18 @@ - Loosen security checks for viewing pg_stat_activity, - pg_cancel_backend(), - and pg_terminate_backend + and executing 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. @@ -1347,17 +1345,17 @@ - Add specification of conversion routines to/from SQL - data types to procedural languages data types (Peter Eisentraut) + Allow specification of conversion routines between SQL + data types and data types of procedural languages (Peter Eisentraut) - This adds new commands CREATE/DROP TRANSFORM. - This also adds transformations between hstore and ltree to/from ltree types to/from PL/Perl and PL/Python. @@ -1413,6 +1411,14 @@ + + + Add pg_rewind, + which allows re-synchronizing a master server after failback + (Heikki Linnakangas) + + + Allow - Have 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) + Make pg_basebackup + 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 + @@ -1515,7 +1527,7 @@ Add psql setting pager_min_lines - setting to control pager invocation (Andrew Dunstan) + to control pager invocation (Andrew Dunstan) @@ -1529,7 +1541,7 @@ Add psql tab completion when setting the - search_path variable (Jeff Janes) + variable (Jeff Janes) @@ -1539,7 +1551,7 @@ - Improve psql tab-completion for triggers and rules + Improve psql's tab completion for triggers and rules (Andreas Karlsson) @@ -1581,7 +1593,7 @@ - Allow psql \watch to output + Allow psql's \watch to output \timing information (Fujii Masao) @@ -1608,8 +1620,8 @@ - Allow tab completion of psql \c - role names (Ian Barwick) + Allow tab completion of role names + in psql \c commands (Ian Barwick) @@ -1662,7 +1674,7 @@ - Change pg_ctl default shutdown mode from + Change pg_ctl's default shutdown mode from smart to fast (Bruce Momjian) @@ -1740,6 +1752,47 @@ + + <xref linkend="pgbench"> + + + + + + 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 + + + + + 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) + + + + + + + @@ -1797,7 +1850,8 @@ - Improve dynahash capabilities (Teodor Sigaev, Tom Lane) + Improve hash_create()'s API for selecting + simple-binary-key hash functions (Teodor Sigaev, Tom Lane) @@ -1841,15 +1895,16 @@ - Change columns pg_seclabel.provider and pg_shseclabel.provider - to TEXT (Tom Lane) + linkend="catalog-pg-shseclabel">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. @@ -1933,14 +1988,6 @@ - - - Add pg_rewind, - which allows re-synchronizing a master server after failback - (Heikki Linnakangas) - - - Add statistics for minimum, maximum, @@ -1994,14 +2041,7 @@ - Add pg_xlogdump option - - - - - - Allow GIN + Add GIN index inspection functions to pageinspect (Heikki Linnakangas, Peter Geoghegan, Michael Paquier) @@ -2031,51 +2071,15 @@ 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. + - - <xref linkend="pgbench"> - - - - - - 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 - - - - - 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) - - - - - - -