Wöchentlicher PostgreSQL Newsletter - 25. November 2007
Der Originalartikel befindet sich unter:
== Wöchentlicher PostgreSQL Newsletter - 25. November 2007 ==
8.3 Beta 3 ist erschienen.
Die UK PostgreSQL Usergruppe trifft sich am 3. Dezember. Kontaktiere
Simon Riggs <uk AT postgresql.org> für Details.
IT-PUG ist jetzt eine Non-Profit Organization.
== PostgreSQL Produkt Neuigkeiten ==
2ndQuadrant hat einen Hochverfügbarkeits Trainingskurs.
pgloader 2.2.4 erschienen.
pgpool-II 2.0.1 erschienen.
Pg::Snapshot und Materialized Views 0.3.1 erschienen.
SkyTools 2.1.5 erschienen.
== PostgreSQL Jobs im November ==
== PostgreSQL Lokal ==
Josh Berkus wird auf der FOSS.IN sprechen. Hilf mit, den BoF zu vergrößern!
PgCon.BR wird am 7-8. Dezember in Sao Paulo stattfinden.
PGCon 2008 Call for Papers startet am 19. Dezember. Jetzt mit den Papers beginnen.
PostgreSQL Conference East '08 ist am 28. und 29. März.
== 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
Please send English language ones to firstname.lastname@example.org, German language
to email@example.com, Italian language to firstname.lastname@example.org.
== Angewandte Patches ==
Peter Eisentraut committed:
- In pgsql/src/backend/utils/adt/xml.c, use double quotes for quoting
D'Arcy J.M. Cain committed:
- Add regression tests for MONEY type.
Alvaro Herrera committed:
- In pgsql/src/pl/plpython/plpython.c, fix buggy usage of vsnprintf in
PL/Python by removing it altogether, instead relying on
stringinfo.c. This fixes a problem reported by Marko Kreen, but I
didn't use his patch, per subsequent discussion.
Tatsuo Ishii committed:
- In pgsql/doc/src/sgml/storage.sgml, fix "Overall Page Layout" table.
The second row should be ItemIdData, not ItemPointerData.
- In pgsql/doc/src/sgml/page.sgml, fix "Page Layout" table. The second
row should be ItemIdData, not ItemPointerData.
Andrew Dunstan committed:
- Change descriptions of entity and tag objects to "XML entity" and
"XML tag". Allow tag and entity names that follow XML rules.
Provide for hexadecimal as well as decimal numeric entities. Adjust
code names to coincide with new descriptions.
- Adjust contrib/tsearch2 regression results to use XML tag and XML
entity descriptions, as now used by core text search default parser.
- Fix XML tag namespace change inadvertantly missed from previous fix.
Add regression test for XML names and numeric entities.
- In pgsql/src/backend/tsearch/wparser_def.c, Allow for X as well as x
to be the prefix for hexadecimal character ref entity numbers, as in
Bruce Momjian committed:
- Add to TODO: "Allow COMMENT ON dbname to work when loading into a
database with a different name."
- In pgsql/src/bin/pg_dump/pg_dump.c, add comment about COMMENT ON
DATABASE failing for differently-named databases.
- Add suggested syntax: COMMENT ON CURRENT DATABASE.
- In pgsql/src/bin/pg_dump/pg_dump.c, update comment.
- Update TODO to read: "Prevent COMMENT ON dbname from
issuing a warning when loading into a database with a different
name, perhaps using COMMENT ON CURRENT DATABASE."
- Update TODO to read: "Change pg_dump so that a comment on the dumped
database is applied to the loaded database, even if the database has
a different name. This will require new backend syntax, perhaps
COMMENT ON CURRENT DATABASE."
- More release notes wording cleanups in
- Markup fix in pgsql/doc/src/sgml/release.sgml.
- Split "server changes" up into smaller sections in release notes.
- Trim down release section headings (no need for Changes). Re-order
some items as migration changes.
- Reorder a few release notes items for consistency.
- Release note adjustments suggested by IRC users.
- Split out data types and function entries into separate sections in
the release notes.
- Make "contrib/" tag consistent.
- Split release notes up into smaller sections; easier to read.
- Fix pg_ctl -t to register -t value, per Alvaro.
- In pgsql/src/backend/utils/adt/formatting.c, fix typo in comment.
- When setting default thousands separator when locale has "", use
logic so new thousands separator doesn't match decimal symbol.
- Fix build of libpq for Borland CC.
- In pgsql/src/include/getaddrinfo.h, WSATYPE_NOT_FOUND was already
defined for BCC so don't redefine it (conflicting values).
- In pgsql/doc/src/sgml/release.sgml, document that doc builds now
build indexes by default, unless "draft" is used.
- Add comments about thousands separator logic.
- Add more comments about thousands separator handling.
- Update TODO to elucidate the "Prevent long-lived temporary tables
from causing frozen-xid advancement" TODO.
- In pgsql/src/backend/utils/adt/cash.c, fix white space in MONEY type
code. Rename 'comma' to more generic 'ssymbol' as used in previous
- Borland CC 5.5.1 needs ssize_t, per cnliou9 AT fastmail.fm.
- Borland BCC does not support SSPI, per cnliou9 AT fastmail.fm.
- Make the MONEY data type have a thousands separator != decimal
symbol, if the locale has the thousands separator as "". This now
matches the to_char and psql numericlocale behavior. (Previously
this data type was basically useless for such setups.)
- Clarify how MONEY trims off trailing thousands separator.
- If pg_dump drops a schema, make sure 'search_path' it SET the next
time it is needed --- basically don't remember the previous
'search_path' after a drop schema because it might have failed but
be created later.
Tom Lane committed:
- Minor improvement in documentation of temp_tablespaces: avoid
grammatical ambiguity and say what the default value is.
- Improve description of implicit-text-casting compatibility issue. A
bunch of other desultory copy-editing, too.
- In pgsql/doc/src/sgml/textsearch.sgml, fix some missed usages of
'HTML tag' and 'HTML entity'.
- In pgsql/src/backend/utils/adt/xml.c, fix bogus length calculation
that could lead to crash if the string happened to be right up
against the end of memory, per report from Matt Magoffin. While at
it, avoid useless multiple copying of string by not depending on
- In pgsql/doc/src/sgml/datatype.sgml, clarify the syntax rules for
raw tsvector input.
- Prevent Perl from introducing a possibly-incompatible definition of
type "bool" into plperl.c. This has always been a hazard since Perl
allows a platform-specific choice to define bool as int rather than
char, but evidently this didn't happen on any platform we support
... until OS X 10.5. Per report from Brandon Maust. Back-patch as
far as 8.0 --- a bit arbitrary, but it seems unlikely anyone will be
trying to port 7.x onto new platforms.
- Save one syscache lookup when examining volatility or strictness of
OpExpr and related nodes. We're going to have to set the opfuncid
of such nodes eventually (if we haven't already), so we might as
well exploit the opportunity to cache the function OID. Buys back
some of the extra planner overhead noted by Guillaume Smet, though I
still need to fool with equivclass.c to really respond to that.
- Actually ... it's pretty silly that parse_oper.c doesn't set up the
opfuncid of an OpExpr initially, considering that it has the
information at hand already. We'll still treat opfuncid as a cache
rather than a guaranteed-valid value, but this change saves one more
syscache lookup in the normal code path.
- Avoid uselessly building a duplicate of the original clause in
trivial cases where the EquivalenceClass machinery is unable to
deduce anything more from a simple "var = const" qual clause. There
are probably some more cases where this could be done, but this
seems to take care of most of the added overhead for simple queries.
Per gripe from Guillaume Smet. In passing, fix a problem that was
exposed by this change: reconsider_outer_join_clause and friends
were passing the wrong relids to build_implied_join_equality,
resulting in RestrictInfos with the wrong required_relids. This
mistake was masked in typical cases since the bogus RestrictInfos
would never have escaped from the EquivalenceClass machinery, but I
think there might be corner cases involving "broken" ECs where there
would have been a visible failure even without the new optimization.
In any case the code was certainly not operating as intended.
- Change fix_scan_expr() to avoid copying the input node tree in the
common case where rtoffset == 0. In that case there is no need to
change Var nodes, and since filling in unset opfuncid fields is
always safe, scribbling on the input tree to that extent is not
objectionable. This brings the cost of this operation back down to
what it was in 8.2 for simple queries. Per investigation of
performance gripe from Guillaume Smet.
- Save another little bit of planner overhead on simple queries, by
having clauselist_selectivity skip some analysis that's useless when
there's only one clause in the given list. Actually this can win
even for not-so-simple queries, because we also apply
clauselist_selectivity to sublists such as the quals matching an
index; which are likely to have only a single entry even when the
total query is quite complicated.
- Move resetting of currSchema to a spot where it's not vulnerable to
getting missed in possible future partial-drop scenarios. Improve
comment. Per report from Zoltan Boszormenyi.
- In pgsql/src/test/regress/serial_schedule, add missed entry for new
money regression test.
- In pgsql/src/backend/utils/adt/oracle_compat.c, slightly more
paranoia and slightly better comments for use of Windows-specific
- In pgsql/src/backend/tsearch/ts_locale.c, fix (I think) broken usage
of MultiByteToWideChar. I had missed the subtlety that this
function only returns a null terminator if it's fed input that
includes one; which, in the usage here, it's not. This probably
fixes bugs reported by Thomas Haegi.
- In pgsql/src/backend/postmaster/pgarch.c, reduce routine
successful-archiving message from LOG to DEBUG1 grade, to reduce
chattiness of logs. Per discussion. Simon Riggs
- In pgsql/src/backend/catalog/namespace.c, fix thinko in comment.
== Abgelehnte Patches (bis jetzt) ==
Euler Taveira de Oliveira's patch which adds whitespace before every
/> of simple xml elements. Postponed to 8.4 just in case.
Marko Kreen's patch which moves decision how much more room to
allocate from callers of appendStringInfoVA to inside the function,
where more info is available. Not all vsnprintf()s do what it
== Eingesandte Patches ==
Bruce Momjian sent in a patch to fix the case where to_char() can't
represent 1000 ms.
Gregory Stark sent in a patch he described on -hackers to implement
"ordered" append nodes.
Hannes Eder sent in a patch to src/backend/parser/parse_expr.c which
returns immediately on NULL input in parse_expr.c:typecast_expression,
i.e. does not lookup target type Oid as it is not required.
Tom Lane sent in a patch which addresses the recent gripe that there
is no way for UNION (or related constructs) to return a domain type,
because select_common_type() always smashes all its inputs to base
Pavel Stehule sent in a patch which adds anyelement variants of
functions quote_literal and quote_ident.
Display comments as Linear | Threaded