8.4 is out!
Posted by eulerto @ 2009-07-02 17:24:02
"The PostgreSQL Global Development Group has released version 8.4, continuing the rapid development of the world's most advanced open source database. This release contains an abundance of enhancements to make administering, querying, and programming of PostgreSQL databases easier than ever before. Our development team has spent 16 months adding over two hundred improvements to all aspects of database functionality, helping every PostgreSQL user in small or large ways."
Many of the changes in PostgreSQL 8.4 are new or improved. My favorites are:- parallel restore: allow pg_restore to use multiple concurrent connections to do the restore. I used this feature even before 8.4 has been released;
- version-aware psql: psql 8.4+ will be backward-compatible. This will allow me have only one psql to administrate all of the PostgreSQL servers;
- window functions: BI guys will love it!
- common table expressions and recursive queries:robustness and recursiveness;
- column-level permissions: it is one of the most requested features ever. The other DBMSs already have it but PostgreSQL don't;
- visibility map: track pages that don't require vacuuming;
- auto-sizing free space map: free space discovered by VACUUM is recorded in files instead of shared memory. This simplifies administration (two settings were removed);
- ef psql command: easily edit functions in psql. This is one of my favorite features in 8.4;
- per-database locale settings: LC_COLLATE and LC_CTYPE can be set per database;
- ssl certificates for user authentication: cert authentication method was add to authenticate a user;
- pg_terminate_backend(): function that safely terminate a backend (connection);
- ON TRUNCATE triggers: support statement levels triggers when we're truncating a table;
- sub-selects in LIMIT and OFFSET: SELECT * FROM foo LIMIT (SELECT a FROM bar where b = 1);
- prefix matching in full text searches: SELECT * FROM foo WHERE a @@ 'oliv:*';
- per-relation autovacuum parameters: this is a feature that I and Alvaro worked on and it removes a system table and add the capability to dump autovacuum parameters per relation;
- array_agg() and unnest(): row values <-> array;
- variadic functions: functions with variable number of arguments;
- default values for function arguments: another nice feature for pl languages;
- DETAIL, HINT, and SQLSTATE in RAISE: RAISE SQLSTATE '22012';
- new DTrace probes: in 8.3 we had 11 and now it is 54;
- auto_explain contrib module: automagically run EXPLAIN on queries exceeding a specified duration;
- citext contrib module: provide a case-sensitive data type;
- duration option for pgbench: allows specifying the duration of benchmark;
I will not cite all of the features (it is too much -- 293!); after all, that's why we have a release notes. ;)
Test it! Enjoy it!