The latter is relatively trivial as long as you interpret it as just changing the default TS for tables created later in that schema. (On the other hand, you can fake that with a simple UPDATE to pg_namespace, so I'm not sure it qualifies as a "must have".)
The former is a real mess since it would require moving some of the system catalogs. (At least the nailed-in-cache ones, but I'm not sure we've yet determined which ones *have* to be in the database's default tablespace.) It'll be fairly entertaining to move pg_class in particular, but I doubt you can build such a thing out of the available spare parts at all.
My vote would be to postpone any such patch to 7.6 (or 8.1 as the case may be), because it's a nontrivial addition of functionality and we had no prototype as of July 1.
It seems to me that we have mixed up two concepts: the tablespaces that a database is IN and the default tablespaces for any schemas created in that tablespace. This will probably cause trouble further down the track :(
Chris
---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend