PostgreSQL Weekly News – June 20 2010

== PostgreSQL Weekly News – June 20 2010 ==

== PostgreSQL Jobs for June ==

== PostgreSQL Local ==

Michael Renner will be speaking at Netways OSDC in Nuremberg, Germany,
which will be June 23-24, 2010.

CHAR(10), the PostgreSQL Conference on Clustering, High Availability
and Replication is now open for online registration and bookings.
July 2-3 2010, Oriel College, Oxford University, UK

PDXPUG Day will be July 18, 2010 at the Oregon Convention Center in
Portland, OR. For more information, see:

OSCON will take place in Portland, Oregon July 19-23, 2010.

== PostgreSQL in the News ==

Planet PostgreSQL:

PostgreSQL Weekly News is brought to you this week by David Fetter.

Submit news and announcements by Sunday at 3:00pm Pacific time.
Please send English language ones to, German language
to, Italian language to Spanish language

== Applied Patches ==

Heikki Linnakangas committed:

– In pgsql/src/backend/access/transam/xlog.c, if a corrupt WAL record
is received by streaming replication, disconnect and retry. If the
record is genuinely corrupt in the master database, there’s little
hope of recovering, but it’s better than simply retrying to apply
the corrupt WAL record in a tight loop without even trying to
retransmit it, which is what we used to do.

ITAGAKI Takahiro committed:

– In pgsql/src/bin/psql/po/ja.po, fix typo in Japanese translation for
psql “Use \d+ to list them.”

– Add new GUC categories corresponding to sections in docs, and move
description for vacuum_defer_cleanup_age to the correct category.
Sections in postgresql.conf are also sorted in the same order with
docs. Per gripe by Fujii Masao, suggestion by Heikki Linnakangas,
and patch by me.

– In pgsql/src/include/replication/walsender.h, remove prototype of
GetOldestWALSendPointer(), that is marked as NOT_USED.

Simon Riggs committed:

– In pgsql/contrib/Makefile, new contrib module for use as an
archive_cleanup_command, or as a standalone utility for removing
files from archive.

– Files for pg_archivecleanup.

– Docs for pg_archivecleanup.

Bruce Momjian committed:

– In pgsql/doc/src/sgml/plperl.sgml, fix doc plperl doc with is -> are

– Properly define pg_upgrade global variable, per bug report from
Chris Ruprecht on Mac (64 bit).

– In pgsql/doc/src/sgml/ref/select.sgml, clarify SELECT FOR UPDATE
behavior in docs.

– In pgsql/contrib/pg_upgrade/option.c, fix storage of getopt()
return, should be ‘int’, for pg_upgrade. Steve Singer.

– In pgsql/doc/src/sgml/release-9.0.sgml, 9.0 release notes updates.
Josh Berkus

– In pgsql/doc/src/sgml/release-9.0.sgml, update doc description for
9.0 release note item: Have <command>SELECT</> and <command>CREATE
TABLE AS</> return row counts to the client

– In pgsql/contrib/pg_upgrade/tablespace.c, fix pg_upgrade to remove
malloc(0) call.

Tom Lane committed:

– In pgsql/contrib/dblink/dblink.c, rearrange dblink’s
dblink_build_sql_insert() and related routines to open and lock the
target relation just once per SQL function call. The original
coding obtained and released lock several times per call. Aside
from saving a not-insignificant number of cycles, this eliminates
possible race conditions if someone tries to modify the relation’s
schema concurrently. Also centralize locking and
permission-checking logic. Problem noted while investigating a
trouble report from Robert Voinea — his problem is still to be
fixed, though.

– Consolidate and improve checking of key-column-attnum arguments for
dblink_build_sql_insert() and related functions. In particular, be
sure to reject references to dropped and out-of-range column
numbers. The numbers are still interpreted as physical column
numbers, though, for backward compatibility. This patch replaces
Joe Conway’s patch of 2010-02-03, which handled only some aspects of
the problem.

– Fix dblink_build_sql_insert() and related functions to handle
dropped columns correctly. In passing, get rid of some dead logic
in the underlying get_sql_insert() etc functions — there is no
caller that will pass null value-arrays to them. Per bug report
from Robert Voinea.

