Der Originalartikel befindet sich unter:
== Wöchentlicher PostgreSQL Newsletter - 01. Juni 2008 ==
Core hat bekanntgegeben, dass eine einfach zu benutzende WAL-basierte
Replikation in PostgreSQL integriert werden soll.
== PostgreSQL Produkt Neuigkeiten ==
Database .NET 2.1.3071 erschienen.
Navicat ver. 7.1.1 erschienen.
pgDesigner 1.2.7 erschienen.
pg_proboscis 1.0 erschienen.
pgsnap 0.3.3 erschienen.
== PostgreSQL Lokal ==
Der Call for Papers für PgCon.BR ist eröffnet. Der Einsendeschluss ist
am 31. Mai, also die Vorträge jetzt einreichen.
PGDay wird in Portland am Tag vor der OSCON stattfinden.
Der Call for Papers für die Utah Open Source Konferenz 2008 ist bis zum
1. Juni offen. Diese 2. jährliche Konferenz wird vom 28. bis 30. August
2008 in Salt Lake City, UT stattfinden.
PGCon Brazil 2008 wird vom 26.-27. September auf dem Unicamp in
PGDay.IT 2008 wird am 17. und 18. Oktober in Prato stattfinden.
== 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
Sende Neuigkeiten und Ankündigungen bis Sonntag, 15 Uhr Pazifischer
Zeit. Bitte sende englische Beiträge an email@example.com, deutsche an
firstname.lastname@example.org, italienische an email@example.com.
== Angewandte Patches ==
Tom Lane committed:
- In pgsql/src/backend/utils/misc/guc.c, fix an old corner-case bug in
set_config_option: push_old_value has to be called before, not
after, calling the assign_hook if any. This is because
push_old_value might fail (due to palloc out-of-memory), and in that
case there would be no stack entry to tell transaction abort to undo
the GUC assignment. Of course the actual assignment to the GUC
variable hasn't happened yet --- but the assign_hook might have
altered subsidiary state. Without a stack entry we won't call it
again to make it undo such actions. So this is necessary to make
the world safe for assign_hooks with side effects. Per a discussion
a couple weeks ago with Magnus. Back-patch to 8.0. 7.x did not
have the problem because it did not have allocatable stacks of GUC
- Alter the xxx_pattern_ops opclasses to use the regular equality
operator of the associated datatype as their equality member. This
means that these opclasses can now support plain equality
comparisons along with LIKE tests, thus avoiding the need for an
extra index in some applications. This optimization was not
possible when the pattern opclasses were first introduced, because
we didn't insist that text equality meant bitwise equality; but we
do now, so there is no semantic difference between regular and
pattern equality operators. I removed the name_pattern_ops opclass
altogether, since it's really useless: name's regular comparisons
are just strcmp() and are unlikely to become something different.
Instead teach indxpath.c that btree name_ops can be used for LIKE
whether or not the locale is C. This might lead to a useful speedup
in LIKE queries on the system catalogs in non-C locales. The ~=~
and ~<>~ operators are gone altogether. (It would have been nice to
keep them for backward compatibility's sake, but since the pg_amop
structure doesn't allow multiple equality operators per opclass,
there's no way.) A not-immediately-obvious incompatibility is that
the sort order within bpchar_pattern_ops indexes changes --- it had
been identical to plain strcmp, but is now trailing-blank-insensitive.
This will impact in-place upgrades, if those ever happen. Per
discussions a couple months ago.
- In pgsql/doc/src/sgml/ref/create_type.sgml, clarify description of
typmod input function, per Jeff Davis.
- Back-patch the 8.3 fix that prohibits TRUNCATE, CLUSTER, and REINDEX
when the current transaction has any open references to the target
relation or index (implying it has an active query using the
relation). Also back-patch the 8.2 fix that prohibits TRUNCATE and
CLUSTER when there are pending AFTER-trigger events. Per suggestion
from Heikki Linnakangas.
- Require bind_textdomain_codeset() not just gettext() to enable NLS
support. GNU gettext before 0.10.36 does not have that function,
and is generally too incomplete to be usable.
- In pgsql/doc/src/sgml/ref/grant.sgml, improve GRANT documentation to
point out that UPDATE and DELETE typically require SELECT privilege
as well, since you normally need to read existing column values
within such commands. This behavior is according to spec, but we'd
never documented it before. Per gripe from Volkan Yazici.
- In pgsql/src/backend/utils/adt/pg_lzcompress.c, backpatch Zdenek
Kotala's fix to prevent pglz_decompress from stomping on memory if
the compressed data is corrupt. Backpatch as far as 8.2. The issue
exists in older branches too, but given the lack of field reports,
it's not clear it's worth any additional effort to adapt the patch
to the slightly different code in older branches.
- In pgsql/contrib/cube/cube.c, fix some bugs introduced by the
8.2-era conversion of cube functions to V1 calling convention.
cube_inter and cube_distance could attempt to pfree their input
arguments, and cube_dim returned a value from a struct it might have
just pfree'd (which would only really cause a problem in a debug
build, but it's still wrong). Per bug #4208 and additional code
reading. In HEAD and 8.3, I also made a batch of cosmetic changes
to bring these functions into line with the preferred coding style
for V1 functions, ie declare and fetch all the arguments at the top
so readers can easily see what they are.
- Make 8.3.x psql print tab characters as an appropriate number of
spaces, rather than "\x09". Before 8.3 we just printed tabs as-is,
leading to poor formatting of subsequent columns, but consensus is
that "\x09" is not an improvement over that. Back-patch of fix
that's already in HEAD.
- Tweak libpq to avoid crashing due to incorrect buffer size
calculation when we are on a 64-bit machine (ie, size_t is wider
than int) and someone passes in a query string that approaches or
exceeds INT_MAX bytes. Also, just for paranoia's sake, guard
against similar overflows in sizing the input buffer. The backend
will not in the foreseeable future be prepared to send or receive
strings exceeding 1GB, so I didn't take the more invasive step of
switching all the buffer index variables from int to size_t; though
someday we might want to do that. I have a suspicion that this is
not the only such bug in libpq, but this fix is enough to take care
of the crash reported by Francisco Reyes.
- In pgsql/src/include/catalog/pg_proc.h, improve the documentation
comment for replace(). Robert Treat
- Copy refint.so and autoinc.so into the src/test/regress directory
during "make all", and then reference them there during the actual
tests. This makes the handling of these files more parallel to that
of regress.so, and in particular simplifies use of the regression
tests outside the original build tree. The PGDG and Red Hat RPMs
have been doing this via patches for a very long time. Inclusion of
the change in core was requested by J?rgen Austvik of Sun, and I
can't see any reason not to. I attempted to fix the MSVC scripts
for this too, but they may need further tweaking ...
- Marginal improvements to the documentation for PGOPTIONS.
- In pgsql/src/backend/executor/spi.c, refactor
SPI_cursor_open/SPI_cursor_open_with_args so that the latter sets
the PARAM_FLAG_CONST flag on the parameters that are passed into the
portal, while the former's behavior is unchanged. This should only
affect the case where the portal is executing an EXPLAIN; it will
cause the generated plan to look more like what would be generated
if the portal were actually executing the command being explained.
Per gripe from Pavel.
- Update time zone data files to tzdata release 2008c (DST law changes
in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba,
Magnus Hagander committed:
- In pgsql/src/backend/utils/mb/mbutils.c, explicitly bind gettext()
to the UTF8 locale when in use. This is required on Windows due to
the special locale handling for UTF8 that doesn't change the full
environment. Fixes crash with translated error messages per bugs
4180 and 4196. Tom Lane.
- Add a field to guc enums to allow hiding of values from display
while still accepting them as input, used to allow alternate syntax
for the same setting. Alex Hunsaker
- In pgsql/src/backend/access/transam/xlog.c, set hidden field for guc
enum missed in previous commit.
Bruce Momjian committed:
- Add URL for TODO: "Add deferred trigger queue file."
- In pgsql/doc/src/sgml/external-projects.sgml, update URL for ODBC.
- Add description to TODO: "Add deferred trigger queue file."
Andrew Dunstan committed:
- Mark TODO as done: "Remove psql newline patch when we find out why
mingw outputs an extra newline."
== Abgelehnte Patches (bis jetzt) ==
Jeff Davis's patch to reset scan state at the end of a synchronized
Davy Durham's patch to allow filtering tables in pg_dump.
== Eingesandte Patches ==
Teodor Sigaev sent patches to extend GIN to include multi-column
indexes and faster INSERTs into GIN-indexed tables.
Zdenek Kotala sent in a patch to clean up some headers in the source
Joe Conway sent in two revisions of a patch to fix a dblink regression
fix in CVS TIP.