Les nouveautés des produits dérivés

Offres d'emplois autour de PostgreSQL en juillet

PostgreSQL Local

PostgreSQL dans les média

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.

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.

(lien vers l'article original)

Correctifs appliqués

Heikki Linnakangas a poussé :

  • Improve scalability of WAL insertions. This patch replaces WALInsertLock with a number of WAL insertion slots, allowing multiple backends to insert WAL records to the WAL buffers concurrently. This is particularly useful for parallel loading large amounts of data on a system with many CPUs. This has one user-visible change: switching to a new WAL segment with pg_switch_xlog() now fills the remaining unused portion of the segment with zeros. This potentially adds some overhead, but it has been a very common practice by DBA's to clear the "tail" of the segment with an external pg_clearxlogtail utility anyway, to make the WAL files compress better. With this patch, it's no longer necessary to do that. This patch adds a new GUC, xloginsert_slots, to tune the number of WAL insertion slots. Performance testing suggests that the default, 8, works pretty well for all kinds of worklods, but I left the GUC in place to allow others with different hardware to test that easily. We might want to remove that before release. Reviewed by Andres Freund. http://git.postgresql.org/pg/commitdiff/9a20a9b21baa819df1760b36f3c36f25d11fc27b
  • Fix pg_test_fsync, broken by xloginsert scaling patch. I didn't realize that ALIGNOF_XLOG_BUFFER was used in pg_test_fsync. http://git.postgresql.org/pg/commitdiff/b5ed21998c13f09fd733c87a224e3fe27e41d34d
  • Fix Windows build. Was broken by my xloginsert scaling patch. XLogCtl global variable needs to be initialized in each process, as it's not inherited by fork() on Windows. http://git.postgresql.org/pg/commitdiff/f489470f8abee19ec0788afad92cf192c132271e
  • Add #include needed for _mm_mfence() intrinsic on ia64. Hopefully this fixes the build failure on buildfarm member dugong. http://git.postgresql.org/pg/commitdiff/6052bceba5b4cb3d4ae814185d5035307ecabb65
  • Fix memory barrier support on icc on ia64, 2nd attempt. Itanium doesn't have the mfence instruction - that's a 386 thing. Use the "mf" instruction instead. This reverts the previous commit to add "#include <emmintrinsic.h>"; the problem was not with a missing #include. http://git.postgresql.org/pg/commitdiff/e5592c61adb0766eaee53ec07d2f05783d1c6548

Alvaro Herrera a poussé :

Peter Eisentraut a poussé :

Bruce Momjian a poussé :

  • pg_upgrade: document possible pg_hba.conf options. Previously, pg_upgrade docs recommended using .pgpass if using MD5 authentication to avoid being prompted for a password. Turns out pg_ctl never prompts for a password, so MD5 requires .pgpass --- document that. Also recommend 'peer' for authentication too. Backpatch back to 9.1. http://git.postgresql.org/pg/commitdiff/886c05d8e8642572af25fee23f414bd31f2e7f3e

Noah Misch a poussé :

Stephen Frost a poussé :

  • During parallel pg_dump, free commands from master. The command strings read by the child processes during parallel pg_dump, after being read and handled, were not being free'd. This patch corrects this relatively minor memory leak. Leak found by the Coverity scanner. Back patch to 9.3 where parallel pg_dump was introduced. http://git.postgresql.org/pg/commitdiff/234e4cf6e1eac2f0e514379a2a533ffb71b33732
  • pg_receivexlog - Exit on failure to parse. In streamutil.c:GetConnection(), upgrade failure to parse the connection string to an exit(1) instead of simply returning NULL. Most callers already immediately exited, but pg_receivexlog would loop on this case, continually trying to re-parse the connection string (which can't be changed after pg_receivexlog has started). GetConnection() was already expected to exit(1) in some cases (eg: failure to allocate memory or if unable to determine the integer_datetimes flag), so this change shouldn't surprise anyone. Began looking at this due to the Coverity scanner complaining that we were leaking err_msg in this case- no longer an issue since we just exit(1) immediately. http://git.postgresql.org/pg/commitdiff/d368a301b3a4bf5fec17e81c630adddeac80a7fc
  • Ensure 64bit arithmetic when calculating tapeSpace. In tuplesort.c:inittapes(), we calculate tapeSpace by first figuring out how many 'tapes' we can use (maxTapes) and then multiplying the result by the tape buffer overhead for each. Unfortunately, when we are on a system with an 8-byte long, we allow work_mem to be larger than 2GB and that allows maxTapes to be large enough that the 32bit arithmetic can overflow when multiplied against the buffer overhead. When this overflow happens, we end up adding the overflow to the amount of space available, causing the amount of memory allocated to be larger than work_mem. Note that to reach this point, you have to set work mem to at least 24GB and be sorting a set which is at least that size. Given that a user who can set work_mem to 24GB could also set it even higher, if they were looking to run the system out of memory, this isn't considered a security issue. This overflow risk was found by the Coverity scanner. Back-patch to all supported branches, as this issue has existed since before 8.4. http://git.postgresql.org/pg/commitdiff/273dcd16282c8014a14a9ecbf467459b8702e745
  • Be sure to close() file descriptor on error case. In receivelog.c:writeTimeLineHistoryFile(), we were not properly closing the open'd file descriptor in error cases. While this wouldn't matter much if we were about to exit due to such an error, that's not the case with pg_receivexlog as it can be a long-running process and these errors are non-fatal. This resource leak was found by the Coverity scanner. Back-patch to 9.3 where this issue first appeared. http://git.postgresql.org/pg/commitdiff/cec62efd0e551a56635b47ea4185ec27a6840de7
  • Fix resource leak in initdb -X option. When creating the symlink for the xlog directory, free the string which stores the link location. Not really an issue but it doesn't hurt to be good about this- prior cleanups have fixed similar issues. Leak found by the Coverity scanner. Not back-patching as I don't see it being worth the code churn. http://git.postgresql.org/pg/commitdiff/5461d36b5b7d99e237b2f63a7975e6430727cb0b
  • Check version before allocating PQExpBuffer. In pg_dump.c:getEventTriggers, check what major version we are on before calling createPQExpBuffer() to avoid leaking that bit of memory. Leak discovered by the Coverity scanner. Back-patch to 9.3 where support for dumping event triggers was added. http://git.postgresql.org/pg/commitdiff/3355443fb188b86d59ca90912d5456b427c29116

Correctifs rejetés (à ce jour)

  • No one was disappointed this week

Correctifs en attente

  • KONDO Mitsumasa sent in two more revisions of a patch to improve the checkpoint IO scheduler for stable transaction responses.
  • Hari Babu sent in two more revisions of a patch to compute Max LSN of Data Pages.
  • Pavel Stehule sent in another revision of a patch to improve performance of calculations with NUMERIC.
  • KaiGai Kohei sent in two more revisions of a patch to implement row-level access control.
  • MauMau sent a patch intended to silence what could potentially be many redundant error messages when statistics file is inaccessible.
  • James Sewell sent in another revision of a patch to add an ldapoption to disable chasing LDAP referrals.
  • Bernd Helmle and Dean Rasheed traded patches to add tab completion to write operations on both foreign tables and writeable views.
  • Dimitri Fontaine sent in two more revisions of a patch to implement extension templates.
  • Pavel Stehule sent in two more revisions of a patch to add a simple date constructor using integers.
  • Sawada Masahiko sent in two more revisions of a patch to enable fail-back without creating a new backup on the previously failed node.
  • Kevin Grittner sent in another revision of a patch to implement REFRESH MATERIALIZED VIEWS CONCURRENTLY.
  • Josh Kupershmidt sent in a patch to implement tab completion for \lo_import.
  • ivan babrou sent in another revision of a patch to implement millisecond precision for connect_timeout in libpq.
  • Fabien COELHO sent in another revision of a patch to implement a progress indicator for pgbench.
  • Jeevan Chalke sent in a patch to fix a misbehavior in greedy regexes.
  • Dean Rasheed sent in a patch to let psql see any updateable relations, whether they're domestic tables, foreign tables, or views.
  • Nicholas White sent in another revision of a patch to allow LEAD and LAG window functions to ignore NULLs.
  • Gibheer sent in a patch to add a new GUC, replication_reserved_connections, to reserve connection slots for replication in the same way superuser_reserved_connections works for superusers.
  • Fabien COELHO sent in another revision of a patch to add a "big" test to make check.
  • Michael Paquier sent in another revision of a patch to implement REINDEX CONCURRENTLY.
  • Andres Freund sent in a patch to add an Assert to catcache.c.
  • Stas Kelvich sent in a patch to optimize storage and lookups in contrib/cube.
  • Cedric Villemain sent in another revision of a patch to to document some changes in VPATH builds.
  • Karol Trzcionka sent in another revision of a patch to implement UPDATE ... RETURNING OLD/NEW.
  • Abhijit Menon-Sen sent in a patch to instrument an issue where an INSERT wrecks plans on a table.
  • Peter Eisentraut sent in a patch to fix an issue where ECPG has two slightly different prototypes.
  • Fabrízio de Royes Mello sent in another revision of a patch to add support for "IF NOT EXISTS" to the remaining "CREATE" statements which don't yet have it.
  • Greg Smith and Fabien COELHO traded patches to add a --throttle option to pgbench.
  • Noah Misch sent in another revision of a patch to add FILTER for aggregates.