== PostgreSQL Weekly News - January 18 2009 ==
== PostgreSQL Tip of the Week ==
To log queries on only one database, do:
ALTER <databasename> SET log_statement = 'all'
== PostgreSQL Jobs for January ==
== PostgreSQL Local ==
Richard Broersma is coordinating booth volunteers for SCALE (below).
Contact him at richard DOT broersma AT gmail DOT com.
The Moscow PostgreSQL and MySQL groups will be holding a join panel
January 22, 2009 in Moscow. Details and sign-up below.
SYDPUG will be meeting February 3, 2009 at 6:30pm at Fujitsu Australia
in North Syndey. Mark Leslie will talk about the history and
motivations of PostGIS.
JNBPUG will be meeting February 9 19:00 at News Cafe on New Road in
Many of the usual suspects will be at FOSDEM February 7-8 in Brussels,
PostgreSQL will be at SCALE February 20-22 in Los Angeles.
Andreas 'ads' Scherbaum will be presenting a talk at Perl Workshop
2009 on February 25 in Frankfurt am Main, Germany.
PostgreSQL Conference, U.S. will be holding a PgDay at LinuxFest
Northwest (April 25/26th). The call for papers is out at
PGCon 2009 will be held 21-22 May 2009, in Ottawa at the University of
Ottawa. It will be preceded by two days of tutorials on 19-20 May
PGCon Brazil will be take place October 23-24 2009 at Unicamp in
Campinas, Sao Paulo state.
== PostgreSQL in the News ==
Planet PostgreSQL: http://planet.postgresql.org/
PostgreSQL Weekly News is brought to you this week by David Fetter and
Submit news and announcements by Sunday at 3:00pm Pacific time.
Please send English language ones to david(at)fetter(dot)org, German language
to pwn(at)pgug(dot)de, Italian language to pwn(at)itpug(dot)org(dot)
== Applied Patches ==
Peter Eisentraut committed:
- Add ONLY support to LOCK and TRUNCATE. By default, these commands
are now recursive. Note this incompatibility in the release notes.
- In pgsql/src/backend/parser/gram.y, use qualified_name instead of
relation_expr for commands that have no business with inheritance
recursion: ALTER INDEX, ALTER SEQUENCE, ALTER TRIGGER, ALTER VIEW.
They would just silently ignore the ONLY. ALTER TABLE has mixed
behavior and cannot be dealt with this way because of the resulting
- In pgsql/doc/src/sgml/ref/select.sgml, add some minimal
documentation that the SQL standard requires parentheses after ONLY.
- In pgsql/src/tools/make_etags, remove useless (and insecure) temp
- In pgsql/src/interfaces/ecpg/ecpglib/Makefile, misc.o depends on
pg_config_paths.h when --enable-nls is used.
- In pgsql/src/pl/tcl/pltcl.c, make error messages match backend
- In pgsql/src/backend/catalog/information_schema.sql, make the
columns is_insertable_into and is_updatable behave uniformly
correctly. They are supposed to examine which kinds of rules are
present, which they did in some of the info schema views but not in
- In pgsql/src/tools/make_etags, avoid version-control system
directories when creating TAGS. Besides being wasteful, this can
collide with repostory metadata on case-insensitive file sytems.
- In pgsql/src/nls-global.mk, make .pot files depend on the makefiles,
so that they are updated when the file or trigger function lists are
- In pgsql/src/interfaces/ecpg/test/Makefile, build needed things in
src/test/regress/ first. And some build rules normalization.
- NLS cleanup in ecpglib Replace leftover instances of _() by
ecpg_gettext(), the latter being the correct way to refer to the
library's message catalog, instead of the one of the program using
the library. Drop NLS support for ecpg_log(), which is a debugging
instrument similar to elog() in the backend. We cannot support NLS
in the ecpg compatlib, because that requires ecpg_gettext, which is
in ecpglib, which is not a dependency of compatlib. It doesn't seem
worthwhile to worry about this, since the only translatable string
is "out of memory", and gettext probably won't be able to do much
without memory either. Adjust messages to project style.
- In pgsql/src/pl/tcl/nls.mk, remove unneeded GETTEXT_TRIGGERS.
- Cleanup pass over PL/Python NLS. Add translation support to
PLy_elog and PLy_exception_set, and clarify some error messages.
- In pgsql/src/bin/pg_ctl/pg_ctl.c, remove period from primary error
- Wordsmithing in pgsql/src/interfaces/ecpg/ecpglib/error.c.
- plpython_error.out is for Python 2.4, plpython_error_3.out is for
Python 2.5, as it was previously.
- In pgsql/src/pl/plpython/expected/plpython_error_1.out, manual
attempt to update this file.
Tom Lane committed:
- In pgsql/src/backend/executor/nodeBitmapHeapscan.c, tweak order of
operations in BitmapHeapNext() to avoid the case of prefetching the
same page we are nanoseconds away from reading for real. There
should be something left to do on the current page before we
consider issuing a prefetch.
- Fix a pg_dump output ordering problem introduced in 8.3 by the
addition of array types for composite types. Although pg_dump
understood it wasn't supposed to dump these array types as separate
objects, it must include them in the dependency ordering analysis,
and it was improperly assigning them the same relatively-high sort
priority as regular types. This resulted in effectively moving
composite types and tables up to that same high priority, which
broke any ordering requirements that weren't explicitly enforced by
dependencies. In particular user-defined operator classes, which
should come out before tables, failed to do so. Per report from
Brendan Jurd. In passing, also fix an ill-considered decision to
give text search objects the same sort priority as functions and
operators --- the sort result looks a lot nicer if different object
types are kept separate. The recent foreign-data patch had copied
that decision, making the sort ordering even messier :-(
Alvaro Herrera committed:
- Simplify the writing of amoptions routines by introducing a
convenience fillRelOptions routine that stores the parsed values in
the struct using a table-based approach. Per Tom suggestion. Also
remove the "continue" in HANDLE_*_RELOPTION macros, which were
useless and in spirit they were assuming too much of how the macros
were going to be used. (Note that these macros are now unused, but
the intention is to introduce some usage in a future autovacuum
patch, which is why they weren't completely removed.) Also, do not
call the string validation routine when not validating. It seems
less error-prone this way, per commentary on the amoptions SGML
- Backpatch to 7.4 the part of 1.84 (from the 8.0 timeline) that
wasn't already patched, viz. str_numth(). The rest of that patch
was already applied as part of 188.8.131.52. Per report and patch from
Andreas 'ads' Scherbaum.
Bruce Momjian committed:
- In pgsql/doc/src/sgml/backup.sgml, document how pglesslog can be
used to reduce the storage requirements of PITR.
- Renable threading build for Solaris 2.5, per report from Andrew
- Check nsl library for gethostbyname_r() on all platforms (HP-UX uses
- In pgsql/src/port/thread.c, remove empty #ifdef block.
- Make 'find' syntax consistent; add .git exclusion to make_ctags.
- In pgsql/doc/src/sgml/wal.sgml, add documentation mention that full
page writes have to be enabled for full pages to be restored during
recovery. Per private report from Michael Renner
- In pgsql/GNUmakefile.in, modify distdir rule to skip .git directory.
Magnus Hagander committed:
- In pgsql/src/interfaces/libpq/fe-auth.c, remove special-handling of
usernames with Kerberos authentication. We will now always use the
system username as the default, and not try to pick it up from the
kerberos ticket. This fixes the spurious error messages that show
up on kerberos-enabled builds when not actually using kerberos, and
puts it in line with how other authentication methods work.
- In pgsql/src/bin/pg_dump/pg_backup_archiver.c, throw an error when
using -C and -1 at the same time in pg_restore. It's not possible
to do CREATE DATABASE inside a transaction, so previously we just
got a server error instead. Backpatch to 8.2, which is where the -1
Heikki Linnakangas committed:
- In pgsql/src/pl/plpgsql/src/pl_exec.c, remove broken Assertions that
failed if a statement executed in PL/pgSQL is rewritten into another
kind of statement, for example if an INSERT is rewritten into an
UPDATE. Back-patch to 8.3 and 8.2. For HEAD, Tom suggested
inventing a new SPI_OK_REWRITTEN return code, but that's not a
backportable solution. I'll do that as a separate patch, this patch
will do as a stopgap measure for HEAD too in the meanwhile.
- In pgsql/doc/src/sgml/func.sgml, change explanation of
pg_switch_xlog()'s return value to match code.
- Add vacuum_freeze_table_age GUC option, to control when VACUUM
should ignore the visibility map and scan the whole table, to
Teodor Sigaev committed:
- In pgsql/src/backend/tsearch/wparser_def.c, fix generation too long
headline with ShortWords. Per
- Fix URL generation in headline. Only tag lexeme will be replaced by
- In pgsql/contrib/tsearch2/expected/tsearch2.out, sync output of
tsearch2 regression test.
- In pgsql/contrib/tsearch2/rank.c, fix uninitialized variables in
Neil Conway committed:
- In pgsql/doc/src/sgml/ref/create_user_mapping.sgml, fix typo.
- In pgsql/doc/src/sgml/ref/create_server.sgml, fix an ungrammatical
== Rejected Patches (for now) ==
No one was disappointed this week :-)
== Pending Patches ==
Koichi Suzuki sent in another revision of the PITR improvement patch.
Bernd Helmle sent in another revision of his patch to make VIEWs
Magnus Hagander sent in a patch which improves the error and message
when the incompatible options -1 and -c are called together.
KaiGai Kohei sent in a WIP patch to fix some edge cases in the
column-level privileges patch.
KaiGai Kohei sent in five more revisions of his SE-PostgreSQL patches.
Alvaro Herrera sent in two revisions of a patch which adds namespaces
Robert Haas sent in a patch which helps fix log rotation.
Fujii Masao sent in another revision of his synchronous replication
KaiGai Kohei sent in a patch which puts invocations of
markColumnForSelectPriv() in transformJoinUsingClause() to mark those
Stephen Frost sent in four more revisions of his column-level
Ramon Lawrence and Bryce Cutt sent in another revision of the patch to
improve the performance of multi-batchhash join for skewed data sets.
Simon Riggs sent in three more revisions of the hot standby patch.
Alvaro Herrera sent in a patch to move a tablespace.c call from smgr.c
into the new storage.c.
Teodor Sigaev sent in another revision of the patch to add B-Tree
emulation to GIN.
Teodor Sigaev sent in another revision of the GIN improvements patch.
Peter Eisentraut sent in an update to Bernd Helmle's patch for
Alan Li sent in a patch which fixes some compiler warnings in gcc
pgsql-announce by date
|Next:||From: Dan Langille||Date: 2009-01-20 03:05:11|
|Subject: PGCon 2009 RFP|
|Previous:||From: Joshua D. Drake||Date: 2009-01-12 20:17:07|
|Subject: PgUS 2008 end of year summary|