If this is posted by the author looking for feedback:
1) WebDAV is a much better choice than FUSE. FUSE is a good concept, but buggy and poorly-implemented. Things like sshfs can break in very bad ways if e.g. there is a network connectivity issue. Not a hack.
2) Writes seem like a very bad idea. Keep those out unless you come up with a clean way to handle them (which seems difficult if not impossible given the differences in FS versus relational abstractions, especially with regards to data validation). Not a limitation.
In other words, the "hacks" seem like design choices a good architect would likely have made. Continuing:
3) The major use-case I have is if I have a small (<1MB) database, and don't know the structure. Lots of tools use small sqlite databases. There is no way to query all tables for something, whereas tools like `find` and `grep` can look through all files. I was recently trying to recover some lost data, and it was a pain to find it.
4) I think a major theoretical question is how to fuse the two models. I would like to be able to do 'generic' things like the above on databases, while still being able to be relational.
5) I don't have an answer to the above, but perhaps natural first step might be to allow something like queries or virtual tables to sit on the file system:
wddbfs --anonymous --db-path=/path/to/an/example/database/like/Chinook_Sqlite.sqlite
wddbfs_query myjoin "SELECT * FROM table_1, table_2 WHERE table_1.id=table_2.id"
And voila! A /virtual/myjoin.csv file pops up.
(Even more) half-baked thoughts:
There might be more clever ways to do it too. I'm thinking through half-baked thoughts on how to make files and tab completion work. My half-baked thoughts are moving towards something like:
wddbfs_SELECT * from Customer.tsv\, Employee.tsv WHERE
But I don't like all the potential bugs with escaping. I'm also thinking about when output wants to go to the console versus into a virtual table.