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

== PostgreSQL Weekly News - October 12 2008 ==

From: David Fetter <david(at)fetter(dot)org>
To: PostgreSQL Announce <pgsql-announce(at)postgresql(dot)org>
Subject: == PostgreSQL Weekly News - October 12 2008 ==
Date: 2008-10-13 03:35:31
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-announce
== PostgreSQL Weekly News - October 12 2008 ==

PostgreSQL Conference West (aka JDCon) was a smashing success,
including 2.5 days, 3 rooms, and plenty of new speakers.

Devrim GUNDUZ has posted new 8.4 testing RPMs.  Get those bug reports

== PostgreSQL Product News ==

PgTap 0.12 released.

Community framework xPyrus released.

PostgreSQL Maestro 8.10 for Windows released.

Npgsql2 RTM released.

check_postgres 2.3.3 released and rolled out at

== PostgreSQL Jobs for October ==

== PostgreSQL Local ==

Dickson Guedes is looking for volunteers to help with a PgMeeting in
Florianópolis.  Write to guediz AT gmail DOT com if you want to help.

The San Francisco PostgreSQL Users' Group will be meeting at oDesk on
Tuesday, October 14 at 7:30pm.  RSVP ASAP.  Details below:

Portland PostgreSQL Users Group presents  Selena Deckelmann, who will
do a tutorial and live demo on PITR, October 16, 2008 7pm at Freegeek.

There will be a PostgreSQL BoF at Ontario Linux fest.

The European PostgreSQL Day (PGDay 2008) will be October 17 and 18 in
Prato, Tuscany, Italy.  Registration is open at

PostgreSQL has a table at LinuxLive, Olympia, London, UK on 23-25
October, 2008.  Write to Dave Page to participate.
dpage AT pgadmin DOT org

== PostgreSQL in the News ==

Planet PostgreSQL:

PostgreSQL Weekly News is brought to you this week by David Fetter
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:

- In pgsql/src/backend/utils/adt/formatting.c, random speculation
  about the reason for PPC64 buildfarm failures: maybe isalnum is
  returning a value with the low-order byte all zero?

- In pgsql/doc/src/sgml/catalogs.sgml, editorial improvements to
  description of pg_settings view.

- Fix GetCTEForRTE() to deal with the possibility that the RTE it's
  given came from a query level above the current ParseState.

- When expanding a whole-row Var into a RowExpr during ResolveNew(),
  attach the column alias names of the RTE referenced by the Var to
  the RowExpr.  This is needed to allow ruleutils.c to correctly
  deparse FieldSelect nodes referencing such a construct.  Per my
  recent bug report.  Adding a field to RowExpr forces initdb (because
  of stored rules changes) so this solution is not back-patchable;
  which is unfortunate because 8.2 and 8.3 have this issue.  But it
  only affects EXPLAIN for some pretty odd corner cases, so we can
  probably live without a solution for the back branches.

- Fix up ruleutils.c for CTE features.  The main problem was that
  get_name_for_var_field didn't have enough context to interpret a
  reference to a CTE query's output.  Fixing this requires separate
  hacks for the regular deparse case (pg_get_ruledef) and for the
  EXPLAIN case, since the available context information is quite
  different.  It's pretty nearly parallel to the existing code for
  SUBQUERY RTEs, though.  Also, add code to make sure we qualify a
  relation name that matches a CTE name; else the CTE will mistakenly
  capture the reference when reloading the rule.  In passing, fix a
  pre-existing problem with get_name_for_var_field not working on
  variables in targetlists of SubqueryScan plan nodes.  Although
  latent all along, this wasn't a problem until we made EXPLAIN
  VERBOSE try to print targetlists.  To do this, refactor the
  deparse_context_for_plan API so that the special case for
  SubqueryScan is all on ruleutils.c's side.

- In pgsql/src/backend/utils/sort/tuplestore.c, fix oversight in
  recent patch to support multiple read positions in tuplestore: in
  READFILE state tuplestore_select_read_pointer must save the current
  file seek position in the read pointer being deactivated.

- Improve parser error location for cases where an INSERT or UPDATE
  command supplies an expression that can't be coerced to the target
  column type.  The code previously attempted to point at the target
  column name, which doesn't work at all in an INSERT with omitted
  column name list, and is also not remarkably helpful when the
  problem is buried somewhere in a long INSERT-multi-VALUES command.
  Make it point at the failed expression instead.

- Extend CTE patch to support recursive UNION (ie, without ALL).  The
  implementation uses an in-memory hash table, so it will poop out for
  very large recursive results ... but the performance characteristics
  of a sort-based implementation would be pretty unpleasant too.

- In pgsql/src/backend/storage/freespace/fsmpage.c, improve some of
  the comments in fsmpage.c.

- Modify the parser's error reporting to include a specific hint for
  the case of referencing a WITH item that's not yet in scope
  according to the SQL spec's semantics.  This seems to be an easy
  error to make, and the bare "relation doesn't exist" message doesn't
  lead one's mind in the correct direction to fix it.

- In pgsql/src/backend/utils/adt/xml.c, fix crash in bytea-to-XML
  mapping when the source value is toasted.  Report and fix by Michael
  McMaster.  Some minor code beautification by me, also avoid memory
  leaks in the special-case paths.

- Fix overly tense optimization of PLpgSQL_func_hashkey: we must
  represent the isTrigger state explicitly, not rely on nonzero-ness
  of trigrelOid to indicate trigger-hood, because trigrelOid will be
  left zero when compiling for validation.  The (useless) function
  hash entry built by the validator was able to match an ordinary
  non-trigger call later in the same session, thereby bypassing the
  check that is supposed to prevent such a call.  Per report from
  Alvaro.  It might be worth suppressing the useless hash entry
  altogether, but that's a bigger change than I want to consider
  back-patching.  Back-patch to 8.0.  7.4 doesn't have the problem
  because it doesn't have validation mode.

- Improve the recently-added code for inlining set-returning functions
  so that it can handle functions returning setof record.  The case
  was left undone originally, but it turns out to be simple to fix.

- In pgsql/src/include/c.h, un-break non-NLS builds.

- In pgsql/src/backend/tcop/utility.c, fix omission of DiscardStmt in
  GetCommandLogLevel, per report from Hubert Depesz Lubaczewski.  In
  HEAD, also move a couple of other cases to make the code ordering
  match up with ProcessUtility.

- In pgsql/src/backend/access/index/indexam.c, fix small
  query-lifespan memory leak introduced by 8.4 change in index AM API
  for bitmap index scans.  Per report and test case from Kevin

- In pgsql/doc/src/sgml/ref/copy.sgml, fix COPY documentation to not
  imply that HEADER can be used outside CSV mode.  Per gripe from Bill

- Fix corner case wherein a WorkTableScan node could get initialized
  before the RecursiveUnion to which it refers.  It turns out that we
  can just postpone the relevant initialization steps until the first
  exec call for the node, by which time the ancestor node must surely
  be initialized.  Per report from Greg Stark.

Heikki Linnakangas committed:

- Index FSMs needs to be vacuumed as well. Report by Jeff Davis.

- Use fork names instead of numbers in the file names for additional
  relation forks. While the file names are not visible to users, for
  those that do peek into the data directory, it's nice to have more
  descriptive names. Per Greg Stark's suggestion.

- When a relation is moved to another tablespace, we can't assume that
  we can use the old relfilenode in the new tablespace. There might be
  another relation in the new tablespace with the same relfilenode, so
  we must generate a fresh relfilenode in the new tablespace.  The 8.3
  patch to let deleted relation files linger as zero-length files
  until the next checkpoint made this more obvious: moving a relation
  from one table space another, and then back again, caused a
  collision with the lingering file.  Back-patch to 8.1. The issue is
  present in 8.0 as well, but it doesn't seem worth fixing there,
  because we didn't have protection from OID collisions after OID
  wraparound before 8.1.  Report by Guillaume Lelarge.

