Hallvard Breien Furuseth wrote:
On 29/06/15 23:05, hyc@symas.com wrote:
Seriously, why aren't we just saying "don't do this" and moving on?
OK, then document it. Maybe keeping it simple, call mixing mainDB data and named DBs a user error and warn this can break the DB.
We have already documented this. "Database names are kept as keys in the unnamed database." It should be obvious that if you muck with the record of an existing key, things will change, therefore you should not muck with those keys.
There are lots of stupid things you can do with software. It's a waste of time and energy to prevent them all.
We totally disagree, starting with what is stupid. But we knew that. That's I asked which parts of "mdb/bundle" to push and which you rejected, we must have misunderstood each other. I thought I was just ITSing this commit properly before pushing.
I just don't see this happening in practice. Most applications will never use subDBs. It's not like some random person is going to come along and open an arbitrary LMDB file created by some other application and start mucking with it, without knowing the meaning of what's inside. Embedded database libraries are used in specific contexts by their enclosing application. They don't just get random ops thrown at them from 3rd party code. The designer of the enclosing app will design a schema/whatever set of tables to use and that scheme will be fixed for the life of the application.