Robert Haas <robertmhaas@gmail.com> writes:
> ... Perhaps tablespace.c shouldn't assume
> anything about the underlying filesystem representation and that
> knowledge should be moved somewhere under src/backend/storage, but I
> don't see how it makes sense for the smgr layer to include assumptions
> about what filesystem abstraction md.c happens to implement.
Well, the other approach we could take is to move the tablespace.c
filesystem-whacking code into md.c, expose it via a new smgr API, and
have commands/tablespace.c call that. I wouldn't have a layering
problem with a design like that, and as you say it's probably cleaner
than what's there. But having something in smgr calling something in
/commands is Just Wrong.
regards, tom lane