The idea for this book is in fact rather good: A quick reminder of features that set PostgreSQL apart and how one can start using them quickly. This is also achieved to a decent extent. PostgreSQL is an extremely versatile and complete database, with lots of features the average programmer does not know about. This causes many developers to resort to hacky alternative methods (such as writing slow code to achieve what PostgreSQL does natively and faster), or to other persistent stores that tout their horn louder (*cough*, nosql,*cough*). A quick skim of this book would help them achieve the same functionality without committing to maintenance work or less feature-rich platforms.
In the first few chapters of the book, the authors explain the base cases and useful deviations of simple functionality such as getting PostgreSQL to run with different settings, making backups and restoring from them, monitoring and terminating database activity,etc. An important feature of the book is that the authors, due to their experiences with managing bigger clusters, always mention options and alternatives that might be useful when one is working with a large database that is live. The feature-rich commandline client psql, a major feature of PostgreSQL, and its visual companion pgAdmin, both of these get their own chapters with decent treatments.
The rest of the book deals with useful extensions of PostgreSQL to the SQL standard, such as different kinds of indices, constraints, views,window functions, and common table expressions. It is really astonishing how many powerful features are packed into PostgreSQL,such as functional indices, which allow the user to define an index on a function of a column, or recursive CTEs through which the user can traverse trees through simple relations. Recursive CTEs are not available in any other DBMSs, by the way. The authors do a good job of giving a foretaste of what these features can accomplish, and how they set PostgreSQL apart from other DBMSs, including proprietary ones. The last two chapters deal with topics very important for people who want to use PostgreSQL in challenging live setups: Optimization and replication. Instead of detailed guidelines, the reader is presented with initial solutions and ways to gather more information on which directions can be taken.
Despite doing a good job of whetting apetite for PostgreSQL, and giving important pointers, the book has serious flaws, and leaves a lot to be desired. First of all, there are big gaps of information in the text on certain definitely interesting topics, and the reader is simply pointed to either PostgreSQL documentation, or a blog post written by the authors somewhere else. An example is the treatment of custom types, where the creation of operators on these types is simply omitted, although it would be just another page or so (p.72). Providing at least the gist of the referred posts and documentation pages would have been rather beneficial. The authors sometimes use incredibly weird and maybe even nonexistent words. Effectuate, turducken? Why do I have to look up a word that essentially means the same thing with a widely known word with just four extra letters? In one instance, the authors refer to someone as a "data entry dude", which might be OK in a blog, but not in an O'Reilly book. The most annoying shortcoming for me though was the fact that half of the book used the US census data in database form for sample queries, but this database is not provided by the authors for trying things out. If you Google for it, there are some howtos on how to dump the census data into a database, but none of these are as simple as restoring a dump or running a sql file. I expect from the authors of a technical book to provide the sample data they use so that the users can do some experimentation and try other things than what the authors have written.