== Postgres Weekly News - November 25 2007 ==
8.3 Beta 3 is out.
The UK Postgres User Group will be meeting December 3. Mail Simon
Riggs <uk AT postgresql.org> for details.
IT-PUG is now a non-profit organization.
== Postgres Product News ==
2ndQuadrant has a High Availability training course.
pgloader 2.2.4 released.
pgpool-II 2.0.1 released.
Pg::Snapshot and Materialized Views 0.3.1 released.
SkyTools 2.1.5 released.
== Postgres Jobs for November ==
== Postgres Local ==
Josh Berkus will be speaking at FOSS.IN. Help make the BoF great!
PgCon.BR will take place in Sao Paulo December 7-8.
PGCon 2008 Call for Papers starts December 19. Start your papers now.
PostgreSQL Conference East '08 talks are March 28 and 29.
== Postgres in the News ==
Planet PostgreSQL: http://www.planetpostgresql.org/
General Bits, Archives and occasional new articles:
Postgres 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 ==
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.
== Rejected Patches (for now) ==
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
== Pending 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.
pgsql-announce by date
|Next:||From: David Fetter||Date: 2007-12-03 01:36:13|
|Subject: == Postgres Weekly News - December 02 2007 ==|
|Previous:||From: Simon Riggs||Date: 2007-11-22 21:44:42|
|Subject: New Replication and Recovery Training|