Skip to content

Wöchentlicher PostgreSQL Newsletter - 13. November 2011

Der Originalartikel befindet sich unter:

== Wöchentlicher PostgreSQL Newsletter - 13. November 2011 ==

Die fünfte jährliche "Prager PostgreSQL Entwickler Tag" Konferenz,
welche von CSPUG (Tschechische und Slovakische PostgreSQL Anwendergruppe) organisiert wird, findet am 9. Februar 2012 in Prag statt. Der Call for Papers ist jetzt offen.
Bitte senden Sie ihre Einreichungen zusammen mit Kontaktinformationen, Topic und vorgesehener Länge des Vortrags an info AT p2d2 DOT cz.

== PostgreSQL Produkt Neuigkeiten ==

PostgreSQL 9.1 RPMs für Fedora 16 erschienen.

Der Postgres Plus® Connector für Hadoop wurde von EnterpriseDB veröffentlicht.

== PostgreSQL Jobs im November ==

== PostgreSQL Lokal ==

Die fünfte Edition des Italienischen PostgreSQL
Tags (PGDay.IT 2011) findet am 25. November in
Prato, Italien statt.

Der Call for Papers ist offen für PostgreSQL Session #3,
welche am 2. Februar 2012 in Paris stattfindet. Der Einsendeschluß
ist der 30. November 2011, die ausgewählten Sprecher werden bis
zum 14. Dezember 2011 informiert. Vorträge (in Französisch oder
Englisch) sollen an call-for-paper AT postgresql-sessions DOT org
geschickt werden. Mehr Informationen unter:

Der Call for Papers für die FLOSS UK ist offen, die Veranstaltung
findet in Edinburgh vom 20. bis 22. März 2012 statt. Der
Einsendeschluß für Einreichungen ist der 18. November 2011,
ausgewählte Sprecher werden bis zum 25. November benachrichtigt.
Einreichungen sollen an postgresql2012 AT flossuk DOT org gehen.
Mehr Informationen:

== PostgreSQL in den News ==

Planet PostgreSQL:

Dieser wöchentliche PostgreSQL Newsletter wurde erstellt von David Fetter.

Sende Neuigkeiten und Ankündigungen bis Sonntag, 15 Uhr Pazifischer
Zeit. Bitte sende englische Beiträge an, deutsche an, italienische an, spanische an

== Reviews ==

== Angewandte Patches ==

Tom Lane pushed:

- On second thought, we'd better just drop these tests altogether.
  Further experimentation reveals that my previous change didn't fix
  the issue entirely: these tests would still fail at the
  spring-forward DST transition.  There doesn't seem to be any great
  value in testing this specific issue for both timestamp and
  timestamptz, so just lose the latter tests.

- Fix assorted bugs in contrib/unaccent's configuration file parsing.
  Make it use t_isspace() to identify whitespace, rather than relying
  on sscanf which is known to get it wrong on some platform/locale
  combinations.  Get rid of fixed-size buffers.  Make it actually
  continue to parse the file after ignoring a line with untranslatable
  characters, as was obviously intended.  The first of these issues is
  per gripe from J Smith, though not exactly either of his proposed

- Wrap appendrel member outputs in PlaceHolderVars in additional
  cases.  Add PlaceHolderVar wrappers as needed to make UNION ALL
  sub-select output expressions appear non-constant and distinct from
  each other.  This makes the world safe for
  add_child_rel_equivalences to do what it does.  Before, it was
  possible for that function to add identical expressions to different
  EquivalenceClasses, which logically should imply merging such ECs,
  which would be wrong; or to improperly add a constant to an
  EquivalenceClass, drastically changing its behavior.  Per report
  from Teodor Sigaev.  The only currently known consequence of this
  bug is "MergeAppend child's targetlist doesn't match MergeAppend"
  planner failures in 9.1 and later.  I am suspicious that there may
  be other failure modes that could affect older release branches; but
  in the absence of any hard evidence, I'll refrain from back-patching
  further than 9.1.

- Fix random discrepancies between parallel_schedule and
  serial_schedule.  In particular, my previous patch expected the
  create_index test to run before the inherit test; but this was only
  true in the serial schedule.  Rearrange this portion of the
  schedules to be more consistent.  Per buildfarm results.

