Der Originalartikel befindet sich unter:
== Wöchentlicher PostgreSQL Newsletter - 23. November 2008 ==
Der erste jährliche PGDay Argentinien zieht die Aufmerksamkeit von
ganz Lateinamerika auf sich, mit lebhaften Talks.
Devrim GUNDUZ hat ein neues Set von RPMs veröffentlicht, basierend
auf einem Snapshot vom 18. November 2008, 23:00 Uhr EEST.
== PostgreSQL Jobs im November ==
== PostgreSQL Lokal ==
PgDay Rio de la Plata sucht Sponsoren. Interessierte nehmen bitte
Kontakt auf mit admin AT postgres-arg DOT org.
Dickson Guedes sucht Helfer für das PgMeeting in Florianópolis.
Schreibe an guediz AT gmail DOT com wenn du helfen möchtest.
David Fetter wird auf dem PGDay Rio de la Plata in Buenos Aires am
22. November sprechen.
David Fetter wird auf der OSCD in Sydney vom 3. bis 5. Dezember
FOSDEM 2009 findet am 7. und 8. Februar 2009 in Brüssel, Belgien statt.
PostgreSQL hat einen Stand und teilt sich einen Developer Room mit den
BSD Gruppen. 20 min, 45 min und Lightning Talks sind einzureichen unter:
fosdem (at) postgresql (dot) eu.
PGCon Brasilien wird am 23.-24. Oktober 2009 auf dem Unicamp in
Campinas, Sao Paulo, stattfinden.
== PostgreSQL in den News ==
Planet PostgreSQL: http://planet.postgresql.org/
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 firstname.lastname@example.org, deutsche an
email@example.com, italienische an firstname.lastname@example.org.
== Angewandte Patches ==
Teodor Sigaev committed:
- In pgsql/src/backend/utils/adt/tsvector_op.c, replace plain-memory
ordered array by binary tree in ts_stat() function. Performance is
increased from 50% up to 10^3 times depending on data.
- In pgsql/src/backend/utils/adt/tsvector_op.c, fix compiler warning
"res may be used uninitialized in this function". Actually, it
can't but some compilers are not smart enough. Per Peter Eisentraut
Bruce Momjian committed:
- In pgsql/doc/src/sgml/high-availability.sgml, document that Bucardo
is an example of multi-master replication with conflict resolution.
- In pgsql/doc/src/sgml/high-availability.sgml, add "Most Common
Implementation" row to high availablity table so the table is less
abstract. Most common implementations were already mentioned in the
- Issue a proper error message when MD5 is attempted when
db_user_namespace is enabled. Also document this limitation.
Peter Eisentraut committed:
- Ident authentication over Unix-domain sockets on Solaris, using
getpeerucred() function. Author: Garick Hamlin.
- In pgsql/src/bin/psql/create_help.pl, change this script to Perl 5
style. Add support for multiple refnames. Sort the output by
command name. This previously only worked by source file name,
which doesn't always match the command name exactly. And it
certainly won't work for multiple refnames.
- In pgsql/doc/src/sgml/ref/select.sgml, add WITH as a refname to the
SELECT reference page. Now "\help WITH" works and there will be a
separate WITH(7) man page.
- Add SQL:2008 TABLE command.
- Use relation_expr for TABLE command, requested by Tom Lane.
- Include the platform "FAQs" into the installation instructions. I
weeded out some really old information along the way. FAQ_AIX needs
separate consideration and will be dealt with later.
Magnus Hagander committed:
- In pgsql/src/test/thread/thread_test.c, add required include to
build with cygwin. Andrew Chernow
- Control client certificate requesting with the pg_hba option
"clientcert" instead of just relying on the root certificate file to
- Add support for using SSL client certificates to authenticate to the
database (only for SSL connections, obviously).
- In pgsql/src/test/regress/pg_regress.c, silence compiler warning
about ignored return value. Our comment already clearly stated that
we are aware that we're ignoring it.
- In pgsql/src/pl/plpgsql/src/pl_exec.c, don't pass strings directly
to errdetail() and errhint() - use %s to unescape them. Fixes a
potential security issue (in as yet unreleased code).
- Make the enumvals column of pg_settings be text instead of just a
comma separated string.
- In pgsql/doc/src/sgml/catalogs.sgml, docs update for enumvals patch.
- In pgsql/doc/src/sgml/config.sgml, document which GUC settings are
enums and not strings, along with a short paragraph about what that
- Fix a few more format argument warnings.
Tom Lane committed:
- Some infrastructure changes for the upcoming auto-explain contrib
module: Refactor explain.c slightly to export a convenient-to-use
subroutine for printing EXPLAIN results. Provide hooks for plugins
to get control at ExecutorStart and ExecutorEnd as well as
ExecutorRun. Add some minimal support for tracking the total
runtime of ExecutorRun. This code won't actually do anything unless
a plugin prods it to. Change the API of the DefineCustomXXXVariable
functions to allow nonzero "flags" to be specified for a custom GUC
variable. While at it, also make the "bootstrap" default value for
custom GUCs be explicitly specified as a parameter to these
functions. This is to eliminate confusion over where the default
comes from, as has been expressed in the past by some users of the
custom-variable facility. Refactor GUC code a bit to ensure that a
custom variable gets initialized to something valid (like its
default value) even if the placeholder value was invalid.
- In pgsql/src/backend/utils/misc/guc.c, fix define_custom_variable so
that SUSET custom variables behave somewhat reasonably. It's not
perfect, but it beats the kluge proposed in the auto-explain
- Add auto-explain contrib module for automatic logging of the plans
of slow-running queries. Takahiro Itagaki.
- Fix breakage of bitmap scan plan creation for special index
operators such as LIKE. I oversimplified this code when removing
support for plan-time determination of index operator lossiness back
in April --- I had thought create_bitmap_subplan could stop
returning two separate lists of qual conditions, but it still must
so that we can treat special operators correctly in
create_bitmap_scan_plan. Per report from Rushabh Lathia.
- In pgsql/doc/src/sgml/xaggr.sgml, note that the example aggregate
array_accum is comparable to the now built-in array_agg. Per
suggestion from Robert Haas.
- In pgsql/doc/src/sgml/config.sgml, minor copy-editing.
- Switch the planner over to treating qualifications of a JOIN_SEMI
join as though it is an inner rather than outer join type. This
essentially means that we don't bother to separate "pushed down"
qual conditions from actual join quals at a semijoin plan node;
which is okay because the restrictions of SQL syntax make it
impossible to have a pushed-down qual that references the inner side
of a semijoin. This allows noticeably better optimization of
IN/EXISTS cases than we had before, since the equivalence-class
machinery can now use those quals. Also fix a couple of other
mistakes that had essentially disabled the ability to unique-ify the
inner relation and then join it to just a subset of the left-hand
relations. An example case using the regression database is
SELECT * from tenk1 a, tenk1 b where (a.unique1,b.unique2) in
(select unique1,unique2 from tenk1 c); which is planned reasonably
well by 8.3 and earlier but had been forcing a cartesian join of a/b
in CVS HEAD.
- In pgsql/src/backend/postmaster/bgwriter.c, teach
RequestCheckpoint() to wait and retry a few times if it can't signal
the bgwriter immediately. This covers the case where the bgwriter
is still starting up, as seen in a recent buildfarm failure. In
future it might also assist with clean recovery after a bgwriter
termination and restart --- right now the postmaster treats early
bgwriter exit as a system crash, but that might not always be so.
Heikki Linnakangas committed:
- Rethink the way FSM truncation works. Instead of WAL-logging FSM
truncations in FSM code, call FreeSpaceMapTruncateRel from
smgr_redo. To make that cleaner from modularity point of view, move
the WAL-logging one level up to RelationTruncate, and move
RelationTruncate and all the related WAL-logging to new
src/backend/catalog/storage.c file. Introduce new
RelationCreateStorage and RelationDropStorage functions that are
used instead of calling smgrcreate/smgrscheduleunlink directly. Move
the pending rel deletion stuff from smgrcreate/smgrscheduleunlink to
the new functions. This leaves smgr.c as a thin wrapper around md.c;
all the transactional stuff is now in storage.c. This will make it
easier to add new forks with similar truncation logic, like the
== Abgelehnte Patches (bis jetzt) ==
No one was disappointed this week :-)
== Eingesandte Patches ==
Magnus Hagander sent in another revision of his patch to add a
clientcert option to pg_hba.conf.
Peter Eisentraut sent in a patch to redo xmlconcat() as a variadic
Fujii Masao sent in another revision of his synchronous replication
ITAGAKI Takahiro sent in another revision of his auto_explain contrib
Gregory Stark sent in another revision of his posix fadvise patch.
Marcus Kempe sent in a patch to add async notifications using dblink.
Magnus Hagander sent in three revisions of a patch to implement
wildcard SSL certificate matching in libpq.
Bruce Momjian sent in a patch to fix a bug wherein SSL callbacks are
not managed properly when other libraries are involved.
Martin Pihlak sent in another revision of his patch to implement an
SQL/MED compatible connection manager.
Heikki Linnakangas sent in another revision of his patch to add a
Euler Taveira de Oliveira sent in a patch to replace pg_autovacuum
Ron Mayer sent in another revision of his patch to add interval style
Alex Hunsaker sent in another revision of his SSL patch.