--- /dev/null
+<!-- BEGIN page_title_block -->
+Weekly News - February 28 2010
+<!-- END page_title_block -->
+
+<h1>PostgreSQL Weekly News - February 28 2010</h1>
+
+<p>
+PostgreSQL 9.0alpha4 is out. Test! More info and download
+information below.
+<a href="http://www.postgresql.org/developer/alpha">http://www.postgresql.org/developer/alpha</a>
+<a href="http://www.postgresql.org/ftp/source/9.0alpha4">http://www.postgresql.org/ftp/source/9.0alpha4</a>
+</p>
+
+<p>
+Registration for PGCon 2010 is now open.
+<a href="http://www.pgcon.org/2010/registration.php">http://www.pgcon.org/2010/registration.php</a>
+</p>
+
+<p>
+BWPUG will be meeting in Falls Church, VA, USA on March 10, 2010 at
+6:30pm.
+<a href="http://www.xzilla.net/blog/2010/Feb/BWPUG-March-10th,-Falls-Church-take-two..html">http://www.xzilla.net/blog/2010/Feb/BWPUG-March-10th,-Falls-Church-take-two..html</a>
+</p>
+
+<p>
+The CfP for OSBridge is open!
+<a href="http://opensourcebridge.org/events/2010/proposals/">http://opensourcebridge.org/events/2010/proposals/</a>
+</p>
+
+<h2>PostgreSQL Product News</h2>
+<p>
+The Karoo Project, an application development framework for distributed
+PostgreSQL database applications, now has a widget set for web front
+ends.
+<a href="http://www.zwartberg.com/widgets.html">http://www.zwartberg.com/widgets.html</a>
+</p>
+
+<p>
+pgFouine 1.2, a PostgreSQL log analyzer written in PHP, released.
+<a href="http://pgfouine.projects.postgresql.org/">http://pgfouine.projects.postgresql.org/</a>
+</p>
+
+<h2>PostgreSQL 9.0 Feature of the Week</h2>
+<p>
+The pgbench suite is now multi-threaded, allowing you to take
+advantage of multiple CPU cores.
+</p>
+
+<h2>PostgreSQL Jobs for February</h2>
+<p>
+<a href="http://archives.postgresql.org/pgsql-jobs/2010-02/threads.php">http://archives.postgresql.org/pgsql-jobs/2010-02/threads.php</a>
+</p>
+
+<h2>PostgreSQL Local</h2>
+<p>
+The German Speaking PostgreSQL User Group has a stand at the Project
+Lounge in hall 2 at Cebit 2010 from March 02 to March 06, 2010 in
+Hannover, Germany.
+<a href="http://andreas.scherbaum.la/blog/archives/649-PostgreSQL-stand-at-Cebit-2010.html">http://andreas.scherbaum.la/blog/archives/649-PostgreSQL-stand-at-Cebit-2010.html</a>
+</p>
+
+<p>
+The German Language PostgreSQL User Group has a booth at Chemnitz Linuxdays
+2010 on March 13 and 14, 2010 in Chemnitz, Germany. Andreas (ads)
+Scherbaum will be giving a talk on PostgreSQL 9.0 and a workshop on
+tuning PostgreSQL.
+<a href="http://andreas.scherbaum.la/blog/archives/652-PostgreSQL-stand-at-Chemnitz-Linux-Days-2010.html">http://andreas.scherbaum.la/blog/archives/652-PostgreSQL-stand-at-Chemnitz-Linux-Days-2010.html</a>
+<a href="http://chemnitzer.linux-tage.de/2010/vortraege/plan.html">http://chemnitzer.linux-tage.de/2010/vortraege/plan.html</a>
+</p>
+
+<p>
+JDCon East will take place March 25-28, 2010 in Philadelphia, PA, USA.
+<a href="http://www.postgresqlconference.org/2010/east">http://www.postgresqlconference.org/2010/east</a>
+</p>
+
+<p>
+Linuxfest Northwest 2010 will take place in Bellingham, Washington,
+USA on April 24 and 25. Session, Booth and Sponsorship are available.
+<a href="http://linuxfestnorthwest.org/">http://linuxfestnorthwest.org/</a>
+</p>
+
+<p>
+Andreas (ads) Scherbaum will be teaching a "PostgreSQL for Corporate
+Use" course at the adult education center in Magdeburg, Germany May
+3-7, 2010. Details below:
+<a href="http://andreas.scherbaum.la/blog/archives/650-PostgreSQL-Schulung-als-Bildungsurlaub-03.-07.05.2010-in-Magdeburg.html">http://andreas.scherbaum.la/blog/archives/650-PostgreSQL-Schulung-als-Bildungsurlaub-03.-07.05.2010-in-Magdeburg.html</a>
+</p>
+
+<p>
+PgCon 2010 will be held May 20-21 2010 in Ottawa with tutorials before
+on the 18th and 19th.
+<a href="http://www.pgcon.org/2010/registration.php">http://www.pgcon.org/2010/registration.php</a>
+</p>
+
+<p>
+OSCON will take place in Portland, Oregon July 19-23, 2010.
+<a href="http://www.oscon.com/oscon2010">http://www.oscon.com/oscon2010</a>
+</p>
+
+<p>
+
+== PostgreSQL in the News ==
+</p>
+
+<p>
+Planet PostgreSQL: <a href="http://planet.postgresql.org/">http://planet.postgresql.org/</a>
+</p>
+
+<p>
+PostgreSQL Weekly News is brought to you this week by David Fetter
+</p>
+
+<p>
+Submit news and announcements by Sunday at 3:00pm Pacific time.
+</p>
+
+<h2>Applied Patches</h2>
+<p>
+Heikki Linnakangas committed:
+</p>
+
+<p>
+- Move documentation of all recovery.conf option to a new chapter.
+ They used to be scattered between the "backup and restore" and
+ "streaming replication" chapters.
+</p>
+
+<p>
+- Fix streaming replication starting at the very first WAL segment.
+ Per complaint from Greg Stark.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/high-availability.sgml, small streaming
+ replication document improvements. Be more explicit that it's
+ asynchronous.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/high-availability.sgml, fix typo. Fujii
+ Masao.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/recovery-config.sgml, clarify that the
+ connection string for primary_conninfo is in the same format as in
+ PQconnectdb(). As pointed out by Thom Brown.
+</p>
+
+<p>
+- Document max_standby_delay=-1 option, now that it's allowed again.
+</p>
+
+<p>
+Tom Lane committed:
+</p>
+
+<p>
+- In pgsql/src/backend/storage/file/fd.c, adjust pg_fsync_writethrough
+ so that it will set errno when failing on a platform that doesn't
+ support this operation. The former coding would allow an unrelated
+ errno to be reported, which would be quite misleading. Not sure if
+ this has anything to do with the current buildfarm failures, but
+ it's certainly bogus as-is.
+</p>
+
+<p>
+- In pgsql/src/port/copydir.c, let's try forcing errno to zero before
+ issuing fsync. The current buildfarm results claiming EBADF seem
+ improbable enough that I'm not convinced fsync is really returning
+ that --- could it be failing to set errno at all?
+</p>
+
+<p>
+- In pgsql/src/port/copydir.c, some platforms reject fsync() on files
+ opened O_RDONLY.
+</p>
+
+<p>
+- In pgsql/src/bin/pg_dump/pg_backup_tar.c, minor style policing for
+ error messages in pg_dump tar code. Notably, change "dumping data
+ out of order is not supported" to "restoring data out of order is
+ not supported", because you get that error during pg_restore not
+ pg_dump. Also fix some comments that didn't look so good after
+ being pgindented as perhaps they did originally.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/ref/pg_dump.sgml, clarify statements about tar
+ archive format.
+</p>
+
+<p>
+- Fix configure's regexp for extracting the Perl version number from
+ perl -v output. Per bug #5339, Perl 5.11 has changed the format of
+ that output enough to break the previous coding. Alex Hunsaker
+</p>
+
+<p>
+- Add an OR REPLACE option to CREATE LANGUAGE. This operates in the
+ same way as other CREATE OR REPLACE commands, ie, it replaces
+ everything but the ownership and ACL lists of an existing entry, and
+ requires the caller to have owner privileges for that entry. While
+ modifying an existing language has some use in development
+ scenarios, in typical usage all the "replaced" values come from
+ pg_pltemplate so there will be no actual change in the language
+ definition. The reason for adding this is mainly to allow programs
+ to ensure that a language exists without triggering an error if it
+ already does exist. This commit just adds and documents the new
+ option. A followon patch will use it to clean up some unpleasant
+ cases in pg_dump and pg_regress.
+</p>
+
+<p>
+- In pgsql/src/test/regress/pg_regress.c, make pg_regress use CREATE
+ OR REPLACE LANGUAGE, so that --load-language will work whether or
+ not the specified language is preinstalled. This responds to some
+ complaints about having to change test scripts because plpgsql is
+ preinstalled as of 9.0.
+</p>
+
+<p>
+- In pgsql/src/bin/pg_dump/pg_dump.c, use CREATE OR REPLACE LANGUAGE
+ in pg_dump to avoid the need for a couple of significantly uglier
+ kluges that were working around the change in plpgsql's preinstalled
+ status.
+</p>
+
+<p>
+- In pgsql/src/bin/pg_dump/pg_dump.c, un-break pg_dump for the case of
+ zero-column tables. This was evidently broken by the CREATE TABLE
+ OF TYPE patch. It would have been noticed if anyone had bothered to
+ try dumping and restoring the regression database ...
+</p>
+
+<p>
+- Fix patch for printing backend and pg_dump versions so that it works
+ in a desirable fashion in archive-dump cases, ie you should get the
+ pg_dump version not the pg_restore version.
+</p>
+
+<p>
+- Allow zero-dimensional (ie, empty) arrays in contrib/ltree
+ operations. The main motivation for changing this is bug #4921, in
+ which it's pointed out that it's no longer safe to apply ltree
+ operations to the result of ARRAY(SELECT ...) if the sub-select
+ might return no rows. Before 8.3, the ARRAY() construct would
+ return NULL, which might or might not be helpful but at least it
+ wouldn't result in an error. Now it returns an empty array which
+ results in a failure for no good reason, since the ltree operations
+ are all perfectly capable of dealing with zero-element arrays. As
+ far as I can find, these ltree functions are the only places where
+ zero array dimensionality is rejected unnecessarily. Back-patch to
+ 8.3 to prevent behavioral regression of queries that worked in older
+ releases.
+</p>
+
+<p>
+- In pgsql/src/backend/access/transam/xlog.c, make pg_stop_backup's
+ reporting a bit more verbose in hopes of making error cases less
+ intimidating for novices. Per discussion. Greg Smith.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/plperl.sgml, improve warning about creating
+ nested named subroutines in plperl. Per discussion.
+</p>
+
+<p>
+- In pgsql/src/backend/optimizer/util/predtest.c, allow
+ predicate_refuted_by() to deduce that NOT A refutes A. We had
+ originally made the stronger assumption that NOT A refutes any B if
+ B implies A, but this fails in three-valued logic, because we need
+ to prove B is false not just that it's not true. However the logic
+ does go through if B is equal to A. Recognizing this limited case
+ is enough to handle examples that arise when we have simplified
+ "bool_var = true" or "bool_var = false" to just "bool_var" or "NOT
+ bool_var". If we had not done that simplification then the
+ btree-operator proof logic would have been able to prove that the
+ expressions were contradictory, but only for identical expressions
+ being compared to the constants; so handling identical A and B
+ covers all the same cases. The motivation for doing this is to
+ avoid unexpected asymmetrical behavior when a partitioned table uses
+ a boolean partitioning column, as in today's gripe from Dominik
+ Sander. Back-patch to 8.2, which is as far back as
+ predicate_refuted_by attempts to do anything at all with NOTs.
+</p>
+
+<p>
+- Back-patch addition of ssl_renegotiation_limit into 7.4 through 8.1.
+</p>
+
+<p>
+- In pgsql/src/backend/utils/mb/mbutils.c, undo some more pgindent
+ breakage. Per buildfarm.
+</p>
+
+<p>
+- Entity-ify a few new uses of literal <, >, and &.
+</p>
+
+<p>
+- Insert a hack into get_float8_nan (both core and ecpg copies) to
+ deal with the fact that NetBSD/mips is currently broken, as per
+ buildfarm member pika. Also add regression tests to ensure that
+ get_float8_nan and get_float4_nan are exercised even on platforms
+ where they are not needed by float8in/float4in. Zoltan Boszormenyi
+ and Tom Lane.
+</p>
+
+<p>
+- Assorted code cleanup for contrib/xml2. No change in functionality,
+ just make it a bit less ugly in places.
+</p>
+
+<p>
+- Fix up memory management problems in contrib/xml2. Get rid of the
+ code that attempted to funnel libxml2's memory allocations into
+ palloc. We already knew from experience with the core xml datatype
+ that trying to do this is simply not reliable. Unlike the core
+ code, I did not bother adding a lot of PG_TRY/PG_CATCH logic to try
+ to ensure that everything is cleaned up on error exit. Hence, we
+ might leak some memory if one of these functions fails partway
+ through. Given the deprecated status of this contrib module and the
+ fact that errors partway through the functions shouldn't be too
+ common, it doesn't seem worth worrying about. Also fix a separate
+ bug in xpath_table, that it did the wrong things if given a result
+ tuple descriptor with less than 2 columns. While such a case isn't
+ very useful in practice, we shouldn't fail or stomp memory when it
+ occurs. Add some simple regression tests based on all the reported
+ crash cases that I have on hand. This should be back-patched, but
+ let's see if the buildfarm likes it first.
+</p>
+
+<p>
+- Back-patch changes of 2009-05-13 in xml.c's memory management to
+ 8.3. I was afraid to do this when these changes were first made,
+ but now that 8.4 has seen some field use it should be all right to
+ back-patch. These changes are really quite necessary in order to
+ give xml.c any hope of co-existing with loadable modules that also
+ wish to use libxml2.
+</p>
+
+<p>
+Bruce Momjian committed:
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/backup.sgml, briefly document in two places
+ that pg_dump and pg_dumpall cannot be used for continuous archiving.
+</p>
+
+<p>
+- Use the term "bundled distribution" instead of "official
+ distribution" in configure warnings.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/protocol.sgml, remove protocol documentation
+ paragraph about environment variable passing being "covered
+ elsewhere", per Dave Page.
+</p>
+
+<p>
+- Revert configure warning to use "official distribution".
+</p>
+
+<p>
+- Document that pg_ctl cares about the PGHOST environment variable.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/ref/create_table.sgml, remove
+ long-commented-out paragraph in documentation about function
+ inheritance in create table, per Andrew Dunstan.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/ref/pg_restore.sgml, update pg_restore
+ documentation to show new pg_restore custom listing format. Pavel
+ Golub.
+</p>
+
+<p>
+- Supress convertion of zero hours to '12' for intervals when using
+ to_char with Hitoshi Harada, e.g. to_char(interval '0d 0h 12m 44s',
+ 'DD HH24 MI SS'); now returns: '00 00 12 44' not: '00 12 12 44'.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/ref/copy.sgml, make documentation more direct
+ about the handling of COPY files based on the client encoding.
+</p>
+
+<p>
+- In pgsql/src/backend/utils/adt/formatting.c, secondary patch to fix
+ interval to_char() for "HH" where hours >= 12.
+</p>
+
+<p>
+- Revert recent change of to_char('HH12') handling for intervals;
+ instead improve documentation, and add C comment.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/ref/copy.sgml, revert recent COPY manual
+ change about encoding; add mention of "server".
+</p>
+
+<p>
+- In pgsql/src/bin/pg_dump/pg_backup_archiver.c, have pg_dump (-v)
+ verbose mode output the pg_dump and server versions in text output
+ mode, like we do in custom output mode. Jim Cox
+</p>
+
+<p>
+- Update startup scripts for Linux and FreeBSD. Kevin Grittner.
+</p>
+
+<p>
+- In pgsql/contrib/start-scripts/freebsd, modify freebsd start script
+ to just exit 0 with message.
+</p>
+
+<p>
+- Remove pre-7.4 documentaiton mentions, now that 8.0 is the oldest
+ supported release.
+</p>
+
+<p>
+- Revert removal of pre-7.4 documenation behavior mentions.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/ref/pg_restore.sgml, document that pg_restore
+ -t can use -n for its schema qualification.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/datatype.sgml, clearly document that timestamp
+ alone means timestamp without timezone, per SQL standard, and
+ mention 7.3 behavior at the end.
+</p>
+
+<p>
+- In pgsql/src/backend/utils/adt/formatting.c, add C comment that
+ do_to_timestamp() lacks error checking.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/config.sgml, document clearly the meaning of
+ none/all for log_statements.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/ref/create_function.sgml, document that after
+ triggers that need to see changed rows should not be marked stable.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/datatype.sgml, remove 'emphasis' markup inside
+ literal; not allowed.
+</p>
+
+<p>
+- In pgsql/src/tools/pgindent/README, update pgindent instructions to
+ avoid changes to flex output files.
+</p>
+
+<p>
+- In pgsql/src/tools/pgindent/typedefs.pl, add pgindent typedefs file
+ to CVS.
+</p>
+
+<p>
+- pgindent run for 9.0.
+</p>
+
+<p>
+- In pgsql/src/tools/pgindent/README, update pgindent instructions.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/perform.sgml, document pg_restore --jobs as a
+ performance enhancement.
+</p>
+
+<p>
+- Call output file typedefs.list; update README.
+</p>
+
+<p>
+- In pgsql/src/bin/scripts/vacuumdb.c in vacuumdb --help, call analyze
+ "statistics", not "hints".
+</p>
+
+<p>
+- In pgsql/src/tools/pgindent/README, document why pgindent wants a
+ fresh CVS checkout.
+</p>
+
+<p>
+- In pgsql/src/tools/pgindent/README, update pgindent docs to use
+ maintainer-clean.
+</p>
+
+<p>
+- In pgsql/src/tools/pgindent/README, wording improvements to README.
+</p>
+
+<p>
+- Revert pgindent changes to ecpg include files that are part of ecpg
+ regession test output, and update pgindent script to avoid them in
+ the future.
+</p>
+
+<p>
+- In pgsql/src/tools/pgindent/README, suggest gmake installcheck-world
+ for pgindent testing.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/wal.sgml, document ATAPI drive flush command,
+ and mention SSD drives.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/libpq.sgml, use <> for libpq #include in
+ example programs, per suggestion from Josh Berkus.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/config.sgml, document
+ trace_recovery_messages() parameter as an enum, not string. Fujii
+ Masao.
+</p>
+
+<p>
+- Document ATAPI FLUSH CACHE EXT.
+</p>
+
+<p>
+- In pgsql/src/backend/utils/adt/pg_locale.c, back out unintended
+ change to pg_locale.c.
+</p>
+
+<p>
+- Update complex locale example in the documentation.
+</p>
+
+<p>
+ITAGAKI Takahiro committed:
+</p>
+
+<p>
+- In pgsql/contrib/dblink/dblink.c, remove useless codes to initialize
+ TupleDesc from dblink_exec.
+</p>
+
+<p>
+Alvaro Herrera committed:
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/mvcc.sgml, remove stray semicolon, per report
+ from Sandro (strk) Santilli strk AT keybit DOT net.
+</p>
+
+<p>
+Magnus Hagander committed:
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/plperl.sgml, fix typos, per Richard Huxton
+</p>
+
+<p>
+- Add configuration parameter ssl_renegotiation_limit to control how
+ often we do SSL session key renegotiation. Can be set to 0 to
+ disable renegotiation completely, which is required if a broken SSL
+ library is used (broken patches to CVE-2009-3555 a known cause) or
+ when using a client library that can't do renegotiation. Back-patch
+ to 8.2.
+</p>
+
+<p>
+Michael Meskes committed:
+</p>
+
+<p>
+- Make sure ecpg uses the same header files in the same order as the
+ backend.
+</p>
+
+<p>
+Gregory Stark committed:
+</p>
+
+<p>
+- In pgsql/src/port/copydir.c, second try at fsyncing directories in
+ CREATE DATABASE. Let's see what the build farm says of opening
+ directories read-only and ignoring EBADF from fsync of directories.
+</p>
+
+<p>
+- In pgsql/src/port/copydir.c, Add EPERM to the list of return codes
+ to expect from opening directories based on Vista results
+</p>
+
+<h2>Rejected Patches (for now)</h2>
+<p>
+No one was disappointed this week :-)
+</p>
+
+<h2>Pending Patches</h2>
+<p>
+Magnus Hagander sent in a patch to fix the SSL negotiation issue.
+</p>
+
+<p>
+Fujii Masao sent in a doc patch for Hot Standby.
+</p>
+
+<p>
+Simon Riggs sent in a patch to add a pg_abort_backup() function per
+discussion about Hot Standby/Streaming Replication.
+</p>
+
+<p>
+Gabrielle Roth sent in a doc patch explaining which statements get
+logged at different levels of log_level in postgresql.conf.
+</p>
+
+<p>
+Fujii Masao sent in a patch for streaming replication to use
+lastPageTLI instead of curFileTLI as the timeline of the last applied
+record.
+</p>
+
+<p>
+Teodor Sigaev sent in a patch against tsearch2 which allows for
+underscores.
+</p>
+
+<p>
+ITAGAKI Takahiro sent in a cleanup for the sequential scan code.
+</p>
+
+<p>
+Piyush Newe sent in a patch to change the error message thrown in
+ambiguous cases of the argument.function notation.
+</p>
+
+<p>
+Hiroshi Inoue and Bruce Momjian sent in patches to get to_char to do
+the right thing on Windows with UTF-8 encoding.
+
+</p>
+