La PGConf européenne 2014 se tiendra à Madrid (Espagne) du 21 au 24 octobre, à l'hôtel Miguel Angel : http://2014.pgconf.eu/

[ndt: résumé du dernier meetup parisien (le prochain aura peut-être lieu au mois de juin) : http://tapoueh.org/blog/2014/04/17-Meetup-PostgreSQL.html]

Les nouveautés des produits dérivés

Offres d'emplois autour de PostgreSQL en avril

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é :

  • GIN entry pages follow the standard page layout - tell XLogInsert. The entry B-tree pages all follow the standard page layout. The 9.3 code has this right. I inadvertently changed this at some point during the big refactorings in git master. http://git.postgresql.org/pg/commitdiff/1bd3842163f2b44e29938b5ab158bb6a589ff10c
  • Remove dead checks for invalid left page in ginDeletePage. In some places, the function assumes the left page is valid, and in others, it checks if it is valid. Remove all the checks. http://git.postgresql.org/pg/commitdiff/e3e6e3af560116adc20cc9d6e75bfe82a45def60
  • Set pd_lower on internal GIN posting tree pages. This allows squeezing out the unused space in full-page writes. And more importantly, it can be a useful debugging aid. In hindsight we should've done this back when GIN was added - we wouldn't need the 'maxoff' field in the page opaque struct if we had used pd_lower and pd_upper like on normal pages. But as long as there can be pages in the index that have been binary-upgraded from pre-9.4 versions, we can't rely on that, and have to continue using 'maxoff'. Most of the code churn comes from renaming some macros, now that they're used on internal pages, too. This change is completely backwards-compatible, no effect on pg_upgrade. http://git.postgresql.org/pg/commitdiff/f1dadd34fa9fccc72800ed206b8c274073dfd039
  • Use correctly-sized buffer when zero-filling a WAL file. I mixed up BLCKSZ and XLOG_BLCKSZ when I changed the way the buffer is allocated a couple of weeks ago. With the default settings, they are both 8k, but they can be changed at compile-time. http://git.postgresql.org/pg/commitdiff/848b9f05ab283724dd063d936a92568c1fdf422b
  • Set the all-visible flag on heap page before writing WAL record, not after. If we set the all-visible flag after writing WAL record, and XLogInsert takes a full-page image of the page, the image would not include the flag. We will then proceed to set the VM bit, which would then be set without the corresponding all-visible flag on the heap page. Found by comparing page images on master and standby, after writing/replaying each WAL record. (There is still a discrepancy: the all-visible flag won't be set after replaying the HEAP_CLEAN record, even though it is set in the master. However, it will be set when replaying the HEAP2_VISIBLE record and setting the VM bit, so the all-visible flag and VM bit are always consistent on the standby, even though they are momentarily out-of-sync with master) Backpatch to 9.3 where this code was introduced. http://git.postgresql.org/pg/commitdiff/2a8e1ac598c864ac2775f33da21a117c363c6c7f

Robert Haas a poussé :

Tom Lane a poussé :

  • Fix bogus handling of bad strategy number in GIST consistent() functions. Make sure we throw an error instead of silently doing the wrong thing when fed a strategy number we don't recognize. Also, in the places that did already throw an error, spell the error message in a way more consistent with our message style guidelines. Per report from Paul Jones. Although this is a bug, it won't occur unless a superuser tries to do something he shouldn't, so it doesn't seem worth back-patching. http://git.postgresql.org/pg/commitdiff/4dfb065b3ab662dcc96d07ee7fc9dadf6975a0cb
  • Use AF_UNSPEC not PF_UNSPEC in getaddrinfo calls. According to the Single Unix Spec and assorted man pages, you're supposed to use the constants named AF_xxx when setting ai_family for a getaddrinfo call. In a few places we were using PF_xxx instead. Use of PF_xxx appears to be an ancient BSD convention that was not adopted by later standardization. On BSD and most later Unixen, it doesn't matter much because those constants have equivalent values anyway; but nonetheless this code is not per spec. In the same vein, replace PF_INET by AF_INET in one socket() call, which wasn't even consistent with the other socket() call in the same function let alone the remainder of our code. Per investigation of a Cygwin trouble report from Marco Atzeri. It's probably a long shot that this will fix his issue, but it's wrong in any case. http://git.postgresql.org/pg/commitdiff/cad4fe6455bdc9ef1026b4a247eeb588ab3a8bd6
  • Update oidjoins regression test for 9.4. Now that we're pretty much feature-frozen, it's time to update the checks on system catalog foreign-key references. (It looks like we missed doing this altogether for 9.3. Sigh.) http://git.postgresql.org/pg/commitdiff/cbb5e23bfa92973bddf11935448a9d42c32f7d42
  • Fix contrib/postgres_fdw's remote-estimate representation of array Params. We were emitting "(SELECT null::typename)", which is usually interpreted as a scalar subselect, but not so much in the context "x = ANY(...)". This led to remote-side parsing failures when remote_estimate is enabled. A quick and ugly fix is to stick in an extra cast step, "((SELECT null::typename)::typename)". The cast will be thrown away as redundant by parse analysis, but not before it's done its job of making sure the grammar sees the ANY argument as an a_expr rather than a select_with_parens. Per an example from Hannu Krosing. http://git.postgresql.org/pg/commitdiff/5b68d81697bcb0d16136bd037e454ee53c521185
  • Rename EXPLAIN ANALYZE's "total runtime" output to "execution time". Now that EXPLAIN also outputs a "planning time" measurement, the use of "total" here seems rather confusing: it sounds like it might include the planning time which of course it doesn't. Majority opinion was that "execution time" is a better label, so we'll call it that. This should be noted as a backwards incompatibility for tools that examine EXPLAIN ANALYZE output. In passing, I failed to resist the temptation to do a little editing on the materialized-view example affected by this change. http://git.postgresql.org/pg/commitdiff/5f86cbd714c9d43c0fbb43a7b172f77ebf429548
  • Fix unused-variable warning on Windows. Introduced in 585bca39: msgid is not used in the Windows code path. Also adjust comments a tad (mostly to keep pgindent from messing it up). David Rowley http://git.postgresql.org/pg/commitdiff/01563158235f5650743fd9b1dfa80c3d8faf89bb

Peter Eisentraut a poussé :

Bruce Momjian a poussé :

Magnus Hagander a poussé :

Andrew Dunstan a poussé :

  • Attempt to get plpython regression tests working again for MSVC builds. This has probably been broken for quite a long time. Buildfarm member currawong's current results suggest that it's been broken since 9.1, so backpatch this to that branch. This only supports Python 2 - I will handle Python 3 separately, but this is a fairly simple fix. http://git.postgresql.org/pg/commitdiff/ef158312e96960bfbc802ceda58f432f6fd845eb

Alvaro Herrera a poussé :

Correctifs rejetés (à ce jour)

  • Andreas 'ads' Scherbaum's patch to change iff to if. The former is actually correct.

Correctifs en attente

  • David Rowley sent in another revision of a patch to optimize window functions by allowing pushdowns of items matching PARTITION BY clauses.
  • Heikki Linnakangas sent in a patch to fix a race condition between PREPARE TRANSACTION and COMMIT PREPARED.
  • Fabrízio de Royes Mello sent in another revision of a patch to implement CINE functionality for sequences.
  • Stephen Frost sent in another revision of a patch to implement row-level access controls.
  • Peter Geoghegan sent in a patch to improve on the current clock sweep algorithm for B-tree leaf pages.
  • Amit Kapila sent in a patch to fix a dsm invalid errcode issue.
  • Zoltan Boszormenyi sent in another rebased revision of the ECPG FETCH patch.
  • Nicholas White sent in another revision of a patch to make it possible for lag and lead window functions to ignore nulls.
  • Dmitri Voronin sent in a patch to add a new sslinfo extension which includes: ssl_get_count_of_extensions(), ssl_get_extension_names(), ssl_get_extension_value(text), and ssl_is_critical_extension(text).
  • Michael Paquier and Fabrízio de Royes Mello traded patches to make it possible for the verbose output of pg_dump to include schema names for everything dumped.
  • MauMau sent in another revision of a patch to fix an issue where pg_ctl always uses the same event source on Windows.
  • Tom Lane sent in two more revisions of a patch to detoast composite array elements.
  • Mohammad Alhashash sent in a patch to allow empty targets in the unaccent dictionary.
  • Christian Ullrich sent in a patch to arrange things so on Windows, PostgreSQL silently ignores control-C and control-break when started via pg_ctl.
  • Michael Paquier sent in a patch to remove a dependency on wsock32.lib when compiling code on Windows.