1 <!-- doc/src/sgml/release-9.5.sgml -->
2 <!-- See header comment in release.sgml about typical markup -->
4 <sect1 id="release-9-5">
5 <title>Release 9.5</title>
8 <title>Release Date</title>
9 <simpara>2015-??-??</simpara>
10 <simpara>Current as of 2015-08-03</simpara>
14 <title>Overview</title>
17 Major enhancements in <productname>PostgreSQL</> 9.5 include:
20 <!-- This list duplicates items below, but without authors or details-->
26 ... to be filled in ...
33 The above items are explained in more detail in the sections below.
40 <title>Migration to Version 9.5</title>
43 A dump/restore using <xref linkend="app-pg-dumpall">, or use
44 of <xref linkend="pgupgrade">, is required for those wishing to migrate
45 data from any previous release.
49 Version 9.5 contains a number of changes that may affect compatibility
50 with previous releases. Observe the following incompatibilities:
57 2015-03-11 [c6b3c93] Tom Lane: Make operator precedence follow the SQL standar..
60 Adjust <link linkend="sql-precedence">operator precedence</>
61 to match the <acronym>SQL</> standard (Tom Lane)
65 The precedence of <literal><=</literal>, <literal>>=</literal>
66 and <literal><></literal> has been reduced to match that of
67 <literal><</literal>, <literal>></literal>
68 and <literal>=</literal>. The precedence of <literal>IS</> tests
69 (e.g., <replaceable>x</> <literal>IS NULL</>) has been reduced to be
70 just below these six comparison operators.
71 Also, multi-keyword operators beginning with <literal>NOT</> now have
72 the precedence of their base operator (for example, <literal>NOT
73 BETWEEN</> now has the same precedence as <literal>BETWEEN</>) whereas
74 before they had inconsistent precedence, behaving like <literal>NOT</>
75 with respect to their left operand but like their base operator with
76 respect to their right operand. The new configuration
77 parameter <xref linkend="guc-operator-precedence-warning"> can be
78 enabled to warn about queries in which these precedence changes result
79 in different parsing choices.
85 2015-03-31 [0badb06] Bruce ..: pg_ctl: change default shutdown mode from 'sma..
88 Change <application>pg_ctl</>'s default shutdown mode from
89 <literal>smart</> to <literal>fast</> (Bruce Momjian)
95 2015-03-04 [1345cc6] Tom Lane: Use standard casting mechanism to convert type..
98 Use assignment cast behavior for data type conversions
99 in <application>PL/pgSQL</> assignments, rather than converting to and
104 This change causes conversions of booleans to strings to
105 produce <literal>true</> or <literal>false</>, not <literal>t</>
106 or <literal>f</>. Other type conversions may succeed in more cases
107 than before; for example, assigning a numeric value <literal>3.9</> to
108 an integer variable will now assign 4 rather than failing. If no
109 assignment-grade cast is defined for the particular source and
110 destination types, <application>PL/pgSQL</> will fall back to its old
111 I/O conversion behavior.
117 2014-08-28 [11a020e] Andres..: Allow escaping of option values for options pas..
120 Allow characters in <link linkend="libpq-connect-options">server
121 command-line options</> to be escaped with a backslash (Andres Freund)
125 Formerly, spaces in the options string always separated options, so
126 there was no way to include a space in an option value. Including
127 a backslash in an option value now requires writing <literal>\\</>.
133 2015-05-08 [9a08841] Stephe..: Change default for include_realm to 1
136 Change the default value of <link
137 linkend="gssapi-auth"><varname>include_realm</></> to 1, so that
138 by default the realm is not removed from a <acronym>GSS</>
139 or <acronym>SSPI</> principal name (Stephen Frost)
145 2015-01-22 [59367fd] Bruce ..: adjust ACL owners for REASSIGN and ALTER OWNER..
148 Fix <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN OWNED</></>
149 and <link linkend="SQL-ALTERTYPE"><command>ALTER OWNER TO</></>
150 to properly update permissions lists (ACLs) when changing ownership of
151 types, foreign data wrappers, and foreign servers (Bruce Momjian)
157 2015-07-28 [6087d95] Andres..: Remove ssl renegotiation support.
160 Remove server configuration
161 parameter <varname>ssl_renegotiation_limit</>, which was deprecated
162 in earlier releases (Andres Freund)
166 While SSL renegotiation is a good idea in theory, it has caused enough
167 bugs to be considered a net negative in practice, and it is due to be
168 removed from future versions of the relevant standards. We have
169 therefore removed support for it from <productname>PostgreSQL</>.
175 2014-11-05 [525a489] Tom Lane: Remove the last vestige of server-side autocomm..
178 Remove server configuration parameter <varname>autocommit</>, which
179 was already deprecated and non-operational (Tom Lane)
185 2015-03-06 [bb8582a] Peter ..: Remove rolcatupdate
188 Remove <link linkend="catalog-pg-authid"><structname>pg_authid</></>'s
189 <structfield>rolcatupdate</> field, as it had no value (Adam Brightwell)
195 2015-07-17 [89ddd29] Andrew..: Support JSON negative array subscripts everywh..
198 Allow <type>json</> and <type>jsonb</> array extraction operators to
199 accept negative subscripts, which count from the end of JSON arrays.
200 Previously, these operators returned <literal>NULL</> for negative
201 subscripts. (Peter Geoghegan, Andrew Dunstan)
210 <title>Changes</title>
213 Below you will find a detailed account of the changes between
214 <productname>PostgreSQL</productname> 9.5 and the previous major
219 <title>Server</title>
222 <title>Indexes</title>
228 2014-11-07 [7516f52] Alvaro..: BRIN: Block Range Indexes
229 2015-05-05 [3b6db1f] Alvaro..: Add geometry/range functions to support BRIN in..
230 2015-05-15 [b0b7be6] Alvaro..: Add BRIN infrastructure for "inclusion" opclasses
233 Add <link linkend="BRIN">Block Range Indexes</> (<acronym>BRIN</>)
234 (Álvaro Herrera)
238 <acronym>BRIN</> indexes are very compact and cheap to update by
239 storing min/max values for a range of heap blocks.
245 2015-05-15 [35fcb1b] Heikki..: Allow GiST distance function to return merely ..
248 Allow queries to perform accurate distance filtering of
249 bounding-box-indexed objects (polygons, circles) using <link
250 linkend="GiST">GiST</> indexes (Alexander Korotkov, Heikki
255 Previously, a common table expression was required to return a
256 large number of rows ordered by bounding-box distance, and then
257 filtered further with a more accurate non-bounding-box distance
264 2015-03-26 [d04c8ed] Heikki..: Add support for index-only scans in GiST.
265 2015-03-27 [e09b483] Heikki..: Add index-only scan support to btree_gist.
266 2015-03-28 [3a20b0e] Heikki..: Add index-only scan support to inet GiST opclass.
267 2015-03-30 [0633a60] Heikki..: Add index-only scan support to range type GiST ..
270 Allow <link linkend="GiST">GiST</> indexes to perform index-only
271 scans (Anastasia Lubennikova, Heikki Linnakangas, Andreas Karlsson)
277 Add GUC and storage parameter to set the maximum size of GIN pending list.
280 Add configuration parameter <xref linkend="guc-gin-pending-list-limit">
281 to control the size of <acronym>GIN</> pending lists (Fujii Masao)
285 Previously the list size was controlled
286 by <xref linkend="guc-work-mem">. This can also be set as an index
293 2014-09-10 [84aa8ba] Bruce ..: Issue a warning during the creation of hash in..
296 Issue a warning during the creation of <link
297 linkend="indexes-types">hash</> indexes because they are not
298 crash-safe (Bruce Momjian)
307 <title>General Performance</title>
313 2015-01-19 [4ea51cd] Robert..: Use abbreviated keys for faster sorting of text..
314 2014-09-19 [e246b3d] Robert..: Add a fast pre-check for equality of equal-leng..
315 2015-05-13 [78efd5c] Robert..: Extend abbreviated key infrastructure to datum ..
318 Improve the speed of sorting character and <type>NUMERIC</> fields
319 (Peter Geoghegan, Andrew Gierth, Robert Haas)
325 2014-11-07 [5ea86e6] Robert..: Use the sortsupport infrastructure in more cas..
328 Extend the infrastructure that allows sorting to be performed by
329 inlined, non-<acronym>SQL</acronym>-callable comparison functions to
330 cover <command>CREATE INDEX</>, <command>REINDEX</>, and
331 <command>CLUSTER</> (Peter Geoghegan)
337 2014-09-10 [45f6240] Heikki..: Pack tuples in a hash join batch densely, to sa..
338 2014-09-12 [8cce08f] Robert..: Change NTUP_PER_BUCKET to 1 to improve hash joi..
339 2014-10-13 [30d7ae3] Kevin ..: Increase number of hash join buckets for undere..
340 FIXME: bad description? Should talk about hash joins
343 Improve in-memory hash performance (Tomas Vondra, Robert Haas)
349 2014-09-25 [5d7962c] Robert..: Change locking regimen around buffer replacement.
350 2014-12-25 [d72731a] Andres..: Lockless StrategyGetBuffer clock sweep hot path.
354 Improve concurrency of shared buffer replacement
355 (Robert Haas, Amit Kapila)
361 2015-03-25 [2ed5b87f] Kevin ..: Reduce pinning and buffer content locking for b..
364 Reduce the number of page locks and pins during index scans (Kevin Grittner)
368 The primary benefit of this is to allow index vacuums to be blocked
375 2014-08-30 [4b4b680] Andres..: Make backend local tracking of buffer pins memo..
376 2015-01-19 [2d115e4] Andres..: Fix various shortcomings of the new PrivateRefC..
379 Make backend local tracking of buffer pins memory efficient (Andres Freund)
383 Previously each session allocated an array with space for every buffer
384 in <link linkend="guc-shared-buffers"><varname>shared_buffers</></link>.
390 2014-12-25 [ab5194e] Andres..: Improve LWLock scalability.
393 Improve lock scalability (Andres Freund)
397 This particularly addresses scalability problems when running on
398 systems with multiple <acronym>CPU</> sockets.
404 2014-07-15 [f15821e] Tom Lane: Allow join removal in some cases involving a le..
407 Allow the optimizer to remove unnecessary references to left
408 outer join subqueries (David Rowley)
414 2014-06-27 [d222585] Tom Lane: Allow pushdown of WHERE quals into subqueries w..
417 Allow pushdown of query restrictions into <link
418 linkend="functions-window">window functions</>, where appropriate
425 2015-04-27 [dcbf594] Stephe..: Improve qual pushdown for RLS and SB views
428 Allow non-LEAKPROOF functions to be passed into security barrier
429 views if the function does not reference any table columns
436 2014-11-04 [5028f22] Heikki..: Switch to CRC-32C in WAL and other places.
437 2015-02-10 [025c024] Heikki..: Speed up CRC calculation using slicing-by-8 alg..
438 2015-04-14 [3dc2d62] Heikki..: Use Intel SSE 4.2 CRC instructions where availa..
442 Speed up <acronym>CRC</> (cyclic redundancy check) computations
443 and switch to CRC-32C (Abhijit Menon-Sen, Heikki Linnakangas)
449 2015-01-16 [f5ae3ba] Andres..: Make tbm_add_tuples more efficient by caching t..
450 2015-01-16 [779fdcd] Tom Lane: Improve new caching logic in tbm_add_tuples().
453 Improve bitmap index scan performance (Teodor Sigaev, Tom Lane)
460 2014-07-01 [9f03ca9] Robert..: Avoid copying index tuples when building an ind..
462 Speed up CREATE INDEX by avoiding unneccessary memory copies (Robert Haas)
471 <title>Monitoring</title>
477 2015-04-03 [4ff695b1] Alvaro..: Add log_min_autovacuum_duration per-table option
480 Add per-table autovacuum logging control via
481 <varname>log_min_autovacuum_duration</> (Michael Paquier)
491 2014-06-29 [51adcaa] Andres..: Add cluster_name GUC which is included in proce..
494 Add new configuration parameter <xref linkend="guc-cluster-name">
499 This string, typically set in <link
500 linkend="config-setting-configuration-file"><filename>postgresql.conf</></>,
501 allows clients to identify the cluster. This name also appears
502 in the process title of all server processes, allowing for easier
503 identification of processes belonging to the same cluster.
509 2014-09-13 [fe550b2] Tom Lane: Invent PGC_SU_BACKEND and mark log_connections..
512 Prevent non-superusers from changing <xref
513 linkend="guc-log-disconnections"> on connection startup (Fujii Masao)
522 <title><acronym>SSL</></title>
528 2014-09-12 [acd08d7] Heikki..: Support Subject Alternative Names in SSL server..
531 Check <link linkend="libpq-ssl"><quote>Subject Alternative
532 Names</></> in <acronym>SSL</> server certificates, if present
537 When they are present, this replaces checks against the certificate's
538 <quote>Common Name</>.
544 2015-04-12 [9029f4b] Magnus..: Add system view pg_stat_ssl
547 Add system view <link
548 linkend="pg-stat-ssl-view"><structname>pg_stat_ssl</></> to report
549 <acronym>SSL</> connection information (Magnus Hagander)
555 2015-02-03 [91fa7b4] Heikki..: Add API functions to libpq to interrogate SSL ..
558 Add <application>libpq</> function <link
559 linkend="libpq-pqsslAttribute"><function>PQsslAttribute()</></>
560 that returns <acronym>SSL</> information (Heikki Linnakangas)
564 While <link linkend="libpq-pqgetssl"><function>PQgetssl()</></>
565 can still be used to call <productname>OpenSSL</>
566 functions, <function>PQsslAttribute()</> returns <acronym>SSL</>
567 information in an <acronym>SSL</>-implementation-independent way.
568 (Future versions of libpq might support other <acronym>SSL</>
575 2015-04-09 [8a0d34e4] Peter ..: libpq: Don't overwrite existing OpenSSL thread..
578 Make <application>libpq</> honor any <productname>OpenSSL</>
579 thread callbacks (Jan Urbanski)
583 Previously they were overwritten.
592 <title>Server Settings</title>
598 2015-02-23 [88e9823] Heikki..: Replace checkpoint_segments with min_wal_size a..
599 2015-03-15 [a0f5954] Andres..: Increase max_wal_size's default from 128MB to 1..
600 2015-06-29 [d661532] Heikki..: Also trigger restartpoints based on max_wal_siz..
601 FIXME: Add docs about restartpoint behaviour change
604 Replace configuration parameter <varname>checkpoint_segments</>
605 with <xref linkend="guc-min-wal-size">
606 and <xref linkend="guc-max-wal-size"> (Heikki Linnakangas)
610 This allows the allocation of a large number of <acronym>WAL</> files
611 without keeping them if they are not needed. Thus the default
612 for <xref linkend="guc-max-wal-size"> has been increased
619 2015-03-11 [57aa5b2] Fujii ..: Add GUC to enable compression of full page imag..
622 Add configuration parameter <xref linkend="guc-wal-compression"> to
623 control compression of full page images stored in <acronym>WAL</>
624 (Rahila Syed, Michael Paquier)
630 2014-12-03 [73c986a] Alvaro..: Keep track of transaction commit timestamps
633 Allow recording of transaction
634 commit timestamps when configuration parameter <xref
635 linkend="guc-track-commit-timestamp">
636 is enabled (Álvaro Herrera, Petr Jelínek)
640 Timestamp information can be accessed using functions <link
641 linkend="functions-commit-timestamp"><function>pg_xact_commit_timestamp()</></>
642 and <function>pg_last_committed_xact()</>.
648 2014-12-22 [584e35d] Peter ..: Change local_preload_libraries to PGC_USERSET
651 Allow <xref linkend="guc-local-preload-libraries"> to be set
652 by <command>ALTER ROLE SET</> (Peter Eisentraut, Kyotaro Horiguchi)
658 2015-04-03 [a75fb9b] Alvaro..: Have autovacuum workers listen to SIGHUP, too
661 Allow running <link linkend="autovacuum">autovacuum workers</>
662 to respond to configuration parameter changes (Michael Paquier)
668 2014-06-20 [3bdcf6a] Andres..: Don't allow to disable backend assertions via t..
671 Make configuration parameter <xref linkend="guc-debug-assertions">
672 read-only (Andres Freund)
676 This means that assertions can no longer be turned
677 off if they were enabled at compile time, allowing for more
678 efficient code optimization. This change also removed the <link
679 linkend="app-postgres-options">postgres</> <option>-A</> option.
685 2014-10-18 [7feaccc] Peter ..: Allow setting effective_io_concurrency even on..
688 Allow setting <xref linkend="guc-effective-io-concurrency"> on
689 systems where it has no effect (Peter Eisentraut)
695 2014-06-18 [df8b7bc] Tom Lane: Improve our mechanism for controlling the Linux..
698 Add environment variables <link
699 linkend="linux-memory-overcommit"><envar>PG_OOM_ADJUST_FILE</></>
701 linkend="linux-memory-overcommit"><envar>PG_OOM_ADJUST_VALUE</></>
702 to help control the Linux <acronym>OOM</> killer (Gurjeet Singh)
706 The previous <acronym>OOM</> control infrastructure involved a
713 2015-05-08 [a97e0c3] Stephe..: Add pg_file_settings view and function
714 2015-06-28 [62d16c7] Tom Lane: Improve design and implementation of pg_file_se..
717 Add system view <link
718 linkend="view-pg-file-settings"><structname>pg_file_settings</></>
719 to show the contents of the server's configuration files
726 2015-05-14 [a486e35] Peter ..: Add pg_settings.pending_restart column
729 Add <structname>pending_restart</> to the system view <link
730 linkend="view-pg-settings"><structname>pg_settings</></> to
731 indicate a change is pending a restart (Peter Eisentraut)
737 2014-09-02 [bd3b7a9] Fujii ..: Support ALTER SYSTEM RESET command.
740 Allow <link linkend="SQL-ALTERSYSTEM"><command>ALTER SYSTEM</></>
741 values to be reset with <command>ALTER SYSTEM RESET</> (Vik
746 This command removes the setting from <filename>postgresql.auto.conf</>.
757 <title>Replication and Recovery</title>
763 2014-11-25 [aedccb1] Simon ..: action_at_recovery_target recovery config option
764 2014-12-07 [b8e33a8] Simon ..: Tweaks for recovery_target_action
765 2015-03-15 [51c11a7] Andres..: Remove pause_at_recovery_target recovery.conf s..
768 Add <link linkend="recovery-config"><filename>recovery.conf</></>
770 linkend="recovery-target-action"><varname>recovery_target_action</></>
771 to control post-recovery activity (Petr Jelínek)
775 This replaces the old parameter <varname>pause_at_recovery_target</>.
781 2015-05-15 [ffd3774] Heikki..: Add archive_mode='always' option.
784 Add new <xref linkend="guc-archive-mode"> value
785 <literal>always</> to allow standbys to always archive received
786 <acronym>WAL</> files (Fujii Masao)
792 2015-02-23 [5d2b45e] Fujii ..: Add GUC to control the time to wait before retr..
796 parameter <xref linkend="guc-wal-retrieve-retry-interval"> to
797 control <acronym>WAL</> read retry after failure
798 (Alexey Vasiliev, Michael Paquier)
802 This is particularly helpful for warm standbys.
808 2015-05-08 [de76884] Heikki..: At promotion, archive last segment from old tim..
811 Archive <acronym>WAL</> files with suffix <literal>.partial</>
812 during standby promotion (Heikki Linnakangas)
818 2014-09-13 [4ad2a54] Fujii ..: Add GUC to enable logging of replication comman..
821 Add configuration parameter <xref
822 linkend="guc-log-replication-commands">
823 to log replication commands (Fujii Masao)
827 By default, replication commands, e.g. <link
828 linkend="protocol-replication"><literal>IDENTIFY_SYSTEM</></>,
829 are not logged, even when <xref linkend="guc-log-statement"> is set
836 2015-04-29 [5aa2350] Andres..: Introduce replication progress tracking infrast..
837 2015-03-15 [4f1b890] Andres..: Merge the various forms of transaction commit &..
838 FIXME: Correct description
841 Allow <link linkend="pg-replication-origin-create">labeling</> of
842 the origin progress of logical replication changes (Andres Freund)
846 This is helpful when implementing replication solutions.
852 2015-04-21 [d811c03] Andres..: Add 'active_in' column to pg_replication_slots.
853 2015-04-21 [d811c03] Andres..: Add 'active_in' column to pg_replication_slots.
856 Report the processes holding replication slots in <link
857 linkend="catalog-pg-replication-slots"><structname>pg_replication_slots</></>
862 The new output column is <structname>active_pid</>.
868 2014-11-25 [b3fc672] Heikki..: Allow using connection URI in primary_conninfo.
871 Allow <filename>recovery.conf</>'s <link
872 linkend="primary-conninfo"><varname>primary_conninfo</></> to
873 use connection <acronym>URI</>s, e.g. <literal>postgres://</>
883 <title>Queries</title>
889 2015-05-08 [168d580] Andres..: Add support for INSERT ... ON CONFLICT DO NOTHI..
890 2015-05-08 [2c8f483] Andres..: Represent columns requiring insert and update p..
893 Allow <link linkend="sql-on-conflict"><command>INSERTS</></>
894 that would generate constraint conflicts to be turned into
895 <command>UPDATE</>s or ignored (Peter Geoghegan, Heikki
896 Linnakangas, Andres Freund)
900 The syntax is <command>INSERT ... ON CONFLICT DO NOTHING/UPDATE</>.
901 This is the Postgres implementation of the popular
902 <command>UPSERT</> command.
908 2015-05-16 [f3d3118] Andres..: Support GROUPING SETS, CUBE and ROLLUP.
911 Add <literal>GROUP BY</> analysis functions <link
912 linkend="queries-grouping-sets"><literal>GROUPING SETS</></>,
913 <link linkend="queries-grouping-sets"><literal>CUBE</></> and
914 <link linkend="queries-grouping-sets"><literal>ROLLUP</></>
915 (Andrew Gierth, Atri Sharma)
921 2014-06-18 [8f889b1] Tom Lane: Implement UPDATE tab SET (col1,col2,...) = (SEL..
924 Allow to set multiple columns in
925 an <link linkend="SQL-UPDATE"><command>UPDATE</></> to the result of a
926 single subselect (Tom Lane)
930 This is accomplished using the syntax <command>UPDATE tab SET
931 (col1, col2, ...) = (SELECT ...)</>.
937 2014-10-07 [df630b0] Alvaro..: Implement SKIP LOCKED for row-level locks
940 Add new <link linkend="SQL-SELECT"><command>SELECT</></> option
941 <literal>SKIP LOCKED</> to skip locked rows (Thomas Munro)
945 This does not throw an error for locked rows like
946 <literal>NOWAIT</> does.
952 2015-05-15 [f6d208d] Simon ..: TABLESAMPLE, SQL Standard and extensible
955 Add <link linkend="SQL-SELECT"><command>SELECT</></> option
956 <literal>TABLESAMPLE</> to return a subset of a table (Petr
963 2015-03-11 [e529cd4] Robert..: Suggest to the user the column they may have m..
966 Suggest possible matches for mistyped column names (Peter
967 Geoghegan, Robert Haas)
976 <title>Utility Commands</title>
982 2015-01-16 [20af53d] Tom Lane: Show sort ordering options in EXPLAIN output.
985 Add more details about sort ordering in <link
986 linkend="SQL-EXPLAIN"><command>EXPLAIN</></> output (Marius Timmer,
987 Lukas Kreft, Arne Scheffer)
991 Details include <literal>COLLATE</>, <literal>DESC</>,
992 <literal>USING</>, and <literal>NULLS FIRST</><literal>/LAST</>.
998 2014-12-18 [35192f0] Alvaro..: Have VACUUM log number of skipped pages due to ..
1001 Have <link linkend="SQL-VACUUM"><command>VACUUM</></> log the
1002 number of pages skipped due to pins (Jim Nasby)
1008 2015-02-20 [d42358e] Alvaro..: Have TRUNCATE update pgstat tuple counters
1011 Have <link linkend="SQL-TRUNCATE"><command>TRUNCATE</></> properly
1012 update the <literal>pg_stat</>* tuple counters (Alexander Shulgin)
1019 <title><xref linkend="SQL-REINDEX"></title>
1025 2014-12-09 [fe263d1] Simon ..: REINDEX SCHEMA
1028 Allow <command>REINDEX</> to reindex an entire schema using the
1029 <literal>SCHEMA</> option (Sawada Masahiko)
1035 2015-05-15 [ecd222e] Fujii ..: Support VERBOSE option in REINDEX command.
1038 Add <literal>VERBOSE</> option to <command>REINDEX</> (Sawada
1045 2014-12-09 [ae4e688] Simon ..: Silence REINDEX
1048 Prevent <command>REINDEX DATABASE</> and <command>SCHEMA</>
1049 from outputting object names, unless <literal>VERBOSE</> is used
1056 2015-04-09 [17d436d] Fujii ..: Remove obsolete FORCE option from REINDEX.
1059 Remove obsolete <literal>FORCE</> option from <command>REINDEX</>
1070 <title>Object Manipulation</title>
1076 2014-09-19 [491c029] Stephe..: Row-Level Security Policies (RLS)
1079 Add row-level security control (Craig Ringer, KaiGai Kohei,
1080 Adam Brightwell, Dean Rasheed, Stephen Frost)
1084 This controls viewing and adding/modifying rows via new commands
1085 <link linkend="SQL-CREATEPOLICY"><command>CREATE</></>/<link
1086 linkend="SQL-ALTERPOLICY"><command>ALTER</></>/<link
1087 linkend="SQL-DROPPOLICY"><command>DROP POLICY</></> and <link
1088 linkend="SQL-ALTERTABLE"><command>ALTER TABLE ... ENABLE/DISABLE
1095 2014-08-22 [f41872d] Alvaro..: Implement ALTER TABLE .. SET LOGGED / UNLOGGED
1098 Allow changing of the <acronym>WAL</acronym>
1099 logging status of a table ater creation with <link
1100 linkend="SQL-ALTERTABLE"><command>ALTER TABLE .. SET LOGGED /
1101 UNLOGGED</></> (Fabrízio de Royes Mello)
1107 2014-08-26 [0076f26] Heikki..: Implement IF NOT EXISTS for CREATE SEQUENCE.
1108 2014-11-06 [08309aa] Fujii ..: Implement IF NOT EXIST for CREATE INDEX.
1109 2014-12-13 [e39b6f9] Andrew..: Add CINE option for CREATE TABLE AS and CREATE ..
1112 Add <literal>IF NOT EXISTS</> clause to <link
1113 linkend="SQL-CREATETABLEAS"><command>CREATE TABLE AS</></>,
1114 <link linkend="SQL-CREATEINDEX"><command>CREATE INDEX</></>,
1115 <link linkend="SQL-CREATESEQUENCE"><command>CREATE SEQUENCE</></>,
1116 and <link linkend="SQL-CREATEMATERIALIZEDVIEW"><command>CREATE
1117 MATERIALIZED VIEW</></> (Fabrízio de Royes Mello)
1123 2015-03-24 [1d8198b] Bruce ..: Add support for ALTER TABLE IF EXISTS ... RENAM..
1126 Add support for <literal>IF EXISTS</> to <link
1127 linkend="SQL-ALTERTABLE"><command>ALTER TABLE ... RENAME
1128 CONSTRAINT</></> (Bruce Momjian)
1134 2015-03-09 [31eae60] Alvaro..: Allow CURRENT/SESSION_USER to be used in certai..
1137 Allow <literal>CURRENT</><literal>/SESSION_USER</> to specify the
1138 current user in some commands (Kyotaro Horiguchi, Álvaro
1143 Commands include <link linkend="SQL-ALTERUSER"><command>ALTER
1145 <link linkend="SQL-ALTERGROUP"><command>ALTER
1146 GROUP</></>, <link linkend="SQL-ALTERROLE"><command>ALTER
1147 ROLE</></>, <link linkend="SQL-GRANT"><command>GRANT</></>,
1148 and various <command>ALTER OBJECT / OWNER TO</> commands.
1154 2015-06-21 [ad89a5d] Alvaro..: Add transforms to pg_get_object_address and fr..
1157 Allow comments on <link linkend="SQL-CREATEDOMAIN">domain
1158 constraints</> (Álvaro Herrera)
1164 2015-04-05 [0ef0396] Simon ..: Reduce lock levels of some trigger DDL and add ..
1167 Reduce lock levels of some create and alter trigger and foreign
1168 key commands (Simon Riggs, Andreas Karlsson)
1174 2015-05-11 [fa26424] Stephe..: Allow LOCK TABLE .. ROW EXCLUSIVE MODE with IN..
1177 Allow <link linkend="SQL-LOCK"><command>LOCK TABLE .. ROW EXCLUSIVE
1178 MODE</></> for those with <command>INSERT</> privileges (Stephen
1183 Previously only <command>UPDATE</>, <command>DELETE</>, and
1184 <command>TRUNCATE</> privileges allowed this.
1190 2015-03-23 [e5f455f] Tom Lane: Apply table and domain CHECK constraints in nam.
1193 Apply table and domain <literal>CHECK</> constraints in name order
1198 The previous order was indeterminate.
1204 2014-07-01 [15c82ef] Tom Lane: Refactor CREATE/ALTER DATABASE syntax so option..
1205 2014-07-01 [fbb1d7d] Tom Lane: Allow CREATE/ALTER DATABASE to manipulate datis..
1209 linkend="SQL-CREATEDATABASE"><command>CREATE</></>/<link
1210 linkend="SQL-ALTERDATABASE"><command>ALTER DATABASE</></>
1211 to manipulate <structname>datistemplate</> and
1212 <structname>datallowconn</> (Vik Fearing)
1216 This allows these database settings to be
1217 changed more easily than modifying the <link
1218 linkend="catalog-pg-database"><structname>pg_database</></>
1226 <title><xref linkend="SQL-CREATEFOREIGNDATAWRAPPER"></title>
1232 2014-07-10 [59efda3] Tom Lane: Implement IMPORT FOREIGN SCHEMA.
1235 Add support for <link
1236 linkend="SQL-IMPORTFOREIGNSCHEMA"><command>IMPORT FOREIGN
1237 SCHEMA</></> (Ronan Dunklau, Michael Paquier, Tom Lane)
1241 This command allows automatic creation of local foreign tables
1242 that match the structure of existing tables on a remote server.
1248 2015-03-22 [cb1ca4d] Tom Lane: Allow foreign tables to participate in inherita..
1251 Allow foreign tables to participate in inheritance (Shigeru Hanada,
1256 This also allows foreign tables to mark check constraints as not
1257 valid, and to set storage and <type>OID</> characteristics.
1263 2014-12-17 [fc2ac1f] Tom Lane: Allow CHECK constraints to be placed on foreign..
1266 Allow <literal>CHECK</> constraints to be placed on foreign tables
1267 (Shigeru Hanada, Etsuro Fujita)
1271 These constraints are assumed to be enforced on the remote server,
1272 and are not enforced locally. However, they are assumed to hold for
1273 purposes of query optimization, such
1274 as <link linkend="ddl-partitioning-constraint-exclusion">constraint
1281 2015-05-01 [e7cb7ee] Robert..: Allow FDWs and custom scan providers to replace..
1282 2015-05-10 [1a8a4e5] Tom Lane: Code review for foreign/custom join pushdown pa..
1285 Allow foreign data wrappers and custom scans to implement join
1286 pushdown (KaiGai Kohei)
1295 <title><xref linkend="SQL-CREATEEVENTTRIGGER"></title>
1301 2015-05-11 [b488c58] Alvaro..: Allow on-the-fly capture of DDL event details
1302 FIXME: Better description?
1305 Add a set-returning function <link
1306 linkend="pg-event-trigger-ddl-command-end-functions"><function>pg_event_trigger_ddl_commands()</></>, which returns <acronym>DDL</> activity
1307 associated with event triggers (Álvaro Herrera)
1313 2014-12-08 [618c943] Simon ..: Event Trigger for table_rewrite
1316 Allow event triggers on table rewrites caused by <link
1317 linkend="SQL-ALTERTABLE"><command>ALTER TABLE</></> (Dimitri
1324 2015-02-23 [296f3a6] Alvaro..: Support more commands in event triggers
1327 Add event trigger support for database-level <link
1328 linkend="SQL-COMMENT"><command>COMMENT</></>, <link
1329 linkend="SQL-SECURITY-LABEL"><command>SECURITY LABEL</></>,
1330 and <link linkend="SQL-GRANT"><command>GRANT</></>/<link
1331 linkend="SQL-REVOKE"><command>REVOKE</></> (Álvaro Herrera)
1337 2014-12-30 [72dd233] Alvaro..: pg_event_trigger_dropped_objects: Add name/args..
1338 2015-04-06 [e9a077c] Alvaro..: pg_event_trigger_dropped_objects: add is_temp c..
1341 Add columns to the output of <link
1342 linkend="pg-event-trigger-sql-drop-functions"><function>pg_event_trigger_dropped_objects</></>
1343 (Álvaro Herrera)
1347 This allows simpler processing of delete operations.
1358 <title>Data Types</title>
1364 2014-09-09 [57b1085] Peter ..: Allow empty content in xml type
1367 Allow the <link linkend="datatype-xml"><type>XML</></> data type
1368 to accept empty or all-whitespace values (Peter Eisentraut)
1372 This is required by the <acronym>SQL</>/<acronym>XML</>
1379 2015-01-06 [79af9a1] Peter ..: Fix namespace handling in xpath function
1382 Fix <type>XML</> <link
1383 linkend="functions-xml-processing"><function>xpath()</></> handling
1384 to return namespace declarations even if the namespace is in a
1385 parent element (Ali Akbar)
1389 Previously the namespace was not returned, potentially leading to
1390 invalid <type>XML</>.
1396 2014-10-21 [6f04368] Peter ..: Allow input format xxxx-xxxx-xxxx for macaddr ..
1399 Allow <link linkend="datatype-macaddr"><type>MACADDR</></> input
1400 using the format <literal>xxxx-xxxx-xxxx</> (Herwin Weststrate)
1406 2014-10-18 [417f924] Bruce ..: interval: tighten precision specification
1407 FIXME: Add more specifics?
1410 Tighten syntax of <link
1411 linkend="datatype-interval-input"><type>INTERVAL</></> precision
1412 specifications (Bruce Momjian)
1416 Only allow interval precision to be specified after the
1417 <literal>INTERVAL</> keyword if no units are specified.
1423 2015-04-01 [89840d7] Tom Lane: Provide real selectivity estimators for inet/ci..
1426 Add selectivity estimators for <link
1427 linkend="datatype-inet"><type>INET</></>/<link
1428 linkend="datatype-cidr"><type>CIDR</></> operators and improve
1429 estimators for text search functions (Emre Hasegeli, Tom Lane)
1436 <title><link linkend="datatype-json"><acronym>JSON</></link></title>
1442 2015-05-12 [c694701] Andrew..: Additional functions and operators for jsonb
1443 2015-05-31 [37def42] Andrew..: Rename jsonb_replace to jsonb_set and allow it ..
1446 Add <type>JSONB</> functions <link
1447 linkend="functions-json-processing-table"><function>jsonb_set()</></>
1449 linkend="functions-json-processing-table"><function>jsonb_pretty()</></>
1450 (Dmitry Dolgov, Andrew Dunstan, Petr Jelínek)
1456 2014-12-12 [7e354ab] Andrew..: Add several generator functions for jsonb that ..
1459 Add several generator functions for <type>JSONB</> that already
1460 existed for <type>JSON</> (Andrew Dunstan)
1465 linkend="functions-json-creation-table"><function>to_jsonb()</></>,
1467 linkend="functions-json-creation-table"><function>jsonb_object()</></>,
1469 linkend="functions-json-creation-table"><function>jsonb_build_object()</></>,
1471 linkend="functions-json-creation-table"><function>jsonb_build_array()</></>,
1473 linkend="functions-aggregate-table"><function>jsonb_agg()</></>,
1475 linkend="functions-aggregate-table"><function>jsonb_object_agg()</></>.
1481 2015-03-03 [b67f1ce] Tom Lane: Reduce json <=> jsonb casts from explicit-only..
1484 Reduce casting requirements to/from <link
1485 linkend="datatype-json"><type>JSON</></> and <link
1486 linkend="datatype-json"><type>JSONB</></> (Tom Lane)
1492 2015-06-11 [908e234] Andrew..: Rename jsonb - text[] operator to #- to avoid a..
1495 Allow <type>TEXT</>, <type>TEXT</> array, and <type>INTEGER</>
1496 values to be <link linkend="functions-jsonb-op-table">subtracted</>
1497 from <type>JSONB</> documents (Dmitry Dolgov, Andrew Dunstan)
1503 2015-05-12 [c694701] Andrew..: Additional functions and operators for jsonb
1506 Add <type>JSONB</> <link
1507 linkend="functions-jsonb-op-table">operator</> <literal>||</>
1508 (Dmitry Dolgov, Andrew Dunstan)
1514 2014-12-12 [237a882] Andrew..: Add json_strip_nulls and jsonb_strip_nulls fun..
1518 linkend="functions-json-processing-table"><function>json_strip_nulls()</></>
1520 linkend="functions-json-processing-table"><function>jsonb_strip_nulls()</></>
1521 functions to remove <type>JSON</> null values from documents
1533 <title>Functions</title>
1539 2014-11-11 [1871c89] Fujii ..: Add generate_series(numeric, numeric).
1542 Add <link linkend="functions-srf"><function>generate_series()</></>
1543 for <type>NUMERIC</> values (Plato Malugin)
1549 2014-11-25 [bac2739] Tom Lane: Support arrays as input to array_agg() and ARRA..
1553 linkend="functions-aggregate-table"><function>array_agg()</></> and
1554 <function>ARRAY()</> to take arrays as inputs (Ali Akbar, Tom Lane)
1560 2015-03-18 [13dbc7a] Alvaro..: array_offset() and array_offsets()
1561 2015-03-30 [97690ea] Alvaro..: Change array_offset to return subscripts, not o..
1565 linkend="array-functions-table"><function>array_position()</></>
1567 linkend="array-functions-table"><function>array_positions()</></>
1568 to return subscripts of array values (Pavel Stehule)
1574 2014-12-15 [4520ba6] Heikki..: Add point <-> polygon distance operator.
1578 linkend="gist-builtin-opclasses-table"><type>point</>-to-<type>polygon</></>
1579 distance operator (<->) (Alexander Korotkov)
1585 2014-08-27 [8167a38] Jeff D..: Allow multibyte characters as escape in SIMILA..
1588 Allow multi-byte characters as escape in <link
1589 linkend="functions-similarto-regexp"><literal>SIMILAR TO</></>
1590 and <link linkend="functions-string-sql"><literal>SUBSTRING</></>
1595 Previously, only a single-byte character was allowed as an escape.
1601 2014-09-09 [e80252d] Tom Lane: Add width_bucket(anyelement, anyarray).
1605 linkend="functions-math-func-table"><function>width_bucket()</></>
1606 variant that supports any sortable data type and non-uniform bucket
1607 widths (Petr Jelínek)
1613 2015-06-28 [cb2acb1] Heikki..: Add missing_ok option to the SQL functions for..
1616 Add an optional <replaceable>missing_ok</> argument to <link
1617 linkend="functions-admin-genfile-table"><function>pg_read_file()</></>
1618 and related functions (Michael Paquier, Heikki Linnakangas)
1624 2015-03-10 [865f14a] Robert..: Allow named parameters to be specified using =>..
1627 Allow <link linkend="sql-syntax-calling-funcs"><literal>=></></>
1628 to specify named parameters in function calls (Pavel Stehule)
1632 Previously only <literal>:=</> could be used. This requires removing
1633 the possibility for <literal>=></> to be a user-defined operator.
1634 Creation of user-defined <literal>=></> operators has been issuing
1635 warnings since Postgres 9.0.
1641 2015-03-25 [06bf0dd] Tom Lane: Upgrade src/port/rint.c to be POSIX-compliant.
1644 Add <acronym>POSIX</>-compliant rounding for platforms that use
1645 Postgres-supplied rounding functions (Pedro Gimeno Fortea)
1652 <title>System Information Functions and Views</title>
1658 2014-12-23 [d7ee82e] Alvaro..: Add SQL-callable pg_get_object_address
1659 2014-12-30 [a676201] Alvaro..: Add pg_identify_object_as_address
1663 linkend="functions-info-object-table"><function>pg_get_object_address()</></>
1664 to return <type>OID</>s that uniquely
1665 identify an object, and function <link
1666 linkend="functions-info-object-table"><function>pg_identify_object_as_address()</></>
1667 to return object information based on <type>OID</>s (Álvaro
1674 2015-03-19 [bf03889] Stephe..: GetUserId() changes to has_privs_of_role()
1677 Loosen security checks for viewing queries in <link
1678 linkend="pg-stat-activity-view"><structname>pg_stat_activity</></>,
1680 linkend="functions-admin-signal-table"><function>pg_cancel_backend()</></>,
1682 linkend="functions-admin-signal-table"><function>pg_terminate_backend()</></>
1687 Now, role membership is sufficient; previously only the same
1688 role could perform these operations.
1694 2015-02-19 [2fb7a75] Tom Lane: Add pg_stat_get_snapshot_timestamp() to show s..
1698 linkend="monitoring-stats-funcs-table"><function>pg_stat_get_snapshot_timestamp()</></>
1699 to output the timestamp of the statistics snapshot (Matt Kelly)
1703 This represents the last time the snapshot files was written to
1710 2014-09-10 [36ad1a8] Bruce ..: Implement mxid_age() to compute multi-xid age
1714 linkend="vacuum-for-multixact-wraparound"><function>mxid_age()</></>
1715 to compute multi-xid age (Bruce Momjian)
1721 2015-05-09 [0c90f67] Andrew..: Add new OID alias type regrole
1722 2015-05-09 [cb9fa80] Andrew..: Add new OID alias type regnamespace
1725 Add data types <link
1726 linkend="datatype-oid-table"><type>regrole</> <type>regnamespace</></> that returns
1727 the <type>OID</> of a role (Kyotaro Horiguchi)
1735 <title>Aggregates</title>
1741 2014-08-28 [6c40f83] Tom Lane: Add min and max aggregates for inet/cidr data t..
1744 Add <function>MIN()</>/<function>MAX()</> aggregates
1745 for <link linkend="datatype-inet"><type>INET</></>/<link
1746 linkend="datatype-cidr"><type>CIDR</></> data types (Haribabu
1753 2015-03-20 [8122e14] Andres..: Add, optional, support for 128bit integers.
1754 2015-03-20 [959277a] Andres..: Use 128-bit math to accelerate some aggregation..
1757 Use 128-bit integers, where supported, as aggregate accumulators
1769 <title>Server-Side Languages</title>
1775 2014-07-03 [8b6010b] Tom Lane: Improve support for composite types in PL/Python.
1778 Improve support for composite types in <link
1779 linkend="plpython"><application>PL/Python</></> (Ed Behn, Ronan
1784 This allows <application>PL/Python</> functions to return arrays
1791 2015-03-11 [1ce7a57] Peter ..: PL/Python: Avoid lossiness in float conversion
1794 Reduce lossiness of <link
1795 linkend="plpython"><application>PL/Python</></> floating value
1796 conversions (Marko Kreen)
1802 2015-04-26 [cac7658] Peter ..: Add transforms feature
1805 Allow specification of conversion routines between <acronym>SQL</>
1806 data types and data types of procedural languages (Peter Eisentraut)
1810 This change adds new commands <link
1811 linkend="SQL-CREATETRANSFORM"><command>CREATE</></>/<link
1812 linkend="SQL-DROPTRANSFORM"><command>DROP TRANSFORM</></>.
1813 This also adds optional transformations between the <link
1814 linkend="hstore"><application>hstore</></> and <link
1815 linkend="ltree"><application>ltree</></> types to/from <link
1816 linkend="plperl"><application>PL/Perl</></> and <link
1817 linkend="plpython"><application>PL/Python</></>.
1824 <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
1830 2015-05-14 [1dc5ebc] Tom Lane: Support "expanded" objects, particularly arrays..
1831 2015-02-16 [e983c4d] Tom Lane: Rationalize the APIs of array element/slice acc..
1832 2015-02-18 [56a79a8] Tom Lane: Split array_push into separate array_append and..
1833 2015-02-16 [9e3ad1a] Tom Lane: Use fast path in plpgsql's RETURN/RETURN NEXT i..
1836 Improve <link linkend="plpgsql"><application>PL/pgSQL</></> array
1837 performance (Tom Lane)
1843 2015-03-25 [a4847fc] Tom Lane: Add an ASSERT statement in plpgsql.
1846 Add <link linkend="plpgsql-statements-assert"><command>ASSERT</></>
1847 statement in <application>PL/pgSQL</> (Pavel Stehule)
1853 2014-11-25 [bb1b8f6] Tom Lane: De-reserve most statement-introducing keywords ..
1856 Allow more <link linkend="plpgsql"><application>PL/pgSQL</></>
1857 keywords to be used as identifiers (Tom Lane)
1868 <title>Client Applications</title>
1874 2015-04-11 [83aca89] Peter ..: Move pg_archivecleanup from contrib/ to src/bin/
1875 2015-04-19 [00882d9] Peter ..: Move pg_test_fsync from contrib/ to src/bin/
1876 2015-04-20 [528c2e4] Peter ..: Move pg_test_timing from contrib/ to src/bin/
1877 2015-04-21 [b0a738f] Peter ..: Move pg_xlogdump from contrib/ to src/bin/
1881 linkend="pgarchivecleanup"><application>pg_archivecleanup</></>,
1882 <link linkend="pgtestfsync"><application>pg_test_fsync</></>,
1883 <link linkend="pgtesttiming"><application>pg_test_timing</></>,
1884 and <link linkend="pgxlogdump"><application>pg_xlogdump</></>
1885 from <filename>contrib</> to <filename>src/bin</> (Peter Eisentraut)
1891 2015-03-23 [61081e7] Heikki..: Add pg_rewind, for re-synchronizing a master se..
1894 Add <link linkend="app-pgrewind"><application>pg_rewind</></>,
1895 which allows re-synchronizing a master server after failback
1896 (Heikki Linnakangas)
1902 2014-10-06 [d9f38c7] Andres..: Add support for managing physical replication s..
1906 linkend="app-pgreceivexlog"><application>pg_receivexlog</></>
1907 to manage physical replication slots (Michael Paquier)
1911 This is controlled via new <option>--create-slot</> and
1912 <option>--drop-slot</> options.
1918 2014-11-18 [c4f99d2] Fujii ..: Add ––synchronous option to pg_receivexlog, for..
1922 linkend="app-pgreceivexlog"><application>pg_receivexlog</></>
1923 to synchronously flush <acronym>WAL</> to storage using
1924 <option>--synchronous</> (Furuya Osamu, Fujii Masao)
1928 Without this, <acronym>WAL</> files are fsynced only on close.
1934 2015-01-23 [a179232] Alvaro..: vacuumdb: enable parallel mode
1937 Allow <link linkend="APP-VACUUMDB"><application>vacuumdb</></> to
1938 vacuum in parallel using <option>--jobs</> (Dilip Kumar)
1944 2015-05-15 [458a077] Fujii ..: Support ––verbose option in reindexdb.
1947 Add <option>--verbose</> option to <link
1948 linkend="APP-REINDEXDB"><application>reindexdb</></> (Sawada
1955 2015-05-12 [72d422a] Andrew..: Map basebackup tablespaces using a tablespace_..
1958 Make <link linkend="app-pgbasebackup"><application>pg_basebackup</></>
1959 use a tablespace mapping file when using <application>tar</> format,
1960 to support symbolic links and file paths of 100+ characters in length
1961 on <systemitem class="osname">MS Windows</> (Amit Kapila)
1967 2014-09-19 [728f152] Andres..: Add rmgr callback to name xlog record types for..
1968 2014-09-19 [bdd5726] Andres..: Add the capability to display summary statistic..
1971 Add <link linkend="pgxlogdump"><application>pg_xlogdump</></> option
1972 <option>--stats</> to display summary statistics (Abhijit Menon-Sen)
1979 <title><xref linkend="APP-PSQL"></title>
1985 2015-03-31 [9d9991c] Bruce ..: psql: add asciidoc output format
1988 Allow <application>psql</> to produce AsciiDoc output (Szymon Guz)
1994 2014-07-10 [5b214c5] Fujii ..: Add new ECHO mode 'errors' that displays only ..
1997 Add <literal>errors</> mode to <application>psql</>'s
1998 <varname>ECHO</> variable to display only failed commands
2003 This can also be enabled with the <application>psql</>
2004 <option>-b</> option.
2010 2014-09-12 [a2dabf0] Stephe..: Add unicode_{column|header|border}_style to psql
2013 Allow column, header, and border control to <application>psql</>'s
2014 Unicode style (Pavel Stehule)
2018 Single or double output is supported; the default is
2025 2014-09-02 [51bb795] Andres..: Add psql PROMPT variable showing which line of ..
2028 Add <application>psql</> <link
2029 linkend="APP-PSQL-variables"><envar>PROMPT</></> variables option
2030 (<literal>%l</>) to display the multi-line statement line number
2037 2015-03-28 [7655f4c] Andrew..: Add a pager_min_lines setting to psql
2040 Add <application>psql</> setting <link
2041 linkend="APP-PSQL-meta-commands"><varname>pager_min_lines</></>
2042 to control pager invocation (Andrew Dunstan)
2048 2014-11-21 [4077fb4] Andrew..: Fix an error in psql that overcounted output l..
2051 Improve <application>psql</> line counting used when deciding
2052 to invoke the pager (Andrew Dunstan)
2058 2014-07-12 [bd40951] Andres..: Minimal psql tab completion support for SET se..
2061 Add <application>psql</> tab completion when setting the
2062 <xref linkend="guc-search-path"> variable (Jeff Janes)
2066 Currently only the first schema can be tab-completed.
2072 2014-06-23 [631e7f6] Heikki..: Improve tab-completion of DROP and ALTER ENABLE..
2075 Improve <application>psql</>'s tab completion for triggers and rules
2083 <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
2089 2014-09-10 [07c8651] Andres..: Add new psql help topics, accessible to both..
2092 Add <application>psql</> <command>\?</> help sections
2093 <literal>variables</> and <literal>options</> (Pavel Stehule)
2097 <literal>variables</> outputs <application>psql</> variables
2098 and <literal>options</> shows command-line options.
2099 <command>\? commands</> is the default output. This help
2100 information can also be output via <literal>--help=section</>.
2106 2014-07-14 [ee80f04] Alvaro..: psql: Show tablespace size in \db+
2109 Show tablespace size in <application>psql</>'s <literal>\db+</>
2110 (Fabrízio de Royes Mello)
2116 2015-04-09 [a6f3c1f] Magnus..: Show owner of types in psql \dT+
2119 Show data type owners in <application>psql</>'s <literal>\dT+</>
2126 2014-09-04 [f6f654f] Fujii ..: Allow \watch to display query execution time if..
2129 Allow <application>psql</>'s <command>\watch</> to output
2130 <command>\timing</> information (Fujii Masao)
2134 Also prevent <option>--echo-hidden</> from echoing
2135 <command>\watch</> queries.
2141 2014-11-22 [eca2b9b] Andrew..: Rework echo_hidden for \sf and \ef from commit ..
2144 Allow <application>psql</>'s <literal>\sf</> and <literal>\ef</>
2145 to honor <envar>ECHO_HIDDEN</> (Andrew Dunstan)
2151 2014-08-12 [e15c4ab] Fujii ..: Add tab-completion for \unset and valid setting..
2154 Improve <application>psql</> tab completion for <command>\set</>,
2155 <command>\unset</>, and <literal>:variable</> names (Pavel
2162 2014-11-10 [095d401] Robert..: Tab complete second argument to \c with role n..
2165 Allow tab completion of role names
2166 in <application>psql</> <literal>\c</> commands (Ian Barwick)
2177 <title><xref linkend="APP-PGDUMP"></title>
2183 2014-11-17 [be1cc8f] Simon ..: Add pg_dump ––snapshot option
2186 Allow <application>pg_dump</> to share a snapshot taken by another
2187 session using <option>--snapshot</> (Simon Riggs, Michael Paquier)
2191 The remote snapshot must have been exported by
2192 <function>pg_export_snapshot()</> or logical replication slot
2193 creation. This can be used by another <application>pg_dump</> to
2194 use a share a consistent snapshot across <application>pg_dump</>
2201 2014-07-07 [7700597] Tom Lane: In pg_dump, show server and pg_dump versions w..
2204 Always have <application>pg_dump</> print server and
2205 <application>pg_dump</> versions (Jing Wang)
2209 Previously, version information was only printed in
2210 <option>--verbose</> mode.
2216 2015-06-04 [232cd63] Fujii ..: Remove -i/-ignore-version option from pg_dump..
2219 Remove the long-ignored <option>-i</>/<option>--ignore-version</>
2220 option from <application>pg_dump</>, <application>pg_dumpall</>,
2221 and <application>pg_restore</> (Fujii Masao)
2230 <title><xref linkend="app-pg-ctl"></title>
2236 2014-08-25 [ebe30ad] Bruce ..: pg_ctl, pg_upgrade: allow multiple -o/-O opti..
2239 Allow multiple <application>pg_ctl</> <option>-o</> options to
2240 be appended (Bruce Momjian)
2246 2014-07-17 [c0e4520] Magnus..: Add option to pg_ctl to choose event source for..
2249 Allow control of <application>pg_ctl</>'s event source logging
2250 on <systemitem class="osname">MS Windows</> (MauMau)
2254 This only controls <application>pg_ctl</>, not the server, which
2255 has separate settings in <filename>postgresql.conf</>.
2264 <title><xref linkend="pgupgrade"></title>
2270 2015-04-14 [9fa8b0e] Peter ..: Move pg_upgrade from contrib/ to src/bin/
2273 Move <application>pg_upgrade</> from <filename>contrib</> to
2274 <filename>src/bin</> (Peter Eisentraut)
2278 In connection with this change, the functionality previously
2279 provided by the <application>pg_upgrade_support</> module has been
2280 moved into the core server.
2286 2014-08-25 [ebe30ad] Bruce ..: pg_ctl, pg_upgrade: allow multiple -o/-O optio..
2289 Allow multiple <application>pg_upgrade</>
2290 <option>-o</>/<option>-O</> options to be appended (Bruce Momjian)
2296 2014-10-10 [33755e8] Heikki..: Change the way encoding and locale checks are d..
2299 Improve database collation comparisons in
2300 <application>pg_upgrade</> (Heikki Linnakangas)
2306 2015-03-18 [417f78a] Bruce ..: pg_upgrade: document use of rsync for slave up..
2309 Document the use of <application>rsync</> for standby server
2310 upgrades using <application>pg_upgrade</> (Stephen Frost,
2317 2014-08-25 [2209b39] Bruce ..: pg_upgrade: remove support for 8.3 old clusters
2320 Remove support for upgrading from 8.3 clusters (Bruce Momjian)
2329 <title><xref linkend="pgbench"></title>
2335 2015-04-13 [81134af] Peter ..: Move pgbench from contrib/ to src/bin/
2338 Move pgbench from <filename>contrib</> to <filename>src/bin</>
2345 2014-10-13 [98aed6c] Heikki..: Add ––latency-limit option to pgbench.
2348 Allow counting of pgbench transactions that take over a specified
2349 amount of time (Fabien Coelho)
2353 This is controlled by new <option>--latency-limit</> option.
2359 2014-07-30 [ed802e7] Robert..: pgbench: Allow \setrandom to generate Gaussian..
2362 Allow pgbench to generate Gaussian/exponential distributions
2363 using <command>\setrandom</> (Kondo Mitsumasa, Fabien Coelho)
2369 2015-03-02 [878fdcb] Robert..: pgbench: Add a real expression syntax to \set
2370 FIXME: Improve description, link
2373 Allow <application>pgbench</>'s <command>\set</> command to handle
2374 multi-operator expressions (Robert Haas, Fabien Coelho)
2385 <title>Source Code</title>
2391 2014-11-20 [2c03216] Heikki..: Revamp the WAL record format.
2394 Simplify <link linkend="wal"><acronym>WAL</></> record format
2395 (Heikki Linnakangas)
2399 This allows external tools to more easily track what blocks
2406 2014-09-25 [b64d92f] Andres..: Add a basic atomic ops API abstracting away pla..
2409 Add atomic memory operations <acronym>API</> (Andres Freund)
2415 2014-11-07 [0b03e59] Robert..: Introduce custom path and scan providers.
2416 2014-11-20 [a34fa8e] Tom Lane: Initial code review for CustomScan patch.
2417 2014-11-21 [c2ea228] Tom Lane: Simplify API for initially hooking custom-path ..
2418 2014-11-21 [4477704] Tom Lane: Rearrange CustomScan API.
2421 Allow custom path and scan methods (KaiGai Kohei, Tom Lane)
2425 This allows extensions greater control over the optimizer and
2432 2015-05-12 [afb9249] Tom Lane: Add support for doing late row locking in FDWs.
2435 Allow foreign data wrappers to do post-filter locking (Etsuro
2442 2015-05-08 [168d580] Andres..: Add support for INSERT ... ON CONFLICT DO NOTHI..
2443 2015-05-08 [2c8f483] Andres..: Represent columns requiring insert and update p..
2446 Foreign tables can now take part in <command>INSERT ... ON CONFLICT
2447 DO NOTHING</> queries (Peter Geoghegan, Heikki Linnakangas,
2452 Foreign data wrappers must be modified to handle this.
2453 <command>INSERT ... ON CONFLICT DO UPDATE</> is not supported on
2460 2014-12-18 [4a14f13] Tom Lane: Improve hash_create's API for selecting simple-..
2463 Improve <function>hash_create()</>'s API for selecting
2464 simple-binary-key hash functions (Teodor Sigaev, Tom Lane)
2470 2015-04-30 [924bcf4] Robert..: Create an infrastructure for parallel computati..
2471 2014-10-31 [2bd9e41] Robert..: Support frontend-backend protocol communication..
2474 Improve parallel execution infrastructure (Robert Haas, Amit
2475 Kapila, Noah Misch, Rushabh Lathia, Jeevan Chalke)
2481 2014-06-28 [a6d488c] Andres..: Remove Alpha and Tru64 support.
2484 Remove <productname>Alpha</> (<acronym>CPU</>) and <systemitem
2485 class="osname">Tru64</> (OS) ports (Andres Freund)
2491 2014-07-06 [4893ccd] Robert..: Remove swpb-based spinlock implementation for A..
2494 Remove swap-byte-based spinlock implementation for
2495 <acronym>ARM</>v5 and earlier <acronym>CPU</>s (Robert Haas)
2499 <acronym>ARM</>v5's weak memory ordering made this locking
2500 implementation unsafe. Spinlock support is still possible on
2501 newer gcc implementations with atomics support.
2507 2015-02-24 [23a7835] Peter ..: Error when creating names too long for tar for..
2510 Generate an error when excessively long (100+ character) file
2511 paths are written to tar files (Peter Eisentraut)
2515 Tar does not support such overly-long paths.
2521 2015-05-19 [0b28ea7] Tom Lane: Avoid collation dependence in indexes of syste..
2524 Change index opclass for columns <link
2525 linkend="catalog-pg-seclabel"><structname>pg_seclabel</></>.<structname>provider</>
2527 linkend="catalog-pg-shseclabel"><structname>pg_shseclabel</></>.<structname>provider</>
2528 to be <literal>text_pattern_ops</> (Tom Lane)
2532 This avoids possible problems with these indexes when different
2533 databases of a cluster have different default collations.
2539 2014-09-09 [0709b7e] Robert..: Change the spinlock primitives to function as c..
2542 Change the spinlock primitives to function as compiler barriers
2550 <title>MS Windows</title>
2556 2014-12-08 [519b075] Simon ..: Use GetSystemTimeAsFileTime directly in win32
2557 2014-12-08 [8001fe6] Simon ..: Windows: use GetSystemTimePreciseAsFileTime if ..
2560 Allow higher-precision timestamp resolution on <systemitem
2561 class="osname">Windows 8</> or <systemitem class="osname">Windows
2562 Server 2012</> and later Windows systems (Craig Ringer)
2568 2015-03-18 [f9dead5] Alvaro..: Install shared libraries to bin/ in Windows un..
2571 Install shared libraries to <filename>bin</> in <systemitem
2572 class="osname">MS Windows</> (Peter Eisentraut, Michael Paquier)
2578 2015-04-16 [22d0053] Alvaro..: MSVC: install src/test/modules together with c..
2581 Install <filename>src/test/modules</> together with
2582 <filename>contrib</> on <productname>MSVC</> builds (Michael
2589 2014-07-12 [8d9a0e8] Magnus..: Support ––with-extra-version equivalent functi..
2592 Allow <link linkend="install-procedure">configure's
2593 <option>--with-extra-version</></> to be honored by the
2594 <productname>MSVC</> build (Michael Paquier)
2600 2014-07-14 [91f03ba] Noah M..: MSVC: Recognize PGFILEDESC in contrib and conv..
2603 Pass <envar>PGFILEDESC</> into <productname>MSVC</> contrib builds
2610 2014-07-14 [c4a448e] Noah M..: MSVC: Apply icons to all binaries having them ..
2613 Add icons to all <productname>MSVC</>-built binaries and version
2614 information to all <systemitem class="osname">MS Windows</>
2615 binaries (Noah Misch)
2619 MinGW already had such icons.
2625 2014-09-10 [311da16] Andres..: Add support for optional_argument to our own ge..
2628 Add optional-argument support to the internal
2629 <function>getopt_long()</> implementation (Michael Paquier,
2634 This is used by the <productname>MSVC</> build.
2645 <title>Additional Modules</title>
2651 2015-03-27 [717f709] Andrew..: Add stats for min, max, mean, stddev times to p..
2654 Add statistics for minimum, maximum,
2655 mean, and standard deviation times to <link
2656 linkend="pgstatstatements-columns"><application>pg_stat_statements</></>
2657 (Mitsumasa Kondo, Andrew Dunstan)
2663 2014-10-01 [32984d8] Heikki..: Add functions for dealing with PGP armor heade..
2666 Add <link linkend="pgcrypto"><application>pgcrypto</></> function
2667 <function>pgp_armor_headers()</> to extract <productname>PGP</>
2668 armor headers (Marko Tiikkaja, Heikki Linnakangas)
2674 2014-06-30 [97c40ce] Tom Lane: Allow empty replacement strings in contrib/unac..
2677 Allow empty replacement strings in <link
2678 linkend="unaccent"><application>unaccent</></> (Mohammad Alhashash)
2682 This is useful in languages where diacritic signs are represented
2683 as separate characters.
2689 2014-06-30 [1b24887] Tom Lane: Allow multi-character source strings in contrib..
2692 Allow multi-character source strings in <link
2693 linkend="unaccent"><application>unaccent</></> (Tom Lane)
2697 This could be useful in languages where diacritic signs are
2698 represented as separate characters. It also allows more complex
2699 unaccent dictionaries.
2705 2015-05-15 [9689290] Simon ..: TABLESAMPLE system_rows(limit)
2706 2015-05-15 [149f6f1] Simon ..: TABLESAMPLE system_time(limit)
2709 Add <filename>contrib</> modules <link
2710 linkend="tsm-system-rows"><application>tsm_system_rows</></> and
2711 <link linkend="tsm-system-time"><application>tsm_system_time</></>
2712 to allow additional table sampling methods (Petr Jelínek)
2718 2014-11-21 [3a82bc6] Heikki..: Add pageinspect functions for inspecting GIN in..
2721 Add <link linkend="GIN"><acronym>GIN</></>
2722 index inspection functions to <link
2723 linkend="pageinspect"><application>pageinspect</></> (Heikki
2724 Linnakangas, Peter Geoghegan, Michael Paquier)
2730 2014-08-22 [f577919] Andres..: Add pinning_backends column to the pg_buffercac..
2733 Add information about buffer pins to <link
2734 linkend="pgbuffercache"><application>pg_buffercache</></> display
2741 2015-05-13 [5850b20] Andres..: Add pgstattuple_approx() to the pgstattuple ext..
2744 Allow <link linkend="pgstattuple"><application>pgstattuple</></>
2745 to report approximate answers with less overhead using
2746 <function>pgstattuple_approx()</> (Abhijit Menon-Sen)
2752 2014-11-29 [22dfd11] Alvaro..: Move test modules from contrib to src/test/modu..
2753 2014-12-01 [df761e3] Alvaro..: Move security_label test
2756 Move <application>dummy_seclabel</>, <application>test_shm_mq</>,
2757 <application>test_parser</>, and <application>worker_spi</>
2758 from <filename>contrib</> to <filename>src/test/modules</>
2759 (Álvaro Herrera)
2763 These modules are only meant for server testing, so they do not need
2764 to be built or installed when packaging <productname>PostgreSQL</>.