Skip site navigation (1) Skip section navigation (2)

== Wöchentlicher PostgreSQL Newsletter - 29. Mai 2011 ==

From: Andreas 'ads' Scherbaum <adsmail(at)wars-nicht(dot)de>
To: "pgsql-de-allgemein(at)postgresql(dot)org" <pgsql-de-allgemein(at)postgresql(dot)org>
Cc: "pgusers(at)postgres(dot)de" <pgusers(at)postgres(dot)de>
Subject: == Wöchentlicher PostgreSQL Newsletter - 29. Mai 2011 ==
Date: 2011-05-31 19:01:28
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-de-allgemein

Der Originalartikel befindet sich unter:

== Wöchentlicher PostgreSQL Newsletter - 29. Mai 2011 ==

== PostgreSQL Produkt Neuigkeiten ==

pgmp 1.0, ein Multi-Präzisions Rechensystem für PostgreSQL,
ist auf PGXN erschienen.

== PostgreSQL Jobs im Mai ==

== PostgreSQL Lokal ==

PG Session 2 über PostGIS findet am 23. Juni in Paris statt.
Der Call for Papers ist jetzt offen.

CHAR(11), die PostgreSQL Konferenz für Clustering, Hochverfügbarkeit
und Replikation hat jetzt die Registrierung eröffnet.
Die Konferenz findet am 11. und 12. Juli 2011 in Cambridge, UK statt.

PostgreSQL Conference China 2011 findet in Guangzhou am
15. und 16. Juli 2011 statt.

PDXPUG hostet PgDay am Sonntag, dem 24. Juli 2011, einen Tag
vor der OSCON in Portland, Oregon, USA. Details hier:

Postgres Open 2011, eine Konferenz die sich auf den Umbruch der
Datenbankindustrie durch PostgreSQL konzentriert, wird vom 14. bis 16.
September 2011 in Chicago, Illinois im Westin Michigan Avenue
Hotel stattfinden.

PostgreSQL Conference West (#PgWest) findet vom 27. bis 30. September
2011 im San Jose Convention Center in Jan Jose, Kalifornen, USA statt.

PostgreSQL Conference Europe 2011 findet vom 18. bis
21. Oktober in Amsterdam statt.

pgbr findet in Sao Paulo, Brazilien, am 3. und 4. November 2011 statt.

== PostgreSQL in den News ==

Planet PostgreSQL:

Dieser wöchentliche PostgreSQL Newsletter wurde erstellt von David Fetter.

Sende Neuigkeiten und Ankündigungen bis Sonntag, 15 Uhr Pazifischer
Zeit. Bitte sende englische Beiträge an david(at)fetter(dot)org, deutsche an
pwn(at)pgug(dot)de, italienische an pwn(at)itpug(dot)org, spanische an pwn(at)arpug(dot)com(dot)ar(dot)

== Reviews ==

== Angewandte Patches ==

Tom Lane pushed:

- Install defenses against overflow in BuildTupleHashTable().  The
   planner can sometimes compute very large values for numGroups, and
   in cases where we have no alternative to building a hashtable, such
   a value will get fed directly to BuildTupleHashTable as its nbuckets
   parameter.  There were two ways in which that could go bad.  First,
   BuildTupleHashTable declared the parameter as "int" but most callers
   were passing "long"s, so on 64-bit machines undetected overflow
   could occur leading to a bogus negative value.  The obvious fix for
   that is to change the parameter to "long", which is what I've done
   in HEAD.  In the back branches that seems a bit risky, though, since
   third-party code might be calling this function.  So for them, just
   put in a kluge to treat negative inputs as INT_MAX.  Second,
   hash_create can go nuts with extremely large requested table sizes
   (notably, my_log2 becomes an infinite loop for inputs larger than
   LONG_MAX/2).  What seems most appropriate to avoid that is to bound
   the initial table size request to work_mem.  This fixes bug #6035
   reported by Daniel Schreiber.  Although the reported case only
   occurs back to 8.4 since it involves WITH RECURSIVE, I think it's a
   good idea to install the defenses in all supported branches.

- Lobotomize typmod check in convert_tuples_by_position, back branches
   only.  convert_tuples_by_position was rejecting attempts to coerce a
   record field with -1 typmod to the same type with a non-default
   typmod.  This is in fact the "correct" thing to do (since we're just
   going to do a type relabeling, not invoke any length-conversion cast
   function); but it results in rejecting valid cases like bug #6020,
   because the source record's tupdesc is built from Params that don't
   have typmod assigned.  Since that's a regression from previous
   versions, which accepted this code, we have to do something about
   it.  In HEAD, I've fixed the problem properly by causing the Params
   to receive the correct typmods; but the potential for incidental
   behavioral changes seems high enough to make it unattractive to make
   the same change in released branches.  (And it couldn't be fixed
   that way in 8.4 anyway...)  Hence this patch just modifies
   convert_tuples_by_position to not complain if either the input or
   the output tupdesc has typmod -1.  This is still a shade tighter
   checking than we did before 9.0, since before that plpgsql failed to
   consider typmods at all when checking record compatibility.
   (convert_tuples_by_position is currently used only by plpgsql, so
   we're not affecting other behavior.) Back-patch to 8.4, since we
   recently back-ported convert_tuples_by_position into that branch.

- Make plpgsql complain about conflicting IN and OUT parameter names.
   The core CREATE FUNCTION code only enforces that IN parameter names
   are non-duplicate, and that OUT parameter names are separately
   non-duplicate.  This is because some function languages might not
   have any confusion between the two.  But in plpgsql, such names are
   all in the same namespace, so we'd better disallow it.  Per a recent
   complaint from Dan S.  Not back-patching since this is a small issue
   and the change could cause unexpected failures if we started to
   enforce it in a minor release.

- Avoid uninitialized bits in the result of QTN2QT().  Found with
   additional valgrind testing.  Noah Misch

- Adjust configure's probe for libselinux so it rejects too-old
   versions.  We need at least version 2.0.93, so probe for a function
   that was added in that version.  Kaigai Kohei

- Cleanup for pull-up-isReset patch.  Clear isReset before, not after,
   calling the context-specific alloc method, so as to preserve the
   option to do a tail call in MemoryContextAlloc (and also so this
   code isn't assuming that a failed alloc call won't have changed the
   context's state before failing).  Fix missed direct invocation of
   reset method.  Reformat a comment.

- Grammar cleanup for src/test/isolation/README.  Josh Kupershmidt

- Suppress extensions in partial dumps.  We initially had pg_dump emit
   CREATE EXTENSION commands unconditionally.  However, pg_dump has
   long been in the habit of not dumping procedural language
   definitions when a --schema or --table switch is given.  It seems
   appropriate to handle extensions the same way, since like PLs they
   are SQL objects that are not in any particular schema.  Per
   complaint from Adrian Schreyer.

- Adjust configure to use "+Olibmerrno" with HP-UX C compiler, if
   possible.  This is reported to be necessary on some versions of that
   OS.  In service of this, cause PGAC_PROG_CC_CFLAGS_OPT to reject
   switches that result in compiler warnings, since on yet other
   versions of that OS, the switch does nothing except provoke a
   warning.  Report and patch by Ibrar Ahmed, further tweaking by me.

- Make decompilation of optimized CASE constructs more robust.  We had
   some hacks in ruleutils.c to cope with various odd transformations
   that the optimizer could do on a CASE foo WHEN "CaseTestExpr = RHS"
   clause.  However, the fundamental impossibility of covering all
   cases was exposed by Heikki, who pointed out that the "=" operator
   could get replaced by an inlined SQL function, which could contain
   nearly anything at all.  So give up on the hacks and just print the
   expression as-is if we fail to recognize it as "CaseTestExpr = RHS".
   (We must cover that case so that decompiled rules print correctly;
   but we are not under any obligation to make EXPLAIN output be 100%
   valid SQL in all cases, and already could not do so in some other
   cases.)  This approach requires that we have some printable
   representation of the CaseTestExpr node type; I used
   "CASE_TEST_EXPR".  Back-patch to all supported branches, since the
   problem case fails in all.

- Preserve caller's memory context in ProcessCompletedNotifies().
   This is necessary to avoid long-term memory leakage, because the
   main loop in PostgresMain expects to be executing in MessageContext,
   and hence is a bit sloppy about freeing stuff that is only needed
   for the duration of processing the current client message.  The
   known case of an actual leak is when encoding conversion has to be
   done on the incoming command string, but there might be others.  Per
   report from Per-Olov Esgard.  Back-patch to 9.0, where the bug was
   introduced by the LISTEN/NOTIFY rewrite.

- Improve corner cases in pg_ctl's new wait-for-postmaster-startup
   code.  With "-w -t 0", we should report "still starting up", not
   "ok".  If we fall out of the loop without ever being able to call
   PQping (because we were never able to construct a connection
   string), report "no response", not "ok".  This gets rid of corner
   cases in which we'd claim the server had started even though it had
   not.  Also, if the file is not there at any point
   after we've waited 5 seconds, assume the postmaster has failed and
   report that, rather than almost-certainly-fruitlessly continuing to
   wait.  The pidfile should appear almost instantly even when there is
   extensive startup work to do, so 5 seconds is already a very
   conservative figure.  This part is per a gripe from MauMau --- there
   might be better ways to do it, but nothing simple enough to get done
   for 9.1.

- Fix null-dereference crash in parse_xml_decl().  parse_xml_decl's
   header comment says you can pass NULL for any unwanted output
   parameter, but it failed to honor this contract for the "standalone"
   flag.  The only currently-affected caller is xml_recv, so the net
   effect is that sending a binary XML value containing a standalone
   parameter in its xml declaration would crash the backend.  Per bug
   #6044 from Christopher Dillard.  In passing, remove useless
   initializations of parse_xml_decl's output parameters in xml_parse.
   Back-patch to 8.3, where this code was introduced.

Peter Eisentraut pushed:

- Message style improvements

- Add a "local" replication sample entry.  Also adjust alignment a bit
   to distinguish commented out from comment.

- Message improvements

- Put options in some sensible order.  For the --help output and
   reference pages of pg_dump, pg_dumpall, pg_restore, put the options
   in some consistent, mostly alphabetical, and consistent order,
   rather than newest option last or something like that.

- Remove literal tabs from message strings

- Avoid compiler warning when building without zlib.

- Allow pg_basebackup compressed tar output to stdout

- Correct description of log_connections and log_disconnections.  The
   previous claim when these parameters could be changed was incorrect.
   Fujii Masao

- Add pg_basebackup -z option for compression with default level

Robert Haas pushed:

- Improve hash_array() logic for combining hash values.  The new logic
   is less vulnerable to transpositions.  This invalidates the contents
   of hash indexes built with the old functions; hence, bump
   catversion.  Dean Rasheed

Heikki Linnakangas pushed:

- Fix integer overflow in text_format function, reported by Dean
   Rasheed.  In the passing, clarify the comment on why text_format_nv
   wrapper is needed.

- Replace strdup() with pstrdup(), to avoid leaking memory.  It's been
   like this since the seg module was introduced, so backpatch to 8.2
   which is the oldest supported version.

- Check the return code of pthread_create().  Otherwise we go into an
   infinite loop if it fails, which is what what happened on my HP-UX
   box. (I think the reason it failed on that box is a misconfiguration
   on my behalf, but that's no reason to hang.)

Bruce Momjian pushed:

- In pg_upgrade, do case-insensitive checks of locale, encoding, and
   ctype because these are often inconsistently capitalized.

- Add C comment about why we don't spell out "month" in interval

Andrew Dunstan pushed:

- Convert builddoc.bat into a perl script that actually works.  The
   old .bat file wasn't working for reasons that are unclear, and which
   it did not seem worth the trouble to ascertain.  The new perl script
   has been tested and is known to work.  Soon it will be tested
   regularly on the buildfarm.  The .bat file is kept as a simple
   wrapper for the perl script.

Peter Eisentraut pushed:

- Drop "meaning" column from error code table.  This is currently the
same as the condition name, so it doesn't add any value, only clutter.

Alvaro Herrera pushed:

- Remove unused variable.  Cédric Villemain

== Abgelehnte Patches (bis jetzt) ==

No one was disappointed this week :-)

== Eingesandte Patches ==

Robert Haas sent in another revision of the patch to make the
visibility map crash-safe.

Alexander Korotkov sent in two more revisions of the patch to collect
statistics for array columns.

Aaron Swenson sent in a patch which changes the pg_ctl exit status
when the server is not running to 3, which the Linux Standard Base
Core Specification 3.1 requires.

Alexander Korotkov sent in a patch for GiST which moves the
GISTInsertStack structure from parent to child.  This simplifies
coding and allows maintaining parts of the tree in GISTInsertStack

Jaime Casanova sent in two more revisions of the patch to add a new

Leonardo Francalanci sent in three more revisions of the patch to use
less space in xl_xact_commit.

Josh Kupershmidt sent in another revision of the patch to allow \dd to
show constraint comments.

Kevin Grittner sent in patches to convert from row to tuple locking,
and to document same.

Noah Misch sent in a patch to further help the domain/array mismatch.

Fujii Masao sent in a WIP patch to allow for cascading replication.

Peter Geoghegan sent in two more revisions of the patch which
monitiors and acts on postmaster death via latches on both *n*x and

Stephen Frost sent in a PoC patch to Pre-allocate ListCells.

Tom Lane sent in a patch to change how vacuum analyzes reltuples.

MauMau sent in a patch to help distinguish PostgreSQL instances in the
Windows event log.

Josh Kupershmidt sent in a patch to enable some new tab completions
for COMMENT ON in psql.

Jeff Janes sent in a patch to add an option to pgbench which stresses
the executor.

			Andreas 'ads' Scherbaum
Deutsche PostgreSQL User Group:

pgsql-de-allgemein by date

Next:From: Andreas 'ads' ScherbaumDate: 2011-06-06 23:40:19
Subject: == Wöchentlicher PostgreSQL Newsletter - 05. Juni 2011 ==
Previous:From: Enrico WeigeltDate: 2011-05-30 07:35:41
Subject: Re: [pgsql-de-allgemein?==?iso-8859-1?B?XSA9PSBX9mNoZW50bGljaGU=?==?iso-8859-1?Q?r PostgreSQL Newsletter - 22. Mai 2011 ==

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group