3) Use 8.1 and strongly look at Bizgres. The data partitioning is critical.
I started looking closer at my options for partitioning (inheritance, union all), and at Bizgres today. Bizgres partitioning appears to be basically the same kind of inheritance partitioning one can do in mainline PostgreSQL. Am I correct in thinking that the main difference is that they've coded support for "enable_constraint_exclusion=true" so that the query planner can be more effective at taking advantage of the partitioning when you've specified CHECK constraints on the child tables? I may go for 8.1 instead in that case, as the main win I'm looking for is that with inheritance I'll be doing inserts into smaller tables instead of ones that grow to unmanageable sizes (and that I can drop old child tables instead of delete/vacuum).