== Wöchentlicher PostgreSQL Newsletter - 01. Mai 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 - 01. Mai 2011 ==
Date: 2011-05-06 09:46:45
Message-ID: 4DC3C385.9080502@wars-nicht.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

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
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-database-camp-sardinia.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 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 ==

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.

http://git.postgresql.org/pg/commitdiff/5948a6eeaa682aeb1a8f389ae2136915b2a0e990

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.

http://git.postgresql.org/pg/commitdiff/08a0c2dabc3b9d59d72d7a79ed867b8e37d275a7

- Give getopt() a prototype and modern style arg specs. Welcome to
the 1990s.

http://git.postgresql.org/pg/commitdiff/7e0f8f836da9a992c8cbd99c5c06ea40247d6a33

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

http://git.postgresql.org/pg/commitdiff/77622887449f0fd0eb08b28fe4fa5992c357d45a

- Assorted minor changes to silence Windows compiler warnings. Mostly
to do with macro redefinitions or object signedness.

http://git.postgresql.org/pg/commitdiff/860be17ec3c19a1aeba0bbe7ecaf30be409ea446

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

http://git.postgresql.org/pg/commitdiff/625744ac43360ca3f4a6d3eccecb6f4c999a1a63

- Use an explicit format string to keep the compiler happy.

http://git.postgresql.org/pg/commitdiff/c43d0791ac5fb765a088d41564cd44747aef42d8

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

http://git.postgresql.org/pg/commitdiff/52d01c2f52c462d29ae0fdfa44c3cae129148a6d

- Remove hard coded formats for INT64 and use configured settings
instead.

http://git.postgresql.org/pg/commitdiff/9b1508af8971c1627cda5bb65f5e9eddb9a1a55e

- Revert "Remove hard coded formats for INT64 and use configured
settings instead." This reverts commit
9b1508af8971c1627cda5bb65f5e9eddb9a1a55e.
As requested by Tom Lane.

http://git.postgresql.org/pg/commitdiff/348c10efe08f01872daeeb62f32c8e362fcbba69

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

http://git.postgresql.org/pg/commitdiff/6693fec0e8dec81a9b149494cbdb90e454b6119e

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

http://git.postgresql.org/pg/commitdiff/c02d5b7c27d740830379244db4b9ef111bbf0fc8

- Add some casts to try to silence most of the remaining format
warnings on MinGW-W64.

http://git.postgresql.org/pg/commitdiff/ab0ba6e73ae9b3c9956126bdcd3c410238a27244

- Add some casts to try to silence most of the remaining format
warnings on MinGW-W64.

http://git.postgresql.org/pg/commitdiff/ab0ba6e73ae9b3c9956126bdcd3c410238a27244

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

http://git.postgresql.org/pg/commitdiff/c49e4ae1f886e74efb4bc94c09b993098232d5f9

Robert Haas pushed:

- Fix SSI-related assertion failure. Bug #5899, reported by Marko
Tiikkaja. Heikki Linnakangas, reviewed by Kevin Grittner and Dan
Ports.

http://git.postgresql.org/pg/commitdiff/b429519d8d1b6ac16e36dacba58ef77f77a621ca

- Regression tests for TOAST. Kevin Grittner, per discussion of bug
#5989

http://git.postgresql.org/pg/commitdiff/97e83468513399039878e4a630d577c8b7f5b2db

- Add fast paths for cases when no serializable transactions are
running. Dan Ports.

http://git.postgresql.org/pg/commitdiff/02e6a115cc6149551527a45545fd1ef8d37e6aa0

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

http://git.postgresql.org/pg/commitdiff/be90032e0d1cf473bdd99aee94218218f59f29f1

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

http://git.postgresql.org/pg/commitdiff/68ef051f5cf16f82a5368067a40ffba3c340b0d3

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.

http://git.postgresql.org/pg/commitdiff/76dd09bbec893c02376e3440a6a86a3b994d804c

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

http://git.postgresql.org/pg/commitdiff/44091442db7e0d9fd7f0495f09d725fc92d940b5

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

http://git.postgresql.org/pg/commitdiff/6c4d2bd9141034bd27977794f52003fd6f7d01f0

- Reword documentation for NUMERIC with no specified precision.

http://git.postgresql.org/pg/commitdiff/8ce83b5bdc532e716c39b6a04f1edda7e5e66cc7

- Doc wording improvement for NUMERIC limit paragraph.

http://git.postgresql.org/pg/commitdiff/dedcc48c567e443912d761a3616298678a4ec825

- Lowercase status labels in pg_stat_replication view.

http://git.postgresql.org/pg/commitdiff/5a71b641309ea982593edf1f28d408c21885897b

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

http://git.postgresql.org/pg/commitdiff/f8ebe3bcc5debfcf2bf588aee138944688b682c0

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

http://git.postgresql.org/pg/commitdiff/b2ef8929ae1c1b65f4b9582409463a9a2f009706

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

http://git.postgresql.org/pg/commitdiff/b106195b1731ce5d68e8bb5c421f09a4aae9e96a

- Catch errors in for loop in makefile. Add "|| exit" so that the
rule aborts when a command fails.

http://git.postgresql.org/pg/commitdiff/5c436a79e0f4e11f80c5878a0309ce60f79e17b1

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.

http://git.postgresql.org/pg/commitdiff/af0f20092c8662bf7610fab07b8a1e354abba67f

- 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

http://git.postgresql.org/pg/commitdiff/6dab96abaa8bd6775658d26517e288f4d5f6448f

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

http://git.postgresql.org/pg/commitdiff/c464a0657b0cdaa7fa645d53621be10963cb7741

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

http://git.postgresql.org/pg/commitdiff/71e7083532d8f6ad0cf345c3cc534b0307e816a8

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

http://git.postgresql.org/pg/commitdiff/18c0b4eccdc86ffb7eccc2c6facfe382537ab877

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

http://git.postgresql.org/pg/commitdiff/4f6c75b541385eb2d48f7ef62c1c323ec2642134

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

http://git.postgresql.org/pg/commitdiff/bb1051eb2d5eef060b64788cbec8459c46427fca

- Tag 9.1beta1.

http://git.postgresql.org/pg/commitdiff/993c5e59047dd568d4831f7ec5c6199acd21f17f

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

http://git.postgresql.org/pg/commitdiff/fd2e2d09aa1d5ba198e09e6d936ff1bba7f62895

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

http://git.postgresql.org/pg/commitdiff/44e4bbf75d56e643b6afefd5cdcffccb68cce414

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

http://git.postgresql.org/pg/commitdiff/83b7584944b3a9df064cccac06822093f1a83793

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.

http://git.postgresql.org/pg/commitdiff/6693eb72c014e5e8bc2f7f3221ebd5507fdbe8ec

Heikki Linnakangas pushed:

- The arguments to pg_ctl kill are not optional - remove brackets in
the docs. Fujii Masao

http://git.postgresql.org/pg/commitdiff/39850c7fdb82bd7c64dbb759c5754e29fc0af5f2

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

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Andreas 'ads' Scherbaum 2011-05-09 05:59:16 == Wöchentlicher PostgreSQL Newsletter - 08. Mai 2011 ==
Previous Message Michael Renner 2011-04-29 07:52:03 Re: [pgsql-de-allgemein] Höhere Verfügbarkeit