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

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

am 06.05.2011 11:46:45 von adsmail

Der Originalartikel befindet sich unter:

http://www.postgresql.org/community/weeklynews/pwn20110501



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

Magnus Hagander ist dem PostgreSQL Core Team beigetreten. Glückwunsch!

PostgreSQL Conference Europe 2011 wird vom 18. bis 21. Oktober in=20
Amsterdam stattfinden.
http://2011.pgconf.eu/

== PostgreSQL Lokal ==

Das Open Database Camp findet vom 7. bis 9. Mai 2011 in Sardinien,
Italien statt.
http://datacharmer.blogspot.com/2011/01/announcing-open-data base-camp-sardi=
nia.html

PGCon findet am 19. und 20. Mai 2011 an der Universität
von Ottawa statt, vorher gibt es am 17. und 18. Mai
zwei Tage mit Trainings.
http://www.pgcon.org/2011/

PG Session 2 über PostGIS findet am 23. Juni in Paris statt.
Der Call for Papers ist jetzt offen.
http://www.postgresql-sessions.org/en/2/

pgbr findet in Sao Paulo, Brazilien, am 3. und 4. November 2011 statt.
http://pgbr.postgresql.org.br/

== PostgreSQL in den News ==

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

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

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

Michael Meskes pushed:

- In libecpg do not set an sqlda field that is 'reserved for future
use' unless we know what should be stored in there.
=20
http://git.postgresql.org/pg/commitdiff/5948a6eeaa682aeb1a8f 389ae2136915b2a=
0e990

Andrew Dunstan pushed:

- Adjust yywrap macro for non-reentrant scanners for MSVC. The MSVC
compiler complains if a macro is called with less arguments than its
definition provides for. flex generates a macro with one argument
for yywrap, but only supplies the argument for reentrant scanners,
so we remove the useless argument in the non-reentrant case to
silence the warning.
=20
http://git.postgresql.org/pg/commitdiff/08a0c2dabc3b9d59d72d 7a79ed867b8e37d=
275a7

- Give getopt() a prototype and modern style arg specs. Welcome to
the 1990s.
=20
http://git.postgresql.org/pg/commitdiff/7e0f8f836da9a992c8cb d99c5c06ea40247=
d6a33

- Prevent perl header overriding our *snprintf macros, and give it a
usable PERL_UNUSED_DECL value. This quiets compiler warnings about
redefined macros and unused Perl__unused variables. The redefinition
of snprintf and vsnprintf is something we want to avoid anyway, if
we've gone to the bother of setting up the macros to point to our
implementation.
=20
http://git.postgresql.org/pg/commitdiff/77622887449f0fd0eb08 b28fe4fa5992c35=
7d45a

- Assorted minor changes to silence Windows compiler warnings. Mostly
to do with macro redefinitions or object signedness.
=20
http://git.postgresql.org/pg/commitdiff/860be17ec3c19a1aeba0 bbe7ecaf30be409=
ea446

- Use terse mode to avoid variable order dependency output in foreign
data regression check. Per Tom Lane's suggestion about my gripe
about occasional errors noticed on the buildfarm.
=20
http://git.postgresql.org/pg/commitdiff/625744ac43360ca3f4a6 d3eccecb6f4c999=
a1a63

- Use an explicit format string to keep the compiler happy.
=20
http://git.postgresql.org/pg/commitdiff/c43d0791ac5fb765a088 d41564cd44747ae=
f42d8

- Force use of "%I64d" format for 64 bit ints on MinGW. Both this and
"%lld" work, but the compiler's format checking doesn't like "%lld",
so we get all sorts of spurious warnings.
=20
http://git.postgresql.org/pg/commitdiff/52d01c2f52c462d29ae0 fdfa44c3cae1291=
48a6d

- Remove hard coded formats for INT64 and use configured settings
instead.
=20
http://git.postgresql.org/pg/commitdiff/9b1508af8971c1627cda 5bb65f5e9eddb9a=
1a55e

