Linux Today: Linux News On Internet Time.
Search Linux Today
Linux News Sections:  Developer -  High Performance -  Infrastructure -  IT Management -  Security -  Storage -
Linux Today Navigation
LT Home
Link to Us
Linux Jobs

More on LinuxToday

PostgreSQL Weekly News - March 26, 2003

Mar 28, 2003, 07:00 (0 Talkback[s])
(Other stories by Robert Treat)

[ Thanks to Robert Treat for this link. ]

== PostgreSQL Weekly News - Mar 26th 2003 ==

If you remember last week I mentioned that there were a lot of quality patches floating around, right? Well, this week we saw a good number of them committed for 7.4. They range from minor tweaks to major changes, with one feature in particular that hasn't been hyped up a lot, but should get a lot of people excited. What? You guys don't get excited about database hacking...?

Let's start with the TODO items shall we? Neil Conway knocked another item off the list with his change that adds start time to pg_stat_activity. We also saw the addition of ALTER SEQUENCE to modify the various sequence values. It should be noted that ALTER SEQUENCE is NOT transactional, behaving similarly to setval(), but it does match the proposed SQL200N spec and is similar to Oracle's implementation, though it adds an optional RESTART WIDTH ability. Thanks to Rod Taylor for his work on this. A third TODO item knocked off this week was "Change NUMERIC data type to use base 10,000 internally" thanks to Tom Lane. While making the change he was also able to improve some of the algorithms for higher functions which should lead to a speedup in the back end. For those testing 7.4devel, this change does require an initdb to work.

Let's divert for a moment from the new features to take note of some bug squashing this week. Neil Conway found a small memory leak in psql using valgrind, which he has patched. We also received a fix from Steven Singer for a memory error in contrib/dbmirror when running it with older (pre 7.3) versions. Peter Eisentraut modified the set up of privileges on the default schemas in initdb to use real GRANT commands to help arrive at a valid dumpable state. Bruce Momjian got in on the fun fixing an issue with sequence casting; and Tom Lane made a change to ignore SIGXFSZ so that ulimit violations would work like disk-full conditions. This change should help prevent back-end crashes in those cases, thanks to suggestions from Frederic Surleau on that. Tom also was responsible for two patches for Shraibman's out of free buffers bug. The two patches were needed to deal with the problem in the stable 7.3.x branch, and a more aggressive fix in 7.4devel branch. And finally, a tweak to selectivity and related routines was added to cope with domains, based on a report from Andreas Pflug.

Along with the bug squashing, we also saw a lot of code cleanup put in this week. Bruce removed a typecasting section that isn't needed anymore, and Neil cleaned up some of the regression code a little bit. Gregory Stark also submitted some fix-ups to a couple of the contrib directories, replacing things like CREATE OR REPLACE AGGREGATE with separate DROP and CREATE calls. He also added DROP for the CREATE OPERATOR calls and switched to the use of IMMUTABLE and STRICT instead of the old WITH (isStrict). Jeroen Vermeulen also made a whole slew of changes to the psql code. Some of the cleanup included removing code duplication and ifdeffing, fixing up breaks and unneeded continues. He also broke down several large functions into smaller functions; reducing required nesting levels and killing a few variables; and replacing some "else if" constructs with switches.

Stepping over to JDBC for a moment, Barry Lind and Dave Cramer were both busy this week helping folks out with bugs and patches. Shawn Green fixed a problem where information from previous updates was leaking into subsequent updates. A patch from Peter Royal added a DISTINCT to the query used to get cross references. This is required when two column in a table are both foreign keys to another table. There was also a bug fix for reading acls, making sure null acl meant that table owner has full privileges. And lets not forget the patch from Csaba Nagy put in to notify listeners on error. On the windows development front, a new "win" port was added to differentiate from "cygwin". The idea is that this now allows you to configure under native Windows (MinGW), though it doesn't fully work as of yet, but still progress is progress. Speaking of progress, Bruce Momjian, who is working on integrating Jan Wieck's native windows patch, added a PQfreemem() call for Win32.

All right, I know your all amazed at what's been mentioned so far, but don't stop reading yet because there's still a nice set of enhancements and features I need to cover, and you don't want to miss it. Lets start with the new "library pre-loading" feature added in by Joe Conway. The idea is to allow various libraries to be preloaded into child processes before they are actually needed. This helps in areas such as procedural languages which need to load external libraries. For example, Joe posted that this reduced the first call to a PL/R function from 2 seconds down to about 8ms. The functionality does have a few downsides (like extra memory used that may not be needed) so the whole thing will be controlled by a GUC variable. Joe also added in an enhancement for contrib/tablefunc. It implements a new hashed version of crosstab that fixes a major deficiency in real-world use of the original version. Speaking of enhancements, Greg Mullane's patch for pg_ctl was committed. It added some intellegence so that pg_ctl's internal psql -l call would try to determine the proper port to be connecting on. It looks first at the PGPORT variable, then inside the postgresql.conf, then at the compiled port until it finds a match. Pg_dump also saw an enhancement, this from Christopher Kings-Lynne. His changes allow pg_dump to capture some statistics information, to help keep this data after upgrade. Another change to pg_dump came from Oliver Elphick, fixing an issue with datestyles. In the past dates in a dump defaulted to what was specified by the default datestyle, however they wouldn't always be portable between installations. Instead datestyles are now dumped as ISO style, which is restorable into any other datestyle.

Some new functions added into the back end include pg_get_triggerdef (from Christoper K-L) and a hostmask() function from Greg Wickham. Alvo Herrera added support for ALTER TABLE CLUSTER ON, and was able to simplify the clusterdb script. Information Schema also got a boost from Rod Taylor, creating a domain view, a domain_constraints view, and adding domain check constraints to the check_constraints view. Kevin Brown also worked out allowing users to view their own pg_stat_activity while others users queries remain blank. And for those using the functionality of btree_gist, it now supports int2 thanks to Janko Richter. And last, but not least, in the new features department, a really positive sign that a much desired feature will soon be added; a pg_autovacuum directory was added into contrib. There is a TODO item with a few items on it, but the code available right now is a very promising start to something a lot of people have wished for.

Ok, just a few more notes and then I'll let you all go. Peter Eisentraut has been doing a lot of doc cleanup the last few weeks, and this week was no different. Most of his fixes have been toward making both content and presentation look more consistent, but this week he also committing in some major structural changes to the documentation. The basic idea was to merge the three books (users, developers, administrators guides) into one book; a complete "PostgreSQL Manual" if you will. It's available in CVS, if your interested in looking at it you can build a web version of it by using "make html". Oh, and one last note for those of you building from CVS that may not have heard, some enhancements to plpgsql have uncovered a bug in bison 1.75, so CVS compilers now need to use bison 1.875. Thats it for now; till next week remember, it's all relational.

== PostgreSQL Product News ==

phpPgAdmin 3.0.0-dev-2 released

Database Design Studio - Lite (DDS-Lite) 2.10.0

PostgreSQL Table Log 0.1.0

PostgreSQL Cocoa Framework 0.3d1

tcap initial release

== PostgreSQL In the News ==

PeerDirect Announces Retail Ramp-up Program

Windows and Open Source: Perfect Together?

== Upcoming Events ==

Novell BrainShare: Salt Lake City, Utah: April 13-18 A PostgreSQL session including install, configure, administration, and interfacing with PHP

Open Source Conference: Portland, Oregon: July 7-11 A PostgreSQL track will be available at this years conference.

== PostgreSQL Weekly News - March 26th 2003 ==

Don't forget to read Elein Mustain's Weekly Summary of the PostgreSQL General Mailing List

On the Web:

Related Stories: