Skip to content

Wöchentlicher PostgreSQL Newsletter - 26. Juli 2009

Der Originalartikel befindet sich unter:

== Wöchentlicher PostgreSQL Newsletter - 26. Juli 2009 ==

Wenn du eine Win32 Plattform nutzt, bitte helf einen Patch zu testen,
der das verrufene "failed to re-attach to shared memory" Problem löst.

== PostgreSQL Produkt Neuigkeiten ==

psqlODBC 08.04.0100 ist erschienen.

Das Open Source Datenbankmagazin startet mit einem Artikel von Robert

Der Open Source Database Podcast ist gestartet.

PostGIS 1.4.0, ein Geographic Information System für PostgreSQL, ist

== PostgreSQL Jobs im Juli ==

== PostgreSQL Lokal ==

Das OpenSQL Camp findet am 22. und 23. August in St. Augustin,
Deutschland, in der Nähe von Bonn und Köln, statt. Einsendeschluß für
den CfP ist der 19. Juli 2009. Vorträge einreichen!

Die Deutsche PostgreSQL Usergruppe wird einen Dev-Room auf der
FrOSCon am Sonntag, dem 23. August 2009 haben. Der Call for Papers
ist eröffnet:

Der CfP für PyCon Argentina ist bis zum 29. Juni 2009 23:59 ART
geöffnet. Die Konferenz selbst findet in Buenos Aires am 4. und 5.
September 2009 statt.

Andreas (ads) Scherbaum wird einen Kurs "PostgreSQL im
Unternehmenseinsatz" an der Volkshochschule Magdeburg, Deutschland,
vom 7. bis zum 11. Septemper 2009 geben. Details unter:

Es findet eine Konferenz in Athens, Georgia, USA am 19. September
2009 statt. Der CfP ist eröffnet.

Es findet eine Konferenz in Seattle, Washington, USA am 16.-18.
Oktober 2009 statt. Der CfP ist eröffnet.

PGCon Brasilien wird am 23.-24. Oktober 2009 auf dem Unicamp in
Campinas, Sao Paulo, stattfinden. Der CfP ist eröffnet!

PGDay.EU 2009 wird an der Telecom ParisTech Universität in Paris,
Frankreich, am 6. und 7. Nivember 2009 stattfinden. Der CfP ist
eröffnet. Vorträge einreichen!

Die 10. jährliche JPUG Konferenz hat den Aufruf für Vorträge gestartet.
Die Konferenz findet am 20-21. November 2009 in Tokio, Japan, 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 ==

Peter Eisentraut committed:

- Use errcontext mechanism in PL/Python.  Error messages from
  PL/Python now always mention the function name in the CONTEXT:
  field.  This also obsoletes the few places that tried to do the same
  manually.  Regression test files are updated to work with Python
  2.4-2.6.  I don't have access to older versions right now.

- In pgsql/doc/src/sgml/Makefile, small additional clean from the
  rearrangement of the HTML index build rules

- In pgsql/src/tools/editors/emacs.samples, add a further
  customization to the SGML Emacs mode to prevent the use of tabs in
  the documentation source.

- Remove translated FAQs.  The English FAQ has been moved to the wiki,
  so the translated versions should have been removed at that point as
  well.  The FAQ_MINGW.html should have been removed when the platform
  FAQs were integrated into the documentation (or earlier).  Applied
  to both 8.4 and 8.5

- Change pg_listener attribute number constants to match the usual
  pattern.  It appears that, for no particularly good reason,
  pg_listener.h deviates from the usual convention for declaring
  attribute number constants.  Normally, it's
    #define Anum_{catalog-name}_{column-name}  {attribute-number}
  pg_listener.h, however substitutes a different string that is
  similar, but not the same as, the column name.  This change fixes
  that.  Author: Robert Haas

- In pgsql/doc/src/sgml/func.sgml, clarify NULLIF example.  Found by
  Vesa-Matti J Kari.

- Document \dg+ and \du+.  The fact that \dg and \du take the + option
  was missing in the documentation.  Backpatched to 8.4.  Author:
  Andreas Wenk.

- In pgsql/src/backend/access/gist/gistsplit.c, fix the fix for the
  gist error message

Alvaro Herrera committed:

- In pgsql/src/include/Makefile, install src/include/utils/fmgroids.h
  on VPATH builds too.  The original coding was not dealing specially
  with this file being a symlink, with the end result that it was not
  installed in VPATH builds.  Oddly enough, the clean target does know
  about it ...

Bruce Momjian committed:

- In pgsql/src/bin/pg_dump/pg_dump.c, properly restore
  pg_largeobject.relfozenxid in binary upgrade mode.  Backpatch to

Tom Lane committed:

- Fix another semijoin-ordering bug.  We already knew that we couldn't
  reorder a semijoin into or out of the righthand side of another
  semijoin, but actually it doesn't work to reorder it into or out of
  the righthand side of a left or antijoin, either.  Per bug #4906
  from Mathieu Fenniak.  This was sloppy thinking on my part.  This
  identity does work:
    ( A left join B on (Pab) ) semijoin C on (Pac)
    ( A semijoin C on (Pac) ) left join B on (Pab)
        but I failed to see that that doesn't mean this does:
    ( A left join B on (Pab) ) semijoin C on (Pbc)
    A left join ( B semijoin C on (Pbc) ) on (Pab)

- In pgsql/src/backend/utils/mmgr/aset.c, speed up AllocSetFreeIndex,
  which is a significant cost in palloc and pfree, by using a lookup
  table instead of a naive shift-and-count loop.  Based on code
  originally posted by Sean Eron Anderson at  Greg Stark
  did the research and benchmarking to show that this is what we
  should use.  Jeremy Kerr first noticed that this is a hotspot that
  could be optimized, though we ended up not using his suggestion of
  platform-specific bit-searching code.

- Make pg_dump/pg_restore --clean options drop large objects too.  In
  passing, make invocations of lo_xxx functions a bit more
  schema-safe.  Itagaki Takahiro

- Tweak TOAST code so that columns marked with MAIN storage strategy
  are not forced out-of-line unless that is necessary to make the row
  fit on a page.  Previously, they were forced out-of-line if needed
  to get the row down to the default target size (1/4th page).  Kevin

- Change do_tup_output() to take Datum/isnull arrays instead of a char *
  array, so it doesn't go through BuildTupleFromCStrings.  This is
  more or less a wash for current uses, but will avoid inefficiency
  for planned changes to EXPLAIN.  Robert Haas.

- In pgsql/src/backend/optimizer/path/joinrels.c, fix another thinko
  in join_is_legal's handling of semijoins: we have to test for the
  case that the semijoin was implemented within either input by
  unique-ifying its RHS before we test to see if it appears to match
  the current join situation.  The previous coding would select
  semijoin logic in situations where we'd already unique-ified the RHS
  and joined it to some unrelated relation(s), and then came to join
  it to the semijoin's LHS.  That still gave the right answer as far
  as the semijoin itself was concerned, but would lead to incorrectly
  examining only an arbitrary one of the matchable rows from the
  unrelated relation(s).  The cause of this thinko was incorrect
  unification of the pre-8.4 logic for IN joins and OUTER joins ---
  the comparable case for outer joins can be handled after making the
  match test, but that's because there is nothing like the
  unique-ification escape hatch for outer joins.  Per bug #4934 from
  Benjamin Reed.

- In a non-hashed Agg node, reset the "aggcontext" at group
  boundaries, instead of individually pfree'ing pass-by-reference
  transition values.  This should be at least as fast as the prior
  coding, and it has the major advantage of clearing out any working
  data an aggregate function may have stored in or underneath the
  aggcontext.  This avoids memory leakage when an aggregate such as
  array_agg() is used in GROUP BY mode.  Per report from Chris Spotts.
  Back-patch to 8.4.  In principle the problem could arise in prior
  versions, but since they didn't have array_agg the issue seems not

- In pgsql/src/backend/executor/execTuples.c, save a few cycles in
  EXPLAIN and related commands by not bothering to form a physical
  tuple in do_tup_output().  A virtual tuple is easier to set up and
  also easier for most tuple receivers to process.  Per my comment on
  Robert Haas' recent patch in this code.

- In pgsql/src/bin/pg_dump/pg_dump.c, teach pg_dump to dump comments
  attached to the columns of a composite type.  Taro (Higepon) Minowa.

- Add commentary about Cygwin's broken erand48, per report from Andrew

- Avoid extra system calls to block SIGPIPE if the platform provides
  either sockopt(SO_NOSIGPIPE) or the MSG_NOSIGNAL flag to send().  We
  assume these features are available if (1) the symbol is defined at
  compile time and (2) the kernel doesn't reject the call at runtime.
  It might turn out that there are some platforms where (1) and (2)
  are true and yet the signal isn't really blocked, in which case
  applications would die on server crash.  If that sort of thing gets
  reported, then we'll have to add additional defenses of some kind.
  Jeremy Kerr.

- Assorted minor refactoring in EXPLAIN.  This is believed to not
  change the output at all, with one known exception: "Subquery Scan
  foo" becomes "Subquery Scan on foo".  (We can fix that if anyone
  complains, but it would be a wart, because the old code was clearly
  inconsistent.)  The main intention is to remove duplicate coding and
  provide a cleaner base for subsequent EXPLAIN patching.  Robert

- Code review for FORCE QUOTE * patch: fix error checking to consider
  FORCE QUOTE * as a variety of FORCE QUOTE, and update psql
  documentation to include the option.  (The actual psql code doesn't
  seem to need any changes.)

- Extend EXPLAIN to allow generic options to be specified.  The
  original syntax made it difficult to add options without making them
  into reserved words.  This change parenthesizes the options to avoid
  that problem, and makes provision for an explicit (and perhaps
  non-Boolean) value for each option.  The original syntax is still
  supported, but only for the two original options ANALYZE and
  VERBOSE.  As a test case, add a COSTS option that can suppress the
  planner cost estimates.  This may be useful for including EXPLAIN
  output in the regression tests, which are otherwise unable to cope
  with cross-platform variations in cost estimates.  Robert Haas

- Experiment with using EXPLAIN COSTS OFF in regression tests.  This
  is a simple test to see whether COSTS OFF will help much with
  getting EXPLAIN output that's sufficiently platform-independent for
  use in the regression tests.  The planner does have some freedom of
  choice in these examples (plain via bitmap indexscan), so I'm not
  sure what will happen.

- In pgsql/contrib/pg_stat_statements/pg_stat_statements.c, fix
  pg_stat_statements for EXEC_BACKEND case.  We should not try to load
  old statistics when re-attaching to existing shared memory.  Per bug
  #4941.  Itagaki Takahiro

- In pgsql/contrib/pg_stat_statements/pg_stat_statements.c, improve
  comment, per gripe from Alvaro Herrera.

- In pgsql/src/include/storage/s_lock.h, add s_lock support for SuperH
  architecture.  After a patch originally submitted by Nobuhiro
  Iwamatsu, but corrected (I think) to match our guidelines for safe
  use of asm fragments.  This should be considered untested ...

Joe Conway committed:

- Replace PLpgSQL_dstring by StringInfo.  Replace redundant
  PLpgSQL_dstring functionality with StringInfo.  Patch by Pavel
  Stehule.  Review by Joe Conway.

Magnus Hagander committed:

- In pgsql/src/interfaces/ecpg/ecpglib/prepare.c, fix mismatch in
  const:ness of parameters.

- Reserve the shared memory region during backend startup on Windows,
  so that memory allocated by starting third party DLLs doesn't end up
  conflicting with it.  Hopefully this solves the long-time issue with
  "could not reattach to shared memory" errors on Win32.  Patch from
  Tsutomu Yamada and me, based on idea from Trevor Talbot.

- Reserve the shared memory region during backend startup on Windows,
  so that memory allocated by starting third party DLLs doesn't end up
  conflicting with it.  Hopefully this solves the long-time issue with
  "could not reattach to shared memory" errors on Win32.  Patch from
  Tsutomu Yamada and me, based on idea from Trevor Talbot.

Andrew Dunstan committed:

- In pgsql/doc/src/sgml/install-win32.sgml, update location to
  download flex for building on Windows.

- Force use of our erand48 on Cygwin.

- Allow * as parameter for FORCE QUOTE for COPY CSV.  Itagaki

- In pgsql/src/backend/commands/copy.c, small stylistic improvement in
  recent FORCE QUOTE * code - use a bool instead of a magic value.

== Abgelehnte Patches (bis jetzt) ==

Dean Rasheed's in revision of the deferrable unique constraints patch.
Needs work.

== Eingesandte Patches ==

James Pye sent in a WIP patch to make PL/Python work with Python 3,
with several stylistic and functional improvements included.

Alexey Klyukin sent in two revisions of a patch to add errcontext
support to PL/Perl.

Pavel Stehule sent in two revisions of a patch intended to fix mixed
and named notation support in PL/PgSQL.

Alan Li sent in two revisions of a patch to optimize MIN()/MAX()
operations on partitioned tables.

Josh Tolley and Petr (PJMODOS) Jelinek traded patches to implement

ITAGAKI Takahiro sent in another revision of the patch to make pgbench

Fujii Masao sent in another revision of a patch to add a non-blocking
communication between an front-end and a back-end.

Robert Haas sent in another revision of his patch to auto-generate

Pavel Stehule sent in another revision of his patch to enable
machine-readable EXPLAIN output.

Brendan Jurd sent in an updated version of the EEEE formatting patch
for to_char().

ITAGAKI Takahiro sent in another revision of his patch to mkae a more
specific error when a key is duplicated.

Bernd Helmle sent in an updated version of the patch to handle byteas
more efficiently in pg_dump.

Jaime Casanova sent in an updated patch to help infer client_encoding
from client locale.

Robert Haas sent in another revision of the machine-readable EXPLAIN
output patch.


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