== PostgreSQL Weekly News - September 23 2012 ==
Bug fix releases 9.2.1, 9.1.6, 9.0.10, 8.4.14, and 8.3.21 will be out
soon. Get ready to upgrade!
== PostgreSQL Product News ==
Another PostgreSQL Diff Tool (apgdiff) 2.4, a tool for database diffs,
The Lua PostgreSQL module has been updated.
ODB 2.1.0, an ORM for C++, supports PostgreSQL.
== PostgreSQL Jobs for September ==
== PostgreSQL Local ==
There will be a PGDay October 3, 2012 at UNICAMP, Campinas, São Paulo
PostgreSQL Session will be held on October 4th, 2012, in Paris,
France. More information at:
PostgreSQL Conference Europe 2012 will be in Prague, Czech Republic
on October 23-26.
There will be a PGDay November 9, 2012 at USP, São Paulo
PostgreSQL Day Argentina 2012 will be held on November 13th in Bernal,
Buenos Aires, at the National University of Quilmes. It will cover
topics for PostgreSQL users, developers and contributors, as well as
decision and policy makers. For more information about the
conference, please see the website at
This year Ecuador's PGDay will be held at Quito city on November 17th,
2012. The Call for Papers is open until October 10. Send proposals
to Jaime Casanova jaime 2ndquadrant com.
The sixth edition of the Italian PostgreSQL Day (PGDay.IT 2012) will
be held on November 23, 2012 in Prato, Tuscany. The International
Call for Papers is now open. Talks and presentations in English are
accepted. Information in English for papers submission is available
== 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 ==
Tom Lane pushed:
- Provide adequate documentation of the "table_name *" notation.
Somewhere along the line, somebody decided to remove all trace of
this notation from the documentation text. It was still in the
command syntax synopses, or at least some of them, but with no
indication what it meant. This will not do, as evidenced by the
confusion apparent in bug #7543; even if the notation is now
unnecessary, people will find it in legacy SQL code and need to know
what it does.
- Fix array_typanalyze to work for domains over arrays. Not sure how
we missed this case, but we did. Per bug #7551 from Diego de Lima.
- Fix planning of btree index scans using ScalarArrayOpExpr quals. In
commit 9e8da0f75731aaa7605cf4656c21ea09e84d2eb1, I improved btree to
handle ScalarArrayOpExpr quals natively, so that constructs like
"indexedcol IN (list)" could be supported by index-only scans.
Using such a qual results in multiple scans of the index,
under-the-hood. I went to some lengths to ensure that this still
produces rows in index order ... but I failed to recognize that if a
higher-order index column is lacking an equality constraint, rescans
can produce out-of-order data from that column. Tweak the planner
to not expect sorted output in that case. Per trouble report from
- Update time zone data files to tzdata release 2012f. DST law
changes in Fiji.
- Put back AcceptInvalidationMessages calls in heap_openrv(_extended).
These calls were removed in commit
4240e429d0c2d889d0cda23c618f94e12c13ade7 as part of a general
refactoring and improvement of DDL locking. However, there's a
problem not solved by the rewrite, which is that GRANT/REVOKE update
pg_class.relacl without taking any particular lock on the target
table as such. If another backend fails to do
AcceptInvalidationMessages, it won't notice a recently-committed
change in ACLs. Bug #7557 from Piotr Czachur demonstrates that
there's at least one code path in 9.2.0 in which a command fails to
do any AcceptInvalidationMessages calls at all, if the current
transaction already holds all the locks it will need. Since we're
hard up against the release deadline for 9.2.1, fix this by putting
back the AcceptInvalidationMessages calls in heap_openrv and
heap_openrv_extended, thereby restoring the historical behavior in
this area. We ought to look for a more elegant and perhaps more
bulletproof solution, but there's no time for that right now.
- Update release notes for 9.2.1, 9.1.6, 9.0.10, 8.4.14, 8.3.21.
- Improve ruleutils.c's heuristics for dealing with rangetable
aliases. The previous scheme had bugs in some corner cases
involving tables that had been renamed since a view was made. This
could result in dumped views that failed to reload or reloaded
incorrectly, as seen in bug #7553 from Lloyd Albin, as well as in
some pgsql-hackers discussion back in January. Also, its behavior
for printing EXPLAIN plans was sometimes confusing because of
willingness to use the same alias for multiple RTEs (it was Ashutosh
Bapat's complaint about that aspect that started the January
thread). To fix, ensure that each RTE in the query has a unique
unqualified alias, by modifying the alias if necessary (we add "_"
and digits as needed to create a non-conflicting name). Then we can
just print its variables with that alias, avoiding the confusing and
bug-prone scheme of sometimes schema-qualifying variable names. In
EXPLAIN, it proves to be expedient to take the further step of only
assigning such aliases to RTEs that are actually referenced in the
query, since the planner has a habit of generating extra RTEs with
the same alias in situations such as inheritance-tree expansion.
Although this fixes a bug of very long standing, I'm hesitant to
back-patch such a noticeable behavioral change. My experiments
while creating a regression test convinced me that actually
incorrect output (as opposed to confusing output) occurs only in
very narrow cases, which is backed up by the lack of previous
complaints from the field. So we may be better off living with it
in released branches; and in any case it'd be smart to let this
ripen awhile in HEAD before we consider back-patching it.
- Minor corrections for ALTER TYPE ADD VALUE IF NOT EXISTS patch.
Produce a NOTICE when the label already exists, for consistency with
other CREATE IF NOT EXISTS commands. Also, fix the code so it
produces something more user-friendly than an index violation when
the label already exists. This not incidentally enables making a
regression test that the previous patch didn't make for fear of
exposing an unpredictable OID in the results. Also some
wordsmithing on the documentation.
Peter Eisentraut pushed:
- libpq: Add missing directory to installdirs target. It prevented
the libpq directory from being installable by itself.
- pg_upgrade: Remove check for pg_config. It is no longer used, but
was still being checked for. bug #7548 from Reinhard Max
- Update translation updates instructions
Alvaro Herrera pushed:
- Remove execdesc.h inclusion from tcopprot.h
- RELEASE_NOTES: Fix typo. Jan Urbański
Heikki Linnakangas pushed:
- Fix obsolete comment. load_hba and load_ident load stuff in a
separate memory context nowadays, not in the current memory context.
- Parse pg_ident.conf when it's loaded, keeping it in memory in parsed
format. Similar changes were done to pg_hba.conf earlier already,
this commit makes pg_ident.conf to behave the same as pg_hba.conf.
This has two user-visible effects. First, if pg_ident.conf contains
multiple errors, the whole file is parsed at postmaster startup time
and all the errors are immediately reported. Before this patch, the
file was parsed and the errors were reported only when someone tries
to connect using an authentication method that uses the file, and
the parsing stopped on first error. Second, if you SIGHUP to reload
the config files, and the new pg_ident.conf file contains an error,
the error is logged but the old file stays in effect. Also, regular
expressions in pg_ident.conf are now compiled only once when the
file is loaded, rather than every time the a user is authenticated.
That should speed up authentication if you have a lot of regexps in
the file. Amit Kapila
Andrew Dunstan pushed:
- Allow IF NOT EXISTS when add a new enum label. If the label is
already in the enum the statement becomes a no-op. This will reduce
the pain that comes from our not allowing this operation inside a
transaction block. Andrew Dunstan, reviewed by Tom Lane and Magnus
- Fix docs typo
== Rejected Patches (for now) ==
No one was disappointed this week :-)
== Pending Patches ==
Joachim Wieland sent in another revision of the patch to implement
Heikki Linnakangas sent in two different revisions of the patch to
create a facility to read transaction logs.
Marco Nenciarini sent in another revision of the patch to enable
support for array element foreign keys.
Amit Kapila sent in a set of tests for writeable views. In response,
Dean Rasheed sent in another revision of the patch implementing
Shigeru HANADA and Pavel Stehule traded patches to add \gset, which
sets psql variables to the row in the output of the SQL query it
Heikki Linnakangas sent in another revision of the patch to help
XLogInsert scale better.
Tomas Vondra sent in another revision of the patch to aggregate
pg_bench information in the log.
Selena Deckelmann sent in another revision of the patch to improve the
way "include" directives in postgresql.conf work.
Amit Kapila and Pavel Stehule traded test cases and patches for the
feature to get the number of rows processed by COPY.
Karl O. Pinc sent in three revisions of a patch to add a
--truncate-tables option to pg_restore.
Amit Kapila sent in another revision of the patch to allow detecting
network partitions more quickly during replication.
Fabrízio de Royes Mello sent in another revision of the patch to add
CREATE SCHEMA IF NOT EXISTS.
Andres Freund sent in a design document for WAL-based logical
KaiGai Kohei sent in another revision of the patch to allow writes on
Satoshi Nagayasu sent in a PoC patch to implement load balancing in
Karl O. Pinc sent in a doc patch to add a warning about how partial
database restores work.
Karl O. Pinc sent in a doc patch to add a link from CREATE TABLE to
CREATE TABLE AS.
Karl O. Pinc sent in a doc patch clarifying which system catalog
tables have OIDs vs. ordinary PRIMARY KEYs.
Sent via pgsql-announce mailing list ([email protected])
To make changes to your subscription: