Nouvelles hebdomadaires de PostgreSQL - 30 août 2009
La 8.5alpha1, la toute première version alpha de PostgreSQL, est disponible au téléchargement. Les notes de publication, les informations générales liées à l'"alpha" et le téléchargement sont à ces adresses : http://developer.postgresql.org/pgdocs/postgres/release-8.5.html http://www.postgresql.org/developer/alpha http://www.postgresql.org/ftp/source/8.5alpha1/
Le livre d'Andreas (ads) Scherbaum « PostgreSQL. Datenbankpraxis für Anwender, Administratoren und Entwickler » [ndt: PostgreSQL. Manuel de BDD à l'usage des utilisateurs, administrateurs et développeurs] a été publié : http://www.amazon.de/PostgreSQL-Datenbankpraxis-Anwender-Administratoren-Entwickler/dp/3937514694/
Les versions de correction de bug 8.4.1, 8.3.8, 8.2.13, 8.1.17, 8.0.21 et 7.4.25 seront bientôt disponibles. Préparez-vous à mettre à jour !
La date limite pour les conférences du JDCon a été reportée au 5 septembre. Proposez-vous ! http://www.postgresqlconference.org/
Les nouveautés des produits dérivés
- once:radix version 1.5, un système de développement rapide d'applications basé sur PostgreSQL 8.4 : http://www.oncetechnologies.com/
- Benetl 3.0, un ETL pour fichiers utilisant PostgreSQL : http://www.benetl.net
- PostgreSQL Replicator 8.3.1-1.8, anciennement Mammoth Replicator : http://projects.commandprompt.com/public/replicator
- pgpool-II 2.2.4, un gestionnaire de connexions et bien d'avantage : http://pgfoundry.org/projects/pgpool/
Offres d'emplois autour de PostgreSQL en août
- La "PyCon Argentina" aura lieu à Buenos Aires les 4 & 5 septembre 2009 : http://ar.pycon.org/2009/
- SFPUG présente : Nathan Boley, « Statistiques et Postgres.» 8 septembre 2009. Détails et webcast en direct : http://postgresql.meetup.com/1/calendar/11030245/
- Andreas (ads) Scherbaum enseignera au centre pour adultes de Magdeburg (All.) du 7 au 11 septembre 2009 sur le sujet "PostgreSQL for Corporate Use". Détails ci-dessous : http://andreas.scherbaum.la/blog/archives/574-PostgreSQL-als-Bildungsurlaub.html
- Il y aura une conférence à Athens (Georgie, États-Unis) le 19 septembre 2009. L'appel aux conférences est ouvert : http://www.postgresqlconference.org/2009/pgday/athens
- Une suite de conférences est organisée à Seattle (État de Washington, États-Unis) du 16 au 18 octobre 2009. L'appel à conférences est ouvert : http://www.postgresqlconference.org/2009/west
- La "PGCon Brazil" prendra place à l'Unicamp de Campinas (État de São Paulo) les 23 & 24 octobre 2009. L'appel à conférences est lancé : http://pgcon.postgresql.org.br/2009/chamadas.en.php
- Le PGDay.EU 2009 est programmé pour les 6 & 7 novembre 2009 à Telecom ParisTech [ndt: ENST ?] : http://www.pgday.eu/
- L'OpenSQL Camp de Portland est à la recherche de sponsors. Pensez à votre voyage dès maintenant ! :) http://www.chesnok.com/daily/2009/07/29/opensql-camp-comes-to-portland-november-14-15-2009/
- Le rassemblement à l'occasion du 10ème anniversaire du JPUG est programmé pour les 20 & 21 novembre 2009 à Tokyo, Japon : http://archives.postgresql.org/pgsql-announce/2009-05/msg00018.php
- Le FOSDEM 2010 aura lieu à Bruxelles les 6 & 7 février 2010 : http://www.fosdem.org/
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.
Tom Lane a commité :
- Run the "tablespace" regression test first not last. The former placement renders useless one of the few test methodologies we have for WAL replay, which is to intentionally crash the system just after completing the regression tests and see if it recovers to the expected database state. The reason is that DROP TABLESPACE forces a checkpoint, so there's essentially no WAL available for replay after the tests complete.
- In pgsql/src/bin/psql/input.h, fix inclusions of readline/editline header files so that we only attempt to #include the version of history.h that is in the same directory as the readline.h we are using. This avoids problems in some scenarios where both readline and editline are installed. Report and patch by Zdenek Kotala.
- In pgsql/src/backend/postmaster/postmaster.c, small correction to previous patch: we shouldn't ReleasePostmasterChildSlot for a dead_end child, because we didn't AssignPostmasterChildSlot.
- Try to make silent_mode behave somewhat reasonably. Instead of sending stdout/stderr to /dev/null after forking away from the terminal, send them to postmaster.log within the data directory. Since this opens the door to indefinite logfile bloat, recommend even more strongly that log output be redirected when using silent_mode. Move the postmaster's initial calls of load_hba() and load_ident() down to after we have started the log collector, if we are going to. This is so that errors reported by them will appear in the "usual" place. Reclassify silent_mode as a LOGGING_WHERE, not LOGGING_WHEN, parameter, since it's got absolutely nothing to do with the latter category. In passing, fix some obsolete references to -S ... this option hasn't had that switch letter for a long time. Back-patch to 8.4, since as of 8.4 load_hba() and load_ident() are more picky (and thus more likely to fail) than they used to be. This entire change was driven by a complaint about those errors disappearing into the bit bucket.
- In pgsql/src/backend/utils/adt/geo_ops.c, remove some unnecessary variable assignments, per results of "clang" static checker. Paul Matthews.
- Make it reasonably safe to use pg_ctl to start the postmaster from a boot-time script. To do this, have pg_ctl pass down its parent shell's PID in an environment variable PG_GRANDPARENT_PID, and teach CreateLockFile() to disregard that PID as a false match if it finds it in postmaster.pid. This allows us to cope with one level of postgres-owned shell process even with pg_ctl in the way, so it's just as safe as starting the postmaster directly. You still have to be careful about how you write the initscript though. Adjust the comments in contrib/start-scripts/ to not deprecate use of pg_ctl. Also, fix the ROTATELOGS option in the OSX script, which was indulging in exactly the sort of unsafe coding that renders this fix pointless :-( . A pipe inside the "sudo" will probably result in more than one postgres-owned process hanging around.
- In pgsql/src/Makefile.shlib, make the .DEF file generation rules safe against tabs in exports.txt. Per bug #5016, although I think the MSVC build scripts may need a similar fix.
- Modify the definition of window-function PARTITION BY and ORDER BY clauses so that their elements are always taken as simple expressions over the query's input columns. It originally seemed like a good idea to make them act exactly like GROUP BY and ORDER BY, right down to the SQL92-era behavior of accepting output column names or numbers. However, that was not such a great idea, for two reasons: 1. It permits circular references, as exhibited in bug #5018: the output column could be the one containing the window function itself. (We actually had a regression test case illustrating this, but nobody thought twice about how confusing that would be.) 2. It doesn't seem like a good idea for, eg, "lead(foo) OVER (ORDER BY foo)" to potentially use two completely different meanings for "foo". Accordingly, narrow down the behavior of window clauses to use only the SQL99-compliant interpretation that the expressions are simple expressions.
- In pgsql/src/backend/postmaster/postmaster.c, non-Windows EXEC_BACKEND path was broken by recent write_inheritable_socket change ... it's got to return true.
- Remove useless code that propagated FrontendProtocol to a backend via a PostgresMain switch. In point of fact, FrontendProtocol is already set in a backend process, since ProcessStartupPacket() is executed inside the backend --- it hasn't been run by the postmaster for many years. And if it were, we'd still certainly want FrontendProtocol to be set before we get as far as PostgresMain, so that startup errors get reported in the right protocol. -v might have some future use in standalone backends, so I didn't go so far as to remove the switch outright. Also, initialize FrontendProtocol to 0 not PG_PROTOCOL_LATEST. The only likely result of presetting it like that is to mask failure-to-set-it mistakes.
- Remove the use of the pg_auth flat file for client authentication. (That flat file is now completely useless, but removal will come later.) To do this, postpone client authentication into the startup transaction that's run by InitPostgres. We still collect the startup packet and do SSL initialization (if needed) at the same time we did before. The AuthenticationTimeout is applied separately to startup packet collection and the actual authentication cycle. (This is a bit annoying, since it means a couple extra syscalls; but the signal handling requirements inside and outside a transaction are sufficiently different that it seems best to treat the timeouts as completely independent.) A small security disadvantage is that if the given database name is invalid, this will be reported to the client before any authentication happens. We could work around that by connecting to database "postgres" instead, but consensus seems to be that it's not worth introducing such surprising behavior. Processing of all command-line switches and GUC options received from the client is now postponed until after authentication. This means that PostAuthDelay is much less useful than it used to be --- if you need to investigate problems during InitPostgres you'll have to set PreAuthDelay instead. However, allowing an unauthenticated user to set any GUC options whatever seems a bit too risky, so we'll live with that.
- Remove duplicate variable initializations identified by clang static checker. One of these represents a nontrivial bug (a promptly-leaked palloc), so backpatch. Greg Stark
- In pgsql/src/backend/utils/cache/relcache.c, remove some useless assignments of the result of fread(). Quiets warnings from clang static checker, and makes the code more readable anyway IMO.
Alvaro Herrera a commité :
- In pgsql/src/bin/pg_dump/pg_backup_custom.c, remove unused variable. Per Grzegorz Jaskiewicz's report from LLVM static checker.
- Avoid calling kill() in a postmaster signal handler. This causes problems when the system load is high, per report from Zdenek Kotala in <1250860954.1239.114.camel@localhost>; instead of calling kill directly, have the signal handler set a flag which is checked in ServerLoop. This way, the handler can return before being called again by a subsequent signal sent from the autovacuum launcher. Also, increase the sleep in the launcher in this failure path to 1 second. Backpatch to 8.3, which is when the signalling between autovacuum launcher/postmaster was introduced. Also, add a couple of ReleasePostmasterChildSlot calls in error paths; this part backpatched to 8.4 which is when the child slot stuff was introduced.
- Fix handling of autovacuum reloptions. In the original coding, setting a single reloption would cause default values to be used for all the other reloptions. This is a problem particularly for autovacuum reloptions. Itagaki Takahiro
Peter Eisentraut a commité :
- Make PL/Python tests more compatible with Python 3. This changes a bunch of incidentially used constructs in the PL/Python regression tests to equivalent constructs in cases where Python 3 no longer supports the old syntax. Support for older Python versions is unchanged.
- Use generic attribute management in PL/Python. Switch the implementation of the plan and result types to generic attribute management, as described at < http://docs.python.org/extending/newtypes.html>. This modernizes and simplifies the code a bit and prepares for Python 3.1, where the old way doesn't work anymore.
- Enhanced error context support in PL/Python. Extract the "while creating return value" and "while modifying trigger row" parts of some error messages into another layer of error context. This will simplify the upcoming patch to improve data type support, but it can stand on its own.
- In pgsql/doc/src/sgml/stylesheet.css, update the documentation CSS stylesheet to current web site style.
- In pgsql/doc/src/sgml/stylesheet.css, correct my overly enthusiastic CSS simplification.
- In pgsql/src/backend/parser/Makefile, add -Wno-error to CFLAGS from gram.o as long as it's broken.
- Update of install-sh, mkinstalldirs, and associated configury. Update install-sh to that from Autoconf 2.63, plus our Darwin-specific changes (which I simplified a bit). install-sh is now able to install multiple files in one run, so we could simplify our makefiles sometime. install-sh also now has a -d option to create directories, so we don't need mkinstalldirs anymore. Use AC_PROG_MKDIR_P in configure.in, so we can use mkdir -p when available instead of install-sh -d. For consistency with the rest of the world, the corresponding make variable has been renamed from $(mkinstalldirs) to $(MKDIR_P).
- Derived files that are shipped in the distribution used to be built in the source directory even for out-of-tree builds. They are now also built in the build tree. This should be more convenient for certain developers' workflows, and shouldn't really break anything else.
Bruce Momjian a commité :
- Update release notes for 7.4.26, 8.0.22, 8.1.18, 8.2.14, 8.3.8, 8.4.1.
- In pgsql/src/tools/pgcvslog, remove handling of CVS entries for TODO/FAQ, because they are removed now.
Heikki Linnakangas a commité :
- In pgsql/src/backend/access/transam/xlog.c, in the checkpoint written at the end of archive recovery, the WAL page header was incorrectly initialized with timeline ID 0. That rendered the WAL page unrecoverable, making a subsequent archive recovery stop at that point. ThisTimeLineID needs to be initialized before calling AdvanceXLInsertBuffer(). This fixes bug #5011 reported by James Bardin. Backpatch to 8.4, as the bug was introduced by the changes to use of bgwriter for writing the end-of-archive-recovery checkpoint. Patch by Tom Lane.
Magnus Hagander a commité :
- In pgsql/src/interfaces/ecpg/compatlib/exports.txt, exports.txt needs to use spaces as separators, not tabs, to work properly with the sed rules.
Correctifs rejetés (à ce jour)
- Pas de déception cette semaine :-)
Correctifs en attente
- Paul Matthews sent in another revision of the patch to implement hypot().
- Tom Lane sent in a WIP patch to move HBA validation after startup, which is intended to fix a problem reported by Andrew Dunstan with silent startup mode.
- Pavel Stehule sent in another revision of the patch to fix named/mixed notation.
- KaiGai Kohei sent in a patch to redo the access control facilities.
- Roger Leigh sent in an updated patch to allow psql to use Unicode formatting characters for pretty-printing.
- Alvaro Herrera sent in a WIP patch to allow for per-role, per-database default GUC settings.
- Andrew Dunstan sent in three revisions of a patch to make the output of the pretty print option for pg_get_viewdef() more readable.
- Kevin Grittner sent in two revisions of a LSB conforming launcher script.
- Grzegorz Jaskiewicz sent in a patch to fix some issues raised by the clang reports.
- Roger Leigh sent in another revision of the Unicode pretty-printing patch for psql.
- Pavel Stehule sent in a WIP patch to make cursor operations in PL/pgsql feature-complete and compatible with that in SQL.
- Robert Haas sent in another revision of the join removal patch.
- KaiGai Kohei sent in a patch which adds access control features to large objects.
- Paul Matthews sent in two more revisions of the hypot() patch.
- Greg Sabino Mullane sent in a patch to add YAML as an output format for EXPLAIN.
- Peter Eisentraut sent in a patch to log parameter changes.
- Jeff Janes sent in a patch to implement Simon Riggs' LWLock Queue Jumping idea.
- Petr (PJMODOS) Jelinek sent in another revision of the GRANT ON ALL IN schema patch.
- Marko (johto) Tiikkaja sent in a WIP patch to refactor the executor in preparation for making (INSERT|UPDATE|DELETE)...RETURNING work inside CTEs.