Skip to content

Wöchentlicher PostgreSQL Newsletter - 30. August 2009

Der Originalartikel befindet sich unter:

== Wöchentlicher PostgreSQL Newsletter - 30. August 2009 ==

8.5Alpha1, das erste PostgreSQL Alpha Release, ist zum Download
verfügbar. Release Notes, generelle Alpha Informationen und Downloads
sind hier verfügbar:

Andreas (ads) Scherbaums Buch, PostgreSQL. Datenbankpraxis für
Anwender, Administratoren und Entwickler, ist erschienen.

Bugfix Releases 8.4.1, 8.3.8, 8.2.13, 8.1.17, 8.0.21 und 7.4.25
erscheinen bald. Fertigmachen zum Upgrade!

Der Einsendeschluß für Vorträge für JDCon wurde bis zum 5. September
verlängert. Vorträge einreichen!

== PostgreSQL Produkt Neuigkeiten ==

once:radix Version 1.5, ein Rapid Application Development System,
welches auf PostgreSQL 8.4 basiert, ist erschienen.

Benetl 3.0, ein ETL Werkzeug für Dateien die PostgreSQL nutzen, ist

PostgreSQL Replicator 8.3.1-1.8, ehemals bekannt als Mammoth Replicator,
ist erschienen.

pgpool-II 2.2.4, ein Connection Pooler und mehr, ist erschienen.

== PostgreSQL Jobs im August ==

== PostgreSQL Lokal ==

PyCon Argentina findet in Buenos Aires am 4. und 5. September 2009

SFPUG präsentiert: Nathan Boley über Statistiken und Postgres. Am 8.
September 2009. Details und der Live Webcast unter:

Andreas (ads) Scherbaum wird einen Kurs "PostgreSQL im
Unternehmenseinsatz" an der Volkshochschule Magdeburg, Deutschland,
vom 7. bis zum 11. Septemper 2009 geben. Details unter:

Es findet eine Konferenz in Athens, Georgia, USA am 19. September
2009 statt. Der CfP ist eröffnet.

Es findet eine Konferenz in Seattle, Washington, USA am 16.-18.
Oktober 2009 statt. Der CfP ist immer noch offen.

PGCon Brasilien wird am 23.-24. Oktober 2009 auf dem Unicamp in
Campinas, Sao Paulo, stattfinden. Der CfP ist eröffnet!

PGDay.EU 2009 wird an der Telecom ParisTech Universität in Paris,
Frankreich, am 6. und 7. November 2009 stattfinden. Der CfP ist
eröffnet. Vorträge einreichen!

OpenSQL Camp in Portland sucht Sponsoren. Bereite deine Reisepläne
jetzt vor! :)

Die 10. jährliche JPUG Konferenz findet am 20-21. November 2009 in
Tokio, Japan, statt.

FOSDEM 2010 wird am 6./7. Februar 2010 in Brüssel stattfinden.

== PostgreSQL in den News ==

Planet PostgreSQL:

Dieser wöchentliche PostgreSQL Newsletter wurde erstellt von David

Sende Neuigkeiten und Ankündigungen bis Sonntag, 15 Uhr Pazifischer
Zeit. Bitte sende englische Beiträge an, deutsche an, italienische an

== Angewandte Patches ==

Tom Lane committed:

- Run the "tablespace" regression test first not last.  The former
  placement renders useless one of the few test methodologies we have
  for WAL replay, which is to intentionally crash the system just
  after completing the regression tests and see if it recovers to the
  expected database state.  The reason is that DROP TABLESPACE forces
  a checkpoint, so there's essentially no WAL available for replay
  after the tests complete.

- In pgsql/src/bin/psql/input.h, fix inclusions of readline/editline
  header files so that we only attempt to #include the version of
  history.h that is in the same directory as the readline.h we are
  using.  This avoids problems in some scenarios where both readline
  and editline are installed.  Report and patch by Zdenek Kotala.

- In pgsql/src/backend/postmaster/postmaster.c, small correction to
  previous patch: we shouldn't ReleasePostmasterChildSlot for a
  dead_end child, because we didn't AssignPostmasterChildSlot.

- Try to make silent_mode behave somewhat reasonably.  Instead of
  sending stdout/stderr to /dev/null after forking away from the
  terminal, send them to postmaster.log within the data directory.
  Since this opens the door to indefinite logfile bloat, recommend
  even more strongly that log output be redirected when using
  silent_mode.  Move the postmaster's initial calls of load_hba() and
  load_ident() down to after we have started the log collector, if we
  are going to.  This is so that errors reported by them will appear
  in the "usual" place.  Reclassify silent_mode as a LOGGING_WHERE,
  not LOGGING_WHEN, parameter, since it's got absolutely nothing to do
  with the latter category.  In passing, fix some obsolete references
  to -S ... this option hasn't had that switch letter for a long time.
  Back-patch to 8.4, since as of 8.4 load_hba() and load_ident() are
  more picky (and thus more likely to fail) than they used to be.
  This entire change was driven by a complaint about those errors
  disappearing into the bit bucket.

- In pgsql/src/backend/utils/adt/geo_ops.c, remove some unnecessary
  variable assignments, per results of "clang" static checker.  Paul

- Make it reasonably safe to use pg_ctl to start the postmaster from a
  boot-time script.  To do this, have pg_ctl pass down its parent
  shell's PID in an environment variable PG_GRANDPARENT_PID, and teach
  CreateLockFile() to disregard that PID as a false match if it finds
  it in  This allows us to cope with one level of
  postgres-owned shell process even with pg_ctl in the way, so it's
  just as safe as starting the postmaster directly.  You still have to
  be careful about how you write the initscript though.  Adjust the
  comments in contrib/start-scripts/ to not deprecate use of pg_ctl.
  Also, fix the ROTATELOGS option in the OSX script, which was
  indulging in exactly the sort of unsafe coding that renders this fix
  pointless :-(.  A pipe inside the "sudo" will probably result in
  more than one postgres-owned process hanging around.

- In pgsql/src/Makefile.shlib, make the .DEF file generation rules
  safe against tabs in exports.txt.  Per bug #5016, although I think
  the MSVC build scripts may need a similar fix.

- Modify the definition of window-function PARTITION BY and ORDER BY
  clauses so that their elements are always taken as simple
  expressions over the query's input columns.  It originally seemed
  like a good idea to make them act exactly like GROUP BY and ORDER
  BY, right down to the SQL92-era behavior of accepting output column
  names or numbers.  However, that was not such a great idea, for two
  reasons: 1. It permits circular references, as exhibited in bug
  #5018: the output column could be the one containing the window
  function itself.  (We actually had a regression test case
  illustrating this, but nobody thought twice about how confusing that
  would be.) 2. It doesn't seem like a good idea for, eg, "lead(foo)
  OVER (ORDER BY foo)" to potentially use two completely different
  meanings for "foo".  Accordingly, narrow down the behavior of window
  clauses to use only the SQL99-compliant interpretation that the
  expressions are simple expressions.

- In pgsql/src/backend/postmaster/postmaster.c, non-Windows
  EXEC_BACKEND path was broken by recent write_inheritable_socket
  change ... it's got to return true.

- Remove useless code that propagated FrontendProtocol to a backend
  via a PostgresMain switch.  In point of fact, FrontendProtocol is
  already set in a backend process, since ProcessStartupPacket() is
  executed inside the backend --- it hasn't been run by the postmaster
  for many years.  And if it were, we'd still certainly want
  FrontendProtocol to be set before we get as far as PostgresMain, so
  that startup errors get reported in the right protocol.  -v might
  have some future use in standalone backends, so I didn't go so far
  as to remove the switch outright.  Also, initialize FrontendProtocol
  to 0 not PG_PROTOCOL_LATEST.  The only likely result of presetting
  it like that is to mask failure-to-set-it mistakes.

- Remove the use of the pg_auth flat file for client authentication.
  (That flat file is now completely useless, but removal will come
  later.) To do this, postpone client authentication into the startup
  transaction that's run by InitPostgres.  We still collect the
  startup packet and do SSL initialization (if needed) at the same
  time we did before.  The AuthenticationTimeout is applied separately
  to startup packet collection and the actual authentication cycle.
  (This is a bit annoying, since it means a couple extra syscalls; but
  the signal handling requirements inside and outside a transaction
  are sufficiently different that it seems best to treat the timeouts
  as completely independent.) A small security disadvantage is that if
  the given database name is invalid, this will be reported to the
  client before any authentication happens.  We could work around that
  by connecting to database "postgres" instead, but consensus seems to
  be that it's not worth introducing such surprising behavior.
  Processing of all command-line switches and GUC options received
  from the client is now postponed until after authentication.  This
  means that PostAuthDelay is much less useful than it used to be ---
  if you need to investigate problems during InitPostgres you'll have
  to set PreAuthDelay instead.  However, allowing an unauthenticated
  user to set any GUC options whatever seems a bit too risky, so we'll
  live with that.

- Remove duplicate variable initializations identified by clang static
  checker.  One of these represents a nontrivial bug (a
  promptly-leaked palloc), so backpatch.  Greg Stark

- In pgsql/src/backend/utils/cache/relcache.c, remove some useless
  assignments of the result of fread().  Quiets warnings from clang
  static checker, and makes the code more readable anyway IMO.

Alvaro Herrera committed:

- In pgsql/src/bin/pg_dump/pg_backup_custom.c, remove unused variable.
  Per Grzegorz Jaskiewicz's report from LLVM static checker.

- Avoid calling kill() in a postmaster signal handler.  This causes
  problems when the system load is high, per report from Zdenek Kotala
  in <1250860954.1239.114.camel@localhost>; instead of calling kill
  directly, have the signal handler set a flag which is checked in
  ServerLoop.  This way, the handler can return before being called
  again by a subsequent signal sent from the autovacuum launcher.
  Also, increase the sleep in the launcher in this failure path to 1
  second.  Backpatch to 8.3, which is when the signalling between
  autovacuum launcher/postmaster was introduced.  Also, add a couple
  of ReleasePostmasterChildSlot calls in error paths; this part
  backpatched to 8.4 which is when the child slot stuff was

- Fix handling of autovacuum reloptions.  In the original coding,
  setting a single reloption would cause default values to be used for
  all the other reloptions.  This is a problem particularly for
  autovacuum reloptions.  Itagaki Takahiro

Peter Eisentraut committed:

- Make PL/Python tests more compatible with Python 3.  This changes a
  bunch of incidentially used constructs in the PL/Python regression
  tests to equivalent constructs in cases where Python 3 no longer
  supports the old syntax.  Support for older Python versions is

- Use generic attribute management in PL/Python.  Switch the
  implementation of the plan and result types to generic attribute
  management, as described at
<>. This modernizes and
simplifies the code a bit and prepares for Python 3.1, where the old
way doesn't work anymore.

- Enhanced error context support in PL/Python.  Extract the "while
  creating return value" and "while modifying trigger row" parts of
  some error messages into another layer of error context.  This will
  simplify the upcoming patch to improve data type support, but it can
  stand on its own.

- In pgsql/doc/src/sgml/stylesheet.css, update the documentation CSS
  stylesheet to current web site style.

- In pgsql/doc/src/sgml/stylesheet.css, correct my overly enthusiastic
  CSS simplification.

- In pgsql/src/backend/parser/Makefile, add -Wno-error to CFLAGS from
  gram.o as long as it's broken.

- Update of install-sh, mkinstalldirs, and associated configury.
  Update install-sh to that from Autoconf 2.63, plus our
  Darwin-specific changes (which I simplified a bit).  install-sh is
  now able to install multiple files in one run, so we could simplify
  our makefiles sometime.  install-sh also now has a -d option to
  create directories, so we don't need mkinstalldirs anymore.  Use
  AC_PROG_MKDIR_P in, so we can use mkdir -p when
  available instead of install-sh -d.  For consistency with the rest
  of the world, the corresponding make variable has been renamed from
  $(mkinstalldirs) to $(MKDIR_P).

- Derived files that are shipped in the distribution used to be built
  in the source directory even for out-of-tree builds.  They are now
  also built in the build tree.  This should be more convenient for
  certain developers' workflows, and shouldn't really break anything

Bruce Momjian committed:

- Update release notes for 7.4.26, 8.0.22, 8.1.18, 8.2.14, 8.3.8,

- In pgsql/src/tools/pgcvslog, remove handling of CVS entries for
  TODO/FAQ, because they are removed now.

Heikki Linnakangas committed:

- In pgsql/src/backend/access/transam/xlog.c, in the checkpoint
  written at the end of archive recovery, the WAL page header was
  incorrectly initialized with timeline ID 0.  That rendered the WAL
  page unrecoverable, making a subsequent archive recovery stop at
  that point.  ThisTimeLineID needs to be initialized before calling
  AdvanceXLInsertBuffer().  This fixes bug #5011 reported by James
  Bardin.  Backpatch to 8.4, as the bug was introduced by the changes
  to use of bgwriter for writing the end-of-archive-recovery
  checkpoint.  Patch by Tom Lane.

Magnus Hagander committed:

- In pgsql/src/interfaces/ecpg/compatlib/exports.txt, exports.txt
  needs to use spaces as separators, not tabs, to work properly with
  the sed rules.

== Abgelehnte Patches (bis jetzt) ==

No one was disappointed this week :-)

