Copyright | (c) 2021 Francisco Vallarino |
---|---|
License | BSD-3-Clause (see the LICENSE file) |
Maintainer | fjvallarino@gmail.com |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
High level API to create, update, delete and query an MDBX database.
Synopsis
- getItem :: (MonadIO m, MonadFail m, MdbxItem k, MdbxItem v) => MdbxEnv -> MdbxDbi -> k -> m (Maybe v)
- getItems :: (MonadIO m, MonadFail m, MdbxItem k, MdbxItem v) => MdbxEnv -> MdbxDbi -> [k] -> m [v]
- getRange :: (MonadIO m, MonadFail m, MdbxItem k, MdbxItem v) => MdbxEnv -> MdbxDbi -> k -> k -> m [v]
- getRangePairs :: (MonadIO m, MonadFail m, MdbxItem k, MdbxItem v) => MdbxEnv -> MdbxDbi -> k -> k -> m [(k, v)]
- getBounds :: (MonadIO m, MonadFail m, MdbxItem k, MdbxItem v) => MdbxEnv -> MdbxDbi -> k -> k -> m (Maybe ((k, v), (k, v)))
- putItem :: (MonadIO m, MonadFail m, MdbxItem k, MdbxItem v) => MdbxEnv -> MdbxDbi -> k -> v -> m ()
- putItems :: (MonadIO m, MonadFail m, MdbxItem k, MdbxItem v) => MdbxEnv -> MdbxDbi -> [(k, v)] -> m ()
- delItem :: (MonadIO m, MonadFail m, MdbxItem k) => MdbxEnv -> MdbxDbi -> k -> m ()
- delItems :: (MonadIO m, MonadFail m, MdbxItem k) => MdbxEnv -> MdbxDbi -> [k] -> m ()
- delRange :: (MonadIO m, MonadFail m, MdbxItem k) => MdbxEnv -> MdbxDbi -> k -> k -> m ()
Get
:: (MonadIO m, MonadFail m, MdbxItem k, MdbxItem v) | |
=> MdbxEnv | The environment. |
-> MdbxDbi | The database. |
-> k | The key to lookup. |
-> m (Maybe v) | The matching value, if any. |
Returns the value associated with the given key, if any.
:: (MonadIO m, MonadFail m, MdbxItem k, MdbxItem v) | |
=> MdbxEnv | The environment. |
-> MdbxDbi | The database. |
-> [k] | The keys to lookup. |
-> m [v] | The matching values. Length may not match that of keys. |
Returns the values associated to a list of keys. Returned length may not match that of provided keys in case some of them are not found.
:: (MonadIO m, MonadFail m, MdbxItem k, MdbxItem v) | |
=> MdbxEnv | The environment. |
-> MdbxDbi | The database. |
-> k | The start of the range (inclusive). |
-> k | The end of the range (inclusive). |
-> m [v] | The matching values. |
Returns the list of values whose keys lie between the provided range.
:: (MonadIO m, MonadFail m, MdbxItem k, MdbxItem v) | |
=> MdbxEnv | The environment. |
-> MdbxDbi | The database. |
-> k | The start of the range (inclusive). |
-> k | The end of the range (inclusive). |
-> m [(k, v)] | The matching pairs. |
Returns the list of key/value pairs whose keys lie between the provided range.
:: (MonadIO m, MonadFail m, MdbxItem k, MdbxItem v) | |
=> MdbxEnv | The environment. |
-> MdbxDbi | The database. |
-> k | The start of the range (inclusive). |
-> k | The end of the range (inclusive). |
-> m (Maybe ((k, v), (k, v))) | The bounding pairs, if any. |
Returns the minimum and maximum keys, and their respective values, between the provided key range.
Both start and end keys are inclusive, thus the same key/value pairs will be returned if they exist. Otherwise, the next/previous valid key/value pairs will be returned respectively.
Save
:: (MonadIO m, MonadFail m, MdbxItem k, MdbxItem v) | |
=> MdbxEnv | The environment. |
-> MdbxDbi | The database. |
-> k | The key. |
-> v | The value. |
-> m () |
Saves the given key/value pair.
:: (MonadIO m, MonadFail m, MdbxItem k, MdbxItem v) | |
=> MdbxEnv | The environment. |
-> MdbxDbi | The database. |
-> [(k, v)] | The list of key/value pairs. |
-> m () |
Saves the given key/value pairs. Runs in a single transaction.
Delete
:: (MonadIO m, MonadFail m, MdbxItem k) | |
=> MdbxEnv | The environment. |
-> MdbxDbi | The database. |
-> k | The key to delete. |
-> m () |
Deletes the item associated with the given key, if any.