- Force a checkpoint in CREATE DATABASE before starting to copy the
  files, to process any pending unlinks for the source database.
  Before, if you dropped a relation in the template database just
  before CREATE DATABASE, and a checkpoint happened during copydir(),
  the checkpoint might delete a file that we're just about to copy,
  causing lstat() in copydir() to fail with ENOENT.  Backpatch to 8.3,
  where the pending unlinks were introduced.  Per report by Matthew
  Wakeling and analysis by Tom Lane.

Magnus Hagander committed:

- Add columns boot_val and reset_val to the pg_settings view, to
  expose the value a parameter has at server start and will have after
  RESET, respectively.  Greg Smith, with some modifications by me.

Michael Meskes committed:

- In ECPG, synced parser.

- In ECPG, fixed "create role" parsing to accept optional "with"

- In ECPG, pgsql/src/interfaces/ecpg/preproc/preproc.y, optional
  arguments should be optional.

Bruce Momjian committed:

- Update Japanese FAQ.  Jun Kuwamura.

Alvaro Herrera committed:

- Improve translatability of error messages for external modules by
  tweaking the ereport macro.  Included in this commit are enough
  files for starting plpgsql, plpython, plperl and pltcl translations.

- Add initial plpgsql translation (with lots of fuzzies).

- In pgsql/src/include/utils/elog.h, fix two flaws in comments I just
  introduced, pointed out by Tom.

- In pgsql/src/pl/plpython/plpython.c, add missing header.

== Rejected Patches (for now) ==

No one was disappointed this week :-)

== Pending Patches ==

KaiGai Kohei sent in update patches for SE-PostgreSQL.

Simon Riggs sent in three revisions of a patch to reduce some DDL
locks from AccessExclusiveLock to ShareLock.

Simon Riggs sent in a revision of his patch to make subtransaction
commits work for hot standby.

Emmanuel Cecchet sent in five revisions of a patch which changes temp
table handling from keeping a boolean that tells whether the temp
table was accessed to a list of OIDs.

Andrew Dunstan sent in another revision of his parallel pg_restore

Simon Riggs sent in another revision of his "infrastructure changes
for recovery" patch.

Tom Lane sent in a patch to create and compare arrays of records, one
use of which will be for eliminating cycles in WITH RECURSIVE.

Muhammad Asif sent in a patch which adds plugins functionality to pgxs
on *n*x.

Ryan Bradetich sent in a proof-of-concept patch, then a WIP patch for
reducing the alignment requirements for heap tuples on 64-bit

Kris Jurka sent in some fixes for problems in psql's
describeOneTableDetails function.

Jim Cox sent in a patch to add a VERBOSE option to CLUSTER.

Robert Haas sent in a patch to make the UUID type accept non-standard
formats, per TODO item.

Magnus Hagander sent in another revision of his patch to change
parsing of pg_hba.conf options to name-value pairs.

Laslo Benedek sent in another revision of his patch to add --role to

Alvaro Herrera sent in two revisions of a patch to correct a
misbehavior with autovacuum and TOAST tables.

ITAGAKI Takahiro sent in another revision of his auto-explain patch.

ITAGAKI Takahiro sent in a patch to add a pg_stat_statements contrib

Robert Haas sent in a patch to add array_ndims.

Zdenek Kotala sent in a patch to extend pg_class info and create a
more flexible TOAST chunk size.

pgsql-announce by date

Next:From: Tomas DosoudilDate: 2008-10-19 17:17:15
Subject: pgdview 0.3 released
Previous:From: Heiko W. RuppDate: 2008-10-11 08:36:17
Subject: RHQ 1.1 available

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