Commit fd5a2db7 authored by Bruce Momjian's avatar Bruce Momjian

docs: my second pass over the 9.6 release notes

parent ff2fd6b0
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
<listitem> <listitem>
<para> <para>
Allow Full-text search for phrases (multiple adjacent words) Allow full-text search for phrases (multiple adjacent words)
</para> </para>
</listitem> </listitem>
...@@ -380,8 +380,8 @@ This commit is also listed under libpq and psql ...@@ -380,8 +380,8 @@ This commit is also listed under libpq and psql
2015-09-16 [7aea8e4f2] Determine whether it's safe to attempt a parallel plan f 2015-09-16 [7aea8e4f2] Determine whether it's safe to attempt a parallel plan f
--> -->
<para> <para>
Provide infrastructure for marking functions as parallel-safe or Provide infrastructure for marking the parallel-safe status of
not (Robert Haas, Amit Kapila) functions (Robert Haas, Amit Kapila)
</para> </para>
</listitem> </listitem>
...@@ -412,9 +412,13 @@ This commit is also listed under libpq and psql ...@@ -412,9 +412,13 @@ This commit is also listed under libpq and psql
--> -->
<para> <para>
Add pages deleted from a GIN index's pending list to the free space Add pages deleted from a GIN index's pending list to the free space
map immediately, to reduce bloat if the table is not vacuumed often map immediately
(Jeff Janes, Teodor Sigaev) (Jeff Janes, Teodor Sigaev)
</para> </para>
<para>
This reduces bloat if the table is not vacuumed often.
</para>
</listitem> </listitem>
<listitem> <listitem>
...@@ -494,7 +498,7 @@ This commit is also listed under libpq and psql ...@@ -494,7 +498,7 @@ This commit is also listed under libpq and psql
<para> <para>
If necessary, vacuum can be forced to process all-frozen If necessary, vacuum can be forced to process all-frozen
pages using the new <literal>DISABLE_PAGE_SKIPPING</> option. pages using the new <literal>DISABLE_PAGE_SKIPPING</> option.
This should never be needed normally, but it might help in Normally, this should never be needed but it might help in
recovering from visibility-map corruption. recovering from visibility-map corruption.
</para> </para>
</listitem> </listitem>
...@@ -527,7 +531,7 @@ This commit is also listed under libpq and psql ...@@ -527,7 +531,7 @@ This commit is also listed under libpq and psql
<para> <para>
This change avoids substantial replication delays that sometimes This change avoids substantial replication delays that sometimes
occurred while replaying such operations. occurre while replaying such operations.
</para> </para>
</listitem> </listitem>
...@@ -543,7 +547,7 @@ This commit is also listed under libpq and psql ...@@ -543,7 +547,7 @@ This commit is also listed under libpq and psql
<para> <para>
If a <literal>GROUP BY</> clause includes all columns of a If a <literal>GROUP BY</> clause includes all columns of a
non-deferred primary key, as well as other columns of the same non-deferred primary key, as well as other columns of the same
relation, those other columns are redundant and can be dropped table, those other columns are redundant and can be dropped
from the grouping. This saves computation in many common cases. from the grouping. This saves computation in many common cases.
</para> </para>
</listitem> </listitem>
...@@ -598,11 +602,11 @@ This commit is also listed under libpq and psql ...@@ -598,11 +602,11 @@ This commit is also listed under libpq and psql
<para> <para>
On Linux, <function>sync_file_range()</> is used for this purpose, On Linux, <function>sync_file_range()</> is used for this purpose,
and the feature is on by default because that function has few and the feature is on by default on Linux because that function has few
downsides. The feature is also available on other platforms downsides. This sync capability is also available on other platforms
that have <function>msync()</> or <function>posix_fadvise()</>, that have <function>msync()</> or <function>posix_fadvise()</>,
but those interfaces have some undesirable side-effects so the but those interfaces have some undesirable side-effects so the
feature is not enabled by default on other platforms. feature is disabled by default on non-Linux platforms.
</para> </para>
<para> <para>
...@@ -672,9 +676,11 @@ This commit is also listed under libpq and psql ...@@ -672,9 +676,11 @@ This commit is also listed under libpq and psql
</para> </para>
<para> <para>
For example, <command>CREATE INDEX tidx_partial ON t(b) WHERE a > For example, <command>CREATE INDEX tidx_partial ON t(b) WHERE a
0</> could not previously be used for an index-only scan because &gt; 0</> could not previously be used for an index-only scan by a
<literal>a</> is not an indexed value like <literal>b</> is. query that only referenced <literal>a</> in its <literal>WHERE</>
clause because <literal>a</> is not an indexed value like
<literal>b</> is.
</para> </para>
</listitem> </listitem>
...@@ -695,11 +701,11 @@ This commit is also listed under libpq and psql ...@@ -695,11 +701,11 @@ This commit is also listed under libpq and psql
<literal>(a,b) REFERENCES r (x,y)</>, then a <literal>WHERE</> <literal>(a,b) REFERENCES r (x,y)</>, then a <literal>WHERE</>
condition such as <literal>t.a = r.x AND t.b = r.y</> cannot condition such as <literal>t.a = r.x AND t.b = r.y</> cannot
select more than one <literal>r</> row per <literal>t</> row. select more than one <literal>r</> row per <literal>t</> row.
The planner formerly considered the <literal>AND</>'ed conditions The planner formerly considered <literal>AND</> conditions
to be independent and would often drastically misestimate the to be independent and would often drastically misestimate
selectivity as a result. Now it compares the <literal>WHERE</> selectivity as a result. Now it compares the <literal>WHERE</>
conditions to applicable foreign key constraints and produces a conditions to applicable foreign key constraints and produces
better estimate. better estimates.
</para> </para>
</listitem> </listitem>
...@@ -783,9 +789,9 @@ This commit is also listed under libpq and psql ...@@ -783,9 +789,9 @@ This commit is also listed under libpq and psql
2016-02-06 [aa2387e2f] Improve speed of timestamp/time/date output functions. 2016-02-06 [aa2387e2f] Improve speed of timestamp/time/date output functions.
--> -->
<para> <para>
Improve speed of the output functions for <type>timestamp</> with Improve speed of the output functions for <type>timestamp</>,
and without timezone, <type>time</>, and <type>date</> data types <type>time</>, and <type>date</> data types (David Rowley,
(David Rowley, Andres Freund) Andres Freund)
</para> </para>
</listitem> </listitem>
...@@ -812,9 +818,9 @@ This commit is also listed under libpq and psql ...@@ -812,9 +818,9 @@ This commit is also listed under libpq and psql
</para> </para>
<para> <para>
Previously it tended to underestimate the number of Previously <command>ANALYZE</> tended to underestimate the number
non-<literal>NULL</> distinct values in a column with many of non-<literal>NULL</> distinct values in a column with many
<literal>NULL</>s, and it also was inaccurate in computing the <literal>NULL</>s, and was also inaccurate in computing the
most-common values. most-common values.
</para> </para>
</listitem> </listitem>
...@@ -850,7 +856,8 @@ This commit is also listed under libpq and psql ...@@ -850,7 +856,8 @@ This commit is also listed under libpq and psql
--> -->
<para> <para>
Improve sorting performance by using quicksort, not replacement Improve sorting performance by using quicksort, not replacement
selection when performing external sort steps (Peter Geoghegan) selection sort, when performing external sort steps (Peter
Geoghegan)
</para> </para>
<para> <para>
...@@ -879,16 +886,17 @@ This commit is also listed under libpq and psql ...@@ -879,16 +886,17 @@ This commit is also listed under libpq and psql
2016-02-17 [f1f5ec1ef] Reuse abbreviated keys in ordered [set] aggregates. 2016-02-17 [f1f5ec1ef] Reuse abbreviated keys in ordered [set] aggregates.
--> -->
<para> <para>
Speed up the sorting of <type>uuid</>, <type>bytea</>, and Speed up sorting of <type>uuid</>, <type>bytea</>, and
<type>char(n)</> fields by using <quote>abbreviated</> keys <type>char(n)</> fields by using <quote>abbreviated</> keys
(Peter Geoghegan) (Peter Geoghegan)
</para> </para>
<para> <para>
Support for abbreviated keys has also Support for abbreviated keys has also been
been added to the non-default operator classes added to the non-default operator classes <link
<literal>text_pattern_ops</>, <literal>varchar_pattern_ops</>, linkend="indexes-opclass"><literal>text_pattern_ops</></>,
and <literal>bpchar_pattern_ops</>. Processing of ordered-set <literal>varchar_pattern_ops</>, and
<literal>bpchar_pattern_ops</>. Processing of ordered-set
aggregates can also now exploit abbreviated keys. aggregates can also now exploit abbreviated keys.
</para> </para>
</listitem> </listitem>
...@@ -899,7 +907,7 @@ This commit is also listed under libpq and psql ...@@ -899,7 +907,7 @@ This commit is also listed under libpq and psql
--> -->
<para> <para>
Speed up <command>CREATE INDEX CONCURRENTLY</> by treating Speed up <command>CREATE INDEX CONCURRENTLY</> by treating
<acronym>TID</>s as 64-bit integers during the sort phase (Peter <acronym>TID</>s as 64-bit integers during sorting (Peter
Geoghegan) Geoghegan)
</para> </para>
</listitem> </listitem>
...@@ -1064,11 +1072,11 @@ This commit is also listed under libpq and psql ...@@ -1064,11 +1072,11 @@ This commit is also listed under libpq and psql
This function returns an array of the process IDs of any This function returns an array of the process IDs of any
sessions that are blocking the session with the given process ID. sessions that are blocking the session with the given process ID.
Historically users have obtained such information using a self-join Historically users have obtained such information using a self-join
on the <structname>pg_locks</> view; but it is unreasonably tedious on the <structname>pg_locks</> view. However, it is unreasonably
to do it that way with any modicum of correctness, and the addition tedious to do it that way with any modicum of correctness, and
of parallel queries has made the approach entirely impractical, the addition of parallel queries has made the approach entirely
since locks might be held or awaited by child worker processes impractical, since locks might be held or awaited by child worker
rather than the session's main process. processes rather than the session's main process.
</para> </para>
</listitem> </listitem>
...@@ -1118,9 +1126,9 @@ This commit is also listed under libpq and psql ...@@ -1118,9 +1126,9 @@ This commit is also listed under libpq and psql
</para> </para>
<para> <para>
The memory usage dump printed to the postmaster log during an The memory usage dump output to the postmaster log during an
out-of-memory failure now summarizes statistics when there are a out-of-memory failure now summarizes statistics when there are a
large number of memory contexts, rather than possibly printing large number of memory contexts, rather than possibly generating
a very large report. There is also a <quote>grand total</> a very large report. There is also a <quote>grand total</>
summary line now. summary line now.
</para> </para>
...@@ -1214,7 +1222,7 @@ This commit is also listed under libpq and psql ...@@ -1214,7 +1222,7 @@ This commit is also listed under libpq and psql
2016-02-02 [7d17e683f] Add support for systemd service notifications 2016-02-02 [7d17e683f] Add support for systemd service notifications
--> -->
<para> <para>
Add <option>--with-systemd</> configure option to enable Add configure option <option>--with-systemd</> to enable
calling <function>sd_notify()</> at server start and stop (Peter calling <function>sd_notify()</> at server start and stop (Peter
Eisentraut) Eisentraut)
</para> </para>
...@@ -1231,9 +1239,9 @@ This commit is also listed under libpq and psql ...@@ -1231,9 +1239,9 @@ This commit is also listed under libpq and psql
2015-09-08 [1aba62ec6] Allow per-tablespace effective_io_concurrency 2015-09-08 [1aba62ec6] Allow per-tablespace effective_io_concurrency
--> -->
<para> <para>
Allow <varname>effective_io_concurrency</> to be set as a Allow <varname>effective_io_concurrency</> to be set per-tablespace
tablespace parameter to support cases where different tablespaces to support cases where different tablespaces have different I/O
have different I/O characteristics (Julien Rouhaud) characteristics (Julien Rouhaud)
</para> </para>
</listitem> </listitem>
...@@ -1307,14 +1315,14 @@ This commit is also listed under libpq and psql ...@@ -1307,14 +1315,14 @@ This commit is also listed under libpq and psql
</para> </para>
<para> <para>
Formerly, we insisted on the key file being owned by the Formerly, we insisted the key file be owned by the
user running the <productname>PostgreSQL</> server, but user running the <productname>PostgreSQL</> server, but
that is inconvenient for some systems (such as <systemitem that is inconvenient on some systems (such as <systemitem
class="osname">Debian</>) that are configured to manage class="osname">Debian</>) that are configured to manage
certificates centrally. Therefore, allow the case where the key certificates centrally. Therefore, allow the case where the key
file is owned by <literal>root</> and has group read access. file is owned by <literal>root</> and has group read access.
It is up to the root admin to ensure that the group does not It is up to the operating system administrator to ensure that
include any untrusted users. the group does not include any untrusted users.
</para> </para>
</listitem> </listitem>
...@@ -1340,7 +1348,7 @@ This commit is also listed under libpq and psql ...@@ -1340,7 +1348,7 @@ This commit is also listed under libpq and psql
Under normal circumstances the postmaster should always outlive Under normal circumstances the postmaster should always outlive
its child processes. If for some reason the postmaster dies, its child processes. If for some reason the postmaster dies,
force backend sessions to exit with an error. Formerly, existing force backend sessions to exit with an error. Formerly, existing
backends would continue to run until their client disconnects, backends would continue to run until their clients disconnect,
but that is unsafe and inefficient. It also prevents a new but that is unsafe and inefficient. It also prevents a new
postmaster from being started until the last old backend has postmaster from being started until the last old backend has
exited. Backends will detect postmaster death when waiting for exited. Backends will detect postmaster death when waiting for
...@@ -1422,9 +1430,9 @@ XXX this is pending backpatch, may need to remove ...@@ -1422,9 +1430,9 @@ XXX this is pending backpatch, may need to remove
2016-04-30 [17d5db352] Remove warning about num_sync being too large in synchro 2016-04-30 [17d5db352] Remove warning about num_sync being too large in synchro
--> -->
<para> <para>
Support synchronous replication using multiple synchronous Allow synchronous replication to support multiple simultaneous
standby servers, not just one (Masahiko Sawada, Beena Emerson, synchronous standby servers, not just one (Masahiko Sawada,
Michael Paquier, Fujii Masao, Kyotaro Horiguchi) Beena Emerson, Michael Paquier, Fujii Masao, Kyotaro Horiguchi)
</para> </para>
<para> <para>
...@@ -1459,15 +1467,16 @@ XXX this is pending backpatch, may need to remove ...@@ -1459,15 +1467,16 @@ XXX this is pending backpatch, may need to remove
--> -->
<para> <para>
Add a feature to the replication Add a feature to the replication
protocol, and a corresponding option to the <link protocol, and a corresponding option to <link
linkend="functions-replication-table"><function>pg_create_physical_replication_slot()</></> linkend="functions-replication-table"><function>pg_create_physical_replication_slot()</></>,
function, to allow reserving <acronym>WAL</> immediately when to allow reserving <acronym>WAL</> immediately when creating a
creating a replication slot (Gurjeet Singh, Michael Paquier) replication slot (Gurjeet Singh, Michael Paquier)
</para> </para>
<para> <para>
This allows creation of a replication slot to guarantee that all This allows the creation of a replication slot to guarantee
the <acronym>WAL</> for a base backup will be available afterwards. that all the <acronym>WAL</> needed for a base backup will be
available.
</para> </para>
</listitem> </listitem>
...@@ -1552,7 +1561,8 @@ XXX this is pending backpatch, may need to remove ...@@ -1552,7 +1561,8 @@ XXX this is pending backpatch, may need to remove
2016-03-14 [74a379b98] Use repalloc_huge() to enlarge a SPITupleTable's tuple p 2016-03-14 [74a379b98] Use repalloc_huge() to enlarge a SPITupleTable's tuple p
--> -->
<para> <para>
Widen tuples-processed counters to 64 bits (Andreas Scherbaum) Widen counters recording the number of tuples processed to 64 bits
(Andreas Scherbaum)
</para> </para>
<para> <para>
...@@ -1738,7 +1748,7 @@ XXX this is pending backpatch, may need to remove ...@@ -1738,7 +1748,7 @@ XXX this is pending backpatch, may need to remove
</para> </para>
<para> <para>
This possible because the table has no existing rows. This matches This is possible because the table has no existing rows. This matches
the longstanding behavior of <literal>FOREIGN KEY</> constraints. the longstanding behavior of <literal>FOREIGN KEY</> constraints.
</para> </para>
</listitem> </listitem>
...@@ -1820,8 +1830,8 @@ XXX this is pending backpatch, may need to remove ...@@ -1820,8 +1830,8 @@ XXX this is pending backpatch, may need to remove
are now gone in favor of making <application>initdb</> revoke the are now gone in favor of making <application>initdb</> revoke the
default public <literal>EXECUTE</> privilege on these functions. default public <literal>EXECUTE</> privilege on these functions.
This allows installations to choose to grant usage of such This allows installations to choose to grant usage of such
functions to trusted roles that need not have full superuser functions to trusted roles that do not need all superuser
privilege. privileges.
</para> </para>
</listitem> </listitem>
...@@ -1893,9 +1903,9 @@ XXX this is pending backpatch, may need to remove ...@@ -1893,9 +1903,9 @@ XXX this is pending backpatch, may need to remove
2016-03-30 [50861cd68] Improve portability of I/O behavior for the geometric ty 2016-03-30 [50861cd68] Improve portability of I/O behavior for the geometric ty
--> -->
<para> <para>
In the geometric data types, make sure that <literal>infinity</> For geometric data types, make sure <literal>infinity</> and
and <literal>NaN</> component values are treated consistently <literal>NaN</> component values are treated consistently during
during input and output (Tom Lane) input and output (Tom Lane)
</para> </para>
<para> <para>
...@@ -1979,9 +1989,10 @@ XXX this is pending backpatch, may need to remove ...@@ -1979,9 +1989,10 @@ XXX this is pending backpatch, may need to remove
2015-11-07 [c5e86ea93] Add "xid <> xid" and "xid <> int4" operators. 2015-11-07 [c5e86ea93] Add "xid <> xid" and "xid <> int4" operators.
--> -->
<para> <para>
Add <type>xid</> <literal>&lt;&gt;</> <type>xid</> and <type>xid</> Add transaction id operators <type>xid</> <literal>&lt;&gt;</>
<literal>&lt;&gt;</> <type>int4</> operators, for consistency <type>xid</> and <type>xid</> <literal>&lt;&gt;</> <type>int4</>,
with the corresponding <literal>=</> operators (Michael Paquier) for consistency with the corresponding equality operators
(Michael Paquier)
</para> </para>
</listitem> </listitem>
...@@ -2060,8 +2071,8 @@ XXX this is pending backpatch, may need to remove ...@@ -2060,8 +2071,8 @@ XXX this is pending backpatch, may need to remove
<para> <para>
The <acronym>POSIX</> standard says that these functions should The <acronym>POSIX</> standard says that these functions should
return <literal>NaN</> for NaN input, and should throw an error for return <literal>NaN</> for NaN input, and should throw an error for
out-of-range inputs including <literal>infinity</>; but previously, out-of-range inputs including <literal>infinity</>. Previously our
our actual behavior varied across platforms. behavior varied across platforms.
</para> </para>
</listitem> </listitem>
...@@ -2090,7 +2101,7 @@ XXX this is pending backpatch, may need to remove ...@@ -2090,7 +2101,7 @@ XXX this is pending backpatch, may need to remove
</para> </para>
<para> <para>
These are <link The new functions are <link
linkend="textsearch-functions-table"><function>ts_delete()</></>, linkend="textsearch-functions-table"><function>ts_delete()</></>,
<function>ts_filter()</>, <function>unnest()</>, <function>ts_filter()</>, <function>unnest()</>,
<function>tsvector_to_array()</>, <function>array_to_tsvector()</>, <function>tsvector_to_array()</>, <function>array_to_tsvector()</>,
...@@ -2188,7 +2199,7 @@ XXX this is pending backpatch, may need to remove ...@@ -2188,7 +2199,7 @@ XXX this is pending backpatch, may need to remove
<para> <para>
This function converts strings like those produced by This function converts strings like those produced by
<function>pg_size_pretty()</> into sizes in bytes. An example <function>pg_size_pretty()</> into bytes. An example
usage is <literal>SELECT oid::regclass FROM pg_class WHERE usage is <literal>SELECT oid::regclass FROM pg_class WHERE
pg_total_relation_size(oid) &gt; pg_size_bytes('10 GB')</>. pg_total_relation_size(oid) &gt; pg_size_bytes('10 GB')</>.
</para> </para>
...@@ -2222,8 +2233,8 @@ XXX this is pending backpatch, may need to remove ...@@ -2222,8 +2233,8 @@ XXX this is pending backpatch, may need to remove
</para> </para>
<para> <para>
This allows avoiding an error for an unrecognized parameter name; This allows avoiding an error for an unrecognized parameter
instead the result is <literal>NULL</>. name, and instead return a <literal>NULL</>.
</para> </para>
</listitem> </listitem>
...@@ -2479,7 +2490,7 @@ This commit is also listed under psql and PL/pgSQL ...@@ -2479,7 +2490,7 @@ This commit is also listed under psql and PL/pgSQL
2016-05-06 [e1b120a8c] Only issue LOCK TABLE commands when necessary 2016-05-06 [e1b120a8c] Only issue LOCK TABLE commands when necessary
--> -->
<para> <para>
In <application>pg_dump</>, dump locally-made changes in privilege In <application>pg_dump</>, dump locally-made changes of privilege
assignments for system objects (Stephen Frost) assignments for system objects (Stephen Frost)
</para> </para>
...@@ -2706,11 +2717,10 @@ This commit is also listed under libpq and PL/pgSQL ...@@ -2706,11 +2717,10 @@ This commit is also listed under libpq and PL/pgSQL
</para> </para>
<para> <para>
This change allows SQL commands in scripts to span multiple This change allows SQL commands in scripts to span multiple lines.
lines. Existing custom scripts will need to be modified to add a Existing custom scripts will need to be modified to add a semicolon
semicolon at the end of each line that does not have one already. at the end of each line if missing. (Doing so does not break
(Doing so does not break the script for use with older versions the script for use with older versions of <application>pgbench</>.)
of <application>pgbench</>.)
</para> </para>
</listitem> </listitem>
...@@ -3022,7 +3032,7 @@ This commit is also listed under libpq and PL/pgSQL ...@@ -3022,7 +3032,7 @@ This commit is also listed under libpq and PL/pgSQL
This infrastructure allows <application>pg_dump</> to dump changes This infrastructure allows <application>pg_dump</> to dump changes
that an installation may have made in privileges attached to that an installation may have made in privileges attached to
system objects. Formerly, such changes would be lost in a dump system objects. Formerly, such changes would be lost in a dump
and reload, but now they can be preserved. and reload, but now they are preserved.
</para> </para>
</listitem> </listitem>
...@@ -3130,7 +3140,7 @@ This commit is also listed under libpq and PL/pgSQL ...@@ -3130,7 +3140,7 @@ This commit is also listed under libpq and PL/pgSQL
--> -->
<para> <para>
Separate out <application>psql</>'s <application>flex</> lexer to Separate out <application>psql</>'s <application>flex</> lexer to
make it usable by other client programs too (Tom Lane, Kyotaro make it usable by other client programs (Tom Lane, Kyotaro
Horiguchi) Horiguchi)
</para> </para>
...@@ -3173,7 +3183,7 @@ This commit is also listed under libpq and PL/pgSQL ...@@ -3173,7 +3183,7 @@ This commit is also listed under libpq and PL/pgSQL
<para> <para>
This change allows extensions to write <acronym>WAL</> records for This change allows extensions to write <acronym>WAL</> records for
changes to pages with standard layout. The problem of needing to changes to pages using a standard layout. The problem of needing to
replay <acronym>WAL</> without access to the extension is solved by replay <acronym>WAL</> without access to the extension is solved by
having generic replay code. This allows extensions to implement, having generic replay code. This allows extensions to implement,
for example, index access methods and have <acronym>WAL</> for example, index access methods and have <acronym>WAL</>
...@@ -3286,7 +3296,7 @@ This commit is also listed under libpq and PL/pgSQL ...@@ -3286,7 +3296,7 @@ This commit is also listed under libpq and PL/pgSQL
<para> <para>
This is primarily a proof-of-concept for non-core index access This is primarily a proof-of-concept for non-core index access
methods, but it could be useful in its own right for queries that methods, but it could be useful in its own right for queries that
involve searches on many columns. search many columns.
</para> </para>
</listitem> </listitem>
...@@ -3329,7 +3339,7 @@ This commit is also listed under libpq and PL/pgSQL ...@@ -3329,7 +3339,7 @@ This commit is also listed under libpq and PL/pgSQL
--> -->
<para> <para>
Add selectivity estimation functions for Add selectivity estimation functions for
<filename>contrib/intarray</> operators, to improve plans for <filename>contrib/intarray</> operators to improve plans for
queries using those operators (Yury Zhuravlev, Alexander Korotkov) queries using those operators (Yury Zhuravlev, Alexander Korotkov)
</para> </para>
</listitem> </listitem>
...@@ -3340,7 +3350,7 @@ This commit is also listed under libpq and PL/pgSQL ...@@ -3340,7 +3350,7 @@ This commit is also listed under libpq and PL/pgSQL
--> -->
<para> <para>
Make <link Make <link
linkend="pageinspect"><filename>contrib/pageinspect</>'s</> linkend="pageinspect"><filename>contrib/pageinspect</></>'s
<function>heap_page_items()</> function show the raw data in each <function>heap_page_items()</> function show the raw data in each
tuple, and add new functions <function>tuple_data_split()</> and tuple, and add new functions <function>tuple_data_split()</> and
<function>heap_page_item_attrs()</> for inspection of individual <function>heap_page_item_attrs()</> for inspection of individual
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment