Skip site navigation (1) Skip section navigation (2)

== PostgreSQL Weekly News - October 30 2011 ==

From: David Fetter <david(at)fetter(dot)org>
To: PostgreSQL Announce <pgsql-announce(at)postgresql(dot)org>
Subject: == PostgreSQL Weekly News - October 30 2011 ==
Date: 2011-10-31 05:51:41
Message-ID: 20111031055141.GA27384@fetter.org (view raw or flat)
Thread:
Lists: pgsql-announce
== PostgreSQL Weekly News - October 30 2011 ==

The Call for Papers is open for PostgreSQL Session #3, which will be
held in Paris, Feb 2nd, 2012.  The deadline for proposals is the 30th
November 2011 and selected speakers will be notified by the 14th
December 2011.  Proposals (in French or English) should be submitted
to call-for-paper AT postgresql-sessions DOT org.
More information at: http://www.postgresql-sessions.org/en/3/

== PostgreSQL Product News ==

Benetl 3.8, an ETL tool for files using PostgreSQL, released.
http://www.benetl.net

PL/Proxy 2.3.0, a write-scaling clustering system for PostgreSQL, released.
http://pgfoundry.org/projects/plproxy/

Pyrseas 0.4.1, a toolkit for PostgreSQL version control, released on PGXN.
http://pgxn.org/dist/pyrseas/

== PostgreSQL Jobs for October ==

http://archives.postgresql.org/pgsql-jobs/2011-10/threads.php

== PostgreSQL Local ==

pgbr will be in Sao Paulo, Brazil November 3-4, 2011.
http://pgbr.postgresql.org.br/

PGConf.DE 2011, the German-speaking PostgreSQL Conference, will
take place on November 11th in the Rheinisches Industriemuseum in
Oberhausen, Germany.  The schedule is now available, and registration
is open.
http://2011.pgconf.de/

The fifth edition of the Italian PostgreSQL Day (PGDay.IT 2011) will
be held on November 25, 2011 in Prato, Italy.
http://2011.pgday.it/

The Call for Papers for is open for FLOSS UK, which will be held in
Edinburgh from the 20th to the 22nd March 2012.  The deadline for
proposals is the 18th November 2011 and selected speakers will be
notified by the 25th November 2011.  Proposals should be submitted to
postgresql2012 AT flossuk DOT org.  More information at:
http://www.flossuk.org/Events/Spring2012


== PostgreSQL in the News ==

Planet PostgreSQL: http://planet.postgresql.org/

PostgreSQL Weekly News is brought to you this week by David Fetter

Submit news and announcements by Sunday at 3:00pm Pacific time.
Please send English language ones to david(at)fetter(dot)org, German language
to pwn(at)pgug(dot)de, Italian language to pwn(at)itpug(dot)org(dot)  Spanish language
to pwn(at)arpug(dot)com(dot)ar(dot)

== Reviews ==

== Applied Patches ==

Magnus Hagander pushed:

- Make TABLE tab complation in psql include all relations.  Not just
  tables, since views also work fine with the TABLE command.
  http://git.postgresql.org/pg/commitdiff/a74a5f59137c778450bafcc1b7de505a7a4a9204

- Support configurable eventlog application names on Windows.  This
  allows different instances to use the eventlog with different
  identifiers, by setting the event_source GUC, similar to how
  syslog_ident works.  Original patch by MauMau, heavily modified by
  Magnus Hagander
  http://git.postgresql.org/pg/commitdiff/d8ea33f2c02721c89c2434b9fda170afb7fe4999

- Remove argument decoration that appears unsupported on mingw
  http://git.postgresql.org/pg/commitdiff/9c4c8c8468bfdcfba67a9e0bd015843dab949dbf

- Make event_source visible on all platforms.  On non-windows
  platform, we just ignore any value set there.  Noted by Jaime
  Casanova
  http://git.postgresql.org/pg/commitdiff/a87b9ae1612d0e01093e691a5a6b1a37e1dcb9fb

- Fix typo
  http://git.postgresql.org/pg/commitdiff/b0bec068e221f1774b1b444ce687370580b3bc70

- MingW doesn't support wcstombs_s()...
  http://git.postgresql.org/pg/commitdiff/2b64f3f17a4c1064008ea7cfe52d8eabe0b86370

- Implement streaming xlog for backup tools.  Add option for parallel
  streaming of the transaction log while a base backup is running, to
  get the logfiles before the server has removed them.  Also add a
  tool called pg_receivexlog, which streams the transaction log into
  files, creating a log archive without having to wait for segments to
  complete, thus decreasing the window of data loss without having to
  waste space using archive_timeout. This works best in combination
  with archive_command - suggested usage docs etc coming later.
  http://git.postgresql.org/pg/commitdiff/d9bae5317300cf983dd9f01cc2e561c0eecd109a

Alvaro Herrera pushed:

- Add debugging aid in isolationtester
  http://git.postgresql.org/pg/commitdiff/90d8e8ff7ee94283270cc7b2bc6a986a7cd174fc

Tom Lane pushed:

- Change FK trigger creation order to better support self-referential
  FKs.  When a foreign-key constraint references another column of the
  same table, row updates will queue both the PK's ON UPDATE action
  and the FK's CHECK action in the same event.  The ON UPDATE action
  must execute first, else the CHECK will check a non-final state of
  the row and possibly throw an inappropriate error, as seen in bug
  #6268 from Roman Lytovchenko.  Now, the firing order of multiple
  triggers for the same event is determined by the sort order of their
  pg_trigger.tgnames, and the auto-generated names we use for FK
  triggers are "RI_ConstraintTrigger_NNNN" where NNNN is the trigger
  OID.  So most of the time the firing order is the same as creation
  order, and so rearranging the creation order fixes it.  This patch
  will fail to fix the problem if the OID counter wraps around or adds
  a decimal digit (eg, from 99999 to 100000) while we are creating the
  triggers for an FK constraint.  Given the small odds of that, and
  the low usage of self-referential FKs, we'll live with that solution
  in the back branches.  A better fix is to change the auto-generated
  names for FK triggers, but it seems unwise to do that in stable
  branches because there may be client code that depends on the naming
  convention.  We'll fix it that way in HEAD in a separate patch.
  Back-patch to all supported branches, since this bug has existed for
  a long time.
  http://git.postgresql.org/pg/commitdiff/58958726ffaec8d1a5d6a63f648443886fde8a21

- Change FK trigger naming convention to fix self-referential FKs.
  Use names like "RI_ConstraintTrigger_a_NNNN" for FK action triggers
  and "RI_ConstraintTrigger_c_NNNN" for FK check triggers.  This
  ensures the action trigger fires first in self-referential cases
  where the very same row update fires both an action and a check
  trigger.  This change provides a non-probabilistic solution for bug
  #6268, at the risk that it could break client code that is making
  assumptions about the exact names assigned to auto-generated FK
  triggers.  Hence, change this in HEAD only.  No need for forced
  initdb since old triggers continue to work fine.
  http://git.postgresql.org/pg/commitdiff/1e3b21dd5e1070d301153690c1751bef74f03fa4

- Improve planner's ability to recognize cases where an IN's RHS is
  unique.  If the right-hand side of a semijoin is unique, then we can
  treat it like a normal join (or another way to say that is: we don't
  need to explicitly unique-ify the data before doing it as a normal
  join).  We were recognizing such cases when the RHS was a sub-query
  with appropriate DISTINCT or GROUP BY decoration, but there's
  another way: if the RHS is a plain relation with unique indexes, we
  can check if any of the indexes prove the output is unique.  Most of
  the infrastructure for that was there already in the join removal
  code, though I had to rearrange it a bit.  Per reflection about a
  recent example in pgsql-performance.
  http://git.postgresql.org/pg/commitdiff/3e4b3465b6345b75659e8f897976d4c810408762

- Typo fixes.  expect -> except, noted by Andrew Dunstan.  Also,
  "cannot" seems more readable here than "can not", per David Wheeler.
  http://git.postgresql.org/pg/commitdiff/bf82013631e32436c9abb23fee8be0a4ce46b3dd

- Add simple script to check for right recursion in Bison grammars.
  We should generally use left-recursion not right-recursion to parse
  lists.  Bison hasn't got any built-in way to check for this type of
  inefficiency, and I didn't find anything on the net in a quick
  search, so I wrote a little Perl script to do it.  Add to src/tools/
  so we don't have to re-invent this wheel next time we wonder if
  we're doing anything stupid.  Currently, the only place that seems
  to need fixing is plpgsql's stmt_else production, so the problem
  doesn't appear to be common enough to warrant trying to include such
  a test in our standard build process.  If we did want to do that,
  we'd need a way to ignore some false positives, such as a_expr :=
  '-' a_expr
  http://git.postgresql.org/pg/commitdiff/756a4ed5ad3e57c26a247234de371a6ca21806cd

- Avoid recursion while processing ELSIF lists in plpgsql.  The
  original implementation of ELSIF in plpgsql converted the construct
  into nested simple IF statements.  This was prone to stack overflow
  with long ELSIF lists, in two different ways.  First, it's difficult
  to generate the parsetree without using right-recursion in the bison
  grammar, and that's prone to parser stack overflow since nothing can
  be reduced until the whole list has been read.  Second, we'd recurse
  during execution, thus creating an unnecessary risk of
  execution-time stack overflow.  Rewrite so that the ELSIF list is
  represented as a flat list, scanned via iteration not recursion, and
  generated through left-recursion in the grammar.  Per a gripe from
  Håvard Kongsgård.
  http://git.postgresql.org/pg/commitdiff/051d1ba7a02d0e8930adf228d60e8a044b9fcadb

- Update docs to point to the timezone library's new home at IANA.
  The recent unpleasantness with copyrights has accelerated a move
  that was already in planning.
  http://git.postgresql.org/pg/commitdiff/ece12659cf1695d318445b837b36edc15b6f25d6

- De-parallelize ecpg build some more.  Make sure ecpg/include/ is
  rebuilt before the other subdirectories, so that ecpg_config.h is up
  to date.  This is not likely to matter during production builds,
  only development, so no back-patch.
  http://git.postgresql.org/pg/commitdiff/74812624f263a58789e894a643161c9148112f62

- Fix assorted bogosities in cash_in() and cash_out().  cash_out
  failed to handle multiple-byte thousands separators, as per bug
  #6277 from Alexander Law.  In addition, cash_in didn't handle that
  either, nor could it handle multiple-byte positive_sign.  Both
  routines failed to support multiple-byte mon_decimal_point, which I
  did not think was worth changing, but at least now they check for
  the possibility and fall back to using '.' rather than emitting
  invalid output.  Also, make cash_in handle trailing negative signs,
  which formerly it would reject.  Since cash_out generates trailing
  negative signs whenever the locale tells it to, this last omission
  represents a fail-to-reload-dumped-data bug.  IMO that justifies
  patching this all the way back.
  http://git.postgresql.org/pg/commitdiff/7609239f3e8d1cf8818c186c0cfa39145bf6425a

- Further improvement of make_greater_string.  Make sure that it
  considers all the possibilities that the old code did, instead of
  trying only one possibility per character position.  To keep the
  runtime in bounds, instead tweak the character incrementers to not
  try every possible multibyte character code.  Remove unnecessary
  logic to restore the old character value on failure.  Additional
  comment and formatting cleanup.
  http://git.postgresql.org/pg/commitdiff/eb5834d5af5fd094da2f61a874d9d0ec9c870f6c

- Support more locale-specific formatting options in cash_out().  The
  POSIX spec defines locale fields for controlling the ordering of the
  value, sign, and currency symbol in monetary output, but cash_out
  only supported a small subset of these options.  Fully implement
  p/n_sign_posn, p/n_cs_precedes, and p/n_sep_by_space per spec.  Fix
  up cash_in so that it will accept all these format variants.  Also,
  make sure that thousands_sep is only inserted to the left of the
  decimal point, as required by spec.  Per bug #6144 from Eduard
  Kracmar and discussion of bug #6277.  This patch includes some ideas
  from Alexander Lakhin's proposed patch, though it is very different
  in detail.
  http://git.postgresql.org/pg/commitdiff/6743a878a4e9442a9846d8c270e5028e514d44f3

Bruce Momjian pushed:

- Fix pg_bsd_indent bug where newlines were not being trimmed from
  typedef lines.  Update pg_bsd_indent required version to 1.1 (and
  update ftp site).  Problem reported by Magnus Hagander.
  http://git.postgresql.org/pg/commitdiff/360429e1d17947c17659cd57dbaaba5c10fcbd6a

- Update pg_upgrade testing instructions.
  http://git.postgresql.org/pg/commitdiff/38f3c7c4ddedf509d8e2bdda4a947df4dc177e5a

- Clarify pg_upgrade error message that the 'postgres' database must
  exist in the old cluster.
  http://git.postgresql.org/pg/commitdiff/9846dcfb9e8273d2ef93a1650225d013a1436349

- Remove pg_upgrade dependency on the 'postgres' database existing in
  the new cluster.   vacuumdb, used by pg_upgrade, still has this
  dependency.
  http://git.postgresql.org/pg/commitdiff/51eba98cf4595e90730dedd9305da8aa84b649ee

Heikki Linnakangas pushed:

- Fix the number of lwlocks needed by the "fast path" lock patch. It
  needs one lock per backend or auxiliary process - the need for a
  lock for each aux processes was not accounted for in NumLWLocks().
  No-one noticed, because the three locks needed for the three aux
  processes fit into the few extra lwlocks we allocate for 3rd party
  modules that don't call RequestAddinLWLocks()
  (NUM_USER_DEFINED_LWLOCKS, 4 by default).
  http://git.postgresql.org/pg/commitdiff/cbf65509bb59694412286239fe6db409060f8d69

Robert Haas pushed:

- Change "and and" to "and".  Report by Vik Reykja, patch by Kevin
  Grittner.
  http://git.postgresql.org/pg/commitdiff/6c21105fb40adc22d31ba1b7caf104640347651c

- Clarify that ORDER BY/FOR UPDATE can't malfunction at higher iso
  levels.  Kevin Grittner
  http://git.postgresql.org/pg/commitdiff/9cf12dfd4e9e5301d7f8cf48e1eead1626c42127

- Remove hard-coded "\connect postgres" from pg_dumpall.  This doesn't
  appear to accompish anything useful, and does make the restore fail
  if the postgres database happens to have been dropped.
  http://git.postgresql.org/pg/commitdiff/deb15803249883db031c6cc8af104b575f7809ad

- Demote some sanity checks in BufferIsValid() to assertions.  Testing
  reveals that this macro is a hot-spot for index-only-scans.  Per
  discussion with Tom Lane.
  http://git.postgresql.org/pg/commitdiff/b6335a3f1b33e5dc52e755956d8648f0813252c4

- Allow hint bits to be set sooner for temporary and unlogged tables.
  We need not wait until the commit record is durably on disk, because
  in the event of a crash the page we're updating with hint bits will
  be gone anyway.  Per off-list report from Heikki Linnakangas, this
  can significantly degrade the performance of unlogged tables; I was
  able to show a 2x speedup from this patch on a pgbench run with
  scale factor 15.  In practice, this will mostly help small, heavily
  updated tables, because on larger tables you're unlikely to run into
  the same row again before the commit record makes it out to disk.
  http://git.postgresql.org/pg/commitdiff/53f1ca59b5875f1d3e95ee709ecaddcbdfdbd175

- Improve make_greater_string() with encoding-specific incrementers.
  This infrastructure doesn't in any way guarantee that the character
  we produce will sort before the one we incremented; but it does at
  least make it much more likely that we'll end up with something that
  is a valid character, which improves our chances.  Kyotaro
  Horiguchi, with various adjustments by me.
  http://git.postgresql.org/pg/commitdiff/78d523b633d0c251c904318f2ba9916e2c47b9e8

- Update visibilitymap.c header comments.  Recent work on index-only
  scans left this somewhat out of date.
  http://git.postgresql.org/pg/commitdiff/fae54e4a168f9da517be38723fa5f4b7cfeb59c9

== Rejected Patches (for now) ==

No one was disappointed this week :-)

== Pending Patches ==

Fujii Masao and Jun Ishiduka traded revisions of the patch to allow
taking a base backup from a hot standby.

Shigeru HANADA sent in two revisions of patches for a PostgreSQL FDW,
along with some generic helper functions and new documentation on how
to write FDWs.

Heikki Linnakangas sent in another revision of the patch to add
multiple tuples at once in COPY.

Simon Riggs sent in two revisions of a patch to fix an issue where hot
backup fails at rsync fails at pg_clog when under load.

Kerem Kat sent in another revision of the patch to add CORRESPONDING
TO set operations.

Pavel Stehule sent in another revision of the patch that allows
PL/pgsql to make arrays of any %TYPE declared.

Alexander Korotkov sent in another revision of the patch to collect
statistics for array columns.

Robert Haas sent in a couple of patches he was using to analyze the
slowness of COUNT(*) in the index-only scan case.

Simon Riggs sent in two revisions of a patch to speed up hot standbys
in the subtransaction case.

Robert Haas sent in a patch to speed up unlogged tables.

Robert Haas sent in a patch that initializes each PGPROC's myProcLocks
just once at postmaster startup rather than every time the PGPROC is
handed out to a backend.


pgsql-announce by date

Next:From: Heiko W. RuppDate: 2011-11-01 07:02:45
Subject: RHQ 4.2 released
Previous:From: Joe AbbateDate: 2011-10-27 17:12:33
Subject: Pyrseas 0.4.1 is now available

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group