Nouvelles hebdomadaires de PostgreSQL - 22 avril 2012
La PostgreSQL Conference Europe 2012 aura lieu à Prague, République Tchèque, du 23 au 26 octobre. L'appel à sponsors est ouvert : http://2012.pgconf.eu/
PGNext a été annulé.
Les nouveautés des produits dérivés
- pgbouncer 1.5.1, un distributeur de connexions pour PostgreSQL : http://pgfoundry.org/frs/shownotes.php?release_id=1936
- pgpool-II 3.1.3 et 3.0.7, un middleware pouvant servir de distributeur de connexions, de système de réplication, de répartition de charges, de parallèlisation et d'avantage : http://www.pgpool.net/download.php?f=pgpool-II-3.1.3.tar.gz http://www.pgpool.net/download.php?f=pgpool-II-3.0.7.tar.gz
- Skytools 3.0.1, un ensemble d'outils développé par Skype pour la réplication et le failover, incluant PgQ, un framework générique de mise en queue, et Londiste, un système de réplication maître-esclave au niveau enregistrement : http://pgfoundry.org/projects/skytools
Offres d'emplois autour de PostgreSQL en avril
- Internationales : http://archives.postgresql.org/pgsql-jobs/2012-04/threads.php;
- Francophones : http://forums.postgresql.fr/viewforum.php?id=4.
PostgreSQL Local
- La seconde réunion du PUG de l'Arizona est programmée pour le mercredi 25 avril à 18h30 et débutera avec pizzas et rafraichissements. Vous pouvez rejoindre la mailing-list, et RSVP à : https://www.bigtent.com/groups/azpug
- 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/
- Le PGDay France aura lieu à Lyon, le 7 juin 2012 : http://www.pgday.fr
PostgreSQL dans les média
- Planet PostgreSQL : http://planet.postgresql.org/
- Planet PostgreSQLFr : http://planete.postgresql.fr/
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é :
- PL/Python: Improve documentation of nrows() method. Clarify that nrows() is the number of rows processed, versus the number of rows returned, which can be obtained using len. Also add tests about that. http://git.postgresql.org/pg/commitdiff/0f48e0675134eccd905eaf696a03c1e8cc85eab4
- Fix typo. Kyotaro HORIGUCHI http://git.postgresql.org/pg/commitdiff/a33fcd7e79d7e1544030160de177aee847bb7648
- Add compatibility information for prepared transaction commands http://git.postgresql.org/pg/commitdiff/cf714c81086a85b7558a84ebd024f6a5eec2a5ee
- psql: Add tab completion for CREATE/ALTER ROLE name WITH. Previously, the use of the optional key word WITH was not supported. Josh Kupershmidt http://git.postgresql.org/pg/commitdiff/1fd832ddffe83a07f82939bd9e5787a61aeba1ef
- Untabify DSSSL and XSL files and add to check-tabs target. Like with SGML files, using tabs in these files is confusing and unnecessary. http://git.postgresql.org/pg/commitdiff/cd1f4db4aec0c4b71d2ed0d29bbe388dfcd11527
- Fix some typos. Josh Kupershmidt http://git.postgresql.org/pg/commitdiff/48658a1b818060fcfb3c91704943c5fbcf10088e
Heikki Linnakangas a poussé :
- Install plpgsql.h to to include/server at "make install". The header file is needed by any module that wants to use the PL/pgSQL instrumentation plugin interface. Most notably, the pldebugger plugin needs this. With this patch, it can be built using pgxs, without having the full server source tree available. http://git.postgresql.org/pg/commitdiff/49440fff08590cf1a764ab4b4c5342cd9e445991
- Don't wait for the commit record to be replicated if we wrote no WAL. When using synchronous replication, we waited for the commit record to be replicated, but if we our transaction didn't write any other WAL records, that's not required because we don't even flush the WAL locally to disk in that case. This lead to long waits when committing a transaction that only modified a temporary table. Bug spotted by Thom Brown. http://git.postgresql.org/pg/commitdiff/fe546f3da6a5ff1d879f587728f74ec457f0ee5f
Andrew Dunstan a poussé :
- Don't override arguments set via options with positional arguments. A number of utility programs were rather careless about paremeters that can be set via both an option argument and a positional argument. This leads to results which can violate the Principal Of Least Astonishment. These changes refuse to use positional arguments to override settings that have been made via positional arguments. The changes are backpatched to all live branches. http://git.postgresql.org/pg/commitdiff/1b37a8c3cc4f0615f80d6007e2bbd47c6bd7e1e3
Robert Haas a poussé :
- Doc clarification for synchronous_commit. Fujii Masao http://git.postgresql.org/pg/commitdiff/37e666b8b5999fddd556138edd17a5f26384460f
- Fix various infelicities in node functions. Mostly, this consists of adding support for fields which exist in the structure but aren't handled by copy/equal/outfuncs; but the create foreign table case can actually produce garbage output. Noah Misch http://git.postgresql.org/pg/commitdiff/53bbc681ca97650a4b8ea59d8f1710196654fca5
- Fix copyfuncs/equalfuncs support for ReassignOwnedStmt. Noah Misch http://git.postgresql.org/pg/commitdiff/b5eccaef2c05fd0c17f4510001528232b242a88e
- Fix incorrect comment in SetBufferCommitInfoNeedsSave(). Noah Misch spotted the fact that the old comment is in fact incorrect, due to memory ordering hazards. http://git.postgresql.org/pg/commitdiff/ab77b2da8bf2cd1c8068f2f90e95c42d426aba3c
- After PageSetAllVisible, use MarkBufferDirty. Previously, we used SetBufferCommitInfoNeedsSave, but that's really intended for dirty-marks we can theoretically afford to lose, such as hint bits. As for 9.2, the PD_ALL_VISIBLE mustn't be lost in this way, since we could then end up with a heap page that isn't all-visible and a visibility map page that is all visible, causing index-only scans to return wrong answers. http://git.postgresql.org/pg/commitdiff/e93c0b820f03e96ae0549cd30805ae734e5d5e2f
- Tighten up error recovery for fast-path locking. The previous code could cause a backend crash after BEGIN; SAVEPOINT a; LOCK TABLE foo (interrupted by ^C or statement timeout); ROLLBACK TO SAVEPOINT a; LOCK TABLE foo, and might have leaked strong-lock counts in other situations. Report by Zoltán Böszörményi; patch review by Jeff Davis. http://git.postgresql.org/pg/commitdiff/53c5b869b464d567c3b8f617201b49a395f437ab
- Finish rename of FastPathStrongLocks to FastPathStrongRelationLocks. Commit 8e5ac74c1249820ca55481223a95b9124b4a4f95 tried to do this renaming, but I relied on gcc to tell me where I needed to make changes, instead of grep. Noted by Jeff Davis. http://git.postgresql.org/pg/commitdiff/4a6fab03f23ed15f33e607b321c339d0c96c6b58
- Remove bogus comment from HeapTupleSatisfiesNow. This has been wrong for a really long time. We don't use two-phase locking to protect against serialization anomalies. Per discussion on pgsql-hackers about 2011-03-07; original report by Dan Ports. http://git.postgresql.org/pg/commitdiff/293ec33c32e8e20fcb5859885a4b37ff6d855240
Tom Lane a poussé :
- Revise parameterized-path mechanism to fix assorted issues. This patch adjusts the treatment of parameterized paths so that all paths with the same parameterization (same set of required outer rels) for the same relation will have the same rowcount estimate. We cache the rowcount estimates to ensure that property, and hopefully save a few cycles too. Doing this makes it practical for add_path_precheck to operate without a rowcount estimate: it need only assume that paths with different parameterizations never dominate each other, which is close enough to true anyway for coarse filtering, because normally a more-parameterized path should yield fewer rows thanks to having more join clauses to apply. In add_path, we do the full nine yards of comparing rowcount estimates along with everything else, so that we can discard parameterized paths that don't actually have an advantage. This fixes some issues I'd found with add_path rejecting parameterized paths on the grounds that they were more expensive than not-parameterized ones, even though they yielded many fewer rows and hence would be cheaper once subsequent joining was considered. To make the same-rowcounts assumption valid, we have to require that any parameterized path enforce *all* join clauses that could be obtained from the particular set of outer rels, even if not all of them are useful for indexing. This is required at both base scans and joins. It's a good thing anyway since the net impact is that join quals are checked at the lowest practical level in the join tree. Hence, discard the original rather ad-hoc mechanism for choosing parameterization joinquals, and build a better one that has a more principled rule for when clauses can be moved. The original rule was actually buggy anyway for lack of knowledge about which relations are part of an outer join's outer side; getting this right requires adding an outer_relids field to RestrictInfo. http://git.postgresql.org/pg/commitdiff/5b7b5518d0ea56c422a197875f7efa5deddbb388
- Adjust join_search_one_level's handling of clauseless joins. For an initial relation that lacks any join clauses (that is, it has to be cartesian-product-joined to the rest of the query), we considered only cartesian joins with initial rels appearing later in the initial-relations list. This creates an undesirable dependency on FROM-list order. We would never fail to find a plan, but perhaps we might not find the best available plan. Noted while discussing the logic with Amit Kapila. Improve the comments a bit in this area, too. Arguably this is a bug fix, but given the lack of complaints from the field I'll refrain from back-patching. http://git.postgresql.org/pg/commitdiff/1f0363001166ef6a43619846e44cfb9dbe7335ed
- Use fuzzy not exact cost comparison for the final tie-breaker in add_path. Instead of an exact cost comparison, use a fuzzy comparison with 1e-10 delta after all other path metrics have proved equal. This is to avoid having platform-specific roundoff behaviors determine the choice when two paths are really the same to our cost estimators. Adjust the recently-added test case that made it obvious we had a problem here. http://git.postgresql.org/pg/commitdiff/33e99153e93b9accfa51ac036828144e1c2507b7
Alvaro Herrera a poussé :
- Recast "ONLY" column CHECK constraints as NO INHERIT. The original syntax wasn't universally loved, and it didn't allow its usage in CREATE TABLE, only ALTER TABLE. It now works everywhere, and it also allows using ALTER TABLE ONLY to add an uninherited CHECK constraint, per discussion. The pg_constraint column has accordingly been renamed connoinherit. This commit partly reverts some of the changes in 61d81bd28dbec65a6b144e0cd3d0bfe25913c3ac, particularly some pg_dump and psql bits, because now pg_get_constraintdef includes the necessary NO INHERIT within the constraint definition. Author: Nikhil Sontakke. Some tweaks by me http://git.postgresql.org/pg/commitdiff/09ff76fcdb275769ac4d1a45a67416735613d04b
Correctifs rejetés (à ce jour)
- Pas de déception cette semaine :-)
Correctifs en attente
- Heikki Linnakangas sent in a patch to fix some infelicities in localized error context messages.
- Etsuro Fujita sent in another revision of the patch to validate file_fdw tables for not-NULL constraints.
- Kyotaro HORIGUCHI sent in three revisions of a fix for a bug where the checkpointer on hot standbys runs without looking checkpoint_segments. Fujii Masao sent in another fixing an infelicity in the last.
- Noah Misch sent in a patch to fix an issue where {ts,array}_typanalyze consumed much more memory than needed.
- Jameison Martin sent in a patch to optimize the case of tables with large numbers of columns, truncating the NULL bitmap at the last non-NULL column.
- Alexander Shulgin sent in two more revisions of a patch to add libpq URIs to the regression tests.
- Alvaro Herrera sent in a patch to add ALTER EXTENSION ... OWNED.
- Robert Haas sent in a patch to fix a bug in lazy_scan_heap() that could cause index-only scans to give wrong results.
- Laurenz Albe sent in a patch to fix a place where foreign table scan estimates were frozen at 1000 rows, independent of statistics gathered on same.
- Noah Misch sent in a patch to fix an issue in B-tree page deletion.
- Jan Urbanski sent in a patch to fix an issue with PL/PythonU triggers on composite-type columns. columns