== PostgreSQL Weekly News - January 07 2007 ==
The program committee for PGCon 2007 has been announced.
== PostgreSQL Product News ==
Security updates 8.2.1, 8.1.6, 8.0.10, 7.4.15 and 7.3.17 will be out
soon including packages for Red Hat, Fedora, Debian and Ubuntu. Get
ready to upgrade ASAP.
== PostgreSQL Local ==
Meredith Patterson Presents: Preventing SQL Injection with Libdejector
Tuesday, January 9, 2007, 7:30 PM in San Mateo, California. RSVP at URL below.
Please submit your PGCon 2007 proposals. PGCon is taking place in
Ottawa, Ontario, Canada. The deadline for submissions is January 19th.
There will be a PostgreSQL booth at FOSDEM on February 24 and 25 in
Brussels, Belgium. Many of the usual suspects from the EU PostgreSQL
communities will be there. Contact de(at)postgresql(dot)org to participate.
Pavel Stehule will be teaching a course on stored procedures in
PostgreSQL. This will be on January 11, 2007 in Prague, and conducted
The Italian PostgreSQL community will be holding a PostgreSQL day this
summer. Bookmark the link below to participate.
Gavin Sherry is running a PostgreSQL miniconf at Linux.Conf.Au in
Sydney on Tuesday the 16th of January 2007.
http://lca2007.linux.org.au/Miniconfs/PostgreSQL If you would like to
attending, email gavin AT alcove . com . au
== PostgreSQL in the News ==
Planet PostgreSQL: http://www.planetpostgresql.org/
General Bits, Archives and occasional new articles:
PostgreSQL Weekly News is brought to you this week by David Fetter
To get your submission into the upcoming issue, get it to
david(at)fetter(dot)org by Sunday at 3:00pm Pacific Time.
== Applied Patches ==
Peter Eisentraut committed:
- Indent comments in makefiles better so they don't appear in the
- Allow XML fragment to contain a XML declaration. For that, we need
a small hand-crafted parser for the XML declaration, because libxml
doesn't seem to allow this.
- Replace xmlroot with a properly functioning version that parses the
value, sets the items, and serializes the value back (rather than
adding an arbitrary number of XML preambles as before). The libxml
memory management via palloc had to be disabled because it crashes
when libxml tries to access memory that was helpfully freed earlier
by PostgreSQL. This needs further thought.
Andrew Dunstan committed:
- Call setrlimit if possible in pg_regress to allow core file
generation, and provide a switch for similar behaviour in pg_ctl.
Tom Lane committed:
- Fix oversight in handling of row-comparison index keys: if the row
comparison doesn't exactly match the index, we may have to change
our initial positioning strategy. For example, given an index on
(f1,f2,f3) and a WHERE condition "ROW(f1,f3) > ROW(2,3)", the code
extracted the initial-positioning condition "f1 > 2", which is wrong
... it has to be "f1 >= 2", else some rows matching the WHERE
condition may fail to be returned. Applying patch to 8.2 only ---
I'll fix it in HEAD later as part of the planned index improvements
(reverse-sort and NULLS FIRST/LAST work).
- Fix filtered_base_yylex() to save and restore base_yylval and
base_yylloc properly when doing a lookahead. The lack of this was
causing various interesting misbehaviors when one tries to use
"with" as a plain identifier.
- Links to GUC variables from HISTORY don't work in back branches...
- Put back ERANGE test in dpow(). There are platforms that need this,
like my HPPA ...
- Greg Sabino Mullane's patch to add missing reference to
- Magnus Hagander's patch which fixes AddDefine to handle quotes
- Tweak pg_dumpall to add GRANT CONNECT ON DATABASE ... TO PUBLIC when
dumping database privileges from a pre-8.2 server. This ensures
that the reloaded database will maintain the same behavior it had in
the previous installation, ie, everybody has connect privilege. Per
gripe from L Bayuk.
- Greg Stark's patch which fixes some small typos in comments.
- Fix erroneous implementation of -s in postmaster.c (the switch
doesn't take an optarg). Add some comments noting that code in
three different files has to be kept in sync. Fix erroneous
description of -S switch (it sets work_mem not silent_mode), and do
some light copy-editing elsewhere in postgres-ref.
- Fix regex_fixed_prefix() to cope reasonably well with regex patterns
of the form '^(foo)$'. Before, these could never be optimized into
indexscans. The recent changes to make psql and pg_dump generate
such patterns (for \d commands and -t and related switches,
respectively) therefore represented a big performance hit for people
with large pg_class catalogs, as seen in recent gripe from Erik
Jones. While at it, be more paranoid about case-sensitivity
checking in multibyte encodings, and fix some other corner cases in
which a regex might be interpreted too liberally.
- Fix erroneous error tests in pow/exp.
- Fix btree_gist for new larger money type.
- Clean up smgr.c/md.c APIs as per discussion a couple months ago.
Instead of having md.c return a success/failure boolean to smgr.c,
which was just going to elog anyway, let md.c issue the elog
messages itself. This allows better error reporting, particularly
in cases such as "short read" or "short write" which Peter was
complaining of. Also, remove the kluge of allowing mdread() to
return zeroes from a read-beyond-EOF: this is now an error condition
except when InRecovery or zero_damaged_pages = true. (Hash indexes
used to require that behavior, but no more.) Also, enforce that
mdwrite() is to be used for rewriting existing blocks while
mdextend() is to be used for extending the relation EOF. This
restriction lets us get rid of the old ad-hoc defense against
creating huge files by an accidental reference to a bogus block
number: we'll only create new segments in mdextend() not mdwrite()
or mdread(). (Again, when InRecovery we allow it anyway, since we
need to allow updates of blocks that were later truncated away.)
Also, clean up the original makeshift patch for bug #2737: move the
responsibility for padding relation segments to full length into
- Add a regression test for ALTER SET TABLESPACE; this is a whole
separate code path in tablecmds.c that wasn't exercised at all
Bruce Momjian committed:
- Remove from TODO: "Allow the identifier length to be increased via a
- TODO updates for MONEY data type.
- In TODO, mark as Done: "Allow user-defined types to accept 'typmod'
- Add to TODO: "Make consistent use of long/short command options ---
pg_ctl needs long ones, pg_config doesn't have short ones, postgres
doesn't have enough long ones, etc."
- Add to TODO: "Consider parsing the -c string into individual queries
so each is run in its own transaction" and "Consider disallowing
multiple queries in PQexec() as an additional barrier to SQL
- Apply fix so pow() and exp() ERANGE is used only if result is not 0.
- Move INDEX inheritance out into a separate section of the TODO list.
- Euler Taveira de Oliveira's patch which lets initdb specify the
pg_xlog directory. TODO marked done :)
- Document problems with release links in early branches.
- Check for ERANGE in exp() as well. Improve release docs for ecpg
- Improve dpow() check for ERANGE overflow for HPPA.
- Remove extra character added to top.
- Fix markup because lc_numeric didn't have an SGML tag in this
- Fix markup because older releases couldn't link to the reference
- Document that we need to update the ecpg regression files when we
update the library version number.
- Update ecpg regresison output for new library version number.
- Stefan Kaltenbrunner's patch to update float dpow() comment about
which platforms had issues with Nan.
- Fix tab to space mention in FAQ_DEV.
- Simplify assignment of Inf for pow Nan (don't worry about the sign).
- Update pow() tests to check for both errno==EDOM _and_ result==Nan,
and document why this happens. Remove exp() errno check because not
- Attempt to return proper overflow/underflow messages for platforms
that only return Nan and set errno for pow/exp overflow/underflow.
- For float4/8, remove errno checks for pow() and exp() because only
some platforms set errno, and we already have a check macro that
detects under/overflow, so there is no reason for platform-specific
- In pgsql/src/test/regress/expected/inet.out, update expected result
for new inet error message wording.
- Adjust network errmsg("result is out of range") message to be
consistent with other places.
- Some platforms set errno on pow(), exp() overflow, some do not, so
if isinf(), fall through to our own infinity checks.
- finite() no longer used; remove finite() platform-specific
- Glen Parker's patch which adds n_live_tuples and n_dead_tuples to
pg_stat_all_tables. The purpose is to allow autovacuum-esq
conditional vacuuming and clustering using SQL to discover the
required stats. No documentation updates required. Catalog version
- Add #include <float.h> for platforms that still need it.
- Fix float4/8 to handle Infinity and Nan consistently, e.g. Infinity
is a valid result from a computation if one of the input values was
infinity. The previous code assumed an operation that returned
infinity was an overflow. Handle underflow/overflow consistently,
and add checks for aggregate overflow. Consistently prevent Inf/Nan
from being cast to integer data types. Fix INT_MIN % -1 to prevent
overflow. Update regression results for new error text. Per report
from Roman Kononov.
== Rejected Patches (for now) ==
No one was disappointed this week :-)
== Pending Patches ==
Simon Riggs sent in one version, then a revised one, of a patch which
adds a GUC variable wall_checksum per the discussion below.
Bill Moran sent in two revisions of his patch to log usage of
Gurjeet Singh sent in another revision of his "Index Advisor" patch,
this time with a few bug fixes and an improvement to the size
estimation function. It also includes a work-around to circumvent an
earlier problem in xact.c; it now fakes itself to be a PL/xxx module
by surrounding the BIST()/RARCST() calls inside an
Heikki Linnakangas sent in a patch that renames the t_natts field to
t_infomask2, with 11 bits reserved for the number of attributes and
the other 5 bits available for future use. This is intended to
address the fact that the tuple header is getting full, which in turn
didn't allow the phantom command ids patch and the HOT patch to
pgsql-announce by date
|Next:||From: Josh Berkus||Date: 2007-01-08 17:46:28|
|Subject: New update released for all PostgreSQL versions|
|Previous:||From: Dan Langille||Date: 2007-01-06 13:34:28|
|Subject: PGCon 2007 Program Committee|