Features Download
From: David Fetter <david <at> fetter.org>
Subject: == PostgreSQL Weekly News - August 12 2012 ==
Newsgroups: gmane.comp.db.postgresql.announce
Date: Monday 13th August 2012 03:56:16 UTC (over 5 years ago)
== PostgreSQL Weekly News - August 12 2012 ==

== PostgreSQL Jobs for August ==


== 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.  The call for papers is open.

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

== 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 [email protected], German language
to [email protected], Italian language to [email protected]  Spanish language
to [email protected]

== Applied Patches ==

Simon Riggs pushed:

- fsync backup_label after pg_start_backup().  Dave Kerr

- Fix minor bug in XLogFileRead() that accidentally worked.  Cascading
  replication copied the incoming file into pg_xlog but didn't set
  path correctly, so the first attempt to open file failed causing it
  to loop around and look for file in pg_xlog. So the earlier coding
  worked, but accidentally rather than by design.  Spotted by Fujii
  Masao, fix by Fujii Masao and Simon Riggs

- Doc correction to point out that 9.2+ can overwrite pg_xlog files.
  Noted by Noah Misch, patch by Fujii Masao

- Force archive_status of .done for xlogs created by
  dearchival/replication.  This prevents spurious attempts to archive
  xlog files after promotion of standby, a bug introduced by cascading
  replication patch in 9.2.  Fujii Masao, simplified and extended to
  cover streaming by Simon Riggs

- Ensure all replication message info is available and correct via

- Turn off WalSender keepalives by default, users can enable if

Alvaro Herrera pushed:

- Fix redundant wording

- Fix typo in comment

Bruce Momjian pushed:

- Fix pg_upgrade file share violation on Windows created by the commit
  4741e9afb93f0d769655b2d18c2b73b86f281010.  This was done by adding
  an optional second log file parameter to exec_prog(), and closing
  and reopening the log file between system() calls.  Backpatch to

- Fix to_char(), to_date(), and to_timestamp() to handle negative/BC
  century specifications just like positive/AD centuries.  Previously
  the behavior was either wrong or inconsistent with positive/AD
  handling.  Centuries without years now always assume the first year
  of the century, which is now documented.

- Add additional C comments for to_date/to_char() fixes.

- Fix pgtest to return proper error code based on 'make' return code.

- Adjust pgtest coding to be less complex.

- Prevent pg_upgrade from crashing if it can't write to the current
  directory.  Backpatch to 9.2.

Robert Haas pushed:

- Fix memory leaks in event trigger code.  Spotted by Jeff Davis.

- Fix cache flush hazard in event trigger cache.  Bug spotted by Jeff

- Make psql -1 < file behave as expected.  Previously, the -1 option
  was silently ignored.  Also, emit an error if -1 is used in a
  context where it won't be respected, to avoid user confusion.
  Original patch by Fabien COELHO, but this version is quite different
  from the original submission.

Tom Lane pushed:

- Tweak new Perl pgindent for compatibility with middle-aged Perls.
  We seem to have a rough policy that our Perl scripts should work
  with Perl 5.8, so make this one do so.  Main change is to not use
  the newfangled \h character class in regexes; "[ \t]" is a
  serviceable replacement.

- Implement SQL-standard LATERAL subqueries.  This patch implements
  the standard syntax of LATERAL attached to a sub-SELECT in FROM, and
  also allows LATERAL attached to a function in FROM, since
  set-returning function calls are expected to be one of the principal
  use-cases.  The main change here is a rewrite of the mechanism for
  keeping track of which relations are visible for column references
  while the FROM clause is being scanned.  The parser "namespace"
  lists are no longer lists of bare RTEs, but are lists of
  ParseNamespaceItem structs, which carry an RTE pointer as well as
  some visibility-controlling flags.  Aside from supporting LATERAL
  correctly, this lets us get rid of the ancient hacks that required
  rechecking subqueries and JOIN/ON and function-in-FROM expressions
  for invalid references after they were initially parsed.  Invalid
  column references are now always correctly detected on sight.  In
  passing, remove assorted parser error checks that are now dead code
  by virtue of our having gotten rid of add_missing_from, as well as
  some comments that are obsolete for the same reason.  (It was mainly
  add_missing_from that caused so much fudging here in the first
  place.) The planner support for this feature is very minimal, and
  will be improved in future patches.  It works well enough for
  testing purposes, though.  catversion bump forced due to new field
  in RangeTblEntry.

- Fix TwoPhaseGetDummyBackendId().  This was broken in commit
  ed0b409d22346b1b027a4c2099ca66984d94b6dd, which revised the
  GlobalTransactionData struct to not include the associated PGPROC as
  its first member, but overlooked one place where a cast was used in
  reliance on that equivalence.  The most effective way of fixing this
  seems to be to create a new function that looks up the
  GlobalTransactionData struct given the XID, and make both
  TwoPhaseGetDummyBackendId and TwoPhaseGetDummyProc rely on that.
  Per report from Robert Ross.

- Update isolation tests' README file.  The directions explaining
  about running the prepared-transactions test were not updated in
  commit ae55d9fbe3871a5e6309d9b91629f1b0ff2b8cba.

- Merge parser's p_relnamespace and p_varnamespace lists into a single
  list.  Now that we are storing structs in these lists, the
  distinction between the two lists can be represented with a couple
  of extra flags while using only a single list.  This simplifies the
  code and should save a little bit of palloc traffic, since the
  majority of RTEs are represented in both lists anyway.

- Centralize the logic for detecting misplaced aggregates, window
  funcs, etc.  Formerly we relied on checking after-the-fact to see if
  an expression contained aggregates, window functions, or sub-selects
  when it shouldn't.  This is grotty, easily forgotten (indeed, we had
  forgotten to teach DefineIndex about rejecting window functions),
  and none too efficient since it requires extra traversals of the
  parse tree.  To improve matters, define an enum type that classifies
  all SQL sub-expressions, store it in ParseState to show what kind of
  expression we are currently parsing, and make
  transformAggregateCall, transformWindowFuncCall, and
  transformSubLink check the expression type and throw error if the
  type indicates the construct is disallowed.  This allows removal of
  a large number of ad-hoc checks scattered around the code base.  The
  enum type is sufficiently fine-grained that we can still produce
  error messages of at least the same specificity as before.  Bringing
  these error checks together revealed that we'd been none too
  consistent about phrasing of the error messages, so standardize the
  wording a bit.  Also, rewrite checking of aggregate arguments so
  that it requires only one traversal of the arguments, rather than up
  to three as before.  In passing, clean up some more comments left
  over from add_missing_from support, and annotate some tests that I
  think are dead code now that that's gone.  (I didn't risk actually
  removing said dead code, though.)

- Update overlooked comment.

- Support having multiple Unix-domain sockets per postmaster.  Replace
  unix_socket_directory with unix_socket_directories, which is a list
  of socket directories, and adjust postmaster's code to allow zero or
  more Unix-domain sockets to be created.  This is mostly a
  straightforward change, but since the Unix sockets ought to be
  created after the TCP/IP sockets for safety reasons (better chance
  of detecting a port number conflict), AddToDataDirLockFile needs to
  be fixed to support out-of-order updates of data directory lockfile
  lines.  That's a change that had been foreseen to be necessary
  someday anyway.  Honza Horak, reviewed and revised by Tom Lane

- Fix dependencies generated during ALTER TABLE ADD CONSTRAINT USING
  INDEX.  This command generated new pg_depend entries linking the
  index to the constraint and the constraint to the table, which match
  the entries made when a unique or primary key constraint is built de
  novo.  However, it did not bother to get rid of the entries linking
  the index directly to the table.  We had considered the issue when
  the ADD CONSTRAINT USING INDEX patch was written, and concluded that
  we didn't need to get rid of the extra entries.  But this is wrong:
  ALTER COLUMN TYPE wasn't expecting such redundant dependencies to
  exist, as reported by Hubert Depesz Lubaczewski.  On reflection it
  seems rather likely to break other things as well, since there are
  many bits of code that crawl pg_depend for one purpose or another,
  and most of them are pretty naive about what relationships they're
  expecting to find.  Fortunately it's not that hard to get rid of the
  extra dependency entries, so let's do that.  Back-patch to 9.1,

- Add link from COPY ref page to psql \copy.  Jeff Janes

  marking has to be propagated down to the UNION leaf queries when we
  pull them up.  Also, fix the formerly stubbed-off
  set_append_rel_pathlist().  It does already have enough smarts to
  cope with making a parameterized Append path at need; it just has to
  not assume that there *must* be an unparameterized path.

- More fixes for planner's handling of LATERAL.  Re-allow subquery
  pullup for LATERAL subqueries, except when the subquery is below an
  outer join and contains lateral references to relations outside that
  outer join.  If we pull up in such a case, we risk introducing
  lateral cross-references into outer joins' ON quals, which is
  something the code is entirely unprepared to cope with right now;
  and I'm not sure it'll ever be worth coping with.  Support lateral
  refs in VALUES (this seems to be the only additional path type that
  needs such support as a consequence of re-allowing subquery pullup).
  Put in a slightly hacky fix for joinpath.c's refusal to consider
  parameterized join paths even when there cannot be any
  unparameterized ones.  This was causing "could not devise a query
  plan for the given query" failures in queries involving more than
  two FROM items.  Put in an even more hacky fix for
  distribute_qual_to_rels() being unhappy with join quals that contain
  references to rels outside their syntactic scope; which is to say,
  disable that test altogether.  Need to think about how to preserve
  some sort of debugging cross-check here, while not expending more
  cycles than befits a debugging cross-check.

Magnus Hagander pushed:

- Fix upper limit of superuser_reserved_connections, add limit for
  wal_senders.  Should be limited to the maximum number of connections
  excluding autovacuum workers, not including.  Add similar check for
  max_wal_senders, which should never be higher than max_connections.

== Rejected Patches (for now) ==

No one was disappointed this week :-)

== Pending Patches ==

Pavel Stehule sent in a patch to allow pretty-printing queries.

Alexander Korotkov sent in another revision of the patch to make
SP-GiST for ranges more efficient using 2-d mapping and quad-tree.

Pavel Stehule sent in another revision of the patch to allow assigning
a single-row query's target list to a corresponding list of psql
variables using a new command \gset.

Fujii Masao sent in a patch to fix a bug in pg_trgm.

Jeff Davis sent in another revision of the patch to add 16-bit
checksums to data pages.

Alexander Korotkov sent in two more revisions of a patch to improve
statistics and selectivity estimation for ranges.

Craig Ringer sent in a patch to implement value_to_json for
single-datum conversion.

---------------------------(end of broadcast)---------------------------
-To unsubscribe from this list, send an email to:

               [email protected]
CD: 4ms