Les nouveautés des produits dérivés

Offres d'emplois autour de PostgreSQL en janvier

PostgreSQL Local

  • La cinquième conférence annuelle "Prague PostgreSQL Developers Day", organisée pas le CSPUG (PUG Tchèque & Slovaque), aura lieu le 9 février 2012 à Prague. L'appel à conférenciers est lancé. Merci d'envoyer vos propositions, incluant le sujet, une estimation de la durée et vos coordonnées à l'adresse info CHEZ p2d2 POINT cz.
  • L'appel à conférenciers a été lancé pour le FLOSS UK, programmé du 20 au 22 mars 2012 à Edimbourg. La date limite de dépôt des candidatures est fixée au 18 novembre 2011 et les conférenciers sélectionnés seront informés avant le 25 novembre. Les propositions sont à envoyer à postgresql2012 AT flossuk POINT org. Plus d'informations via le lien suivant : http://www.flossuk.org/Events/Spring2012

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)

Revues de code

Correctifs appliqués

Bruce Momjian a poussé :

Tom Lane a poussé :

  • Fix coerce_to_target_type for coerce_type's klugy handling of COLLATE. Because coerce_type recurses into the argument of a CollateExpr, coerce_to_target_type's longstanding code for detecting whether coerce_type had actually done anything (to wit, returned a different node than it passed in) was broken in 9.1. This resulted in unexpected failures in hide_coercion_node; which was not the latter's fault, since it's critical that we never call it on anything that wasn't inserted by coerce_type. (Else we might decide to "hide" a user-written function call.) Fix by removing and replacing the CollateExpr in coerce_to_target_type itself. This is all pretty ugly but I don't immediately see a way to make it nicer. Per report from Jean-Yves F. Barbier. http://git.postgresql.org/pg/commitdiff/ac7a5a3f25708c03242edc301ad008236fc36c7e
  • Use a non-locking initial test in TAS_SPIN on PPC. Further testing convinces me that this is helpful at sufficiently high contention levels, though it's still worrisome that it loses slightly at lower contention levels. Per Manabu Ori. http://git.postgresql.org/pg/commitdiff/bc2a050d40976441cdb963ad829316c23e8df0aa
  • Make executor's SELECT INTO code save and restore original tuple receiver. As previously coded, the QueryDesc's dest pointer was left dangling (pointing at an already-freed receiver object) after ExecutorEnd. It's a bit astonishing that it took us this long to notice, and I'm not sure that the known problem case with SQL functions is the only one. Fix it by saving and restoring the original receiver pointer, which seems the most bulletproof way of ensuring any related bugs are also covered. Per bug #6379 from Paul Ramsey. Back-patch to 8.4 where the current handling of SELECT INTO was introduced. http://git.postgresql.org/pg/commitdiff/dfd26f9c5f371437f243249025863ea9911aacaa
  • Fix pg_restore's direct-to-database mode for INSERT-style table data. In commit 6545a901aaf84cb05212bb6a7674059908f527c3, I removed the mini SQL lexer that was in pg_backup_db.c, thinking that it had no real purpose beyond separating COPY data from SQL commands, which purpose had been obsoleted by long-ago fixes in pg_dump's archive file format. Unfortunately this was in error: that code was also used to identify command boundaries in INSERT-style table data, which is run together as a single string in the archive file for better compressibility. As a result, direct-to-database restores from archive files made with --inserts or --column-inserts fail in our latest releases, as reported by Dick Visser. To fix, restore the mini SQL lexer, but simplify it by adjusting the calling logic so that it's only required to cope with INSERT-style table data, not arbitrary SQL commands. This allows us to not have to deal with SQL comments, E'' strings, or dollar-quoted strings, none of which have ever been emitted by dumpTableData_insert. Also, fix the lexer to cope with standard-conforming strings, which was the actual bug that the previous patch was meant to solve. Back-patch to all supported branches. The previous patch went back to 8.2, which unfortunately means that the EOL release of 8.2 contains this bug, but I don't think we're doing another 8.2 release just because of that. http://git.postgresql.org/pg/commitdiff/f3316a05b5ddee619ba0617716a4fef3ceb29ded
  • Fix typo, pg_types_date.h => pgtypes_date.h. Spotted by Koizumi Satoru. http://git.postgresql.org/pg/commitdiff/7a72efda72a85eef1513f2a02449e24dc4bdfc74
  • Use __sync_lock_test_and_set() for spinlocks on ARM, if available. Historically we've used the SWPB instruction for TAS() on ARM, but this is deprecated and not available on ARMv6 and later. Instead, make use of a GCC builtin if available. We'll still fall back to SWPB if not, so as not to break existing ports using older GCC versions. Eventually we might want to try using __sync_lock_test_and_set() on some other architectures too, but for now that seems to present only risk and not reward. Back-patch to all supported versions, since people might want to use any of them on more recent ARM chips. Martin Pitt http://git.postgresql.org/pg/commitdiff/0a41e865845bfa5d7aafcc5fe000dafa26573fef

Peter Eisentraut a poussé :

Andrew Dunstan a poussé :

Michael Meskes a poussé :

Robert Haas a poussé :

  • Fix variable confusion in BufferSync(). As noted by Heikki Linnakangas, the previous coding confused the "flags" variable with the "mask" variable. The affect of this appears to be that unlogged buffers would get written out at every checkpoint rather than only at shutdown time. Although that's arguably an acceptable failure mode, I'm back-patching this change, since it seems like a poor idea to rely on this happening to work. http://git.postgresql.org/pg/commitdiff/7e4911b2ae33acff7b85234b91372133ec6df9d4
  • Make the number of CLOG buffers adaptive, based on shared_buffers. Previously, this was hardcoded: we always had 8. Performance testing shows that isn't enough, especially on big SMP systems, so we allow it to scale up as high as 32 when there's adequate memory. On the flip side, when shared_buffers is very small, drop the number of CLOG buffers down to as little as 4, so that we can start the postmaster even when very little shared memory is available. Per extensive discussion with Simon Riggs, Tom Lane, and others on pgsql-hackers. http://git.postgresql.org/pg/commitdiff/33aaa139e6302e81b4fbf2570be20188bb974c4f
  • Improve behavior of concurrent ALTER TABLE, and do some refactoring. ALTER TABLE (and ALTER VIEW, ALTER SEQUENCE, etc.) now use a RangeVarGetRelid callback to check permissions before acquiring a table lock. We also now use the same callback for all forms of ALTER TABLE, rather than having separate, almost-identical callbacks for ALTER TABLE .. SET SCHEMA and ALTER TABLE .. RENAME, and no callback at all for everything else. I went ahead and changed the code so that no form of ALTER TABLE works on foreign tables; you must use ALTER FOREIGN TABLE instead. In 9.1, it was possible to use ALTER TABLE .. SET SCHEMA or ALTER TABLE .. RENAME on a foreign table, but not any other form of ALTER TABLE, which did not seem terribly useful or consistent. Patch by me; review by Noah Misch. http://git.postgresql.org/pg/commitdiff/1489e2f26a4c0318938b3085f50976512f321d84
  • Fix backwards logic in previous commit. I wrote this code before committing it, but managed not to include it in the actual commit. http://git.postgresql.org/pg/commitdiff/df970a0ac8fb416b179825a135c18ad3293076af
  • Slightly reorganize struct SnapshotData. This squeezes out a bunch of alignment padding, reducing the size from 72 to 56 bytes on my machine. At least in my testing, this didn't produce any measurable performance improvement, but the space savings seem like enough justification. Andres Freund http://git.postgresql.org/pg/commitdiff/1fc3d18faa8f4476944bc6854be0f7f6adf4aec8

Correctifs rejetés (à ce jour)

  • Pas de déception cette semaine :-)

Correctifs en attente

  • Noah Misch and Simon Riggs traded patches to make SnapshotNow an MVCC snapshot.
  • Pavel Stehule sent in three revisions of a patch to add IF EXISTS to ALTER TABLE for tables which may or may not exist.
  • Simon Riggs sent in two patches offering differing mitigations to PostgreSQL's lame buffer replacement strategy.
  • KaiGai Kohei sent in two revisions of a new patch to control information leaks from certain kinds of views.
  • Alexander Korotkov sent in two more revisions of a patch to collect frequency statistics for arrays.
  • Simon Riggs sent in a patch to check for busy state before putting buffer on the freelist.
  • Simon Riggs sent in two revisions of a patch to avoid some lock contention.
  • Andrew Dunstan sent in a cleaned-up version of Brad Davis patch to bring the FreeBSD kernel tuning documentation up to date.
  • Peter Geoghegan sent in two revisions of a patch to save energy by having a bgwriter latch.
  • Noah Misch sent in two revisions of a patch to prevent foreign key validations for ALTER TABLE ... ALTER TYPE where table rewriting is not already happening.
  • Simon Riggs sent in a patch to remove clog contention caused by his dirty CLOG LRU.
  • Simon Riggs sent in six more revisions of a patch to add 16-bit page checksums without changing the page format.
  • Robert Haas sent in a WIP patch to optimize repeated MVCC snapshots by reusing same if no transactions have committed or aborted since it was taken.
  • Jim Mlodgenski sent in a patch intended to allow psql to display client messages.
  • Robert Haas sent in a patch to fix how a loop works in VACUUM.
  • Dan Ports sent in a patch to fix a corner case in the SSI cleanup code that isn't handled correctly.
  • Noah Misch sent in a patch to tighten up two issues introduced in his previous patch, which introduced a CheckIndexCompatible() that approves btree and hash indexes having changed to a different operator class within the same operator family.
  • Heikki Linnakangas sent in anoTher revision of his patch to move more work outside WALInsertLock.
  • Heikki Linnakangas sent in a patch to allow profiling LWLocks.
  • KaiGai Kohei sent in a patch which adds the option to assert that a function is leakproof in the sense that it can be pushed down into a view and not leak information. This goes to the effort to prevent certain kinds of information leaks in views.
  • Simon Riggs sent in a patch which adds a ClogHistory cache which allows access to the read-only tail of pages in the clog. This separates historical accesses by readers from current write access by committers.
  • Dimitri Fontaine sent in a patch to add in-line extensions, namely ones which do not require access to the filesystem or network in order to work.
  • Peter Eisentraut sent in a patch to add tab completion for GRANT role to psql.
  • Peter Eisentraut sent in a patch to add the SQL standard "collation for (expression)" feature.
  • Ryan Kelly sent in a patch to fix some misbehavior when psql connects to a non-existent host.