The above answer is wrong. The Classic server is a "classic" unix server, ie. for each connection it forks a backend to handle the request. This is similar to what postgres does. The Superserver is a threaded server, ie. only one process handling all requests. The threaded model is generally thought to be better (for example AOLserver uses it, compared to apache 1.x, a pre-forking server). I don't know if the postgres project plans to make postgres a threaded server. Anyway postgres uses shared memory and other stuff to make up for some of the problems forking servers. And with persistent database connections, the time to fork the backend doesn't matter so much anyway. The thing I want most of all in postgres is outer joins (I really hate to do those clunky unions and subselects...). Luckily they are supposed to be included in 7.1, scheduled for release in late October ackording to a message some days ago in pgsql-general.