Skip to content

Wöchentlicher PostgreSQL Newsletter - 24. Juni 2007

Der Originalartikel befindet sich unter:

== Wöchentlicher PostgreSQL Newsletter - 24. Juni 2007 ==

Es gab eine kurze Diskussion, wie tsearch2 am besten in den Core integriert werden kann.

Eine längere Diskussion über delayed-commit Semantiken dauert an.

Chris Browne begann eine Diskussion über Support für Queueing.

Simon Riggs Patch für die Reduzierung der Größe von NUMERIC in 8.3 startete eine produktive Diskussion, wie NUMERIC am effizientesten dargestellt werden kann.

Leute diskutierten die Schreibweise von GUC Zeiteinheiten.

== PostgreSQL Produkt Neuigkeiten ==

Archiveopteryx 2.01 erschienen.

PgBouncer 1.0.8 erschienen:

pgpool-HA 1.1.0 erschienen.

pgpool-II 1.1.1 erschienen.

pgsnmpd 1.0 beta 1 erschienen, jetzt mit RDBMS-MIB (RFC 1697) für PostgreSQL 8.x

PL/R funktioniert jetzt unter Windows.

Proximus Report Builder 2.0 alpha erschienen.

== PostgreSQL Jobs im Juni ==

== PostgreSQL Lokal ==

Registrierung für in Prato, Toskana, Italien am 6. und 7 Juli
ist offen.

Einige wichtige URLs:

PGDay Webseite:
Sponsoring Kampagne:
Wie kommt man nach Prato:
Unterkünfte in Prato: PostgreSQL
Offizielle PostgreSQL T-Shirts:
Registrierung für die Toscana Tour:

== PostgreSQL in den News ==

Planet PostgreSQL:

General Bits, Archive und gelegentliche News Artikel:

Dieser wöchentliche PostgreSQL Newsletter wurde erstellt von David

Um deine Beiträge für die nächste Ausgabe zu übermitteln, sende diese
an oder in Deutsch an bis Sonntag, 15:00
Uhr Pazifischer Zeit.

Wenn du die Patch Zusammenfassung sinnvoll findest oder Hinweise für Verbesserungen hast, schreibe bitte an david AT fetter DOT org.

== Angewandte Patches ==

Peter Eisenetraut committed:

- Update examples of create/drop scripts.

- Update password example.

Andrew Dunstan committed:

- In pgsql/src/tools/msvc/, 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

- 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

- 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.

== Abgelehnte Patches (bis jetzt) ==

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

== Eingesandte 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.


No Trackbacks


Display comments as Linear | Threaded

No comments

Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
To leave a comment you must approve it via e-mail, which will be sent to your address after submission.
Form options