--- /dev/null
+<!-- BEGIN page_title_block -->
+Weekly News - March 21 2010
+<!-- END page_title_block -->
+
+<h1>PostgreSQL Weekly News - March 21 2010</h1>
+
+<p>
+Bug Fix Releases 8.4.3, 8.3.10, 8.2.16, 8.1.20, 8.0.24 and 7.4.28 are
+out now. Upgrade ASAP!
+</p>
+
+<h2>PostgreSQL Product News</h2>
+<p>
+dtester 0.1, an event-driven asynchronous test harness, released.
+<a href="http://www.bluegap.ch/projects/dtester/">http://www.bluegap.ch/projects/dtester/</a>
+</p>
+
+<p>
+pgbouncer 1.3.2 released.
+<a href="http://pgfoundry.org/projects/pgbouncer/">http://pgfoundry.org/projects/pgbouncer/</a>
+</p>
+
+<p>
+pgreplay 0.9.0 beta, a program to replay logged SQL statements, released.
+<a href="http://pgreplay.projects.postgresql.org/">http://pgreplay.projects.postgresql.org/</a>
+</p>
+
+<h2>PostgreSQL 9.0 Feature of the Week</h2>
+<p>
+hstore no longer has a 64kB limit on key lengths, and does have btree
+and hash operator classes, allowing for GROUP BY, DISTINCT, etc.
+</p>
+
+<h2>PostgreSQL Jobs for March</h2>
+<p>
+<a href="http://archives.postgresql.org/pgsql-jobs/2010-03/threads.php">http://archives.postgresql.org/pgsql-jobs/2010-03/threads.php</a>
+</p>
+
+<h2>PostgreSQL Local</h2>
+<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>
+The San Francisco PostgreSQL Users' Group will be having a Test Fest
+Saturday April 3, 11am to 6pm. There will be live video. Help make
+this a world-wide event!
+<a href="http://wiki.postgresql.org/wiki/SFPUG_Beta_Test_Day">http://wiki.postgresql.org/wiki/SFPUG_Beta_Test_Day</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>
+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.
+Please send English language ones to david@fetter.org, German language
+to pwn@pgug.de, Italian language to pwn@itpug.org.
+</p>
+
+<h2>Applied Patches</h2>
+<p>
+Simon Riggs committed:
+</p>
+
+<p>
+- In pgsql/src/backend/access/transam/xlog.c, remove incorrect comment
+ from GetWriteRecPtr(): the return value is always correct, as
+ described in comments at start of xlog.c
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/func.sgml, document that trig functions
+ accept/return values in radians.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/func.sgml, fix typo in math function docs,
+ spotted by Heikki Linnakangas.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/protocol.sgml, fix typo in streaming
+ replication protocol docs.
+</p>
+
+<p>
+- Add vacuum_defer_cleanup_age to postgresql.conf.sample.
+</p>
+
+<p>
+- Reset btpo.xact following recovery of btree delete page. Add
+ btpo_xact field into WAL record and reset it from there, rather than
+ using FrozenTransactionId which can lead to some corner case bugs.
+ Problem report and suggested route to a fix from Heikki Linnakangas,
+ details by me.
+</p>
+
+<p>
+- Adjust comment in .history file to match recovery target specified.
+ Comment present since 8.0 was never fully meaningful, since two
+ recovery targets cannot be specified. Refactor recovery target type
+ to make this change and associated code easier to understand. No
+ change in function. Bug report arising from internal support
+ question.
+</p>
+
+<p>
+- In pgsql/src/include/access/xlog_internal.h, update XLOG_PAGE_MAGIC
+ to recognise WAL format changes.
+</p>
+
+<p>
+- In pgsql/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c,
+ minor tweaks on libpqrcv_connect(): ensure conninfo_repl[] is
+ correctly sized and expand comment to explain otherwise undocumented
+ use of replication connection parameter.
+</p>
+
+<p>
+- Add connection messages for streaming replication. log_connections
+ was broken for a replication connection and no messages were
+ displayed on either standby or primary, at any debug level.
+ Connection messages needed to diagnose session drop/reconnect
+ events. Use LOG mode for now, discuss lowering in later releases.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/high-availability.sgml, clarify docs about
+ database parameter in streaming replication primary_conninfo. Docs
+ were unclear on whether or not database=replication was required,
+ nor did they mention the FATAL error this causes if database
+ parameter is mentioned explicitly, whatever its value.
+</p>
+
+<p>
+- In pgsql/src/include/access/nbtree.h, further corrections of
+ mismatching struct and btree SizeOf macros. In this case,
+ correction is to remove now unused fields from struct. Since these
+ were unused and full of garbage anyway, no version change.
+</p>
+
+<p>
+Heikki Linnakangas committed:
+</p>
+
+<p>
+- In pgsql/src/backend/replication/walsender.c, throw a nicer error
+ message if a standby server attempts to connect while the master is
+ still in recovery. We don't support cascading slaves yet. Patch by
+ Fujii Masao, with slightly changed wording.
+</p>
+
+<p>
+- Add restartpoint_command option to recovery.conf. Fix bug in %r
+ handling in recovery_end_command, it always came out as 0 because
+ InRedo was cleared before recovery_end_command was executed. Also,
+ always take ControlFileLock when reading checkpoint location for %r.
+ The recovery_end_command bug and the missing locking was present in
+ 8.4 as well, that part of this patch will be backported separately.
+</p>
+
+<p>
+- In pgsql/src/backend/access/transam/xlog.c, fix bug in %r handling
+ in recovery_end_command, it always came out as 0 because InRedo was
+ cleared before recovery_end_command was executed. Also, always take
+ ControlFileLock when reading checkpoint location for %r. That
+ didn't matter before, but in 8.4 bgwriter is active during recovery
+ and can modify the control file concurrently.
+</p>
+
+<p>
+Tom Lane committed:
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/ref/create_index.sgml, fix incorrect example
+ in CREATE INDEX reference page, per Josh Kupershmidt. Also fix and
+ uncomment an old example of creating a GIST index, and make a couple
+ of other minor editorial adjustments.
+</p>
+
+<p>
+- Pass incompletely-transformed aggregate argument lists as separate
+ parameters to transformAggregateCall, instead of abusing fields in
+ Aggref to carry them temporarily. No change in functionality but
+ hopefully the code is a bit clearer now. Per gripe from
+ Gokulakannan Somasundaram.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/func.sgml, fix missing parentheses for
+ current_query(), per bug #5378. Also make a couple other minor
+ editorial improvements.
+</p>
+
+<p>
+- In pgsql/src/include/access/nbtree.h, fix oversight in btpo.xact
+ patch; it was in fact installing garbage in the xact field on
+ replay, due to not writing out all the data in the wal log struct.
+</p>
+
+<p>
+- Modify error context callback functions to not assume that they can
+ fetch catalog entries via SearchSysCache and related operations.
+ Although, at the time that these callbacks are called by elog.c, we
+ have not officially aborted the current transaction, it still seems
+ rather risky to initiate any new catalog fetches. In all these
+ cases the needed information is readily available in the caller and
+ so it's just a matter of a bit of extra notation to pass it to the
+ callback. Per crash report from Dennis Koegel. I've concluded that
+ the real fix for his problem is to clear the error context stack at
+ entry to proc_exit, but it still seems like a good idea to make the
+ callbacks a bit less fragile for other cases. Backpatch to 8.4. We
+ could go further back, but the patch doesn't apply cleanly. In the
+ absence of proof that this fixes something and isn't just paranoia,
+ I'm not going to expend the effort.
+</p>
+
+<p>
+- In pgsql/src/backend/storage/ipc/ipc.c, clear error_context_stack
+ and debug_query_string at the beginning of proc_exit, so that we
+ won't try to attach any context printouts to messages that get
+ emitted while exiting. Per report from Dennis Koegel, the context
+ functions won't necessarily work after we've started shutting down
+ the backend, and it seems possible that debug_query_string could be
+ pointing at freed storage as well. The context information doesn't
+ seem particularly relevant to such messages anyway, so there's
+ little lost by suppressing it. Back-patch to all supported
+ branches. I can only demonstrate a crash with log_disconnections
+ messages back to 8.1, but the risk seems real in 8.0 and before
+ anyway.
+</p>
+
+<p>
+Peter Eisentraut committed:
+</p>
+
+<p>
+- Update broken and permanently moved links.
+</p>
+
+<p>
+- Make typography consistent in the GRANT and REVOKE documentation.
+</p>
+
+<p>
+- In pgsql/src/interfaces/libpq/fe-connect.c, fix peculiar,
+ untranslatable message concatenation attempt
+</p>
+
+<p>
+- Message style tuning for PL/Perl(U).
+</p>
+
+<p>
+- Don't link PL/Python against LOCALMODLIBS. This variable is
+ apparently only for Python internally. In newer releases of Python
+ this variable pulls in more and more libraries that users are less
+ likely to have, leading to potential build failures.
+</p>
+
+<p>
+- Use data-type specific conversion functions also in plpy.execute.
+ In PLy_spi_execute_plan, use the data-type specific
+ Python-to-PostgreSQL conversion function instead of passing
+ everything through InputFunctionCall as a string. The equivalent
+ fix was already done months ago for function parameters and return
+ values, but this other gateway between Python and PostgreSQL was
+ apparently forgotten. As a result, data types that need special
+ treatment, such as bytea, would misbehave when used with
+ plpy.execute.
+</p>
+
+<p>
+- In pgsql/src/pl/plperl/plperl.c, message style tuning.
+</p>
+
+<p>
+- Prevent the injection of invalidly encoded strings by PL/Python into
+ PostgreSQL with a few strategically placed pg_verifymbstr calls.
+</p>
+
+<p>
+- Also print the libpq error message when lo_create or lo_open fails.
+</p>
+
+<p>
+- Message tuning.
+</p>
+
+<p>
+Magnus Hagander committed:
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/config.sgml, typo fixes. Fujii Masao.
+</p>
+
+<p>
+Bruce Momjian committed:
+</p>
+
+<p>
+- In pgsql/src/tools/RELEASE_CHANGES, mention way to get commit
+ details for release notes.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/release.sgml, update sgml release note markup
+ suggestions.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/release-9.0.sgml, create 9.0 release notes;
+ keep 9.0-alpha release notes in place.
+</p>
+
+<p>
+- Move server-side languages up one section in the 9.0 release notes.
+</p>
+
+<p>
+- In 9.0 release notes, move libpq/ecpg up into their own sections,
+ like I did with server-side languages.
+</p>
+
+<p>
+- Add links to documentation sections in 9.0 release notes. Also
+ update tagging instructions, and add id tags to a few documentation
+ sections.
+</p>
+
+<p>
+- Add more 9.0 release note documentation links.
+</p>
+
+<p>
+- Remove 9.0 release notes xref's to HISTORY.html can be built.
+ Document this restriction.
+</p>
+
+<p>
+Robert Haas committed:
+</p>
+
+<p>
+- In pgsql/src/backend/commands/tablecmds.c, forbid renaming columns
+ of objects whose column names are system-generated. KaiGai Kohei,
+ with adjustments to the comments.
+</p>
+
+<p>
+Michael Meskes committed:
+</p>
+
+<p>
+- In src/interfaces/ecpg/preproc/ecpg.trailer, fixed ecpg parser to
+ allow more than one C preprocessor command inside a declare section.
+</p>
+
+<p>
+- ECPG only copied #include statements instead of processing them
+ according to commandline option "-i". This change fixes this and
+ adds a test case. It also honors #include_next, although this is
+ probably never used for embedded SQL.
+</p>
+
+<p>
+- In pgsql/src/interfaces/ecpg/ecpglib/prepare.c, correctly name
+ functions in debug output in ecpglib. When the functions were
+ refactored the debug output wasn't adjusted.
+</p>
+
+<p>
+- Adjusted regression test results to the change I made in debug
+ output for ecpglib.
+</p>
+
+<p>
+- ECPG's parser now accepts and handles variables as arguments for the
+ FREE command. Informix allows variables as argument to the embedded
+ SQL command FREE. Given that we only allow freeing cursors via FREE
+ for compatibility reasons only we should do the same.
+</p>
+
+<p>
+- In pgsql/src/tools/msvc/ecpg_regression.proj, adding special command
+ line option that is now needed for the one ecpg regression test that
+ was changed.
+</p>
+
+<h2>Rejected Patches (for now)</h2>
+<p>
+No one was disappointed this week :-)
+</p>
+
+<h2>Pending Patches</h2>
+<p>
+Pavel Stehule sent in four revisions of a patch to reduce the memory
+usage in ispell dictionaries.
+</p>
+
+<p>
+ITAGAKI Takahiro and Greg Smith sent in patches to implement
+per-thread log files for pgbench -l.
+</p>
+
+<p>
+Heikki Linnakangas sent in a patch which adds a restartpoint_command
+option to recovery.conf which is executed at every restartpoint in
+streaming replication. It is analogous to the recovery_end_command,
+which cleans up old WALs, and like recovery_end_command, takes a
+parameter %r which tells it about the oldest WAL to retain.
+</p>
+
+<p>
+KaiGai Kohei sent in a patch for 9.1 which refactors access control
+for ALTER TABLE.
+</p>
+
+<p>
+ITAGAKI Takahiro sent in another revision of the patch to fix the
+locale issue on Windows.
+</p>
+
+<p>
+Alvaro Herrera sent in a patch to deal with the RESET ALL access
+control issue.
+</p>
+
+<p>
+Yeb Havinga sent in a patch which changes EXPLAIN output to show the
+actual parameters.
+</p>
+
+<p>
+Heikki Linnakangas sent in a patch to keep trying to make progess in
+recovery in standby mode by attempting to restore files first from
+archive, then pg_xlog, then streaming from master.
+</p>
+
+<p>
+Tim Landscheidt sent in a patch to clarify the generate_subscripts()
+docs.
+
+</p>
+