== Eingesandte Patches ==

Paul Matthews sent in another revision of the patch to implement

Tom Lane sent in a WIP patch to move HBA validation after startup,
which is intended to fix a problem reported by Andrew Dunstan with
silent startup mode.

Pavel Stehule sent in another revision of the patch to fix named/mixed

KaiGai Kohei sent in a patch to redo the access control facilities.

Roger Leigh sent in an updated patch to allow psql to use Unicode
formatting characters for pretty-printing.

Alvaro Herrera sent in a WIP patch to allow for per-role, per-database
default GUC settings.

Andrew Dunstan sent in three revisions of a patch to make the output
of the pretty print option for pg_get_viewdef() more readable.

Kevin Grittner sent in two revisions of a LSB conforming launcher

Grzegorz Jaskiewicz sent in a patch to fix some issues raised by the
clang reports.

Roger Leigh sent in another revision of the Unicode pretty-printing
patch for psql.

Pavel Stehule sent in a WIP patch to make cursor operations in
PL/pgsql feature-complete and compatible with that in SQL.

Robert Haas sent in another revision of the join removal patch.

KaiGai Kohei sent in a patch which adds access control features to
large objects.

Paul Matthews sent in two more revisions of the hypot() patch.

Greg Sabino Mullane sent in a patch to add YAML as an output format

Peter Eisentraut sent in a patch to log parameter changes.

Jeff Janes sent in a patch to implement Simon Riggs' LWLock Queue
Jumping idea.

Petr (PJMODOS) Jelinek sent in another revision of the GRANT ON ALL IN
schema patch.

Marko (johto) Tiikkaja sent in a WIP patch to refactor the executor in
preparation for making (INSERT|UPDATE|DELETE)...RETURNING work inside


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