--- /dev/null
+<!-- BEGIN page_title_block -->
+Weekly News - September 06 2009
+<!-- END page_title_block -->
+
+<h1>PostgreSQL Weekly News - September 06 2009</h1>
+
+<p>
+New Survey: Which 8.5 Alpha1 feature do you find the most
+interesting?
+<a href="http://www.postgresql.org/community">http://www.postgresql.org/community</a>
+</p>
+
+<p>
+Registration for PostgreSQL Conference West is now open:
+<a href="http://www.postgresql.us/purchase">http://www.postgresql.us/purchase</a>
+</p>
+
+<p>
+PostgreSQL Live CD Project started a mailing list to build a live CD
+with comments from community:
+<a href="http://www.pglivecd.org/community.php">http://www.pglivecd.org/community.php</a>
+</p>
+
+<h2>PostgreSQL Product News</h2>
+<p>
+GTpB portalBase, a web plaform based on PostgreSQL, is now available
+under the GPL.
+<a href="http://www.gtportalbase.com/">http://www.gtportalbase.com/</a>
+</p>
+
+<p>
+PostgreSQL RPM Building Project another version of The PostgreSQL
+Live CD, this time based on PostgreSQL 8.4.0 and CentOS 5.3:
+<a href="http://yum.pgsqlrpms.org/livecd.php">http://yum.pgsqlrpms.org/livecd.php</a>
+</p>
+
+<p>
+AnySQL Maestro 9.8, a GUI for administration and development on
+Windows, released.
+<a href="http://www.sqlmaestro.com/products/anysql/maestro/">http://www.sqlmaestro.com/products/anysql/maestro/</a>
+</p>
+
+<p>
+pg51g, a data diff toolkit for PostgreSQL, released.
+<a href="http://pgdba.net/pg51g/">http://pgdba.net/pg51g/</a>
+</p>
+
+<p>
+pgDesigner 1.2.11, a graphical schema design program for PostgreSQL,
+released.
+<a href="http://pgdesigner.sourceforge.net/en/index.html">http://pgdesigner.sourceforge.net/en/index.html</a>
+</p>
+
+<h2>PostgreSQL Jobs for September</h2>
+<p>
+<a href="http://archives.postgresql.org/pgsql-jobs/2009-09/threads.php">http://archives.postgresql.org/pgsql-jobs/2009-09/threads.php</a>
+</p>
+
+<h2>PostgreSQL Local</h2>
+<p>
+SFPUG presents: Nathan Boley on Statistics and Postgres.
+September 8, 2009. Details including live webcast info below.
+<a href="http://postgresql.meetup.com/1/calendar/11030245/">http://postgresql.meetup.com/1/calendar/11030245/</a>
+</p>
+
+<p>
+There will be a conference in Seattle, Washington, USA October 16-18,
+2009. The CfP is still open.
+<a href="http://www.postgresqlconference.org/2009/west">http://www.postgresqlconference.org/2009/west</a>
+</p>
+
+<p>
+PGCon Brazil will be take place October 23-24 2009 at Unicamp in
+Campinas, Sao Paulo state. The CfP is open!
+<a href="http://pgcon.postgresql.org.br/2009/chamadas.en.php">http://pgcon.postgresql.org.br/2009/chamadas.en.php</a>
+</p>
+
+<p>
+PGDay.EU 2009 will be at Telecom ParisTech in Paris, France on
+November 6-7, 2009. The CfP is out. Submit!
+<a href="http://www.pgday.eu/">http://www.pgday.eu/</a>
+</p>
+
+<p>
+OpenSQL Camp in Portland is looking for sponsors. Make your travel plans now! :)
+<a href="http://www.chesnok.com/daily/2009/07/29/opensql-camp-comes-to-portland-november-14-15-2009/">http://www.chesnok.com/daily/2009/07/29/opensql-camp-comes-to-portland-november-14-15-2009/</a>
+</p>
+
+<p>
+JPUG 10th Anniversary Conference is November 20-21, 2009 in Tokyo, Japan.
+<a href="http://archives.postgresql.org/pgsql-announce/2009-05/msg00018.php">http://archives.postgresql.org/pgsql-announce/2009-05/msg00018.php</a>
+</p>
+
+<p>
+FOSDEM 2010 will be in Brussels on February 6-7, 2010.
+<a href="http://www.fosdem.org/">http://www.fosdem.org/</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,
+Josh Berkus, and Devrim GUNDUZ.
+</p>
+
+<p>
+Submit news and announcements by Sunday at 3:00pm Pacific time.
+</p>
+
+<h2>Applied Patches</h2>
+<p>
+Tom Lane committed:
+</p>
+
+<p>
+- Track the current XID wrap limit (or more accurately, the oldest
+ unfrozen XID) in checkpoint records. This eliminates the need to
+ recompute the value from scratch during database startup, which is
+ one of the two remaining reasons for the flatfile code to exist. It
+ should also simplify life for hot-standby operation. To avoid
+ bloating the checkpoint records unreasonably, I switched from
+ tracking the oldest database by name to tracking it by OID. This
+ turns out to save cycles in general (everywhere but the
+ warning-generating paths, which we hardly care about) and also helps
+ us deal with the case that the oldest database got dropped instead
+ of being vacuumed. The prior coding might go for a long time
+ without updating the wrap limit in that case, which is bad because
+ it might result in a lot of useless autovacuum activity.
+</p>
+
+<p>
+- Change the autovacuum launcher to read pg_database directly, rather
+ than via the "flat files" facility. This requires making it enough
+ like a backend to be able to run transactions; it's no longer an
+ "auxiliary process" but more like the autovacuum worker processes.
+ Also, its signal handling has to be brought into line with
+ backends/workers. In particular, since it now has to handle
+ procsignal.c processing, the special autovac-launcher-only signal
+ conditions are moved to SIGUSR2. Alvaro Herrera, with some cleanup
+ from Tom Lane.
+</p>
+
+<p>
+- Move processing of startup-packet switches and GUC settings into
+ InitPostgres, to fix the problem that SetClientEncoding needs to be
+ done before InitializeClientEncoding, as reported by Zdenek Kotala.
+ We get at least the small consolation of being able to remove the
+ bizarre API detail that had InitPostgres returning whether user is a
+ superuser.
+</p>
+
+<p>
+- Bump catversion for flat-file-ectomy. Also remove a missed dead
+ extern declaration.
+</p>
+
+<p>
+- In pgsql/src/backend/access/transam/twophase.c, actually, we need to
+ bump the format identifier on twophase files because of readjustment
+ of 2PC rmgr IDs for flatfile removal.
+</p>
+
+<p>
+- Force VACUUM to recalculate oldestXmin even when we haven't changed
+ our own database's datfrozenxid, if the current value is old enough
+ to be forcing autovacuums or warning messages. This ensures that a
+ bogus value is replaced as soon as possible. Per a comment from
+ Heikki.
+</p>
+
+<p>
+- Fix pg_ctl's readfile() to not go into infinite loop on an empty
+ file (could happen if either postgresql.conf or postmaster.opts is
+ empty). It's been broken since the C version was written for 8.0,
+ so patch all the way back. initdb's copy of the function is broken
+ in the same way, but it's less important there since the input files
+ should never be empty. Patch that in HEAD only, and also fix some
+ cosmetic differences that crept into that copy of the function. Per
+ report from Corry Haines and Jeff Davis.
+</p>
+
+<p>
+- Fix subquery pullup to wrap a PlaceHolderVar around the entire
+ RowExpr that's generated for a whole-row Var referencing the
+ subquery, when the subquery is in the nullable side of an outer
+ join. The previous coding instead put PlaceHolderVars around the
+ elements of the RowExpr. The effect was that when the outer join
+ made the subquery outputs go to null, the whole-row Var produced
+ ROW(NULL,NULL,...) rather than just NULL. There are arguments afoot
+ about whether those things ought to be semantically
+ indistinguishable, but for the moment they are not entirely so, and
+ the planner needs to take care that its machinations preserve the
+ difference. Per bug #5025. Making this feasible required
+ refactoring ResolveNew() to allow more caller control over what is
+ substituted for a Var. I chose to make ResolveNew() a wrapper
+ around a new general-purpose function replace_rte_variables(). I
+ also fixed the ancient bogosity that ResolveNew might fail to set a
+ query's hasSubLinks field after inserting a SubLink in it. Although
+ all current callers make sure that happens anyway, we've had bugs of
+ that sort before, and it seemed like a good time to install a proper
+ solution. Back-patch to 8.4. The problem can be demonstrated clear
+ back to 8.0, but the fix would be too invasive in earlier branches;
+ not to mention that people may be depending on the subtly-incorrect
+ behavior. The 8.4 series is new enough that fixing this probably
+ won't cause complaints, but it might in older branches. Also, 8.4
+ shows the incorrect behavior in more cases than older branches do,
+ because it is able to flatten subqueries in more cases.
+</p>
+
+<p>
+- In pgsql/src/bin/initdb/initdb.c, remove initdb's rather gratuitous
+ check to see if the backend created a flat password file, because it
+ never will anymore. We had managed to miss this during the recent
+ flat-file-ectomy because it only happens if --pwfile or --pwprompt
+ is specified to initdb. Apparently, few hackers use those.
+ Reported by Erik Rijkers.
+</p>
+
+<p>
+- Update time zone data files to tzdata release 2009l: DST law changes
+ in Egypt, Mauritius, Bangladesh.
+</p>
+
+<p>
+- Install a workaround for a longstanding gcc bug that allows SIGFPE
+ traps to occur for division by zero, even though the code is
+ carefully avoiding that. All available evidence is that the only
+ functions affected are int24div, int48div, and int28div, so patch
+ just those three functions to include a "return" after the ereport()
+ call. Backpatch to 8.4 so that the fix can be tested in production
+ builds. For older branches our recommendation will continue to be
+ to use -O1 on affected platforms (which are mostly non-mainstream
+ anyway).
+</p>
+
+<p>
+- Final updates of release notes for 8.4.1, 8.3.8, 8.2.14, 8.1.18,
+ 8.0.22, 7.4.26.
+</p>
+
+<p>
+- In pgsql/src/backend/postmaster/pgstat.c, remove pgstat's
+ discrimination against MsgVacuum and MsgAnalyze messages. Formerly,
+ these message types would be discarded unless there was already a
+ stats hash table entry for the target table. However, the intent of
+ saving hash table space for unused tables was subverted by the fact
+ that the physical I/O done by the vacuum or analyze would result in
+ an immediately following tabstat message, which would create the
+ hash table entry anyway. All that we had left was surprising loss
+ of statistical data, as in a recent complaint from Jaime Casanova.
+ It seems unlikely that a real database would have many tables that
+ go totally untouched over the long haul, so the consensus is that
+ this "optimization" serves little purpose anyhow. Remove it, and
+ just create the hash table entry on demand in all cases.
+</p>
+
+<p>
+- In pgsql/src/backend/Makefile, revert ill-considered restriction of
+ dtrace support to Solaris only.
+</p>
+
+<p>
+- In pgsql/src/backend/Makefile, put back "ifeq ($(PORTNAME),
+ solaris)", this time with some documentation of why it's not as
+ broken as it appears on first glance.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/ref/copy.sgml, add a note warning that COPY
+ BINARY is very datatype-specific. Per a complaint from Gordon
+ Shannon.
+</p>
+
+<p>
+- Update the tznames reference files, and add IDT (Israel Daylight
+ Time) to the Default timezone abbreviation set. Back-port the the
+ current file set to all branches that contain tznames. This
+ includes adding SGT to the Default set in pre-8.4 releases. Joachim
+ Wieland.
+</p>
+
+<p>
+Alvaro Herrera committed:
+</p>
+
+<p>
+- This patch removes flatfiles.c for good. It doesn't change the
+ keeping of locks in dbcommands.c and user.c, because at least some
+ of them are still required. Regarding sync commits that previously
+ happen and now won't, I think the only case worth worrying about is
+ the one in vacuum.c. Do we need a ForceSyncCommit() in there? I'm
+ not sure if vacuum itself already forces sync commit.
+</p>
+
+<p>
+- Remove flatfiles.c, which is now obsolete. Recent commits have
+ removed the various uses it was supporting. It was a performance
+ bottleneck, according to bug report #4919 by Lauris Ulmanis; seems
+ it slowed down user creation after a billion users.
+</p>
+
+<p>
+Peter Eisentraut committed:
+</p>
+
+<p>
+- In pgsql/src/backend/access/gist/gist.c, improve picksplit debug
+ message. Missed this earlier because the translation site was
+ broken for the 7.4 branch.
+</p>
+
+<p>
+- Translation updates
+</p>
+
+<p>
+Magnus Hagander committed:
+</p>
+
+<p>
+- In pgsql/src/interfaces/ecpg/preproc/Makefile, revert Makefile
+ modification that broke the MSVC build.
+</p>
+
+<p>
+Michael Meskes committed:
+</p>
+
+<p>
+- In pgsql/src/interfaces/ecpg/ecpglib/misc.c, do not set connection
+ values if no connection is open.
+</p>
+
+<p>
+- In ECPG, removed some variables no longer needed.
+</p>
+
+<p>
+- In pgsql/src/interfaces/ecpg/ecpglib/execute.c, fixed incorrect
+ memory management.
+</p>
+
+<p>
+Marc Fournier committed:
+</p>
+
+<p>
+- Tag 8.4.1, 8.3.8, 8.2.14, 8.1.18, 8.0.22, and 7.4.26.
+</p>
+
+<p>
+Heikki Linnakangas committed:
+</p>
+
+<p>
+- In pgsql/src/backend/utils/adt/xml.c, fix encoding handling in xml
+ binary input function. If the XML header didn't specify an encoding
+ explicitly, we used to treat it as being in database encoding when
+ we parsed it, but then perform a UTF-8 -> database encoding
+ conversion on it, which was completely bogus. It's now consistently
+ treated as UTF-8.
+</p>
+
+<p>
+- Tighten binary receive functions so that they reject values that the
+ text input functions don't accept either. While the backend can
+ handle such values fine, they can cause trouble in clients and in
+ pg_dump/restore. This is followup to the original issue on time
+ datatype reported by Andrew McNamara a while ago. Like that one,
+ none of these seem worth back-patching.
+</p>
+
+<h2>Rejected Patches (for now)</h2>
+<p>
+No one was disappointed this week :-)
+</p>
+
+<h2>Pending Patches</h2>
+<p>
+Heikki Linnakangas sent in a patch to make some of the binary recv
+functions stricter.
+</p>
+
+<p>
+KaiGai Kohei sent in another revision of the patch to add access
+controls for large objects.
+</p>
+
+<p>
+Greg Sabino Mullane sent in another revision of the patch to add YAML
+as a formatting option for EXPLAIN output.
+</p>
+
+<p>
+Kevin Grittner sent in two more revisions of the patch to add a LSB
+conformant init script to contrib/start-scripts.
+</p>
+
+<p>
+Peter Eisentraut sent in another patch to help with PL/PythonU data
+type conversion improvements.
+</p>
+
+<p>
+Jeff Janes sent in a patch to rearrange pgbench's handling of
+#define'd constants.
+</p>
+
+<p>
+Sam Mason sent in a patch which throws an error when anything but a
+one-byte char is sent to the "char" type.
+</p>
+
+<p>
+ITAGAKI Takahiro sent in a patch to add column-level triggers.
+</p>
+
+<p>
+KaiGai Kohei sent in another revision of the patch to refactor ACL
+facilities in PostgreSQL.
+</p>
+
+<p>
+Zoltan Boszormenyi sent in another revision of the patch to implement
+SELECT...FOR UPDATE [WAIT integer | NOWAIT].
+</p>
+
+<p>
+Zoltan Boszormenyi sent in new revisions of the ECPG patches for
+dynamic cursor name, sqlda, describe, and fixes for cursor scope error
+handling in Informix compatibility mode.
+</p>
+
+<p>
+Alvaro Herrera sent in a doc patch for logging at high loads.
+</p>
+
+<p>
+Simon Riggs sent in a patch to skip SignalAutoVacuumWorkers(SIGTERM)
+during recovery.
+</p>
+
+<p>
+Zoltan Boszormenyi sent in another revision of the cursor-handling
+patch for ECPG.
+</p>
+
+<p>
+Robert Haas sent in another revision of the join removal patch.
+</p>
+
+<p>
+Marko (johto) Tiikkaja sent in another revision of the patch to make
+DML nodes in support of writeable CTEs.
+</p>
+
+<p>
+KaiGai Kohei sent in another revision of the patch to add access
+controls to large objects.
+
+</p>
+