– Change the interpretation of the primary_key_attnums parameter of
dblink_build_sql_insert() and related functions. Now the column
numbers are treated as logical not physical column numbers. This
will provide saner behavior in the presence of dropped columns;
furthermore, if we ever get around to allowing rearrangement of
logical column ordering, the original definition would become nearly
untenable from a usability standpoint. Per recent discussion of
dblink’s handling of dropped columns. Not back-patched for fear of
breaking existing applications.

– In pgsql/doc/src/sgml/libpq.sgml, fix typo, init => int, per KOIZUMI

– Don’t allow walsender to send WAL data until it’s been safely
fsync’d on the master. Otherwise a subsequent crash could cause the
master to lose WAL that has already been applied on the slave,
resulting in the slave being out of sync and soon corrupt. Per
recent discussion and an example from Robert Haas. Fujii Masao.

– In pgsql/doc/src/sgml/ref/copy.sgml, add missing close brackets in
old-style COPY syntax diagram. Spotted by Evan Carroll.

– In pgsql/contrib/pg_archivecleanup/pg_archivecleanup.c, clean up
pg_archivecleanup’s error and logging output: put newlines in sane
places, make messages follow project’s message style guidelines.
Also, avoid closedir(NULL). Fujii Masao and Tom Lane

– In pgsql/src/backend/access/transam/xlog.c, make
RemoveOldXlogFiles’s debug printout match style used elsewhere: log
and seg aren’t an XLogRecPtr and shouldn’t be printed like one.
Fujii Masao.

– Clean up some randomness associated with trace_recovery_messages:
don’t put the variable declaration in the middle of a bunch of
externs, and do use extern where it should be used.

– Fix mishandling of whole-row Vars referencing a view or sub-select.
If such a Var appeared within a nested sub-select, we failed to
translate it correctly during pullup of the view, because the
recursive call to replace_rte_variables_mutator was looking for the
wrong sublevels_up value. Bug was introduced during the addition of
the PlaceHolderVar mechanism. Per bug #5514 from Marcos Castedo.

Andrew Dunstan committed:

– In pgsql/src/tools/msvc/, unbreak MSVC builds for
pg_archivecleanup by linking with libpgport.

– Remove perl symbol table additions for plperl functions, and mention
of it in the release notes, as it is not apparently providing
anything useful.

Robert Haas committed:

– In pgsql/doc/src/sgml/ref/analyze.sgml, document new 9.0 behavior of
ANALYZE on inheritance hierarchies. In particular, note that
autovacuum does not yet understand that it might need to vacuum
inheritance parents as a result of changes to the child tables.

– Remove hstore’s text[] => text[] operator. This is not yet in any
released version, so we still have the option to backtrack.
Instead, document hstore(text[], text[]). Per discussion.

– In pgsql/doc/src/sgml/func.sgml, document that receive location can
rewind if replication restarts. Fujii Masao, with some further
wordsmithing by me.

Peter Eisentraut committed:

– Refactor sprintf calls with computed format strings into multiple
calls with constant format strings, so that the compiler can more
easily check the formats for correctness.

– Add notes that CREATE/DROP CONVERSION is similar to CREATE/DROP
TRANSLATION in the SQL standard.

== Rejected Patches (for now) ==

No one was disappointed this week 🙂

== Pending Patches ==

Robert Haas sent in a patch to implement –quote-all-identifiers for
pg_dump and pg_dumpall, per discussion.

KaiGai Kohei sent in two revisions of a patch to add a security hook
to InitPostgres().

KaiGai Kohei sent in a patch to rework DML permissions checks.

KaiGai Kohei sent in a patch to add makeRangeTblEntry into

KaiGai Kohei sent in a patch to modify the ExecutorCheckPerms() hook.

Fujii Masao sent in a patch to fix a condition where the server
crashes during streaming replication.

Dimitri Fontaine sent in a patch to add a pg_archive_bypass command.

Robert Haas sent in another patch for get_whatever_oid.

Mike Lewis sent in another revision of the patch to enhance
performance in array utility functions.

ITAGAKI Takahiro sent in a patch to reorganize GUC categories.

ITAGAKI Takahiro sent in a patch to implement foreign tables for

Robert Haas sent in a patch to turn => into & for hstore.

Florian Pflug sent in a patch to show individual statement latencies
in pgbench output.

Zoltan Boszormenyi sent in a patch to fix a performance problem in

ITAGAKI Takahiro sent in an update revision of the patch for
table partitioning syntax.

ITAGAKI Takahiro sent in a patch to add a view to pg_catalog for
walsender activity.

Comments are closed.