PostgreSQL Weekly News June 7, 2009
authorDavid Fetter <david@fetter.org>
Mon, 8 Jun 2009 06:59:34 +0000 (06:59 +0000)
committerDavid Fetter <david@fetter.org>
Mon, 8 Jun 2009 06:59:34 +0000 (06:59 +0000)
git-svn-id: file:///Users/dpage/pgweb/svn-repo/trunk@2505 8f5c7a92-453e-0410-a47f-ad33c8a6b003

portal/files/weeklynews.xml
portal/template/en/community/weeklynews.html
portal/template/en/community/weeklynews/pwn20090607.html [new file with mode: 0644]

index 07e62f85e1ea29937326cba59e9f121625c44ad3..3d6f34f87c4a0ae27e1f85813b411f5fb0b25986 100644 (file)
 <description></description>
 <language>en</language>
 
+<item>
+<title>PostgreSQL Weekly News June 7th 2009</title>
+<description>
+The CfP for PGCon Brazil is open!
+&#x3C;a href=&#x22;http://pgcon.postgresql.org.br/2009/chamadas.en.php&#x22;&#x3E;http://pgcon.postgresql.org.br/2009/chamadas.en.php&#x3C;/a&#x3E;
+
+
+</description>
+<guid isPermaLink="true">http://www.postgresql.org/community/weeklynews/pwn20090607</guid>
+<pubDate>Sun, 07 Jun 2009 00:00:00 PST</pubDate>
+</item>
 <item>
 <title>PostgreSQL Weekly News May 31st 2009</title>
 <description>
@@ -115,16 +126,5 @@ Registration is now open for pgCon in Ottawa:
 <guid isPermaLink="true">http://www.postgresql.org/community/weeklynews/pwn20090405</guid>
 <pubDate>Sun, 05 Apr 2009 00:00:00 PST</pubDate>
 </item>
-<item>
-<title>PostgreSQL Weekly News April 1st 2009</title>
-<description>
-Following MySQL&#x27;s lead as usual, the PostgreSQL project is dividing
-into several lines of development:
-
-
-</description>
-<guid isPermaLink="true">http://www.postgresql.org/community/weeklynews/pwn20090401</guid>
-<pubDate>Wed, 01 Apr 2009 00:00:00 PST</pubDate>
-</item>
 </channel>
 </rss>
\ No newline at end of file
index 63be65e0abed3138e630fa3799996b7da8b959e1..ddf580604721bcf7ca16660b57ca711a783faaa9 100644 (file)
@@ -9,6 +9,7 @@ Weekly News
 <p>To receive the Weekly News in your inbox, please subscribe to the <a href="/community/lists/subscribe">pgsql-announce@postgresql.org</a> mailing list.</p>
 
 <ul>
+    <li><a href="/community/weeklynews/pwn20090607">June 7th 2009</a></li>
     <li><a href="/community/weeklynews/pwn20090531">May 31st 2009</a></li>
     <li><a href="/community/weeklynews/pwn20090524">May 24th 2009</a></li>
     <li><a href="/community/weeklynews/pwn20090517">May 17th 2009</a></li>
diff --git a/portal/template/en/community/weeklynews/pwn20090607.html b/portal/template/en/community/weeklynews/pwn20090607.html
new file mode 100644 (file)
index 0000000..e6b89b2
--- /dev/null
@@ -0,0 +1,324 @@
+<!-- BEGIN page_title_block -->
+Weekly News - June 07 2009
+<!-- END page_title_block -->
+
+<h1>PostgreSQL Weekly News - June 07 2009</h1>
+
+<p>
+The CfP for PGCon Brazil is open!
+<a href="http://pgcon.postgresql.org.br/2009/chamadas.en.php">http://pgcon.postgresql.org.br/2009/chamadas.en.php</a>
+</p>
+
+<p>
+ITPUG will be at the Italian Conference for Free Software which will
+be held in Bologna on June 12 and 13.  Gabriele Bartolini will
+present, "Students and open-source: the PostgreSQL case" on Saturday
+June 13 at 10:35am.
+<a href="http://www.confsl.org/">http://www.confsl.org/</a> 
+</p>
+
+<h2>PostgreSQL Product News</h2>
+<p>
+pgtheme, specifically developed for Drupal 6.x theme system, released.
+<a href="http://drupal.org/project/pgtheme">http://drupal.org/project/pgtheme</a>
+</p>
+
+<h2>PostgreSQL 8.4 Feature of the Week</h2>
+<p>
+quote_nullable: just like quote_literal, only it returns the string
+NULL for a null argument.
+</p>
+
+<h2>PostgreSQL Tip of the Week</h2>
+<p>
+The "ltree" contrib module is an implementation of indexed
+contatination trees, and is very appropriate for representing a
+filesystem or similar heirarchy in your database.
+</p>
+
+<h2>PostgreSQL Local</h2>
+<p>
+Save The Date: pgDay San Jose.  Sunday, July 19th 2009 immediately
+before OSCON.  CfP, more info TBA!
+</p>
+
+<p>
+PGCon Brazil will be take place October 23-24 2009 at Unicamp in
+Campinas, Sao Paulo state.
+</p>
+
+<p>
+PGDay.EU 2009 will be at Telecom ParisTech in Paris, France on
+November 6-7, 2009.
+<a href="http://www.pgday.eu/">http://www.pgday.eu/</a>
+</p>
+
+<p>
+JPUG 10th Anniversary Conference has started its Request for
+Proposals.  The conference is November 20-21, 2009 in Tokyo, Japan.
+<a href="http://archives.postgresql.org/pgsql-announce/2009-05/msg00018.php">http://archives.postgresql.org/pgsql-announce/2009-05/msg00018.php</a>
+</p>
+
+<h2>PostgreSQL in the News</h2>
+<p>
+Planet PostgreSQL: <a href="http://planet.postgresql.org/">http://planet.postgresql.org/</a>
+</p>
+
+<p>
+PostgreSQL Weekly News is brought to you this week by David Fetter
+and Josh Berkus.
+</p>
+
+<p>
+Submit news and announcements by Sunday at 3:00pm Pacific time.
+Please send English language ones to david@fetter.org, German language
+to pwn@pgug.de, Italian language to pwn@itpug.org.
+</p>
+
+<h2>Applied Patches</h2>
+<p>
+Tom Lane committed:
+</p>
+
+<p>
+- Fix DecodeInterval to report an error for multiple occurrences of
+  DAY, WEEK, YEAR, DECADE, CENTURY, or MILLENIUM fields, just as it
+  always has done for other types of fields.  The previous behavior
+  seems to have been a hack to avoid defining bit-positions for all
+  these field types in DTK_M() masks, rather than something that was
+  really considered to be desired behavior.  But there is room in the
+  masks for these, and we really need to tighten up at least the
+  behavior of DAY and YEAR fields to avoid unexpected behavior
+  associated with the 8.4 changes to interpret ambiguous fields based
+  on the interval qualifier (typmod) value.  Per my example and
+  proposed patch.
+</p>
+
+<p>
+- Change AdjustIntervalForTypmod to not discard higher-order field
+  values on the grounds that they don't fit into the specified
+  interval qualifier (typmod).  This behavior, while of long standing,
+  is clearly wrong per spec --- for example the value INTERVAL '999'
+  SECOND means 999 seconds and should not be reduced to less than 60
+  seconds.  In some cases there could be grounds to raise an error if
+  higher-order field values are not given as zero; for example '1 year
+  1 month'::INTERVAL MONTH should arguably be taken as an error rather
+  than equivalent to 13 months.  However our internal representation
+  doesn't allow us to do that in a fashion that would consistently
+  reject all and only the cases that a strict reading of the spec
+  would suggest.  Also, seeing that for example INTERVAL '13' MONTH
+  will print out as '1 year 1 mon', we have to be careful not to
+  create a situation where valid data will fail to dump and reload.
+  The present patch therefore takes the attitude of not throwing an
+  error in any such case.  We might want to revisit that in future but
+  it would take more redesign than seems prudent in late beta.  Per a
+  complaint from Sebastien Flaesch and subsequent discussion.  While
+  at other times we might have just postponed such an issue to the
+  next development cycle, 8.4 already has changed the parsing of
+  interval literals quite a bit in an effort to accept all
+  spec-compliant cases correctly.  This seems like a change that
+  should be part of that rather than coming along later.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/config.sgml, Remove the old advice to keep
+  from_collapse_limit less than geqo_threshold, instead just pointing
+  out that a larger value may trigger use of GEQO.  Per Robert Haas.
+  In passing, do a bit of wordsmithing on the Genetic Query Optimizer
+  section.
+</p>
+
+<p>
+- In pgsql/src/backend/commands/copy.c, improve comment about 'if (1)'
+  hack in copy.c macros.
+</p>
+
+<p>
+- In pgsql/src/bin/initdb/initdb.c, change rather bizarre code
+  ordering in get_id().  This isn't strictly cosmetic --- I'm
+  wondering if geteuid could have side effects on errno, thus possibly
+  resulting in a misleading error message after failure of getpwuid.
+</p>
+
+<p>
+- In pgsql/src/backend/tsearch/ts_selfuncs.c, fix tsquerysel() to not
+  fail on an empty TSQuery.  Per report from Tatsuo Ishii.
+</p>
+
+<p>
+- Clean up ecpg's use of mmerror(): const-ify the format argument, add
+  an __attribute__() marker so that gcc can validate the format string
+  against the actual arguments, get rid of overcomplicated and unsafe
+  usage in base_yyerror().
+</p>
+
+<p>
+- Improve the recently-added support for properly pluralized error
+  messages by extending the ereport() API to cater for pluralization
+  directly.  This is better than the original method of calling
+  ngettext outside the elog.c code because (1) it avoids double
+  translation, which wastes cycles and in the worst case could give a
+  wrong result; and (2) it avoids having to use a different coding
+  method in PL code than in the core backend.  The client-side uses of
+  ngettext are not touched since neither of these concerns is very
+  pressing in the client environment.  Per my proposal of yesterday.
+</p>
+
+<p>
+- Remove a couple of debugging messages that have been #ifdef'd out
+  for ages.  Seems silly to ask translators to expend work on these,
+  especially in pluralized variants.
+</p>
+
+<p>
+- Trivial code style cleanup around a couple of ngettext calls.
+</p>
+
+<p>
+- GIN's ItemPointerIsMin, ItemPointerIsMax, and ItemPointerIsLossyPage
+  macros should use GinItemPointerGetBlockNumber/
+  GinItemPointerGetOffsetNumber, not ItemPointerGetBlockNumber/
+  ItemPointerGetOffsetNumber, because the latter will Assert() on
+  ip_posid == 0, ie a "Min" pointer.  (Thus, ItemPointerIsMin has
+  never worked at all, but it seems unused at present.)  I'm not
+  certain that the case can occur in normal functioning, but it's
+  blowing up on me while investigating Tatsuo-san's data corruption
+  problem.  In any case it seems like a problem waiting to bite
+  someone.  Back-patch just in case this really is a problem for
+  somebody in the field.
+</p>
+
+<p>
+- Fix a serious bug introduced into GIN in 8.4: now that
+  MergeItemPointers() is supposed to remove duplicate heap TIDs, we
+  have to be sure to reduce the tuple size and posting-item count
+  accordingly in addItemPointersToTuple().  Failing to do so resulted
+  in the effective injection of garbage TIDs into the index contents,
+  ie, whatever happened to be in the memory palloc'd for the new
+  tuple.  I'm not sure that this fully explains the index corruption
+  reported by Tatsuo Ishii, but the test case I'm using no longer
+  fails.
+</p>
+
+<p>
+- In pgsql/src/pl/plperl/plperl.c, move variable declaration to avoid
+  'unused variable' warning when the ifdef doesn't trigger.  Not worth
+  back-patching.  Per buildfarm reports.
+</p>
+
+<p>
+- Improve the IndexVacuumInfo/IndexBulkDeleteResult API to allow
+  somewhat sane behavior in cases where we don't know the heap tuple
+  count accurately; in particular partial vacuum, but this also makes
+  the API a bit more useful for ANALYZE.  This patch adds
+  "estimated_count" flags to both structs so that an approximate count
+  can be flagged as such, and adjusts the logic so that approximate
+  counts are not used for updating pg_class.reltuples.  This fixes my
+  previous complaint that VACUUM was putting ridiculous values into
+  pg_class.reltuples for indexes.  The actual impact of that bug is
+  limited, because the planner only pays attention to reltuples for an
+  index if the index is partial; which probably explains why beta
+  testers hadn't noticed a degradation in plan quality from it.  But
+  it needs to be fixed.  The whole thing is a bit messy and should be
+  redesigned in future, because reltuples now has the potential to
+  drift quite far away from reality when a long period elapses with no
+  non-partial vacuums.  But this is as good as it's going to get for
+  8.4.
+</p>
+
+<p>
+- Revert my patch of 2009-04-04 that removed contrib/intarray's
+  definitions of the <@ and @> operators.  These are not in fact
+  equivalent to the built-in anyarray operators of the same names,
+  because they have different behavior for empty arrays, namely they
+  don't think empty arrays are contained in anything.  That is
+  mathematically wrong, no doubt, but until we can persuade GIN
+  indexes to implement the mathematical definition we should probably
+  not change this.  Another reason for not changing it now is that we
+  can't yet ensure the opclasses will be updated correctly in a
+  dump-and-reload upgrade.  Per recent discussions.
+</p>
+
+<p>
+Joe Conway committed:
+</p>
+
+<p>
+- In pgsql/contrib/dblink/dblink.c, fix dblink_get_result() as
+  reported by Oleksiy Shchukin.  Refactor a bit while we're at it per
+  request by Tom Lane.  Specifically, don't try to perform
+  dblink_send_query() via dblink_record_internal() -- it was
+  inappropriate and ugly.
+</p>
+
+<p>
+- Add support for using SQL/MED compliant FOREIGN DATA WRAPPER,
+  SERVER, and USER MAPPING as method to supply dblink connect
+  parameters.  Per mailing list and PGCon discussions.
+</p>
+
+<p>
+Heikki Linnakangas committed:
+</p>
+
+<p>
+- In pgsql/src/backend/access/transam/xlog.c, only recycle normal
+  files in pg_xlog as WAL segments.  pg_standby creates symbolic links
+  with the -l option, and as Fujii Masao pointed out we ended up
+  overwriting files in the archive directory before this patch.  Patch
+  by Aidan Van Dyk, Fujii Masao and me.
+</p>
+
+<p>
+Bruce Momjian committed:
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/config.sgml, add example of how to generate
+  the session identifier from pg_stat_activity.
+</p>
+
+<p>
+- In pgsql/src/backend/commands/copy.c, add comment about why
+  "((void) 0)" is used in copy macros.
+</p>
+
+<p>
+- Wording improvement for recent sesssion identifier SQL query.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/config.sgml, wording improvement for recent
+  sesssion identifier SQL query.
+</p>
+
+<p>
+- In pgsql/doc/src/sgml/backup.sgml, remove sleep() from backup script
+  example; not needed anymore.  Fujii Masao.
+</p>
+
+<p>
+Andrew Dunstan committed:
+</p>
+
+<p>
+- Initialise perl library as documented in perl API.  Backpatch to
+  release 7.4.
+</p>
+
+<p>
+- Search for versioned perl library instead of using hardcoded name on
+  Windows.  Backpatch to release 8.3
+</p>
+
+<p>
+- Adjust recent PERL_SYS_INIT3 call to avoid platforms where it might
+  fail, and to remove compilation warning.  Backpatch the release 7.4.
+</p>
+
+<h2>Rejected Patches (for now)</h2>
+<p>
+No one was disappointed this week :-)
+</p>
+
+<h2>Pending Patches</h2>