== PostgreSQL Weekly News - September 26 2010 == New Survey: When will you go into production on 9.0? http://www.postgresql.org/community
== PostgreSQL Product News == MyJSQLView 3.23, a GUI tool that can be used with PostgreSQL, released. http://dandymadeproductions.com/projects/MyJSQLView/index.html pgAdmin III 1.12.0, a GUI management tool for PostgreSQL, released. http://www.pgadmin.org/download/ == PostgreSQL Jobs for September == http://archives.postgresql.org/pgsql-jobs/2010-09/threads.php == PostgreSQL Local == Surge 2010, the scalability and performance conference will be in Baltimore, MD, USA on September 30 - October 1st, 2010. http://omniti.com/surge/2010 Early bird registration for JDCon West 2010 is now open. https://www.postgresqlconference.org/content/pgwest-2010-registration Call for Papers for PGDay.EU 2010 held on December 6-8 in Stuttgart, Germany is open. http://2010.pgday.eu/callforpapers == 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 da...@fetter.org, German language to p...@pgug.de, Italian language to p...@itpug.org. Spanish language to p...@arpug.com.ar. == Reviews == Hitoshi Harada reviewed Pavel Stehule's WIP patches to add MEDIAN and PERCENTILE. ITAGAKI Takahiro reviewed SAKAMOTO Masahiko's patch to implement the foreign data wrapper parts of the SQL/MED specification. Marko (johto) Tiikkaja reviewed Boxuan Zhai's MERGE patch. == Applied Patches == Magnus Hagander pushed: - Rename README.CVS to README.git and change references in it. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=397761827aa3a3ac95b8a60dd21900f7bae88f05 - Convert cvsignore to gitignore, and add .gitignore for build targets. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=fe9b36fd59a771a98c0d33dd97039e6fc45d0f43 - Remove anonymous cvs instructions, and replace them with instructions for git. Change other references from cvs to git as well. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=726f9ddcd1b98b1c702e54b6dc40e57982c15036 - Add gitignore files for ecpg regression tests. Backpatch to 8.2 as that's how far the structure looks the same. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=6c137da018ad3ec52c872e0bb88c5968830e58d0 Robert Haas pushed: - git_topo_order script, to match up commits across branches. This script is intended to substitute for cvs2cl in generating release notes and scrutinizing what got back-patched to which branches. Script by me. Support for --since by Alex Hunsaker. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=1b984d43e54a969da26277d913a41ffd5ccfc1e8 - Remove various mentions of CVS from src/tools/RELEASE_CHANGES. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=8f00f73dc240a034668023f6d1ab18695bb1be32 - In src/backend/commands/copy.c, typo fix. "CVS" is not the same thing as "CSV". http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=01003ec3bcd78a261e9b017837c961a96024abd4 - Fix inconsistent capitalization of "PL/pgSQL". Josh Kupershmidt. - In contrib/xml2/.gitignore, add contrib/xml2/pgxml.sql to .gitignore. Kevin Grittner. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=0a8ed2cdb4f7a34f65976a87a2b08a39df17939a - In contrib/fuzzystrmatch/fuzzystrmatch.c, in levenshtein_internal(), describe algorithm a bit more clearly. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=12679b8bc908f941710bed185aa142ad5de539c6 Tom Lane pushed: - In README.git, trivial typo fix. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=eacc4a3b9a7ea8a2608cb95981646f947efed625 - Back-patch replacement of README.CVS with README.git. In older branches, also git-ify the "make distdir" rule. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=829f5b3571241cae2cc1a02923439cd0725d683c - In doc/src/sgml/maintenance.sgml, fix a missed explanation of auto-analyze threshold, per Joe Miller. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=2cdf6c155110cd068933e3be71f2af747e648fb0 - In src/backend/Makefile, the port/pg_latch.c symlink ought to be removed by make distclean. Not sure why these symlinks are removed here and not in the port/ Makefile, but I won't second-guess that choice right now. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=a6d4089d49a151496f6c26bf3537053aacd7f949 - In src/backend/optimizer/plan/README, some more cleanup of CVS keyword noise. Poking around for remaining occurrences of CVS keyword strings, I came across one that apparently reflects the use of a $Revision: ...$ string in the original input data. Dunno why anybody would be using that in an MTA's Received: lines, but there it is. Put it back to the way that it was originally, according to inspection of the CVS repo. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=538d685a1a266e2149587bf895d1b494afd37bd3 - add_cvs_markers isn't useful anymore. Removed. - pgcvslog isn't useful anymore, either. See git_topo_order instead. - Some more gitignore cleanups: cover contrib and PL regression test outputs. Also do some further work in the back branches, where quite a bit wasn't covered by Magnus' original back-patch. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=cc2c8152e624e4985660e7042960bf300bb78a39 - Another gitignore straggler. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=b49092d9d081a3dff3b8a82a5e45d0164824d2b5 - In doc/src/sgml/.gitignore, add assorted other documentation build targets to documentation gitignore. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=cb71efe164aea6d37a938fae9d9109dbd7d7dd64 - Fix remaining stray references to CVS. These are just cosmetic and don't seem worth back-patching far. I put them into 9.0 just because it was trivial to do so. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=651377933e031526379cae97034d1c50cdaad28c - In doc/src/sgml/sourcerepo.sgml, do some copy-editing on the Git usage docs. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=8687fbbe42a11d6fd4db5a89c15e5c967bd65757 - In src/interfaces/libpq/.gitignore, more fixes for libpq's .gitignore file. The previous patches failed to cover a lot of symlinks that are only added in platform-specific cases. Make the lists match what's in the Makefile for each branch. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=804b27613ba90bf67f903f114353d608e1d752d0 - Re-allow input of Julian dates prior to 0001-01-01 Andrew Dunstan. This was unintentionally broken in 8.4 while tightening up checking of ordinary non-Julian date inputs to forbid references to "year zero". Per bug #5672 from Benjamin Gigot. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=9aae81527f3174b9b6fd6366f04435310903dab2 - Another missing .gitignore entry ... - In src/backend/nodes/outfuncs.c, make _outPathInfo print the relid set of the path's parent rel. We can't actually print the parent RelOptInfo in toto, because that would lead to infinite recursion. But it's safe enough to reach into the parent and print its identifying relids, and that makes it a whole lot easier to figure out what a Path represents. Should have done this years ago. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=003788e81e7f72bc545b509e1517a672d891273b - In src/backend/optimizer/path/allpaths.c, avoid sharing subpath list structure when flattening nested AppendRels. In some situations the original coding led to corrupting the child AppendRel's subpaths list, effectively adding other members of the parent's list to it. This was usually masked because we never made any further use of the child's list, but given the right combination of circumstances, we could do so. The visible symptom would be a relation getting scanned twice, as in bug #5673 from David Schmitt. Backpatch to 8.2, which is as far back as the risky coding appears. The example submitted by David only fails in 8.4 and later, but I'm not convinced that there aren't any even-more-obscure cases where 8.2 and 8.3 would fail. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=ee63981c1fe26299162b9c7f1218d7e3ef802409 - In src/backend/commands/variable.c, prevent show_session_authorization from crashing when session_authorization hasn't been set. The only known case where this can happen is when show_session_authorization is invoked in an autovacuum process, which is possible if an index function calls it, as for example in bug #5669 from Andrew Geery. We could perhaps try to return a sensible value, such as the name of the cluster-owning superuser; but that seems like much more trouble than the case is worth, and in any case it could create new possible failure modes. Simply returning an empty string seems like the most appropriate fix. Back-patch to all supported versions, even those before autovacuum, just in case there's another way to provoke this crash. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=660fbec560335292db9e05e4ad5d46437bb806bc - In src/backend/commands/async.c, processIncomingNotify *must* reset notifyInterruptOccurred when called. This was broken in 9.0 by careless addition of an early-exit path. Bug report and diagnosis by Jeff Davis. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=a959c67cb73cf7cfe8b368632062c625c0e01858 - Replace doc references to install-win32 with install-windows. Windows is not necessarily 32-bit, any more. As suggested by Mike Toews. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=3186560f46b5076feb8776ae5e600b7ea0f31852 - Still more .gitignore cleanup. Fix overly-enthusiastic ignores, as identified by git ls-files -i --exclude-standard http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=54c88dee46ae63d1f183ed864b624881ed05d370 - Further fixes to the pg_get_expr() security fix in back branches. It now emerges that the JDBC driver expects to be able to use pg_get_expr() on an output of a sub-SELECT. So extend the check logic to be able to recurse into a sub-SELECT to see if the argument is ultimately coming from an appropriate column. Per report from Thomas Kellerer. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=3613d0893f526619471026b6b04bda70e31fe9e2 - Fix another join removal bug: the check on PlaceHolderVars was wrong. The previous coding would decide that join removal was unsafe upon finding a PlaceHolderVar that needed to be evaluated at the inner rel and then used above the join. However, this fails to cover the case of PlaceHolderVars that refer to both the inner rel and some other rels. Per bug report from Andrus. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=c8c03d72e10cab3cc47975b2689c8efbb4eade94 - Rename git_topo_order -> git_changelog, per discussion. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=ce1dcd468f8a728398424296165a8d87eb36f0d8 - Minor improvements to git_changelog. Avoid depending on Date::Calc, which isn't in a basic Perl installation, when we can equally well use Time::Local which is. Also fix the parsing of timestamps to take heed of the timezone. (It looks like cvs2git emitted all commit timestamps with zone GMT, so this refinement might've looked unnecessary when looking at converted data; but it's needed now.) Fix parsing of message bodies so that blank lines that may or may not get emitted by "git log" aren't confused with real data. This avoids strange formatting of the oldest commit on a branch. Check child-process exit status, so that we actually notice if "git log" fails, and so that we don't accumulate zombie children. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=901a5a786fa3cf107ceb11d2622cf8bb99221f3a - Fix some more bugs in git_changelog. 1. Don't forget the last (oldest) commit on the oldest branch. 2. When considering which commit to print next, if two alternatives have the same "distortion" score (which is actually the normal case, since generally the "distortion" is 0), then choose the later timestamp to print first. I don't know where Robert Haas got the idea to ignore timestamps and sort by branch age, but it wasn't a good idea: the resulting ordering of commits was just plain bizarre anywhere that some branches had many fewer commits than others, which is the typical situation for us. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=30d2e1005838c7ece353ef2ac269cfdc37e937be - Still more tweaking of git_changelog. 1. Don't assume there's only one candidate match; check them all and use the one with the closest timestamp. Avoids funny output when someone makes several successive commits with the same log message, as certain people have been known to do. 2. When the same commit (with the same SHA1) is reachable from multiple branch tips, don't report it for all the branches; instead report it only for the first such branch. Given our development practices, this case arises only for commits that occurred before a given branch split off from master. The original coding blamed old commits on *all* the branches, which isn't terribly useful; the new coding blames such a commit only on master. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=899beb78941aa955aac2e19cb82458c6f4c7dd52 - Improve git_changelog as per discussion with Robert Haas. 1. Resurrect the behavior where old commits on master will have Branch: labels for branches sprouted after the commit was made. I'm still dubious about this mode, but if you want it, say --post-date or -p. 2. Annotate the Branch: labels with the release or branch in which the commit was publicly released. For example, on a release branch you could see Branch: REL8_3_STABLE Release: REL8_3_2 [92c3a8004] 2008-03-29 00:15:37 +0000 showing that the fix was released in 8.3.2. Commits on master will usually instead have notes like Branch: master Release: REL8_4_BR [6fc9d4272] 2008-03-29 00:15:28 +0000 showing that this commit is ancestral to release branches 8.4 and later. If no Release: marker appears, the commit hasn't yet made it into any release. 3. Add support for release branches older than 7.4. 4. The implementation is improved by running git log on each branch only back to where the branch sprouts from master. This saves a good deal of time (about 50% of the runtime when generating the complete history). We generate the post-date-mode tags via a direct understanding that they should be applied to master commits made before the branch sprouted, rather than backing into them via matching (which isn't any too reliable when people used identical log messages for successive commits). http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=bf429cebd059764198580ca576608921e2022992 Heikki Linnakangas pushed: - In src/bin/pg_dump/pg_dump.c, initialize tableoid field correctly when dumping foreign data wrappers and servers. AFAICT it's harmless at the moment because nothing can depend on either, but as soon as we introduce an object type with such dependencies, tableoid needs to be set or pg_dump will fail to interpret the dependencies correctly. In theory, I guess the uninitialized garbage in tableoid could cause the object to be mistaken for some other object with same OID as well. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=7e8c25c66e9837d5dafeb2b3a0786611226af269 Alvaro Herrera pushed: - In config/prep_buildtree, prevent doc/src/sgml subdirs from being created, instead of deleting them after the fact. This is a more elegant fix for bug #5595. http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=fde5ce4fe2286d3c66cd77db0b7116566ac7b66b Peter Eisentraut pushed: - Fix man page markup for <cmdsynopsis> with multiple variants. Command synopses using <cmdsynopsis> with multiple variants previously used <sbr> to break lines between variants. The new man page toolchain introduced in 9.0 makes a mess out of that, and that markup was probably wrong all along, because <sbr> is supposed to break lines within a synopsis, not between them. So fix that by using multiple <cmdsynopsis> elements inside <refsynopsisdiv>. Backpatched to 9.0 http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=635de8365f0299cfa2db24c56abcfccb65d020f0 - Add ALTER TYPE ... ADD/DROP/ALTER/RENAME ATTRIBUTE. Like with tables, this also requires allowing the existence of composite types with zero attributes. Reviewed by KaiGai Kohei http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=e440e12c562432a2a695b8054964fb34e3bd823e == Rejected Patches (for now) == No one was disappointed this week :-) == Pending Patches == Jesper Krogh sent in a patch to allow the text search parser not to treat _ as a separation character. Jesper Krogh sent in a patch to allow tuning, on a per-table basis, the number of tuples per page before the tupletoaster acts. Pavel Stehule sent in five WIP patches to implement MEDIAN and PERCENTILE aggregates. Peter Eisentraut sent in a patch to trim trailing white space from psql output. Kevin Grittner sent in a patch to create a SHMList, a structure to be used later for, among other things, helping with the performance of truly serializable transctions. ITAGAKI Takahiro sent in another revision of the patch to add JSON support. Robert Haas and KaiGai Kohei traded versions of the security label patch. Ganesh Venkitachalam sent in two proof-of-concept patches to make the latch implementation more efficient. Kevin Grittner sent in another revision of the patch to add truly serializable snapshot isolation. Boxuan Zhai sent in two more revisions of the patch to add MERGE. Robert Haas sent in a patch to remove some faulty intelligence from the planner. Gurjeet Singh sent in a patch to speed up the prep_buildtree script, which is used in VPATH builds. ---------------------------(end of broadcast)--------------------------- -To unsubscribe from this list, send an email to: pgsql-announce-unsubscr...@postgresql.org