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

== PostgreSQL Weekly News - September 06 2009 ==

From: David Fetter <david(at)fetter(dot)org>
To: PostgreSQL Announce <pgsql-announce(at)postgresql(dot)org>
Subject: == PostgreSQL Weekly News - September 06 2009 ==
Date: 2009-09-07 02:04:56
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-announce
== PostgreSQL Weekly News - September 06 2009 ==

New Survey:  Which 8.5 Alpha1 feature do you find the most

Registration for PostgreSQL Conference West is now open:

PostgreSQL Live CD Project started a mailing list to build a live CD
with comments from community:

== PostgreSQL Product News ==

GTpB portalBase, a web plaform based on PostgreSQL, is now available
under the GPL.

PostgreSQL RPM Building Project another version of The PostgreSQL
Live CD, this time based on PostgreSQL 8.4.0 and CentOS 5.3:

AnySQL Maestro 9.8, a GUI for administration and development on
Windows, released.

pg51g, a data diff toolkit for PostgreSQL, released.

pgDesigner 1.2.11, a graphical schema design program for PostgreSQL,

== PostgreSQL Jobs for September ==

== PostgreSQL Local ==

SFPUG presents: Nathan Boley on Statistics and Postgres.
September 8, 2009.  Details including live webcast info below.

There will be a conference in Seattle, Washington, USA October 16-18,
2009.  The CfP is still open.

PGCon Brazil will be take place October 23-24 2009 at Unicamp in
Campinas, Sao Paulo state.  The CfP is open!

PGDay.EU 2009 will be at Telecom ParisTech in Paris, France on
November 6-7, 2009.  The CfP is out.  Submit!

OpenSQL Camp in Portland is looking for sponsors.  Make your travel plans now! :)

JPUG 10th Anniversary Conference is November 20-21, 2009 in Tokyo, Japan.

FOSDEM 2010 will be in Brussels on February 6-7, 2010.

== PostgreSQL in the News ==

Planet PostgreSQL:

PostgreSQL Weekly News is brought to you this week by David Fetter,
Josh Berkus, and Devrim GUNDUZ.

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)

== Applied Patches ==

Tom Lane committed:

- Track the current XID wrap limit (or more accurately, the oldest
  unfrozen XID) in checkpoint records.  This eliminates the need to
  recompute the value from scratch during database startup, which is
  one of the two remaining reasons for the flatfile code to exist.  It
  should also simplify life for hot-standby operation.  To avoid
  bloating the checkpoint records unreasonably, I switched from
  tracking the oldest database by name to tracking it by OID.  This
  turns out to save cycles in general (everywhere but the
  warning-generating paths, which we hardly care about) and also helps
  us deal with the case that the oldest database got dropped instead
  of being vacuumed.  The prior coding might go for a long time
  without updating the wrap limit in that case, which is bad because
  it might result in a lot of useless autovacuum activity.

- Change the autovacuum launcher to read pg_database directly, rather
  than via the "flat files" facility.  This requires making it enough
  like a backend to be able to run transactions; it's no longer an
  "auxiliary process" but more like the autovacuum worker processes.
  Also, its signal handling has to be brought into line with
  backends/workers.  In particular, since it now has to handle
  procsignal.c processing, the special autovac-launcher-only signal
  conditions are moved to SIGUSR2.  Alvaro Herrera, with some cleanup
  from Tom Lane.

- Move processing of startup-packet switches and GUC settings into
  InitPostgres, to fix the problem that SetClientEncoding needs to be
  done before InitializeClientEncoding, as reported by Zdenek Kotala.
  We get at least the small consolation of being able to remove the
  bizarre API detail that had InitPostgres returning whether user is a

- Bump catversion for flat-file-ectomy.  Also remove a missed dead
  extern declaration.

- In pgsql/src/backend/access/transam/twophase.c, actually, we need to
  bump the format identifier on twophase files because of readjustment
  of 2PC rmgr IDs for flatfile removal.

- Force VACUUM to recalculate oldestXmin even when we haven't changed
  our own database's datfrozenxid, if the current value is old enough
  to be forcing autovacuums or warning messages.  This ensures that a
  bogus value is replaced as soon as possible.  Per a comment from

- Fix pg_ctl's readfile() to not go into infinite loop on an empty
  file (could happen if either postgresql.conf or postmaster.opts is
  empty).  It's been broken since the C version was written for 8.0,
  so patch all the way back.  initdb's copy of the function is broken
  in the same way, but it's less important there since the input files
  should never be empty.  Patch that in HEAD only, and also fix some
  cosmetic differences that crept into that copy of the function.  Per
  report from Corry Haines and Jeff Davis.

- Fix subquery pullup to wrap a PlaceHolderVar around the entire
  RowExpr that's generated for a whole-row Var referencing the
  subquery, when the subquery is in the nullable side of an outer
  join.  The previous coding instead put PlaceHolderVars around the
  elements of the RowExpr.  The effect was that when the outer join
  made the subquery outputs go to null, the whole-row Var produced
  ROW(NULL,NULL,...) rather than just NULL.  There are arguments afoot
  about whether those things ought to be semantically
  indistinguishable, but for the moment they are not entirely so, and
  the planner needs to take care that its machinations preserve the
  difference.  Per bug #5025.  Making this feasible required
  refactoring ResolveNew() to allow more caller control over what is
  substituted for a Var.  I chose to make ResolveNew() a wrapper
  around a new general-purpose function replace_rte_variables().  I
  also fixed the ancient bogosity that ResolveNew might fail to set a
  query's hasSubLinks field after inserting a SubLink in it.  Although
  all current callers make sure that happens anyway, we've had bugs of
  that sort before, and it seemed like a good time to install a proper
  solution.  Back-patch to 8.4.  The problem can be demonstrated clear
  back to 8.0, but the fix would be too invasive in earlier branches;
  not to mention that people may be depending on the subtly-incorrect
  behavior.  The 8.4 series is new enough that fixing this probably
  won't cause complaints, but it might in older branches.  Also, 8.4
  shows the incorrect behavior in more cases than older branches do,
  because it is able to flatten subqueries in more cases.

- In pgsql/src/bin/initdb/initdb.c, remove initdb's rather gratuitous
  check to see if the backend created a flat password file, because it
  never will anymore.  We had managed to miss this during the recent
  flat-file-ectomy because it only happens if --pwfile or --pwprompt
  is specified to initdb.  Apparently, few hackers use those.
  Reported by Erik Rijkers.

- Update time zone data files to tzdata release 2009l: DST law changes
  in Egypt, Mauritius, Bangladesh.

- Install a workaround for a longstanding gcc bug that allows SIGFPE
  traps to occur for division by zero, even though the code is
  carefully avoiding that.  All available evidence is that the only
  functions affected are int24div, int48div, and int28div, so patch
  just those three functions to include a "return" after the ereport()
  call.  Backpatch to 8.4 so that the fix can be tested in production
  builds.  For older branches our recommendation will continue to be
  to use -O1 on affected platforms (which are mostly non-mainstream

- Final updates of release notes for 8.4.1, 8.3.8, 8.2.14, 8.1.18,
  8.0.22, 7.4.26.

- In pgsql/src/backend/postmaster/pgstat.c, remove pgstat's
  discrimination against MsgVacuum and MsgAnalyze messages.  Formerly,
  these message types would be discarded unless there was already a
  stats hash table entry for the target table.  However, the intent of
  saving hash table space for unused tables was subverted by the fact
  that the physical I/O done by the vacuum or analyze would result in
  an immediately following tabstat message, which would create the
  hash table entry anyway.  All that we had left was surprising loss
  of statistical data, as in a recent complaint from Jaime Casanova.
  It seems unlikely that a real database would have many tables that
  go totally untouched over the long haul, so the consensus is that
  this "optimization" serves little purpose anyhow.  Remove it, and
  just create the hash table entry on demand in all cases.

- In pgsql/src/backend/Makefile, revert ill-considered restriction of
  dtrace support to Solaris only.

- In pgsql/src/backend/Makefile, put back "ifeq ($(PORTNAME),
  solaris)", this time with some documentation of why it's not as
  broken as it appears on first glance.

- In pgsql/doc/src/sgml/ref/copy.sgml, add a note warning that COPY
  BINARY is very datatype-specific.  Per a complaint from Gordon

