diff options
-rw-r--r-- | doc/src/sgml/filelist.sgml | 1 | ||||
-rw-r--r-- | doc/src/sgml/release-9.5.sgml | 1929 | ||||
-rw-r--r-- | doc/src/sgml/release.sgml | 1 |
3 files changed, 1931 insertions, 0 deletions
diff --git a/doc/src/sgml/filelist.sgml b/doc/src/sgml/filelist.sgml index a8d1281ab62..a12fee73db3 100644 --- a/doc/src/sgml/filelist.sgml +++ b/doc/src/sgml/filelist.sgml @@ -164,6 +164,7 @@ <!ENTITY sourcerepo SYSTEM "sourcerepo.sgml"> <!ENTITY release SYSTEM "release.sgml"> +<!ENTITY release-9.5 SYSTEM "release-9.5.sgml"> <!ENTITY release-9.4 SYSTEM "release-9.4.sgml"> <!ENTITY release-9.3 SYSTEM "release-9.3.sgml"> <!ENTITY release-9.2 SYSTEM "release-9.2.sgml"> diff --git a/doc/src/sgml/release-9.5.sgml b/doc/src/sgml/release-9.5.sgml new file mode 100644 index 00000000000..2073f74fa5c --- /dev/null +++ b/doc/src/sgml/release-9.5.sgml @@ -0,0 +1,1929 @@ +<!-- doc/src/sgml/release-9.5.sgml --> +<!-- See header comment in release.sgml about typical markup --> + + <sect1 id="release-9-5"> + <title>Release 9.5</title> + + <note> + <title>Release Date</title> + <para>AS OF 2015-06-01</para> + <simpara>2015-XX-XX</simpara> + </note> + + <sect2> + <title>Overview</title> + + <para> + Major enhancements in <productname>PostgreSQL</> 9.5 include: + </para> + + <!-- This list duplicates items below, but without authors or details--> + + <itemizedlist> + + <listitem> + <para> + </para> + </listitem> + + </itemizedlist> + + <para> + The above items are explained in more detail in the sections below. + </para> + + </sect2> + + <sect2> + + <title>Migration to Version 9.5</title> + + <para> + A dump/restore using <xref linkend="app-pg-dumpall">, or use + of <xref linkend="pgupgrade">, is required for those wishing to migrate + data from any previous release. + </para> + + <para> + Version 9.5 contains a number of changes that may affect compatibility + with previous releases. Observe the following incompatibilities: + </para> + + <itemizedlist> + + <listitem> + <para> + Adjust operator precedence to match the <acronym>SQL</> standard + (Tom Lane) + </para> + + <para> + "<" and ">" now have the same precedence as "<=" + ">=" and "<>", and <literal>IS</> now has lower + precedence. <literal>NOT</> now also has symmetric precedence. + The <acronym>GUC</> <varname>operator_precedence_warning</> can be + enabled to warn about queries where the precedence has changed. + </para> + </listitem> + + <listitem> + <para> + Use cast conversions for <application>PL/pgSQL</> type conversions, + rather than converting to and from text (Tom Lane) + </para> + + <para> + This causes conversions of booleans to strings to + return <literal>true</> or <literal>false</>, not + <literal>t</>/<literal>f</>. + </para> + </listitem> + + <listitem> + <para> + Allow special characters in server startup option values to be + escaped with a backslash (Andres Freund) + </para> + + <para> + This allows characters like spaces to be passed inside option values. + Passing a backslash now requires supplying a double-backslash. + </para> + </listitem> + + <listitem> + <para> + Set the default value of <varname>include_realm</> to not remove + the <acronym>GSS</> and <acronym>SSPI</> realm from the principal + (Stephen Frost) + </para> + </listitem> + + <listitem> + <para> + Fix <command>REASSIGN</> and <command>ALTER OWNER TO</> to properly + reassign ownership of types, foreign data wrappers, and foreign + servers (Bruce Momjian) + </para> + </listitem> + + <listitem> + <para> + Remove server-side <acronym>GUC</> <varname>autocommit</>, which + was already deprecated and non-operational (Tom Lane) + </para> + </listitem> + + <listitem> + <para> + Remove <structname>pg_authid</>.<structname>rolcatupdate</>, as it + had no purpose (Adam Brightwell) + </para> + </listitem> + + </itemizedlist> + + </sect2> + + <sect2> + <title>Changes</title> + + <para> + Below you will find a detailed account of the changes between + <productname>PostgreSQL</productname> 9.5 and the previous major + release. + </para> + + <sect3> + <title>Server</title> + + <sect4> + <title>Indexes</title> + + <itemizedlist> + + <listitem> + <para> + Add Block Range Indexes (<acronym>BRIN</>) (Álvaro Herrera, + Heikki Linnakangas, Emre Hasegeli) + </para> + + <para> + <acronym>BRIN</> indexes are very compact and store the min/max + values for a range of heap blocks. + </para> + </listitem> + + <listitem> + <para> + Allow queries to perform accurate distance filtering of + bounding-box-indexed objects (polygons, circles) using GiST indexes + (Alexander Korotkov, Heikki Linnakangas) + </para> + + <para> + Previously, a common table expression was required to return a + large number of rows ordered by bounding-box distance, and then + filtered further with a more accurate non-bounding-box distance + calculation. + </para> + </listitem> + + <listitem> + <para> + Allow GiST indexes to perform index-only scans (Anastasia + Lubennikova, Heikki Linnakangas, Andreas Karlsson) + </para> + </listitem> + + <listitem> + <para> + Add <acronym>GUC</> <varname>gin_pending_list_limit</> to control + the size of <acronym>GIN</> pending lists (Fujii Masao) + </para> + + <para> + Previously this was controlled by <varname>work_mem</>. This can + also be set as an index storage parameter. + </para> + </listitem> + + <listitem> + <para> + Issue a warning during the creation of hash indexes because they + are not crash-safe (Bruce Momjian) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title>General Performance</title> + + <itemizedlist> + + <listitem> + <para> + Improve the speed of sorting character and numeric fields (Robert + Haas, Peter Geoghegan, Andrew Gierth) + </para> + </listitem> + + <listitem> + <para> + Improve hash creation performance (Tomas Vondra, Teodor Sigaev, + Tom Lane) + </para> + </listitem> + + <listitem> + <para> + Improve concurrency of shared buffer replacement (Robert Haas, + Amit Kapila) + </para> + </listitem> + + <listitem> + <para> + Improve concurrent locking and buffer scan performance (Andres + Freund, Kevin Grittner) + </para> + </listitem> + + <listitem> + <para> + Speed up <acronym>CRC</> (cyclic redundancy check) computations + (Abhijit Menon-Sen, Heikki Linnakangas) + </para> + + <para> + Also use <acronym>CPU</> instructions for <acronym>CRC</> + calculations, if supported + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title>Monitoring</title> + + <itemizedlist> + + <listitem> + <para> + Add per-table autovacuum logging control via + <varname>log_min_autovacuum_duration</> (Michael Paquier) + </para> + </listitem> + + <listitem> + <para> + Add <acronym>GUC</> variable <varname>cluster_name</> (Thomas + Munro) + </para> + + <para> + This string, set in <filename>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. + </para> + </listitem> + + <listitem> + <para> + Prevent non-superusers from changing <varname>log_disconnections</> + on connection startup (Fujii Masao) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title><acronym>SSL</></title> + + <itemizedlist> + + <listitem> + <para> + Check <quote>Subject Alternative Names</> in <acronym>SSL</> + server certificates, if present (Alexey Klyukin) + </para> + + <para> + Their presence replaces checks against the certificate's + <quote>Common Name</>. + </para> + </listitem> + + <listitem> + <para> + Add system view <structname>pg_stat_ssl</> to report + <acronym>SSL</> connection information (Magnus Hagander) + </para> + </listitem> + + <listitem> + <para> + Add <application>libpq</> function <function>PQsslAttribute()</> + that returns <acronym>SSL</> information (Heikki Linnakangas) + </para> + + <para> + While <function>PQgetssl()</> can still be used + to then call <productname>OpenSSL</> functions, + <function>PQsslAttribute()</> returns <acronym>SSL</> + information in an <acronym>SSL</>-implementation-independent way. + (Future versions of libpq might support other <acronym>SSL</> + implementations.) + </para> + </listitem> + + <listitem> + <para> + Have <application>libpq</> honor any <productname>OpenSSL</> + thread callbacks (Jan Urbanski) + </para> + + <para> + Previously they were overwritten. + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title>Server Settings</title> + + <itemizedlist> + + <listitem> + <para> + Replace <varname>checkpoint_segments</> with + <varname>min_wal_size</> and <varname>max_wal_size</> (Heikki + Linnakangas) + </para> + + <para> + This allows the allocation of a large number of <acronym>WAL</> + files without keeping them if they are not needed. + </para> + </listitem> + + <listitem> + <para> + Add <acronym>GUC</> <varname>wal_compression</> to enable + compression of full page images stored in <acronym>WAL</> + (Rahila Syed, Michael Paquier) + </para> + </listitem> + + <listitem> + <para> + Allow the recording of transaction commit timestamps when + <acronym>GUC</> <varname>track_commit_timestamp</> is enabled + (Álvaro Herrera, Petr Jelinek) + </para> + + <para> + Timestamp information can be accessed using + functions <function>pg_xact_commit_timestamp()</> and + <function>pg_last_committed_xact()</>. + </para> + </listitem> + + <listitem> + <para> + Allow <varname>local_preload_libraries</> to be set by + <command>ALTER ROLE SET</> (Peter Eisentraut, Kyotaro Horiguchi) + </para> + </listitem> + + <listitem> + <para> + Allow running autovacuum workers to respond to configuration + parameter changes (Michael Paquier) + </para> + </listitem> + + <listitem> + <para> + Make <acronym>GUC</> <varname>debug_assertions</> read-only + (Andres Freund) + </para> + + <para> + 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 <option>-A</> option. + </para> + </listitem> + + <listitem> + <para> + Allow setting <varname>effective_io_concurrency</> on systems + where it has no effect (Peter Eisentraut) + </para> + </listitem> + + <listitem> + <para> + Add environment variables <envar>PG_OOM_ADJUST_FILE</> and + <envar>PG_OOM_ADJUST_VALUE</> to control Linux <acronym>OOM</> + killer (Gurjeet Singh) + </para> + + <para> + The previous <acronym>OOM</> control involved a compile-time + option. + </para> + </listitem> + + <listitem> + <para> + Add function and view <function>pg_file_settings</> to show + the source of <acronym>GUC</> values set in configuration files + (Sawada Masahiko) + </para> + </listitem> + + <listitem> + <para> + Add <structname>pending_restart</> to the system view + <structname>pg_settings</> to indicate a change is pending a + restart (Peter Eisentraut) + </para> + </listitem> + + <listitem> + <para> + Allow <command>ALTER SYSTEM</> values to be reset with + <command>ALTER SYSTEM RESET</> (Vik Fearing) + </para> + + <para> + This removes the setting from <filename>postgresql.auto.conf</>. + </para> + </listitem> + + </itemizedlist> + + </sect4> + + </sect3> + + <sect3> + <title>Replication and Recovery</title> + + <itemizedlist> + + <listitem> + <para> + Add <filename>recovery.conf</> parameter + <varname>recovery_target_action</> to control post-recovery + activity (Petr Jelinek) + </para> + + <para> + <acronym>GUC</> <varname>pause_at_recovery_target</> was also + removed. + </para> + </listitem> + + + <listitem> + <para> + Add <varname>archive_mode</> <literal>always</> to allow standbys + to always archive received <acronym>WAL</> files (Fujii Masao) + </para> + </listitem> + + <listitem> + <para> + Add <acronym>GUC</> <varname>wal_retrieve_retry_interval</> to + control <acronym>WAL</> read retry after failure (Alexey Vasiliev, + Michael Paquier) + </para> + + <para> + This is particularly helpful for warm standbys. + </para> + </listitem> + + <listitem> + <para> + Archive <acronym>WAL</> files with suffix <literal>.partial</> + during standby promotion (Heikki Linnakangas) + </para> + </listitem> + + <listitem> + <para> + Add <acronym>GUC</> <varname>log_replication_commands</> to log + replication commands (Fujii Masao) + </para> + + <para> + By default, replication commands, + e.g. <literal>IDENTIFY_COMMAND</>, are not logged, even when + <varname>log_statements</> is set to <literal>all</>. + </para> + </listitem> + + <listitem> + <para> + Allow the labeling of the origin of logical replication changes + (Andres Freund) + </para> + + <para> + This helps with change tracking. + </para> + </listitem> + + <listitem> + <para> + Report the backends holding replication slots in + <structname>pg_replication_slots</> (Craig Ringer) + </para> + + <para> + The new output column is <structname>active_pid</>. + </para> + </listitem> + + <listitem> + <para> + Allow <filename>recovery.conf</>'s <varname>primary_conninfo</> + to use connection <acronym>URI</>s, e.g. <literal>postgres://</> + (Alex Shulgin) + </para> + </listitem> + + </itemizedlist> + + </sect3> + + <sect3> + <title>Queries</title> + + <itemizedlist> + + <listitem> + <para> + Allow <command>INSERTS</> that would generate constraint conflicts + to be turned into <command>UPDATE</>s or ignored (Peter Geoghegan, + Heikki Linnakangas, Andres Freund) + </para> + + <para> + The syntax is <command>INSERT ... ON CONFLICT DO NOTHING/UPDATE</>. + This is the Postgres implementation of the popular + <command>UPSERT</> command. + </para> + </listitem> + + <listitem> + <para> + Add <literal>GROUP BY</> analysis functions <literal>GROUPING + SETS</>, <literal>CUBE</> and <literal>ROLLUP</> (Andrew Gierth, + Atri Sharma) + </para> + </listitem> + + <listitem> + <para> + Allow multi-column <command>UPDATE</>s with a single subselect + (Tom Lane) + </para> + + <para> + This is accomplished using the syntax <command>UPDATE tab SET + (col1, col2, ...) = (SELECT ...)</>. + </para> + </listitem> + + <listitem> + <para> + Add new <command>SELECT</> option <literal>SKIP LOCKED</> to skip + locked rows (Thomas Munro) + </para> + + <para> + This does not throw an error for locked rows like + <literal>NOWAIT</> does. + </para> + </listitem> + + <listitem> + <para> + Add <command>SELECT</> option <literal>TABLESAMPLE</> to return + a subset of a table (Petr Jelinek) + </para> + </listitem> + + <listitem> + <para> + Suggest possible matches for mistyped column names (Peter + Geoghegan, Robert Haas) + </para> + </listitem> + + </itemizedlist> + + </sect3> + + <sect3> + <title>Utility Commands</title> + + <itemizedlist> + + <listitem> + <para> + Add more details about sort ordering in <command>EXPLAIN</> output + (Marius Timmer, Lukas Kreft, Arne Scheffer) + </para> + + <para> + Details include <literal>COLLATE</>, <literal>DESC</>, + <literal>USING</>, and <literal>NULLS FIRST</><literal>/LAST</>. + </para> + </listitem> + + <listitem> + <para> + Have <command>VACUUM</> log the number of pages skipped due to pins + (Jim Nasby) + </para> + </listitem> + + <listitem> + <para> + Have <command>TRUNCATE</> properly update the <literal>pg_stat</>* + tuple counters (Alexander Shulgin) + </para> + </listitem> + + </itemizedlist> + + <sect4> + <title><xref linkend="SQL-REINDEX"></title> + + <itemizedlist> + + <listitem> + <para> + Allow <command>REINDEX</> to reindex an entire schema using the + <literal>SCHEMA</> option (Sawada Masahiko) + </para> + </listitem> + + <listitem> + <para> + Add <literal>VERBOSE</> option to <command>REINDEX</> (Fujii Masao) + </para> + </listitem> + + <listitem> + <para> + Prevent <command>REINDEX DATABASE</> and <command>SCHEMA</> + from outputting object names, unless <literal>VERBOSE</> is used + (Simon Riggs) + </para> + </listitem> + + <listitem> + <para> + Remove obsolete <literal>FORCE</> option from <command>REINDEX</> + (Fujii Masao) + </para> + </listitem> + + </itemizedlist> + + </sect4> + </sect3> + + <sect3> + <title>Object Manipulation</title> + + <itemizedlist> + + <listitem> + <para> + Add row-level security control (Craig Ringer, KaiGai Kohei, + Adam Brightwell, Dean Rasheed, Stephen Frost) + </para> + + <para> + This controls viewing and adding/modifying rows via new commands + <command>CREATE</>/<command>ALTER</>/<command>DROP POLICY</> + and <command>ALTER TABLE ... ENABLE/DISABLE ROW SECURITY</>. + </para> + </listitem> + + <listitem> + <para> + Allow control of table <acronym>WAL</> logging after table + creation with <command>ALTER TABLE .. SET LOGGED / UNLOGGED</> + (Fabrízio de Royes Mello) + </para> + </listitem> + + <listitem> + <para> + Add <literal>IF NOT EXISTS</> clause to <command>CREATE TABLE + AS</>, <command>CREATE INDEX</>, <command>CREATE SEQUENCE</>, + and <command>CREATE MATERIALIZED VIEW</> (Fabrízio de + Royes Mello) + </para> + </listitem> + + <listitem> + <para> + Add support for <literal>IF EXISTS</> to <command>ALTER TABLE + ... RENAME CONSTRAINT</> (Bruce Momjian) + </para> + </listitem> + + <listitem> + <para> + Allow <literal>CURRENT</><literal>/SESSION_USER</> to specify the + current user in certain (Kyotaro Horiguchi, Álvaro Herrera) + </para> + + <para> + Commands include <command>ALTER USER</>, <command>ALTER + GROUP</>, <command>ALTER ROLE</>, <command>GRANT</>, and various + <command>ALTER OBJECT / OWNER TO</> commands. + </para> + </listitem> + + <listitem> + <para> + Allow comments on domain constraints (Álvaro Herrera) + </para> + </listitem> + + <listitem> + <para> + Reduce lock levels of some create and alter trigger and foreign + key commands (Simon Riggs, Andreas Karlsson) + </para> + </listitem> + + <listitem> + <para> + Allow <command>LOCK TABLE .. ROW EXCLUSIVE MODE</> for those with + <command>INSERT</> privileges (Stephen Frost) + </para> + + <para> + Previously only <command>UPDATE</>, <command>DELETE</>, and + <command>TRUNCATE</> privileges allowed this. + </para> + </listitem> + + <listitem> + <para> + Apply table and domain <literal>CHECK</> constraints in name order + (Tom Lane) + </para> + + <para> + The previous order was indeterminate. + </para> + </listitem> + + <listitem> + <para> + Allow <command>CREATE</>/<command>ALTER DATABASE</> to manipulate + <structname>datistemplate</> and <structname>datallowconn</> + (Vik Fearing) + </para> + + <para> + This allows these database settings to be changed more easily + than modifying the <structname>pg_database</> system table. + </para> + </listitem> + + <listitem> + <para> + Have <command>CREATE TABLE AS</> and <command>REFRESH</> return + an <type>OID</> (Álvaro Herrera) + </para> + + <para> + RETURN WHERE + </para> + </listitem> + + </itemizedlist> + + <sect4> + <title><xref linkend="SQL-CREATEFOREIGNDATAWRAPPER"></title> + + <itemizedlist> + + <listitem> + <para> + Add support for <command>IMPORT FOREIGN SCHEMA</> (Ronan Dunklau, + Michael Paquier, Tom Lane) + </para> + + <para> + This allows the creation of local foreign tables definitions + that match the remote table structure. Currently, only the + <application>postgres_fdw</> foreign data wrapper supports this + feature. + </para> + </listitem> + + <listitem> + <para> + Allow foreign tables to participate in inheritance (Shigeru Hanada, + Etsuro Fujita) + </para> + + <para> + This also allows foreign tables to mark check constraints as not + valid, and to set storage and <type>OID</> characteristics. + </para> + </listitem> + + <listitem> + <para> + Allow <literal>CHECK</> constraints to be placed on foreign tables + (Shigeru Hanada, Etsuro Fujita) + </para> + + <para> + 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. + </para> + </listitem> + + <listitem> + <para> + Allow foreign data wrappers and custom scans to implement join + pushdown (KaiGai Kohei) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title><xref linkend="SQL-CREATEEVENTTRIGGER"></title> + + <itemizedlist> + + <listitem> + <para> + Add <function>pg_event_trigger_ddl_commands</> set-returning + function, which returns <acronym>DDL</> activity associated with + event triggers (Álvaro Herrera) + </para> + </listitem> + + <listitem> + <para> + Allow event triggers on table rewrites caused by <command>ALTER + TABLE</> (Dimitri Fontaine) + </para> + </listitem> + + <listitem> + <para> + Add event trigger support for database-level + <command>COMMENT</>, <command>SECURITY LABEL</>, and + <command>GRANT</>/<command>REVOKE</> (Álvaro Herrera) + </para> + </listitem> + + <listitem> + <para> + Add columns to the output of + <function>pg_event_trigger_dropped_objects</> (Álvaro + Herrera) + </para> + + <para> + This allows simpler processing of delete operations. + </para> + </listitem> + + </itemizedlist> + + </sect4> + + </sect3> + + <sect3> + <title>Data Types</title> + + <itemizedlist> + + <listitem> + <para> + Allow the <type>XML</> data type to accept empty or all-whitespace + values (Peter Eisentraut) + </para> + + <para> + This is required by the <acronym>SQL</>/<acronym>XML</> + specification. + </para> + </listitem> + + <listitem> + <para> + Fix <type>XML</> xpath handling to return namespace declarations + even if the namespace is in a parent element (Ali Akbar) + </para> + + <para> + Previously the namespace was not returned, leading to invalid + <type>XML</>. + </para> + </listitem> + + <listitem> + <para> + Allow <type>macaddr</> input using the format + <literal>xxxx-xxxx-xxxx</> (Herwin Weststrate) + </para> + </listitem> + + <listitem> + <para> + Tighten specification of <type>INTERVAL</> precision specifications + (Bruce Momjian) + </para> + + <para> + Only allow interval precision to be specified after the + <literal>INTERVAL</> keyword if no units are specified. + </para> + </listitem> + + <listitem> + <para> + Add selectivity estimators for <type>INET</>/<type>CIDR</> operators + and improve estimators for text search functions (Emre Hasegeli, + Tom Lane) + </para> + </listitem> + + </itemizedlist> + + <sect4> + <title><link linkend="datatype-json"><acronym>JSON</></link></title> + + <itemizedlist> + + <listitem> + <para> + Add <type>JSONB</> functions <function>jsonb_set()</> and + <function>jsonb_pretty</> (Dmitry Dolgov, Andrew Dunstan) + </para> + </listitem> + + <listitem> + <para> + Add several generator functions for <type>JSONB</> that exist + for <type>JSON</> (Andrew Dunstan) + </para> + + <para> + The functions are <function>to_jsonb()</>, + <function>jsonb_object()</>, <function>jsonb_build_object()</>, + <function>jsonb_build_array()</>, <function>jsonb_agg()</>, + and <function>jsonb_object_agg()</>. + </para> + </listitem> + + <listitem> + <para> + Reduce casting requirements to/from <type>JSON</> and + <type>JSONB</> (Tom Lane) + </para> + </listitem> + + <listitem> + <para> + Allow <type>TEXT</>, <type>TEXT</> array, and <type>INTEGER</> + values to be subtracted from <type>JSONB</> documents (Dmitry + Dolgov, Andrew Dunstan) + </para> + </listitem> + + <listitem> + <para> + Add <type>JSONB</> operator || (Dmitry Dolgov, Andrew Dunstan) + </para> + </listitem> + + <listitem> + <para> + Add <function>json_strip_nulls()</> and + <function>jsonb_strip_nulls()</> functions to remove <type>JSON</> + null values from documents (Andrew Dunstan) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + </sect3> + + <sect3> + <title>Functions</title> + + <itemizedlist> + + <listitem> + <para> + Add <function>generate_series()</> for <type>NUMERIC</> values + (Plato Malugin) + </para> + </listitem> + + <listitem> + <para> + Allow <function>array_agg()</> and <function>ARRAY()</> to take + arrays as inputs (Ali Akbar, Tom Lane) + </para> + </listitem> + + <listitem> + <para> + Add functions <function>array_position()</> and + <function>array_positions()</> to return subscripts of array values + (Pavel Stehule) + </para> + </listitem> + + <listitem> + <para> + Add <type>point</>-to-<type>polygon</> distance operator + (<->) (Alexander Korotkov) + </para> + </listitem> + + <listitem> + <para> + Allow multi-byte characters as escape in <literal>SIMILAR TO</> + and <literal>SUBSTRING</> (Jeff Davis) + </para> + + <para> + Previously, only a single-byte character was allowed as an escape. + </para> + </listitem> + + <listitem> + <para> + Add <function>width_bucket()</> which supports any sortable data + type and non-uniform bucket widths (Petr Jelinek) + </para> + </listitem> + + <listitem> + <para> + Allow => to specify named parameters in function calls + (Pavel Stehule) + </para> + + <para> + User-defined => operators have been issuing warnings since + Postgres 9.0, and were removed in hstore in 9.2. Previously only + <literal>:=</> could be used. + </para> + </listitem> + + <listitem> + <para> + Add <acronym>POSIX</>-compliant rounding for platforms that use + Postgres-supplied rounding functions (Pedro Gimeno Fortea) + </para> + </listitem> + + </itemizedlist> + + <sect4> + <title>System Information Functions and Views</title> + + <itemizedlist> + + <listitem> + <para> + Add function <function>pg_get_object_address()</> to return + <type>OID</>s that uniquely identify an object (Álvaro + Herrera) + </para> + </listitem> + + <listitem> + <para> + Add function <function>pg_identify_object_as_address()</> to return + object information based on <type>OID</>s (Álvaro Herrera) + </para> + </listitem> + + <listitem> + <para> + Loosen security checks for viewing <structname>pg_stat_activity</>, + <function>pg_cancel_backend()</>, and + <function>pg_terminate_backend</> (Stephen Frost) + </para> + + <para> + Now, role membership is sufficient; previously only the same + role could perform such operations. + </para> + </listitem> + + <listitem> + <para> + Add <function>pg_stat_get_snapshot_timestamp()</> to output the + timestamp of the statistics snapshot (Matt Kelly) + </para> + + <para> + WHAT IS A STATISTICS SNAPSHOT? + </para> + </listitem> + + <listitem> + <para> + Add <function>mxid_age()</> to compute multi-xid age (Bruce + Momjian) + </para> + </listitem> + + <listitem> + <para> + Add data type <type>regrole</> that returns the <type>OID</> + of a role (Kyotaro Horiguchi) + </para> + </listitem> + + <listitem> + <para> + Add data type <type>regnamespace</> that returns the <type>OID</> + of a schema (Kyotaro Horiguchi) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title>Aggregates</title> + + <itemizedlist> + + <listitem> + <para> + Add <function>MIN()</>/<function>MAX()</> aggregates for + <type>INET</>/<type>CIDR</> data types (Haribabu Kommi) + </para> + </listitem> + + <listitem> + <para> + Use 128-bit integers, where supported, as aggregate accumulators + (Andreas Karlsson) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + </sect3> + + <sect3> + <title>Server-Side Languages</title> + + <itemizedlist> + + <listitem> + <para> + Improve support for composite types in <application>PL/Python</> + (Ed Behn, Ronan Dunklau) + </para> + + <para> + This allows <application>PL/Python</> functions to return arrays + of composite types. + </para> + </listitem> + + <listitem> + <para> + Reduce lossiness of <application>PL/Python</> floating value + conversions (Marko Kreen) + </para> + </listitem> + + <listitem> + <para> + Add specification of conversion routines to/from <acronym>SQL</> + data types to procedural languages data types (Peter Eisentraut) + </para> + + <para> + This adds new commands <command>CREATE</>/<command>DROP + TRANSFORM</>. This also adds transformations between + <application>hstore</> and <application>ltree</> to/from + <application>PL/Perl</> and <application>PL/Python</>. + </para> + </listitem> + + </itemizedlist> + + <sect4> + <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title> + + <itemizedlist> + + <listitem> + <para> + Improve <application>PL/pgSQL</> array performance (Tom Lane) + </para> + </listitem> + + <listitem> + <para> + Add <command>ASSERT</> statement in <application>PL/pgSQL</> + (Pavel Stehule) + </para> + </listitem> + + <listitem> + <para> + Allow more <application>PL/pgSQL</> keywords to be used as + identifiers (Tom Lane) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + </sect3> + + <sect3> + <title>Client Applications</title> + + <itemizedlist> + + <listitem> + <para> + Move <application>pg_archivecleanup</>, + <application>pg_test_fsync</>, <application>pg_test_timing</>, + and <application>pg_xlogdump</> from <filename>contrib</> to + <filename>src/bin</> (Peter Eisentraut) + </para> + </listitem> + + <listitem> + <para> + Allow <application>pg_receivexlog</> to manage physical replication + slots (Michael Paquier) + </para> + + <para> + This is controlled via new <option>--create-slot</> and + <option>--drop-slot</> options. + </para> + </listitem> + + <listitem> + <para> + Allow the <application>pg_receivexlog</> to synchronously flush + <acronym>WAL</> to storage using <option>--synchronous</> (Furuya + Osamu, Fujii Masao) + </para> + + <para> + Without this, <acronym>WAL</> files are fsynced only on close. + </para> + </listitem> + + <listitem> + <para> + Allow <command>vacuumdb</> to vacuum in parallel using + <option>--jobs</> (Dilip Kumar) + </para> + </listitem> + + <listitem> + <para> + Add <option>--verbose</> option to <application>reindexdb</> + (Sawada Masahiko) + </para> + </listitem> + + <listitem> + <para> + Have <application>pg_basebackup</> use a tablespace mapping file, + to allow for file paths of 100+ characters in length (Amit Kapila) + </para> + </listitem> + + </itemizedlist> + + <sect4> + <title><xref linkend="APP-PSQL"></title> + + <itemizedlist> + + <listitem> + <para> + Allow <application>psql</> to produce AsciiDoc output (Szymon Guz) + </para> + </listitem> + + <listitem> + <para> + Add <literal>errors</> mode to <application>psql</>'s + <varname>ECHO</> variable to display only failed commands + (Pavel Stehule) + </para> + + <para> + This can also be enabled with the <application>psql</> + <option>-b</> option. + </para> + </listitem> + + <listitem> + <para> + Allow column, header, and border control to <application>psql</>'s + Unicode style (Pavel Stehule) + </para> + + <para> + Single or double output is supported; the default is + <literal>single</>. + </para> + </listitem> + + <listitem> + <para> + Add <application>psql</> <envar>PROMPT</> variable option + (<literal>%l</>) to display the multi-line statement line number + (Sawada Masahiko) + </para> + </listitem> + + <listitem> + <para> + Add <application>psql</> setting <varname>pager_min_lines</> + setting to control pager invocation (Andrew Dunstan) + </para> + </listitem> + + <listitem> + <para> + Improve <application>psql</> line counting used when deciding + to invoke the pager (Andrew Dunstan) + </para> + </listitem> + + <listitem> + <para> + Add <application>psql</> tab completion when setting the + <varname>search_path</> variable (Jeff Janes) + </para> + + <para> + Currently only the first schema can be tab-completed. + </para> + </listitem> + + <listitem> + <para> + Improve <application>psql</> tab-completion for triggers and rules + (Andreas Karlsson) + </para> + </listitem> + + </itemizedlist> + + <sect5> + <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title> + + <itemizedlist> + + <listitem> + <para> + Add <application>psql</> <command>\?</> help sections + <literal>variables</> and <literal>options</> (Pavel Stehule) + </para> + + <para> + <literal>variables</> outputs <application>psql</> variables + and <literal>options</> shows command-line options. + <command>\? commands</> is the default output. This help + information can also be output via <literal>--help=section</>. + </para> + </listitem> + + <listitem> + <para> + Show tablespace size in <application>psql</>'s <literal>\db+</> + (Fabrízio de Royes Mello) + </para> + </listitem> + + <listitem> + <para> + Show data type owners in <application>psql</>'s <literal>\dT+</> + (Magnus Hagander) + </para> + </listitem> + + <listitem> + <para> + Allow <application>psql</> <command>\watch</> to output + <command>\timing</> information (Fujii Masao) + </para> + + <para> + Also prevent <option>--echo-hidden</> from echoing + <command>\watch</> queries. + </para> + </listitem> + + <listitem> + <para> + Allow <application>psql</>'s <literal>\sf</> and <literal>\ef</> + to honor <envar>ECHO_HIDDEN</> (Andrew Dunstan) + </para> + </listitem> + + <listitem> + <para> + Improve <application>psql</> tab completion for <command>\set</>, + <command>\unset</>, and <literal>:variable</> names (Pavel + Stehule) + </para> + </listitem> + + <listitem> + <para> + Allow tab completion of <application>psql</> <literal>\c</> + role names (Ian Barwick) + </para> + </listitem> + + </itemizedlist> + + </sect5> + + </sect4> + + <sect4> + <title><xref linkend="APP-PGDUMP"></title> + + <itemizedlist> + + <listitem> + <para> + Allow <application>pg_dump</> to share a snapshot taken by another + session using <option>--snapshot</> (Simon Riggs, Michael Paquier) + </para> + + <para> + The remote snapshot must have been exported by + <function>pg_export_snapshot()</> or been defined as a + logical replication slot. This can be used by parallel + <application>pg_dump</> to use a consistent snapshot across + <application>pg_dump</> processes. + </para> + </listitem> + + <listitem> + <para> + Always have <application>pg_dump</> print server and + <application>pg_dump</> versions (Jing Wang) + </para> + + <para> + Previously, version information was only printed in + <option>--verbose</> mode. + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title><xref linkend="app-pg-ctl"></title> + + <itemizedlist> + + <listitem> + <para> + Change <application>pg_ctl</> default shutdown mode from + <literal>smart</> to <literal>fast</> (Bruce Momjian) + </para> + </listitem> + + <listitem> + <para> + Allow multiple <application>pg_ctl</> <option>-o</> options to + be appended (Bruce Momjian) + </para> + </listitem> + + <listitem> + <para> + Allow control of <application>pg_ctl</>'s event source logging + on <systemitem class="osname">MS Windows</> (MauMau) + </para> + + <para> + This only controls <application>pg_ctl</>, not the server, which + has separate settings in <filename>postgresql.conf</>. + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title><xref linkend="pgupgrade"></title> + + <itemizedlist> + + <listitem> + <para> + Move <application>pg_upgrade</> from <filename>contrib</> to + <filename>src/bin</> (Peter Eisentraut) + </para> + </listitem> + + <listitem> + <para> + Allow multiple <application>pg_upgrade</> + <option>-o</>/<option>-O</> options to be appended (Bruce Momjian) + </para> + </listitem> + + <listitem> + <para> + Improve database collation comparisons in + <application>pg_upgrade</> (Heikki Linnakangas) + </para> + </listitem> + + <listitem> + <para> + Document the use of <application>rsync</> for standby server + upgrades using <application>pg_upgrade</> (Stephen Frost, + Bruce Momjian) + </para> + </listitem> + + <listitem> + <para> + Remove <application>pg_upgrade</> support for 8.3 old clusters + (Bruce Momjian) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + </sect3> + + <sect3> + <title>Source Code</title> + + <itemizedlist> + + <listitem> + <para> + Simplify <acronym>WAL</> record format (Heikki Linnakangas) + </para> + + <para> + This allows external tools to more easily process <acronym>WAL</> + files. + </para> + </listitem> + + <listitem> + <para> + Add basic atomics <acronym>API</> support (Andres Freund, Oskari + Saarenmaa) + </para> + </listitem> + + <listitem> + <para> + Add native compiler and memory barriers for <productname>Solaris + Studio</> (Oskari Saarenmaa) + </para> + + <para> + IS THIS PART OF ATOMICS? + </para> + </listitem> + + <listitem> + <para> + Allow custom path and scan methods (KaiGai Kohei, Tom Lane) + </para> + + <para> + This allows extensions greater control over the optimizer and + executor. + </para> + </listitem> + + <listitem> + <para> + Allow foreign data wrappers to do post-filter locking (Etsuro + Fujita) + </para> + </listitem> + + <listitem> + <para> + Improve parallel execution infrastructure (Robert Haas, Amit + Kapila, Noah Misch, Rushabh Lathia, Jeevan Chalke) + </para> + </listitem> + + <listitem> + <para> + Remove <productname>Alpha</> (<acronym>CPU</>) and <systemitem + class="osname">Tru64</> (OS) ports (Andres Freund) + </para> + </listitem> + + <listitem> + <para> + Remove swap-byte-based spinlock implementation for + <acronym>ARM</>v5 and earlier <acronym>CPU</>s (Robert Haas) + </para> + + <para> + <acronym>ARM</>v5's weak memory ordering made this locking + implementation unsafe. Spinlock support is still possible on + newer gcc implementations with atomics support. + </para> + </listitem> + + <listitem> + <para> + Generate an error when excessively long (100+ character) file + paths are written to tar files (Peter Eisentraut) + </para> + + <para> + Tar does not support such overly-long paths. + </para> + </listitem> + + <listitem> + <para> + Change columns <structname>pg_seclabel</>.<structname>provider</> + and <structname>pg_shseclabel</>.<structname>provider</> to + <type>TEXT</> (Tom Lane) + </para> + + <para> + This allows these columns to store 64+ characters. + </para> + </listitem> + + </itemizedlist> + + <sect4> + <title>MS Windows</title> + + <itemizedlist> + + <listitem> + <para> + Allow higher-precision timestamp resolution on <systemitem + class="osname">Windows 8</> or <systemitem class="osname">Windows + Server 2012</> and later Windows systems (Craig Ringer) + </para> + </listitem> + + <listitem> + <para> + Install shared libraries to <filename>bin</> in <systemitem + class="osname">MS Windows</> (Peter Eisentraut, Michael Paquier) + </para> + </listitem> + + <listitem> + <para> + Install <filename>src/test/modules</> together with + <filename>contrib</> on <productname>MSVC</> builds (Michael + Paquier) + </para> + </listitem> + + <listitem> + <para> + Allow configure's <option>--with-extra-version</> to be honored + by the <productname>MSVC</> build (Michael Paquier) + </para> + </listitem> + + <listitem> + <para> + Pass <envar>PGFILEDESC</> into <productname>MSVC</> contrib builds + (Michael Paquier) + </para> + </listitem> + + <listitem> + <para> + Add icons to all <productname>MSVC</>-built binaries (Noah Misch) + </para> + + <para> + MinGW already had such icons. + </para> + </listitem> + + <listitem> + <para> + Add optional-argument support to the internal + <function>getopt_long()</> implementation (Michael Paquier, + Andres Freund) + </para> + + <para> + This is used by the <productname>MSVC</> build. + </para> + </listitem> + + </itemizedlist> + + </sect4> + + </sect3> + + <sect3> + <title>Additional Modules</title> + + <itemizedlist> + + <listitem> + <para> + Add <application>pg_rewind</>, which allows re-synchronizing a + master server after failback (Heikki Linnakangas) + </para> + </listitem> + + <listitem> + <para> + Add statistics for minimum, maximum, mean, and standard deviation + times to <application>pg_stat_statements</> (Mitsumasa Kondo, + Andrew Dunstan) + </para> + </listitem> + + <listitem> + <para> + Add <application>pgcrypto</> function + <function>pgp_armor_headers()</> to extract <productname>PGP</> + armor headers (Marko Tiikkaja, Heikki Linnakangas) + </para> + </listitem> + + <listitem> + <para> + Allow empty replacement strings in <application>unaccent</> + (Mohammad Alhashash) + </para> + + <para> + This is useful in languages where diacritic signs are represented + as separate characters. + </para> + </listitem> + + <listitem> + <para> + Allow multi-character source strings in <application>unaccent</> + (Tom Lane) + </para> + + <para> + This could be useful in languages where diacritic signs are + represented as separate characters. It also allows more complex + unaccent dictionaries. + </para> + </listitem> + + <listitem> + <para> + Add <filename>contrib</> modules <application>tsm_system_rows</> + and <application>tsm_system_time</> to allow additional table + sampling methods (Petr Jelinek) + </para> + </listitem> + + <listitem> + <para> + Add <application>pg_xlogdump</> option <option>--stats</> to + display summary statistics (Abhijit Menon-Sen) + </para> + </listitem> + + <listitem> + <para> + Allow <acronym>GIN</> index inspection functions to + <application>pageinspect</> (Heikki Linnakangas, Peter Geoghegan, + Michael Paquier) + </para> + </listitem> + + <listitem> + <para> + Allow <application>pgstattuple</> to report approximate answers + with less overhead using <function>pgstattuple_approx()</> + (Abhijit Menon-Sen) + </para> + </listitem> + + <listitem> + <para> + Move <application>pg_upgrade_support</> code into backend and + remove the module (Peter Eisentraut) + </para> + </listitem> + + <listitem> + <para> + Move <application>dummy_seclabel</>, <application>test_shm_mq</>, + <application>test_parser</>, and <application>worker_spi</> + from <filename>contrib</> to <filename>src/test/modules</> + (Álvaro Herrera) + </para> + </listitem> + + </itemizedlist> + + <sect4> + <title><xref linkend="pgbench"></title> + + <itemizedlist> + + <listitem> + <para> + Move pgbench from <filename>contrib</> to <filename>src/bin</> + (Peter Eisentraut) + </para> + </listitem> + + <listitem> + <para> + Allow counting of pgbench transactions that take over a specified + amount of time (Fabien Coelho) + </para> + + <para> + This is controlled by new <option>--latency-limit</> option. + </para> + </listitem> + + <listitem> + <para> + Allow pgbench to generate Gaussian/exponential distributions + using <command>\setrandom</> (Kondo Mitsumasa, Fabien Coelho) + </para> + </listitem> + + <listitem> + <para> + Add information about buffer pins to <application>pg_buffercache</> + display (Andres Freund) + </para> + </listitem> + + <listitem> + <para> + Allow <application>pgbench</>'s <command>\set</> command to handle + multi-operator expressions (Robert Haas, Fabien Coelho) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + </sect3> + + </sect2> + + </sect1> diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index f97e63a95b0..7004318c44b 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -73,6 +73,7 @@ For new features, add links to the documentation sections. The reason for splitting the release notes this way is so that appropriate subsets can easily be copied into back branches. --> +&release-9.5; &release-9.4; &release-9.3; &release-9.2; |