- Revert "Remove hard coded formats for INT64 and use configured
settings instead." This reverts commit=20
9b1508af8971c1627cda5bb65f5e9eddb9a1a55e.
As requested by Tom Lane.
=20
http://git.postgresql.org/pg/commitdiff/348c10efe08f01872dae eb62f32c8e362fc=
bba69

- Revert "Force use of "%I64d" format for 64 bit ints on MinGW." This
reverts commit 52d01c2f52c462d29ae0fdfa44c3cae129148a6d. The
UINT64_FORMAT bit broke the buildfarm, so I'm reverting the whole
thing pending further investigation.
=20
http://git.postgresql.org/pg/commitdiff/6693fec0e8dec81a9b14 9494cbdb90e454b=
6119e

- Use a macro variable PG_PRINTF_ATTRIBUTE for the style used for
checking printf type functions. The style is set to "printf" for
backwards compatibility everywhere except on Windows, where it is
set to "gnu_printf", which eliminates hundreds of false error
messages from modern versions of gcc arising from %m and %ll{d,u}
formats.
=20
http://git.postgresql.org/pg/commitdiff/c02d5b7c27d740830379 244db4b9ef111bb=
f0fc8

- Add some casts to try to silence most of the remaining format
warnings on MinGW-W64.
=20
http://git.postgresql.org/pg/commitdiff/ab0ba6e73ae9b3c99561 26bdcd3c410238a=
27244

- Add some casts to try to silence most of the remaining format
warnings on MinGW-W64.
=20
http://git.postgresql.org/pg/commitdiff/ab0ba6e73ae9b3c99561 26bdcd3c410238a=
27244

- Use non-literal format for possibly non-standard strftime formats.
Per recent -hackers discussion. The formats in question are %G and
%V, and cause warnings on MinGW at least. We assume the ecpg
application knows what it's doing if it passes these formats to the
library.
=20
http://git.postgresql.org/pg/commitdiff/c49e4ae1f886e74efb4b c94c09b99309823=
2d5f9

Robert Haas pushed:

- Fix SSI-related assertion failure. Bug #5899, reported by Marko
Tiikkaja. Heikki Linnakangas, reviewed by Kevin Grittner and Dan
Ports.
=20
http://git.postgresql.org/pg/commitdiff/b429519d8d1b6ac16e36 dacba58ef77f77a=
621ca

- Regression tests for TOAST. Kevin Grittner, per discussion of bug
#5989
=20
http://git.postgresql.org/pg/commitdiff/97e83468513399039878 e4a630d577c8b7f=
5b2db

- Add fast paths for cases when no serializable transactions are
running. Dan Ports.
=20
http://git.postgresql.org/pg/commitdiff/02e6a115cc6149551527 a45545fd1ef8d37=
e6aa0

- Remove partial and undocumented GRANT .. FOREIGN TABLE support.
Instead, foreign tables are treated just like views: permissions can
be granted using GRANT privilege ON [TABLE] foreign_table_name TO
role, and revoked similarly. GRANT/REVOKE .. FOREIGN TABLE is no
longer supported, just as we don't support GRANT/REVOKE .. VIEW.
The set of accepted permissions for foreign tables is now identical
to the set for regular tables, and views. Per report from Thom
Brown, and subsequent discussion.
=20
http://git.postgresql.org/pg/commitdiff/be90032e0d1cf473bdd9 9aee94218218f59=
f29f1

- Refactor broken CREATE TABLE IF NOT EXISTS support. Per bug #5988,
reported by Marko Tiikkaja, and further analyzed by Tom Lane, the
previous coding was broken in several respects: even if the target
table already existed, a subsequent CREATE TABLE IF NOT EXISTS might
try to add additional constraints or sequences-for-serial specified
in the new CREATE TABLE statement. In passing, this also fixes a
minor information leak: it's no longer possible to figure out
whether a schema to which you don't have CREATE access contains a
sequence named like "x_y_seq" by attempting to create a table in
that schema called "x" with a serial column called "y". Some more
refactoring of this code in the future might be warranted, but that
will need to wait for a later major release.
=20
http://git.postgresql.org/pg/commitdiff/68ef051f5cf16f82a536 8067a40ffba3c34=
0b0d3

Bruce Momjian pushed:

- Add postmaster/postgres undocumented -b option for binary upgrades.
This option turns off autovacuum, prevents non-super-user
connections, and enables oid setting hooks in the backend. The code
continues to use the old autoavacuum disable settings for servers
with earlier catalog versions. This includes a catalog version bump
to identify servers that support the -b option.
=20
http://git.postgresql.org/pg/commitdiff/76dd09bbec893c02376e 3440a6a86a3b994=
d804c

- In pg_upgrade, avoid one start/stop of the postmaster; use the -w
(wait) flag for pg_ctl start/stop; remove the unused "quiet" flag
in the functions for starting/stopping the postmaster.
=20
http://git.postgresql.org/pg/commitdiff/44091442db7e0d9fd7f0 495f09d725fc92d=
940b5

- Now that pg_upgrade uses -w in pg_ctl, remove loop that retried
testing the connection; also restructure the libpq connection code.
This patch also removes the unused variable postmasterPID and fixes
a libpq structure leak that was in the testing loop.
=20
http://git.postgresql.org/pg/commitdiff/6c4d2bd9141034bd2797 7794f52003fd6f7=
d01f0

- Reword documentation for NUMERIC with no specified precision.
=20
http://git.postgresql.org/pg/commitdiff/8ce83b5bdc532e716c39 b6a04f1edda7e5e=
66cc7

- Doc wording improvement for NUMERIC limit paragraph.
=20
http://git.postgresql.org/pg/commitdiff/dedcc48c567e443912d7 61a3616298678a4=
ec825

- Lowercase status labels in pg_stat_replication view.
=20
http://git.postgresql.org/pg/commitdiff/5a71b641309ea982593e df1f28d408c2188=
5897b

Peter Eisentraut pushed:

- Support "make check" in contrib. Added a new option --extra-install
to pg_regress to arrange installing the respective contrib directory
into the temporary installation. This is currently not yet
supported for Windows MSVC builds. Updated the .gitignore files for
contrib modules to ignore the leftovers of a temp-install check run.
Changed the exit status of "make check" in a pgxs build (which still
does nothing) to 0 from 1. Added "make check" in contrib to
top-level "make check-world".
=20
http://git.postgresql.org/pg/commitdiff/f8ebe3bcc5debfcf2bf5 88aee138944688b=
682c0

- Fix binary upgrade of altered typed tables. Instead of dumping them
as CREATE TABLE ... OF, dump them as normal tables with the usual
special processing for dropped columns, and then attach them to the
type afterward, using ALTER TABLE ... OF. This is analogous to the
existing handling of inherited tables.
=20
http://git.postgresql.org/pg/commitdiff/b2ef8929ae1c1b65f4b9 582409463a9a2f0=
09706

- Rewrite installation makefile rules without for loops. install-sh
can install multiple files at once, so for loops are not necessary.
This was already changed for the rest of the code some time ago, but
pgxs.mk was apparently forgotten, and the obsolete coding style has
now been copied to the PLs as well. This also fixes the problem
that the for loops in question did not catch errors.
=20
http://git.postgresql.org/pg/commitdiff/b106195b1731ce5d68e8 bb5c421f09a4aae=
9e96a

- Catch errors in for loop in makefile. Add "|| exit" so that the
rule aborts when a command fails.
=20
http://git.postgresql.org/pg/commitdiff/5c436a79e0f4e11f80c5 878a0309ce60f79=
e17b1

Tom Lane pushed:

- Fix pg_size_pretty() to avoid overflow for inputs close to
INT64_MAX. The expression that tried to round the value to the
nearest Tim Bunce could overflow, leading to bogus output as
reported in bug #5993 from Nicola Cossu. This isn't likely to ever
happen in the intended usage of the function (if it could, we'd be
needing to use a wider datatype instead); but it's not hard to give
the expected output, so let's do so.
=20
http://git.postgresql.org/pg/commitdiff/af0f20092c8662bf7610 fab07b8a1e354ab=
ba67f

