== PostgreSQL Weekly News - June 24 2018 ==

From: David Fetter <david(at)fetter(dot)org>
To: PostgreSQL Announce <pgsql-announce(at)postgresql(dot)org>
Subject: == PostgreSQL Weekly News - June 24 2018 ==
Date: 2018-06-24 22:15:21
Message-ID: 20180624221521.GA7755@fetter.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-announce

== PostgreSQL Weekly News - June 24 2018 ==

== PostgreSQL Product News ==

psycopg2 2.7.5, a Python connector for PostgreSQL, released.
http://initd.org/psycopg/articles/2018/06/17/psycopg-275-released/

== PostgreSQL Jobs for June ==

http://archives.postgresql.org/pgsql-jobs/2018-06/

== PostgreSQL Local ==

PGDay.IT 2018 will take place in Lazise on Lake Garda on June 29, 2018.
https://2018.pgday.it/en/

Swiss PGDay 2018 will take place in Rapperswil (near Zurich) on June 29, 2018.
Registration is open through June 28, 2018.
http://www.pgday.ch/2018/

PGConf.Brazil 2018 will take place in São Paulo, Brazil on August 3-4 2018.
http://pgconf.com.br

PG Day France 2018 will take place in Marseille on June 26, 2018.
http://pgday.fr/

pgConf UK 2018 will be held on July 3, 2018 in London.
http://www.pgconf.uk/

The Portland PostgreSQL Users Group will be holding a PGDay on September 10,
2018 in Portland, OR. The CfP is open at https://goo.gl/forms/E0CiUQGSZGMYwh922
https://pdx.postgresql.us/pdxpgday2018

PgConf Silicon Valley 2018 will be held in San Francisco on September 5-7, 2018.
https://2018.postgresopen.org/

PostgresConf South Africa 2018 will take place in Johannesburg on October 9, 2018
The Call for Papers is open through June 30, 2018.
https://postgresconf.org/conferences/SouthAfrica2018

PostgreSQL Conference Europe 2018 will be held on October 23-26, 2018 at the
Lisbon Marriott Hotel in Lisbon, Portugal. The CfP is open through August 6,
2018 midnight CET at https://2018.pgconf.eu/callforpapers
https://2017.pgconf.eu/

2Q PGConf will be on December 4-5, 2018 in Chicago, IL. The CfP is open through
August 27, 2018 at midnight Pacific Time at http://www.2qpgconf.com/#cfp
http://www.2qpgconf.com/

PGConf.ASIA 2018 will take place on December 10-12, 2018 in Akihabara, Tokyo,
Japan. The CfP is open until midnight, July 31, 2018, Japan time at
pgconf-asia-2018-submission(at)pgconf(dot)asia
http://www.pgconf.asia/EN/2018/

== PostgreSQL in the News ==

Planet PostgreSQL: http://planet.postgresql.org/

PostgreSQL Weekly News is brought to you this week by David Fetter

Submit news and announcements by Sunday at 3:00pm PST8PDT.

== Applied Patches ==

Michaël Paquier pushed:

- Prevent hard failures of standbys caused by recycled WAL segments. When a
standby's WAL receiver stops reading WAL from a WAL stream, it writes data to
the current WAL segment without having priorily zero'ed the page currently
written to, which can cause the WAL reader to read junk data from a past
recycled segment and then it would try to get a record from it. While sanity
checks in place provide most of the protection needed, in some rare
circumstances, with chances increasing when a record header crosses a page
boundary, then the startup process could fail violently on an allocation
failure, as follows: FATAL: invalid memory alloc request size XXX This is
confusing for the user and also unhelpful as this requires in the worst case a
manual restart of the instance, impacting potentially the availability of the
cluster, and this also makes WAL data look like it is in a corrupted state.
The chances of seeing failures are higher if the connection between the
standby and its root node is unstable, causing WAL pages to be written in the
middle. A couple of approaches have been discussed, like zero-ing new WAL
pages within the WAL receiver itself but this has the disadvantage of
impacting performance of any existing instances as this breaks the sequential
writes done by the WAL receiver. This commit deals with the problem with a
more simple approach, which has no performance impact without reducing the
detection of the problem: if a record is found with a length higher than 1GB
for backends, then do not try any allocation and report a soft failure which
will force the standby to retry reading WAL. It could be possible that the
allocation call passes and that an unnecessary amount of memory is allocated,
however follow-up checks on records would just fail, making this allocation
short-lived anyway. This patch owes a great deal to Tsunakawa Takayuki for
reporting the failure first, and then discussing a couple of potential
approaches to the problem. Backpatch down to 9.5, which is where
palloc_extended has been introduced. Reported-by: Tsunakawa Takayuki
Reviewed-by: Tsunakawa Takayuki Author: Michael Paquier Discussion:
https://postgr.es/m/0A3221C70F24FB45833433255569204D1F8B57AD@G01JPEXMBYT05
https://git.postgresql.org/pg/commitdiff/70b4f82a4b5cab5fc12ff876235835053e407155

