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

== 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: (view raw, whole thread or download thread mbox)
Lists: pgsql-de-allgemein

Der Originalartikel befindet sich unter:

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

== PostgreSQL Lokal ==

Das Open Database Camp findet vom 7. bis 9. Mai 2011 in Sardinien,
Italien statt.

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.

PG Session 2 über PostGIS findet am 23. Juni in Paris statt.
Der Call for Papers ist jetzt offen.

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

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.

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.

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

- 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

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

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

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

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

- Remove hard coded formats for INT64 and use configured settings

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

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

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

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

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

- 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

Robert Haas pushed:

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

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

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

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

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

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.

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

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

- Reword documentation for NUMERIC with no specified precision.

- Doc wording improvement for NUMERIC limit paragraph.

- Lowercase status labels in pg_stat_replication view.

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

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

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

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

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.

- 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

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

- 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

- 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

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

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

- Tag 9.1beta1.

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

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

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

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.

Heikki Linnakangas pushed:

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

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

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

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

			Andreas 'ads' Scherbaum
Deutsche PostgreSQL User Group:

pgsql-de-allgemein by date

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

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