Les nouveautés des produits dérivés

Offres d'emplois autour de PostgreSQL en février

PostgreSQL Local

  • La 7ème conférence annuelle "Prague PostgreSQL Developers Day" (P2D2), organisée par le CSPUG (PUG tchèque et slovaque), aura lieu le 6 février 2014 à la Faculté des Sciences Mathématiques & Physiques de l'Université Charles (Malostranske namesti 25, Prague). Infos en langue tchèque ci-après : http://www.p2d2.cz/
  • Le PGDay Nordique 2014 aura lieu à Stockholm (Suède) à l'hôtel Hilton le 20 mars 2014 : http://2014.nordicpgday.org/
  • La PGConf NYC 2014 aura lieu les 3 & 4 avril 2014 à New-York (New-York, USA) : http://nyc.pgconf.us/2014/
  • Le sommet Open Data aura lieu le 11 avril 2014 à Denver (Colorado, États-Unis) : http://www.opendatasummit.com
  • La PGCon 2014, la conférence mondiale des développeurs PostgreSQL, se tiendra à Ottawa (Ontario, Canada) du 20 au 24 mai 2014 : http://www.pgcon.org/2014/

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

Fujii Masao a poussé :

Andrew Dunstan a poussé :

Robert Haas a poussé :

Tom Lane a poussé :

  • Fix *-qualification of named parameters in SQL-language functions. Given a composite-type parameter named x, "$1.*" worked fine, but "x.*" not so much. This has been broken since named parameter references were added in commit 9bff0780cf5be2193a5bad0d3df2dbe143085264, so patch back to 9.2. Per bug #9085 from Hardy Falk. http://git.postgresql.org/pg/commitdiff/0def2573c5f0ff127d0c7dc12ec7da56ae6fb7fe
  • Fix lexing of U& sequences just before EOF. Commit a5ff502fceadc7c203b0d7a11b45c73f1b421f69 was a brick shy of a load in the backend lexer too, not just psql. Per further testing of bug #9068. In passing, improve related comments. http://git.postgresql.org/pg/commitdiff/0c2338abbb17b7b319f36a73d8db77735346804f
  • Improve connection-failure error handling in contrib/postgres_fdw. postgres_fdw tended to say "unknown error" if it tried to execute a command on an already-dead connection, because some paths in libpq just return a null PGresult for such cases. Out-of-memory might result in that, too. To fix, pass the PGconn to pgfdw_report_error, and look at its PQerrorMessage() string if we can't get anything out of the PGresult. Also, fix the transaction-exit logic to reliably drop a dead connection. It was attempting to do that already, but it assumed that only connection cache entries with xact_depth > 0 needed to be examined. The folly in that is that if we fail while issuing START TRANSACTION, we'll not have bumped xact_depth. (At least for the case I was testing, this fix masks the other problem; but it still seems like a good idea to have the PGconn fallback logic.) Per investigation of bug #9087 from Craig Lucas. Backpatch to 9.3 where this code was introduced. http://git.postgresql.org/pg/commitdiff/00d4f2af8bd6a1b9db2f676cc76b64d98ace99fb
  • Remove unnecessary relcache flushes after changing btree metapages. These flushes were added in my commit d2896a9ed, which added the btree logic that keeps a cached copy of the index metapage data in index relcache entries. The idea was to ensure that other backends would promptly update their cached copies after a change. However, this is not really necessary, since _bt_getroot() has adequate defenses against believing a stale root page link, and _bt_getrootheight() doesn't have to be 100% right. Moreover, if it were necessary, a relcache flush would be an unreliable way to do it, since the sinval mechanism believes that relcache flush requests represent transactional updates, and therefore discards them on transaction rollback. Therefore, we might as well drop these flush requests and save the time to rebuild the whole relcache entry after a metapage change. If we ever try to support in-place truncation of btree indexes, it might be necessary to revisit this issue so that _bt_getroot() can't get caught by trying to follow a metapage link to a page that no longer exists. A possible solution to that is to make use of an smgr, rather than relcache, inval request to force other backends to discard their cached metapages. But for the moment this is not worth pursuing. http://git.postgresql.org/pg/commitdiff/ac8bc3b6e4a28cf7cd33fe11866d72f6deb2a38f
  • Assert(IsTransactionState()) in RelationIdGetRelation(). Commit 42c80c696e9c8323841180029cc62741c21bd356 added an Assert(IsTransactionState()) in SearchCatCache(), to catch any code that thought it could do a catcache lookup outside transactions. Extend the same idea to relcache lookups. http://git.postgresql.org/pg/commitdiff/ddfc9cb054abed4d08cc2709c9b2197dab96f449
  • In RelationClearRelation, postpone cache reload if !IsTransactionState(). We may process relcache flush requests during transaction startup or shutdown. In general it's not terribly safe to do catalog access at those times, so the code's habit of trying to immediately revalidate unflushable relcache entries is risky. Although there are no field trouble reports that are positively traceable to this, we have been able to demonstrate failure of the assertions recently added in RelationIdGetRelation() and SearchCatCache(). On the other hand, it seems safe to just postpone revalidation of the cache entry until we're inside a valid transaction. The one case where this is questionable is where we're exiting a subtransaction and the outer transaction is holding the relcache entry open --- but if we made any significant changes to the rel inside such a subtransaction, we've got problems anyway. There are mechanisms in place to prevent that (to wit, locks for cross-session cases and CheckTableNotInUse() for intra-session cases), so let's trust to those mechanisms to keep us out of trouble. http://git.postgresql.org/pg/commitdiff/8de3e410faa06ab20ec1aa6d0abb0a2c040261ba

Peter Eisentraut a poussé :

Heikki Linnakangas a poussé :

  • Fix thinko in comment. Amit Langote http://git.postgresql.org/pg/commitdiff/e001030c2711c0fb65cf72813f16a8eb26483c16
  • Speed up "rare & frequent" type GIN queries. If you have a GIN query like "rare & frequent", we currently fetch all the items that match either rare or frequent, call the consistent function for each item, and let the consistent function filter out items that only match one of the terms. However, if we can deduce that "rare" must be present for the overall qual to be true, we can scan all the rare items, and for each rare item, skip over to the next frequent item with the same or greater TID. That greatly speeds up "rare & frequent" type queries. To implement that, introduce the concept of a tri-state consistent function, where the 3rd value is MAYBE, indicating that we don't know if that term is present. Operator classes only provide a boolean consistent function, so we simulate the tri-state consistent function by calling the boolean function several times, with the MAYBE arguments set to all combinations of TRUE and FALSE. Testing all combinations is only feasible for a small number of MAYBE arguments, but it is envisioned that we'll provide a way for operator classes to provide a native tri-state consistent function, which can be much more efficient. But that is not included in this patch. We were already using that trick to for lossy pages, calling the consistent function with the lossy entry set to TRUE and FALSE. Now that we have the tri-state consistent function, use it for lossy pages too. Alexander Korotkov, with fair amount of refactoring by me. http://git.postgresql.org/pg/commitdiff/dbc649fd773e7e16458bfbec2611bf15f4355bc4
  • Initialize the entryRes array between each call to triConsistent. The shimTriConstistentFn, which calls the opclass's consistent function with all combinations of TRUE/FALSE for any MAYBE argument, modifies the entryRes array passed by the caller. Change startScanKey to re-initialize it between each call to accommodate that. It's actually a bad habit by shimTriConsistentFn to modify its argument. But the only caller that doesn't already re-initialize the entryRes array was startScanKey, and it's easy for startScanKey to do so. Add a comment to shimTriConsistentFn about that. Note: this does not give a free pass to opclass-provided consistent functions to modify the entryRes argument; shimTriConsistent assumes that they don't, even though it does it itself. While at it, refactor startScanKey to allocate the requiredEntries and additionalEntries after it knows exactly how large they need to be. Saves a little bit of memory, and looks nicer anyway. Per complaint by Tom Lane, buildfarm and the pg_trgm regression test. http://git.postgresql.org/pg/commitdiff/6aa2bdf6a01ce099e315cb313396ca4b8415321b

Magnus Hagander a poussé :

Stephen Frost a poussé :

Correctifs rejetés (à ce jour)

  • No one was disappointed this week

Correctifs en attente

  • Kyotaro HORIGUCHI sent in another revision of a patch make UNION ALL on partitioned tables use indices.
  • Rajeev Rastogi sent in another revision of a patch to fix a bug where the PostgreSQL Service on Windows does not start if data directory given is relative path.
  • Antonin Houska sent in another revision of a patch to allow throttling backups.
  • Gurjeet Singh sent in a patch to create a pg_hibernate, which enables hibernation of PostgreSQL shared buffers.
  • Bruce Momjian sent in a patch to make pg_upgrade allocate and use memory more efficiently.
  • Christian Kruse sent in two more revisions of a patch to show the process IDs of processes holding a lock, and show relation and tuple info for a lock to acquire.
  • Kyotaro HORIGUCHI sent in a patch to fix a bug in handling of non-supported IPv6.
  • Michael Paquier sent in four revisions of a patch to add a XLogRecPtr/LSN data type.
  • Alvaro Herrera sent in two more revisions of a patch to add CREATE support to event triggers.
  • Christian Kruse sent in two more revisions of a patch to show xid and xmin in pg_stat_activity and pg_stat_replication.
  • Alexander Korotkov and Heikki Linnakangas traded patches to add a "fast scan" option for GIN.
  • MauMau sent in another revision of a patch to fix a bug where PostgreSQL fails to start on Windows if it crashes after tablespace creation.
  • Ronan Dunklau sent in another revision of a patch to make it possible to create triggers on foreign tables.
  • Heikki Linnakangas sent in another revision of a patch to fix an issue with failure while inserting parent tuple to B-tree.
  • Amit Kapila and Heikki Linnakangas traded patches to improve performance by reducing WAL for update operations.
  • Jeremy Harris sent in three revisions of a patch to improve performance in the transition to external sort.
  • SAWADA Masahiko sent in a patch to add 'dml' as a possible value for log_statement.
  • Emre Hasegeli sent in another revision of a patch to add GiST support for inet datatypes.
  • Andrew Dunstan sent in another revision of a patch to implement jsonb and nested hstore. Erik Rijkers sent in patches to update the documentation for same.
  • Laurenz Albe sent in a patch to the psql documentation to bring it into line with recent changes in how encoding is handled.
  • Etsuro Fujita sent in another revision of a patch to add INHERIT support for foreign tables.
  • Kaigai Kouhei sent in another revision of a patch to add cache-only scans.
  • Amit Kapila sent in another revision of a patch to allow retaining dynamic shared memory segments for the postmaster lifetime.
  • Andres Freund sent in another revision of a patch to support logical changeset extraction.
  • Andres Freund sent in another revision of a patch to allow escaping of option values for options passed at connection start.
  • Peter Eisentraut sent in another revision of a patch to add tests for client programs.
  • Tom Lane sent in a patch to remove some legacy silliness from the document build.
  • Craig Ringer, Tom Lane, and Marco Atzeri traded patches to fix the cygwin build.
  • Hardy Falk sent in a patch to speed up duplicate elimination in NOTIFY.
  • Magnus Hagander sent in a patch to ensure that the streaming xlog process of pg_basebackup dies when when the foreground process does.
  • Pavel Stehule sent in another revision of a patch to enable PL/pgsql to have multiple plugins.