Nouvelles hebdomadaires de PostgreSQL - 12 juin 2011
Le PUG de New-York présente "Data Storage at foursqare", le 22 juin 2011 à 18h30 chez Spotify. RSVP et détails ci-après :
http://www.nycpug.org/events/21300271/
La PostgreSQL Conference West (#PgWest) aura lieu du 27 au 30 septembre 2011 au centre des conventions de San José (Californie, États-Unis) :
https://www.postgresqlconference.org/talk_types
La PostgreSQL Conference Europe 2011 aura lieu du 18 au 21 octobre, au Casa 400 Hotel à Amsterdam, Pays-Bas. Elle couvrira des sujets concernant les utilisateurs, développeurs et contributeurs de PostgreSQL, ainsi que pour les décideurs et hauts responsables. Pour plus d'informations sur la conférence, veuillez vous référer au site :
http://2011.pgconf.eu/
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/
Les nouveautés des produits dérivés
Offres d'emplois autour de PostgreSQL en juin
PostgreSQL Local
- La PG Session 2, sur PostGIS, se tiendra à Paris le 23 juin. Le programme est disponible sur :
http://www.postgresql-sessions.org/en/2/
- 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
- 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
Andrew Dunstan a poussé :
Tom Lane a poussé :
- Fix rewriter to cope (more or less) with CTEs in the query being rewritten. Since the original implementation of CTEs only allowed them in SELECT queries, the rule rewriter did not expect to find any CTEs in statements being rewritten by ON INSERT/UPDATE/DELETE rules. We had dealt with this to some extent but the code was still several bricks shy of a load, as illustrated in bug #6051 from Jehan-Guillaume de Rorthais. In particular, we have to be able to copy CTEs from the original query's cteList into that of a rule action, in case the rule action references the CTE (which it pretty much always will). This also implies we were doing things in the wrong order in RewriteQuery: we have to recursively rewrite the CTE queries before expanding the main query, so that we have the rewritten queries available to copy. There are unpleasant limitations yet to resolve here, but at least we now throw understandable FEATURE_NOT_SUPPORTED errors for them instead of just failing with bizarre implementation-dependent errors. In particular, we can't handle propagating the same CTE into multiple post-rewrite queries (because then the CTE would be evaluated multiple times), and we can't cope with conflicts between CTE names in the original query and in the rule actions.
http://git.postgresql.org/pg/commitdiff/fc1286d3cb92adad2eae69924bead12cfeea5cc6
- Allow domains over arrays to match ANYARRAY parameters again. This use-case was broken in commit 529cb267a6843a6a8190c86b75d091771d99d6a9 of 2010-10-21, in which I commented "For the moment, we just forbid such matching. We might later wish to insert an automatic downcast to the underlying array type, but such a change should also change matching of domains to ANYELEMENT for consistency". We still lack consensus about what to do with ANYELEMENT; but not matching ANYARRAY is a clear loss of functionality compared to prior releases, so let's go ahead and make that happen. Per complaint from Regina Obe and extensive subsequent discussion.
http://git.postgresql.org/pg/commitdiff/b7e8feb33e5d948c66720643fe32cfb06980c3d1
- Make citext's equality and hashing functions collation-insensitive. This is an ugly hack to get around the fact that significant parts of the core backend assume they don't need to worry about passing collation to equality and hashing functions. That's true for the core string datatypes, but citext should ideally have equality behavior that depends on the specified collation's LC_CTYPE. However, there's no chance of fixing the core before 9.2, so we'll have to live with this compromise arrangement for now. Per bug #6053 from Regina Obe. The code changes in this commit should be reverted in full once the core code is up to speed, but be careful about reverting the docs changes: I fixed a number of obsolete statements while at it.
http://git.postgresql.org/pg/commitdiff/3ebc061c18fcf9447977d232280793e27baf71ff
- Update 9.1 release notes to reflect commits through today. Also do some desultory copy-editing on the notes.
http://git.postgresql.org/pg/commitdiff/e9c9a920680595b7726148852e19deeb1f7b98a5
- Tag 9.1beta2.
http://git.postgresql.org/pg/commitdiff/829ae4bf830e14bda649a153f7d179681e2ad094
- Work around gcc 4.6.0 bug that breaks WAL replay. ReadRecord's habit of using both direct references to tmpRecPtr and references to *RecPtr (which is pointing at tmpRecPtr) triggers an optimization bug in gcc 4.6.0, which apparently has forgotten about aliasing rules. Avoid the compiler bug, and make the code more readable to boot, by getting rid of the direct references. Improve the comments while at it. Back-patch to all supported versions, in case they get built with 4.6.0. Tom Lane, with some cosmetic suggestions from Alex Hunsaker
http://git.postgresql.org/pg/commitdiff/c2ba0121c73b7461331104a46d140156e847572a
- Stamp HEAD as 9.2devel.
http://git.postgresql.org/pg/commitdiff/c9627922115a56cfd1bc966b62108efba581662c
Heikki Linnakangas a poussé :
- Make ascii-art in comments pgindent-safe, and some other formatting changes. Kevin Grittner
http://git.postgresql.org/pg/commitdiff/a31ff707a27b3ed4a1c082c131194995efbbce4b
- Make DDL operations play nicely with Serializable Snapshot Isolation. Truncating or dropping a table is treated like deletion of all tuples, and check for conflicts accordingly. If a table is clustered or rewritten by ALTER TABLE, all predicate locks on the heap are promoted to relation-level locks, because the tuple or page ids of any existing tuples will change and won't be valid after rewriting the table. Arguably ALTER TABLE should be treated like a mass-UPDATE of every row, but if you e.g change the datatype of a column, you could also argue that it's just a change to the physical layout, not a logical change. Reindexing promotes all locks on the index to relation-level lock on the heap. Kevin Grittner, with a lot of cosmetic changes by me.
http://git.postgresql.org/pg/commitdiff/8f9622bbb3c02b06176760c3ca2d33c5b5f629a7
- Mark the SLRU page as dirty when setting an entry in pg_serial. In the passing, fix an incorrect comment.
http://git.postgresql.org/pg/commitdiff/5234161ac10350e009874e4872935a6133d8f0fc
- Fix the truncation logic of the OldSerXid SLRU mechanism. We can't pass SimpleLruTruncate() a page number that's "in the future", because it will issue a warning and refuse to truncate anything. Instead, we leave behind the latest segment. If the slru is not needed before XID wrap-around, the segment will appear as new again, and not be cleaned up until it gets old enough again. That's a bit unpleasant, but better than not cleaning up anything. Also, fix broken calculation to check and warn if the span of the OldSerXid SLRU is getting too large to fit in the 64k SLRU pages that we have available. It was not XID wraparound aware. Kevin Grittner and me.
http://git.postgresql.org/pg/commitdiff/e1c26ab853dc4b816d2eb4c99b948fb099c0e243
- Small comment fixes and enhancements.
http://git.postgresql.org/pg/commitdiff/c79c570bd8fbd6f074b8c186dfb08a9f4e3907e0
- Fix locking while setting flags in MySerializableXact. Even if a flag is modified only by the backend owning the transaction, it's not safe to modify it without a lock. Another backend might be setting or clearing a different flag in the flags field concurrently, and that operation might be lost because setting or clearing a bit in a word is not atomic. Make did-write flag a simple backend-private boolean variable, because it was only set or tested in the owning backend (except when committing a prepared transaction, but it's not worthwhile to optimize for the case of a read-only prepared transaction). This also eliminates the need to add locking where that flag is set. Also, set the did-write flag when doing DDL operations like DROP TABLE or TRUNCATE -- that was missed earlier.
http://git.postgresql.org/pg/commitdiff/cb2d158c5808c72cbd12cbffe0b7f5dbe830760b
- Remove now-unnecessary casts. Kevin Grittner.
http://git.postgresql.org/pg/commitdiff/13000b44d6069743db98ec753763d882b9a0beaf
Alvaro Herrera a poussé :
- Revert psql bits to display NOT VALID for FKs. These are superseded BY pg_get_constraintdef's ability to display the same when appropriate, which is a better place to do it anyway.
http://git.postgresql.org/pg/commitdiff/135a507991c8ea9eca201cc084294a689ca24ba9
- Use "transient" files for blind writes. "Blind writes" are a mechanism to push buffers down to disk when evicting them; since they may belong to different databases than the one a backend is connected to, the backend does not necessarily have a relation to link them to, and thus no way to blow them away. We were keeping those files open indefinitely, which would cause a problem if the underlying table was deleted, because the operating system would not be able to reclaim the disk space used by those files. To fix, have bufmgr mark such files as transient to smgr; the lower layer is allowed to close the file descriptor when the current transaction ends. We must be careful to have any other access of the file to remove the transient markings, to prevent unnecessary expensive system calls when evicting buffers belonging to our own database (which files we're likely to require again soon.)
http://git.postgresql.org/pg/commitdiff/54d9e8c6c19cbefa8fb42ed3442a0a5327590ed3
- Revert "Use 'transient' files for blind writes." This reverts commit 54d9e8c6c19cbefa8fb42ed3442a0a5327590ed3, which caused a failure on the buildfarm. Not a good thing to have just before a beta release.
http://git.postgresql.org/pg/commitdiff/9261557eb1e19cf691f6f2cd9bd4d55fd8603a48
- Use a constant sprintf format to silence compiler warning
http://git.postgresql.org/pg/commitdiff/3d114b63b253605eb60055c910aa2e55c98d5ed2
- Use "transient" files for blind writes, take 2. "Blind writes" are a mechanism to push buffers down to disk when evicting them; since they may belong to different databases than the one a backend is connected to, the backend does not necessarily have a relation to link them to, and thus no way to blow them away. We were keeping those files open indefinitely, which would cause a problem if the underlying table was deleted, because the operating system would not be able to reclaim the disk space used by those files. To fix, have bufmgr mark such files as transient to smgr; the lower layer is allowed to close the file descriptor when the current transaction ends. We must be careful to have any other access of the file to remove the transient markings, to prevent unnecessary expensive system calls when evicting buffers belonging to our own database (which files we're likely to require again soon.) This commit fixes a bug in the previous one, which neglected to cleanly handle the LRU ring that fd.c uses to manage open files, and caused an unacceptable failure just before beta2 and was thus reverted.
http://git.postgresql.org/pg/commitdiff/fba105b1099f4f5fa7283bb17cba6fed2baa8d0c
- Add comment about pg_ctl stop
http://git.postgresql.org/pg/commitdiff/d69149ed71cc4f073f222f11f702a20a6d279e0c
Robert Haas a poussé :
Peter Eisentraut a poussé :
Magnus Hagander a poussé :
Bruce Momjian a poussé :
Correctifs rejetés (à ce jour)
- Marti Raudsepp's patch to add "GROUP BY *." Not wanted.
Correctifs en attente
- KaiGai Kohei sent in two patches to help with the "leaky view" issue.
- Robert Haas sent in two more revisions of the patch to add a fast path locking mechanism, which greatly speeds up the read-only case.
- Cyan Ogilvie sent in a patch to document how PostgreSQL hashes passwords.
- Simon Riggs sent in a patch to reduce contention for WALInsertLock.
- Robert Haas sent in a patch to refactor heap_hot_search_buffer() so that index_getnext() can use it by suitably modifying index_getnext().
- Mike Pultz sent in two more revisions of a patch to add serial2 (based on int2).
- Brar Piening and Josh Kupershmidt traded tests and patches for the serial2 type.
- Brar Piening sent in a patch to add Visual Studio 2010/Windows SDK 7.1 support for building PostgreSQL.
- Simon Riggs sent in a WIP patch to improve performance by locking tables less frequently.
- Kevin Grittner and Dan Ports traded patches to fix some corner cases in SSI.
- Alvaro Herrera sent in two revisions of a patch to fix an issue where the postmaster was holding unlinked files for pg_largeobject table.
- Kevin Grittner sent in a patch to fix an issue with SSI and page-level locks.
- Radoslaw Smogura sent in a patch to add a new .gitignore for some cygwin files.
- Pavel Stehule sent in a patch to make more details available for error reporting and use same.
- Florian Pflug sent in two more revisions of the patch to remove a corner case error where XML in the database could result in unrestorable dumps.
- Greg Smith sent in another revision of the patch to consolidate pieces which used to be in contrib/ into core because they tend to be needed in emergencies, when installing new software might not be an option.
- Hitoshi Harada sent in a patch to allow the planner to create a NestLoop with parameterized aggregate subquery, similar to the IndexScan pattern. This reduces unneeded aggregation.
- KaiGai Kohei sent in a patch which adds a cache mechanism for SELinux access control decisions to contrib/sepgsql.
- Florian Pflug sent in another revision of the patch to fix an issue where XPATH doesn't always return a scalar value when it should.
- Florian Pflug reviewed and sent in another revision of the patch to add TG_DEPTH.
- Noah Misch sent in a patch to make the deadlock timeout PGC_SUSET.
- Noah Misch sent in two revisions of a patch to identify and not perform no-op length coercions.
- Alexander Korotkov sent in another revision of the patch to collect statistics on array columns.
- Noah Misch sent in a patch to make relation_openrv atomic with respect to DDL.
- Robert Haas sent in a patch that applies over the "reducing the overhead of frequent table locks" (fastlock-v3) patch and allows heavyweight VXID locks to spring into existence only when someone wants to wait on them.