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

== Wöchentlicher PostgreSQL Newsletter - 24. Juli 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 - 24. Juli 2011 ==
Date: 2011-07-25 22:11:21
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-de-allgemein
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 ==

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

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

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

- 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

- Avoid index rebuild for no-rewrite ALTER TABLE .. ALTER TYPE.  Noah
   Misch.  Review and minor cosmetic changes by me.

- Remove superfluous variable.  Reported by Peter Eisentraut.

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

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

- Improve sepgsql and SECURITY LABEL documentation.  KaiGai Kohei,
   based on feedback from Yeb Havinga, with some corrections by me.

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

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

Peter Eisentraut pushed:

- Remove claim that the project is not represented in the SQL working
   group We have a few people involved there now.

- Note that information_schema.sql_languages was removed in SQL:2008

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

- Change debug message from ereport to elog

- Fix typo

- 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

Michael Meskes pushed:

- Made ecpglib write double with a precision of 15 digits.  Patch
   originally by Akira Kurosawa <kurosawa-akira(at)mxc(dot)nes(dot)nec(dot)co(dot)jp>.

- Adapted expected result for latest change to ecpglib.

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

- 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

- 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

- 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

- 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

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

   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.

- 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

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

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

- Introduce sending servers as new category for replication params.
   Fujii Masao

- Minor doc additions for cascading replication.

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

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

- 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

- 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

Bruce Momjian pushed:

- In pg_upgrade, use pg_strudup(), for consistency.

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

- In pg_upgrade, add C comment about why we don't try to do shared
   file writes for logging.

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

Andrew Dunstan pushed:

- Unbreak Windows builds broken by EDITOR_LINENUMBER_ARG change.

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

pgsql-de-allgemein by date

Next:From: Andreas 'ads' ScherbaumDate: 2011-08-01 20:11:04
Subject: == Wöchentlicher PostgreSQL Newsletter - 31. Juli 2011 ==
Previous:From: Björn HäuserDate: 2011-07-24 17:05:00
Subject: FroSCon 2011 - Freitag Abend Event

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