Der Originalartikel befindet sich unter:
== Wöchentlicher PostgreSQL Newsletter - 14. Oktober 2007 ==
Neue Umfrage: Welche 8.3 Core Features beeindrucken dich am meisten?
8.3 Beta 2 kommt balt, da du die 8.3 Beta 1 getested hast. Weiter testen!
== PostgreSQL Produkt Neuigkeiten ==
Bucardo 3.0.7 erschienen.
pgAdmin III v1.8.0 RC 1 erschienen.
pgBouncer 1.1 erschienen.
ptop 3.6.1 beta 1 erschienen.
== PostgreSQL Jobs im Oktober ==
== PostgreSQL Lokal ==
Simon Riggs wird einen Vortrag auf der Databases und das Web am
16. Oktober in London halten.
Die PostgreSQL Herbstkonferenz wird am 20. Oktober in Portland sein.
Das Eröffnungsmeeting der New Zealand PUG wird in Wellington am
06. November 2007 stattfinden. Details unter:
Es gibt ein neues deutsches PostgreSQL Jobforum.
== PostgreSQL in den News ==
Planet PostgreSQL: http://www.planetpostgresql.org/
General Bits, Archive und gelegentliche News Artikel:
Dieser wöchentliche PostgreSQL Newsletter wurde erstellt von David Fetter
Sende Neuigkeiten und Ankündigungen bis Sonntag, 15 Uhr Pazifischer
Zeit. Bitte sende englische Beiträge an firstname.lastname@example.org, deutsche an
== Angewandte Patches ==
Michael Meskes committed:
- Synced parser and keyword list in ecpg.
Neil Conway committed:
- In pgsql/doc/src/sgml/config.sgml, replace a reference to
"start_log_collector" with "logging_collector", per Guillaume
- Fix typo in REVOKE reference page. Guillaume Lelarge.
- Minor correction for full-text search limitations docs. Heikki
Magnus Hagander committed:
- In pgsql/src/interfaces/libpq/fe-connect.c, don't try to free
pgpassfile since it's a stack variable. Martin Pitt.
- In pgsql/src/port/chklocale.c, add missing codepage numbers for
Windows. Dave Page.
Tom Lane committed:
- In pgsql/contrib/txid, get rid of dependency on strtoull() ---
Marko Kreen. Some additional minor editorializing by Tom.
- In pgsql/contrib/txid/txid.c, faster test for overflow in str2txid,
- Clarify user of "postmaster" vs. "server" in FAQs. Brendan Jurd
- Fix the plan-invalidation mechanism to treat regclass constants that
refer to a relation as a reason to invalidate a plan when the
relation changes. This handles scenarios such as
dropping/recreating a sequence that is referenced by nextval('seq')
in a cached plan. Rather than teach plancache.c all about digging
through plan trees to find regclass Consts, we charge the planner's
setrefs.c with making a list of the relation OIDs on which each plan
depends. That way the list can be built cheaply during a plan tree
traversal that has to happen anyway. Per bug #3662 and subsequent
- In pgsql/src/backend/access/heap/tuptoaster.c, remove incorrect use
of VARSIZE() on a toasted datum. We can just remove it instead of
fix it, since once we've set toast_action[i] to 'p' it no longer
matters what toast_sizes[i] is. Greg Stark
- Code review for txid patch: add binary I/O functions, avoid
dependence on SerializableSnapshot, minor other cleanup. Marko
Kreen, some further editorialization by me.
- Remove hack in pg_tablespace_aclmask() that disallowed permissions
on pg_global even to superusers, and replace it with checks in
various other places to complain about invalid uses of pg_global.
This ends up being a bit more code but it allows a more specific
error message to be given, and it un-breaks pg_tablespace_size() on
pg_global. Per discussion.
- When telling the bgwriter that we need a checkpoint because too much
xlog has been consumed, recheck against the latest value of
RedoRecPtr before really sending the signal. This avoids useless
checkpoint activity if XLogWrite is executed when we have a very
stale local copy of RedoRecPtr. The potential for useless
checkpoint is very much worse in 8.3 because of the walwriter
process (which never does XLogInsert), so while this behavior was
intentional, it needs to be changed. Per report from Itagaki
- Teach planagg.c that partial indexes specifying WHERE foo IS NOT
NULL can be used to perform MIN(foo) or MAX(foo), since we want to
discard null rows in the indexscan anyway. (This would probably
fall out for free if we were injecting the IS NOT NULL clause
somewhere earlier, but given the current anatomy of the MIN/MAX
optimization code we have to do it explicitly. Fortunately, very
little added code is needed.) Per a discussion with Henk de Wit.
- Fix ALTER COLUMN TYPE to preserve the tablespace and reloptions of
indexes it affects. The original coding neglected tablespace
entirely (causing the indexes to move to the database's default
tablespace) and for an index belonging to a UNIQUE or PRIMARY KEY
constraint, it would actually try to assign the parent table's
reloptions to the index :-(. Per bug #3672 and subsequent
investigation. 8.0 and 8.1 did not have reloptions, but the
tablespace bug is present.
- Fix the inadvertent libpq ABI breakage discovered by Martin Pitt:
the renumbering of encoding IDs done between 8.2 and 8.3 turns out
to break 8.2 initdb and psql if they are run with an 8.3beta1
libpq.so. For the moment we can rearrange the order of enum pg_enc
to keep the same number for everything except PG_JOHAB, which isn't
a problem since there are no direct references to it in the 8.2
programs anyway. (This does force initdb unfortunately.) Going
forward, we want to fix things so that encoding IDs can be changed
without an ABI break, and this commit includes the changes needed to
allow libpq's encoding IDs to be treated as fully independent of the
backend's. The main issue is that libpq clients should not include
pg_wchar.h or otherwise assume they know the specific values of
libpq's encoding IDs, since they might encounter version skew
between pg_wchar.h and the libpq.so they are using. To fix, have
libpq officially export functions needed for encoding name<=>ID
conversion and validity checking; it was doing this anyway
unofficially. It's still the case that we can't renumber backend
encoding IDs until the next bump in libpq's major version number,
since doing so will break the 8.2-era client programs. However the
code is now prepared to avoid this type of problem in future. Note
that initdb is no longer a libpq client: we just pull in the two
source files we need directly. The patch also fixes a few places
that were being sloppy about checking for an unrecognized encoding
- In pgsql/src/backend/utils/adt/xml.c, guard against possible double
free during error escape from XML functions. Patch for the reported
issue from Kris Jurka, some other potential trouble spots plugged by
- Strengthen type_sanity's check on pg_type.typarray. It failed to
complain about types that didn't have typarray set. Noted while
working on txid patch.
- Try to fix msvc build for recent initdb changes.
- Remove contrib/txid, in preparation for migrating it into core.
- Migrate the former contrib/txid module into core. This will make it
easier for Slony and Skytools to depend on it. Per discussion.
- Ooops, forgot about adding -DFRONTEND to
- In pgsql/src/include/Makefile, make install is supposed to install
everything under src/include/, but it was missing a bunch of
Bruce Momjian committed:
- Add to TODO: "Have ALTER SEQUENCE RENAME rename the sequence name
stored in the sequence table."
- Add to TODO: "MONEY dumps in a locale-specific format making it
difficult to restore to a system with a different locale."
- Add comment to pgsql/src/tools/pgcvslog
- Typo fix. Euler Taveira de Oliveira
- Update Brazilian FAQ. Euler Taveira de Oliveira
- Update sequence FAQ items, per suggestion from Pavel Stehule.
- Remove FAQ item about temp tables in plpsql having invalid oid
problems, per suggestions from Pavel Stehule.
- In FAQ, add mention of full text indexing for word searches.
- Update Japanese FAQ. Jun Kuwamura.
- In pgsql/doc/src/sgml/release.sgml, back out release changes that
weren't ready for commit.
- Whitespace cleanup in pgsql/doc/src/sgml/func.sgml.
- Update release notes in "major" and "migration" sections. Still
have remainder of release notes to review.
- Add missing word to pgsql/doc/src/sgml/release.sgml.
- In pgsql/src/backend/optimizer/util/clauses.c, ensure that the
result of evaluating a function during constant-expression
simplification gets detoasted before it is incorporated into a Const
node. Otherwise, if an immutable function were to return a TOAST
pointer (an unlikely case, but it can be made to happen), we would
end up with a plan that depends on the continued existence of the
out-of-line toast datum.
- In FAQ, attached some minor corrections, mainly completion of
removal of the "relation with OID ##### does not exist" item, and
some URL corrections.
== Abgelehnte Patches (bis jetzt) ==
No one was disappointed this week :-)
== Eingesandte Patches ==
Tom Lane sent in a patch from Sergey Karpov to fill in the lack of any
working code examples for user-written tsearch parsers and
Sergey Karpov sent in two versions of a patch to create custom
tsearch2 dictionaries for /contrib.
Marko Kreen sent in a patch which adds txid to core.
Brendan Jurd sent in a patch which creates a quote_literal function
called quote_null which allows for NULLs and returns the text NULL.
Simon Riggs sent in a patch which makes VACUUMs to cancel blocking
Gregory Stark sent in a patch intended to fix an assertion failure
with small (1K) compile-time block sizes.
Tom Lane sent in an updated patch for the examples in Sergey Karpov's
proposed contrib modules dict_int, dict_xsyn, and test_parser.