== PostgreSQL Weekly News – September 26 2010 ==

== PostgreSQL Weekly News – September 26 2010 ==

New Survey: When will you go into production on 9.0?

== PostgreSQL Product News ==

MyJSQLView 3.23, a GUI tool that can be used with PostgreSQL, released.

pgAdmin III 1.12.0, a GUI management tool for PostgreSQL, released.

== PostgreSQL Jobs for September ==


== PostgreSQL Local ==

Surge 2010, the scalability and performance conference will be in
Baltimore, MD, USA on September 30 – October 1st, 2010.

Early bird registration for JDCon West 2010 is now open.

Call for Papers for PGDay.EU 2010 held on December 6-8 in Stuttgart,
Germany is open.

== 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@fetter.org, German language
to pwn@pgug.de, Italian language to pwn@itpug.org. Spanish language
to pwn@arpug.com.ar.

== Reviews ==

Hitoshi Harada reviewed Pavel Stehule’s WIP patches to add MEDIAN and

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.

– Convert cvsignore to gitignore, and add .gitignore for build

– Remove anonymous cvs instructions, and replace them with
instructions for git. Change other references from cvs to git as

– Add gitignore files for ecpg regression tests. Backpatch to 8.2 as
that’s how far the structure looks the same.

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.

– Remove various mentions of CVS from src/tools/RELEASE_CHANGES.

– In src/backend/commands/copy.c, typo fix. “CVS” is not the same
thing as “CSV”.

– Fix inconsistent capitalization of “PL/pgSQL”. Josh Kupershmidt.

– In contrib/xml2/.gitignore, add contrib/xml2/pgxml.sql to
.gitignore. Kevin Grittner.

– In contrib/fuzzystrmatch/fuzzystrmatch.c, in levenshtein_internal(),
describe algorithm a bit more clearly.

Tom Lane pushed:

– In README.git, trivial typo fix.

– Back-patch replacement of README.CVS with README.git. In older
branches, also git-ify the “make distdir” rule.

– In doc/src/sgml/maintenance.sgml, fix a missed explanation of
auto-analyze threshold, per Joe Miller.

– 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.

– 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.

– 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.

– Another gitignore straggler.

– In doc/src/sgml/.gitignore, add assorted other documentation build
targets to documentation gitignore.

– 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.

– In doc/src/sgml/sourcerepo.sgml, do some copy-editing on the Git
usage docs.

– 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.

– 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.

– 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.

– 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.

– 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

– 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.

– Replace doc references to install-win32 with install-windows.
Windows is not necessarily 32-bit, any more. As suggested by Mike

– Still more .gitignore cleanup. Fix overly-enthusiastic ignores, as
identified by git ls-files -i –exclude-standard

– 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.

– 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.

– Rename git_topo_order -> git_changelog, per discussion.

– 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.

– 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.

– 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.

– 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).

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.

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.

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

tables, this also requires allowing the existence of composite types
with zero attributes. Reviewed by KaiGai Kohei

== 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

Robert Haas and KaiGai Kohei traded versions of the security label

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:


Comments are closed.