Nouvelles hebdomadaires de PostgreSQL - 8 février 2009
PostgreSQL 8.3.6, 8.2.12, 8.1.16, 8.0.20 et 7.4.24 sont disponibles. Mettez à jour !
http://www.postgresql.org/docs/current/static/release.html
Le second appel à conférenciers pour la "PostgreSQL Conference East" arrive à échéance le 23 février 2009 :
http://www.postgresqlconference.org/
Si vous êtes motivé pour remplir des sacoches de documents PG en prévision du SCALE, le LAPUG offre les pizzas le vendredi 20 février au Westin de Los Angeles. Écrivez à lapug (a) postgresql (point) org pour vous signaler.
Les nouveautés des produits dérivés
L'astuce de la semaine
En attendant que la version 8.4 en offre une implémentation native et super-efficace, vous pouvez ajouter la fonction array_accum() (cf. documentation) pour "étaler" une colonne dans un tableau ; tableau qui pourra ensuite être utilisé au niveau de l'application, ou bien combiné avec array_to_string() pour le formater comme une liste :
http://www.postgresql.org/docs/current/static/xaggr.html
(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
Peter Eisentraut a commité :
- In pgsql/doc/src/sgml/catalogs.sgml, put pg_user_mapping section into the right (alphabetical) order.
- In pgsql/src/backend/catalog/sql_features.txt, set column privileges to supported.
Michael Meskes a commité :
- Fixed bug in ecpg's %s handling.
- Fixed auto allocation for binary data types in ecpg.
- In pgsql/src/interfaces/ecpg/test/sql/binary.pgc, set memory segment to '0', just to be sure.
- In ecpg, when changing a regression test file one should also change the expected output file.
- In pgsql/src/interfaces/ecpg/ecpglib/execute.c, fixed copy&paste mistake that made library use uninitialized variable.
- In pgsql/src/interfaces/ecpg/ecpglib/execute.c, argh, wrong line copied again.
- In ecpg, added result checks for calls to gmtime().
- In pgsql/src/interfaces/ecpg/pgtypeslib/dt_common.c, mixing long and int entries of a union only works on some architectures.
Alvaro Herrera a commité :
- Allow reloption names to have qualifiers, initially supporting a TOAST qualifier, and add support for this in pg_dump. This allows TOAST tables to have user-defined fillfactor, and will also enable us to move the autovacuum parameters to reloptions without taking away the possibility of setting values for TOAST tables.
- Fix some SGML-compiler warnings on -wxml mode.
Andrew Dunstan a commité :
- Provide for parallel restoration from a custom format archive. Each data and post-data step is run in a separate worker child (a thread on Windows, a child process elsewhere) up to the concurrent number specified by the new pg_restore command-line --multi-thread | -m switch. Andrew Dunstan, with some editing by Tom Lane.
- Allow alternative names for tclsh used on Windows.
Tom Lane a commité :
- In pgsql/src/pl/plpgsql/src/gram.y, fix plpgsql to not treat INSERT INTO as an INTO-variables clause anywhere in the string, not just at the start. Per bug #4629 from Martin Blazek. Back-patch to 8.2; prior versions don't have the problem, at least not in the reported case, because they don't try to recognize INTO in non-SELECT statements. (IOW, this is really fallout from the RETURNING patch.)
- In pgsql/doc/src/sgml/ref/select.sgml, document the longstanding behavior of LIMIT NULL and OFFSET NULL, per gripe from David Wheeler that this was mentioned nowhere. In passing, editorialize a bit on the description of the SQL:2008 equivalent syntax.
- In pgsql/src/backend/postmaster/syslogger.c, add a failure check for syslogger's use of _beginthreadex(), and remove unnecessary thread address output parameter, to make this code look more like that in pg_restore.
- In pgsql/src/backend/optimizer/path/joinpath.c, fix an old corner-case error in match_unsorted_outer(): don't consider the cheapest-total inner path as a new candidate while truncating the sort key list, if it already matched the full sort key list. This is too much of a corner case to be worth back-patching, since it's unusual for the cheapest total path to be sorted, and anyway no real harm is done (except in JOIN_SEMI/ANTI cases where cost_mergejoin is a bit broken at the moment). But it wasn't behaving as intended, so fix it. Noted while examining a test case from Kevin Grittner. This error doesn't explain his issue, but it does explain why "set enable_seqscan = off" seemed to reproduce it for me.
- Clean up some loose ends from the column privileges patch: add has_column_privilege and has_any_column_privilege SQL functions; fix the information_schema views that are supposed to pay attention to column privileges; adjust pg_stats to show stats for any column you have select privilege on; and fix COPY to allow copying a subset of columns if the user has suitable per-column privileges for all the columns. To improve efficiency of some of the information_schema views, extend the has_xxx_privilege functions to allow inquiring about the OR of a set of privileges in just one call. This is just exposing capability that already existed in the underlying aclcheck routines. In passing, make the information_schema views report the owner's own privileges as being grantable, since Postgres assumes this even when the grant option bit is not set in the ACL. This is a longstanding oversight. Also, make the new has_xxx_privilege functions for foreign data objects follow the same coding conventions used by the older ones. Stephen Frost and Tom Lane
- In pgsql/doc/src/sgml/ref/copy.sgml, ooops, forgot to update COPY reference page to mention column privileges.
- Fix cost_mergejoin's failure to adjust for rescanning of non-unique merge join keys when considering a semi or anti join. This requires estimating the selectivity of the merge qual as though it were a regular inner join condition. To allow caching both that and the real outer-join-aware selectivity, split RestrictInfo.this_selec into two fields. This fixes one of the problems reported by Kevin Grittner.
- In pgsql/src/backend/executor/execMain.c, ensure that INSERT ... SELECT into a table with OIDs never copies row OIDs from the source table. This could never happen anyway before 8.4 because the executor invariably applied a "junk filter" to rows due to be inserted; but now that we skip doing that when it's not necessary, the case can occur. Problem noted 2008-11-27 by KaiGai Kohei, though I misunderstood what he was on about at the time (the opacity of the patch he proposed didn't help).
Bruce Momjian a commité :
- In pgsql/doc/src/sgml/mvcc.sgml, update read committed documentation to better explain undesirable behavior of concurrent commands in cases where rows are being added and removed from matching query criteria. Minor word-smithing.
- Add PL/PgSQL FOUND and GET DIAGNOSTICS support for RETURN QUERY statement. Pavel Stehule.
- In pgsql/doc/src/sgml/libpq.sgml, document ways to avoid libpq WSACleanup() overhead on Windows. Andrew Chernow.
- In pgsql/doc/src/sgml/libpq.sgml, fix typo in docs.
- Fix to_timestamp() to not require upper/lower case matching for meridian designations (AM/PM). Also separate out matching of a meridian with periods (e.g. A.M.) and with those without. Do the same for AD/BC. Brendan Jurd
- Document disabling the statistics collector pg_dump activity, and give a bit more visibility to the PGOPTIONS environment variable supported by libpq. Bryce Nesbitt
- In pgsql/doc/src/sgml/catalogs.sgml, update pg_constraint.conkey documentation description.
- In pgsql/doc/src/sgml/ref/pg_dump.sgml, properly wrap new pg_dump doc text.
- In pgsql/src/interfaces/ecpg/ecpglib/Makefile, ecpg requires libpq; add Makefile rules to require libpq to be built first. Alvaro Herrera.
- In pgsql/doc/src/sgml/catalogs.sgml, uppercase CHECK mention in relchecks documentation mention.
- In pgsql/doc/src/sgml/indices.sgml, remove documentation mention that hash indexes perform no better than btree; keep mention about missing WAL logging. Kenneth Marshall
- In pgsql/doc/src/sgml/queries.sgml, document that LIMIT NULL is the same as no LIMIT clause. Report by David Wheeler.
Heikki Linnakangas a commité :
- In pgsql/src/backend/access/transam/xlog.c, fix obsolete comment. Zdenek Kotala.
Correctifs rejetés (à ce jour)
- Pas de déception cette semaine :-)
Correctifs en attente
- Fernando Ike de Oliveira sent in another revision of his patch to add \dL (show languages) to psql.
- David Wheeler sent in a doc patch to explicate that LIMIT NULL returns all rows.
- Zdenek Kotala sent in a fix for Czech (cs_CZ) locale regression tests.
- Stephen Frost sent in another revision of his column-level privileges patch.
- Teodor Sigaev sent in another revision of his GIN improvements patch.
- KaiGai Kohei sent in another revision of his SE-PostgreSQL patches.
- Alvaro Herrera sent in another revision of the reloptions patch to remove autovacuum parameters.
- Peter Eisentraut sent in a patch to add basic KOI8-U support.
- Alvaro Herrera sent in a doc patch for the reloptions patch.
- David Lee Lambert sent in a patch which lets Linux use the ext2fs UUID generator for UUIDs.
- Tom Lane sent in a patch to make ALTER TABLE SET WITH OIDS actually add the aforementioned OIDs.