I’m sure you’re all aware that PostgreSQL 8.0 was release a couple days ago and a notable (and long awaited feature) was native support for windows.

I’ve yet to really put it through its paces on Windows, but I was impressed with the ease of install. Nothing out of the ordinary, just straight forward,
(almost) no questions asked installation.


Whats New:

Savepoints

Savepoints allow specific parts of a transaction to be aborted without affecting the remainder of the transaction. Prior releases had no such capabilit
y; there was no way to recover from a statement failure within a transaction except by aborting the whole transaction. This feature is valuable for applica
tion writers who require error recovery within a complex transaction.

Important for SQL conformance. I don’t really write the kind of applications that require DB-level save points. I’m usually abstracted by CMP in JBoss an
d Hibernate for offline processes.

Point-In-Time Recovery

Though PostgreSQL is very reliable, in previous releases there was no way to recover from disk drive failure except to restore from a previous backup or us
e a standby replication server. Point-in-time recovery allows continuous backup of the server. You can recover either to the point of failure or to some tr
ansaction in the past.

I’ve been happy with PostgreSQL’s reliability since we started using it as one of our supported JDBC data sources.
The lack of point in time recovery capabilities was not a significant drawback but improved restoration is welcome.

Tablespaces

Tablespaces allow administrators to select the file systems used for storage of tables, indexes, and entire databases. This improves performance and co
ntrol over disk space usage. Prior releases used initlocation and manual symlink management for such tasks.

Important for deployment into enterprise environments.

Improved Buffer Management, CHECKPOINT, VACUUM

This release has a more intelligent buffer replacement strategy, which will make better use of available shared buffers and improve performance. The pe
rformance impact of vacuum and checkpoints is also lessened.

Performance improvements are always welcome.

Change Column Types

A column’s data type can now be changed with ALTER TABLE.

Sure, I guess its important but not the kind of thing I routinely do.

New Perl Server-Side Language

A new version of the plperl server-side language now supports a persistent shared storage area, triggers, returning records and arrays of records, and
SPI calls to access the database.

This is an interesting improvement. To date we’ve really stayed away from using DB-specific stored procedures and whatnot. I don’t think that the plperl
additions are going to do anything to change this, but they’re something I might play around with in whatever spare time I can find.

Comma-separated-value (CSV) support in COPY

COPY can now read and write comma-separated-value files. It has the flexibility to interpret non-standard quoting and separation characters too.

Meh, not overly important to me.

All in all, I’m primarily concerned with performance. I realize its not Oracle and nor do I expect it to be. PostgreSQL is an entry-level database but w
e have had good success with it to date. It does have a fairly decent feature set and sql compatibility compared with its direct competitors. First and f
oremost, I welcome any and all performance improvements. The support for the windows platform should expose a few more people to the database who previous
ly avoided it (because of the extra steps involved in setup, cygwin…etc) and went with MySQL.


  • Pet Peeve: Don’t email my password to me in plain text You know the drill. Signup for some random service on the internet Receive a confirmation email with your account information or Forget a password for some random service ...

  • Eclipise Memory Analyzer (MAT) I must say the Eclipse Memory Analyzer looks pretty slick. There is some pretty good material over on the developers blog. Lastly, there was a talk on it ...

  • Open-source Web-based Code Review Tool: Rietveld Guido van Rossum, of Python fame, has recently released a Django-based application that enables web-based code reviews... Rietveld. It supports any language and currently can hook into Subversion repositories. You ...

  • An implementation of the JVM in Javascript? Caught this over on JavaPosse Google Groups. Essentially, some bright fellows over in Japan have developed a bytecode->javascript compiler. There's a demo floating around that took a Tetris ...

  • Facebook Chat? So it looks like the Facebook Chat service has finally started rolling out to my network (Facebook Chat has been mentioned previously). Not quite sure how ...