Skip to content

Wöchentlicher PostgreSQL Newsletter - 03. Juli 2011

Der Originalartikel befindet sich unter:

== Wöchentlicher PostgreSQL Newsletter - 03. Juli 2011 ==

CHAR(11), die spezielle PostgreSQL Konferenz für Clustering,
Hochverfügbarkeit und Replikation. Letzte Chance für Tickets
zum Standardpreis (£375) ist der 4. Juli, danach nur noch Last
Minutes Tickets (£425).

Postgres Open heißt Ihre Vorträge und Workshops willkommen.
Vorträge sollten sich an geschäftliche Nutzer oder Entwickler von
PostgreSQL orientieren und substantiellen technischen Inhalt haben.
Einreichungen sind bis zum 8. Juli möglich. Einreichen unter:

Das Datum für den PG DAY Denver 2011 hat sich verschoben. Der Denver
PG DAY 2011 wird nun am Freitag dem 21. Oktober 2011 stattfinden.
Der Call for Papers ist offen bis zum 31. Juli.

== PostgreSQL Produkt Neuigkeiten ==

Postgres Plus Advanced Server v9.0 ist jetzt generell verfügbar.

Dubsar Mobile, ein PostgreSQL-basiertes Zugriffsverzeichnis für
mobile Endgeräte, ist erschienen.

pg_sample 0.05, ein Werkzeug zum Exportieren von kleinen
Beispieldatensätzen aus einer großen PostgreSQL Datenbank, ist erschienen.

Pyrseas 0.3.0, ein Werkzeug für die PostgreSQL Versionskontrolle,
ist auf PGXN erschienen.

Postgres 9.1, Beta 2 RPM und DEB Pakete für Linux 32 und 64 sind
von OpenSCG veröffentlicht worden.

Postgres-XC 0.9.5, ein Clustering System für PostgreSQL, ist erschienen.

== PostgreSQL Jobs im Juli ==

== PostgreSQL Lokal ==

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.

PG-Day Denver 2011 findet am Freitag, dem 21. Oktober 2011 auf dem
Auraria Campus in der Nähe von Downtown Denver, Colorado statt.

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.

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 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, deutsche an, italienische an, spanische an

== Reviews ==

== Angewandte Patches ==

Peter Eisentraut pushed:

- Remove redundant DEF_PGPORT handling.  DEF_PGPORT already comes in
  from pg_config.h, so we don't need to pass it in again with a -D
  option.  Apparently a leftover from the shell script conversion.

- Add some strings that were not marked for translation

- Add composite-type attributes to information_schema.element_types

- Implement the collation columns of various information schema views.
  Fill in the collation columns of the views attributes, columns,
  domains, and element_types.  Also update collation information in

- Unify spelling of "canceled", "canceling", "cancellation".  We had
  previously (af26857a2775e7ceb0916155e931008c2116632f) established
  the U.S. spellings as standard.

Robert Haas pushed:

- Avoid having two copies of the HOT-chain search logic.  It's been
  like this since HOT was originally introduced, but the logic is
  complex enough that this is a recipe for bugs, as we've already
  found out with SSI.  So refactor heap_hot_search_buffer() so that it
  can satisfy the needs of index_getnext(), and make index_getnext()
  use that rather than duplicating the logic.  This change was
  originally proposed by Heikki Linnakangas as part of a larger
  refactoring oriented towards allowing index-only scans.  I extracted
  and adjusted this part, since it seems to have independent merit.
  Review by Jeff Davis.

- Mention that SSPI authentication can use GSSAPI on non-Windows
  systems.  As noted by Christian Ullrich.

- Try again to make the visibility map crash safe.  My previous
  attempt was quite a bit less than half-baked with respect to

- Add a missing_ok argument to get_object_address().  This lays the
  groundwork for an upcoming patch to streamline the handling of DROP
  commands.  KaiGai Kohei

