Russell Haley wrote:
Hi,
So I'm using LMDB to create a simple 'database' system for lua that will allow me to directly serialize and store lua table data. So far I have used the wonderful lmdb wrapper lightningmdb and created a simple API to hide some of the mechanisms.
Honestly, your API is so well thought out, I'm doing a disservice by removing a lot of the powerful features. However, I press ahead and beg forgiveness. :)
I have two questions:
- There is a simplified vs cursor API. I am starting to suspect that
the simplified functions are just basic wrappers around the cursor API? I ask because if this is the case, I could just remove my support for the simplified API and only have to support one set of functions.
Yes, everything uses cursors internally.
- The key lookup is blazing fast (so awesome, this thing is going to
smoke!). I wanted to create a way of indexing the data elements within the database by allowing users to create lua functions that parse the lua table values. --a basic table that would be serialized into a lmdb database called t1 t1 = { 1={col_a="test",col_b="item1"}, 2={col_a="not-a-test",col_b="item2"}, 3={col_a="test",col_b="item3"} }
--The function that would be called per-row to create an index. local function(k,v)
return v.col_a, k
end
The idea would be to use the dupsort feature to create an 'index' database with data structured as:
not-a-test, 2 test, 1 test, 3
Sure, that's generally what dupsort is for.