|Тема:||== PostgreSQL Weekly News - March 21 2010 ==|
(см: обсуждение, исходный текст)
== PostgreSQL Weekly News - March 21 2010 == 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! == PostgreSQL Product News == dtester 0.1, an event-driven asynchronous test harness, released. http://www.bluegap.ch/projects/dtester/ pgbouncer 1.3.2 released. http://pgfoundry.org/projects/pgbouncer/ pgreplay 0.9.0 beta, a program to replay logged SQL statements, released. http://pgreplay.projects.postgresql.org/ == PostgreSQL 9.0 Feature of the Week == hstore no longer has a 64kB limit on key lengths, and does have btree and hash operator classes, allowing for GROUP BY, DISTINCT, etc. == PostgreSQL Jobs for March == http://archives.postgresql.org/pgsql-jobs/2010-03/threads.php == PostgreSQL Local == JDCon East will take place March 25-28, 2010 in Philadelphia, PA, USA. http://www.postgresqlconference.org/2010/east 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! http://wiki.postgresql.org/wiki/SFPUG_Beta_Test_Day Linuxfest Northwest 2010 will take place in Bellingham, Washington, USA on April 24 and 25. Session, Booth and Sponsorship are available. http://linuxfestnorthwest.org/ 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: http://andreas.scherbaum.la/blog/archives/650-PostgreSQL-Schulung-als-Bildungsurlaub-03.-07.05.2010-in-Magdeburg.html PgCon 2010 will be held May 20-21 2010 in Ottawa with tutorials before on the 18th and 19th. http://www.pgcon.org/2010/registration.php The CfP for OSBridge is open! OSBridge will be June 1-4, 2010 in Portland, Oregon. http://opensourcebridge.org/events/2010/proposals/ OSCON will take place in Portland, Oregon July 19-23, 2010. http://www.oscon.com/oscon2010 == PostgreSQL in the News == Planet PostgreSQL: http://planet.postgresql.org/ PostgreSQL Weekly News is brought to you this week by David Fetter Submit news and announcements by Sunday at 3:00pm Pacific time. Please send English language ones to , German language to , Italian language to . == Applied Patches == Simon Riggs committed: - 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 - In pgsql/doc/src/sgml/func.sgml, document that trig functions accept/return values in radians. - In pgsql/doc/src/sgml/func.sgml, fix typo in math function docs, spotted by Heikki Linnakangas. - In pgsql/doc/src/sgml/protocol.sgml, fix typo in streaming replication protocol docs. - Add vacuum_defer_cleanup_age to postgresql.conf.sample. - 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. - 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. - In pgsql/src/include/access/xlog_internal.h, update XLOG_PAGE_MAGIC to recognise WAL format changes. - 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. - 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. - 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. - 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. Heikki Linnakangas committed: - 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. - 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. - 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. Tom Lane committed: - 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. - 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. - In pgsql/doc/src/sgml/func.sgml, fix missing parentheses for current_query(), per bug #5378. Also make a couple other minor editorial improvements. - 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. - 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. - 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. Peter Eisentraut committed: - Update broken and permanently moved links. - Make typography consistent in the GRANT and REVOKE documentation. - In pgsql/src/interfaces/libpq/fe-connect.c, fix peculiar, untranslatable message concatenation attempt - Message style tuning for PL/Perl(U). - 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. - 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. - In pgsql/src/pl/plperl/plperl.c, message style tuning. - Prevent the injection of invalidly encoded strings by PL/Python into PostgreSQL with a few strategically placed pg_verifymbstr calls. - Also print the libpq error message when lo_create or lo_open fails. - Message tuning. Magnus Hagander committed: - In pgsql/doc/src/sgml/config.sgml, typo fixes. Fujii Masao. Bruce Momjian committed: - In pgsql/src/tools/RELEASE_CHANGES, mention way to get commit details for release notes. - In pgsql/doc/src/sgml/release.sgml, update sgml release note markup suggestions. - In pgsql/doc/src/sgml/release-9.0.sgml, create 9.0 release notes; keep 9.0-alpha release notes in place. - Move server-side languages up one section in the 9.0 release notes. - In 9.0 release notes, move libpq/ecpg up into their own sections, like I did with server-side languages. - Add links to documentation sections in 9.0 release notes. Also update tagging instructions, and add id tags to a few documentation sections. - Add more 9.0 release note documentation links. - Remove 9.0 release notes xref's to HISTORY.html can be built. Document this restriction. Robert Haas committed: - 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. Michael Meskes committed: - In src/interfaces/ecpg/preproc/ecpg.trailer, fixed ecpg parser to allow more than one C preprocessor command inside a declare section. - 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. - 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. - Adjusted regression test results to the change I made in debug output for ecpglib. - 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. - 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. == Rejected Patches (for now) == No one was disappointed this week :-) == Pending Patches == Pavel Stehule sent in four revisions of a patch to reduce the memory usage in ispell dictionaries. ITAGAKI Takahiro and Greg Smith sent in patches to implement per-thread log files for pgbench -l. 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. KaiGai Kohei sent in a patch for 9.1 which refactors access control for ALTER TABLE. ITAGAKI Takahiro sent in another revision of the patch to fix the locale issue on Windows. Alvaro Herrera sent in a patch to deal with the RESET ALL access control issue. Yeb Havinga sent in a patch which changes EXPLAIN output to show the actual parameters. 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. Tim Landscheidt sent in a patch to clarify the generate_subscripts() docs.