- Fix bugs in relpersistence handling during table creation.  Unlike
  the relistemp field which it replaced, relpersistence must be set
  correctly quite early during the table creation process, as we rely
  on it quite early on for a number of purposes, including security
  checks.  Normally, this is set based on whether the user enters
  a relation may also be made implicitly temporary by creating it in
  pg_temp.  This patch fixes the handling of that case, and also
  disables creation of unlogged tables in temporary tablespace (such
  table indeed skip WAL-logging, but we reject an explicit
  specification) and creation of relations in the temporary schemas of
  other sessions (which is not very sensible, and didn't work right
  anyway).  Report by Amit Khandekar.

Simon Riggs pushed:

- Allow callers to pass a missing_ok flag when opening a relation.
  Since the names try_relation_openrv() and try_heap_openrv() don't
  seem quite appropriate, rename the functions to
  relation_openrv_extended() and heap_openrv_extended().  This is also
  more general, if we have a future need for additional parameters
  that are of interest to only a few callers.  This is infrastructure
  for a forthcoming patch to allow get_object_address() to take a
  missing_ok argument as well.  Patch by me, review by Noah Misch.

- Reduce impact of btree page reuse on Hot Standby by fixing off-by-1
  error.  WAL records of type XLOG_BTREE_REUSE_PAGE were generated
  using a latestRemovedXid one higher than actually needed because xid
  used was page opaque->btpo.xact rather than an actually removed xid.
  Noticed on an otherwise quiet system by Noah Misch.  Noah Misch and
  Simon Riggs

- Introduce compact WAL record for the common case of commit
  (non-DDL).  XLOG_XACT_COMMIT_COMPACT leaves out invalidation
  messages and relfilenodes, saving considerable space for the vast
  majority of transaction commits.  XLOG_XACT_COMMIT keeps same
  definition as XLOG_PAGE_MAGIC 0xD067 and earlier.  Leonardo
  Francalanci and Simon Riggs

Alvaro Herrera pushed:

- Modernise pg_hba.conf token processing.  The previous coding was
  ugly, as it marked special tokens as such in the wrong stage,
  relying on workarounds to figure out if they had been quoted in the
  original or not.  This made it impossible to have specific keywords
  be recognized as such only in certain positions in HBA lines, for
  example.  Fix by restructuring the parser code so that it remembers
  whether tokens were quoted or not.  This eliminates widespread
  knowledge of possible known keywords for all fields.  Also improve
  memory management in this area, to use memory contexts that are
  reset as a whole instead of using retail pfrees; this removes a
  whole lotta crufty (and probably slow) code.  Instead of calling
  strlen() three times in next_field_expand on the returned token to
  find out whether there was a comma (and strip it), pass back the
  info directly from the callee, which is simpler.  In passing, update
  historical artifacts in hba.c API.  Authors: Brendan Jurd, Alvaro
  Herrera Reviewed by Pavel Stehule

- Remove rel.h from objectaddress.h; only relcache.h is necessary.
  Add rel.h to some files that now need it.

- Fix outdated comment.  Extracted from a patch by Bernd Helmle

- Enable CHECK constraints to be declared NOT VALID.  This means that
  they can initially be added to a large existing table without
  checking its initial contents, but new tuples must comply to them; a
  separate pass invoked by ALTER TABLE / VALIDATE can verify existing
  data and ensure it complies with the constraint, at which point it
  is marked validated and becomes a normal part of the table
  ecosystem.  An non-validated CHECK constraint is ignored in the
  planner for constraint_exclusion purposes; when validated, cached
  plans are recomputed so that partitioning starts working right away.
  This patch also enables domains to have unvalidated CHECK
  constraints attached to them as well by way of ALTER DOMAIN / ADD
  CONSTRAINT / NOT VALID, which can later be validated with ALTER
  DOMAIN / VALIDATE CONSTRAINT.  Thanks to Thom Brown, Dean Rasheed
  and Jaime Casanova for the various reviews, and Robert Hass for
  documentation wording improvement suggestions.  This patch was
  sponsored by Enova Financial.

Magnus Hagander pushed:

