== PostgreSQL Weekly News - June 15 2008 ==
PostgreSQL 8.3.3, 8.2.9, etc. have been released. Upgrade as soon as
== PostgreSQL Product News ==
check_postgres 1.8.2 released.
== PostgreSQL Jobs for June ==
== PostgreSQL Local ==
pgDay San Francisco needs presentations for August 5. Submit by June 17th.
TorontoPUG's first meeting will be June 23 at The Rhino.
OKPUG's first meeting will be June 23 at 7:00pm at Coach's in Norman, OK.
PgDay.IT's planning meeting will be Wednesday, June 25 at 2130 CET via IRC.
pgDay Portland needs presentations for July 20. Submit by 20th.
PGCon Brazil 2008 will be on September 26-27 at Unicamp in Campinas.
PGDay.IT 2008 will be October 17 and 18 in Prato.
== PostgreSQL in the News ==
Planet PostgreSQL: http://www.planetpostgresql.org/
General Bits, Archives and occasional new articles:
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 david(at)fetter(dot)org, German language
to pwn(at)pgug(dot)de, Italian language to pwn(at)itpug(dot)org(dot)
== Applied Patches ==
Tom Lane committed:
- In pgsql/src/backend/commands/aggregatecmds.c, ALTER AGGREGATE OWNER
seems to have been missed by the last couple of patches that dealt
with object ownership. It wasn't updating pg_shdepend nor adjusting
the aggregate's ACL. In 8.2 and up, fix this permanently by making
it use AlterFunctionOwner_oid. In 8.1, the function code wasn't
factored that way, so just copy and paste.
- In pgsql/doc/src/sgml/release.sgml, update release notes for ALTER
- Stamp 8.3.3, 8.2.9, 8.1.13, 8.0.17, 7.4.21 (except for
- Rewrite DROP's dependency traversal algorithm into an honest
two-pass algorithm, replacing the original intention of a one-pass
search, which had been hacked up over time to be partially two-pass
in hopes of handling various corner cases better. It still wasn't
quite there, especially as regards emitting unwanted NOTICE
messages. More importantly, this approach lets us fix a number of
open bugs concerning concurrent DROP scenarios, because we can take
locks during the first pass and avoid traversing to dependent
objects that were just deleted by someone else. There is more that
can be done here, but I'll go ahead and commit the base patch before
working on the options.
- In pgsql/src/backend/access/index/genam.c, fix breakage caused by
conflicting patches, as evidenced by the buildfarm.
- Tag 8.0.17, 7.4.21.
- Fix an ALTER TABLE test case so that it actually tests what the
comment says it is testing. Ah, the perils of making keywords
- Fix datetime input functions to correctly detect integer overflow
when running on a 64-bit platform ... strtol() will happily return
64-bit output in that case. Per bug #4231 from Geoff Tolley.
- In pgsql/src/backend/utils/adt/cash.c, fix unportable (and incorrect
anyway) usage of LL constant suffix that recently snuck into cash.c.
Per report from Edmundo Robles Lopez.
- Create a script to handle stamping release version numbers into
files, replacing the tedious and error-prone manual process we've
- Improve reporting of dependencies in DROP to work like the scheme
that we devised for pg_shdepend, namely the individual dependencies
are reported as DETAIL lines rather than coming out as separate
NOTICEs. The client-side report is capped at 100 lines, but the
server log always gets a full report.
- In pgsql/src/backend/access/heap/tuptoaster.c, improve the various
elog messages in tuptoaster.c to report which TOAST table the
problem happened in. These are all supposedly can't-happen cases,
but when they do happen it's useful to know where. Back-patch to
8.3, but not further because the patch doesn't apply cleanly further
back. Given the lack of response to my proposal of this, there
doesn't seem to be enough interest to justify much back-porting
- Refactor the handling of the various DropStmt variants so that when
multiple objects are specified, we drop them all in a single
performMultipleDeletions call. This makes the RESTRICT/CASCADE
checks more relaxed: it's not counted as a cascade if one of the
later objects has a dependency on an earlier one. NOTICE messages
about such cases go away, too. In passing, fix the permissions
check for DROP CONVERSION, which for some reason was never made
role-aware, and omitted the namespace-owner exemption too. Alex
Hunsaker, with further fiddling by me.
- Rearrange ALTER TABLE syntax processing as per my recent proposal:
the grammar allows ALTER TABLE/INDEX/SEQUENCE/VIEW interchangeably
for all subforms of those commands, and then we sort out what's
really legal at execution time. This allows the ALTER SEQUENCE/VIEW
reference pages to fully document all the ALTER forms available for
sequences and views respectively, and eliminates a longstanding
cause of confusion for users. The net effect is that the following
forms are allowed that weren't before: ALTER SEQUENCE OWNER TO,
ALTER VIEW ALTER COLUMN SET/DROP DEFAULT, ALTER VIEW OWNER TO, and
ALTER VIEW SET SCHEMA, (There's no actual functionality gain here,
but formerly you had to say ALTER TABLE instead.) Interestingly, the
grammar tables actually get smaller, probably because there are
fewer special cases to keep track of. I did not disallow using
ALTER TABLE for these operations. Perhaps we should, but there's a
backwards-compatibility issue if we do; in fact it would break
existing pg_dump scripts. I did however tighten up ALTER SEQUENCE
and ALTER VIEW to reject non-sequences and non-views in the new
cases as well as a couple of cases where they didn't before. The
patch doesn't change pg_dump to use the new syntaxes, either.
- In pgsql/src/backend/access/gist/gistutil.c, fix 64-bit problem in
- In pgsql/src/backend/commands/tablecmds.c, make DROP INDEX lock the
parent table before locking the index. This behavior is necessary
to avoid deadlock against ordinary queries, but we'd broken it with
recent changes that made the DROP machinery lock the index before
arriving at index_drop. Per intermittent buildfarm failures.
- In pgsql/doc/src/sgml/maintenance.sgml, rewrite docs section about
routine vacuuming --- it's gotten rather mangled of late, with lots
of redundancy, bad grammar, and just plain poor exposition. Make it
clear that autovacuum is now considered the normal solution.
Alvaro Herrera committed:
- Move BufferGetPageSize and BufferGetPage from bufpage.h to bufmgr.h.
It is more logical that way, and also it reduces the amount of
unnecessary includes in bufpage.h, which is widely used. Zdenek
Kotala. My previous patch to bufpage.h should also have credited
him as author, but I forgot (sorry about that).
- In pgsql/doc/src/sgml/Makefile, make XML building work silently on
VPATH builds (untested on regular builds).
- In pgsql/doc/src/sgml/config.sgml, in the log_filename
documentation, mention that strftime is not used directly to expand
the pattern specifier. Per gripe from Josh Drake.
Marc Fournier committed:
- Tag 8.3.3, 8.2.9, 8.1.13.
Neil Conway committed:
- In pgsql/src/backend/storage/lmgr/proc.c, fix typo in comment.
- In pgsql/src/backend/storage/lmgr/proc.c, further tweak for comment
in CheckDeadLock(), per Tom Lane.
- In pgsql/src/bin/psql/mainloop.c, editorialization for the text
emitted by the "help" psql command. Basically just reuse the same
text that psql emitted as part of its startup banner in prior
versions, and make some whitespace more consistent with the
conventions in other psql command output.
Bruce Momjian committed:
- Update Japanese FAQ. Jun Kuwamura.
- In pgsql/src/backend/utils/misc/postgresql.conf.sample, fix spelling
mistake in postgresql.conf. Greg Sabino Mullane.
- Add to TODO: "Add pg_ctl option to do a syntax check of
- In pgsql/doc/src/sgml/ecpg.sgml, use macro to document size of ecpg
- Update item to mention target list problem.
- Modify TODO entry to be a function: "Add functions to syntax check
Heikki Linnakangas committed:
- In pgsql/src/include/tsearch/ts_type.h, comment fix, should say
TSQuery instead of TSVector. Per Jan Urbanski.
- In pgsql/src/backend/access/nbtree/nbtinsert.c, fix bug in the WAL
recovery code to finish an incomplete split.
CacheInvalidateRelcache() crashes if called in WAL recovery, because
the invalidation infrastructure hasn't been initialized yet.
Back-patch to 8.2, where the bug was introduced.
- Add optional on/off argument to \timing. David Fetter.
- In pgsql/src/bin/psql/help.c, update "help" output to reflect that
\timing now takes an optional on/off argument.
- Refactor XLogOpenRelation() and XLogReadBuffer() in preparation for
relation forks. XLogOpenRelation() and the associated light-weight
relation cache in xlogutils.c is gone, and XLogReadBuffer() now
takes a RelFileNode as argument, instead of Relation. For functions
that still need a Relation struct during WAL replay, there's a new
function called CreateFakeRelcacheEntry() that returns a fake entry
like XLogOpenRelation() used to.
Andrew Dunstan committed:
- In pgsql/src/tools/add_cvs_markers add script to find .c and .h
files that are missing CVS PostgreSQL markers and add them. Avoids
third party files or those that would cause regression failures.
- In pgsql/src/tools/add_cvs_markers, prevent CVS from mangling
== Rejected Patches (for now) ==
No one was disappointed this week :-)
== Pending Patches ==
Pavan Deolasee sent in a WIP patch to improve VACUUM by making LAZY
VACUUM more efficient.
Heikki Linnakangas sent in another revision of his patch to refactor
the XLogOpenRelation/XLogReadBuffer interface, in preparation for the
relation forks patch, and subsequently the FSM rewrite patch.
Greg Sabino Mullane sent in a patch to format functions for better
readability in pg_dump, placing the function body last.
Bruce Momjian sent in a revision of Euler Taveira de Oliveira's patch
which simplifies formatting.c.
Euler Taveira de Oliveira which fixes a small typo in the DTrace docs.
pgsql at Mohawksoft.com sent in a patch to fix sslconfig in 8.3.3.
Zdenek Kotala sent in a patch in preparation for his in-place upgrades
Alvaro Herrera sent in two revisions of a patch to remove inclusions
of relscan.h from unneeded places.
pgsql-announce by date
|Next:||From: David Fetter||Date: 2008-06-23 02:12:46|
|Subject: == PostgreSQL Weekly News - June 22 2008 ==|
|Previous:||From: Devrim GÜNDÜZ||Date: 2008-06-14 14:01:03|
|Subject: New RPM Sets for Fedora / Red Hat Enterprise Linux / CentOS|