---

PostgreSQL Weekly News – October 8, 2003

[ Thanks to Robert Treat for this
link. ]

== PostgreSQL Weekly News – October 8th 2003 ==

After a brief hiatus last week, we are back with all the news
thats fit to print regarding PostgreSQL. We start with news on the
beta process; PostgreSQL 7.4 Beta 4 was packaged last Thursday
night, and by now should have hit your local mirror. Depending on
the level of bug reports, we may see a beta5 or possibly an RC1 by
this weekend. Working toward that goal, a string freeze has gone
into effect to allow translators to get caught up with thier
translations. If you have not downloaded one of the beta candidates
yet, this week is really the week to get moving on it.

There have been a number of fixes the last two weeks, we start
with a look at some of the more internal stuff. The RI triggers
were much improved for handling of ON DELETE/UPDATE SET DEFAULT. A
mechanism was added to let dynamically loaded modules register
post-commit/post-abort cleanup hooks. TupleDescGetAttInMetadata and
BuildTupleFromCStrings now handle tuples with dropped columns
correctly. The regular expression definition of :print: character
class was fixed based on some input from Bruno Wolff. The :alnum:
charecter class was also modified, making it directly dependent on
isalnum() rather than guessing. tlist_matches_tupdesc() now defends
itself against dropped columns. The Executor API was extended to
work around a problem with triggers fired from RI cascading
updates, reported by Wade Klaver.

The Darwin build was adjusted to use the default “twp level
namespace” linking method. Along with this a number of places where
shared libraries were linked without mentioning all the libraries
they depend on were fixed, something needed for both Darwin and
AIX. An issue with configure on linux handling of -D_GNU_SOURCE was
fixed. We no longer evaluate non-constant TID values during
ExecInitTidScan. The btree index build procedure was adjusted so
that the btree metapage looks invalid until the build is entirely
complete, which should add some protection for rebuilding shared
system indexes. We no longer return from PQrequestCancel until
postmaster has finished processing the request, ensuring that the
request won’t be taken to cancel a subsequently issued query. A bit
more locking was added to vac_update_relstats and
vac_update_dbstats to make them comparable to what UpdateStats does
in the same situation. PQescapeString in libpq was changed to stop
processing at a null character, rather than generating an invalid
output string. A GUC parameter, check_function_bodies, was added to
control whether validation of function bodies is done at CREATE
FUNCTION time. This is normally true, but there are some instances,
one such in pg_dump, where setting this false is needed. A change
was made so that when revoking privileges from the owner we don’t
revoke the grant options, which would recursivly revoke everything
from everyone.

The internal estimate_hash_bucketsize() function was given a bit
more smarts; it will now assume that tables with no statistics but
with unique indexes are well-distributed. The COPY FROM command was
modified to match the null-value string against the column value
before it is de-backslashed, not after, allowing the N null string
to be reliably distinguished from a N data value. The ALTER TABLE
ADD FORIEGN KEY command was modified to check the existing rows
using a single left join instead of firing the check trigger for
each individual row.

The dbmirror module was updated to fix a bug that prevented
mirroring of data on tables with dropped columns. dbf2pg saw
another improvement this week, making it safe for non-ASCII
character sets. Work on the thread compatibility testing program
was completed, including enhancing the tests it runs, finalizing
its configuration, and its related documentation. Some code was
added to plpgsql to check that IF/WHILE/EXIT test expressions are
boolean, and to try to coerce the values to boolean if not There
was also some improved support for handling dropped columns in
plpgsql rowtypes and plpgsql’s caching of ‘simple’ expression
evaluation trees was restructure to be less dangerous and
potentially faster in scenarios where a plpgsql function executes
more than one expression. Type lookups in spi_prepare for pltcl
code was fixed for possible qualified type name specification.

There were a handful of changes again for ecpg. The build
process was modified to hide Informix datatypes, since they are not
seen by our build process anymore. A segfault problem in parsing
precision arguments was fixed. There was a fix in day of week
processing.

Problems with constant listing in execute using clause were
fixed. Precision handling in Informix compat functions was fixed,
and error handling in Informix compat str to date conversion was
fixed. Finally, a floating point exception in long->numeric
conversion was fixed.