- Protect pg_stat_reset_shared() against NULL input.  Per bug #6082,
  reported by Steve Haslam

- Mark pg_stat_reset_shared as strict.  This is the proper fix for bug
  #6082 about pg_stat_reset_shared(NULL) causing a crash, and it
  reverts commit 79aa44536f3980d324f486504cde643ce23bf5c6 on head.
  The workaround of throwing an error from inside the function is left
  on backbranches (including 9.1) since this change requires a new

Heikki Linnakangas pushed:

- Grab predicate locks on matching tuples in a lossy bitmap heap scan.
  Non-lossy case was already handled correctly.  Kevin Grittner

- Move the PredicateLockRelation() call from nodeSeqscan.c to
  heapam.c.  It's more consistent that way, since all the other
  PredicateLock* calls are made in various heapam.c and index AM
  functions.  The call in nodeSeqscan.c was unnecessarily aggressive
  anyway, there's no need to try to lock the relation every time a
  tuple is fetched, it's enough to do it once.  This has the
  user-visible effect that if a seq scan is initialized in the
  executor, but never executed, we now acquire the predicate lock on
  the heap relation anyway.  We could avoid that by taking the lock on
  the first heap_getnext() call instead, but it doesn't seem worth the
  trouble given that it feels more natural to do it in
  heap_beginscan().  Also, remove the retail PredicateLockTuple()
  calls from heap_getnext().  In a seqscan, started with heap_begin(),
  we're holding a whole-relation predicate lock on the heap so there's
  no need to lock the tuples individually.  Kevin Grittner and me

Tom Lane pushed:

- Restore correct btree preprocessing of "indexedcol IS NULL"
  conditions.  Such a condition is unsatisfiable in combination with
  any other type of btree-indexable condition (since we assume btree
  operators are always strict).  8.3 and 8.4 had an explicit test for
  this, which I removed in commit
  29c4ad98293e3c5cb3fcdd413a3f4904efff8762, mistakenly thinking that
  the case would be subsumed by the more general handling of IS (NOT)
  NULL added in that patch.  Put it back, and improve the comments
  about it, and add a regression test case.  Per bug #6079 from Renat
  Nasyrov, and analysis by Dean Rasheed.

- Suppress compiler warning about potentially uninitialized variable.
  Maybe some compilers are smart enough to not complain about the
  previous coding ... but mine isn't.

- Fix EXPLAIN to handle gating Result nodes within inner-indexscan
  subplans.  It is possible for a NestLoop plan node to pass an OUTER
  Var into an "inner indexscan" that is an Append construct (derived
  from an inheritance tree or UNION ALL subquery).  The OUTER tuple is
  then passed down at runtime to the leaf indexscan node(s) where it
  will actually be used.  EXPLAIN has to likewise pass the information
  about the nestloop's outer subplan down through the Append node,
  else it will fail to print the outer-reference Vars (with complaints
  like "bogus varno: 65001").  However, there was a case missed in all
  this: we could also have gating Result nodes that were inserted into
  the appendrel plan tree to deal with pseudoconstant qual conditions.
  So EXPLAIN has to pass down the outer plan node to a Result's
  subplan, too.  Per example from Jon Nelson.  The problem is gone in
  9.1 because we replaced the nestloop outer-tuple kluge with a
  Param-based data transfer mechanism.  Also, so far as I can tell,
  the case can't happen before 8.4 because of restrictions on what
  sorts of appendrel members could be pulled up into the parent query.
  So this patch is only needed for 8.4 and 9.0.

- Make distprep and *clean build targets recurse into all
  subdirectories.  Certain subdirectories do not get built if
  corresponding options are not selected at configure time.  However,
  "make distprep" should visit such directories anyway, so that
  constructing derived files to be included in the tarball happens
  without requiring all configure options to be given in the tarball
  build script.  Likewise, it's better if cleanup actions
  unconditionally visit all directories (for example, this ensures
  proper cleanup if someone has done a manual make in such a
  subdirectory).  To handle this, set up a convention that
  subdirectories that are conditionally included in SUBDIRS should be
  added to ALWAYS_SUBDIRS instead when they are excluded.  Back-patch
  to 9.1, so that plpython's spiexceptions.h will get provided in 9.1
  tarballs.  There don't appear to be any instances where distprep
  actions got missed in previous releases, and anyway this fix
  requires gmake 3.80 so we don't want to apply it before 9.1.

