--- /dev/null
+<!-- BEGIN page_title_block -->
+Weekly News - April 18 2010
+<!-- END page_title_block -->
+
+<h1>PostgreSQL Weekly News - April 18 2010</h1>
+
+<p>
+Michael Renner will be speaking at AMOOCON, which goes from June 4-6, 2010.
+<a href="http://www.amoocon.de/speakers/214">http://www.amoocon.de/speakers/214</a>
+</p>
+
+<h2>PostgreSQL Product News</h2>
+<p>
+Bricolage 2.0, a content management and publishing system built on
+PostgreSQL, released:
+<a href="http://bricolagecms.org/news/announce/2010/04/12/bricolage-2.0.0/">http://bricolagecms.org/news/announce/2010/04/12/bricolage-2.0.0/</a>
+</p>
+
+<p>
+GNUmed 0.7.0 released.
+<a href="http://wiki.gnumed.de/">http://wiki.gnumed.de/</a>
+</p>
+
+<p>
+pgpool-II 2.7, a connection pooler and more, released.
+<a href="http://pgfoundry.org/projects/pgpool/">http://pgfoundry.org/projects/pgpool/</a>
+</p>
+
+<p>
+phpPgAdmin 4.2.3, a web-based administration tool for PostgreSQL, released.
+<a href="http://phppgadmin.sourceforge.net/">http://phppgadmin.sourceforge.net/</a>
+</p>
+
+<p>
+tail_n_mail 1.8.6, a Perl program for searching log files and mailing
+the results, released.
+<a href="http://bucardo.org/wiki/Tail_n_mail">http://bucardo.org/wiki/Tail_n_mail</a>
+</p>
+
+<h2>PostgreSQL 9.0 Feature of the Week</h2>
+<p>
+GUCs are now adjustable both by role and by database. psql now has
+\drds which displays these.
+</p>
+
+<h2>PostgreSQL Jobs for April</h2>
+<p>
+<a href="http://archives.postgresql.org/pgsql-jobs/2010-04/threads.php">http://archives.postgresql.org/pgsql-jobs/2010-04/threads.php</a>
+</p>
+
+<h2>PostgreSQL Local</h2>
+<p>
+The CfP is open for CHAR(10) in Oxford, England on July 1-3 2010.
+Proposals are due April 20.
+<a href="http://www.char10.org">http://www.char10.org</a>
+</p>
+
+<p>
+Bruce Momjian will be speaking about PostgreSQL Replication Solutions
+at the NYPUG meeting on April 20th at 6:30-8:30pm at Penn Plaza.
+Details and RSVP below.
+<a href="http://postgresql.meetup.com/3/calendar/12788352/">http://postgresql.meetup.com/3/calendar/12788352/</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>
+The CfP for OSBridge is open! OSBridge will be June 1-4, 2010 in
+Portland, Oregon.
+<a href="http://opensourcebridge.org/events/2010/proposals/">http://opensourcebridge.org/events/2010/proposals/</a>
+</p>
+
+<p>
+Southeast Linuxfest 2010 will take place in Spartanburg, SC, USA on
+June 12-13. Booths and sponsorships are still available.
+<a href="http://southeastlinuxfest.org/">http://southeastlinuxfest.org/</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>
+
+<h2>PostgreSQL in the News</h2>
+<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
+and Devrim GUNDUZ.
+</p>
+
+<p>
+Submit news and announcements by Sunday at 3:00pm Pacific time.
+Please send English language ones to david@fetter.org, German language
+to pwn@pgug.de, Italian language to pwn@itpug.org. Spanish language
+to pwn@arpug.com.ar.
+</p>
+
+<h2>Applied Patches</h2>
+<p>
+Heikki Linnakangas committed:
+</p>
+
+<p>
+- Change the logic to decide when to delete old WAL segments, so that
+ it doesn't take into account how far the WAL senders are. This way
+ a hung WAL sender doesn't prevent old WAL segments from being
+ recycled/removed in the primary, ultimately causing the disk to fill
+ up. Instead add standby_keep_segments setting to control how many
+ old WAL segments are kept in the primary. This also makes it more
+ reliable to use streaming replication without WAL archiving,
+ assuming that you set standby_keep_segments high enough.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/high-availability.sgml, adjust paragraph about
+ monitoring streaming replication, now that we have
+ standby_keep_segments.
+</p>
+
+<p>
+- In pgsql/src/backend/replication/walsender.c, need to use the start
+ pointer of a block we read from WAL segment in the calculation, not
+ the end pointer, as pointed out by Fujii Masao.
+</p>
+
+<p>
+- Update the location of last removed WAL segment in shared memory
+ only after actually removing one, so that if we can't remove
+ segments because WAL archiving is lagging behind, we don't
+ unnecessarily forbid streaming the old not-yet-archived segments
+ that are still perfectly valid. Per suggestion from Fujii Masao.
+</p>
+
+<p>
+- Allow Hot Standby to begin from a shutdown checkpoint. Patch by
+ Simon Riggs & me.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/config.sgml, fix typo, spotted by Erik
+ Rijkers.
+</p>
+
+<p>
+- In pgsql/src/backend/access/transam/xlog.c, in standby mode,
+ suppress repeated LOG messages about a corrupt record, which just
+ indicates that we've reached the end of valid WAL found in the
+ standby.
+</p>
+
+<p>
+- In pgsql/src/backend/postmaster/syslogger.c, on Windows, syslogger
+ runs in two threads. The main thread processes config reload and
+ rotation signals, and a helper thread reads messages from the pipe
+ and writes them to the log file. However, server code isn't
+ generally thread-safe, so if both try to do e.g palloc()/pfree() at
+ the same time, bad things will happen. To fix that, use a critical
+ section (which is like a mutex) to enforce that only one the threads
+ are active at a time.
+</p>
+
+<p>
+Bruce Momjian committed:
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/backup.sgml, spell out full archive directory
+ specification in 'test -f' continuous archiving example, per
+ suggestion from Greg Smith.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/config.sgml, remove example of archive_command
+ from configure section; instead have users look at the referenced
+ section for examples, per idea from Greg Smith.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/wal.sgml, add "SSD" acronym mention for solid
+ state drive mention.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/xtypes.sgml, doc change: anyways -> anyway;
+ Erik Rijkers
+</p>
+
+<p>
+- In pgsql/src/backend/access/transam/xlog.c, doc change: effect ->
+ affect, per Robert Haas.
+</p>
+
+<p>
+- Document that autovacuum cannot vacuum or analyze temporary tables.
+</p>
+
+<p>
+Magnus Hagander committed:
+</p>
+
+<p>
+- In pgsql/src/backend/replication/walreceiver.c, only try to do a
+ graceful disconnect if we've successfully loaded the shared library
+ with the disconnect function in it. Fixes segmentation fault
+ reported by Jeff Davis. Fujii Masao.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/config.sgml, fix typo. Fujii Masao.
+</p>
+
+<p>
+- Add script to enumerate the timezones in the Windows registry and
+ compare it with the list we have in pgtz.c, showing any differences.
+</p>
+
+<p>
+Simon Riggs committed:
+</p>
+
+<p>
+- In pgsql/src/backend/access/transam/xlog.c, fix minor typo in
+ comment in xlog.c.
+</p>
+
+<p>
+- Tune GetSnapshotData() during Hot Standby by avoiding loop through
+ normal backends. Makes code clearer also, since we avoid various
+ Assert()s. Performance of snapshots taken during recovery no longer
+ depends upon number of read-only backends.
+</p>
+
+<p>
+- Remove some additional changes in previous commit that belong
+ elsewhere.
+</p>
+
+<p>
+- In pgsql/src/backend/access/transam/xlog.c, improve sequence and
+ sense of messages from pg_stop_backup(). Now doesn't report it is
+ waiting until it actually is waiting, plus message doesn't appear
+ until at least 5 seconds wait, so we avoid reporting the wait before
+ we've given the archiver a reasonable time to wake up and archive
+ the file we just created earlier in the function. Also add new
+ unconditional message to confirm safe completion. Now a normal,
+ healthy execution does not report waiting at all, just safe
+ completion.
+</p>
+
+<p>
+Robert Haas committed:
+</p>
+
+<p>
+- In pgsql/src/backend/access/gist/README, typo fix. Kevin Grittner.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/config.sgml, provide better guidance for
+ adjusting shared_buffers.
+</p>
+
+<p>
+- Provide better guidance for adjusting shared_buffers. This change
+ was previously committed to HEAD, but the consensus seems to be in
+ favor of back-patching it. I'm only backpatching as far as 8.3.X,
+ however, because it's not clear to me to what degree this advice
+ applies to older branches, and in any case our first advice to
+ anyone attempting to tune those versions is likely to be "upgrade".
+</p>
+
+<p>
+- Add an 'enable_material' GUC. The logic for determining whether to
+ materialize has been significantly overhauled for 9.0. In case
+ there should be any doubt about whether materialization is a win in
+ any particular case, this should provide a convenient way of seeing
+ what happens without it; but even with enable_material turned off,
+ we still materialize in cases where it is required for correctness.
+ Thanks to Tom Lane for the review.
+</p>
+
+<p>
+Tom Lane committed:
+</p>
+
+<p>
+- In pgsql/src/backend/utils/cache/relcache.c, fix a problem
+ introduced by my patch of 2010-01-12 that revised the way relcache
+ reload works. In the patched code, a relcache entry in process of
+ being rebuilt doesn't get unhooked from the relcache hash table;
+ which means that if a cache flush occurs due to sinval queue overrun
+ while we're rebuilding it, the entry could get blown away by
+ RelationCacheInvalidate, resulting in crash or misbehavior. Fix by
+ ensuring that an entry being rebuilt has positive refcount, so it
+ won't be seen as a target for removal if a cache flush occurs.
+ (This will mean that the entry gets rebuilt twice in such a
+ scenario, but that's okay.) It appears that the problem can only
+ arise within a transaction that has previously reassigned the
+ relfilenode of a pre-existing table, via TRUNCATE or a similar
+ operation. Per bug #5412 from Rusty Conover. Back-patch to 8.2,
+ same as the patch that introduced the problem. I think that the
+ failure can't actually occur in 8.2, since it lacks the
+ rd_newRelfilenodeSubid optimization, but let's make it work like the
+ later branches anyway. Patch by Heikki Linnakangas, slightly
+ editorialized on by me.
+</p>
+
+<p>
+- In pgsql/src/pl/plpgsql/src/pl_exec.c, fix plpgsql's
+ exec_eval_expr() to ensure it returns a sane type OID even when the
+ expression is a query that returns no rows. So far as I can tell,
+ the only caller that actually fails when a garbage OID is returned
+ is exec_stmt_case(), which is new in 8.4 --- in all other cases, we
+ might make a useless trip through casting logic, but we won't fail
+ since the isnull flag will be set. Hence, backpatch only to 8.4,
+ just in case there are apps out there that aren't expecting an error
+ to be thrown if the query returns more or less than one column.
+ (Which seems unlikely, since the error would be thrown if the query
+ ever did return a row; but it's possible there's some
+ never-exercised code out there.) Per report from Mario Splivalo.
+</p>
+
+<p>
+- In pgsql/src/timezone/pgtz.c, improve message style for messages
+ associated with not being able to identify the system time zone
+ setting. Per recent discussion.
+</p>
+
+<p>
+- In pgsql/src/bin/psql/copy.c, fix psql's \copy to not insert spaces
+ around dots and commas in the text of the SELECT query in \copy
+ (SELECT ...) commands. This is unnecessary and breaks numeric
+ literals, as seen in bug #5411 from Vitalii Tymchyshyn. This change
+ has already been made in passing in HEAD; backpatch to 8.2 through
+ 8.4 (earlier releases don't have COPY (SELECT ...) at all).
+</p>
+
+<p>
+- In pgsql/src/pl/plperl/plperl.c, fix bogus order of cleanup steps in
+ plperl_inline_handler. Per Alex Hunsaker.
+</p>
+
+<p>
+Peter Eisentraut committed:
+</p>
+
+<p>
+- In pgsql/src/backend/catalog/sql_features.txt, update XML features
+ list.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/monitoring.sgml, IP port -> TCP port.
+ Backpatched to 8.1, where this first appeared.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/monitoring.sgml, improve punctuation.
+</p>
+
+<h2>Rejected Patches (for now)</h2>
+<p>
+No one was disappointed this week :-)
+</p>
+
+<h2>Pending Patches</h2>
+<p>
+Fujii Masao sent in a patch which fixes an issue with smart shutdown.
+</p>
+
+<p>
+Fujii Masao and Magnus Hagander traded patches to fix the issue where
+walreceiver is uninterruptible on win32.
+</p>
+
+<p>
+Heikki Linnakangas sent in a patch to fix an issue with error messages
+in WALs for streaming replication.
+</p>
+
+<p>
+Heikki Linnakangas and Simon Riggs sent one and three patches,
+respectively, intended to deal with the issue where queries on a hot
+standby server are much slower that ones on the origin.
+</p>
+
+<p>
+Tom Lane sent in a patch to fix an issue where Windows time zone files
+are not updated as frequently as they need to be, causing odd failure
+cases.
+
+</p>
+