> >> I think that to handle locations we could symlink catalogs - ln -s
> >> path_to_database_in_some_location .../base/DatabaseOid
>
> > But that's a kludge. We ought to discourage people from messing with the
> > storage internals.
>
> It's not a kluge, it's a perfectly fine implementation. The only kluge
> here is if people have to reach in and establish such symlinks by hand.
> We want to set up a user interface that hides the implementation.
Agreed. And I don't see problems with handling this at CREATE DATABASE
time. Create database dir in specified location, create symlink from
base dir and remember location name in pg_database.datpath.
Vadim