|Тема:||== PostgreSQL Weekly News - July 18 2010 ==|
(см: обсуждение, исходный текст)
== PostgreSQL Weekly News - July 18 2010 == PostgreSQL 9.0 beta 3 is out. Test! http://www.postgresql.org/developer/beta The Call for Papers for West is open until September 5, 2010. Details at: http://www.postgresqlconference.org/ The first San Diego PostgreSQL Users' Group meeting will be at Cymer, Inc. on July 29, 2010. http://www.meetup.com/SD-PUG/calendar/14105562/ == PostgreSQL Product News == psycopg2 2.2.2, a Python connector for PostgreSQL, released. http://initd.org/psycopg/ == PostgreSQL Jobs for July == http://archives.postgresql.org/pgsql-jobs/2010-07/threads.php == PostgreSQL Local == OSCON will take place in Portland, Oregon July 19-23, 2010. http://www.oscon.com/oscon2010 Reuven Lerner will be teaching a 5-day course in PostgreSQL August 1-5, 2010 at the Hi-Tech College in Herzliya, Israel. http://www.hi-tech.co.il/college/default.asp?PageID=12&CourseNum=4288 FrOSCon 2010 will take place in St. Augustin, Germany on August 21-22, 2010. The German PostgreSQL User Group got his own devroom and is looking for talks. More info: http://andreas.scherbaum.la/blog/archives/711-FrOSCon-2010-PostgreSQL-devroom-Call-for-papers.html == PostgreSQL in the News == Planet PostgreSQL: http://planet.postgresql.org/ PostgreSQL Weekly News is brought to you this week by David Fetter and Devrim GUNDUZ. Submit news and announcements by Sunday at 3:00pm Pacific time. Please send English language ones to , German language to , Italian language to . Spanish language to . == Reviews == KaiGai Kohei reviewed Robert Haas's patch to add get_whatever_oid functionality. == Applied Patches == Bruce Momjian committed: - Bump minor library version numbers, for 9.1 release. - In pgsql/src/tools/RELEASE_CHANGES, document bump of minor library version numbers. - In pgsql/doc/src/sgml/release-9.0.sgml, spellcheck 9.0 release notes. - In pgsql/doc/src/sgml/release-9.0.sgml, 9.0 release note improvements Erik Rijkers - In pgsql/doc/src/sgml/release-9.0.sgml, restore pl/pgsql default install release note item. - In pg_upgrade, prevent psql AUTOCOMMIT=off by not loading .psqlrc. - In pgsql/src/tools/fsync/test_fsync.c, print each test_fsync description while test is running, rather than at the end. - In pgsql/contrib/pg_upgrade/exec.c, in pg_upgrade, report /bin directory checks independent of /data checks. - In pgsql/contrib/pg_upgrade/option.c, remove incorrect email address for pg_upgrade bug reports. - In pgsql/contrib/pg_upgrade/server.c, on Win32, pg_upgrade cannot sent any server log output to the log file because of file access limitations on that platform. - Backpatch pg_upgrade fixes to 9.0: 1. In pg_upgrade, prevent psql AUTOCOMMIT=off by not loading .psqlrc. 2. In pg_upgrade, report /bin directory checks independent of /data checks. 3. Remove incorrect email address for pg_upgrade bug reports. 4. On Win32, pg_upgrade cannot sent any server log output to the log file because of file access limitations on that platform. - In pgsql/src/backend/commands/tablespace.c, simplify missing tablespace replay error hint message, but only in HEAD so we don't need to re-translate for 9.0. - In pgsql/src/interfaces/libpq/fe-connect.c, add SO_PEERCRED check in new unix domain socket permission checking code. Tom Lane committed: - Make NestLoop plan nodes pass outer-relation variables into their inner relation using the general PARAM_EXEC executor parameter mechanism, rather than the ad-hoc kluge of passing the outer tuple down through ExecReScan. The previous method was hard to understand and could never be extended to handle parameters coming from multiple join levels. This patch doesn't change the set of possible plans nor have any significant performance effect, but it's necessary infrastructure for future generalization of the concept of an inner indexscan plan. ExecReScan's second parameter is now unused, so it's removed. - Teach EXPLAIN to print PARAM_EXEC Params as the referenced expressions, rather than just $N. This brings the display of nestloop-inner-indexscan plans back to where it's been, and incidentally improves the display of SubPlan parameters as well. In passing, simplify the EXPLAIN code by having it deal primarily in the PlanState tree rather than separately searching Plan and PlanState trees. This is noticeably cleaner for subplans, and about a wash elsewhere. One small difference from previous behavior is that EXPLAIN will no longer qualify local variable references in inner-indexscan plan nodes, since it no longer sees such nodes as possibly referencing multiple tables. Vars referenced through PARAM_EXEC Params are still forcibly qualified, though, so I don't think the display is any more confusing than before. Adjust a couple of examples in the documentation to match this behavior. - Allow full SSL certificate verification (wherein libpq checks its host name parameter against server cert's CN field) to succeed in the case where both host and hostaddr are specified. As with the existing precedents for Kerberos, GSSAPI, SSPI, it is the calling application's responsibility that host and hostaddr match up --- we just use the host name as given. Per bug #5559 from Christopher Head. In passing, make the error handling and messages for the no-host-name-given failure more consistent among these four cases, and correct a lie in the documentation: we don't attempt to reverse-lookup host from hostaddr if host is missing. Back-patch to 8.4 where SSL cert verification was introduced. - In pgsql/src/bin/pg_dump/pg_dump.c, fix several problems in pg_dump's handling of SQL/MED objects, notably failure to dump a PUBLIC user mapping correctly, as per bug #5560 from Shigeru Hanada. Use the pg_user_mappings view rather than trying to access pg_user_mapping directly, so that the code doesn't fail when run by a non-superuser. And clean up some minor carelessness such as unsafe usage of fmtId(). Back-patch to 8.4 where this code was added. - In pgsql/doc/src/sgml/high-availability.sgml, use an <xref> for restore_command reference. Marko Tiikkaja. - In pgsql/src/backend/commands/opclasscmds.c, remove duplicate code in DefineOpFamily(). The code was probably meant to be this way all along, since the subroutine CreateOpFamily previously had only one caller. But it wasn't. KaiGai Kohei. - In pgsql/src/backend/executor/execUtils.c, remove a sanity check in the exclusion-constraint code that prevented users from defining non-self-conflicting constraints. Jeff Davis. Note: I (tgl) objected to removing this check in 9.0 on the grounds that it was an important sanity check in new, poorly tested code. However, it should be all right to remove it for 9.1, since we'll get field testing from the 9.0 branch. - Add support for dividing money by money (yielding a float8 result) and for casting between money and numeric. Andy Balholm, reviewed by Kevin Grittner - Add a log_file_mode GUC that allows control of the file permissions set on log files created by the syslogger process. In passing, make unix_file_permissions display its value in octal, same as log_file_mode now does. Martin Pihlak - In pgsql/src/interfaces/libpq/fe-connect.c, fix thinko in recent patch: 'sock' should be 'conn->sock'. - In pgsql/src/interfaces/libpq/fe-connect.c, fix up poor handling of unsupported-platform case in requirepeer patch. - Allow ORDER BY/GROUP BY/etc items to match targetlist items regardless of any implicit casting previously applied to the targetlist item. This is reasonable because the implicit cast, by definition, wasn't written by the user; so we are preserving the expected behavior that ORDER BY items match textually equivalent tlist items. The case never arose before because there couldn't be any implicit casting of a top-level SELECT item before we process ORDER BY etc. But now it can arise in the context of aggregates containing ORDER BY clauses, since the "targetlist" is the already-casted list of arguments for the aggregate. The net effect is that the datatype used for ORDER BY/DISTINCT purposes is the aggregate's declared input type, not that of the original input column; which is a bit debatable but not horrendous, and to do otherwise would require major rework that doesn't seem justified. Per bug #5564 from Daniel Grace. Back-patch to 9.0 where aggregate ORDER BY was implemented. - In pgsql/src/backend/utils/error/elog.c, remove unnecessary "Not safe to send CSV data" complaint from elog.c's fallback path when CSV logging is configured but not yet operational. It's sufficient to send the message to stderr, as we were already doing, and the "Not safe" gripe has already confused at least two core members ... Backpatch to 9.0, but not further --- doesn't seem appropriate to change this behavior in stable branches. Heikki Linnakangas committed: - In pgsql/src/backend/utils/mmgr/portalmem.c, oops, in the previous fix to prevent a cursor that's being used in a FOR loop from being dropped, I missed subtransaction cleanup. Pinned portals must be dropped at subtransaction cleanup just as they are at main transaction cleanup. Per bug #5556 by Robert Walker. Backpatch to 8.0, 7.4 didn't have subtransactions. - Add a paragraph explaining what restartpoints are. Mention that wal_keep_segments does not take effect during recovery. Fujii Masao - In pgsql/doc/src/sgml/wal.sgml, fix typo spotted by Thom Brown. Peter Eisentraut committed: - Add server authentication over Unix-domain sockets. This adds a libpq connection parameter requirepeer that specifies the user name that the server process is expected to run under. Reviewed by KaiGai Kohei. == Rejected Patches (for now) == No one was disappointed this week :-) == Pending Patches == KaiGai Kohei sent in another revision of the patch reworking DML permissions. Marko (johto) Tiikkaja sent in another WIP patch implementing writeable CTEs. Greg Smith sent in another revision of the patch to make pgbench 64-bit clean. Pavel Stehule sent in two more revisions of the patch to add left, right, reverse and concat functions to core, and printf and concat_ws functions to contrib. Markus Wanner sent in a flock of patches to add a background worker infrastructure which could be used, for example, in doing parallel queries. Alexander Korotkov sent in another revision of the patch to speed up levenshtein distance for multi-byte character sets. Tom Lane sent in a patch to trace only PlanState trees in EXPLAIN. Currently, both PlanState and Plan get traced. Peter Eisentraut sent in a proof-of-concept patch to implement per-column collation. Mark Wong sent in another version of the patch to allow multiple -f's in the invocation of psql. Pavel Stehule sent in another revision of the patch to preload text search dictionaries. Robert Haas sent in another revision of the patch to suppress automatic recovery after a back-end crash, per review from Fujii Masao. KaiGai Kohei sent in two separate patches to add security labels to database objects. Fujii Masao sent in a patch intended to allow various levels of synchronous replication via a replication_mode parameter for recovery.conf in Hot Standby/Streaming Replication. It also provides some infrastructure for a quorum commit feature. Yeb Havinga sent in another revision of the patch to allow for five-key syscaches, which is infrastructure for, among other things, K-Nearest-Neighbor GiST searches. Robert Haas sent in a patch to make standard_conforming_strings on by default. Simon Riggs sent in another revision of the patch to reduce the lock level required by ALTER TABLE, CREATE TRIGGER and CREATE RULE. Boxuan Zhai sent in another revision of the patch to add MERGE. Jeff Davis sent in another revision of the patch to add a "not equals" operator for contrib/btree_gist. Brendan Jurd sent in another revision of the to_string(), to_array(), etc. patch. Jan Urbanski sent in another revision of the patch to add functionality to \ef (edit function) and add \sf (show function) to psql. Kevin Grittner sent in another revision of the patch to do true serializability. David Christensen sent in another revision of the patch to add \conninfo to psql. Bruce Momjian sent in three revisions of a patch intended to fix a breakage of CREATE TABLESPACE during crash recovery.