Il y aura une série de conférences et événements dédiée à PostgreSQL au FOSDEM, à Bruxelles les 4 & 5 février prochains, en plus des conférenciers de la communauté PostgreSQL inscrits dans la série principale : http://fosdem.org/2012/

L'appel à conférenciers pour la PGCon a été étendu jusqu'au 31 janvier 2012 : http://www.pgcon.org/2012/papers.php

Le PGDay de New-York aura lieu le 2 avril 2012 au Lighthouse International : http://pgday.nycpug.org

Le PGDay français est programmé le 7 juin 2012 à Lyon : http://www.pgday.fr

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.
  • La PGCon 2012 sera tenue à l'Université d'Ottawa, les 17 et 18 mai 2012. Elle sera précédée par deux jours de tutoriels les 15 & 16 mai 2012 : http://www.pgcon.org/2012/

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

Revues de code

Correctifs appliqués

Simon Riggs a poussé :

Robert Haas a poussé :

Bruce Momjian a poussé :

Tom Lane a poussé :

  • Suppress possibly-uninitialized-variable warning seen with older gcc versions. http://git.postgresql.org/pg/commitdiff/beef89567e3a0e3e1c753754a474065c5ad632fe
  • Suppress variable-clobbered-by-longjmp warning seen with older gcc versions. http://git.postgresql.org/pg/commitdiff/f26c9896b3da1b6aa5c560c4743f22a2a6c84919
  • Use parameterized paths to generate inner indexscans more flexibly. This patch fixes the planner so that it can generate nestloop-with- inner-indexscan plans even with one or more levels of joining between the indexscan and the nestloop join that is supplying the parameter. The executor was fixed to handle such cases some time ago, but the planner was not ready. This should improve our plans in many situations where join ordering restrictions formerly forced complete table scans. There is probably a fair amount of tuning work yet to be done, because of various heuristics that have been added to limit the number of parameterized paths considered. However, we are not going to find out what needs to be adjusted until the code gets some real-world use, so it's time to get it in there where it can be tested easily. Note API change for index AM amcostestimate functions. I'm not aware of any non-core index AMs, but if there are any, they will need minor adjustments. http://git.postgresql.org/pg/commitdiff/e2fa76d80ba571d4de8992de6386536867250474
  • Undo 8.4-era lobotomization of subquery pullup rules. After the planner was fixed to convert some IN/EXISTS subqueries into semijoins or antijoins, we had to prevent it from doing that in some cases where the plans risked getting much worse. The reason the plans got worse was that in the unoptimized implementation, subqueries could reference parameters from the outer query at any join level, and so full table scans could be avoided even if they were one or more levels of join below where the semi/anti join would be. Now that we have sufficient mechanism in the planner to handle such cases properly, it should no longer be necessary to play dumb here. This reverts commits 07b9936a0f10d746e5076239813a5e938f2f16be and cd1f0d04bf06938c0ee5728fc8424d62bcf2eef3. The latter was a stopgap fix that wasn't really sufficiently analyzed at the time. Rather than just restricting ourselves to cases where the new join can be stacked on the right-hand input, we should also consider whether it can be stacked on the left-hand input. http://git.postgresql.org/pg/commitdiff/0816fad6eebddb8f1f0e21635e46625815d690b9
  • Fix error detection in contrib/pgcrypto's encrypt_iv() and decrypt_iv(). Due to oversights, the encrypt_iv() and decrypt_iv() functions failed to report certain types of invalid-input errors, and would instead return random garbage values. Marko Kreen, per report from Stefan Kaltenbrunner http://git.postgresql.org/pg/commitdiff/a8b4b84360e5ea145d12d372305b50f6774b0366
  • Fix handling of data-modifying CTE subplans in EvalPlanQual. We can't just skip initializing such subplans, because the referencing CTE node will expect to find the subplan available when it initializes. That in turn means that ExecInitModifyTable must allow the case (which actually it needed to do anyway, since there's no guarantee that ModifyTable is exactly at the top of the CTE plan tree). So move the complaint about not being allowed in EvalPlanQual mode to execution instead of initialization. Testing turned up yet another problem, which is that we'd try to re-initialize the result relation's index list, leading to leaks and dangling pointers. Per report from Phil Sorber. Back-patch to 9.1 where data-modifying CTEs were introduced. http://git.postgresql.org/pg/commitdiff/7c1719bc68ec1c347e7c80c3735bf3373e765f35
  • Add simple tests of EvalPlanQual using the isolationtester infrastructure. Much more could be done here, but at least now we have *some* automated test coverage of that mechanism. In particular this tests the writable-CTE case reported by Phil Sorber. In passing, remove isolationtester's arbitrary restriction on the number of steps in a permutation list. I used this so that a single spec file could be used to run several related test scenarios, but there are other possible reasons to want a step series that's not exactly a permutation. Improve documentation and fix a couple other nits as well. http://git.postgresql.org/pg/commitdiff/759d9d67695783f6d04a85aba383a41c5382548c
  • Fix handling of init_plans list in inheritance_planner(). Formerly we passed an empty list to each per-child-table invocation of grouping_planner, and then merged the results into the global list. However, that fails if there's a CTE attached to the statement, because create_ctescan_plan uses the list to find the plan referenced by a CTE reference; so it was unable to find any CTEs attached to the outer UPDATE or DELETE. But there's no real reason not to use the same list throughout the process, and doing so is simpler and faster anyway. Per report from Josh Berkus of "could not find plan for CTE" failures. Back-patch to 9.1 where we added support for WITH attached to UPDATE or DELETE. Add some regression test cases, too. http://git.postgresql.org/pg/commitdiff/4ec6581c0cdddfda767641f535116ee9a0412149
  • Update statement about sorting of character-string data. The sort order is no longer fixed at database creation time, but can be controlled via COLLATE. Noted by Thomas Kellerer. http://git.postgresql.org/pg/commitdiff/17d3233e1bfd9fbe856f032a542f2c595e79ca01
  • Add caution about multiple unique indexes breaking plpgsql upsert example. Per Phil Sorber, though I didn't use his wording exactly. http://git.postgresql.org/pg/commitdiff/ed6e0545f5f6e9977c8410e04244138b567c5a73
  • Fix pushing of index-expression qualifications through UNION ALL. In commit 57664ed25e5dea117158a2e663c29e60b3546e1c, I made the planner wrap non-simple-variable outputs of appendrel children (IOW, child SELECTs of UNION ALL subqueries) inside PlaceHolderVars, in order to solve some issues with EquivalenceClass processing. However, this means that any upper-level WHERE clauses mentioning such outputs will now contain PlaceHolderVars after they're pushed down into the appendrel child, and that prevents indxpath.c from recognizing that they could be matched to index expressions. To fix, add explicit stripping of PlaceHolderVars from index operands, same as we have long done for RelabelType nodes. Add a regression test covering both this and the plain-UNION case (which is a totally different code path, but should also be able to do it). Per bug #6416 from Matteo Beccati. Back-patch to 9.1, same as the previous change. http://git.postgresql.org/pg/commitdiff/b28ffd0fcc583c1811e5295279e7d4366c3cae6c
  • Tweak index costing for problems with partial indexes. btcostestimate() makes an estimate of the number of index tuples that will be visited based on knowledge of which index clauses can actually bound the scan within nbtree. However, it forgot to account for partial indexes in this calculation, with the result that the cost of the index scan could be significantly overestimated for a partial index. Fix that by merging the predicate with the abbreviated indexclause list, in the same way as we do with the full list to estimate how many heap tuples will be visited. Also, slightly increase the "fudge factor" that's meant to give preference to smaller indexes over larger ones. While this is applied to all indexes, it's most important for partial indexes since it can be the only factor that makes a partial index look cheaper than a similar full index. Experimentation shows that the existing value is so small as to easily get swamped by noise such as page-boundary-roundoff behavior. I'm tempted to kick it up more than this, but will refrain for now. Per report from Ruben Blanco. These are long-standing issues, but given the lack of prior complaints I'm not going to risk changing planner behavior in back branches by back-patching. http://git.postgresql.org/pg/commitdiff/21a39de5809cd3050a37d2554323cc1d0cbeed9d
  • Fix typo in comment. Peter Geoghegan http://git.postgresql.org/pg/commitdiff/dd243b3e40c24cd7c6b0db80bb39061f8f85af7b
  • Assorted comment fixes, mostly just typos, but some obsolete statements. YAMAMOTO Takashi http://git.postgresql.org/pg/commitdiff/ad10853b30b84d89905e023afa599de3a1fea4c6

Peter Eisentraut a poussé :

  • Remove quotes around format_type_be() output. format_type_be() takes care of any needed quoting itself. http://git.postgresql.org/pg/commitdiff/89dda5f2979fbe277809369ff88832ab39e83ff0
  • Do not access indclass through Form_pg_index. Normally, accessing variable-length members of catalog structures past the first one doesn't work at all. Here, it happened to work because indnatts was checked to be 1, and so the defined FormData_pg_index layout, using int2vector[1] and oidvector[1] for variable-length arrays, happened to match the actual memory layout. But it's a very fragile assumption, and it's not in a performance-critical path, so code it properly using heap_getattr() instead. bug analysis by Tom Lane http://git.postgresql.org/pg/commitdiff/8a3f745f160d8334ad978676828d3926ac949f43
  • Hide most variable-length fields from Form_pg_* structs. Those fields only appear in the structs so that genbki.pl can create the BKI bootstrap files for the catalogs. But they are not actually usable from C. So hiding them can prevent coding mistakes, saves stack space, and can help the compiler. In certain catalogs, the first variable-length field has been kept visible after manual inspection. These exceptions are noted in C comments. reviewed by Tom Lane http://git.postgresql.org/pg/commitdiff/8137f2c32322c624e0431fac1621e8e9315202f9
  • Disallow ALTER DOMAIN on non-domain type everywhere. This has been the behavior already in most cases, but through omission, ALTER DOMAIN / OWNER TO and ALTER DOMAIN / SET SCHEMA would silently work on non-domain types as well. http://git.postgresql.org/pg/commitdiff/27874583627e049a049dc1327deb12a02a7013ab
  • Revert unfortunate whitespace change. In e5e2fc842c418432756d8b5825ff107c6c5fc4c3, blank lines were removed after a comment block, which now looks as though the comment refers to the immediately following code, but it actually refers to the preceding code. So put the blank lines back. http://git.postgresql.org/pg/commitdiff/bf90562aa464e3a9afedde5f0007058f381d00fe
  • Show default privileges in information schema. Hitherto, the information schema only showed explicitly granted privileges that were visible in the *acl catalog columns. If no privileges had been granted, the implicit privileges were not shown. To fix that, add an SQL-accessible version of the acldefault() function, and use that inside the aclexplode() calls to substitute the catalog-specific default privilege set for null values. reviewed by Abhijit Menon-Sen http://git.postgresql.org/pg/commitdiff/b376ec6fa57bc76037014ede29498e2d1611968e

