Skip to content

Wöchentlicher PostgreSQL Newsletter - 27. September 2009

Der Originalartikel befindet sich unter:

== Wöchentlicher PostgreSQL Newsletter - 27. September 2009 ==

Das Commitfest wird fortgesetzt, Alpha2 kommt bald.

== PostgreSQL Produkt Neuigkeiten ==

Benetl 3.1, ein ETL Werkzeug für Dateien, ist erschienen.

== PostgreSQL Jobs im September ==

== PostgreSQL Lokal ==

Es findet eine Konferenz in Seattle, Washington, USA am 16.-18.
Oktober 2009 statt.

PGCon Brasilien wird am 23.-24. Oktober 2009 auf dem Unicamp in
Campinas, Sao Paulo, stattfinden. Registrierung offen:

PGDay.EU 2009 wird an der Telecom ParisTech Universität in Paris,
Frankreich, am 6. und 7. November 2009 stattfinden.

PGDay.EU 2009 wird an der Telecom ParisTech Universität in Paris,
Frankreich, am 6. und 7. November 2009 stattfinden.

Die 10. jährliche JPUG Konferenz findet am 20-21. November 2009 in
Tokio, Japan, statt.

FOSDEM 2010 wird am 6./7. Februar 2010 in Brüssel stattfinden.

Die Chemnitzer Linuxtage finden am 13. und 14. März 2010 in Chemnitz,
Deutschland statt.

== PostgreSQL in den News ==

Planet PostgreSQL:

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:

- Define a new, more extensible syntax for COPY options.  This is
  intentionally similar to the recently revised syntax for EXPLAIN
  options, ie, (name value, ...).  The old syntax is still supported
  for backwards compatibility, but we intend that any options added in
  future will be provided only in the new syntax.  Robert Haas,
  Emmanuel Cecchet.

- Fix crash if a DROP is attempted on an internally-dependent object.
  Introduced in 8.4 rewrite of dependency.c.  Per bug #5072 from Amit

- Implement the DO statement to support execution of PL code without
  having to create a function for it.  Procedural languages now have
  an additional entry point, namely a function to execute an inline
  code block.  This seemed a better design than trying to hide the
  transient-ness of the code from the PL.  As of this patch, only
  plpgsql has an inline handler, but probably people will soon write
  handlers for the other standard PLs.  In passing, remove the
  long-dead LANCOMPILER option of CREATE LANGUAGE.  Petr Jelinek.

- In pgsql/doc/src/sgml/ref/do.sgml, improve example for DO, per Petr

- In pgsql/src/backend/utils/cache/relcache.c, fix
  RelationCacheInitializePhase2 (Phase3, in HEAD) to cope with the
  possibility of shared-inval messages causing a relcache flush while
  it tries to fill in missing data in preloaded relcache entries.
  There are actually two distinct failure modes here: 1. The flush
  could delete the next-to-be-processed cache entry, causing the
  subsequent hash_seq_search calls to go off into the weeds.  This is
  the problem reported by Michael Brown, and I believe it also
  accounts for bug #5074.  The simplest fix is to restart the
  hashtable scan after we've read any new data from the catalogs.  It
  appears that pre-8.4 branches have not suffered from this failure,
  because by chance there were no other catalogs sharing the same hash
  chains with the catalogs that RelationCacheInitializePhase2 had work
  to do for.  However that's obviously pretty fragile, and it seems
  possible that derivative versions with additional system catalogs
  might be vulnerable, so I'm back-patching this part of the fix
  anyway.  2. The flush could delete the current cache entry, in
  which case the pointer to the newly-loaded data would end up being
  stored into an already-deleted Relation struct.  As long as it was
  still deleted, the only consequence would be some leaked space in
  CacheMemoryContext.  But it seems possible that the Relation struct
  could already have been recycled, in which case this represents a
  hard-to-reproduce clobber of cached data structures, with
  unforeseeable consequences.  The fix here is to pin the entry while
  we work on it.  In passing, also change
  RelationCacheInitializePhase2 to Assert that formrdesc() set up the
  relation's cached TupleDesc (rd_att) with the correct type OID and
  hasoids values.  This is more appropriate than silently updating the
  values, because the original tupdesc might already have been copied
  into the catcache.  However this part of the patch is not in HEAD
  because it fails due to some questionable recent changes in
  formrdesc :-(.  That will be cleaned up in a subsequent patch.

- Extend the BKI infrastructure to allow system catalogs to be given
  hand-assigned rowtype OIDs, even when they are not "bootstrapped"
  catalogs that have handmade type rows in pg_type.h.  Give
  pg_database such an OID.  Restore the availability of C macros for
  the rowtype OIDs of the bootstrapped catalogs.  (These macros are
  now in the individual catalogs' .h files, though, not in pg_type.h.)
  This commit doesn't do anything especially useful by itself, but
  it's necessary infrastructure for reverting some ill-considered
  changes in relcache.c.

- In pgsql/src/backend/utils/cache/relcache.c, revert my
  ill-considered change that made formrdesc not insert the correct
  relation rowtype OID into the relcache entries it builds.  This
  ensures that catcache copies of the relation tupdescs will be fully
  correct.  While the deficiency doesn't seem to have any effect in
  the current sources, we have been bitten by not-quite-right catcache
  tupdescs before, so it seems like a good idea to maintain the rule
  that they should be right.

- In pgsql/src/backend/catalog/, hmm, seems a lot of the
  buildfarm is running versions of awk that don't have gensub().  Use
  sub() instead, tedious though it be.

- Simplify the bootstrap (BKI) code by getting rid of a useless table
  of all the strings seen during the bootstrap run.  There might have
  been some actual point to doing that, many years ago, but as far as
  I can see the only value now is to conserve a bit of memory.  Even
  if we cared about wasting a megabyte or so during the initdb run,
  it'd be far more effective to arrange to release memory at the end
  of each BKI command, instead of intentionally hanging onto strings
  that might never be used again.  Not maintaining the table probably
  makes it faster too; but the main point of this patch is to get rid
  of a couple hundred lines of unnecessary and rather crufty code.

- In pgsql/src/tools/msvc/, ooops, fix to for
  ROWTYPE_OID wasn't quite right.  Also, make a few spacing tweaks so
  it produces exactly the same output as

- Sync psql's scanner with recent changes in backend scanner's flex
  rules.  Marko Kreen, Tom Lane.

- In pgsql/src/interfaces/libpq/fe-connect.c, make libpq reject
  non-numeric and out-of-range port numbers with a suitable error
  message, rather than blundering on and failing with something
  opaque.  Sam Mason.

- Replace the array-style TupleTable data structure with a simple List
  of TupleTableSlot nodes.  This eliminates the need to count in
  advance how many Slots will be needed, which seems more than worth
  the small increase in the amount of palloc traffic during executor
  startup.  The ExecCountSlots infrastructure is now all dead code,
  but I'll remove it in a separate commit for clarity.  Per a comment
  from Robert Haas.

- Remove no-longer-needed ExecCountSlots infrastructure.

Bruce Momjian committed:

- In pgsql/src/tools/fsync/test_fsync.c, fsync test files.  Prevent
  creation of 16GB files during fsync testing; only create 16MB files;
  backpatch to 8.4.X.

Peter Eisentraut committed:

- Surrogate pair support for U& string and identifier syntax.  This is
  mainly to make the functionality consistent with the proposed \u
  escape syntax.

- Unicode escapes in E'...' strings.  Marko Kreen.

- In pgsql/src/backend/parser/scan.l, remove backup states from
  Unicode escapes patch.

- In pgsql/src/backend/parser/scan.l, prevent isolated second
  surrogate in U& syntax.

== Abgelehnte Patches (bis jetzt) ==

Jeff Davis's operator exclusion constraints patch.  Lots of progress,
useful new feature, and will re-submit for the next commitfest.

== Eingesandte Patches ==

Heikki Linnakangas sent in a reviewed version of the streaming
replication patch.

Heikki Linnakangas sent in a patch atop the Hot Standby patch.

Petr (PJMODOS) Jelinek sent in another revision of the GRANT ON ALL IN

Andrew Dunstan sent in a patch to add \ev (edit view) to psql.

Stef Walter sent in two more revisions of the samehost/sameuser patch
for pg_hba.conf.

Petr (PJMODOS) Jelinek sent in four more revisions of the DefaultACLs

Michael Paquier sent in another revision of the patch to add shell
commands to pgbench.

Andrew (RhodiumToad) Gierth sent in another revision of the hstore

Roger Leigh sent in another revision of the UTF-8 pretty-print option
for psql.

David Wheeler sent in a doc patch to go with Andrew (RhodiumToad)
Gierth's hstore patch.

Sam Mason sent in a patch to clean up libpq's port number handling.

Joachim Wieland sent in a patch to fix some performance issues in the
information schema.

KaiGai Kohei sent in another revision of the large object ACL patch.

Emmanuel Cecchet sent in another revision of the COPY enhancements

KaiGai Kohei sent in another revision of the ACL rework patch.

Pierre Frederic Caillaud sent in another revision of the bulk inserts

Alvaro Herrera sent in another revision of the patch to allow
per-database, per-role GUC settings.

Simon Riggs set up a git repository for Hot Standby, with the
eponymous hot_standby branch, at;a=summary

Brendan Jurd sent in a patch atop ITAGAKI Takahiro's CREATE TABLE

Marko Kreen sent in a patch to fix up Unicode escape treatment in

Jim Cox sent in a patch to allow pg_dump to note its version and that
of the server it dumps in comments.

Heikki Linnakangas sent in two updated patches for Hot Standby.

ITAGAKI Takahiro sent in another revision of the CREATE TABLE LIKE
expansion patch including Brendan Jurd's additions above.


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