- Remove incorrect HINT for use of ALTER FOREIGN TABLE on the wrong
relkind. Per discussion, removing the hint seems better than
correcting it because the adjacent analogous cases in RenameRelation
don't have any hints, and nobody seems to have missed 'em. Shigeru
Hanada
=20
http://git.postgresql.org/pg/commitdiff/6dab96abaa8bd6775658 d26517e288f4d5f=
6448f

- Complain if pg_hba.conf contains "hostssl" but SSL is disabled.
Most commenters agreed that this is more friendly than silently
failing to match the line during actual connection attempts. Also,
this will prevent corner cases that might arise when trying to
handle such a line when the SSL code isn't turned on. An example is
that specifying clientcert=3D1 in such a line would formerly result in
a completely misleading complaint that root.crt wasn't present, as
seen in a recent report from Marc-Andre Laverdiere. While we could
have instead fixed that specific behavior, it seems likely that we'd
have a continuing stream of such bizarre behaviors if we keep on
allowing hostssl lines when SSL is disabled. Back-patch to 8.4,
where clientcert was introduced. Earlier versions don't have this
specific issue, and the code is enough different to make this patch
not applicable without more work than it seems worth.
=20
http://git.postgresql.org/pg/commitdiff/c464a0657b0cdaa7fa64 5d53621be10963c=
b7741

- Rephrase some not-supported error messages in pg_hba.conf
processing. In a couple of places we said "not supported on this
platform" for cases that aren't really platform-specific, but could
depend on configuration options such as --with-openssl. Use "not
supported by this build" instead, as that doesn't convey the
impression that you can't fix it without moving to another OS;
that's also more consistent with the wording used for an identical
error case in guc.c. No back-patch, as the clarity gain is small
enough to not be worth burdening translators with back-branch
changes.
=20
http://git.postgresql.org/pg/commitdiff/71e7083532d8f6ad0cf3 45c3cc534b0307e=
816a8

- Fix array- and path-creating functions to ensure padding bytes are
zeroes. Per recent discussion, it's important for all computed
datums (not only the results of input functions) to not contain any
ill-defined (uninitialized) bits. Failing to ensure that can result
in equal() reporting that semantically indistinguishable Consts are
not equal, which in turn leads to bizarre and undesirable planner
behavior, such as in a recent example from David Johnston. We might
eventually try to fix this in a general manner by allowing datatypes
to define identity-testing functions, but for now the path of least
resistance is to expect datatypes to force all unused bits into
consistent states. Per some testing by Noah Misch, array and path
functions seem to be the only ones presenting risks at the moment,
so I looked through all the functions in adt/array*.c and geo_ops.c
and fixed them as necessary. In the array functions, the
easiest/safest fix is to allocate result arrays with palloc0 instead
of palloc. Possibly in future someone will want to look into
whether we can just zero the padding bytes, but that looks too
complex for a back-patchable fix. In the path functions, we already
had a precedent in path_in for just zeroing the one known pad field,
so duplicate that code as needed. Back-patch to all supported
branches.
=20
http://git.postgresql.org/pg/commitdiff/18c0b4eccdc86ffb7ecc c2c6facfe382537=
ab877

- Add comments about the need to avoid uninitialized bits in datatype
values. There was already one recommendation in the documentation
about writing C functions to ensure padding bytes are zeroes, but
make it stronger. Also fix an example that was still using direct
assignment to a varlena length word, which no longer works since the
varvarlena changes.
=20
http://git.postgresql.org/pg/commitdiff/4f6c75b541385eb2d48f 7ef62c1c323ec26=
42134

- Make a quick copy-editing pass over the 9.1 release notes. Also
remove the material about this being an alpha release. The notes
still need a lot of work, but they're more or less presentable as a
beta version now.
=20
http://git.postgresql.org/pg/commitdiff/bb1051eb2d5eef060b64 788cbec8459c464=
27fca

- Tag 9.1beta1.
=20
http://git.postgresql.org/pg/commitdiff/993c5e59047dd568d483 1f7ec5c6199acd2=
1f17f

- Rewrite pg_size_pretty() to avoid compiler bug. Convert it to use
successive shifts right instead of increasing a divisor. This is
probably a tad more efficient than the original coding, and it's
nicer-looking than the previous patch because we don't need a
special case to avoid overflow in the last branch. But the real
reason to do it is to avoid a Solaris compiler bug, as per results
from buildfarm member moa.
=20
http://git.postgresql.org/pg/commitdiff/fd2e2d09aa1d5ba198e0 9e6d936ff1bba7f=
62895

- Remove special case for xmin == xmax in HeapTupleSatisfiesVacuum().
VACUUM was willing to remove a committed-dead tuple immediately if
it was deleted by the same transaction that inserted it. The idea
is that such a tuple could never have been visible to any other
transaction, so we don't need to keep it around to satisfy MVCC
snapshots. However, there was already an exception for tuples that
are part of an update chain, and this exception created a problem:
we might remove TOAST tuples (which are never part of an update
chain) while their parent tuple stayed around (if it was part of an
update chain). This didn't pose a problem for most things, since
the parent tuple is indeed dead: no snapshot will ever consider it
visible. But MVCC-safe CLUSTER had a problem, since it will try to
copy RECENTLY_DEAD tuples to the new table. It then has to copy
their TOAST data too, and would fail if VACUUM had already removed
the toast tuples. Easiest fix is to get rid of the special case for
xmin == xmax. This may delay reclaiming dead space for a little bit
in some cases, but it's by far the most reliable way to fix the
issue. Per bug #5998 from Mark Reid. Back-patch to 8.3, which is
the oldest version with MVCC-safe CLUSTER.
=20
http://git.postgresql.org/pg/commitdiff/44e4bbf75d56e643b6af efd5cdcffccb68c=
ce414

- Make CLUSTER lock the old table's toast table before copying data.
We must lock out autovacuuming of the old toast table before
computing the OldestXmin horizon we will use. Otherwise, autovacuum
could start on the toast table later, compute a later OldestXmin
horizon, and remove as DEAD toast tuples that we still need (because
we think their parent tuples are only RECENTLY_DEAD). Per further
thought about bug #5998.
=20
http://git.postgresql.org/pg/commitdiff/83b7584944b3a9df064c ccac06822093f1a=
83793

Magnus Hagander pushed:

- timeline is not needed in BaseBackup(). This code was accidentally
part of the patch, it's only needed for the code that's for 9.2.
Not needing the timeline also removes the need to call
IDENTIFY_SYSTEM. Noted by Peter Eisentraut.
=20
http://git.postgresql.org/pg/commitdiff/6693eb72c014e5e8bc2f 7f3221ebd5507fd=
be8ec

Heikki Linnakangas pushed:

- The arguments to pg_ctl kill are not optional - remove brackets in
the docs. Fujii Masao
=20
http://git.postgresql.org/pg/commitdiff/39850c7fdb82bd7c64db b759c5754e29fc0=
af5f2

== Abgelehnte Patches (bis jetzt) ==

No one was disappointed this week :-)

== Eingesandte Patches ==

Bruce Momjian sent in a patch to correct the case of some status
messages for Sync Rep.

Alvaro Herrera sent in a patch to the docs makefile to add HISTORY to
the default build.

Merlin Moncure sent in a patch to fix a bug in tsearch/spell.c where
ALLOC_CHUNK_LIMIT_RATIO could be too large, which would waste space in
malloc'ed blocks.

Heikki Linnakangas sent in another revision of a patch to fix a memory
leak in FDW.

Dan Ports sent in a patch to add comments about memory ordering in
SSI.

Peter Eisentraut sent in a patch to add a pg_upgrade check.

Zoltan Boszormenyi sent in a WIP patch to enable cross-column
statistics and extra expression statistics.

Noah Misch sent in another revision of the patch to fix an
incompatibility between ALTER TYPE DROP where there is a
composite-type column and pg_upgrade.

Gabriele Bartolini sent in a patch to smooth replication during VACUUM
FULL.

Kevin Grittner sent in another revision of the patch to fix DDL with
SSI.

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




--=20
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein