Nouvelles hebdomadaires de PostgreSQL - 3 juillet 2011
La conférence CHAR(11) de Cambridge (Royaume-Uni, les 11 et 12 juillet 2011) abordant des domaines tels que le Cloud, la haute disponibilité et la réplication, propose jusqu'à la fin de ce 4 juillet [ndt: désolé pour le retard...] des tickets au prix standard (£375). Après cela resteront seulement les tickets dits de "dernière minute" (£425) :
http://www.char11.org/
[ndt: article en français concernant CHAR(11) : http://tapoueh.org/blog/2011/07/04-pret-pour-char11.html]
Postgres Open accepte volontiers les propositions de conférences et d'ateliers. Les conférences devraient cibler l'homme d'affaire ou le développeur utilisant PostgreSQL, avec une bonne part de contenu technique. Les soumissions sont acceptées jusqu'au 8 juillet, à cette adresse :
http://postgresopen.org/2011/speaker/
Le PG Day 2011 de Denver a été reporté, il aura finalement lieu le vendredi 21 octobre 2011. L'appel à conférenciers porte jusqu'au 31 juillet. Les inscriptions sont gratuites jusqu'à cette date :
http://pgday.consistentstate.com/node
Les nouveautés des produits dérivés
Offres d'emplois autour de PostgreSQL en juillet
PostgreSQL Local
- CHAR(11), la conférence PostgreSQL sur le clustering, la haute disponibilité et la réplication accepte à présent les inscriptions et réservations. Dates : 11 & 12 juillet 2011 à Cambridge, Royaume-Uni :
http://www.char11.org/
- La "PgCon China" 2011 aura lieu à Guangzhou (Canton) les 15 & 16 juillet 2011 :
http://wiki.postgresql.org/wiki/Pgconchina2011
- Le PDXPUG se chargera d'accueillir le PgDay, dimanche 24 juillet 2011, la veille de l'OSCON à Portland dans l'Oregon (États-Unis). Plus de détails sur :
http://pugs.postgresql.org/node/1663
- Postgres Open 2011, conférence ayant pour thème les "évolutions brutales dans l'industrie de la base de données", aura lieu du 14 au 16 septembre 2011 à Chicago (Illinois, États-Unis) à l'hôtel "Westin Michigan Avenue" :
http://postgresopen.org
- Le PG-Day Denver 2011 aura lieu le samedi 17 septembre 2011 dans le campus Auraria près de Denver, Colorado :
http://pgday.consistentstate.com/
- PostgreSQL Conference West (#PgWest) aura lieu du 27 au 30 septembre 2011 au centre des conventions de San José (Californie, États-Unis) :
http://www.postgresqlconference.org
- La "PostgreSQL Conference Europe 2011" se tiendra à Amsterdam, du 18 au 21 octobre :
http://2011.pgconf.eu/
- pgbr aura lieu à São Paulo (Brésil) les 3 & 4 novembre 2011 :
http://pgbr.postgresql.org.br/
- PGConf.DE 2011 est une conférence germanophone tenue le 11 novembre au musée industriel du Rhin à Oberhausen (Allemagne). L'appel à conférenciers est lancé :
http://2011.pgconf.de/
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
Peter Eisentraut a poussé :
Robert Haas a poussé :
- Avoid having two copies of the HOT-chain search logic. It's been like this since HOT was originally introduced, but the logic is complex enough that this is a recipe for bugs, as we've already found out with SSI. So refactor heap_hot_search_buffer() so that it can satisfy the needs of index_getnext(), and make index_getnext() use that rather than duplicating the logic. This change was originally proposed by Heikki Linnakangas as part of a larger refactoring oriented towards allowing index-only scans. I extracted and adjusted this part, since it seems to have independent merit. Review by Jeff Davis.
http://git.postgresql.org/pg/commitdiff/4da99ea4231e3d8bbf28b666748c1028e7b7d665
- Mention that SSPI authentication can use GSSAPI on non-Windows systems. As noted by Christian Ullrich.
http://git.postgresql.org/pg/commitdiff/66a36ef949e4e6b8dbcc8a024eecfeca967d1d9c
- Try again to make the visibility map crash safe. My previous attempt was quite a bit less than half-baked with respect to heap_update().
http://git.postgresql.org/pg/commitdiff/e16954f3d27fa8e16c379ff6623ae18d6250a39c
- Add a missing_ok argument to get_object_address(). This lays the groundwork for an upcoming patch to streamline the handling of DROP commands. KaiGai Kohei
http://git.postgresql.org/pg/commitdiff/c533c1477f6beede766034c1226a20ac08320b05
- Fix bugs in relpersistence handling during table creation. Unlike the relistemp field which it replaced, relpersistence must be set correctly quite early during the table creation process, as we rely on it quite early on for a number of purposes, including security checks. Normally, this is set based on whether the user enters CREATE TABLE, CREATE UNLOGGED TABLE, or CREATE TEMPORARY TABLE, but a relation may also be made implicitly temporary by creating it in pg_temp. This patch fixes the handling of that case, and also disables creation of unlogged tables in temporary tablespace (such table indeed skip WAL-logging, but we reject an explicit specification) and creation of relations in the temporary schemas of other sessions (which is not very sensible, and didn't work right anyway). Report by Amit Khandekar.
http://git.postgresql.org/pg/commitdiff/5da79169d3e9f0fab47da03318c44075b3f824c5
Simon Riggs a poussé :
- Allow callers to pass a missing_ok flag when opening a relation. Since the names try_relation_openrv() and try_heap_openrv() don't seem quite appropriate, rename the functions to relation_openrv_extended() and heap_openrv_extended(). This is also more general, if we have a future need for additional parameters that are of interest to only a few callers. This is infrastructure for a forthcoming patch to allow get_object_address() to take a missing_ok argument as well. Patch by me, review by Noah Misch.
http://git.postgresql.org/pg/commitdiff/9abbed0629c862710bdc0f0dd3565e069ecab9da
- Reduce impact of btree page reuse on Hot Standby by fixing off-by-1 error. WAL records of type XLOG_BTREE_REUSE_PAGE were generated using a latestRemovedXid one higher than actually needed because xid used was page opaque->btpo.xact rather than an actually removed xid. Noticed on an otherwise quiet system by Noah Misch. Noah Misch and Simon Riggs
http://git.postgresql.org/pg/commitdiff/e1cd66f74862936d84acf3008118d6094c56ad58
- Introduce compact WAL record for the common case of commit (non-DDL). XLOG_XACT_COMMIT_COMPACT leaves out invalidation messages and relfilenodes, saving considerable space for the vast majority of transaction commits. XLOG_XACT_COMMIT keeps same definition as XLOG_PAGE_MAGIC 0xD067 and earlier. Leonardo Francalanci and Simon Riggs
http://git.postgresql.org/pg/commitdiff/465883b0a2b4236ba6b31b648a9eabef3b7cdddb
Alvaro Herrera a poussé :
- Modernise pg_hba.conf token processing. The previous coding was ugly, as it marked special tokens as such in the wrong stage, relying on workarounds to figure out if they had been quoted in the original or not. This made it impossible to have specific keywords be recognized as such only in certain positions in HBA lines, for example. Fix by restructuring the parser code so that it remembers whether tokens were quoted or not. This eliminates widespread knowledge of possible known keywords for all fields. Also improve memory management in this area, to use memory contexts that are reset as a whole instead of using retail pfrees; this removes a whole lotta crufty (and probably slow) code. Instead of calling strlen() three times in next_field_expand on the returned token to find out whether there was a comma (and strip it), pass back the info directly from the callee, which is simpler. In passing, update historical artifacts in hba.c API. Authors: Brendan Jurd, Alvaro Herrera Reviewed by Pavel Stehule
http://git.postgresql.org/pg/commitdiff/e5e2fc842c418432756d8b5825ff107c6c5fc4c3
- Remove rel.h from objectaddress.h; only relcache.h is necessary. Add rel.h to some files that now need it.
http://git.postgresql.org/pg/commitdiff/6f3efa76b042cdc457dba5bf8d8257f3ae83fb10
- Fix outdated comment. Extracted from a patch by Bernd Helmle
http://git.postgresql.org/pg/commitdiff/b36927fbe922d1aac5d6e42c04eecf65bf37f5f3
- Enable CHECK constraints to be declared NOT VALID. This means that they can initially be added to a large existing table without checking its initial contents, but new tuples must comply to them; a separate pass invoked by ALTER TABLE / VALIDATE can verify existing data and ensure it complies with the constraint, at which point it is marked validated and becomes a normal part of the table ecosystem. An non-validated CHECK constraint is ignored in the planner for constraint_exclusion purposes; when validated, cached plans are recomputed so that partitioning starts working right away. This patch also enables domains to have unvalidated CHECK constraints attached to them as well by way of ALTER DOMAIN / ADD CONSTRAINT / NOT VALID, which can later be validated with ALTER DOMAIN / VALIDATE CONSTRAINT. Thanks to Thom Brown, Dean Rasheed and Jaime Casanova for the various reviews, and Robert Hass for documentation wording improvement suggestions. This patch was sponsored by Enova Financial.
http://git.postgresql.org/pg/commitdiff/897795240cfaaed724af2f53ed2c50c9862f951f
Magnus Hagander a poussé :
Heikki Linnakangas a poussé :
- Grab predicate locks on matching tuples in a lossy bitmap heap scan. Non-lossy case was already handled correctly. Kevin Grittner
http://git.postgresql.org/pg/commitdiff/d9fe63acb033141be695815a8a663de8dae4f8af
- Move the PredicateLockRelation() call from nodeSeqscan.c to heapam.c. It's more consistent that way, since all the other PredicateLock* calls are made in various heapam.c and index AM functions. The call in nodeSeqscan.c was unnecessarily aggressive anyway, there's no need to try to lock the relation every time a tuple is fetched, it's enough to do it once. This has the user-visible effect that if a seq scan is initialized in the executor, but never executed, we now acquire the predicate lock on the heap relation anyway. We could avoid that by taking the lock on the first heap_getnext() call instead, but it doesn't seem worth the trouble given that it feels more natural to do it in heap_beginscan(). Also, remove the retail PredicateLockTuple() calls from heap_getnext(). In a seqscan, started with heap_begin(), we're holding a whole-relation predicate lock on the heap so there's no need to lock the tuples individually. Kevin Grittner and me
http://git.postgresql.org/pg/commitdiff/cd70dd6bef515a573a5af1756ce6a8b8406bb5d4
Tom Lane a poussé :
- Restore correct btree preprocessing of "indexedcol IS NULL" conditions. Such a condition is unsatisfiable in combination with any other type of btree-indexable condition (since we assume btree operators are always strict). 8.3 and 8.4 had an explicit test for this, which I removed in commit 29c4ad98293e3c5cb3fcdd413a3f4904efff8762, mistakenly thinking that the case would be subsumed by the more general handling of IS (NOT) NULL added in that patch. Put it back, and improve the comments about it, and add a regression test case. Per bug #6079 from Renat Nasyrov, and analysis by Dean Rasheed.
http://git.postgresql.org/pg/commitdiff/a5652d3e05380edcd35236e94b924c8c105eaefd
- Suppress compiler warning about potentially uninitialized variable. Maybe some compilers are smart enough to not complain about the previous coding ... but mine isn't.
http://git.postgresql.org/pg/commitdiff/426cafc46c8bf5aeda38e8d17f1d86a48e627e43
- Fix EXPLAIN to handle gating Result nodes within inner-indexscan subplans. It is possible for a NestLoop plan node to pass an OUTER Var into an "inner indexscan" that is an Append construct (derived from an inheritance tree or UNION ALL subquery). The OUTER tuple is then passed down at runtime to the leaf indexscan node(s) where it will actually be used. EXPLAIN has to likewise pass the information about the nestloop's outer subplan down through the Append node, else it will fail to print the outer-reference Vars (with complaints like "bogus varno: 65001"). However, there was a case missed in all this: we could also have gating Result nodes that were inserted into the appendrel plan tree to deal with pseudoconstant qual conditions. So EXPLAIN has to pass down the outer plan node to a Result's subplan, too. Per example from Jon Nelson. The problem is gone in 9.1 because we replaced the nestloop outer-tuple kluge with a Param-based data transfer mechanism. Also, so far as I can tell, the case can't happen before 8.4 because of restrictions on what sorts of appendrel members could be pulled up into the parent query. So this patch is only needed for 8.4 and 9.0.
http://git.postgresql.org/pg/commitdiff/789d3d4541e95c6079a55196bd63a6ab90e57c7c
- Make distprep and *clean build targets recurse into all subdirectories. Certain subdirectories do not get built if corresponding options are not selected at configure time. However, "make distprep" should visit such directories anyway, so that constructing derived files to be included in the tarball happens without requiring all configure options to be given in the tarball build script. Likewise, it's better if cleanup actions unconditionally visit all directories (for example, this ensures proper cleanup if someone has done a manual make in such a subdirectory). To handle this, set up a convention that subdirectories that are conditionally included in SUBDIRS should be added to ALWAYS_SUBDIRS instead when they are excluded. Back-patch to 9.1, so that plpython's spiexceptions.h will get provided in 9.1 tarballs. There don't appear to be any instances where distprep actions got missed in previous releases, and anyway this fix requires gmake 3.80 so we don't want to apply it before 9.1.
http://git.postgresql.org/pg/commitdiff/acb9198b960caaa2fe9f31258116eaa7c1154093
- Back-patch creation of tar.bz2 tarball during "make dist". Since commit a4d03bbcdaf7739d7e9073ee76bb186f68ddc163, "make dist" has built both gzip- and bzip2-compressed tarballs. However, this was pretty useless, because our tarball build script didn't know about it and proceeded to overwrite the bz2 file with new data. Back-patch the change to all active branches, so that creation of the tar.bz2 file can be removed from the build script.
http://git.postgresql.org/pg/commitdiff/fcc4a20dd0be2342d35cfa2bad82af22d5169c20
- Put comments on the installable procedural languages. Per suggestion from Josh Kupershmidt.
http://git.postgresql.org/pg/commitdiff/99e47ed0b2d2c559da813e679260e218f2c1d2ee
- Fix omissions in documentation of the pg_roles view. Somehow, column rolconfig got removed from the documentation of the pg_roles view in the 9.0 cycle, although the column is actually still there. In 9.1, we'd also forgotten to document the rolreplication column. Spotted by Sakamoto Masahiko.
http://git.postgresql.org/pg/commitdiff/4fa046a39ebdaf4c9191ffff8a57b0759c52f3f3
Bruce Momjian a poussé :
Andrew Dunstan a poussé :
Correctifs rejetés (à ce jour)
- Pas de déception cette semaine :-)
Correctifs en attente
- Heikki Linnakangas sent in a patch to remove some slowness from gist_box_penalty.
- Shigeru HANADA sent in another revision of the patch to add SQL/MED per-column GENERIC OPTIONs.
- Simon Riggs sent in a WIP patch to redefine SnapshotNow as a snapshot type that includes a list of transactions-in-progress, somewhat like an MVCC snapshot.
- Gabriele Bartolini sent in a patch to add a "dry run" option '-n' to pg_archivecleanup which performs a dry-run and outputs the names of the files to be removed to stdout.
- Robert Haas sent in another revision of the patch to reduce the overhead of frequent table locks by locking less frequently.
- Robert Haas sent in an update to the patch to allow for time-delayed standbys.
- KaiGai Kohei sent in three more revisions of a patch intended to fix certain types of information leaks in views.
- Alexander Korotkov, Tom Lane and Heikki Linnakangas traded versions of a patch to build GiST indexes faster.
- Martin Pihlak sent in another revision of the patch for SSL with non-blocking sockets.
- KaiGai Kohei sent in another revision of a patch intended to consolidate the DROP machinery into one spot.
- Kevin Grittner sent in a patch to modularize some aspects of SSI with respect to sequential scans.
- Laurenz Albe and Shigeru HANADA traded patches to fix an issue in file FDWs.
- KaiGai Kohei sent in two revisions of a patch to fix some issues in SECURITY LABELs on shared database objects, per review from Joe Conway.
- Heikki Linnakangas sent in another WIP patch to do a latch-based implementation of wakeup on postmaster death.
- Jun Ishiduka sent in another revision of the patch to allow an online base backup from a hot standby.
- Noah Misch sent in another revision of a patch to avoid index rebuilds for ALTER TABLE...ALTER TYPE that don't actually need to rewrite.
- Josh Kupershmidt sent in another revision of the patch to make \dd show constraint comments.
- Hitoshi Harada sent in another revision of the patch to parameterize aggregate subqueries.
- KaiGai Kohei sent in another revision of the patch to create a userspace access vector cache.