As is common, the helper programs for PostgreSQL continued to
see work to get them finalized for 7.4. In psql some documentation
for pset footer was added to ?, the transaction status indicator
was changed from %T to %x, timing will now show three digits, and
the order of operations in SendQuery() where modified so that time
spent in data transfer during COPY would be included in timing
output. The pg_dump program also received a few tweaks; you can now
use -t in pg_dump to dump a sequence and the handling of brackets
for check constraints was improved in pg_dump to ensure that they
match all other constraints and that the output can be copy/pasted
as straight SQL. Also, based on some recent discussions on the
-hackers list, pg_dump’s logic was changed for handling CAST’s.
Dumps involving CREATE INDEX will now show opclass name if the
opclass isn’t in the schema search path. Dump files created by
initdb now have consistent EOL termination in order to pass COPY’s
EOL tests. The locale display of initdb was reformatted to display
better with locale names longer than eight characters. Last, a bug
seen on XP in pg_restore tar log output where Special flag was not
being initialized was fixed.

Concluding things this week were (hopeful) finalization of the
back end strings and several documentation updates. A “tuning”
section was added to the install instructions. The Japanese FAQ was
updated. A note was added to the view documentation clarifying the
handling of functions in view definitions. There was a small SGML
clean up in the installation sections. The docs for CREATE VIEW
were updated to better explain handling permissions on functions. A
section was added to the windows installation instructions for
handling 8-bit characters in psql and a warning was added to psql
to notify users of improper 8-bit support. Documentation was also
added for the always true but previously undocumented fact that
PQfnumber() will downcase the supplied field name unless it is
double-quoted,which is somewhat different than what one would first
expect.

Special mention goes out for the recent release of PgAdmin 3
Version 1.0. PgAdmin is a cross-platform PostgreSQL GUI
administration tool, designed to support all aspects of PostgreSQL
7.3 and 7.4, with more than 20 languages supported. For more
details or downloads, check out the PgAdmin homepage (http://www.pgadmin.org/pgadmin3/index.php).
In other news, phpPgAdmin, a web based PostgreSQL administration
tool, released version 3.1, adding a pop-up sql editor, enhanced
reporting and data dumps, and enhanced PostgreSQL 7.4 support. For
more information, check out the phpPgAdmin homepage (http://phppgadmin.sourceforge.net/).
Both of these projects are open source and the members of both
projects are also very involved in the PostgreSQL core system as
well.

Another special mention this week, this one quite overdue, for a
new website dedicated to French speaking PostgreSQL users. The
website (http://pgsql-fr.tuxfamily.org/)
also has an accompanying mailing list available, pgsql-fr-generale
( at ) postgresql ( dot ) org ( dot ) Merci to our French speaking
advocates for thier work in setting this up.

Finally I want to give a heads up to folks that we may have some
downtime this weekend as our hosting provider needs to do some
infrastructure changes which will result in a change in ip
addresses. We hope to minimize the downtime through some prudent
DNS management, but if you run into problems that will most likely
be the cause. The downtime is tentatively scheduled for 4pm GMT,
we’ll try to post more info when it becomes available.

== PostgreSQL Product News ==

PostgreSQL Cocoa Framework 0.6d1
http://www.macupdate.com/info.php/id/11233

OpenLink Software releases updated suite of Data Access
Drivers
http://www.itweb.co.za/sections/software/2003/0310030834.asp

Gedafe 1.2.0 Released
http://www.ee.ethz.ch/~slist/gedafe/msg00198.html

PhpPgAdmin 3.1 Released
http://sourceforge.net/forum/forum.php?forum_id=314194

PgAdmin III Released
http://www.postgresql.org/news/154.html

== PostgreSQL In the News ==

“Mastering” Postmaster – Connecting Java Apps on Mandrake
(blog)

http://myossstuff.blogspot.com/2003_10_01_myossstuff_archive.html#postmaster

== Upcoming Events ==

PHP-Con West: Santa Clara, California: October 21-24 Josh Berkus
& Erez Ascher, and Steve Lane are giving two presentations on
PHP + PostgreSQL
http://www.php-con.com/2003/west/

LinuxWorld Conference & Expo 2003: Frankfurt, Germany:
October 27-29 PostgreSQL will have a booth at the LinuxWorld
Conference
http://www.linuxworldexpo.de/

International PHP Conference: Frankfurt, Germany: November 2-5
Bruce Momjian will be presenting several PostgreSQL talks at this
year’s International PHP Conference.
http://www.phpconference.de/2003/

== PostgreSQL Weekly News – October 8th 2003 ==

Don’t forget to read Elein Mustain’s Weekly Summary of the
PostgreSQL General Mailing List
http://www.varlena.com/GeneralBits/

On the Web:
http://www.postgresql.org
http://advocacy.postgresql.org

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends, & analysis