Nouvelles hebdomadaires de PostgreSQL - 14 novembre 2010
La Commitfest sur la période du 15 novembre au 15 décembre va commencer. Commencez à relire ces patchs !
https://commitfest.postgresql.org/action/commitfest_view?id=8
Vous pensez que relire des patchs est trop compliqué ? Repensez-y ! Vous pouvez aider !
http://wiki.postgresql.org/wiki/Reviewing_a_Patch
L'appel à projets de PostgreSQLFr a été lancé. Les projets doivent concerner PostgreSQL et la communauté francophone. Mail à appel-projets-2010 (AT) postgresql (DOT) fr.
HTSQL, un langage de requête BD de haut niveau pour les bases de données relationnelles avec un support pour PostgreSQL :
http://htsql.org/
Nouveau sondage : à quel événement PostgreSQL irez-vous le plus probablement dans les 6 prochains mois ?
http://www.postgresql.org/community/
Robert Treat recherche des utilisateurs (confirmés et potentiels) de PostgreSQL dans la région de la Nouvelle Orléans. Contactez-le sur rob (AT) xzilla (DOT) net.
PGCon aura lieu les 19 & 20 mai 2011 à l'Université d'Ottawa, précédé par deux jours de tutoriels les 17 & 18 mai :
http://www.pgcon.org/2011/
Pour les "lèves-tôts", les inscriptions au PGDay.IT, qui aura lieu le 10 décembre 2010 à Rome, sont ouvertes et le programme a été publié :
http://2010.pgday.it/
Les nouveautés des produits dérivés
Offres d'emplois autour de PostgreSQL en novembre
PostgreSQL Local
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)
Correctifs appliqués
Tom Lane a poussé :
- Use appendrel planning logic for top-level UNION ALL structures. Formerly, we could convert a UNION ALL structure inside a subquery-in-FROM into an appendrel, as a side effect of pulling up the subquery into its parent; but top-level UNION ALL always caused use of plan_set_operations(). That didn't matter too much because you got an Append-based plan either way. However, now that the appendrel code can do things with MergeAppend, it's worthwhile to hack up the top-level case so it also uses appendrels. This is a bit of a stopgap; but going much further than this will require a major rewrite of the planner's set-operations support, which I'm not prepared to undertake now. For the moment let's grab the low-hanging fruit.
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=947d0c862c895618a874344322e7b07c9df05cb2
- Fix error handling in temp-file deletion with log_temp_files active. The original coding in FileClose() reset the file-is-temp flag before unlinking the file, so that if control came back through due to an error, it wouldn't try to unlink the file twice. This was correct when written, but when the log_temp_files feature was added, the logging action was put in between those two steps. An error occurring during the logging action --- such as a query cancel --- would result in the unlink not getting done at all, as in recent report from Michael Glaesemann. To fix this, make sure that we do both the stat and the unlink before doing anything that could conceivably CHECK_FOR_INTERRUPTS. There is a judgment call here, which is which log message to emit first: if you can see only one, which should it be? I chose to log unlink failure at the risk of losing the log_temp_files log message --- after all, if the unlink does fail, the temp file is still there for you to see. Back-patch to all versions that have log_temp_files. The code was OK before that.
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=54428dbe90cf11d17439acad9b8dcf375a14819d
- Repair memory leakage while ANALYZE-ing complex index expressions. The general design of memory management in Postgres is that intermediate results computed by an expression are not freed until the end of the tuple cycle. For expression indexes, ANALYZE has to re-evaluate each expression for each of its sample rows, and it wasn't bothering to free intermediate results until the end of processing of that index. This could lead to very substantial leakage if the intermediate results were large, as in a recent example from Jakub Ouhrabka. Fix by doing ResetExprContext for each sample row. This necessitates adding a datumCopy step to ensure that the final expression value isn't recycled too. Some quick testing suggests that this change adds at worst about 10% to the time needed to analyze a table with an expression index; which is annoying, but seems a tolerable price to pay to avoid unexpected out-of-memory problems. Back-patch to all supported branches.
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=80fb2c1f4037d10cc259aee95558bca4a5fe4c30
- Improve pg_ctl's man page. Explicitly document that the -o options of pg_ctl init mode are meant for initdb, not postgres (Euler Taveira de Oliveira). Assorted other copy-editing (Tom).
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=0de92fd13cc436c76fbbd4759c94e2d3623a6bf1
- Fix line_construct_pm() for the case of "infinite" (DBL_MAX) slope. This code was just plain wrong: what you got was not a line through the given point but a line almost indistinguishable from the Y-axis, although not truly vertical. The only caller that tries to use this function with m == DBL_MAX is dist_ps_internal for the case where the lseg is horizontal; it would end up producing the distance from the given point to the place where the lseg's line crosses the Y-axis. That function is used by other operators too, so there are several operators that could compute wrong distances from a line segment to something else. Per bug #5745 from jindiax. Back-patch to all supported branches.
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=b0f2d681bdfd6a5b3e90d092f9d924f943b4fc5f
- Fix old oversight in const-simplification of COALESCE() expressions. Once we have found a non-null constant argument, there is no need to examine additional arguments of the COALESCE. The previous coding got it right only if the constant was in the first argument position; otherwise it tried to simplify following arguments too, leading to unexpected behavior like this: regression=# select coalesce(f1, 42, 1/0) from int4_tbl; ERROR: division by zero It's a minor corner case, but a bug is a bug, so back-patch all the way.
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=d7304244e26b92d533f7e44f0afbcf1ff2f46286
- Add missing outfuncs.c support for struct InhRelation. This is needed to support debug_print_parse, per report from Jon Nelson. Cursory testing via the regression tests suggests we aren't missing anything else.
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=2138c701a397885d4f360c90bf8b95d0d98aecd0
- Work around make 3.80 bug with long expansions of $(eval). 3.80 breaks if the expansion of $(eval) is long enough to require expansion of its internal variable_buffer. For the purposes of $(recurse) that means it'll work so long as no single evaluation of _create_recursive_target produces more than 195 bytes. We can manage that by looping over subdirectories outside the call instead of complicating the generated rule. This coding is simpler and more readable anyway. Or at least, this works for me. We'll see if the buildfarm likes it.
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=1bd201214965b3eba23bee2c4ce4c14accde170f
- Fix canAcceptConnections() bugs introduced by replication-related patches. We must not return any "okay to proceed" result code without having checked for too many children, else we might fail later on when trying to add the new child to one of the per-child state arrays. It's not clear whether this oversight explains Stefan Kaltenbrunner's recent report, but it could certainly produce a similar symptom. Back-patch to 8.4; the logic was not broken before that.
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=3892a2d8619ee5623fc3ebee775538fdea1f529e
- Adjust comments about what's needed to avoid make 3.80 bug. ... based on further tracing through that code.
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=357edc9a9952582c510cff1b08ebc5fd8df81a3b
Alvaro Herrera a poussé :
Heikki Linnakangas a poussé :
ITAGAKI Takahiro a poussé :
Robert Haas a poussé :
Bruce Momjian a poussé :
Peter Eisentraut a poussé :
Andrew Dunstan a poussé :
Correctifs rejetés (à ce jour)
- Pas de déception cette semaine :-)
Correctifs en attente
- Shigeru HANADA sent in two more revisions of the patch for SQL/MED.
- Heikki Linnakangas sent in two WIP patches to fix some misbehavior in the interaction between GIN and GiST index splits, and checkpoints.
- KaiGai Kohei sent in two revisions of a patch to add security hooks on object creation.
- Peter Eisentraut sent in a patch to add [RESTRICT|CASCADE] to ALTER TYPE ... ADD/ALTER/DROP/RENAME ATTRIBUTE, so that recurses to typed tables.
- Bruce Momjian sent in a patch to fix an issue where PostgreSQL appears stopped when it is actually running.
- Bruce Momjian sent in a patch to correct some error messages for connections to PostgreSQL over ipv6 in libpq.
- KaiGai Kohei sent in a patch to allow the security label provider to switch security label of the client during execution of certain functions.
- Robert Haas sent in a set of three patches intended to be infrastructure for unlogged tables.
- Jan Urbanski sent in a patch to fix a bug in plpython's Python Generators.
- Greg Smith sent in a rebased and corrected version of the MERGE patch.
- Marko (johto) Tiikkaja sent in another revision of the patch to add writeable CTEs, this time using single-snapshot isolation per discussion.
- Greg Smith sent in a patch which adds some logging for each individual fsync call made during a checkpoint, along with a summary at the end.
- Greg Smith sent in a patch which adds a new field to pg_stat_bgwriter, counting the number of times backends execute their own fsync calls.
- Greg Smith and Simon Riggs wrote and Greg Smith sent in a patch which spreads out the individual checkpoint fsync calls over time.
- ITAGAKI Takahiro sent in a WIP patch to add support for MULTISET functions.
- Joachim Wieland sent in a patch to add a new "directory" format to pg_dump, which is in part infrastructure for parallel pg_dump.
- Joachim Wieland sent in a patch based on the above patch which allows for parallel pg_dump and pg_restore.
- Peter Eisentraut sent in another patch to implement per-column collation.
- Gregory Stark sent in another revision of the patch to add getrusage resource tracking to EXPLAIN ANALYZE.