Der Originalartikel befindet sich unter:
== Wöchentlicher PostgreSQL Newsletter - 04. Januar 2009 ==
Frohes neues Jahr von den wöchentlichen PostgreSQL News :)
== PostgreSQL Produkt Neuigkeiten ==
PyGreSQL 4.0 erschienen.
Devrim GUNDUZ hat ein anderes Set von RPM Snapshots veröffentlich.
Gehe hin und teste :)
== PostgreSQL Lokal ==
SYDPUG wird sich am 3. Februar 2009 um 18:30 Uhr treffen. Achte hier
auf weitere Details.
Andreas 'ads' Scherbaum wird einen Vortrag auf dem Perl Workshop 2009
am 25. Februar in Frankfurt am Main, Deutschland, halten.
PGCon 2009 wird vom 21. bis 22. Mai 2009 in Ottawa an der Universität
von Ottawa stattfinden. Dem gehen zwei Tage mit Tutorials vom 19. bis
20. Mai 2009 voraus.
PGCon Brasilien wird am 23.-24. Oktober 2009 auf dem Unicamp in
Campinas, Sao Paulo, stattfinden.
== PostgreSQL in den News ==
Planet PostgreSQL: http://planet.postgresql.org/
Dieser wöchentliche PostgreSQL Newsletter wurde erstellt von David
Fetter und Devrim GUNDUZ.
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 ==
Michael Meskes committed:
- First round of whitespace changes to ecpg. Everything but
connect-test1 should be fine.
- In pgsql/src/interfaces/ecpg/test/expected/connect-test1.c, finally
the last test.
Tom Lane committed:
- In pgsql/doc/src/sgml/ref/select.sgml, fix thinko in documentation
of default window frame behavior, per Hitoshi Harada.
- In pgsql/src/backend/utils/cache/relcache.c, fix oversight in ALTER
TABLE ENABLE/DISABLE RULE patch: the new enabled field needs to be
included in equalRuleLocks() comparisons, else updates will fail to
propagate into relcache entries when they have positive reference
count (ie someone is using the relcache entry). Per report from
- Reduce the last group of parallel regression tests to 19 tests, per
failure on buildfarm member bear. Sync the test order in
serial_schedule with that in parallel_schedule.
- Add some basic support for window frame clauses to the
window-functions patch. This includes the ability to force the
frame to cover the whole partition, and the ability to make the
frame end exactly on the current row rather than its last ORDER BY
peer. Supporting any more of the full SQL frame-clause syntax will
require nontrivial hacking on the window aggregate code, so it'll
have to wait for 8.5 or beyond.
- Add a WINDOW attribute to CREATE FUNCTION, and teach pg_dump about
it, so that user-defined window functions are possible. For the
moment you'll have to write them in C, for lack of any interface to
the WindowObject API in the available PLs, but it's better than no
support at all. There was some debate about the best syntax for
this. I ended up choosing the "it's an attribute" position --- the
other approach will inevitably be more work, and the likely market
for user-defined window functions is probably too small to justify
- Consistently use multi-line formatting for all ACL columns printed
by psql's various display commands, not only for \z. In passing,
fix some infelicities in the newly added \d commands for SQL-MED
catalogs. Andreas Scherbaum and Tom Lane
- In pgsql/src/bin/psql/describe.c, fix another problem in SQL-MED \d
displays: should have a clean failure report if the command is
attempted against an old server.
- Throw error if a <window definition> references a window that
already has a frame clause, as appears to be required by the fine
print in the SQL spec. Per discussion with Pavel, not doing so
risks user confusion.
- In pgsql/src/backend/tcop/postgres.c, fix an oversight in my patch
of a couple weeks ago that ensured a snapshot is available during
datatype input in Bind message processing. I put the
PopActiveSnapshot() or equivalent just before PortalDefineQuery,
which is an unsafe spot for it (in 8.3 and later) because we are
carrying a plancache refcount that hasn't yet been assigned to the
portal. Any error thrown there would result in leaking the
refcount. It's not exactly likely that PopActiveSnapshot would
throw an elog, perhaps, but it could happen. Reorder the code and
add another comment warning not to do that.
- Fix a couple of missed copyright dates.
- Tweak guc.c to allow underscores in the names of custom variable
classes, and change auto_explain's custom GUC variables to be named
auto_explain.xxx not just explain.xxx. Per discussion in connection
with the pg_stat_statements patch, it seems like a good idea to have
the convention that custom variable classes are named the same as
their defining module. Committing separately since this should
happen regardless of what happens with pg_stat_statements itself.
- In pgsql/src/backend/utils/misc/guc.c, write_nondefault_variables
must take care to write custom_variable_classes first; otherwise
backends reading the file might reject values of custom variables.
Per experimentation with auto_explain.
- Create a "shmem_startup_hook" to be called at the end of shared
memory initialization, to give loadable modules a reasonable place
to perform creation of any shared memory areas they need. This is
the logical conclusion of our previous creation of
RequestAddinShmemSpace() and RequestAddinLWLocks(). We don't need
an explicit shmem_shutdown_hook, because the existing on_shmem_exit
and on_proc_exit mechanisms serve that need. Also, adjust
SubPostmasterMain so that libraries that got loaded into the
postmaster will be loaded into all child processes, not only regular
backends. This improves consistency with the non-EXEC_BACKEND
behavior, and might be necessary for functionality for some types of
- Allow loadable modules to create PGC_POSTMASTER GUC variables, but
only when loaded via shared_preload_libraries. Needed for support
of pg_stat_statements, or pretty much anything else that wants a GUC
to control size of a shared memory allocation.
- Add a pg_encoding_mbcliplen() function that is just like
pg_mbcliplen() except the caller can specify the encoding to work
in; this will be needed for pg_stat_statements. In passing, do some
marginal efficiency hacking and clean up some comments. Also,
prevent the single-byte-encoding code path from fetching one byte
past the stated length of the string (this last is a bug that might
need to be back-patched at some point).
- Add contrib/pg_stat_statements for server-wide tracking of statement
execution statistics. Takahiro Itagaki.
Heikki Linnakangas committed:
- In pgsql/src/include/access/nbtree.h, the flag to mark dead tuples
is nowadays called LP_DEAD, not LP_DELETE. Simon Riggs.
- In pgsql/src/backend/catalog/storage.c, fix embarrassing bug in
recent smgr refactoring patch: WAL records should be written for
*non*-temp tables only. Report and test case by Mark Kirkwood and
Bruce Momjian committed:
- In pgsql/contrib/uuid-ossp/uuid-ossp.c, add comma so this copyright
notice is picked up in 2010.
- In pgsql/src/tools/copyright, make comma optional for copyright text
- In pgsql/src/tools/copyright, mention src/interfaces/libpq/libpq.rc.in
needs to be updated for copyright too.
- In pgsql/src/tools/copyright, be smarter --- accept missing comma,
and force comma if missing.
Joe Conway committed:
- In pgsql/contrib/dblink/dblink.c, fix bug per Oleksiy Shchukin - 2nd
argument for dblink_get_result(text,bool) is PG_GETARG_BOOL(2),
should be PG_GETARG_BOOL(1). Apply simple fix to back branches
only. More extensive change to be applied to head per Tom's
Alvaro Herrera committed:
- In pgsql/src/include/miscadmin.h, export IsUnderPostmaster on win32.
== Abgelehnte Patches (bis jetzt) ==
No one was disappointed this week :-)
== Eingesandte Patches ==
Jeff Davis sent in an updated of the patch which does B-Tree emulation
Nikhil Sontakke sent in two revisions of a patch which fixes a casting
bug in PL/PgSQL.
KaiGai Kohei sent in two more revisions of his SE-PostgreSQL patches.
Andrew Dunstan sent in another revision of his parallel restore patch.
Alvaro Herrera sent in two more revisions of his reloptions
Bryce Cutt sent in another revision of the performance improvement for
multi-batch hash joins on skewed data sets.
Kevin Grittner sent in a patch explicating the SERIALIZABLE isolation
Stephen Frost sent in two more revisions of his patch to allow
Magnus Hagander sent in a patch to add a parameter called
include_realm to pg_hba.conf for Kerberos.
Simon Riggs sent in a patch to fix lazy_truncate_heap.
Joe Conway sent in two revisions of a patch to integrate SQL/MED
connections with dblink.
Alvaro Herrera sent in two more revisions of his generic reloptions
Robert Haas sent in another revision of the posix_fadvise patch.
Magnus Hagander sent in another revision of his libpq SSL patch.
Alex Hunsaker sent in a patch based on the reloptions patch to control
three knobs on lz_compression on a per-table basis.