Over the past month or so, I have been informally polling those of our customers I've been meeting with about which features in the upcoming 8.4 version of PostgreSQL they are most excited about, and most likely to have use for in the short-to-medium term. Part of the results were exactly what I expected, other parts were a bit more surprising.
First of all, the one feature that every single one said they were very much looking forward to is the updated Free Space Map implementation, which will remove two very annoying and difficult-to-get-right configuration parameters (max_fsm_pages and max_fsm_relations). So kudos to Heikki for that. Closely related to this feature is the Visibility Map, and it's reduction of VACUUM requirements. This is, however, not something a lot of our customers will have a direct use for - other than one or two, they don't actually have any issues with VACUUM (once they learned to remove VACUUM FULL from the nightly cronjobs).
When looking closer at the SQL level functionality that people have been excited above, I expected to see Common Table Expressions (CTEs), AKA Recursive Queries at the top of the list, based on requests on our lists in the future. However, it seems that at least to our customers, Window Aggregates are a lot more interesting than CTEs. I'm sure there are a lot of use-cases for recursive queries - there just seem to be even more of them for window aggregates.
Parallel restoring of dumps is also fairly high on peoples list, though most of the people that can really use it are deploying different ways to deal with it already. But they will definitely be using it once it's there. As well as the speedups of the PITR recovery and warm standby.
There are a lot of other features in the upcoming version as well. Some are small, some are large. There are still some smaller features (for example \ef in psql) that I keep missing a lot every time I end up working on an earlier version. They're all (well, most of them) great, but maybe not so obvious at first.
What's your favorite 8.4 feature?
CTE, by a wide margin. The reason: it permits PG to deal with the hierarchical data structures which OO programmers can't get enough of. Not to mention, DB2, Oracle, and SQLServer have supported hierarchy for some time.
The OLAP stuff, not so much.
mine's favorite is CTE and window functions. But I gotta say, improvements to planner, vacuum ! (oh yeah baby), parallel restore, and many others just make me want to upgrade all production servers as soon as 8.4.0 is out :) (I will be successfully stopped tho by people at work, sadly - bastards ... ).
I'm gonna throw a spanner in the works and say what i'm most looking forward to is the changes in TOAST tables in regards to compression etc as well as the planner improvements, in my case I just started to run out of memory on some production servers and these are likely to compensate for it for the most part, should be fun to see the results of!
Reporting all errors when parsing of pg_hba.conf fails! Oh, wait... Visibility Map is really cool. :)
Window functions... btw, does anyone know if there is a web page somewhere with all the new features explaind?
Isn't built in simple replication still on the list? That one definitely gets my vote.
Built-in replication didn't make it in.
I'd like to chime in about CTEs. This is a fundamental change in what RDBMSs can do, so it opens new markets and other areas of endeavor to PostgreSQL.
Seems like my #1 vote didn't make it either. On Disk Bitmap Indexes
8.4 introduce some nice features, but I'm so disapointed about the Table Partitioning missing (in a easy way compared with today, I mean) . I think that is a essential feature that are present in all PostgreSQL competitors... :/