- Update the tznames reference files, and add IDT (Israel Daylight
  Time) to the Default timezone abbreviation set.  Back-port the the
  current file set to all branches that contain tznames.  This
  includes adding SGT to the Default set in pre-8.4 releases.  Joachim

Alvaro Herrera committed:

- This patch removes flatfiles.c for good.  It doesn't change the
  keeping of locks in dbcommands.c and user.c, because at least some
  of them are still required.  Regarding sync commits that previously
  happen and now won't, I think the only case worth worrying about is
  the one in vacuum.c.  Do we need a ForceSyncCommit() in there?  I'm
  not sure if vacuum itself already forces sync commit.

- Remove flatfiles.c, which is now obsolete.  Recent commits have
  removed the various uses it was supporting.  It was a performance
  bottleneck, according to bug report #4919 by Lauris Ulmanis; seems
  it slowed down user creation after a billion users.

Peter Eisentraut committed:

- In pgsql/src/backend/access/gist/gist.c, improve picksplit debug
  message.  Missed this earlier because the translation site was
  broken for the 7.4 branch.

- Translation updates

Magnus Hagander committed:

- In pgsql/src/interfaces/ecpg/preproc/Makefile, revert Makefile
  modification that broke the MSVC build.

Michael Meskes committed:

- In pgsql/src/interfaces/ecpg/ecpglib/misc.c, do not set connection
  values if no connection is open.

- In ECPG, removed some variables no longer needed.

- In pgsql/src/interfaces/ecpg/ecpglib/execute.c, fixed incorrect
  memory management.

Marc Fournier committed:

- Tag 8.4.1, 8.3.8, 8.2.14, 8.1.18, 8.0.22, and 7.4.26.

Heikki Linnakangas committed:

- In pgsql/src/backend/utils/adt/xml.c, fix encoding handling in xml
  binary input function. If the XML header didn't specify an encoding
  explicitly, we used to treat it as being in database encoding when
  we parsed it, but then perform a UTF-8 -> database encoding
  conversion on it, which was completely bogus. It's now consistently
  treated as UTF-8.

- Tighten binary receive functions so that they reject values that the
  text input functions don't accept either.  While the backend can
  handle such values fine, they can cause trouble in clients and in
  pg_dump/restore.  This is followup to the original issue on time
  datatype reported by Andrew McNamara a while ago.  Like that one,
  none of these seem worth back-patching.

== Rejected Patches (for now) ==

No one was disappointed this week :-)

== Pending Patches ==

Heikki Linnakangas sent in a patch to make some of the binary recv
functions stricter.

KaiGai Kohei sent in another revision of the patch to add access
controls for large objects.

Greg Sabino Mullane sent in another revision of the patch to add YAML
as a formatting option for EXPLAIN output.

Kevin Grittner sent in two more revisions of the patch to add a LSB
conformant init script to contrib/start-scripts.

Peter Eisentraut sent in another patch to help with PL/PythonU data
type conversion improvements.

Jeff Janes sent in a patch to rearrange pgbench's handling of
#define'd constants.

Sam Mason sent in a patch which throws an error when anything but a
one-byte char is sent to the "char" type.

ITAGAKI Takahiro sent in a patch to add column-level triggers.

KaiGai Kohei sent in another revision of the patch to refactor ACL
facilities in PostgreSQL.

Zoltan Boszormenyi sent in another revision of the patch to implement

Zoltan Boszormenyi sent in new revisions of the ECPG patches for
dynamic cursor name, sqlda, describe, and fixes for cursor scope error
handling in Informix compatibility mode.

Alvaro Herrera sent in a doc patch for logging at high loads.

Simon Riggs sent in a patch to skip SignalAutoVacuumWorkers(SIGTERM)
during recovery.

Zoltan Boszormenyi sent in another revision of the cursor-handling
patch for ECPG.

Robert Haas sent in another revision of the join removal patch.

Marko (johto) Tiikkaja sent in another revision of the patch to make
DML nodes in support of writeable CTEs.

KaiGai Kohei sent in another revision of the patch to add access
controls to large objects.

pgsql-announce by date

Next:From: Greg Sabino MullaneDate: 2009-09-08 14:17:21
Subject: Bucardo version 4.0.0 released
Previous:From: Michael NacosDate: 2009-09-05 01:22:55
Subject: data diffs with pg51g

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