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

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

am 07.06.2011 01:40:19 von adsmail

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.
http://dandymadeproductions.com/projects/MyJSQLView/index.ht ml

PostgreDAC 2.6.3, ein Delphi/C++ Builder für PostgreSQL,
ist erschienen.
http://microolap.com/products/connectivity/postgresdac/downl oad/

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

== PostgreSQL Jobs im Juni ==

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

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

Alvaro Herrera pushed:

- Make message more consistent
http://git.postgresql.org/pg/commitdiff/5177dfefc532ea481bf7 0d1bb8a493f835a=

- 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
http://git.postgresql.org/pg/commitdiff/7de38741c0438cdece0e 22699de8ffd5797=

- 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.
http://git.postgresql.org/pg/commitdiff/048417511aef8d5fb2d5 41b17b73afc7309=

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
http://git.postgresql.org/pg/commitdiff/3103f9a77d005f9d8b8e f492298bbbbf6c4=

- 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
http://git.postgresql.org/pg/commitdiff/c8630919e08c2e914358 07caecb4b44c772=

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.
http://git.postgresql.org/pg/commitdiff/764bde0f1641cc3aafa2 c221c56bd3a8129=

- 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.
http://git.postgresql.org/pg/commitdiff/5830f69665053f78cfd3 1e39f40bb23ad91=

- 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.
http://git.postgresql.org/pg/commitdiff/2367da886d4ab903c7bf 5037b363ca10489=

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.
http://git.postgresql.org/pg/commitdiff/3001b76308e9189ff471 c54b1823621e03d=

- 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.
http://git.postgresql.org/pg/commitdiff/ba4cacf0756f71e175d2 5bac78834715a35=

- 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.
http://git.postgresql.org/pg/commitdiff/85ffed431ae6fff0d5fb afd9a48b330542f=

- Some copy editing of the release notes
http://git.postgresql.org/pg/commitdiff/596b0c213f2f7ffa72d0 d5b68e1da91c366=

- Sort COMMENT synopsis and add more examples. Josh Kupershmidt
http://git.postgresql.org/pg/commitdiff/c82d415acc39bc30962e 692229c04ee23da=

- Truncate id to <=3D44 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
http://git.postgresql.org/pg/commitdiff/3ece3913d056245d7845 0793fc5ad18e229=

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
http://git.postgresql.org/pg/commitdiff/b4b6923e03f4d29636a9 4f6f4cc2f5cf629=

- 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 (http://bugs.debian.org//cgi-bin/bugreport.cgi?bug=3D612888) .
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.
http://git.postgresql.org/pg/commitdiff/13c00ae8c73ee9635c11 059925814b351dc=

- 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.
http://git.postgresql.org/pg/commitdiff/be4585b1c27ac5dbdd0d 61740d18f7ad9a0=

- 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
http://git.postgresql.org/pg/commitdiff/6923d699bc3c46ca2c5d 8c12fe1c5c39ecf=

- 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,
http://git.postgresql.org/pg/commitdiff/3c485ca8e6580409284a c50623286b0fb8c=

- 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
http://git.postgresql.org/pg/commitdiff/0c99d41ec887051fb0cc 6e35e358ecc936a=

- 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
http://git.postgresql.org/pg/commitdiff/3980f7fc6ecb75952ebe 76c3d30ec673172=

- Typo fix.
http://git.postgresql.org/pg/commitdiff/dd2ddfb1cd4039373163 7101c713a3446cf=

- 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.
http://git.postgresql.org/pg/commitdiff/21538377ee6a0ee91f75 6726bd8b3de6d19=

- 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.
http://git.postgresql.org/pg/commitdiff/ea6eda64a6425923463d 358e2915980e812=

- libpq needs its own copy of src/port/getpeereid ... on some
platforms, anyway. Per buildfarm.
http://git.postgresql.org/pg/commitdiff/2021c5a53a9dd7bb181b 67475c960ae730f=

- Looks like we can't declare getpeereid on Windows anyway ... for
lack of the uid_t and gid_t typedefs. Per buildfarm.
http://git.postgresql.org/pg/commitdiff/680ea6a6df345218f655 eaad2c25f989004=

- 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.
http://git.postgresql.org/pg/commitdiff/aff97b1f4e3630069a37 0be663b847c777b=

- Need to list getpeereid.c in .gitignore, too ...
http://git.postgresql.org/pg/commitdiff/52caa355ee6fd34670b6 387e14c821d9128=

- 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.
http://git.postgresql.org/pg/commitdiff/ea8e42f3a0848f506d8a 1b9c74967248005=

- 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.
http://git.postgresql.org/pg/commitdiff/dccfb72892acabd25568 539ec882cc44c57=

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.
http://git.postgresql.org/pg/commitdiff/b8be5431a2baa2ea4a51 40f1a49c3360deb=

- Fix vim-induced typo.
http://git.postgresql.org/pg/commitdiff/5295fa8c0bb396bf2866 205e093bc04d7a3=

Bruce Momjian pushed:

- Use proper SGML doc entities rather than angle-brackets. Marco
http://git.postgresql.org/pg/commitdiff/a20bc9c8666ad81ff3fe 26cfab2efd42d6d=

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