Skip to content

Wöchentlicher PostgreSQL Newsletter - 17. Februar 2008

Der Originalartikel befindet sich unter:

== Wöchentlicher PostgreSQL Newsletter - 17. Februar 2008 ==

PostgreSQL 8.4 Entwicklung ist gestartet.

Suncoast PostgreSQL User Gruppe hat sich gebildet.

== PostgreSQL Produkt Neuigkeiten ==

Bindings für Programmiersprache D erschienen.

DBD::Pg 2.0.0 erschienen.

Devrim GUNDUZ hat eine Live CD basierend auf Fedora 8 und PostgreSQL
8.3 erstellt.

neo_my2pg 0.6beta erschienen

Robert Bernier hat pg_live erstellt.

AnySQL Maestro erschienen.

== PostgreSQL Jobs im Februar ==

== PostgreSQL Lokal ==

Federico Campoli wird über PostgreSQL Internas auf dem GRASS/FOSS
Treffen auf der DICA in Perugia, Italien am 22. Februar sprechen.
Informationen unter:

Die PostgreSQL und BSD Gruppen werden sich am Freitag, dem 22. Februar
abend vor der FOSDEM um 20 Uhr am Bier Circus in Brüssel treffen.

Die BSD und PostgreSQL Teams haben einen gemeinsamen Developer Room auf
der FOSDEM 2008 in Brüssel. Wenn du einen Vortrag halten möchtest oder
beim Managing des Rooms helfen möchtest, kontaktiere
Für mehr Informationen siehe:

Die Europäische PostgreSQL User Group wird ein neues Board of Directors
wählen. Wenn du einen Kandidaten vorschlagen möchtest oder die
Wahlregeln sehen möchtest:

PGCon 2008 wird vom 20. bis 23. Mai in Ottawa stattfinden - Vorträge
werden jetzt akzeptiert.

PostgreSQL Conference East '08 ist am 29. und 30. März an der
Universität von Maryland, College Park. Call for Papers ist jetzt

Die FISL wird vom 17. bis 19. April 2008 auf der PUCRS in Porto Alegre,
Brasilien, stattfinden.

== PostgreSQL in den News ==

Planet PostgreSQL:

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, deutsche an, italienische an

== Angewandte Patches ==

Tom Lane committed:

- In pgsql/src/backend/commands/vacuum.c, repair VACUUM FULL bug
introduced by HOT patch: the original way of calculating a page's
initial free space was fine, and should not have been "improved" by
letting PageGetHeapFreeSpace do it. VACUUM FULL is going to reclaim
LP_DEAD line pointers later, so there is no need for a guard against
the page being too full of line pointers, and having one risks
rejecting pages that are perfectly good move destinations. This
also exposed a second bug, which is that the empty_end_pages logic
assumed that any page with no live tuples would get entered into the
fraged_pages list automatically (by virtue of having more free space
than the threshold in the do_frag calculation). This assumption
certainly seems risky when a low fillfactor has been chosen, and
even without tunable fillfactor I think it could conceivably fail on
a page with many unused line pointers. So fix the code to force
do_frag true when notup is true, and patch this part of the fix all
the way back. Per report from Tomas Szepe.

- Fix SPI_cursor_open() and SPI_is_cursor_plan() to push the SPI stack
before doing anything interesting, such as calling
RevalidateCachedPlan(). The necessity of this is demonstrated by an
example from Willem Buitendyk: during a replan, the planner might
try to evaluate SPI-using functions, and so we'd better be in a
clean SPI context. A small downside of this fix is that these two
functions will now fail outright if called when not inside a
SPI-using procedure (ie, a SPI_connect/SPI_finish pair). The
documentation never promised or suggested that that would work,
though; and they are normally used in concert with other functions,
mainly SPI_prepare, that always have failed in such a case. So the
odds of breaking something seem pretty low. In passing, make
SPI_is_cursor_plan's error handling convention clearer, and fix
documentation's erroneous claim that SPI_cursor_open would return
NULL on error. Before 8.3 these functions could not invoke
replanning, so there is probably no need for back-patching.

- Stamp HEAD as 8.4devel.

- Sync our regex code with upstream changes since last time we did
this, which was Tcl 8.4.8. The main changes are to remove the
never-fully-implemented code for multi-character collating elements,
and to const-ify some stuff a bit more fully. In combination with
the recent security patch, this commit brings us into line with Tcl
8.5.0. Note that I didn't make any effort to duplicate a lot of
cosmetic changes that they made to bring their copy into line with
their own style guidelines, such as adding braces around single-line
IF bodies. Most of those we either had done already (such as
ANSI-fication of function headers) or there is no point because
pgindent would undo the change anyway.

- In pgsql/src/backend/parser/parse_clause.c, remove ancient
restriction that LIMIT/OFFSET can't contain a sub-select. This was
probably protecting some implementation limitation when it was put
in, but as far as I can tell the planner and executor have no such
assumption anymore; the case seems to work fine. Per a gripe from
Grzegorz Jaskiewicz.

- Allow AS to be omitted when specifying an output column name in
SELECT (or RETURNING), but only when the output name is not any SQL
keyword. This seems as close as we can get to the standard's syntax
without a great deal of thrashing. Original patch by Hiroshi Saito,
amended by me.

- Update timezone code to track the upstream changes since 2003. In
particular this adds support for 64-bit tzdata files, which is
needed to support DST calculations beyond 2038. Add a regression
test case to give some minimal confidence that that really works.
Heikki Linnakangas

- Update docs to reflect the fact that we can now deal with DST rules
outside the 32-bit-time_t range. Also, refer to Olson's tz database
as the 'zoneinfo' database, a name that upstream sometimes uses, not
'zic database' which they never use.

- Replace time_t with pg_time_t (same values, but always int64) in
on-disk data structures and backend internal APIs. This solves
problems we've seen recently with inconsistent layout of pg_control
between machines that have 32-bit time_t and those that have already
migrated to 64-bit time_t. Also, we can get out from under the
problem that Windows' Unix-API emulation is not consistent about the
width of time_t. There are a few remaining places where local
time_t variables are used to hold the current or recent result of
time(NULL). I didn't bother changing these since they do not affect
any cross-module APIs and surely all platforms will have 64-bit
time_t before overflow becomes an actual risk. time_t should be
avoided for anything visible to extension modules, however.

- Add back #include <time.h> in a couple of files that seem to need it
on Linux.

Magnus Hagander committed:

- In pgsql/src/timezone/pgtz.c, update timezone mapping for Windows
with new timezones added in windows servicepacks. Fix timezone
mapping for "Mexico 2."

Bruce Momjian committed:

- In pgsql/src/tools/RELEASE_CHANGES, remove "update ecpg regression
expected files for new library number." No longer necessary.

- Bump minor library version numbers for 8.4.

- In pgsql/src/tools/RELEASE_CHANGES, update wording for minor library

- In pgsql/src/tools/RELEASE_CHANGES, add sub-bullet decoration.

- In pgsql/doc/src/sgml/backup.sgml, add section to Migration talking
about typical areas that change between major releases.

- In pgsql/doc/src/sgml/datatype.sgml, correct XML markup typo.

- In pgsql/src/interfaces/libpq/fe-secure.c, rename a libpq NOT_USED
SSL function to verify_peer_name_matches_certificate(), clarify some
of the function's variables and logic, and update a comment. This
should make SSL improvements easier in the future.

- In pgsql/doc/src/sgml/config.sgml, add suggestion about how to set
checkpoint_warning to log all checkpoints.

- In pgsql/doc/src/sgml/config.sgml, no need to use checkpoint_warning
to log checkpoints --- we added log_checkpoints in 8.3.

- Mark TODO as done: 'Allow AS in "SELECT col AS label" to be optional
in certain cases.'

Alvaro Herrera committed:

- In pgsql/src/tools/RELEASE_CHANGES, update minor version bumping

Michael Meskes committed:

- In ecpg, added SQLSTATE macro closing bug #3961.

- In ecpg, EXECUTE can return NOT FOUND so it should be checked here,
too. Changed regression test accordingly.

- Changed the way symbols are defined in C in INFORMIX mode. Added
SQLSTATE macro closing bug #3961. EXECUTE can return NOT FOUND so
it should be checked here too.

- In pgsql/src/interfaces/ecpg/preproc/pgc.l, fixed conflicting

- In pgsql/src/interfaces/ecpg/test/expected/thread-prep.c, updated
expected result for regression test.

- Removed duplicate include of ecpgtype.h which meant I had to adapt
all expected results. Changed INFORMIX mode symbol definition yet
again because the old way didn't work on NetBSD. Hopefully this one

- Changed INFORMIX mode symbol definition yet again because the old
way didn't work on NetBSD.

Peter Eisentraut committed:

- Upgrade to autoconf 2.61. Change to use autoconf 2.61
and update generated files. Update build system and documentation
to support now directory variables offered by autoconf 2.61.
available in autoconf 2.61. Drop our patched version of
AC_C_INLINE, as autoconf now has the change.

== Abgelehnte Patches (bis jetzt) ==

No one was disappointed this week :-)

== Eingesandte Patches ==

Heikki Linnakangas sent in two revisions of a patch to re-sync the
tzcode library with its upstream counterpart.

Gevik Babakhani sent in a patch intended to fix NLS support on 8.3
compiled with MSVC.

Brendan Jurd sent in a patch to psql's \du which shows non-default
role attributes one to a line in a single column.

Tom Lane sent in a patch which changes the TOAST strategies per
suggestions by Gregory Stark, Jan Wieck and others.


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