PGWN - 05 février 2007
PostgreSQL Weekly News - 4 février 2007
Les mises à jour de sécurité 8.2.2, 8.1.7, 8.0.11, 7.4.16 et 7.3.18 seront disponibles le 5 février 2007. Soyez prêts.
Les produits dérivés
PGCon, la Conférence PostgreSQL, est à la recherche de mécènes. Tous les détails sur http://www.pgcon.org/2007/sponsorship.php
Red Hat fournit son pack applicatif avec PostgreSQL :http://www.redhat.com/solutions/rhappstack/
Les jobs de février
Le contributeur majeur Gavin Sherry et le leader de Postgres-R, Markus Schiltknecht, interviendront le 6 février à 7:00pm au meeting SFPUG à San Francisco au siège de Hyperic LLC. RSVP à http://postgresql.meetup.com/1/calendar/5380885/
Un stand PostgreSQL sera tenu au Scale 5x à Los Angeles les 10 et 11 février au Westin Los Angeles Airport. Pour participer contacter josh AT agliodbs DOT com. http://www.socallinuxexpo.org/scale5x/
Il y aura un stand PostgreSQL au CLT les 3 et 4 mars à Chemnitz, RFA. Plusieurs représentants des communautés germanophones de PostgreSQL y seront. Contacter email@example.com pour participer. http://chemnitzer.linux-tage.de/2007/info/
Il y aura un stand PostgreSQL au FOSDEM les 24 et 25 février à Bruxelles, Belgique. La plupart des représentants des communautés européennes de PostgreSQL y seront. Contacter firstname.lastname@example.org pour participer.http://www.fosdem.org/2007/
La communauté PostgreSQL italienne recherche des mécènes pour la journée PostgreSQL à Prato, Italie cet été. Voir le lien ci-dessous. http://www.pgday.it
PostgreSQL dans la presse
Planet PostgreSQL : http://www.planetpostgresql.org/
General Bits, Archives and occasional new articles : http://www.varlena.com/GeneralBits/
PostgreSQL Weekly News vous est présenté cette semaine par David Fetter et Devrim GUNDUZ. Adaptation francophone de Stéphane Schildknecht.
Vos propositions d'informations doivent parvenir avant dimanche minuit à email@example.com.
Michael Meskes a commité :
- Magnus Hagander's patch which removes some compiler warnings ;
- Cleaned up va_list handling in ecpg. This should now work on all archs.
Neil Conway a commité :
- Magnus Hagander's patch which changes the install script for vcbuild actually to parse the generated solution files for what to install, instead of blindly copying everything as it previously did. For example, in the previous quick-n-dirty version, it would copy old DLLs if you reconfigured in a way that didn't include subprojects like a PL ;
- Reword suggestion that libpq.dll be installed in WINNT\SYSTEM32 under Windows. Per Magnus Hagander, this is not recommended.
- Fix two more regression tests whose expected outputs were not updated for the recent may/might cleanup.
- Update some of the "expected" regression test results for Bruce's recent may/might cleanup, in the hopes that this will unbreak the buildfarm. Per report from Stefan Kaltenbrunner ;
- Backpatch last night's fix for broken markup to the 8.2 branch ;
- Fix broken markup in pgsql/doc/src/sgml/release.sgml
- This patch adds documentation for the long-version parameters --username and --password for pg_dump, pg_dumpall and pg_restore, per complaint by Michael Schmidt. Patch from Magnus Hagander ;
- Fix a few typos in comments in GiN ;
- Add missing Makefile dependencies for the "bigtest" and "bigcheck" targets, and refactor the tablespace setup code into a separate Makefile target ;
- Rewrite uuid input and output routines to avoid dependency on the nonportable "hh" sprintf(3) length modifier. Instead, do the parsing and output by hand. The code to do this isn't ideal, but this is an interim measure anyway: the uuid type should probably use the in-memory struct layout specified by RFC 4122. For now, this patch should hopefully rectify the buildfarm failures for the uuid test. Along the way, re-add pg_cast entries for uuid <-> varchar, which I mistakenly removed earlier, and bump the catversion.
Teodor Sigaev a commité :
- Revert gincostestimate changes ;
- Update FreeBSD DocBook installation notes ;
- Allow GIN's extractQuery method to signal that nothing can satisfy the query. In this case extractQuery should returns -1 as nentries. This changes prototype of extractQuery method to use int32* instead of uint32* for nentries argument. Based on that gincostestimate may see two corner cases: nothing will be found or seqscan should be used. Per proposal at http://archives.postgresql.org/pgsql-hackers/2007-01/msg01581.php
Tom Lane a commité :
- Don't MAXALIGN in the checks to decide whether a tuple is over TOAST's threshold for tuple length. On 4-byte-MAXALIGN machines, the toast code creates tuples that have t_len exactly TOAST_TUPLE_THRESHOLD ... but this number is not itself maxaligned, so if heap_insert maxaligns t_len before comparing to TOAST_TUPLE_THRESHOLD, it'll uselessly recurse back to tuptoaster.c, wasting cycles. (It turns out that this does not happen on 8-byte-MAXALIGN machines, because for them the outer MAXALIGN in the TOAST_MAX_CHUNK_SIZE macro reduces TOAST_MAX_CHUNK_SIZE so that toast tuples will be less than TOAST_TUPLE_THRESHOLD in size. That MAXALIGN is really incorrect, but we can't remove it now, see below.) There isn't any particular value in maxaligning before comparing to the thresholds, so just don't do that, which saves a small number of cycles in itself. These numbers should be rejiggered to minimize wasted space on toast-relation pages, but we can't do that in the back branches because changing TOAST_MAX_CHUNK_SIZE would force an initdb (by changing the contents of toast tables). We can move the toast decision thresholds a bit, though, which is what this patch effectively does. Thanks to Pavan Deolasee for discovering the unintended recursion. Back-patch into 8.2, but not further, pending more testing. (HEAD is about to get a further patch modifying the thresholds, so it won't help much for testing this form of the patch.)
- Use -Wl for linker switches on freebsd --- back-port of an 8.0 change. I think this will make buildfarm member herring go green in this branch ;
- Fix typo in pgsql/doc/src/sgml/sources.sgml
- Fix plpgsql so that when a local variable has no initial-value expression, an error will be thrown correctly if the variable is of a NOT NULL domain. Report and almost-correct fix from Sergiy Vyshnevetskiy (bug #2948) ;
- Fix initdb to not generate misleading error messages when postgres.bki or other share-directory files are inaccessible for some reason other than not existing. Inspired by trouble report from Simon Kinsella ;
- Repair oversights in the mechanism used to store compiled plpgsql functions. The original coding failed (tried to access deallocated memory) if there were two active call sites (fn_extra pointers) for the same function and the function definition was updated. Also, if an update of a recursive function was detected upon nested entry to the function, the existing compiled version was summarily deallocated, resulting in crash upon return to the outer instance. Problem observed while studying a bug report from Sergiy Vyshnevetskiy. Bug does not exist before 8.1 since older versions just leaked the memory of obsoleted compiled functions, rather than trying to reclaim it ;
- Add SPI_push/SPI_pop calls so that datatype input and output functions called by plpgsql can themselves use SPI --- possibly indirectly, as in the case of domain_in() invoking plpgsql functions in a domain check constraint. Per bug #2945 from Sergiy Vyshnevetskiy. Somewhat arbitrarily, I've chosen to back-patch this as far as 8.0. Given the lack of prior complaints, it doesn't seem critical for 7.x ;
- Add support for cross-type hashing in hash index searches and hash joins. Hashing for aggregation purposes still needs work, so it's not time to mark any cross-type operators as hashable for general use, but these cases work if the operators are so marked by hand in the system catalogs ;
- Add comment noting that hashm_procid in a hash index's metapage isn't actually used for anything.
Bruce Momjian a commité :
- Add to TODO: "Allow custom variable classes that can restrict who can set the values" http://archives.postgresql.org/pgsql-hackers/2006-11/msg00911.php
- Update wording in pgsql/doc/src/sgml/libpq.sgml on how to set an environment variable on Windows ;
- Add documentation for Windows on how to set an environment variable. Backpatch to 8.2.X ;
- In pgsql/src/backend/commands/vacuumlazy.c, change vacuum lazy "compacting" warning message to: errhint("Consider using VACUUM FULL on this relation or increasing the configuration parameter +\"max_fsm_pages\".")));
- Update URL for the "Allow sequential scans to take advantage of other concurrent sequential scans, also called 'Synchronised Scanning'" TODO ;
- Add to TODO: "Add \# to list command history like \s, but with line numbers" http://archives.postgresql.org/pgsql-hackers/2006-12/msg00255.php
- Add URLs to the "Allow sequential scans to take advantage of other concurrent sequential scans, also called 'Synchronised Scanning'" TODO ;
- Document that a client-only install using "gmake -C src/bin install" does install a few server-only binaries ;
- Add to TODO: "Allow recovery.conf to allow the same syntax as postgresql.conf, including quoting."
- Albe Laurenz's patch which fixes configure detection code when using both --with-ldap and --enable-thread-safety ;
- Add -patches URL for the "Reduce checkpoint performance degredation by forcing data to disk more evenly" TODO item ;
- Add URL for the "Allow sequential scans to take advantage of other concurrent sequential scans, also called 'Synchronised Scanning'" TODO item ;
- Add to TODO: "Reduce checkpoint performance degredation by forcing data to disk more evenly" with associated URLs ;
- Add URL for the "Fix RENAME to work on variables other than OLD/NEW" TODO item ;
- Add to TODO: "Allow column display reordering by recording a display, storage, and permanent id for every column?"
- In pgsql/doc/src/sgml/sources.sgml, add "May/Can/Might" section to error message style guidlines, and a "can't" -> "cannot" section ;
- In pgsql/doc/src/sgml/high-availability.sgml, mention file system replication as a high availability solution in the shared hardware section, and mention DRBD as a popular solution ;
- Add URL to the "Add long file support for binary pg_dump output" TODO item ;
- Wording cleanup for error messages. Also change can't -> cannot ;
- Add 8.2.0 "Incomatibilities" documentation that pg_dump's -n and -t behavior has changed ;
- Backpatch FAQs to stable branch ;
- Daojing Zhou's update to the Chinese FAQ ;
- In TODO, update URL for function permission checks ;
- Add to TODO: "Tighten function permission checks."
- Add to TODO: "Tighten trigger permission checks."
- Add to TODO: Fix problem when multiple subtransactions of the same outer transaction hold different types of locks, and one subtransaction aborts ;
- Update CREATE SEQUENCE documentation to show the same sequence being created and increments. The old docs created the sequence, then showed a nextval() of 114 ;
- In TODO, add URL for, "Fix RENAME to work on variables other than OLD/NEW."
- Use colons consistently before '<programlisting>' blocks, where appropriate ;
- Revert error message change for may/can/might --- needs discussion ;
- Update documentation on may/can/might ;
- Add to TODO, in "Fix RENAME to work on variables other than OLD/NEW", add URL ;
- Document need for periodic REINDEX in VACUUM FULL cases ;
- In pgsql/doc/src/sgml/array.sgml, add missing colon ;
- Add to TODO: "Add REINDEX CONCURRENTLY" with caveats ;
- Update TODO for VACUUM FULL by adding a mention that index updates can bloat the index ;
- Added to TODO: "ARRAY[[1,2],[3,4]]) should return the same values as ARRAY[[1,2],[3,4]])[1:1]"
- Add FAQ item about timezones and daylight savings time ;
- Update documentation for backslashes to mention escape string syntax more, and standard_conforming_strings less, because in the future non-E strings will not treat backslashes specially. Also use E'' strings where backslashes are used in examples. (The existing examples would have drawn warnings.) Backpatch to 8.2.X ;
- Clarify paramater handling for pg_get_serial_sequence() ;
- Update documentation for pg_get_serial_sequence() function ;
- Update wording for minor release upgrades, per Alvaro Herrera ;
- In TODO, mark as done: "Add Globally/Universally Unique Identifier (GUID/UUID)"
- In pgsql/src/port/exec.c, use sizeof() for snprintf() buffer length ;
- Update process termination message to display signal number and name from exec.c and postmaster.c.
Peter Eisentraut a commité :
- Update SQL conformance information about XML features ;
- Implement XMLSERIALIZE for real. Analogously, make the xml to text cast observe the xmloption. Reorganize the representation of the XML option in the parse tree and the API to make it easier to manage and understand. Add regression tests for parsing back XML expressions ;
- Translation updates ;
- Update documentation on XML functions.
Correctifs rejetés (à ce jour)
Pas de déception cette semaine :-)
Correctifs en attente
- Magnus Hagander sent in a patch which adds documentation for the long-version parameters --username and --password for pg_dump,pg_dumpall and pg_restore, per complaint by Michael Schmidt ;
- Pavan Deolasee sent in another version of his performance patch ;
- Pursuant to Alvaro Herrera's work in progress autovacuum launcher patch, Markus Schiltknecht sent in a patch to find current imessages ;
- Korry Douglas sent in a patch to fix the fixes shared_preload_libraries on Windows hosts. It forces each backend to re-load all shared_preload_libraries. Per discussion below:http://archives.postgresql.org/pgsql-hackers/2007-01/msg01498.php
- Heikki Linnakangas sent in another version of his phantom command idspatch ;
- Pavan Deolasee sent in a patch which adds the matrix of lock(in) compatibilies to the source code ;
- Korry Douglas sent in a patch which lets gprof nab a non-overwritten profile on Linux ;
- Koichi Suzuki sent in a patch intended to improve full-page write performance ;
- Jeremy Drake sent in a patch which allows regular expression matchesto return an array of matches, along with (optionally) the wholematch, the pre-match, and the post-match. Perl fans, rejoice!
- ITAGAKI Takahiro sent in a new version of his n_dead_tuples patch ;
- Markus Schiltknecht sent in a patch which fixes a small "database isready" race condition in StartupXLOG() in xact.c ;
- Andrew Dunstan sent in a patch which fixes the "\copy (query) delimiter" syntax error ;
- Pavel Stehule sent in a patch which fixes a localization bug in timezone formatting.