== PostgreSQL Weekly News - June 24 2007 ==

From: David Fetter <david(at)fetter(dot)org>
To: PostgreSQL Announce <pgsql-announce(at)postgresql(dot)org>
Subject: == PostgreSQL Weekly News - June 24 2007 ==
Date: 2007-06-25 05:28:10
Message-ID: 20070625052810.GA9866@fetter.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pdxpug pgsql-announce

== PostgreSQL Weekly News - June 24 2007 ==

There was a brief discussion about how best to incorporate tsearch2
into the core.

A longer discussion on delayed-commit semantics continues.

Chris Browne kicked off a discussion on support for queueing.

Simon Riggs's patch to reduce the size of NUMERIC in 8.3 started a
productive discussion on how best to represent NUMERICs efficiently.

People discussed spelling of GUC time units.

== PostgreSQL Product News ==

Archiveopteryx 2.01 released.
http://www.archiveopteryx.org/2.01.html

PgBouncer 1.0.8 released:
http://pgfoundry.org/projects/pgbouncer/

pgpool-HA 1.1.0 released.
http://pgfoundry.org/projects/pgpool/

pgpool-II 1.1.1 released.
http://pgfoundry.org/projects/pgpool/

pgsnmpd 1.0 beta 1 released, now with RDBMS-MIB (RFC 1697) on PostgreSQL 8.x
http://pgfoundry.org/projects/pgsnmpd/

PL/R now works on Windows.
http://pgfoundry.org/projects/plr/

Proximus Report Builder 2.0 alpha released.
http://www.ibs.lv/en/category/proximus_report_builder

== PostgreSQL Jobs for June ==

http://archives.postgresql.org/pgsql-jobs/2007-06/threads.php

== PostgreSQL Local ==

Registration for pgday.it in Prato, Tuscany, Italy on July 6 and 7 is
open.

Some Important URLs:

Schedule: http://www.pgday.it/it/generale/programma
Registration: http://www.pgday.it/en/generale/registrazione
PGDay's web site: http://www.pgday.it/en/
Sponsorship campaign: http://www.pgday.it/en/sponsorizzazioni/come
How to get to Prato: http://www.pgday.it/en/logistica/raggiungere_prato
Accommodations in Prato: http://www.pgday.it/en/logistica/dove_dormire
PostgreSQL official T-shirts http://www.prato.linux.it/node/30
Sign up to tour Tuscany: http://www.pgday.it/it/node/158

== PostgreSQL in the News ==

Planet PostgreSQL: http://www.planetpostgresql.org/

General Bits, Archives and occasional new articles:
http://www.varlena.com/GeneralBits/

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

To get your submission into the upcoming issue, make sure it arrives
at david(at)fetter(dot)org or in German at pwn(at)pgug(dot)de by Sunday at 3:00pm
Pacific Time.

If you find the patch summary useful or have suggestions as to how to
improve it, please write david AT fetter DOT org about it.

== Applied Patches ==

Peter Eisenetraut committed:

- Update examples of create/drop scripts.

- Update password example.

Andrew Dunstan committed:

- In pgsql/src/tools/msvc/Solution.pm, quiet warnings about redefined
PGPORT macros for MSVC.

Neil Conway committed:

- In psql, when running a SELECT query using a cursor, flush the query
output after each FETCH. This ensures that incremental results are
available to clients that are executing long-running SELECT queries
via the FETCH_COUNT feature.

- Remove some empty columns from a few system catalog tables in the
SGML docs.

- Minor code cleanup: calling FreeFile() before ereport(ERROR) is not
necessary, since files opened via AllocateFile() are closed
automatically as part of error recovery.

- Remove duplicate #include from pgsql/src/backend/parser/analyze.c.

Magnus Hagander committed:

- Simon Riggs's patch which removes the comment about modifying
tab-complete.c for userset GUC.

Tom Lane committed:

