== PostgreSQL Weekly News - May 06 2012 == PostgreSQL conference China 2012 will be on June 14-17, 2012 in Beijing. http://wiki.postgresql.org/wiki/Pgconfchina2012 PostgreSQL Magazine #01 is out now. http://pgmag.org/01/ PostgreSQL Turkey User Group is organizing 2nd Turkish PostgreSQL Conference in Istanbul, on May 12, 2012. Magnus Hagander will be giving the keynote. Please register for free: http://pgday.PostgreSQL.org.tr/2012/ == PostgreSQL Product News == ODB 2.0.0, an ORM for C++, supports PostgreSQL. http://www.codesynthesis.com/pipermail/odb-announcements/2012/000013.html == PostgreSQL Jobs for May == http://archives.postgresql.org/pgsql-jobs/2012-05/threads.php == PostgreSQL Local == PGCon 2012 will be held 17-18 May 2012, in Ottawa at the University of Ottawa. It will be preceded by two days of tutorials on 15-16 May 2012. http://www.pgcon.org/2012/ PGDay France will be in Lyon on June 7, 2012. http://www.pgday.fr PostgreSQL Conference Europe 2012 will be in Prague, Czech Republic on October 23-26. The call for sponsors is open. http://2012.pgconf.eu/ == 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 david(at)fetter(dot)org, German language to pwn(at)pgug(dot)de, Italian language to pwn(at)itpug(dot)org(dot) Spanish language to pwn(at)arpug(dot)com(dot)ar(dot) == Reviews == == Applied Patches == Bruce Momjian pushed: - Add comments suggesting usage of git_changelog to generate release notes. http://git.postgresql.org/pg/commitdiff/f33fe47a9169eec692b80c17ea47bd2f9c261aaf - Mark git_changelog examples with the proper executable names. http://git.postgresql.org/pg/commitdiff/7490c48f1e2c51dce77d33f7fd464e72713679a5 - Remove BSD/OS (BSDi) port. There are no known users upgrading to Postgres 9.2, and perhaps no existing users either. http://git.postgresql.org/pg/commitdiff/ebcaa5fcde8411786e3765414465174e6d31c8e6 - Fix psql doc typo. http://git.postgresql.org/pg/commitdiff/768c3affd44d1dcb4e43e2e006c642524714c2a4 - Revert typo fix 768c3affd44d1dcb4e43e2e006c642524714c2a4; I was wrong. http://git.postgresql.org/pg/commitdiff/0a3a674b98ebb47e2f4b539a0e284744a7871987 - Document that it is the pgsql version we are matching for psqlrc version-specific files, not the server version. http://git.postgresql.org/pg/commitdiff/65b110703b798cdbfa568aa3583caba0ed51b33a Robert Haas pushed: - Remove duplicate word in comment. Noted by Peter Geoghegan. http://git.postgresql.org/pg/commitdiff/0d2235a25bc71848c18f551f992b3eed8cec2399 - Tweak psql to print row counts when \x auto chooses non-expanded output. Noah Misch http://git.postgresql.org/pg/commitdiff/9b7a84f2a45322b21b86eb180a869d1ed2937b85 - More duplicate word removal. http://git.postgresql.org/pg/commitdiff/e01e66f808fbd161b2714eab34bb9e9d0db0db53 - Further corrections from the department of redundancy department. Thom Brown http://git.postgresql.org/pg/commitdiff/1b4998fd44bad9f8ab90e741cadd6519f6c94a44 - Avoid repeated CLOG access from heap_hot_search_buffer. At the time we check whether the tuple is dead to all running transactions, we've already verified that it isn't visible to our scan, setting hint bits if appropriate. So there's no need to recheck CLOG for the all-dead test we do just a moment later. So, add HeapTupleIsSurelyDead() to test the appropriate condition under the assumption that all relevant hit bits are already set. Review by Tom Lane. http://git.postgresql.org/pg/commitdiff/003811042139790a5a479c8264271a3248eda36f - Add missing parenthesis in comment. http://git.postgresql.org/pg/commitdiff/8e0c5195dff70ffc9c132716d0cf7f3eff45e302 Peter Eisentraut pushed: - Mark ReThrowError() with attribute noreturn. All related functions were already so marked. http://git.postgresql.org/pg/commitdiff/26471a51fc833e2ce58a2f16f891256d57dd28c6 - Improve markup of cmdsynopsis elements. Add more markup in particular so that the command options appear consistently in monospace in the HTML output. On the vacuumdb reference page, remove listing all the possible options in the synopsis. They have become too many now; we have the detailed options list for that. http://git.postgresql.org/pg/commitdiff/4266509c577b089627930af39f1dcd2d06b493e9 - Fix display of <command> elements on man pages. We had changed this from the default bold to monospace for all output formats, but for man pages, this creates visual inconsistencies, so revert to the default for man pages. http://git.postgresql.org/pg/commitdiff/61c84b47619c11e74089cb3160813a4b3c98e6d7 - Remove dead ports. Remove the following ports: dgux, nextstep, sunos4, svr4, ultrix4, and univel. These are obsolete and not worth rescuing. In most cases, there is circumstantial evidence that they wouldn't work anymore anyway. http://git.postgresql.org/pg/commitdiff/f2f9439fbfba378cb64cd6e5a046e0184cd542c6 - Even more duplicate word removal, in the spirit of the season http://git.postgresql.org/pg/commitdiff/e9605a039b60350003daf8a5b3c0c10993994b60 - PL/Python: Fix crash in functions returning SETOF and using SPI. Allocate PLyResultObject.tupdesc in TopMemoryContext, because its lifetime is the lifetime of the Python object and it shouldn't be freed by some other memory context, such as one controlled by SPI. We trust that the Python object will clean up its own memory. Before, this would crash the included regression test case by trying to use memory that was already freed. reported by Asif Naeem, analysis by Tom Lane http://git.postgresql.org/pg/commitdiff/52aa334fcd5a9d230be7e8fb964d94c6c4e63dc7 - doc: Fix for too many brackets in command synopses on man pages. The default for the choice attribute of the <arg> element is "opt", which would normally put the argument inside brackets. But the DSSSL stylesheets contain a hack that treats <arg> directly inside <group> specially, so that <group><arg>-x</arg><arg>-y</arg></group> comes out as [ -x | -y ] rather than [ [-x] | [-y] ], which it would technically be. But when building man pages, this doesn't work, and so the command synopses on the man pages contain lots of extra brackets. By putting choice="opt" or choice="plain" explicitly on every <arg> and <group> element, we avoid any toolchain dependencies like that, and it also makes it clearer in the source code what is meant. In passing, make some small corrections in the documentation about which arguments are really optional or not. http://git.postgresql.org/pg/commitdiff/1715ff112809bca5218ddb6eccfda2c20dc420b5 - PL/Python: Improve test coverage. Add test cases for inline handler of plython2u (when using that language name), and for result object element assignment. There is now at least one test case for every top-level functionality, except plpy.Fatal (annoying to use in regression tests) and result object slice retrieval and slice assignment (which are somewhat broken). http://git.postgresql.org/pg/commitdiff/e6c2e8cb87846161033e1f215876c4b95f631df0 Tom Lane pushed: - Converge all SQL-level statistics timing values to float8 milliseconds. This patch adjusts the core statistics views to match the decision already taken for pg_stat_statements, that values representing elapsed time should be represented as float8 and measured in milliseconds. By using float8, we are no longer tied to a specific maximum precision of timing data. (Internally, it's still microseconds, but we could now change that without needing changes at the SQL level.) The columns affected are pg_stat_bgwriter.checkpoint_write_time, pg_stat_bgwriter.checkpoint_sync_time, pg_stat_database.blk_read_time, pg_stat_database.blk_write_time, pg_stat_user_functions.total_time, pg_stat_user_functions.self_time, pg_stat_xact_user_functions.total_time, and pg_stat_xact_user_functions.self_time. The first four of these are new in 9.2, so there is no compatibility issue from changing them. The others require a release note comment that they are now double precision (and can show a fractional part) rather than bigint as before; also their underlying statistics functions now match the column definitions, instead of returning bigint microseconds. http://git.postgresql.org/pg/commitdiff/809e7e21af8cd24855f1802524a13bbaa823f929 - Kill some remaining references to SVR4 and univel. Both terms still appear in a few places, but I thought it best to leave those alone in context. http://git.postgresql.org/pg/commitdiff/50c2d6a1a63f04fd8c4553fc696c2c9e235b1a25 - Overdue code review for transaction-level advisory locks patch. Commit 62c7bd31c8878dd45c9b9b2429ab7a12103f3590 had assorted problems, most visibly that it broke PREPARE TRANSACTION in the presence of session-level advisory locks (which should be ignored by PREPARE), as per a recent complaint from Stephen Rees. More abstractly, the patch made the LockMethodData.transactional flag not merely useless but outright dangerous, because in point of fact that flag no longer tells you anything at all about whether a lock is held transactionally. This fix therefore removes that flag altogether. We now rely entirely on the convention already in use in lock.c that transactional lock holds must be owned by some ResourceOwner, while session holds are never so owned. Setting the locallock struct's owner link to NULL thus denotes a session hold, and there is no redundant marker for that. PREPARE TRANSACTION now works again when there are session-level advisory locks, and it is also able to transfer transactional advisory locks to the prepared transaction, but for implementation reasons it throws an error if we hold both types of lock on a single lockable object. Perhaps it will be worth improving that someday. Assorted other minor cleanup and documentation editing, as well. Back-patch to 9.1, except that in the 9.1 branch I did not remove the LockMethodData.transactional flag for fear of causing an ABI break for any external code that might be examining those structs. http://git.postgresql.org/pg/commitdiff/71b9549d053b2f0a9e76e829c917385841f84bee Heikki Linnakangas pushed: - Remove duplicate words in comments. Found these with grep -r "for for ". http://git.postgresql.org/pg/commitdiff/f291ccd43e06fdd7c55102975a0b2f38bc140b90 Magnus Hagander pushed: - Remove link to ODBCng project from the docs. This backatches Heikki's patch in 140a4fbf1a87891a79a2c61a08416828d39f286a to make sure the documentation on the website gets updated, since we're regularly receiving complains about this link. http://git.postgresql.org/pg/commitdiff/6d362ec209f0174f36a78936c5269f8d5f2cd26e == Rejected Patches (for now) == No one was disappointed this week :-) == Pending Patches == Ryan Kelly sent in another revision of the patch to allow breaking out of hung connection attempts in libpq. Noah Misch sent in a patch to prevent a theoretical torn page hazard in ginRedoUpdateMetapage(). Pavel Stehule sent in a patch to add new error fields to PL/pgsql. Laurenz Albe sent in another revision of the patch to analyze foreign tables which gets the FDW to show that a value was non-NULL but removed due to excess width by returning a value of length WIDTH_THRESHOLD+1. Peter Geoghegan sent in two revisions of a patch to latch up the WAL Writer, reducing wake-ups and thus saving electricity in a way that is more-or-less analogous to his previous work on the BGWriter. Magnus Hagander sent in a patch to reduce the number of "Unexpected EOF on client connection" messages clogging people's logs. Jan Urbanski sent in a patch to fix an issue with PL/PythonU where result set slicing was broken in the Python3 case.