== PostgreSQL Weekly News - June 26th 2003 ==
Well, we are in our final week before feature freeze for the 7.4 release. There certainly has been a lot of activity lately, and I suspect that will continue right up until the deadline.
We might as well dive into the list of miscellaneous updates, as things are coming from far and wide. Thread checking code was moved farther down in the configure process, we now set conn->raddr.salen, fixing problems in CANCEL (and probably other stuff), remove crypt.h from fe-connect.c (which was not needed and caused problems on Solaris with Open SSL version 0.9.7b), no longer include pwd.h and netdb.h in MS CC/Borland builds, pqInternalNotice was changed to accept a format string and args instead of just a preformatted message, add mention that the grep's have to be adjusted in pgtest, remove references to sa_family_t, except when SOCKADDR_STORAGE requires it, and handle __ss_family as a synonym for ss_family. Two fixes for cygwin included setting typedef sa_family_t and adding -L../ecpglib -lecpg for compile. Alvo Herrea also supplied a patch to restructure the deferred trigger queue, putting all static variables holding the deferred triggers into a single structure. One other mention, we now have x86_64 support for spinlocks, thanks to Jeffrey W. Baker for that one.
Enhancements revolving around the protocol revision and libpq changes continue to be seen. One such item was a fix for the extended-query protocol that, in the event of error, the backend used to issue a ReadyForQuery (Z message) immediately and then another one after the sync message arrived. We now suppress the first one to make it work per spec. Further updates have been done to make new features of the FE/BE protocol available to client applications and the libpq example programs where all updated.
The hash join and hash aggregation code was revised to use the same datatype-specific hash functions used by hash indexes, rather than the old not-datatype-aware ComputeHashFunc routine. This makes it safe to do hash joining on several datatypes that previously couldn't use hashing. The sets of datatypes that are hash indexable and hash joinable are now exactly the same, whereas before each had some that weren't in the other.
Another long desired, if not major, change was to disallow the dollar sign ($) in operator names and instead allow it as a non-first character in identifiers. The first change eliminates the current need to put spaces around parameter references (as in "x<=$2"). The second change improves compatibility with Oracle and some other RDBMS's. This was discussed and agreed to back in January, but had not actually been implemented until now.
Michael Graff gets special kudos this week for his patch that adds INET/CIDR capabilities to IPv6 support, which was an official TODO item. His patch included specific regression tests and new documentation. Some of the work involved changing IPv4 from being treated as an "unsigned int" to an array of characters, the way IPv6 is handled. This allows for many of the functions such as bitncmp() and adressOK() to "just work" on both address families. He also add a family() function which will return a 4 or 6 for IPv4 and IPv6 respectively, and has taken care to allow machines without IPv6 support to still be able to parse IPv6 data.
Rod Taylor also gets a nod for his recent change that allows "UPDATE ... SET <col> = DEFAULT", another TODO item. This was just one of several things Rod has recently submitted; other items include fixing "JOIN .. USING" with domains, adding LIKE <subtable> [ INCLUDING DEFAULTS | EXCLUDING DEFAULTS ], some cleanup of analyze.c function prototypes, new non-reserved keywords (INCLUDING, EXCLUDING, DEFAULTS) for SQL 200X, and updating the synopsis areas for DROP commands touse "name" as the identifier in conversion_name and index_name, updating pg_get_constraintdef() to use conbin, and updating pg_dump to use pg_get_constraintdef() for >= 70400 among other changes.
Ecpg continues to move ahead at a good clip. This weeks updates include a fix for fetching into char *, add missing terminating '\0' char for data put into char *, allow constants in using clauses, and removal of postgres_fe.h includes where they were not needed. There were also a couple of Informix compatibility changes; implementing Informix's special way to treat NULLs, handling the use of "free" for cursors after closing them, and adding a missing prototype for an Informix function.
Several of the contrib modules have been updated. A bug in the metaphone algorithm was fixed, along with the removal of an unneeded palloc. References of 'third' were changed to 'fourth' where needed in the tablefunc module. We also saw the addition of named persistent connections to dblink thanks to Shridhar Daithanka.
The call for help for folks using python seems to have given fruit. Chih-Hao Huang fixed a bug in the python interface module; the _quote() function used to fail due to integer overflow if input d was larger than max integer (which was likely in BIGINT columns). Kevin Jacobs updated plpython to remove the RExec code, which should make it compatible with future versions of python. Expect plpython to treated as an untrusted language in the future.
The docs continue to see solid contributions. Changes that went in this week include a re-ordering of the run time information, updates to information dependent on the run time information, and resolving some incompatibilities between the run time and performance information. A link entry to the foreign key information in the system catalog chapter was created and some chapter reordering for the Internals part was done. We also now have some documentation about using CIDR address in pg_hba.conf and an example of CIDR address use in pg_hba.conf.sample. I also should mention that there has been some pruning going on of obsolete material that really no longer applies. If you would like a sneak peek you can always find a link to the cvs docs from the developers website (http://developer.postgresql.org/), just remember that those docs aren't official!
While I am really excited about the upcoming release, it's important to let folks know that PostgreSQL will not be resting on it's laurels. Just this week over a dozen new items were added to the TODO list; if you have been looking for a project to hack on this may well be a good opportunity. Some of the new additions include:
* Have initdb set DateStyle based on locale
* Allow the identifier length to be increased via a configure option
* Create improved PostgreSQL introductory documentation for the PHP manuals (Rory)
* Change CVS $Id$ to $PostgreSQL$
* Allow SSL-enabled clients to turn off SSL transfers
* Exit postmaster if postgresql.conf can not be opened
* Allow columns to be reordered via ALTER command; have SELECT/INSERT honor such ordering
* Allow UPDATE, DELETE to handle table aliases for self-joins [delete]
* Allow ALTER TABLE to modify column lengths and change to binary compatible types
* Allow creation of a libpq-only tarball
Thats it for this week, next week we should be in feature freeze and I will hopefully have some information on how you can get involved in beta testing.
== PostgreSQL Product News ==
EMS PostgreSQL Manager 1.7 released
PeerDirect brings distributed database support to Linux world
IONIC Releases RedSpiderWeb 3.0
== PostgreSQL In the News ==
SQL and ODBC, German OS 5 and more
== Upcoming Events ==
Open Source Conference: Portland, Oregon: July 7-11
A PostgreSQL track is available this year
LinuxTag: Karlsruhe Convention Center, Germany: July 10-12
A PostgreSQL Talk will be given on July 12th
== PostgreSQL Weekly News - June 26th 2003 ==
Don't forget to read Elein Mustain's Weekly Summary of the PostgreSQL General Mailing List