== PostgreSQL Weekly News - February 24 2013 ==
The Call for Papers for PostgreSQL Brazil, to be held August 15-17,
2013 in Porto Velho, RO, Brazil, is open. Proposals are due by March
The schedule for PGCon, the world's PostgreSQL developer conference,
== PostgreSQL Product News ==
The fifth PostgreSQL LiveCD, this one based on PostgreSQL 9.2.3 and
CentOS 6.3, released.
AnySQL Maestro 13.2, an ODBC-based management tool which works with
ODB 2.2.0, an ORM for C++, supports PostgreSQL.
openBarter 0.7.0, a postgres extension implementing primitives of a
barter market place model, released.
PostgreDAC 2.9.3, a Delphi/C++ builder for PostgreSQL, released.
== PostgreSQL Jobs for February ==
== PostgreSQL Local ==
PyPgDay will be held on March 13th at the Santa Clara Convention
Center, the first day of PyCon. Info here:
PGDay NYC 2013 will be held on March 22, 2013 in New York City.
PG Day France is the major French-speaking PostgreSQL community event.
The deadline for sending proposals is Saturday, March 24, 2013 at
PostgreSQL Session will be held on March 28th, 2013 in Paris,
PGCon 2013 will be held May 23-24 2013, in Ottawa at the University of
The 6th annual "Prague PostgreSQL Developers Day" conference,
organized by CSPUG (Czech and Slovak PostgreSQL Users Group), will be
held on May 30, 2013 at Faculty of Mathematics and Physics, Charles
University (Malostranske namesti 25, Prague). The CfP is open until
April 14, 2013 . More information in Czech is at
== PostgreSQL in the News ==
Planet PostgreSQL: http://planet.postgresql.org/
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 [email protected], German language
to [email protected], Italian language to [email protected] Spanish language
to [email protected]
== Applied Patches ==
Peter Eisentraut pushed:
- Add ALTER ROLE ALL SET command. This generalizes the existing ALTER
ROLE ... SET and ALTER DATABASE ... SET functionality to allow
creating settings that apply to all users in all databases.
reviewed by Pavel Stehule
- Add quotes to messages
- doc: Add more compatibility information for triggers. Louis-Claude
Canon and Josh Kupershmidt
- Correct tense in log message
- doc: Remove PostgreSQL version number from xml2 deprecation notice.
It is obviously no longer true.
Alvaro Herrera pushed:
- Split pgstat file in smaller pieces. We now write one file per
database and one global file, instead of having the whole thing in a
single huge file. This reduces the I/O that must be done when
partial data is required -- which is all the time, because each
process only needs information on its own database anyway. Also,
the autovacuum launcher does not need data about tables and
functions in each database; having the global stats for all DBs is
enough. Catalog version bumped because we have a new subdir under
PGDATA. Author: Tomas Vondra. Some rework by Álvaro Testing by
Jeff Janes Other discussion by Heikki Linnakangas, Tom Lane.
- Move ExceptionalCondition back to postgres.h. It needs to be
defined in the backend even when assertions are not enabled. It's
cleaner to put it back, than create a separate #ifdef section in
c.h. Per trouble report from Jeff Janes
- Remove useless variable. Per Jeff Janes
- Move relpath() to libpgcommon. This enables non-backend code, such
as pg_xlogdump, to use it easily. The previous location, in
src/backend/catalog/catalog.c, made that essentially impossible
because that file depends on many backend-only facilities; so this
needs to live separately.
- Blind attempt at fixing the non-MSVC Windows builds. Apparently,
they need -DBUILDING_DLL for the Assert() declarations to work
- Fix copy-and-pasteo. Harmless, but it's certainly better like this.
Noticed by Andres Freund
- Fix some typos and grammatical mistakes. ... as well a update
copyrights statements to 2013. Noted by Thom Brown and Peter
- contrib/Makefile also needs updated. Erik Rijkers
- Add pg_xlogdump contrib program. This program relies on rm_desc
backend routines and the xlogreader infrastructure to emit
human-readable rendering of WAL records. Author: Andres Freund,
with many reworks by Álvaro Reviewed (in a much earlier version) by
Heikki Linnakangas pushed:
- Fix yet another typo in comment. Etsuro Fujita
- Don't pass NULL to fprintf, if a bogus connection string is given to
pg_dump. Back-patch to all supported branches.
- Fix pg_dumpall with database names containing =. If a database name
contained a '=' character, pg_dumpall failed. The problem was in the
way pg_dumpall passes the database name to pg_dump on the command
line. If it contained a '=' character, pg_dump would interpret it as
a libpq connection string instead of a plain database name. To fix,
pass the database name to pg_dump as a connection string,
"dbname=foo", with the database name escaped if necessary.
Back-patch to all supported branches.
- Fix thinko in previous commit. We must still initialize
minRecoveryPoint if we start straight with archive recovery, e.g
when recovering from a normal base backup taken with
pg_start/stop_backup. Otherwise we never consider the system
- If recovery.conf is created after "pg_ctl stop -m i", do crash
recovery. If you create a base backup using an atomic filesystem
snapshot, and try to perform PITR starting from that base backup, or
if you just kill a master server and create recovery.conf to put it
into standby mode, we don't know how far we need to recover before
reaching consistency. Normally in crash recovery, we replay all the
WAL present in pg_xlog, and assume that we're consistent after that.
And normally in archive recovery, minRecoveryPoint,
backupEndRequired, or backupEndPoint is set in the control file,
indicating how far we need to replay to reach consistency. But if
the server was previously up and running normally, and you kill -9
it or take an atomic filesystem snapshot, none of those fields are
set in the control file. The solution is to perform crash recovery
first, replaying all the WAL in pg_xlog. After that's done, we
assume that the system is consistent like in normal crash recovery,
and switch to archive recovery mode after that. Per report from
Kyotaro HORIGUCHI. In his scenario, recovery.conf was created after
"pg_ctl stop -m i". I'm not sure we need to support that exact
scenario, but we should support backing up using a filesystem
snapshot, which looks identical. This issue goes back to at least
9.0, where hot standby was introduced and we started to track when
consistency is reached. In 9.1 and 9.2, we would open up for hot
standby too early, and queries could briefly see an inconsistent
state. But 9.2 made it more visible, as we started to PANIC if we
see a reference to a non-existing page during recovery, if we've
already reached consistency. This is a fairly big patch, so
back-patch to 9.2 only, where the issue is more visible. We can
consider back-patching further after this has received some more
testing in 9.2 and master.
Tom Lane pushed:
- Add postgres_fdw contrib module. There's still a lot of room for
improvement, but it basically works, and we need this to be present
before we can do anything much with the writable-foreign-tables
patch. So let's commit it and get on with testing. Shigeru Hanada,
reviewed by KaiGai Kohei and Tom Lane
- Teach MSVC build system about postgres_fdw. Per buildfarm.
- Need to decorate XactIsoLevel as PGDLLIMPORT for postgres_fdw. Per
- Adjust postgres_fdw's search path handling. Set the remote
session's search path to exactly "pg_catalog" at session start, then
schema-qualify only names that aren't in that schema. This greatly
reduces clutter in the generated SQL commands, as seen in the
regression test changes. Per discussion. Also, rethink use of
FirstNormalObjectId as the "built-in object" cutoff ---
FirstBootstrapObjectId is safer, since the former will accept
objects in information_schema for instance.
- Change postgres_fdw to show casts as casts, not underlying function
calls. On reflection this method seems to be exposing an
unreasonable amount of implementation detail. It wouldn't matter
when talking to a remote server of the identical Postgres version,
but it seems likely to make things worse not better if the remote is
a different version with different casting infrastructure. Instead
adopt ruleutils.c's policy of regurgitating the cast as it was
originally specified; including not showing it at all, if it was
implicit to start with. (We must do that because for some datatypes
explicit and implicit casts have different semantics.)
- Get rid of postgres_fdw's assumption that remote type OIDs match
ours. The only place we depended on that was in sending numeric
type OIDs in PQexecParams; but we can replace that usage with
explicitly casting each Param symbol in the query string, so that
the types are specified to the remote by name not OID. This makes
no immediate difference but will be essential if we ever hope to
support use of non-builtin types.
- Fix whole-row references in postgres_fdw. The optimization to not
retrieve unnecessary columns wasn't smart enough. Noted by Thom
- Fix some planning oversights in postgres_fdw. Include eval costs of
local conditions in remote-estimate mode, and don't assume the
remote eval cost is zero in local-estimate mode. (The best we can
do with that at the moment is to assume a seqscan, which may well be
wildly pessimistic ... but zero won't do at all.) To get a
reasonable local estimate, we need to know the relpages count for
the remote rel, so improve the ANALYZE code to fetch that rather
than just setting the foreign table's relpages field to zero.
- Rename postgres_fdw's use_remote_explain option to
use_remote_estimate. The new name was originally my typo, but per
discussion it seems like a better name anyway. So make the code
match the docs, not vice versa.
- Fix build of contrib/pg_xlogdump. rmgrdesc.c is not auto-generated
now, though it apparently was the last time the Makefile was
Andrew Dunstan pushed:
- Provide MSVC build setup for pg_xlogdump.
== Rejected Patches (for now) ==
No one was disappointed this week :-)
== Pending Patches ==
Zoltan Boszormenyi sent in a pair of patches to fix a pair of bugs:
one where recovery.conf was generated without double-escaping
quoted values, and another in parsing the connection string in libpq
when the parameter value starts with a single-quote character.
Gurjeet Singh sent in a patch to make pgindent work cleanly.
Gurjeet Singh sent in a patch which adds a one-line comment to improve
understanding of the VARSIZE_ANY_EXHDR macro.
Kevin Grittner sent in two revisions of a patch to add a pg_matviews
Alexander Law sent in a patch to fix an issue where postmaster
messages were unreadable in a Windows console.
Andres Freund sent in a patch to fix up the conversion of a relation
to a view for TOAST, etc.
Amit Kapila and Heikki Linnakangas traded patches to add
PQconninfoParseParams and PQconninfodefaultsMerge to libpq.
Etsuro Fujita sent in another revision of a patch to add hooks for
pre- and post-processor executables for COPY and \copy.
Alvaro Herrera sent in another revision of a patch to add an event
trigger on DDL DROP.
Michael Paquier sent in two more revisions of a patch to add REINDEX
Pavel Stehule sent in another revision of a patch to unify the
serializations of booleans and domains over same in XML.
Dimitri Fontaine sent in another revision of a patch to add Extension
Zoltan Boszormenyi sent in another revision of a patch to fix a lock
Sent via pgsql-announce mailing list ([email protected])
To make changes to your subscription: