Nouvelles hebdomadaires de PostgreSQL - 19 juin 2011
La première "Commitfest" du cycle de la 9.2 a commencé. Relisez un patch !
http://commitfest.postgresql.org/
PostgreSQL 9.1 beta 2 est disponible. À vos tests !
http://www.postgresql.org/developer/beta
Les nouveautés des produits dérivés
Offres d'emplois autour de PostgreSQL en juin
PostgreSQL Local
- 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 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
- 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
- Robert Haas reviewed KaiGai Kohei's patch to rework DROP by making 'missing_ok' support get_object_address.
Correctifs appliqués
Robert Haas a poussé :
Alvaro Herrera a poussé :
Bruce Momjian a poussé :
Peter Eisentraut a poussé :
Heikki Linnakangas a poussé :
- Renumber 2PC resource managers so that compared to 9.0, predicate lock rmgr is added to the end, and existing resource managers keep their old ids. We're not going to guarantee on-disk compatibility for 2PC state files over major releases, but it seems better to avoid changing the ids them anyway. It will help anyone who might want to write external tools to inspect the state files to work with files from different versions, if nothing else. Per complaint from Tom Lane.
http://git.postgresql.org/pg/commitdiff/b81831acbc671445061ed41a55fb1cc21d8e2979
- Oops, forgot to change the order of entries in 2PC callback arrays when I renumbered the resource managers. This should fix the buildfarm..
http://git.postgresql.org/pg/commitdiff/85ea93384ae21ff59f5e5b292884a86f9c10b852
- Make non-MVCC snapshots exempt from predicate locking. Scans with non-MVCC snapshots, like in REINDEX, are basically non-transactional operations. The DDL operation itself might participate in SSI, but there's separate functions for that. Kevin Grittner and Dan Ports, with some changes by me.
http://git.postgresql.org/pg/commitdiff/0a0e2b52a5a53b8747c165ff5c976f27df05a2e1
- The rolled-back flag on serializable xacts was pointless and redundant with the marked-for-death flag. It was only set for a fleeting moment while a transaction was being cleaned up at rollback. All the places that checked for the rolled-back flag should also check the marked-for-death flag, as both flags mean that the transaction will roll back. I also renamed the marked-for-death into "doomed", which is a lot shorter name.
http://git.postgresql.org/pg/commitdiff/264a6b127a918800d9f8bac80b5f4a8a8799d0f1
- pgindent run of recent SSI changes. Also, remove an unnecessary #include. Kevin Grittner
http://git.postgresql.org/pg/commitdiff/cb94db91b257c6375f597d9e9df2f48d5326a967
- Update README-SSI. Add a section to describe the "dangerous structure" that SSI is based on, as well as the optimizations about relative commit times and read-only transactions. Plus a bunch of other misc fixes and improvements. Dan Ports
http://git.postgresql.org/pg/commitdiff/78475b0ecac4e7793366d2dba0cb875a8fde6bb0
Tom Lane a poussé :
- Fix assorted issues with build and install paths containing spaces. Apparently there is no buildfarm critter exercising this case after all, because it fails in several places. With this patch, build, install, check-world, and installcheck-world pass for me on OS X.
http://git.postgresql.org/pg/commitdiff/a61b6b7d184dc7aa2475eb4d293990404be5fedd
- Suppress -arch switches in the output of ExtUtils::Embed. We previously found out that OS X's standard perl installation tries to put -arch switches into Perl link commands, evidently in hopes of building universal binaries. But it doesn't work to add such switches in plperl's link step if they weren't being used earlier, so this is basically unworkable. When using gcc the result is only some warnings; but LLVM fails entirely, so this issue isn't as cosmetic as we originally thought. Hence, back-patch commit d69a419e682c2d39c2355105a7e5e2b90357c8f0 into pre-9.0 branches.
http://git.postgresql.org/pg/commitdiff/212567ad3ee23c7ff630e41034c48814b3f18cc9
- Fix oversights in pg_basebackup's -z (compression) option. The short-form -z switch didn't work, for lack of telling getopt_long about it; and even if specified long-form, it failed to do anything, because the various tests elsewhere in the file would take Z_DEFAULT_COMPRESSION (which is -1) as meaning "don't compress". Per bug #6060 from Shigehiro Honda, though I editorialized on his patch a bit.
http://git.postgresql.org/pg/commitdiff/31156ce8b95c5e9fa8cb01f08de008c3289c1086
- Fix failure to account for memory used by tuplestore_putvalues(). This oversight could result in a tuplestore using much more than the intended amount of memory. It would only happen in a code path that loaded a tuplestore via tuplestore_putvalues(), and many of those won't emit huge amounts of data; but cases such as holdable cursors and plpgsql's RETURN NEXT command could have the problem. The fix ensures that the tuplestore will switch to write-to-disk mode when it overruns work_mem. The potential overrun was finite, because we would still count the space used by the tuple pointer array, so the tuplestore code would eventually flip into write-to-disk mode anyway. When storing wide tuples we would go far past the expected work_mem usage before that happened; but this may account for the lack of prior reports. Back-patch to 8.4, where tuplestore_putvalues was introduced. Per bug #6061 from Yann Delorme.
http://git.postgresql.org/pg/commitdiff/10db3de66eb226e9aed32e789abd532c41f0f471
- Rework parsing of ConstraintAttributeSpec to improve NOT VALID handling. The initial commit of the ALTER TABLE ADD FOREIGN KEY NOT VALID feature failed to support labeling such constraints as deferrable. The best fix for this seems to be to fold NOT VALID into ConstraintAttributeSpec. That's a bit more general than the documented syntax, but it allows better-targeted syntax error messages. In addition, do some mostly-but-not-entirely-cosmetic code review for the whole NOT VALID patch.
http://git.postgresql.org/pg/commitdiff/e1ccaff6eea1b48f4b9b28cabaf0f990119b0d19
- Use single quotes in preference to double quotes for protecting pathnames. Per recommendation from Peter Eisentraut. Neither choice is bulletproof, but this is the existing style and it does help prevent unexpected environment variable substitution.
http://git.postgresql.org/pg/commitdiff/1568fa75bcf393977425ccb73752b98883a9f375
- Remove another no-longer-needed inclusion of predicate.h.
http://git.postgresql.org/pg/commitdiff/307a4c2cbbb8e824163fca354783e79d2892d231
- Index tuple data arrays using Anum_xxx symbolic constants instead of "i++". We had already converted most places to this style, but this patch gets the last few that were still doing it the old way. The main advantage is that this exposes a greppable name for each target column, rather than having to rely on comments (which a couple of places failed to provide anyhow). Richard Hopkins, additional work by me to clean up update_attstats() too
http://git.postgresql.org/pg/commitdiff/bfcb9328e51eaaa21c92a1f2d7262758afb843e8
- Obtain table locks as soon as practical during pg_dump. For some reason, when we (I) added table lock acquisition to pg_dump, we didn't think about making it happen as soon as possible after the start of the transaction. What with subsequent additions, there was actually quite a lot going on before we got around to that; which sort of defeats the purpose. Rearrange the order of calls in dumpSchema() to close the risk window as much as we easily can. Back-patch to all supported branches.
http://git.postgresql.org/pg/commitdiff/68d977a73797a129913179010eea088f30e370b7
- Don't use "cp -i" in the example WAL archive_command. This is a dangerous example to provide because on machines with GNU cp, it will silently do the wrong thing and risk archive corruption. Worse, during the 9.0 cycle somebody "improved" the discussion by removing the warning that used to be there about that, and instead leaving the impression that the command would work as desired on most Unixen. It doesn't. Try to rectify the damage by providing an example that is safe most everywhere, and then noting that you can try cp -i if you want but you'd better test that. In back-patching this to all supported branches, I also added an example command for Windows, which wasn't provided before 9.0.
http://git.postgresql.org/pg/commitdiff/a2624c687db3a3edcf5995773e47e9fef3e62a8c
Simon Riggs a poussé :
- Respect Hot Standby controls while recycling btree index pages. Btree pages were recycled after VACUUM deletes all records on a page and then a subsequent VACUUM occurs after the RecentXmin horizon is reached. Using RecentXmin meant that we did not respond correctly to the user controls provide to avoid Hot Standby conflicts and so spurious conflicts could be generated in some workload combinations. We now reuse pages only when we reach RecentGlobalXmin, which can be much later in the presence of long running queries and is also controlled by vacuum_defer_cleanup_age and hot_standby_feedback. Noah Misch and Simon Riggs.
http://git.postgresql.org/pg/commitdiff/758bd2a433d64bed00ca084203b3e5ccfdea4499
Andrew Dunstan a poussé :
Magnus Hagander a poussé :
Correctifs rejetés (à ce jour)
- Florian Pflug's patch to implement ANY/ALL(array) OP EXPR. The right way to do this is to provide commutators for the operators that don't have them yet.
Correctifs en attente
- Jaime Casanova and David Fetter traded patches which error out when casting to or from a DOMAIN.
- KaiGai Kohei sent in another revision of the patch to allow access to the user-space access control vector for sepgsql.
- Richard Hopkins sent in a patch to clarify the CreateComments function, in the process removing an unneeded variable from it.
- Florian Pflug sent in a patch to throw errors documenting the fact that ANY/ALL(...) OP EXPR is not yet implemented.
- KaiGai Kohei sent in another revision of the patch to add security label support for shared database objects.
- Merlin Moncure sent in another revision of the patch to clean up psql's describe.c by making all the SQL emitted by -E (ECHO_HIDDEN) mode cut-and-pasteable with terminating semicolons. In passing, remove trailing newlines.
- Cedric Villemain sent in a set of experimental patches intended to get estimates of what's cached in order to make better execution plans.
- Shigeru HANADA sent in two revisions of a patch to add SQL/MED per-column GENERIC OPTIONs.
- Alexander Korotkov sent in another revision of the patch to collect frequency statistics for arrays.
- Kevin Grittner sent in another revision of the patch to get SSI to play nicer with 2PC.
- Fujii Masao sent in another revision of the patch to enable cascading replication.
- Jun Ishiduka sent in a patch intended to help allow making an online base backup from a hot standby.
- Shigeru HANADA sent in a patch to enable per-column generic options for foreign tables.
- KaiGai Kohei sent in three revisions of a patch to rework DROP to support get_object_address.
- KaiGai Kohei sent in a patch to rework DROP by consolidating the routines to handle DropStmt.
- Robert Haas sent in a patch to remove a redundant store by ProcGlobalShmemSize() of startupBufferPinWaitBufId.
- Simon Riggs sent in a patch to create one-shot plans which get executed immediately, the results discarded and the timing reported back to the planner.
- Bruce Momjian sent in two revisions of a patch to allow only apps with the name binary-upgrade to connect to the cluster while it is in binary upgrade mode, i.e. to disallow any apps not so named.
- Mark Kirkwood and Cedric Villemain traded new revisions of the patch to make it possible to constrain backend temporary file space.
- Fujii Masao sent in a patch to fix a leak in dblink.
- Noah Misch sent in another revision of the patch to avoid index rebuilds for no-rewrite ALTER TABLE ... ALTER TYPE operations.
- Simon Riggs sent in three revisions of a patch to allow recycling index pages in the case of hot standby.
- Leonardo Francalanci sent in two more revisions of the patch to use less space in xl_xact_commit.
- Alvaro Herrera sent in three more revisions of the patch to allow creating CHECK constraints as NOT VALID.
- Alexander Korotkov sent in another revision of the patch to do fast GiST index builds.
- Martin Pihlak sent in a WIP patch to fix an infelicity with libpq and SSL.
- Ahmed Shinwari sent in a patch to fix an issue with Windows when connecting using SSPI auth.
- Bernd Helmle and Joseph Adams traded patches to add a JSON type.
- Alexander Korotkov and Florian Pflug traded new revisions of a patch to create a validator for configuration files.
- Radoslaw Smogura sent in two revisions of a patch to make debug builds without optimization.
- Radoslaw Smogura sent in a patch intended to provide a general infrastructure for streaming data in and out of PostgreSQL.
- Shigeru HANADA sent in another revision of the patch to handle deadlock_timeout at times less than PGC_SIGHUP.
- Robert Haas sent in three more revisions of a patch to make the visibility map crash-safe.
- Peter Geoghegan sent in two more revisions of a patch to wake when the postmaster dies, both on win32 and *n*x.
- Hitoshi Harada sent in another revision of the patch to optimize aggregation by parameterzing.
- Andrew Tipton sent in another revision of the patch to add GiST support for BOX @> POINT queries.
- Kevin Grittner sent in a doc patch describing SSI tuning points.
- Brendan Jurd sent in another revision of a patch to make keywords in pg_hba.conf field-specific.
- Josh Kupershmidt sent in another revision of the patch to enable \dd in psql to show constraint comments.
- Radoslaw Smogura sent in another revision of a patch to fix some infelicities in XPATH evaluation which could cause things to be evaluated as null rather than empty string in XML context.
- Jeff Davis and Robert Haas traded patches to refactor heap_hot_search_buffer() so that index_getnext() can use it, and modifies index_getnext() to do so.
- Noah Misch sent in another revision of the patch to identify no-op length coercions and not coerce them.
- Kevin Grittner sent in a patch to fix some SSI issues with SLRU.