PostgreSQL La base de donnees la plus sophistiquee au monde.

Twitter


Utilisateur




Langue

Traductions de cette page:




Nouvelles hebdomadaires de PostgreSQL - 22 février 2009

Félicitations à Joshua Drake pour son futur passeport. Prochaine étape, le décalage horaire !
[ndt: une longue histoire]

Les nouveautés des produits dérivés

L'astuce de la semaine

Utilisez la vue système 'pg_locks', combinée avec 'pg_stat_activity', pour lister les requêtes bloquées par des verrous.

(lien vers l'article original)

Offres d'emplois autour de PostgreSQL en février

PostgreSQL Local

PostgreSQL dans les média

PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter et Josh Berkus. La traduction en est assurée par l'équipe PostgreSQLFr.

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.

Correctifs appliqués

Bruce Momjian a commité :

  • In pgsql/src/bin/pg_dump/pg_dump.c, uppercase keywords.
  • In pgsql/src/bin/pg_dump/pg_dump.c, wrap some long queries.
  • Add pg_dump --binary-upgrade flag to be used by binary upgrade utilities. The new code allows transfer of dropped column information to the upgraded server.
  • In pgsql/src/bin/pg_dump/pg_dump.c, add missing newline.
  • Have pg_dump/pg_dumpall --binary-upgrade restore frozenids for relations and databases.
  • Add --freeze option to vacuumdb.

Peter Eisentraut a commité :

  • Remove gettext trigger write_stderr(), which isn't used by PLs.
  • In pgsql/src/pl/plpgsql/src/plpgsql.h, redefine _() to dgettext() instead of gettext() so that it uses the plpgsql text domain, instead of the postgres one (or whatever the default may be).
  • Mark 3rd argument of validate_tupdesc_compat() for translation, instead of marking up each instance separately.
  • In pgsql/src/pl/plpgsql/src/nls.mk, add plpgsql_yyerror to gettext triggers.
  • In pgsql/src/pl/plpgsql/src/scan.l, add _() calls for the argument of plpgsql_yyerror() so it actually gets translated somehow.
  • Message wordsmithing
  • In pgsql/src/pl/plperl/nls.mk, remove croak and Perl_croak from gettext triggers. While we could selectively mark up their arguments for translation, the Perl xsubpp tool generates a bunch of additional Perl_croak calls that we cannot control, so we'd be creating a confusing mix of translated and untranslated messages of a similar kind. This is something that might deserve a more comprehensive solution later. Also remove _ from gettext triggers, because it wasn't used. Use SPI.c instead of SPI.xs as source file for xgettext, because the .xs format isn't really supported in xgettext.
  • In pgsql/src/Makefile.global.in, add an implicit rule %.c -> %.i for running the C preprocessor. I occasionally use this for debugging, and it seems wasteful to have to reinvent this all the time.
  • Wordsmithing for PL/Perl messages
  • In pgsql/src/pl/plperl/plperl.c, another small message tweak.

Heikki Linnakangas a commité :

  • Start background writer during archive recovery. Background writer now performs its usual buffer cleaning duties during archive recovery, and it's responsible for performing restartpoints. This requires some changes in postmaster. When the startup process has done all the initialization and is ready to start WAL redo, it signals the postmaster to launch the background writer. The postmaster is signaled again when the point in recovery is reached where we know that the database is in consistent state. Postmaster isn't interested in that at the moment, but that's the point where we could let other backends in to perform read-only queries. The postmaster is signaled third time when the recovery has ended, so that postmaster knows that it's safe to start accepting connections. The startup process now traps SIGTERM, and performs a "clean" shutdown. If you do a fast shutdown during recovery, a shutdown restartpoint is performed, like a shutdown checkpoint, and postmaster kills the processes cleanly. You still have to continue the recovery at next startup, though. Currently, the background writer is only launched during archive recovery. We could launch it during crash recovery as well, but it seems better to keep that codepath as simple as possible, for the sake of robustness. And it couldn't do any restartpoints during crash recovery anyway, so it wouldn't be that useful. log_restartpoints is gone. Use log_checkpoints instead. This is yet to be documented. This whole operation is a pre-requisite for Hot Standby, but has some value of its own whether the hot standby patch makes 8.4 or not. Simon Riggs, with lots of modifications by me.
  • In pgsql/src/include/storage/proc.h, increase NUM_AUXILIARY_PROCS, now that the startup process can co-exist with other auxiliary processes for a short period. As witnessed by buildfarm member dungbeetle.
  • In pgsql/src/backend/postmaster/postmaster.c, fix bogus comment, from the patch to start bgwriter during archive recovery.

Tom Lane a commité :

  • Remove the special cases to prevent minus-zero results in float4 and float8 unary minus operators. We weren't attempting to prevent minus zero anywhere else; in view of our gradual trend to make the float datatypes more IEEE standard compliant, we should allow minus zero here rather than disallow it elsewhere. We don't, however, expect that all platforms will produce minus zero, so we need to adjust the one affected regression test to allow both results. Per discussion of bug #4660. (In passing, clean up a couple other minor infelicities in float.c.)
  • In pgsql/src/backend/optimizer/path/joinrels.c, improve comments about semijoin implementation strategy, per a question from Robert Haas.
  • In pgsql/src/backend/optimizer/plan/initsplan.c, simplify overcomplicated (and overly restrictive) test to see whether an IS NULL condition is rendered redundant by detection of an antijoin. If we know that a join is an antijoin, then *any* Var coming out of its righthand side must be NULL, not only the joining column(s). Also, it's still gonna be null after being passed up through higher joins, whether they're outer joins or not. I was misled by a faulty analogy to reduce_outer_joins() in the original coding. But consider select * from a left join b on a.x = b.y where b.y is null and b.z is null; The first IS NULL condition justifies deciding that the join is an antijoin (if the = is strict) and then the second one is just plain redundant.
  • In pgsql/doc/src/sgml/config.sgml, add note that inlined SQL functions aren't tracked by track_functions.

Andrew Dunstan a commité :

  • In pgsql/src/bin/pg_dump/pg_backup_archiver.c, reconnect to the right database when using parallel restore with -C. Fixes bug reported by Olivier Prenant

Correctifs rejetés (à ce jour)

  • Pas de déception cette semaine :-)

Correctifs en attente

  • Teodor Sigaev sent in two variants of the GIN fast insert patch, then a follow-up patch per feedback from Robert Haas.
  • Robert Haas sent in another revision of the patch to improve the performance of multi-batchhash joins for skewed data sets.
  • Andrew Chernow sent in a patch which implements PQinitSecure in libpq and a follow-up patch to fix a bug in the first one.
  • Heikki Linnakangas sent in a patch which makes the postmaster wait for a startup process signal in particular before allowing general access.
  • ITAGAKI Takahiro sent in a patch to allow parse_bool* to take 'on' and 'off' as options.
  • KaiGai Kohei sent in another revision of his SE-PostgreSQL patches.
  • Adriano Lange sent in a patch to allow graph representation of structures in the optimizer.

 
pgwn/22_fevrier_2009.txt · Dernière modification: 2009/02/23 22:56 par buggy