- Back-patch creation of tar.bz2 tarball during "make dist".  Since
  commit a4d03bbcdaf7739d7e9073ee76bb186f68ddc163, "make dist" has
  built both gzip- and bzip2-compressed tarballs.  However, this was
  pretty useless, because our tarball build script didn't know about
  it and proceeded to overwrite the bz2 file with new data.
  Back-patch the change to all active branches, so that creation of
  the tar.bz2 file can be removed from the build script.

- Put comments on the installable procedural languages.  Per
  suggestion from Josh Kupershmidt.

- Fix omissions in documentation of the pg_roles view.  Somehow,
  column rolconfig got removed from the documentation of the pg_roles
  view in the 9.0 cycle, although the column is actually still there.
  In 9.1, we'd also forgotten to document the rolreplication column.
  Spotted by Sakamoto Masahiko.

Bruce Momjian pushed:

- Change pg_upgrade to use port 50432 by default to avoid unintended
  client connections during the upgrade.  Also rename data/bin/port
  environment variables to being with 'PG'.  Also no longer honor

- In the pg_upgrade docs, move 50432 port mention to the place where
  we talk about client access.

- In pg_upgrade 9.0 and 9.1, document suggestion of using a
  non-default port number to avoid unintended client connections.

Andrew Dunstan pushed:

- Fix bat file quoting of %ENV.

== Abgelehnte Patches (bis jetzt) ==

No one was disappointed this week :-)

== Eingesandte Patches ==

Heikki Linnakangas sent in a patch to remove some slowness from

Shigeru HANADA sent in another revision of the patch to add SQL/MED
per-column GENERIC OPTIONs.

Simon Riggs sent in a WIP patch to redefine SnapshotNow as a snapshot
type that includes a list of transactions-in-progress, somewhat like
an MVCC snapshot.

Gabriele Bartolini sent in a patch to add a "dry run" option '-n' to
pg_archivecleanup which performs a dry-run and outputs the names of
the files to be removed to stdout.

Robert Haas sent in another revision of the patch to reduce the
overhead of frequent table locks by locking less frequently.

Robert Haas sent in an update to the patch to allow for time-delayed

KaiGai Kohei sent in three more revisions of a patch intended to fix
certain types of information leaks in views.

Alexander Korotkov, Tom Lane and Heikki Linnakangas traded versions of
a patch to build GiST indexes faster.

Martin Pihlak sent in another revision of the patch for SSL with
non-blocking sockets.

KaiGai Kohei sent in another revision of a patch intended to
consolidate the DROP machinery into one spot.

Kevin Grittner sent in a patch to modularize some aspects of SSI with
respect to sequential scans.

Laurenz Albe and Shigeru HANADA traded patches to fix an issue in
file FDWs.

KaiGai Kohei sent in two revisions of a patch to fix some issues in
SECURITY LABELs on shared database objects, per review from Joe

Heikki Linnakangas sent in another WIP patch to do a latch-based
implementation of wakeup on postmaster death.

Jun Ishiduka sent in another revision of the patch to allow an online
base backup from a hot standby.

Noah Misch sent in another revision of a patch to avoid index rebuilds
for ALTER TABLE...ALTER TYPE that don't actually need to rewrite.

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

Hitoshi Harada sent in another revision of the patch to parameterize
aggregate subqueries.

KaiGai Kohei sent in another revision of the patch to create a
userspace access vector cache.


No Trackbacks


Display comments as Linear | Threaded

No comments

Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
To leave a comment you must approve it via e-mail, which will be sent to your address after submission.
Form options