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

== PostgreSQL Weekly News - September 16 2012 ==

From: David Fetter <david(at)fetter(dot)org>
To: PostgreSQL Announce <pgsql-announce(at)postgresql(dot)org>
Subject: == PostgreSQL Weekly News - September 16 2012 ==
Date: 2012-09-17 06:08:29
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-announce
== PostgreSQL Weekly News - September 16 2012 ==

There will be a PGDay October 3, 2012 at UNICAMP, Campinas, São Paulo state

There will be a PGDay November 9, 2012 at USP, São Paulo,

== PostgreSQL Product News ==

pgAdmin v1.16.0 a multi-platform stand-alone GUI administration tool, released.

pgbouncer 1.5.3, a light-weight connection pooler for PostgreSQL, released.

== PostgreSQL Jobs for September ==

== PostgreSQL Local ==

PostgreSQL Session will be held on October 4th, 2012, in Paris,
France.  More information at:

PostgreSQL Conference Europe 2012 will be in Prague, Czech Republic
on October 23-26.

PostgreSQL Day Argentina 2012 will be held on November 13th in Bernal,
Buenos Aires, at the National University of Quilmes.  It will cover
topics for PostgreSQL users, developers and contributors, as well as
decision and policy makers.  For more information about the
conference, please see the website at

This year Ecuador's PGDay will be held at Quito city on November 17th,
2012.  The Call for Papers is open until October 10.  Send proposals
to Jaime Casanova jaime <AT> 2ndquadrant <DOT> com.

The sixth edition of the Italian PostgreSQL Day (PGDay.IT 2012) will
be held on November 23, 2012 in Prato, Tuscany.  The International
Call for Papers is now open. Talks and presentations in English are
accepted.  Information in English for papers submission is available

== PostgreSQL in the News ==

Planet PostgreSQL:

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)

== Applied Patches ==

Andrew Dunstan pushed:

- Add target for checking pg_upgrade.  This follows
  recent addition of Windows/Mingw testing.  Backpatch to Release 9.2
  so we can get some buildfarm testing going.

- Fix catalog docs to reflect connoinherit change in 09ff76f.
  Backpatch to 9.2.

Kevin Grittner pushed:

- Fix typo: lexemes misspelled in full text search docs.  Dan Scott

- Fix typo in comment for pclose_check() function.  Backpatch to 9.2.
  Etsuro Fujita.

- Fix documentation reference to maximum allowed for
  autovacuum_freeze_max_age.  The documentation mentioned setting
  autovacuum_freeze_max_age to "its maximum allowed value of a little
  less than two billion".  This led to a post asking about the exact
  maximum allowed value, which is precisely two billion, not "a little
  less".  Based on question by Radovan Jablonovsky.  Backpatch to 8.3.

Tom Lane pushed:

- Fix logical errors in tsquery selectivity estimation for prefix
  queries.  I made multiple errors in commit
  97532f7c29468010b87e40a04f8daa3eb097f654, stemming mostly from
  failure to think about the available frequency data as being element
  frequencies not value frequencies (so that occurrences of different
  elements are not mutually exclusive).  This led to sillinesses such
  as estimating that "word" would match more rows than "word:*".  The
  choice to clamp to a minimum estimate of DEFAULT_TS_MATCH_SEL also
  seems pretty ill-considered in hindsight, as it would frequently
  result in an estimate much larger than the available data suggests.
  We do need some sort of clamp, since a pattern not matching any of
  the MCELEMs probably still needs a selectivity estimate of more than
  zero.  I chose instead to clamp to at least what a non-MCELEM word
  would be estimated as, preserving the property that "word:*" doesn't
  get an estimate less than plain "word", whether or not the word
  appears in MCELEM.  Per investigation of a gripe from Bill Martin,
  though I suspect that his example case actually isn't even reaching
  the erroneous code.  Back-patch to 9.1 where this code was

- Fix a couple other leftover uses of 'conisonly' terminology.

- Fix case of window function + aggregate + GROUP BY expression.  In
  commit 1bc16a946008a7cbb33a9a06a7c6765a807d7f59 I added a minor
  optimization to drop the component variables of a GROUP BY
  expression from the target list computed at the aggregation level of
  a query, if those Vars weren't referenced elsewhere in the tlist.
  However, I overlooked that the window-function planning code would
  deconstruct such expressions and thus need to have access to their
  component variables.  Fix it to not do that.  While at it, I removed
  the distinction between volatile and nonvolatile window
  partition/order expressions: the code now computes all of them at
  the aggregation level.  This saves a relatively expensive check for
  volatility, and it's unclear that the resulting plan isn't better
  anyway.  Per bug #7535 from Louis-David Mitterrand.  Back-patch to

- Keep plperl's current_call_data record on the stack, instead of
  palloc'ing.  This at least saves some palloc overhead, and should
  furthermore reduce the risk of anything going wrong, eg somebody
  resetting the context the current_call_data record was in.

- Add a regression test case based on bug #7516.  Given what we now
  know about the cause of this bug, it seems like it'd be a real good
  idea to include it in the plperl regression tests, so as to catch
  any platform-specific cases where the code gets misoptimized.

- Back-patch fix and test case for bug #7516.  Back-patch commits
  9afc6481117d2dd936e752da0424a2b6b05f6459 and
  b8fbbcf37f22c5e8361da939ad0fc4be18a34ca9.  The first of these is
  really a minor code cleanup to save a few cycles, but it turns out
  to provide a workaround for the misoptimization problem described in
  bug #7516.  The second commit adds a regression test case.
  Back-patch the fix to all active branches.  The test case only works
  as far back as 9.0, because it relies on plpgsql which isn't
  installed by default before that.  (I didn't have success modifying
  it into an all-plperl form that still provoked a crash, though this
  may just reflect my lack of Perl-fu.)

- Improve largeobject regression test to show size of object read from
  file.  The idea here is to provide a more easily diagnosable failure
  diff when the problem is that has been DOS-ified, as I
  believe to be happening currently on buildfarm member hamerkop.  Per
  suggestion from Magnus Hagander.  Also, sync
  output/largeobject_1.source with current regression test.  Failure
  to do that in commit 3a0e4d36ebd7f477822d5bae41ba121a40d22ccc turns
  out to be the real reason that hamerkop has been complaining.

- Adjust largeobject_1.source per buildfarm.  Looks like the correct
  size of DOS-ified is 680800 not 680801.  (I got the latter
  from a version of unix2dos that appends a trailing ^Z, which
  evidently is not git's practice.)

- Rethink heuristics for choosing index quals for parameterized paths.
  Some experimentation with examples similar to bug #7539 has
  convinced me that indxpath.c's original implementation of
  parameterized-path generation was several bricks shy of a load.  In
  general, if we are relying on a particular outer rel or set of outer
  rels for a parameterized path, the path should use every indexable
  join clause that's available from that rel or rels.  Any join
  clauses that get left out of the indexqual will end up getting
  applied as plain filter quals (qpquals), and that's generally a
  significant loser compared to having the index AM enforce them.
  (This is particularly true with btree, which can skip the index scan
  entirely if it can see that the given indexquals are mutually
  contradictory.)  The original heuristics failed to ensure this,
  though, and were overly complicated anyway.  Rewrite to make the
  code explicitly identify each useful set of outer rels and then
  select all applicable join clauses for each one.  The one plan that
  changes in the regression tests is in fact for the better according
  to the planner's cost estimates.  (Note: this is not a correctness
  issue but just a matter of plan quality.  I don't yet know what is
  going on in bug #7539, but I don't expect this change to fix that.)

Robert Haas pushed:

- Properly set relpersistence for fake relcache entries.  This can
  result in buffers failing to be properly flushed at checkpoint time,
  leading to data loss.  Report, diagnosis, and patch by Jeff Davis.

Peter Eisentraut pushed:

- psql: Add more constraint completion: ALTER DOMAIN ...

- PL/Python: Improve Python 3 regression test setup.  Currently, we
  are making mangled copies of plpython/{expected,sql} to
  plpython/python3/{expected,sql}, and run the tests in
  plpython/python3.  This has the disadvantage that the
  regression.diffs file, if any, ends up in plpython/python3, which is
  not the normal location.  If we instead make the mangled copies in
  plpython/{expected,sql}/python3/, we can run the tests from the
  normal directory, regression.diffs ends up the normal place, and the
  pg_regress invocation also becomes a lot simpler.  It's also more
  obvious at run time what's going on, because the tests end up being
  named "python3/something" in the test output.

Simon Riggs pushed:

- Fix bufmgr so CHECKPOINT_END_OF_RECOVERY behaves as a shutdown
  checkpoint.  Recovery code documents clearly that a shutdown
  checkpoint is executed at end of recovery - a shutdown checkpoint
  WAL record is written but the buffer manager had been altered to
  treat end of recovery as a normal checkpoint.  This bug exacerbates
  the bufmgr relpersistence bug.  Bug spotted by Andres Freund, patch
  by me.

== Rejected Patches (for now) ==

No one was disappointed this week :-)

== Pending Patches ==

KaiGai Kohei sent in a patch to add an argument to the OAT_POST_CREATE
hook which inform extensions of the context of object creation.

Tatsuo Ishii sent in a patch to increase the size of large objects
(LOs) from 32- to 64-bit.

Heikki Linnakangas sent a WIP patch to allow changing timelines via
streaming replication alone.  This would allow a cluster with more
than two nodes to be reshaped without recourse to WALs.

Shigeru HANADA sent in a patch to move the postgresql_fdw_validator
function into dblink.

Amit Kapila sent in two more revisions of the patch to enable a
stand-alone backend which uses the full FE/BE protocol.

Jeff Davis and Kevin Grittner traded patches to document the
interactions of SSI, subtransactions and read-only transactions.

Brar Piening sent in another revision of the patch to make PostgreSQL
compile with Microsoft Visual Studio 2012.

Etsuro Fujita sent in a patch to add hooks for pre- and post-processor
executables for COPY.

Kyotaro HORIGUCHI sent in a patch to improve performance of queries on
partitioned tables.

Kyotaro HORIGUCHI sent in a patch to reduce the number of palloc()s in
numeric operations.

Shigeru HANADA sent in a patch to implement PostgreSQL FDW as a
contrib extension.

Jeff Davis sent in another WIP patch implementing page checksums.

Amit Kapila sent in two revisions of a patch to fix an infelicity in
checks in the case of table inheritance.

Amit Kapila sent in another revision of the patch to have a separate
timeout parameter for walreceiver in aid of helping replication detect
network partitions faster.

Alvaro Herrera sent in another revision of the patch to add an
embedded list interface.

Andres Freund sent in a patch which adds singly- and doubly-linked
lists which can be easily embedded into other data structures and can
be used without any additional memory allocations.

Andres Freund sent in a patch to implement a minimal binary heap.

Andres Freund sent in a patch to add support for a generic WAL reading
facility, XLogReader.

Andres Freund sent in a patch to add a simple xlogdump tool.

Andres Freund sent in a patch to add a new syscache to fetch a
pg_class entry via (reltablespace, relfilenode).

Andres Freund sent in a patch to log enough data into the WAL to
reconstruct logical changes from it if wal_level is set to 'logical'.

Andres Freund sent in a patch to make InvalidateSystemCaches public.

Andres Freund sent in a patch to introduce WAL decoding via catalog
time travel.

Andres Freund sent in a patch to add a new relmapper.c function
RelationMapFilenodeToOid() that acts as an inverse of

Andres Freund sent in a patch to add a new function
pg_relation_by_filenode to lookup up a relation given the tablespace
and the filenode OIDs.

Gurjeet Singh sent in a patch to include c.h in
src/include/access/xlog.h and src/include/utils/timestamp.h per output
from some IDEs.

Tomas Vondra sent in a patch to control the amount of logging pgbench
does by setting an optional "logging step" parameter which takes a
parameter of either the number of lines to go until the next line is
logged, or a percentage.

pgsql-announce by date

Next:From: Boris KolpackovDate: 2012-09-18 12:53:55
Subject: ODB C++ ORM 2.1.0 released, tested with PostgreSQL 9.2
Previous:From: Marko KreenDate: 2012-09-12 15:25:53
Subject: PgBouncer 1.5.3

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