== PostgreSQL Weekly News - June 24 2018 ==
От | David Fetter |
---|---|
Тема | == PostgreSQL Weekly News - June 24 2018 == |
Дата | |
Msg-id | 20180624221521.GA7755@fetter.org обсуждение исходный текст |
Список | 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@denodo.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@gmail.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@gmail.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@yesql.se> https://git.postgresql.org/pg/commitdiff/d73300a28683fb1723ecda1a3fa767dbe8be6502 - Support long option for --pgdata in pg_verify_checksums. Author: Daniel Gustafsson <daniel@yesql.se> https://git.postgresql.org/pg/commitdiff/741ee9dc819dd90270e66ab9bc254eeb7fda7100 - Move pg_verify_checksum docs to Server utils. Author: Daniel Gustafsson <daniel@yesql.se> https://git.postgresql.org/pg/commitdiff/b92ef305c3eebc379af7af52ff03f75c67d39e8f - Fix a number of typos. Author: Liudmila Mantrova <l.mantrova@postgrespro.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.
В списке pgsql-announce по дате отправления:
Предыдущее
От: Magnus HaganderДата:
Сообщение: PostgreSQL Conference Europe 2018 Open for Registration