- Tweak new regression test case for more portability.  Ensure that
  same index gets selected on 32-bit and 64-bit machines.  Per
  buildfarm results.

- Avoid platform-dependent infinite loop in pg_dump.  If malloc(0)
  returns NULL, the binary search in findSecLabels() will probably go
  into an infinite loop when there are no security labels, because
  NULL-1 is greater than NULL after wraparound.  (We've seen this
  pathology before ... I wonder whether there's a way to detect the
  class of bugs automatically?) Diagnosis and patch by Steve Singer,
  cosmetic adjustments by me

- Throw nice error if server is too old to support psql's \ef or \sf
  command.  Previously, you'd get "function pg_catalog.pg_get_functiondef(integer)
  does not exist", which is at best rather unprofessional-looking.
  Back-patch to 8.4 where \ef was introduced.  Josh Kupershmidt

- In plpgsql, allow foreign tables to define row types.  This seems to
  have been just an oversight in previous foreign-table work.  A quick
  grep didn't turn up any other places where RELKIND_FOREIGN_TABLE was
  obviously omitted.  One change noted by Alexander Soudakov, the
  other by me.  Back-patch to 9.1.

Heikki Linnakangas pushed:

- Fix timestamp range subdiff functions, when using float datetimes.

- Adjust range type docs for some last-minute changes I made to the
  patch.  non_empty(anyrange) function was removed, empty(anyrange)
  was renamed to isempty(anyrange), and !? operators were removed.

- Make DatumGetInetP() unpack inet datums with a 1-byte header, and
  add a new macro, DatumGetInetPP(), that does not. This brings these
  macros in line with other DatumGet*P() macros.  Backpatch to 8.3,
  where 1-byte header varlenas were introduced.

- In COPY, insert tuples to the heap in batches.  This greatly reduces
  the WAL volume, especially when the table is narrow.  The overhead
  of locking the heap page is also reduced. Reduced WAL traffic also
  makes it scale a lot better, if you run multiple COPY processes at
  the same time.

- Fix bugs in the COPY heap-insert batching patch.  Forgot to call
  RestoreBkpBlocks() in the redo-function, as pointed out by Simon
  Riggs. In redo of a regular heap insert, it's taken care of in
  heap_redo(), but this new record type uses the heap2 RM, and
  heap2_redo() does not take care of that for you.  Also, failed to
  reset the vmbuffer and all_visibile_cleared local variables after
  switching to a new buffer.

- Fix another bug in the redo of COPY batches.  I got alignment wrong
  in the redo routine. Spotted by redoing the log generated by copy
  regression test.

Robert Haas pushed:

- Minor grammar improvements.

- Make VACUUM avoid waiting for a cleanup lock, where possible.  In a
  regular VACUUM, it's OK to skip pages for which a cleanup lock isn't
  immediately available; the next VACUUM will deal with them.  If
  we're scanning the entire relation to advance relfrozenxid, we might
  need to wait, but only if there are tuples on the page that actually
  require freezing.  These changes should greatly reduce the incidence
  of of vacuum processes getting "stuck".  Simon Riggs and Robert Haas

- Remove hstore's text => text operator.  Since PostgreSQL 9.0, we've
  emitted a warning message when an operator named => is created,
  because the SQL standard now reserves that token for another use.
  But we've also shipped such an operator with hstore.  Use of the
  function hstore(text, text) has been recommended in preference to
  =>(text, text).  Per discussion, it's now time to take the next step
  and stop shipping the operator.  This will allow us to prohibit the
  use of => as an operator name in a future release if and when we
  wish to support the SQL standard use of this token.  The release
  notes should mention this incompatibility.  Patch by me, reviewed by
  David Wheeler, Dimitri Fontaine and Tom Lane.

- Rewrite comment for slightly greater accuracy.  Per an observation
  from Thom Brown that the old version contained a typo.

- Fix hstore regression tests.  This was an oversight in commit
  b60653bc0b75b7f3b5dda0a2968a22129aafb2b2.  Also, fix a typo spotted
  by Thom Brown.

- Fix compiler warning.

- Revert removal of trace_userlocks, because userlocks aren't gone.
  This reverts commit 0180bd6180511875db046bf8ddcaa633a2952dfd.
  contrib/userlock is gone, but user-level locking still exists, and
  is exposed via the pg_advisory* family of functions.

- Correct documentation for trace_userlocks.

- Fix psql's \dd version check for operator families.  Report and
  patch by Josh Kupershmidt; comment revisions by me.

- Avoid retaining multiple relation locks in RangeVarGetRelid.  If it
  turns out we've locked the wrong OID, release the old lock.  In most
  cases, it's pretty harmless to retain the extra lock, but this seems
  tidier and avoids using lock table slots unnecessarily.  Per
  discussion with Tom Lane.

Peter Eisentraut pushed:

- -DLINUX_OOM_ADJ=0 should be in CPPFLAGS, not CFLAGS

- Clean gettext-files file in clean target.  It used to be cleaned in
  maintainer-clean, but that is inconsistent with other cleaning of
  NLS files in, and it's also wrong overall, because
  it's not part of the distribution tarball, which is the base
  definition of the maintainer-clean target.

- Only install the extension files for the current Python major

- Fix server header file installation with vpath builds.  Several
  server header files would not be installed in vpath builds because
  they live in the build directory.

- Add psql expanded auto mode.  This adds the "auto" option to the \x
  command, which switches to the expanded mode when the normal output
  would be wider than the screen.  reviewed by Noah Misch

Bruce Momjian pushed:

- Document that PQexec() can handle a NULL res pointer just fine.
  Backpatch to 9.1.  Mark Hills

Simon Riggs pushed:

- Wakeup WALWriter as needed for asynchronous commit performance.
  Previously we waited for wal_writer_delay before flushing WAL. Now
  we also wake WALWriter as soon as a WAL buffer page has filled.
  Significant effect observed on performance of asynchronous commits
  by Robert Haas, attributed to the ability to set hint bits on tuples
  earlier and so reducing contention caused by clog lookups.

Michael Meskes pushed:

- Applied patch by Zoltan to fix copy&paste bug in ecpg's sqlda

== Abgelehnte Patches (bis jetzt) ==

No one was disappointed this week :-)

== Eingesandte Patches ==

Peter Eisentraut sent in the first of several patches to quiet
warnings generated when using -Wcast-qual.

Thomas Munro and Kevin Grittner traded patches which const-ify
functions, per TODO item.

KaiGai Kohei sent in two more revisions of the patch to add object
access hooks with argument support.

Alexander Korotkov sent in two revisions of a patch to add GiST
indexing for range types.

Heikki Linnakangas sent in another revision of the patch to store hot
members of PGPROC out of band.

Simon Riggs sent in a patch to use a latch in WalWriter.

Robert Haas and Simon Riggs traded patches intended to reduce
contention on ProcArrayLock.

Jaime Casanova sent in another revision of the patch to allow seeing
relation free space.

Laurenz Albe sent in a patch to allow disabling SSL compression.

Dimitri Fontaine sent in a PoC patch to create command triggers.

Alexander Korotkov sent in another revision of the patch to collect
frequency statistics for arrays.

Robert Haas sent in a patch to improve error messages emitted by

Dimitri Fontaine sent in two revisions of a patch to add Node support
in outfuncs.c and readfuncs.c

Tomas Vondra sent in a PoC patch to allow triggers on backend startup.

Nikhil Sontakke and Robert Haas traded patches to fix a situation
where concurrent CREATE TABLE/DROP SCHEMA leaves inconsistent

José Arthur Benetasso Villanova and Jan Kundrát traded patches to add
context in error messages where check constraints are violated.

Kyotaro HORIGUCHI sent in a patch to allow plugging in different
memory allocators into libpq.

Andrew Dunstan sent in a patch to add finer control to
pg_dump/pg_restore by making the dividing lines among pre-data, data
and post-data sections explicit.

Robert Haas sent in two revisions of a patch to reduce the number of
snapshots taken per query by half.

Simon Riggs sent in a patch to allow fast failover.

Jan Urbanski sent in another revision of the patches to refactor

Greg Smith sent in a patch which adds query normalization of
pg_stat_statements, based on transforming the query tree into a series
of integers and using them to match against previous queries.


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