- Track new configure flags introduced for version 11 in pg_config.h.win32. The
following set of flags mainly matter when building Postgres code with MSVC and
those have been forgotten with latest developments: - HAVE_LDAP_INITIALIZE,
added by 35c0754f, and marked as disabled. ldap_initialize() is a
non-standard extension that provides a way to use "ldaps" with OpenLDAP, but
it is not supported on Windows, and instead the non-standard ldap_sslinit() is
used if WIN32 is defined. Per input from Thomas Munro. -
HAVE_X509_GET_SIGNATURE_NID, added by 054e8c6c, which is used by SCRAM's
channel binding tls-server-end-point. Having this flag disabled would cause
this channel binding type to be unsupported for Windows builds. -
HAVE_SSL_CLEAR_OPTIONS, added recently as of a364dfa4 to disable SSL
compression. - HAVE_ASN1_STRING_GET0_DATA, added by 5c6df67, which is used to
track a new compatibility with OpenSSL 1.1.0. This was missing from
pg_config.win32.h and is not enabled by default. HAVE_BIO_GET_DATA,
HAVE_OPENSSL_INIT_SSL and HAVE_BIO_METH_NEW gain the same treatment. The
second and third flags are enabled with this commit, which raises the bar of
OpenSSL support to 1.0.2 on Windows as a minimum. As this is the LTS
(long-time support) version of OpenSSL community and knowing that all recent
installers referred by OpenSSL upstream don't have anymore 1.0.1 or older, we
could live with that requirement. In order to allow the code to compile with
OpenSSL 1.1.0, all the flags mentioned above need to be enabled in
pg_config.h.win32. Author: Michael Paquier Reviewed-by: Andrew Dunstan
Discussion: https://postgr.es/m/20180529211559.GF6632@paquier.xyz
https://git.postgresql.org/pg/commitdiff/bde64eb6107622e8438dd61b93afd4d1adf178b3

- Clarify use of temporary tables within partition trees. Since their
introduction, partition trees have been a bit lossy regarding temporary
relations. Inheritance trees respect the following patterns: 1) a child
relation can be temporary if the parent is permanent. 2) a child relation can
be temporary if the parent is temporary. 3) a child relation cannot be
permanent if the parent is temporary. 4) The use of temporary relations also
imply that when both parent and child need to be from the same sessions.
Partitions share many similar patterns with inheritance, however the handling
of the partition bounds make the situation a bit tricky for case 1) as the
partition code bases a lot of its lookup code upon PartitionDesc which does
not really look after relpersistence. This causes for example a temporary
partition created by session A to be visible by another session B, preventing
this session B to create an extra partition which overlaps with the temporary
one created by A with a non-intuitive error message. There could be use-cases
where mixing permanent partitioned tables with temporary partitions make
sense, but that would be a new feature. Partitions respect 2), 3) and 4)
already. It is a bit depressing to see those error checks happening in
MergeAttributes() whose purpose is different, but that's left as future
refactoring work. Back-patch down to 10, which is where partitioning has been
introduced, except that default partitions do not apply there. Documentation
also includes limitations related to the use of temporary tables with
partition trees. Reported-by: David Rowley Author: Amit Langote, Michael
Paquier Reviewed-by: Ashutosh Bapat, Amit Langote, Michael Paquier Discussion:
https://postgr.es/m/CAKJS1f94Ojk0og9GMkRHGt8wHTW=ijq5KzJKuoBoqWLwSVwGmw@mail.gmail.com
https://git.postgresql.org/pg/commitdiff/1c7c317cd9d1e5647454deed11b55dae764c83bf