- Separate parse-analysis for utility commands out of parser/analyze.c
(which now deals only in optimizable statements), and put that code
into a new file parser/parse_utilcmd.c. This helps clarify and
enforce the design rule that utility statements shouldn't be
processed during the regular parse analysis phase; all
interpretation of their meaning should happen after they are given
to ProcessUtility to execute. (We need this because we don't retain
any locks for a utility statement that's in a plan cache, nor have
any way to detect that it's stale.) We are also able to simplify the
API for parse_analyze() and related routines, because they will now
always return exactly one Query structure. In passing, fix bug
#3403 concerning trying to add a serial column to an existing temp
table (this is largely Heikki's work, but we needed all that
restructuring to make it safe).

- Add a <tip> that log_line_prefix should usually end with a space to
provide visual separation from the rest of the log line; I've been
noticing lately that quite a few newbies fail to figure this out for
themselves. Also a little editorial cleanup of the log_line_prefix
description.

- Allow trailing whitespace in parse_real(), for consistency with
parse_int() and with itself (strtod allows leading whitespace, so it
seems odd not to allow trailing whitespace). parse_bool remains
not-whitespace-friendly, but this is generically true for
non-numeric GUC variables, so I'll desist from changing it.

- Provide a HINT listing the allowed unit names when a GUC variable
seems to contain a wrong unit specification, per discussion. In
passing, fix the code to avoid unnecessary integer overflows when
converting units, and to detect overflows when they do occur.

- Add a caveat pointing out that constraint exclusion doesn't work
with constraints the planner is unable to disprove, hence simple
btree-compatible conditions should be used. We've seen people try
to get cute with stuff like date_part(something) = something at
least twice now. Even if we wanted to try to teach predtest.c about
the properties of date_part, most of the useful variants aren't
immutable so nothing could be proved.

- Restrict deadlock_timeout to the range for which the implementation
actually works sanely, viz not 0 and not more than INT_MAX/1000
(else TimestampTzPlusMilliseconds can overflow). Per discussion
with Greg Stark. Since this is a superuser-only setting and there
was not previously any big reason to change it, not worth
back-patching.

- transformColumnDefinition failed to complain about create table foo
(bar int default null default 3); due to not thinking about the
special-case handling of DEFAULT NULL. Problem noticed while
investigating bug #3396.

- CREATE DOMAIN ... DEFAULT NULL failed because gram.y special-cases
DEFAULT NULL and DefineDomain didn't. Bug goes all the way back to
original coding of domains. Per bug #3396 from Sergey Burladyan.

- Only log 'process acquired lock' if we actually did get the lock.
This test seems inessential right now since the only control path
for not getting the lock is via CHECK_FOR_INTERRUPTS which won't
return control to ProcSleep, but it would be important if we ever
allow the deadlock code to kill someone else's transaction instead
of our own.

- Code review for log_lock_waits patch. Don't try to issue log
messages from within a signal handler (this might be safe given the
relatively narrow code range in which the interrupt is enabled, but
it seems awfully risky); do issue more informative log messages that
tell what is being waited for and the exact length of the wait;
minor other code cleanup. Greg Stark and Tom Lane

- Arrange for quote_identifier() and pg_dump to not quote keywords
that are unreserved according to the grammar. The list of
unreserved words has gotten extensive enough that the unnecessary
quoting is becoming a bit of an eyesore. To do this, add knowledge
of the keyword category to keywords.c's table. (Someday we might be
able to generate keywords.c's table and the keyword lists in gram.y
from a common source.) For the moment, lie about WITH's status in
the table so it will still get quoted --- this is because of the
expectation that WITH will become reserved when the SQL
recursive-queries patch gets done. I didn't force initdb because
this affects nothing on-disk; but note that a few regression tests
have changed expected output.

- Back-patch 8.2 fix that complains if trying to extend a relation
encounters a buffer containing a non-zeroed page. This seems
appropriate now that the 8.2 fix has been seen to save at least one
user from data loss due to a buggy kernel (per report from Jaime
Silvela 7-May-07). I'd go further back than 8.1, except that the
8.0-to-8.1 bufmgr changes are large enough that the patch doesn't
work immediately; I'm hesitant to make a change without more
extensive analysis than I have time for now.

- Update obsolete comment: it's no longer the case that mdread() will
allow reads beyond EOF, except by special coercion.

- Marginal hacking to improve the speed of COPY OUT.

== Rejected Patches (for now) ==

Germán Caamaño's patch to output EXPLAIN results as XML

== Pending Patches ==

ITAGAKI Takahiro sent in two version of a patch which cancels
autovacuum workers conflicting with DROP TABLE, TRUNCATE and CLUSTER.

Alvaro Herrera sent in two versions of a patch fixing up the
autovacuum process handling code.

Simon Riggs sent in another version of his Numeric508 patch.

Ireneusz Pluta sent in an updated patch to make PostgreSQL use ICU.

Dariusz Suchojad sent in a documentation patch which clarfies the fact
that qualified DO ALSO RULEs can only be rewritten into SELECT,
INSERT, UPDATE or DELETE. In particular, NOTIFYs can only occur on an
unqualified RULE.

Responses

Browse pdxpug by date

  From Date Subject
Next Message Rich Shepard 2007-06-25 13:49:52 Re: Day of PostgreSQL - July 22, Sunday before OSCON
Previous Message Jeff Davis 2007-06-22 19:23:31 Re: Day of PostgreSQL - July 22, Sunday before OSCON

Browse pgsql-announce by date

  From Date Subject
Next Message Selena Deckelmann 2007-06-25 22:32:35 Fwd: [ANNOUNCE] == PostgreSQL Weekly News - June 24 2007 ==
Previous Message Aivars Akots 2007-06-21 06:50:20 Proximus Report Builder 2.0 alpha released