== Wöchentlicher PostgreSQL Newsletter - 24. Juli 2011 ==

== Wöchentlicher PostgreSQL Newsletter - 24. Juli 2011 ==

am 26.07.2011 00:11:21 von adsmail

Der Originalartikel befindet sich unter:


== Wöchentlicher PostgreSQL Newsletter - 24. Juli 2011 ==

== PostgreSQL Produkt Neuigkeiten ==

pgbuildfarm Client 4.6 ist erschienen.

== PostgreSQL Jobs im Juli ==

http://archives.postgresql.org/pgsql-jobs/2011-07/threads.ph p

== PostgreSQL Lokal ==

PGDay Porto Alegre findet am 19. August 19 2011
in Porto Alegre, RS, Brasilien statt.

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.

PG-Day Denver 2011 findet am Freitag, dem 21. Oktober 2011 auf dem
Auraria Campus in der Nähe von Downtown Denver, Colorado statt.

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.

PGConf.DE 2011 ist die Deutschsprachige PostgreSQL Konferenz
und wird am 11. November 2011 im Rheinischen Industriemuseum
in Oberhausen, Deutschland, stattfinden. Der Call for Papers ist offen.

== PostgreSQL in den News ==

Planet PostgreSQL: http://planet.postgresql.org/

Dieser wöchentliche PostgreSQL Newsletter wurde erstellt von David Fet=

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

== Reviews ==

== Angewandte Patches ==

Robert Haas pushed:

- Add pg_opfamily_is_visible. We already have similar functions for
many other object types, including operator classes, so it seems
like we should have this one, too. Extracted from a larger patch by
Josh Kupershmidt
http://git.postgresql.org/pg/commitdiff/b59d2fe4970e689a50e8 02960ef0812acaf=

- Create a "fast path" for acquiring weak relation locks. When an
AccessShareLock, RowShareLock, or RowExclusiveLock is requested on
an unshared database relation, and we can verify that no conflicting
locks can possibly be present, record the lock in a per-backend
queue, stored within the PGPROC, rather than in the primary lock
table. This eliminates a great deal of contention on the lock
manager LWLocks. This patch also refactors the interface between
GetLockStatusData() and pg_lock_status() to be a bit more abstract,
so that we don't rely so heavily on the lock manager's internal
representation details. The new fast path lock structures don't
have a LOCK or PROCLOCK structure to return, so we mustn't depend on
that for purposes of listing outstanding locks. Review by Jeff
http://git.postgresql.org/pg/commitdiff/3cba8999b343648c4c52 8432ab3d5140019=

- Avoid index rebuild for no-rewrite ALTER TABLE .. ALTER TYPE. Noah
Misch. Review and minor cosmetic changes by me.
http://git.postgresql.org/pg/commitdiff/367bc426a1c22b9f6bad b06cd41fc438fd0=

- Remove superfluous variable. Reported by Peter Eisentraut.
http://git.postgresql.org/pg/commitdiff/cdd61237d6265fa355af a772ca3eee39e49=

- Some refinement for the "fast path" lock patch. 1. In
GetLockStatusData, avoid initializing instance before we've ensured
that the array is large enough. Otherwise, if repalloc moves the
block around, we're hosed. 2. Add the word "Relation" to the name
of some identifiers, to avoid assuming that the fast-path mechanism
will only ever apply to relations (though these particular parts
certainly will). Some of the macros could possibly use similar
treatment, but the names are getting awfully long already. 3. Add a
missing word to comment in AtPrepare_Locks().
http://git.postgresql.org/pg/commitdiff/8e5ac74c1249820ca554 81223a95b9124b4=

- Minor improvement to pg_seclabel documentation. This is a bit more
consistent with the way pg_description is documented, and also
include a useful cross-link.
http://git.postgresql.org/pg/commitdiff/550cd074f9436c0500c1 718e792d3d72a30=

- Improve sepgsql and SECURITY LABEL documentation. KaiGai Kohei,
based on feedback from Yeb Havinga, with some corrections by me.
http://git.postgresql.org/pg/commitdiff/d79a601fd9ec59772395 d16b33fe7929602=

- Support SECURITY LABEL on databases, tablespaces, and roles. This
requires a new shared catalog, pg_shseclabel. Along the way, fix
the security_label regression tests so that they don't monkey with
the labels of any pre-existing objects. This is unlikely to matter
in practice, since only the label for the "dummy" provider was being
manipulated. But this way still seems cleaner. KaiGai Kohei, with
fairly extensive hacking by me.
http://git.postgresql.org/pg/commitdiff/463f2625a5fb183b6a89 25ccde98bb3889f=

- Unbreak unlogged tables. I broke this in commit
5da79169d3e9f0fab47da03318c44075b3f824c5, which was obviously
insufficiently well tested. Add some regression tests in the hope
of making future slip-ups more likely to be noticed.
http://git.postgresql.org/pg/commitdiff/6f1be5a67a758499beab 0082b6e63b30409=

Peter Eisentraut pushed:

- Remove claim that the project is not represented in the SQL working
group We have a few people involved there now.
http://git.postgresql.org/pg/commitdiff/7ed8f6c517ba6bada6bf b9a4dd4216e3b97=

- Note that information_schema.sql_languages was removed in SQL:2008
http://git.postgresql.org/pg/commitdiff/3835855589d8fe8bd5ea 0fa51a5a5397562=

- Put inline declaration before return type. gcc -Wextra complains
that the other way around is obsolescent, and this was the only
place where it was written in this order.
http://git.postgresql.org/pg/commitdiff/bf6be7af2532da6674dc b9335c0953044a7=

- Change debug message from ereport to elog
http://git.postgresql.org/pg/commitdiff/30f854537d0d2e922097 6fe7016c909daab=

- Fix typo
http://git.postgresql.org/pg/commitdiff/6307fff3586294214e3f 256035b82bbba9a=

- Change EDITOR_LINENUMBER_SWITCH to an environment variable. Also
change "switch" to "arg" because "switch" is a bit of a sloppy term.
So the environment variable is called PSQL_EDITOR_LINENUMBER_ARG.
Set "+" as hardcoded default value on Unix (since "vi" is the
hardcoded default editor), so many users won't have to configure
this at all. Move the documentation around a bit to centralize the
editor configuration under environment variables, rather than
repeating bits of it under every backslash command that invokes an
http://git.postgresql.org/pg/commitdiff/79b3ca06d820032ad844 46e0a021b564221=

Michael Meskes pushed:

- Made ecpglib write double with a precision of 15 digits. Patch
originally by Akira Kurosawa .
http://git.postgresql.org/pg/commitdiff/8f8a273c4d2433de57f6 f0356f44ab47b73=

- Adapted expected result for latest change to ecpglib.
http://git.postgresql.org/pg/commitdiff/3406dd22fdd794d90c75 a1272a57db8faa7=

Tom Lane pushed:

- Add GET STACKED DIAGNOSTICS plpgsql command to retrieve exception
info. This is more SQL-spec-compliant, more easily extensible, and
better performing than the old method of inventing special
variables. Pavel Stehule, reviewed by Shigeru Hanada and David
http://git.postgresql.org/pg/commitdiff/3d4890c0c5d27dfdf7d1 a8816d7bdcdba3c=

- Rewrite libxml error handling to be more robust. libxml reports
some errors (like invalid xmlns attributes) via the error handler
hook, but still returns a success indicator to the library caller.
This causes us to miss some errors that are important to report.
Since the "generic" error handler hook doesn't know whether the
message it's getting is for an error, warning, or notice, stop using
that and instead start using the "structured" error handler hook,
which gets enough information to be useful. While at it, arrange to
save and restore the error handler hook setting in each libxml-using
function, rather than assuming we can set and forget the hook. This
should improve the odds of working nicely with third-party libraries
that also use libxml. In passing, volatile-ize some local variables
that get modified within PG_TRY blocks. I noticed this while
testing with an older gcc version than I'd previously tried to
compile xml.c with. Florian Pflug and Tom Lane, with extensive
review/testing by Noah Misch
http://git.postgresql.org/pg/commitdiff/cacd42d62cb2ddf32135 b151f627780a550=

- Ensure that xpath() escapes special characters in string values.
Without this it's possible for the output to not be legal XML, as
illustrated by the added regression test cases. NB: this change
will need to be called out as an incompatibility in the 9.2 release
notes, since it's possible somebody was relying on the old behavior,
even though it's clearly wrong. Florian Pflug, reviewed by Radoslaw
http://git.postgresql.org/pg/commitdiff/aaf15e5c1cf8d2c27d2f 9841343f0002776=

- Make xpath() do something useful with XPath expressions that return
scalars. Previously, xpath() simply returned an empty array if the
expression did not yield a node set. This is useless for
expressions that return scalars, such as one with name() at the top
level. Arrange to return the scalar value as a single-element xml
array, instead. (String values will be suitably escaped.) This
change will also cause xpath_exists() to return true, not false, for
such expressions. Florian Pflug, reviewed by Radoslaw Smogura
http://git.postgresql.org/pg/commitdiff/0ce7676aa03a2501fde9 49fea211ba5cd84=

- Fix PQsetvalue() to avoid possible crash when adding a new tuple.
PQsetvalue unnecessarily duplicated the logic in pqAddTuple, and
didn't duplicate it exactly either --- pqAddTuple does not care what
is in the tuple-pointer array positions beyond the last valid entry,
whereas the code in PQsetvalue assumed such positions would contain
NULL. This led to possible crashes if PQsetvalue was applied to a
PGresult that had previously been enlarged with pqAddTuple, for
instance one built from a server query. Fix by relying on
pqAddTuple instead of duplicating logic, and not assuming anything
about the contents of res->tuples[res->ntups]. Back-patch to 8.4,
where PQsetvalue was introduced. Andrew Chernow
http://git.postgresql.org/pg/commitdiff/a9f0dbc39df88ea76723 52d3e7070d26034=

- Rethink behavior of CREATE OR REPLACE during CREATE EXTENSION. The
original implementation simply did nothing when replacing an
existing object during CREATE EXTENSION. The folly of this was
exposed by a report from Marc Munro: if the existing object belongs
to another extension, we are left in an inconsistent state. We
should insist that the object does not belong to another extension,
and then add it to the current extension if not already a member.
http://git.postgresql.org/pg/commitdiff/988cccc620dd8c16d77f 88ede167b220561=

disables an entirely unnecessary "sanity check" that causes failures
in nonblocking mode, because OpenSSL complains if we move or compact
the write buffer. The only actual requirement is that we not modify
pending data once we've attempted to send it, which we don't. Per
testing and research by Martin Pihlak, though this fix is a lot
simpler than his patch. I put the same change into the backend,
although it's less clear whether it's necessary there. We do use
nonblock mode in some situations in streaming replication, so seems
best to keep the same behavior in the backend as in libpq.
Back-patch to all supported releases.
http://git.postgresql.org/pg/commitdiff/d0c23026b2499ba9d679 7359241ade076a5=

- Improve libpq's error reporting for SSL failures. In many cases,
pqsecure_read/pqsecure_write set up useful error messages, which
were then overwritten with useless ones by their callers. Fix this
by defining the responsibility to set an error message to be
entirely that of the lower-level function when using SSL.
Back-patch to 8.3; the code is too different in 8.2 to be worth the
http://git.postgresql.org/pg/commitdiff/fee476da952a1f02f7cc f6e233fb4824c2b=

- Fix previous patch so it also works if not USE_SSL (mea culpa). On
balance, the need to cover this case changes my mind in favor of
pushing all error-message generation duties into the two fe-secure.c
routines. So do it that way.
http://git.postgresql.org/pg/commitdiff/bcf23ba4bf8323f87516 8c5dbc93265a140=

Simon Riggs pushed:

- Cascading replication feature for streaming log-based replication.
Standby servers can now have WALSender processes, which can work
with either WALReceiver or archive_commands to pass data. Fully
updated docs, including new conceptual terms of sending server,
upstream and downstream servers. WALSenders terminated when promote
to master. Fujii Masao, review, rework and doc rewrite by Simon
http://git.postgresql.org/pg/commitdiff/5286105800c7d5902f98 f32e11b209c471c=

- Introduce sending servers as new category for replication params.
Fujii Masao
http://git.postgresql.org/pg/commitdiff/4bd8ed31b76fde16ee00 c123751e25019e4=

- Minor doc additions for cascading replication.
http://git.postgresql.org/pg/commitdiff/6ba77bce9378cb9c5fb8 9a4d30bf77c2a17=

- Remove O(N^2) performance issue with multiple SAVEPOINTs.
Subtransaction locks now released en masse at main commit, rather
than repeatedly re-scanning for locks as we ascend the nested
transaction tree. Split transaction state TBLOCK_SUBEND into two
states, TBLOCK_SUBCOMMIT and TBLOCK_SUBRELEASE to allow the commit
path to be optimised using the existing code in
ResourceOwnerRelease() which appears to have been intended for this
usage, judging from comments therein.
http://git.postgresql.org/pg/commitdiff/7cb7122800ec996d4849 ce9b4ad3065db19=

Alvaro Herrera pushed:

- Add expected regress output on stricter isolation levels. These new
files allow the new FK tests on isolationtester to pass on the
serializable and repeatable read isolation levels (which are
untested by the buildfarm). Author: Kevin Grittner Reviewed by Noah
http://git.postgresql.org/pg/commitdiff/a0eae1a2eeb6c0e9deff eccad2f9921d8e5=

- Make isolationtester more robust on locked commands. Noah Misch
diagnosed the buildfarm problems in the isolation tests partly as
failure to differentiate backends properly; the old code was using
backend IDs, which is not good enough because a new backend might
use an already used ID. Use PIDs instead. Also, the code was
purposely careless about other concurrent activity, because it isn't
expected; and in fact, it doesn't affect the vast majority of the
time. However, it can be observed that autovacuum can block tables
for long enough to cause sporadic failures. The new code accounts
for that by ignoring locks held by processes not explicitly declared
in our spec file. Author: Noah Misch
http://git.postgresql.org/pg/commitdiff/c8dfc892327b1a1e14ef e110b0f1f267ef5=

- Increase deadlock_timeout to 100ms in FK isolation tests. The
previous value of 20ms is dangerously close to the time actually
spent just waiting for the deadlock to happen, so on occasion it
causes the test to fail simply because the other session didn't get
to run early enough, not managing to cause the deadlock that needs
to be detected. With this new value, it's expected that most
machines on normal load will be able to pass the test. Author: Noah
http://git.postgresql.org/pg/commitdiff/d6db0e4e0e382cd5683a 767424d05a0361a=

Bruce Momjian pushed:

- In pg_upgrade, use pg_strudup(), for consistency.
http://git.postgresql.org/pg/commitdiff/6b43fddee4cbc1bca715 46e15e898d19bee=

- In pg_upgrade, fix the -l/log option to work on Windows. Also,
double-quote the log file name in all places, to allow (on all
platforms) log file names with spaces. Back patch to 9.0 and 9.1.
http://git.postgresql.org/pg/commitdiff/17a16eeb7c4fd0c6dce8 0521247a20d7670=

- In pg_upgrade, add C comment about why we don't try to do shared
file writes for logging.
http://git.postgresql.org/pg/commitdiff/43aa40e1551b9e8d30b3 76de6d6a9b976ae=

- In pg_upgrade on Windows, check if the directory is writable by
actually creating and removing a file because access() doesn't work
on that platform. Backpatch to 9.1 where this check was added.
http://git.postgresql.org/pg/commitdiff/081a5518c0a7dcccfc76 a12ae9d593648b6=

Andrew Dunstan pushed:

- Unbreak Windows builds broken by EDITOR_LINENUMBER_ARG change.
http://git.postgresql.org/pg/commitdiff/e399eb74d96270bf1d4a 0bb9f4503cac3d9=

== Abgelehnte Patches (bis jetzt) ==

No one was disappointed this week :-)

== Eingesandte Patches ==

Alexander Korotkov sent in two more revisions of the patch to do fast
GiST index builds.

Peter Eisentraut sent in a patch to allow reporting of hostnames from
pg_hba.conf in error messages.

KaiGai Kohei and Yeb Havinga traded revisions of the patch to create a
userspace access vector cache.

Josh Kupershmidt sent in two more revisions of the patch to allow
psql's \dd to show constraint comments.

Robert Haas sent in another revision of a patch to enable lazy vxid

Kevin Grittner sent in two revisions of a patch to fix bug 6123.

Robert Haas sent in a patch to eliminate sinval in several places
where it was slowing things down.

Alvaro Herrera sent in a patch to catalog NOT NULL constraints.

Josh Kupershmidt sent in a patch to fix some wrong descriptions in
\d+, and an patch for 8.4 which documents the fact that it's possible
to put comments on index columns.

Hitoshi Harada and Yeb Havinga traded patches to optimize aggregates
in JOINs.

Josh Kupershmidt sent in another revision of the patch to fix describe
comments in psql.

Laurenz Albe sent in a doc patch explaining more about how foreign
data wrappers work from the implementor's point of view.

Florian Pflug sent in a patch, per discussion around a similar issue
in JSON, which changes behavior in cases of non-UTF8-encoded content.

Andrew Dunstan sent in a patch to clean up python usage in the source
code for PL/PythonU.

Andreas 'ads' Scherbaum
Deutsche PostgreSQL User Group: http://www.pgug.de/
DPWN: http://andreas.scherbaum.la/blog/categories/18-PWN

Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein@postgresql.org)
To make changes to your subscription: