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

== Wöchentlicher PostgreSQL Newsletter - 05. Juni 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>, "pgusers(at)postgres(dot)de" <pgusers(at)postgres(dot)de>
Subject: == Wöchentlicher PostgreSQL Newsletter - 05. Juni 2011 ==
Date: 2011-06-06 23:40:19
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-de-allgemein

Der Originalartikel befindet sich unter:

== Wöchentlicher PostgreSQL Newsletter - 05. Juni 2011 ==

Die Austin Texas PUG trifft sich am Mittwoch, dem 8. Juni
um 18:30 Uhr. Pizza wird für angemeldete Personen verfügbar
sein. Anmeldung unter austinpug AT postgresql DOT org.
Details unter:

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

devart dotConnect für PostgreSQL, ein
ADO.NET Treiber, ist erschienen.

MyJSQLView 3.29, ein GUI Werkzeug welches mit PostgreSQL verwendet
werden kann, ist erschienen.

PostgreDAC 2.6.3, ein Delphi/C++ Builder für PostgreSQL,
ist erschienen.

Slony-ctl 1.2.0, ein Set von Skripts zum Erstellen und Managen
von Slony Clustern, ist erschienen.

== PostgreSQL Jobs im Juni ==

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

Alvaro Herrera pushed:

- Make message more consistent

- Remove usage of &PL_sv_undef in hashes and arrays.  According to
   perlguts, &PL_sv_undef is not the right thing to use in those cases
   because it doesn't behave the same way as an undef value via Perl
   code.  Seems the intuitive way to deal with undef values is subtly
   enough broken that it's hard to notice when misused.  The broken
   uses got inadvertently introduced in commit
   87bb2ade2ce646083f39d5ab3e3307490211ad04 by Alexey Klyukin, Alex
   Hunsaker and myself on 2011-02-17; no backpatch is necessary.  Per
   testing report from Greg Mullane.  Author: Alex Hunsaker

- Fix pg_get_constraintdef to cope with NOT VALID constraints.  This
   case was missed when NOT VALID constraints were first introduced in
   commit 722bf7017bbe796decc79c1fde03e7a83dae9ada by Simon Riggs on
   2011-02-08.  Among other things, it causes pg_dump to omit the NOT
   VALID flag when dumping such constraints, which may cause them to
   fail to load afterwards, if they contained values failing the
   constraint.  Per report from Thom Brown.

Heikki Linnakangas pushed:

- The row-version chaining in Serializable Snapshot Isolation was
   still wrong.  On further analysis, it turns out that it is not
   needed to duplicate predicate locks to the new row version at
   update, the lock on the version that the transaction saw as visible
   is enough.  However, there was a different bug in the code that
   checks for dangerous structures when a new rw-conflict happens.  Fix
   that bug, and remove all the row-version chaining related code.
   Kevin Grittner & Dan Ports, with some comment editorialization by

- SSI comment fixes and enhancements.  Notably, document that the
   conflict-out flag actually means that the transaction has a conflict
   out to a transaction that committed before the flagged transaction.
   Kevin Grittner

Magnus Hagander pushed:

- Don't include local line on platforms without support.  Since we now
   include a sample line for replication on local connections in
   pg_hba.conf, don't include it where local connections aren't
   available (such as on win32).  Also make sure we use authmethodlocal
   and not authmethod on the sample line.

- Refuse "local" lines in pg_hba.conf on platforms that don't support
   it.  This makes the behavior compatible with that of hostssl, which
   also throws an error when there is no SSL support included.

- Don't recommend upgrading to latest available Windows SDK.  We only
   support up to version 7.0, so don't recommend upgrading past it.
   The rest of the documentation around this was already updated, but
   one spot was missed.

Peter Eisentraut pushed:

- Suppress foreign data wrappers and foreign servers in partial dumps.
   This is consistent with the behavior of other global objects such as
   languages and extensions.  Omitting foreign servers also omits the
   respective user mappings.

- Recode non-ASCII characters in source to UTF-8.  For consistency,
   have all non-ASCII characters from contributors' names in the source
   be in UTF-8.  But remove some other more gratuitous uses of
   non-ASCII characters.

- Use entities to encode non-ASCII characters in SGML documentation.
   This has already been the case for the most part; just some cases
   had slipped through.

- Some copy editing of the release notes

- Sort COMMENT synopsis and add more examples.  Josh Kupershmidt

- Truncate id to <=44 characters.  This is the original DocBook SGML
   limit, but apparently most installations have changed it or ignore
   it, which is why few people have run into this problem.  pointed out
   by Brendan Jurd

Tom Lane pushed:

- Fix VACUUM so that it always updates pg_class.reltuples/relpages.
   When we added the ability for vacuum to skip heap pages by
   consulting the visibility map, we made it just not update the
   reltuples/relpages statistics if it skipped any pages.  But this
   could leave us with extremely out-of-date stats for a table that
   contains any unchanging areas, especially for TOAST tables which
   never get processed by ANALYZE.  In particular this could result in
   autovacuum making poor decisions about when to process the table, as
   in recent report from Florian Helmberger.  And in general it's a bad
   idea to not update the stats at all.  Instead, use the previous
   values of reltuples/relpages as an estimate of the tuple density in
   unvisited pages.  This approach results in a "moving average"
   estimate of reltuples, which should converge to the correct value
   over multiple VACUUM and ANALYZE cycles even when individual
   measurements aren't very good.  This new method for updating
   reltuples is used by both VACUUM and ANALYZE, with the result that
   we no longer need the grotty interconnections that caused ANALYZE to
   not update the stats depending on what had happened in the parent
   VACUUM command.  Also, fix the logic for skipping all-visible pages
   during VACUUM so that it looks ahead rather than behind to decide
   what to do, as per a suggestion from Greg Stark.  This eliminates
   useless scanning of all-visible pages at the start of the relation
   or just after a not-all-visible page.  In particular, the first few
   pages of the relation will not be invariably included in the scanned
   pages, which seems to help in not overweighting them in the
   reltuples estimate.  Back-patch to 8.4, where the visibility map was

- Fix portability bugs in use of credentials control messages for peer
   auth.  Even though our existing code for handling credentials
   control messages has been basically unchanged since 2001, it was
   fundamentally wrong: it did not ensure proper alignment of the
   supplied buffer, and it was calculating buffer sizes and message
   sizes incorrectly.  This led to failures on platforms where
   alignment padding is relevant, for instance FreeBSD on 64-bit
   platforms, as seen in a recent Debian bug report passed on by Martin
   Pitt (
   Rewrite to do the message-whacking using the macros specified in RFC
   2292, following a suggestion from Theo de Raadt in that thread.
   Tested by me on Debian/kFreeBSD-amd64; since OpenBSD and NetBSD
   document the identical CMSG API, it should work there too.
   Back-patch to all supported branches.

- Replace use of credential control messages with
   getsockopt(LOCAL_PEERCRED).  It turns out the reason we hadn't found
   out about the portability issues with our credential-control-message
   code is that almost no modern platforms use that code at all; the
   ones that used to need it now offer getpeereid(), which we choose
   first.  The last holdout was NetBSD, and they added getpeereid() as
   of 5.0.  So far as I can tell, the only live platform on which that
   code was being exercised was Debian/kFreeBSD, ie, FreeBSD kernel
   with Linux userland --- since glibc doesn't provide getpeereid(), we
   fell back to the control message code.  However, the FreeBSD kernel
   provides a LOCAL_PEERCRED socket parameter that's functionally
   equivalent to Linux's SO_PEERCRED.  That is both much simpler to use
   than control messages, and superior because it doesn't require
   receiving a message from the other end at just the right time.
   Therefore, add code to use LOCAL_PEERCRED when necessary, and rip
   out all the credential-control-message code in the backend.  (libpq
   still has such code so that it can still talk to pre-9.1 servers ...
   but eventually we can get rid of it there too.)  Clean up related
   autoconf probes, too.  This means that libpq's requirepeer parameter
   now works on exactly the same platforms where the backend supports
   peer authentication, so adjust the documentation accordingly.

- Protect GIST logic that assumes penalty values can't be negative.
   Apparently sane-looking penalty code might return small negative
   values, for example because of roundoff error.  This will confuse
   places like gistchoose().  Prevent problems by clamping negative
   penalty values to zero.  (Just to be really sure, I also made it
   force NaNs to zero.) Back-patch to all supported branches.
   Alexander Korotkov

- Further improvements in pg_ctl's new wait-for-postmaster-start
   logic.  Add a postmaster_is_alive() test to the wait loop, so that
   we stop waiting if the postmaster dies without removing its pidfile.
   Unfortunately this only helps after the postmaster has created its
   pidfile, since until then we don't know which PID to check.  But if
   it never does create the pidfile, we can give up in a relatively
   short time, so this is a useful addition in practice.  Per
   suggestion from Fujii Masao, though this doesn't look very much like
   his patch.  In addition, improve pg_ctl's ability to cope with
   pre-existing pidfiles.  Such a file might or might not represent a
   live postmaster that is going to block our postmaster from starting,
   but the previous code pre-judged the situation and gave up waiting
   immediately.  Now, we will wait for up to 5 seconds to see if our
   postmaster overwrites such a file.  This issue interacts with
   Fujii's patch because we would make the wrong conclusion if we did
   the postmaster_is_alive() test with a pre-existing PID.  All of this
   could be improved if we rewrote start_postmaster() so that it could
   report the child postmaster's PID, so that we'd know a-priori the
   correct PID to test with postmaster_is_alive().  That looks like a
   bit too much change for so late in the 9.1 development cycle,

- Allow hash joins to be interrupted while searching hash table for
   match.  Per experimentation with a recent example, in which
   unreasonable amounts of time could elapse before the backend would
   respond to a query-cancel.  This might be something to back-patch,
   but the patch doesn't apply cleanly because this code was rewritten
   for 9.1.  Given the lack of field complaints I won't bother for now.
   Cédric Villemain

- Implement getpeereid() as a src/port compatibility function.  This
   unifies a bunch of ugly #ifdef's in one place.  Per discussion, we
   only need this where HAVE_UNIX_SOCKETS, so no need to cover Windows.
   Marko Kreen, some adjustment by Tom Lane

- Typo fix.

- Disallow SELECT FOR UPDATE/SHARE on sequences.  We can't allow this
   because such an operation stores its transaction XID into the
   sequence tuple's xmax.  Because VACUUM doesn't process sequences
   (and we don't want it to start doing so), such an xmax value won't
   get frozen, meaning it will eventually refer to nonexistent pg_clog
   storage, and even wrap around completely.  Since the row lock is
   ignored by nextval and setval, the usefulness of the operation is
   highly debatable anyway.  Per reports of trouble with pgpool 3.0,
   which had ill-advisedly started using such commands as a form of
   locking.  In HEAD, also disallow SELECT FOR UPDATE/SHARE on toast
   tables.  Although this does work safely given the current
   implementation, there seems no good reason to allow it.  I refrained
   from changing that behavior in back branches, however.

- Clean up after erroneous SELECT FOR UPDATE/SHARE on a sequence.  My
   previous commit disallowed this operation, but did nothing about
   cleaning up the damage if one had already been done.  With the
   operation disallowed, it's okay to just forcibly clear xmax in a
   sequence's tuple, since any value seen there could not represent a
   live transaction's lock.  So, any sequence-specific operation will
   repair the problem automatically, whether or not the user has
   already seen "could not access status of transaction" failures.

- libpq needs its own copy of src/port/getpeereid ... on some
   platforms, anyway.  Per buildfarm.

- Looks like we can't declare getpeereid on Windows anyway ... for
   lack of the uid_t and gid_t typedefs.  Per buildfarm.

- Handle domains when checking for recursive inclusion of composite
   types.  We need this now because we allow domains over arrays, and
   we'll probably allow domains over composites pretty soon, which
   makes the problem even more obvious.  Although domains over arrays
   also exist in previous versions, this does not need to be
   back-patched, because the coding used in older versions successfully
   "looked through" domains over arrays.  The problem is exposed by not
   treating a domain as having a typelem.  Problem identified by Noah
   Misch, though I did not use his patch, since it would require
   additional work to handle domains over composites that way.  This
   approach is more future-proof.

- Need to list getpeereid.c in .gitignore, too ...

- Fix failure to check whether a rowtype's component types are
   sortable.  The existence of a btree opclass accepting composite
   types caused us to assume that every composite type is sortable.
   This isn't true of course; we need to check if the column types are
   all sortable.  There was logic for this for the case of array
   comparison (ie, check that the element type is sortable), but we
   missed the point for rowtypes.  Per Teodor's report of an ANALYZE
   failure for an unsortable composite type.  Rather than just add some
   more ad-hoc logic for this, I moved knowledge of the issue into
   typcache.c.  The typcache will now only report out array_eq,
   record_cmp, and friends as usable operators if the array or
   composite type will work with those functions.  Unfortunately we
   don't have enough info to do this for anonymous RECORD types; in
   that case, just assume it will work, and take the runtime failure as
   before if it doesn't.  This patch might be a candidate for
   back-patching at some point, but given the lack of complaints from
   the field, I'd rather just test it in HEAD for now.  Note: most of
   the places touched in this patch will need further work when we get
   around to supporting hashing of record types.

- Reset reindex-in-progress state before reverifying an exclusion
   constraint.  This avoids an Assert failure when we try to use
   ordinary index fetches while checking for exclusion conflicts.  Per
   report from Noah Misch.  No need for back-patch because the Assert
   wasn't there before 9.1.

Robert Haas pushed:

- Avoid creating init fork for unlogged indexes when it already
   exists.  Report by Greg Sabino Mullane, diagnosis and preliminary
   patch by Andres Freund, corrections by me.

- Fix vim-induced typo.

Bruce Momjian pushed:

- Use proper SGML doc entities rather than angle-brackets.  Marco

== Abgelehnte Patches (bis jetzt) ==

No one was disappointed this week :-)

== Eingesandte Patches ==

Magnus Hagander sent in a patch to fix an infelicity in SSL handling
in pg_hba.conf.

Florian Pflug sent in two revisions of a patch to fix a bug in XPATH()
when the expression returns a scalar value.

Heikki Linnakangas sent in a patch to fix an issue with SSI predicate
locking, changing from row to tuple.

Heikki Linnakangas sent in two revisions of a patch to fix some
infelicities in nested CASE-WHEN scoping.

Alvaro Herrera sent in four revisions of a patch to enable CHECK
constraints to be declared as NOT VALID, as FOREIGN KEY ones can now.

Radoslaw Smogura sent in a patch to create BLOBs and attendant

Mark Kirkwood sent in three revisions of a patch to add the ability to
constrain backend temporary file space.

Kevin Grittner sent in a patch to fix some comments in the SSI code.

Teodor Sigaev and Tom Lane traded patches to fix an issue with VACUUM
and composite row types.

Robert Haas sent in two revisions of a patch to clean up

Pavel Stehule sent in another revision of the patch to enhance GET

Andrew Chernow sent in two revisions of a patch to fix an issue in

Kevin Grittner sent in two revisions of a patch to fix an infelicity
in DDL under SSI.

Alexander Korotkov sent in a WIP patch to do a faster GiST index build.

Robert Haas sent in a WIP patch to reduce the overhead of frequent
table locks.

Gurjeet Singh sent in two more revisions of a patch to allow psql to
include files relative to the current file.

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

Pavel Stehule sent in a WIP patch to add some new diagnostics to

			Andreas 'ads' Scherbaum
Deutsche PostgreSQL User Group:

pgsql-de-allgemein by date

Next:From: Andreas 'ads' ScherbaumDate: 2011-06-06 23:47:30
Subject: Deutschsprachige PostgreSQL Konferenz 2011 - Call for Papers
Previous:From: Andreas 'ads' ScherbaumDate: 2011-05-31 19:01:28
Subject: == Wöchentlicher PostgreSQL Newsletter - 29. Mai 2011 ==

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