- Fix typo in comment of commit_ts.c for incorrect reference to CLOG. Author:
Shao Bret
https://git.postgresql.org/pg/commitdiff/0aa5e65ab4fd2695f0e4108b9ec53a0546261e1f

Thomas Munro pushed:

- Add PGTYPESchar_free() to avoid cross-module problems on Windows. On Windows,
it is sometimes important for corresponding malloc() and free() calls to be
made from the same DLL, since some build options can result in multiple
allocators being active at the same time. For that reason we already provided
PQfreemem(). This commit adds a similar function for freeing string results
allocated by the pgtypes library. Author: Takayuki Tsunakawa Reviewed-by:
Kyotaro Horiguchi Discussion:
https://postgr.es/m/0A3221C70F24FB45833433255569204D1F8AD5D6%40G01JPEXMBYT05
https://git.postgresql.org/pg/commitdiff/4c8156d87108fa1f245bee13775e76819cd46a90

Tom Lane pushed:

- Consider syntactic form when disambiguating function vs column reference.
Postgres has traditionally considered the syntactic forms f(x) and x.f to be
equivalent, allowing tricks such as writing a function and then using it as
though it were a computed-on-demand column. However, our behavior when both
interpretations are feasible left something to be desired: we always chose the
column interpretation. This could lead to very surprising results, as in a
recent bug report from Neil Conway. It also created a dump-and-reload hazard,
since what was a function call in a dumped view could get interpreted as a
column reference at reload, if a matching column name had been added to the
underlying table since the view was created. What seems better, in ambiguous
situations, is to prefer the choice matching the syntactic form of the
reference. This seems much less astonishing in general, and it fixes the
dump/reload hazard. Although this could be called a bug fix, there have been
few complaints and there's some small risk of breaking applications that
depend on the old behavior, so no back-patch. It does seem reasonable to slip
it into v11, though. Discussion:
https://postgr.es/m/CAOW5sYa3Wp7KozCuzjOdw6PiOYPi6D=VvRybtH2S=2C0SVmRmA@mail.gmail.com
https://git.postgresql.org/pg/commitdiff/b97a3465d73bfc2a9f5bcf5def1983dbaa0a26f8

- Remove obsolete prohibition on function name matching a column name.
ProcedureCreate formerly threw an error if the function to be created has one
argument of composite type and the function name matches some column of the
composite type. This was a (very non-bulletproof) defense against creating
situations where f(x) and x.f are ambiguous. But we don't really need such a
defense in the wake of commit b97a3465d, which allows us to deal with such
situations fairly cleanly. This behavior also created a dump-and-reload
hazard, since a function might be rejected if a conflicting column name had
been added to the input composite type later. Hence, let's just drop the
check. Discussion:
https://postgr.es/m/CAOW5sYa3Wp7KozCuzjOdw6PiOYPi6D=VvRybtH2S=2C0SVmRmA@mail.gmail.com
https://git.postgresql.org/pg/commitdiff/45e98ee730621fd34d0a132343cb3f906ccc8416

- Fix excessive enreferencing in jsonb-to-plperl transform. We want, say, 2 to
be transformed as 2, not \\2 which is what the original coding produced.
Perl's standard seems to be to add an RV wrapper only for hash and array SVs,
so do it like that. This was missed originally because the test cases only
checked what came out of a round trip back to SQL, and the
strip-all-dereferences loop at the top of SV_to_JsonbValue hides the extra
refs from view. As a better test, print the Perl value with Data::Dumper,
like the hstore_plperlu tests do. While we can't do that in the plperl test,
only plperlu, that should be good enough because this code is the same for
both PLs. But also add a simplistic test for extra REFs, which we can do in
both. That strip-all-dereferences behavior is now a bit dubious; it's unlike
what happens for other Perl-to-SQL conversions. However, the best thing to do
seems to be to leave it alone and make the other conversions act similarly.
That will be done separately. Dagfinn Ilmari Mannsåker, adjusted a bit by me
Discussion: https://postgr.es/m/d8jlgbq66t9.fsf@dalvik.ping.uio.no
https://git.postgresql.org/pg/commitdiff/1731e3741cbbf8e0b4481665d7d523bc55117f63

- Avoid platform-dependent output from Data::Dumper. Per buildfarm, the output
from Data::Dumper for an IEEE infinity is platform-dependent (e.g. "inf" vs
"Inf"). Just skip that one test case in the plperlu test; testing it on the
plperl side is coverage enough. Fixes issue in commit 1731e3741.
https://git.postgresql.org/pg/commitdiff/e4300a3552b104f54ec781dd23cfcf96252ec5c1

- Allow plperl_sv_to_datum to look through scalar refs. There seems little
reason for the policy of throwing error if we find a ref to something other
than a hash or array. Recursively look through the ref, instead. This makes
the behavior in non-transform cases comparable to what was already
instantiated for jsonb_plperl. Note that because we invoke any available
transform function before considering the ref case, it's up to each transform
function whether it wants to play along with this behavior or do something
different. Because the previous behavior was just to throw a useless error,
this seems unlikely to create any compatibility issues. Still, given the lack
of field complaints so far, seems best not to back-patch. Discussion:
https://postgr.es/m/28336.1528393969@sss.pgh.pa.us
https://git.postgresql.org/pg/commitdiff/3a382983d142ca270fe49c63fa6d4a95037ebee3

- Fix contrib/hstore_plperl to look through scalar refs. Bring this transform
function into sync with the policy established by commit 3a382983d. Also, fix
it to make sure that what it drills down to is indeed a hash, and not some
other kind of Perl SV. Previously, the test cases added here provoked
crashes. Because of the crash hazard, back-patch to 9.5 where this module was
introduced. Discussion: https://postgr.es/m/28336.1528393969@sss.pgh.pa.us
https://git.postgresql.org/pg/commitdiff/e3b7f7cc50630dac958a48b533cce04e4222892b

- Fix jsonb_plperl to convert Perl UV values correctly. Values greater than
IV_MAX were incorrectly converted to SQL, for instance ~0 would become -1
rather than 18446744073709551615 (on a 64-bit machine). Dagfinn Ilmari
Mannsåker, adjusted a bit by me Discussion:
https://postgr.es/m/d8jtvskjzzs.fsf@dalvik.ping.uio.no
https://git.postgresql.org/pg/commitdiff/93b6e03ab4794272986a11a427c6c391eafa5dea

- Clarify the README files for the various separate TAP-based test suites.
Explain the difference between "make check" and "make installcheck". Mention
the need for --enable-tap-tests (only some of these did so before).
Standardize their wording about how to run the tests.
https://git.postgresql.org/pg/commitdiff/c992dca26e2b7d02ec7d43f2b71ff23d77e39f27

- Fix mishandling of sortgroupref labels while splitting SRF targetlists.
split_pathtarget_at_srfs() neglected to worry about sortgroupref labels in the
intermediate PathTargets it constructs. I think we'd supposed that their
labeling didn't matter, but it does at least for the case that
GroupAggregate/GatherMerge nodes appear immediately under the ProjectSet
step(s). This results in "ERROR: ORDER/GROUP BY expression not found in
targetlist" during create_plan(), as reported by Rajkumar Raghuwanshi. To
fix, make this logic track the sortgroupref labeling of expressions, not just
their contents. This also restores the pre-v10 behavior that separate GROUP
BY expressions will be kept distinct even if they are textually equal().
Discussion:
https://postgr.es/m/CAKcux6=1_Ye9kx8YLBPmJs_xE72PPc6vNi5q2AOHowMaCWjJ2w@mail.gmail.com
https://git.postgresql.org/pg/commitdiff/07e5a213524853c06684155d4af5a0291d95d25a

- Improve requirements documentation for ldap test suite. Text by me; data
contributed by me, Thomas Munro, Michael Paquier. Discussion:
https://postgr.es/m/20180521013425.GA4476@paquier.xyz
https://git.postgresql.org/pg/commitdiff/425b4c082c82672c646ed8bc9e140b4112899fe4

- Fix partial aggregation for variance(int4) and related aggregates. A typo in
numeric_poly_combine caused bogus results for queries using it, but of course
would only manifest if parallel aggregation is performed. Reported by
Rajkumar Raghuwanshi. David Rowley did the diagnosis and the fix; I
editorialized rather heavily on his regression test additions. Back-patch to
v10 where the breakage was introduced (by 9cca11c91). Discussion:
https://postgr.es/m/CAKcux6nU4E2x8nkSBpLOT2DPvQ5LviJ3SGyAN6Sz7qDH4G4+Pw@mail.gmail.com
https://git.postgresql.org/pg/commitdiff/ec4719cd155d1d58c8aa7c06c7ef24aef6e67622

Alexander Korotkov pushed:

- Fix typos in release notes. Author: Daniel Gustafsson Discussion:
https://postgr.es/m/8E8CF1F8-BCB2-4D86-A059-4BF5138F6D87%40yesql.se
https://git.postgresql.org/pg/commitdiff/fb6accd27b99f5f91a7e9e5bd32b98a53fc6d6b8

- Improve wording of release notes item. PostgreSQL 11 introduces compress
method for SP-GiST opclasses. That was mistakenly interpreted as compression
support for SP-GiST while actually that allows lossy representation of leaf
keys. Author: Alexander Korotkov, based on proposal by Darafei Praliaskouski
Discussion:
https://postgr.es/m/CAC8Q8tKbYmNdiyWr7hE4GfMY4fbqHKkFziKgrUuWHH6HJQs3og%40mail.gmail.com
https://git.postgresql.org/pg/commitdiff/bee6a683a5c35ddcdb8253771450c6cf641f3d60

- Fixes for vacuum_cleanup_index_scale_factor GUC option.
vacuum_cleanup_index_scale_factor was located in autovacuum group of GUCs.
However, it affects not only autovacuum, but also manually run VACUUM. It
appears that "client connection defaults" group of GUCs is more appropriate
for vacuum_cleanup_index_scale_factor, because vacuum_*_age options are
already located there. Also, vacuum_cleanup_index_scale_factor was missed in
postgresql.conf.sample. So, add it there with appropriate comment. Author:
Masahiko Sawada with minor editorization by me Discussion:
https://postgr.es/m/CAD21AoArsoXMLKudXSKN679FRzs6oubEchM53bHwn8Tp%3D2boNg%40mail.gmail.com
https://git.postgresql.org/pg/commitdiff/9a994e37e08df3578f52011543dc28085dc18e21

Bruce Momjian pushed:

- doc: explain use of json_populate_record{set}(). The set-returning nature of
these functions make their use unclear. The modified paragraph was added in PG
9.4. Reported-by: yshaladi(at)denodo(dot)com Discussion:
https://postgr.es/m/152571684246.9460.18059951267371255159@wrigleys.postgresql.org
Backpatch-through: 9.4
https://git.postgresql.org/pg/commitdiff/87a19eb9bf373f51e966ab496cce6bf3ee9cd909

- README: add URLs for openldap installation. Reported-by: Michael Paquier
Discussion: https://postgr.es/m/20180521013425.GA4476@paquier.xyz
Backpatch-through: head
https://git.postgresql.org/pg/commitdiff/9bab9cb36ad9186c9898703106b545d6dbb2aa24

- doc: mention use of cross platform logical replication. Discussion:
https://postgr.es/m/CAJrrPGfdknoqZcMipPy8XnH3hO3uRic6JTD=jv35oj1DWqL07g@mail.gmail.com
Author: Haribabu Kommi
https://git.postgresql.org/pg/commitdiff/21c1f0c607f0344ae8f71ecaae1fe6f58cf7ff9a

- doc: update PG 11 release notes, mostly typo fixes. Discussion:
https://postgr.es/m/CAJnrtny0mYCMoRanZ1wvGqcPV-UDBoPetavDM1SqxnGVfZRV3g@mail.gmail.com
Author: Brad DeJong
https://git.postgresql.org/pg/commitdiff/2d502b81289f679a8244a0b6c94a4d294968bde1

- doc: show how interval's 3 unit buckets behave using EXTRACT(). This
clarifies when justify_days() and justify_hours() are useful. Paragraph moved
too. Reported-by: vodevsh(at)gmail(dot)com Discussion:
https://postgr.es/m/152698651482.26744.15456677499485530703@wrigleys.postgresql.org
Backpatch-through: 9.3
https://git.postgresql.org/pg/commitdiff/b6e94b820a21146b898232bc3e3920b31198e637

- doc: adjust order of NUMERIC arguments to match syntax. Specifically,
mention precision before scale Reported-by: claytonjsalem(at)gmail(dot)com
Discussion:
https://postgr.es/m/152967566691.1268.1062965601465200209@wrigleys.postgresql.org
Backpatch-through: 9.3
https://git.postgresql.org/pg/commitdiff/370e68ae1c0a8504a10b211a9c1d9e0ffa101259

Amit Kapila pushed:

- Don't consider parallel append for parallel unsafe paths. Commit ab72716778
allowed Parallel Append paths to be generated for a relation that is not
parallel safe. Prevent that from happening. Initial analysis by Tom Lane.
Reported-by: Rajkumar Raghuwanshi Author: Amit Kapila and Rajkumar Raghuwanshi
Reviewed-by: Amit Khandekar and Robert Haas
Discussion:https://postgr.es/m/CAKcux6=tPJ6nJ08r__nU_pmLQiC0xY15Fn0HvG1Cprsjdd9s_Q@mail.gmail.com
https://git.postgresql.org/pg/commitdiff/403318b71f7058ecbfb65bcc7de1eec96cd35d3f

- Improve coding pattern in Parallel Append code. The create_append_path code
didn't consider that list_concat will modify it's first argument leading to
inconsistent traversal of resulting list. In practice, it won't lead to any
user-visible bug but changing it for making the code behave consistently.
Reported-by: Tom Lane Author: Tom Lane Reviewed-by: Amit Khandekar and Amit
Kapila Discussion: https://postgr.es/m/32365.1528994120@sss.pgh.pa.us
https://git.postgresql.org/pg/commitdiff/98d476a965eefb52af53f4fb55dbfead0ede9282

Magnus Hagander pushed:

- Document the -D and $PGDATA switch/env for pg_verify_checksums. Author:
Daniel Gustafsson <daniel(at)yesql(dot)se>
https://git.postgresql.org/pg/commitdiff/d73300a28683fb1723ecda1a3fa767dbe8be6502

- Support long option for --pgdata in pg_verify_checksums. Author: Daniel
Gustafsson <daniel(at)yesql(dot)se>
https://git.postgresql.org/pg/commitdiff/741ee9dc819dd90270e66ab9bc254eeb7fda7100

- Move pg_verify_checksum docs to Server utils. Author: Daniel Gustafsson
<daniel(at)yesql(dot)se>
https://git.postgresql.org/pg/commitdiff/b92ef305c3eebc379af7af52ff03f75c67d39e8f

- Fix a number of typos. Author: Liudmila Mantrova <l(dot)mantrova(at)postgrespro(dot)ru>
https://git.postgresql.org/pg/commitdiff/d9443d9608a872b1aa8697fa6f40a41573a35f9d

- Fix typo. Reported using the website comment form
https://git.postgresql.org/pg/commitdiff/74cfbc8efd3f2f34d05e5c28a0299c2a7bc9c56d

- Add missing include. Per buildfarm
https://git.postgresql.org/pg/commitdiff/3adcad45588bff17b1253f60cf51c440e87df997

Álvaro Herrera pushed:

- Consistently use the term 'partitioned rel' in partprune comments. We were
using 'partition rel' in a few places, which is quite confusing. Author: Amit
Langote Reviewed-by: David Rowley Reviewed-by: Michaël Paquier Discussion:
https://postgr.es/m/fd256561-31a2-4b7e-cd84-d8241e7ebc3f@lab.ntt.co.jp
https://git.postgresql.org/pg/commitdiff/8f97af60d19a46b37fe998be38df4e6dd0760e45

- Accept TEXT and CDATA nodes in XMLTABLE's column_expression. Column
expressions that match TEXT or CDATA nodes must return the contents of the
nodes themselves, not the content of non-existing children (i.e. the empty
string). Author: Markus Winand Reported-by: Markus Winand Reviewed-by: Álvaro
Herrera Discussion:
https://postgr.es/m/0684A598-002C-42A2-AE12-F024A324EAE4@winand.at
https://git.postgresql.org/pg/commitdiff/b7f0be9a7e7ec1eb7b9780b169366495f24bf975

- Update expected XML output with disabled XML. Should have been done in
previous commit. Branch ------ master Details -------
https://git.postgresql.org/pg/commitdiff/9cd929d36079e30cd43a85dd23e771d25c5f7b14
Update expected XML output with disabled XML Should have been done in previous
commit.
https://git.postgresql.org/pg/commitdiff/9cd929d36079e30cd43a85dd23e771d25c5f7b14

- Set correct context for XPath evaluation. According to the SQL standard, the
context of XMLTABLE's XPath row_expression is the document node of the XML
input document, not the root node. This becomes visible when a relative path
rather than absolute is used as row expression. Absolute paths is what was
used in original tests and docs (and the most common form used in examples
throughout the interwebs), which explains why this wasn't noticed before.
Other functions such as xpath() and xpath_exists() also have this problem.
While not specified by the SQL standard, it would be pretty odd to leave those
functions to behave differently than XMLTABLE, so change them too. However,
this is a backwards-incompatible change. No backpatch, out of fear of
breaking code depending on the original broken behavior. Author: Markus
Winand Reported-By: Markus Winand Reviewed-by: Álvaro Herrera Discussion:
https://postgr.es/m/0684A598-002C-42A2-AE12-F024A324EAE4@winand.at
https://git.postgresql.org/pg/commitdiff/e474c2b7e4b656895d6afcbd36857c9ebb0fcedd

- Disclaim support for default namespace in XMLTABLE. Pavel Stehule's original
patch had support for default namespace, but I ripped it out before commit --
hence the docs were correct when written, and I broke them by omission :-(.
Remove the offending phrase. Author: Daniel Gustafsson Discussion:
https://postgr.es/m/1550C5E5-FC70-4493-A226-AA137D831E8D@yesql.se
https://git.postgresql.org/pg/commitdiff/c7048977a73b4ab3b38b9a28bc58e600b598c176

- When index recurses to a partition, map columns numbers. Two out of three
code paths were mapping column numbers correctly if a partition had different
column numbers than parent table, but the most commonly used one (recursing in
CREATE INDEX to a new index on a partition) failed to map attribute numbers in
expressions. Oddly enough, attnums in WHERE clauses are already handled
correctly everywhere. Reported-by: Amit Langote Author: Amit Langote
Discussion:
https://postgr.es/m/dce1fda4-e0f0-94c9-6abb-f5956a98c057@lab.ntt.co.jp
Reviewed-by: Álvaro Herrera
https://git.postgresql.org/pg/commitdiff/475be5e790e2db4c5c18a2d378c4498ffccb6289

Robert Haas pushed:

- Avoid generating bogus paths with partitionwise aggregate. Previously, if
some or all partitions had no partially aggregated path, we would still try to
generate a partially aggregated path for the parent, leading to assertion
failures or wrong answers. Report by Rajkumar Raghuwanshi. Patch by Jeevan
Chalke, reviewed by Ashutosh Bapat. A few changes by me. Discussion:
http://postgr.es/m/CAKcux6=q4+Mw8gOOX16ef6ZMFp9Cve7KWFstUsrDa4GiFaXGUQ@mail.gmail.com
https://git.postgresql.org/pg/commitdiff/c6f28af5d7af87d7370e5f169251d91437f100a2

Andrew Dunstan pushed:

- Allow for pg_upgrade of attributes with missing values. Commit 16828d5c02
neglected to do this, so upgraded databases would silently get null instead of
the specified default in rows without the attribute defined. A new binary
upgrade function is provided to perform this and pg_dump is adjusted to output
a call to the function if required in binary upgrade mode. Also included is
code to drop missing attribute values for dropped columns. That way if the
type is later dropped the missing value won't have a dangling reference to the
type. Finally the regression tests are adjusted to ensure that there is a row
with a missing value so that this code is exercised in upgrade testing.
Catalog version unfortunately bumped. Regression test changes from Tom Lane.
Remainder from me, reviewed by Tom Lane, Andres Freund, Alvaro Herrera
Discussion: https://postgr.es/m/19987.1529420110@sss.pgh.pa.us
https://git.postgresql.org/pg/commitdiff/2448adf29c543befbac59f1ecfbb3ef4b0d808ce

- Mark binary_upgrade_set_missing_value as parallel_unsafe. per buildfarm.
Bump catalog version again although in practice nobody is going to use this in
a parallel query.
https://git.postgresql.org/pg/commitdiff/123efbccea694626b36ad952086d883fa7469aa9

== Pending Patches ==

David Rowley sent in a patch to allow direct lookups of AppendRelInfo by child
relid. This fixes a planner performance regression new to v11 reported by
Thomas Reiss.

David Rowley sent in another revision of a patch to expand run-time partition
pruning to work with MergeAppend.

Surafel Temesgen sent in another revision of a patch to add an
--on-conflict-do-nothing patch for pg_dump.

Ildus Kurbangaliev sent in another revision of a patch to implement custom
compression methods.

Jesper Pedersen sent in a patch to implement index skip scans.

Amit Khandekar sent in two revisions of a patch to fix an infelicity between
AtEOXact_ApplyLauncher() and subtransactions.

Andrey V. Lepikhov sent in two revisions of a patch to implement retail
indextuple deletion.

Amit Khandekar and Amit Kapila traded patches to fix a concurrency bug in
UPDATEs of a partition key.

Haribabu Kommi sent in a patch to allow target-session-attrs to accept
prefer-read option.

Amit Langote sent in a patch to document all the things forbidden in CHECK
constraints.

John Naylor sent in another revision of a patch to ensure that there are TOAST
tables in appropriate places in the catalog.

Pavan Deolasee sent in another revision of a patch to implement MERGE.

Thomas Munro sent in two revisions of a patch to move RecoveryLockList into a
hash table.

Etsuro Fujita sent in a patch to refactor the way partition-wise joins handle
target lists.

Peter Geoghegan sent in a patch to detect duplicate heap TIDs using a tuplesort.

Konstantin Knizhnik sent in another revision of a patch to implement libpq
compression.

Laurenz Albe sent in a patch to use pgwin32_open in frontend code on Windows.

Tomáš Vondra sent in a patch to fix a memory leak when serializing TRUNCATE in
reorderbuffer.

Heikki Linnakangas sent in a patch to push down aggregates below JOINs where
feasible.

Michaël Paquier and Arseny Sher traded patches to document fast_forward mode in
logical replication.

Haribabu Kommi sent in a patch to add a function to reset statistics of a
specific statement.

Craig Ringer sent in a patch to make it possible to get backtraces along with
error messages.

Arseny Sher sent in a patch to fix slot's xmin advancement and subxact's lost
snapshots in decoding.

David Rowley sent in a patch to fix a performance problem in COPY
[partitioned_table] FROM by using heap_multi_insert() for the partitioned table
case.

Sergei Kornilov sent in another revision of a patch to expand and refactor the
recovery API.

Konstantin Knizhnik sent in two revisions of a patch to implement WAL prefetch.

Don Seiler sent in another revision of a patch to libpq to add the
application_name to Port struct so it can be displayed elsewhere.

Michaël Paquier sent in another revision of a patch to fix some error handling
for read() and errno.

Michaël Paquier sent in another revision of a patch to fix an issue which caused
a ANIC during crash recovery of a recently promoted standby.

Kyotaro HORIGUCHI sent in a patch to document the guaranteed lifetime of commit
timestamps.

Sergey Cherkashin sent in a patch to add psql backslash commands to get more
information about access methods.

David Rowley sent in a patch to speed up INSERTs and UPDATEs to partitioned
tables.

Michaël Paquier sent in two revisions of a patch to fix some wrong errnos in the
backend code.

Nikita Glukhov sent in a patch to fix some performance issues in the JSONB
transform for PL/Python between PostgreSQL NUMERICs and Python Decimals.

Lars Kanis sent in a patch to add a PQresultMemsize() to libpq.

Sergei Kornilov sent in a patch to log parameters for terminated statements.

Bruce Momjian sent in a patch to fix an issue that caused pg_upgrade not to work
from 9.4 to 10.

Adrien Nayrat and Vik Fearing traded patches to add a new GUC to sample log
queries.

Peter Geoghegan sent in a patch to remove obsolete comment block in nbtsort.c.

Tomáš Vondra sent in another revision of a patch to implement multivariate
histograms and MCV lists.

Tomáš Vondra sent in another revision of a patch to implement BRIN multi-range
indexes.

Browse pgsql-announce by date

  From Date Subject
Next Message SwissPUG Info 2018-06-25 07:15:02 Swiss PGDay 2018 (reminder) This Friday is Swiss PGDay
Previous Message Magnus Hagander 2018-06-21 08:54:47 PostgreSQL Conference Europe 2018 Open for Registration