Alvaro Herrera a poussé :

  • Add pg_trigger_depth() function. This reports the depth level of triggers currently in execution, or zero if not called from inside a trigger. No catversion bump in this patch, but you have to initdb if you want access to the new function. Author: Kevin Grittner http://git.postgresql.org/pg/commitdiff/74ab96a45ef6259aa6a86a781580edea8488511a
  • Have \copy go through SendQuery. This enables a bunch of features, notably ON_ERROR_ROLLBACK. It also makes COPY failure (either in the server or psql) as a whole behave more sanely in psql. Additionally, having more commands in the same command line as COPY works better (though since psql splits lines at semicolons, this doesn't matter much unless you're using -c). Also tighten a couple of switches on PQresultStatus() to add PGRES_COPY_BOTH support and stop assuming that unknown statuses received are errors; have those print diagnostics where warranted. Author: Noah Misch http://git.postgresql.org/pg/commitdiff/08146775acd8bfe0fcc509c71857abb928697171

Magnus Hagander a poussé :

Heikki Linnakangas a poussé :

Correctifs rejetés (à ce jour)

  • Pas de déception cette semaine :-)

Correctifs en attente

  • Noah Misch sent in another revision of the patch to collect statistics for arrays.
  • Jim Mlodgensky and Heikki Linnakangas traded patches to add a new GUC for welcome messages.
  • Matthew Draper sent in another revision of the patch to enable SQL language functions to reference parameters by name.
  • Simon Riggs sent in another revision of the patch to have a WAL restore process during recovery.
  • Simon Riggs sent in another revision of the freelist_wait_stats patch.
  • Alexander Korotkov and Jeff Davis traded patches for GiST indexing on range types.
  • Alvaro Herrera sent in two more revisions of the FOREIGN KEY LOCK patch.
  • Jaime Casanova sent in another revision of the relation_free_space patch.
  • Thomas Ogrisegg sent in a patch intended to fix a bug in pg_basebackup, which exits with 0 even if it had errors while writing the backup to disk when the backup file is to be sent to stdout.
  • Fujii Masao sent an add-on patch to the one which adds a "write" synchrounous replication mode to modify postgresql.conf appropriately.
  • Noah Misch sent in another revision of the patch to prevent unneeded table rewrites in certain types of ALTER TABLE...ALTER TYPE operations.
  • Heikki Linnakangas sent in two more revisions of the GROUP COMMIT patch, reviews by Robert Haas, Jeff Janes and Jesper Krogh.
  • Dimitri Fontaine sent in another revision of the patch to add triggers to commands in general.
  • Abhijit Menon-Sen and Pavel Stehule traded revisions of a patch to allow better debugging of overloaded functions.
  • Abhijit Menon-Sen sent in a patch atop Andrew Dunstan's patch to add {query,array,row}-to-json functionality.
  • KaiGai Kohei sent in another revision of the patch to plug certain types of information leaks in views.
  • Abhijit Menon-Sen sent in a patch to fix some infelicities in Peter Eisentraut's patch to enable using \0 as a field or record separator.
  • Jaime Casanova sent in another revision of the patch to add a pg_stats_recovery view.
  • Abhijit Menon-Sen sent in a fix to Daniel Farina's patch which factors out the various crc32 implementations in the code base.
  • Kyotaro HORIGUCHI sent in another revision of the patch to add a new libpq tuple storage and use same to speed up dblink. Reviews by Marko Kreen and Merlin Moncure.
  • Peter Geoghegan sent in another revision of the fast path sort patch.
  • Marti Raudsepp sent in another revision of the patch to cache stable expressions with constant arguments.
  • Luben Karavelov sent in a patch to enable limited cover density ranking in text search. Reviews by Oleg Bartunov and Sushant Sinha.
  • Dan Scales sent in another WIP patch implementing double-write with the suggested double-write buffers per feedback from Heikki Linnakangas and Simon Riggs.
  • Jeff Janes sent in a patch to allow simulating log contention in pg_bench.
  • Dean Rasheed sent in a patch to fix a performance regression in index-only scans.
  • Petr (PJMODOS) Jelinek sent in another revision of the patch to enable CHECK FUNCTION.
  • Simon Riggs sent in another revision of the DROP INDEX CONCURRENTLY patch.
  • Simon Riggs sent in another revision of the patch intended to reduce CLOG contention.