Nouvelles hebdomadaires de PostgreSQL - 27 août 2017
[ndt: Meetup le 25 septembre à Toulouse : https://www.meetup.com/fr-FR/PostgreSQL-User-Group-Toulouse/]
Les nouveautés des produits dérivés
- OmniDB, un outil de gestion de BDD via navigateur web : https://www.2ndquadrant.com/en/resources/omnidb
- PostgreSQL Maestro 17.8, un outil de gestion basé sur ODBC, compatible avec PostgreSQL : https://www.sqlmaestro.com/products/postgresql/maestro/
Offres d'emplois autour de PostgreSQL en août
- Internationales : http://archives.postgresql.org/pgsql-jobs/2017-08/
- Francophones : http://forums.postgresql.fr/viewforum.php?id=4
PostgreSQL Local
- Le PostgresOpen aura lieu à San Francisco du 6 au 8 septembre : https://2017.postgresopen.org/
- PGBR2017 (La PgConf brésilienne) aura lieu à Porto Alegre (État du Rio Grande do Sul) du 14 au 16 septembre 2017 : https://pgbr.postgresql.org.br/2017/
- [ndt: Meetup le 20 septembre à Lyon sur PostgreSQL 10 : https://www.meetup.com/fr-FR/PostgreSQL-Lyon-User-Group/]
- PGDay.IT 2017 aura lieu à Milan (Italie) le 13 octobre : http://pgday.it
- La PostgreSQL Conference Europe 2017 aura lieu du 24 au 27 octobre 2017 au Warsaw Marriott Hotel, à Varsovie (Pologne) : https://2017.pgconf.eu/
- PGConf Local : Seattle aura lieu les 13 et 14 novembre 2017 : https://www.pgconf.us/#Seattle2017
- Le PGDay Australia 2017 se tiendra à Melbourne le 17 novembre. L'appel à conférenciers court jusqu'au 8 septembre : https://goo.gl/5d9EbT http://2017.pgday.com.au/
- PGConf Local : Austin aura lieu les 4 & 5 décembre 2017. L'appel à conférenciers a été lancé : https://www.pgconf.us/conferences/Austin2017
- La PGConf.ASIA 2017 aura lieu à Akihabara (Tokyo, Japon) du 4 au 6 décembre 2017 : http://www.pgconf.asia/EN/2017/
PostgreSQL dans les média
- Planet PostgreSQL : http://planet.postgresql.org/
- Planet PostgreSQLFr : http://planete.postgresql.fr/
PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter. Traduction par l'équipe PostgreSQLFr sous licence CC BY-NC-SA. La version originale se trouve à l'adresse suivante : http://www.postgresql.org/message-id/20170827202948.GA11346@fetter.org
Proposez vos articles ou annonces avant dimanche 15:00 (heure du Pacifique). Merci de les envoyer en anglais à david (a) fetter.org, en allemand à pwn (a) pgug.de, en italien à pwn (a) itpug.org et en espagnol à pwn (a) arpug.com.ar.
Correctifs appliqués
Noah Misch pushed:
- Inject $(ICU_LIBS) regardless of platform. It appeared in a conditional that excludes AIX, Cygwin and MinGW. Give ICU support a chance to work on those platforms. Back-patch to v10, where ICU support was introduced. https://git.postgresql.org/pg/commitdiff/66ed3829df959adb47f71d7c903ac59f0670f3e1
Robert Haas pushed:
- pg_prewarm: Add automatic prewarm feature. Periodically while the server is running, and at shutdown, write out a list of blocks in shared buffers. When the server reaches consistency -- unfortunatey, we can't do it before that point without breaking things -- reload those blocks into any still-unused shared buffers. Mithun Cy and Robert Haas, reviewed and tested by Beena Emerson, Amit Kapila, Jim Nasby, and Rafia Sabih. Discussion: http://postgr.es/m/CAD__OugubOs1Vy7kgF6xTjmEqTR4CrGAv8w+ZbaY_+MZeitukw@mail.gmail.com https://git.postgresql.org/pg/commitdiff/79ccd7cbd5ca44bee0191d12e9e65abf702899e7
- Push limit through subqueries to underlying sort, where possible. Douglas Doole, reviewed by Ashutosh Bapat and by me. Minor formatting change by me. Discussion: http://postgr.es/m/CADE5jYLuugnEEUsyW6Q_4mZFYTxHxaVCQmGAsF0yiY8ZDggi-w@mail.gmail.com https://git.postgresql.org/pg/commitdiff/1f6d515a67ec98194c23a5db25660856c9aab944
- Improve low-level backup documentation. Our documentation hasn't really caught up with the fact that non-exclusive backups can now be taken using pg_start_backup and pg_stop_backup even on standbys. Update, also correcting some errors introduced by 52f8a59dd953c6820baf153e97cf07d31b8ac1d6. Updates to the 9.6 documentation are needed as well, but that will need a separate patch as some things are different on that version. David Steele, reviewed by Robert Haas and Michael Paquier Discussion: http://postgr.es/m/d4d951b9-89c0-6bc1-b6ff-d0b2dd5a8966@pgmasters.net https://git.postgresql.org/pg/commitdiff/449338cc644be6035d05afb6b60f536adfd99b3e
Peter Eisentraut pushed:
- Expand set of predefined ICU locales. Install language+region combinations even if they are not distinct from the language's base locale. This gives better long-term stability of the set of predefined locales and makes the predefined locales less implementation-dependent and more practical for users. Reviewed-by: Peter Geoghegan <pg@bowt.ie> https://git.postgresql.org/pg/commitdiff/51e225da306e14616b690308a59fd89e22335035
- Don't install ICU collation keyword variants. Users can still create them themselves. Instead, document Unicode TR 35 collation options for ICU, so users can create all this themselves. Reviewed-by: Peter Geoghegan <pg@bowt.ie> https://git.postgresql.org/pg/commitdiff/2bfd1b1ee562c4e4fd065c7f7d1beaa9b9852070
- doc: Mention identity column feature in section on serial. Reported-by: Basil Bourque <basil.bourque@pobox.com> https://git.postgresql.org/pg/commitdiff/b5664cfd4c17eb69e6d7356ce670cc4a98074d13
- pg_upgrade: Message translatability and style fixes. https://git.postgresql.org/pg/commitdiff/7e046e6e8a33f8a7ef641b9539376cf939993105
- Fix translation marker. This was erroneously removed in 55a70a023c3daefca9bbd68bfbe6862af10ab479. https://git.postgresql.org/pg/commitdiff/580ddcec3943216b281c56e3c7fc933fdcf850f4
- Tweak some SCRAM error messages and code comments. Clarify/correct some error messages, fix up some code comments that confused SASL and SCRAM, and other minor fixes. No changes in functionality. https://git.postgresql.org/pg/commitdiff/85f4d6393da2ed2ad3ec4912a60a918348784c2b
- Fix outdated comment. Author: Thomas Munro <thomas.munro@enterprisedb.com> https://git.postgresql.org/pg/commitdiff/1e1b01cd1632a7d768fb8c86c95cf3ec82dc58da
- Update code comment for temporary replication slots. Reported-by: Alvaro Herrera <alvherre@2ndquadrant.com> https://git.postgresql.org/pg/commitdiff/6d242ee980193f29618aa899eb61f67a953bd712
- Fix up secondary expected files. for commit 237a0b87b1dc90f8789aa5441a2a11e67f46c96e https://git.postgresql.org/pg/commitdiff/27b89876c0fb08faa17768c68101186cda2e4bef
- Improve plural handling in error message. This does not use the normal plural handling, because no numbers appear in the actual message. https://git.postgresql.org/pg/commitdiff/237a0b87b1dc90f8789aa5441a2a11e67f46c96e
- Increase SCRAM salt length. The original value 12 was set based on RFC 5802 for SCRAM-SHA-1, but RFC 7677 for SCRAM-SHA-256 uses 16, so use that. (This does not affect the validity of already stored verifiers.) Discussion: https://www.postgresql.org/message-id/flat/12cc9297-7e05-932f-d863-765e5626ead4%402ndquadrant.com https://git.postgresql.org/pg/commitdiff/fe7774144d5c3f3a2941a2ca51e61352e4005991
- pg_upgrade: Remove dead code. Remove code meant for upgrading to a particular version of PostgreSQL 9.0. Since pg_upgrade only supports upgrading to the current major version, this code is no longer useful. https://git.postgresql.org/pg/commitdiff/6ce6a61840cc90172ad3da7bf303656132fa5fab
- Message translatability fixes. https://git.postgresql.org/pg/commitdiff/e86ac70d6ef12d8639885fcdb238fdaabec80aa7
- pg_upgrade: Remove more dead code. related to 6ce6a61840cc90172ad3da7bf303656132fa5fab Reported-by: Christoph Berg <myon@debian.org> https://git.postgresql.org/pg/commitdiff/99ce446ada332fd8879fcdbded9daa891595f089
- pg_test_timing: Some NLS fixes. The string "% of total" was marked by xgettext to be a c-format, but it is actually not, so mark up the source to prevent that. Compute the column widths of the final display dynamically based on the translated strings, so that translations don't mess up the display accidentally. https://git.postgresql.org/pg/commitdiff/2073c641b43e1310784dc40aef32f71119313bdc
Andres Freund pushed:
- Refactor typcache.c's record typmod hash table. Previously, tuple descriptors were stored in chains keyed by a fixed size array of OIDs. That meant there were effectively two levels of collision chain -- one inside and one outside the hash table. Instead, let dynahash.c look after conflicts for us by supplying a proper hash and equal function pair. This is a nice cleanup on its own, but also simplifies followup changes allowing blessed TupleDescs to be shared between backends participating in parallel query. Author: Thomas Munro Reviewed-By: Andres Freund Discussion: https://postgr.es/m/CAEepm%3D34GVhOL%2BarUx56yx7OPk7%3DqpGsv3CpO54feqjAwQKm5g%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/35ea75632a56ca8ef22aa8fed03b9dabb9c8c575
- Add a hash_combine function for mixing hash values. This hash function is derived from Boost's function of the same name. Author: Andres Freund, Thomas Munro Discussion: https://postgr.es/m/CAEepm%3D3rdgjfxW4cKvJ0OEmya2-34B0qHNG1xV0vK7TGPJGMUQ%40mail.gmail.com Discussion: https://postgr.es/m/20170731210844.3cwrkmsmbbpt4rjc%40alap3.anarazel.de https://git.postgresql.org/pg/commitdiff/0052a0243d9c979a06ef273af965508103c456e0
- Hash tables backed by DSA shared memory. Add general purpose chaining hash tables for DSA memory. Unlike DynaHash in shared memory mode, these hash tables can grow as required, and cope with being mapped into different addresses in different backends. There is a wide range of potential users for such a hash table, though it's very likely the interface will need to evolve as we come to understand the needs of different kinds of users. E.g support for iterators and incremental resizing is planned for later commits and the details of the callback signatures are likely to change. Author: Thomas Munro Reviewed-By: John Gorman, Andres Freund, Dilip Kumar, Robert Haas Discussion: https://postgr.es/m/CAEepm=3d8o8XdVwYT6O=bHKsKAM2pu2D6sV1S_=4d+jStVCE7w@mail.gmail.com https://postgr.es/m/CAEepm=0ZtQ-SpsgCyzzYpsXS6e=kZWqk3g5Ygn3MDV7A8dabUA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/8c0d7bafad36434cb08ac2c78e69ae72c194ca20
- Fix harmless thinko in dsa.c. Commit 16be2fd100199bdf284becfcee02c5eb20d8a11d added DSA_ALLOC_HUGE, DSA_ALLOC_ZERO and DSA_ALLOC_NO_OOM which have the same numerical values and meanings as the similarly named MCXT_... macros. In one place we accidentally used MCXT_ALLOC_NO_OOM when DSA_ALLOC_NO_OOM is wanted, so tidy that up. Author: Thomas Munro Discussion: http://postgr.es/m/CAEepm=2AimHxVkkxnMfQvbZMkXy0uKbVa0-D38c5-qwrCm4CMQ@mail.gmail.com Backpatch: 10, where dsa was introduced. https://git.postgresql.org/pg/commitdiff/20fbf25533763c8c78c9c668b718d831236fb111
- Add minimal regression test for blessed record type transfer. Test that blessed records can be transferred through a TupleQueue and correctly decoded by another backend. While touching the file, make sure that force_parallel_mode settings only cover relevant tests. Author: Thomas Munro, editorialized by Andres Freund Reviewed-By: Andres Freund Discussion: https://postgr.es/m/20170823054644.efuzftxjpfi6wwqs%40alap3.anarazel.de https://git.postgresql.org/pg/commitdiff/d36f7efb39e1b9613193b2e12717dbe2418ddae5
- Fix unlikely shared memory leak after failure in dshash_create(). Tidy-up for commit 8c0d7bafad36434cb08ac2c78e69ae72c194ca20, based on a complaint from Andres Freund. Author: Thomas Munro Reviewed-By: Andres Freund Discussion: https://postgr.es/m/20170823054644.efuzftxjpfi6wwqs%40alap3.anarazel.de https://git.postgresql.org/pg/commitdiff/4569715bd6faa4c43e489a7069ab7abca68ff663
- Consolidate the function pointer types used by dshash.c. Commit 8c0d7bafad36434cb08ac2c78e69ae72c194ca20 introduced dshash with hash and compare functions like DynaHash's, and also variants that take a user data pointer instead of size. Simplify the interface by merging them into a single pair of function pointer types that take both size and a user data pointer. Since it is anticipated that memcmp and tag_hash behavior will be a common requirement, provide wrapper functions dshash_memcmp and dshash_memhash that conform to the new function types. Author: Thomas Munro Reviewed-By: Andres Freund Discussion: https://postgr.es/m/20170823054644.efuzftxjpfi6wwqs%40alap3.anarazel.de https://git.postgresql.org/pg/commitdiff/d7694fc148707cd8335d9ccfde9f4c17290189db
Tom Lane pushed:
- Make new regression test case parallel-safe, and improve its output. The test case added by commit 1f6d515a6 fails on buildfarm members that have force_parallel_mode turned on, because we currently don't report sort performance details from worker processes back to the master. To fix that, just make the test table be temp rather than regular; that's a good idea anyway to forestall any possible interference from auto-analyze. (The restriction that workers can't access temp tables might go away someday, but almost certainly not before the other thing gets fixed.) Also, improve the test so that we retain as much as possible of the EXPLAIN ANALYZE output. This aids debugging failures, and might also expose problems that the preceding version masked. Discussion: http://postgr.es/m/CADE5jYLuugnEEUsyW6Q_4mZFYTxHxaVCQmGAsF0yiY8ZDggi-w@mail.gmail.com https://git.postgresql.org/pg/commitdiff/1177ab1dabf72bafee8f19d904cee3a299f25892
- Code review for pushing LIMIT through subqueries. Minor improvements for commit 1f6d515a6. We do not need the (rather expensive) test for SRFs in the targetlist, because since v10 any such SRFs would appear in separate ProjectSet nodes. Also, make the code look more like the existing cases by turning it into a simple recursion --- the argument that there might be some performance benefit to contorting the code seems unfounded to me, especially since any good compiler should turn the tail-recursion into iteration anyway. Discussion: http://postgr.es/m/CADE5jYLuugnEEUsyW6Q_4mZFYTxHxaVCQmGAsF0yiY8ZDggi-w@mail.gmail.com https://git.postgresql.org/pg/commitdiff/3f4c7917b3bc8b421c0c85cb9995974c55e7232b
- Fix locale dependency in new ecpg test case. Force sorting in "C" locale so that the output ordering doesn't vary, per buildfarm. In passing, add missing .gitignore entries. Discussion: https://postgr.es/m/0975f4bb-5dee-c33c-b719-3ce44026d397@chrullrich.net https://git.postgresql.org/pg/commitdiff/aae62278e167623bfac9fd50d1242d8e72208b0c
- First-draft release notes for 9.6.5. As usual, the release notes for other branches will be made by cutting these down, but put them up for community review first. Note the first entry is only for 9.4. https://git.postgresql.org/pg/commitdiff/f1b10496a55a64b2872633850e55a2cd9d1c9108
- Doc: update v10 release notes through today. https://git.postgresql.org/pg/commitdiff/6a5366e69acf9ae04988488f1e365705ff591d65
Stephen Frost pushed:
- psql: Fix \gx when FETCH_COUNT is used. Set expanded output when requested through \gx in ExecQueryUsingCursor() (used when FETCH_COUNT is set). Discussion: https://www.postgresql.org/message-id/CB7A53AA-5645-4BDD-AB07-4D22CD9D8FF1%40gmx.net Author: Tobias Bussmann https://git.postgresql.org/pg/commitdiff/0cdc3e47bea442643c9870dc419364b9f2f52dcb
Michael Meskes pushed:
- Implement DO CONTINUE action for ECPG WHENEVER statement. Author: Vinayak Pokale Reviewed-By: Masahiko Sawada https://git.postgresql.org/pg/commitdiff/d22e9d530516f7c9c56d00eff53cf19e45ef348c
- Make setlocale in ECPG test cases thread aware on Windows. Fix threaded test cases on Windows not to crash in setlocale() which can be global or local to a thread on Windows. Author: Christian Ullrich https://git.postgresql.org/pg/commitdiff/a772624b1d6b47ac00384901e1753f1d34b0cd10
- Changed order of statements and added an additiona MSVC safeguard to make ecpg. thread test cases work on Windows. https://git.postgresql.org/pg/commitdiff/04fbe0e4516d26de9420637f6fc90041e574b4b0
Correctifs en attente
Markus Sintonen sent in a patch to add pattern based listeners for asynchronous messaging (LISTEN/NOTIFY).
Haribabu Kommi sent in another revision of a patch to refactor handling of database attributes between pg_dump and pg_dumpall.
Ashutosh Bapat sent in another revision of a patch to implement partition-wise join for join between (declaratively) partitioned tables.
Ashutosh Bapat sent in a patch to implement an advanced partition matching algorithm for partition-wise join.
Feike Steenbergen sent in a patch to document pgstattuple privileges without ambiguity.
Jeevan Ladhe sent in another revision of a patch to add support for default partitions in declarative partitioning.
Etsuro Fujita sent in another revision of a patch to add an epqpath for foreign join.
Michaël Paquier sent in another revision of a patch to refactor the routine to test connections to the SSL server, support channel binding 'tls-unique' in SCRAM, add connection parameters "saslname" and "saslchannelbinding", and implement channel binding tls-server-end-point for SCRAM.
Alexander Kuzmenkov sent in another revision of a patch to add index-only count(*) for indexes supporting bitmap scans.
Amit Langote sent in a patch to add some infrastructure to be used in a system that prunes partitions more effectively than the current constraint exclusion system does.
Mark Rofail sent in two more revisions of a patch to add foreign key arrays.
Amit Kapila sent in another revision of a patch to ensure that parallel paths include tlist cost.
Amit Langote sent in another revision of a patch to decouple RelationGetPartitionDispatchInfo() from executor and teach expand_inherited_rtentry to use partition bound order.
Amul Sul sent in another revision of a patch to add an optional second hash procedure and test the hash functions.
Yura Sokolov sent in another revision of a patch to make a hash table for xip in XidInMVCCSnapshot.
Alik Khilazhev sent in another revision of a patch to add a Zipfian distribution to pgbench.
Peter Eisentraut sent in another revision of a patch to improve coverage analysis.
Beena Emerson sent in a patch to remove the for_default flag from the get_qual_for_range function.
Jeevan Ladhe sent in another revision of a patch to refactor RelationBuildPartitionDesc() and add support for default partition for range.
Ashutosh Sharma and Amit Kapila traded patches to rewrite hash index scan to work page at a time, remove redundant hash function _hash_step and do some code cleanup, and improve locking startegy during VACUUM in Hash Index for regular tables.
Peter Eisentraut sent in a patch to add compiler hints to PLy_elog() and fix the remaining scan-build warnings for PL/PythonU.
Beena Emerson sent in another revision of a patch to add a XLogSegmentOffset macro, make an initdb-configurable WAL segment size, and modify the xlog macros to take this into account.
Jeevan Chalke sent in a patch to implement partition-wise aggregation/grouping.
Thomas Munro sent in three more revisions of a patch to share typmods among backends.
Pavel Stěhule sent in a patch to add \graw to psql.
Fabien COELHO sent in another revision of a patch to add pgbench TAP tests.
Adrien Nayrat sent in a patch to auto_explain in order to log queries with wrong estimation.
Peter Eisentraut sent in a patch to add a max_worker_processes_per_user setting.
Robert Haas and Tom Lane traded patches to push limit to sort through a subquery.
Nathan Bossart sent in another revision of a patch to allow users to specify multiple tables in VACUUM commands.
Simone Gotti sent in a patch to fix drop replication slot blocking instead of returning an error.
Masahiko Sawada sent in another revision of a patch to add custom initialization to pgbench.
Jing Wang sent in a patch to support to COMMENT ON DATABASE CURRENT_DATABASE and friends.
Antonin Houska sent in a patch to allow extensions to write log messages to a separate file.
Alexander Kuzmenkov sent in another revision of a patch to enable full merge join on comparison clause.
Haribabu Kommi sent in another revision of a patch to add Visual Studio 2017 build support.
Yang Jie sent in a patch to enable hash partitioning.
Fabien COELHO sent in two revisions of a patch to enable psql to discover whether a variable exists.
Jeff Janes sent in another revision of a patch to change WAL writer wakeup.
Fabien COELHO sent in two more revisions of a patch to add SERVER_VERSION_NUMBER to psql.
Jeff Janes sent in a patch to pgbench to make a faster version of tpcb-like transactions.
Petr Jelínek sent in a patch to fix a race condition in the logical decoding TAP test.