packages feed

lmdb 0.1.1 → 0.2.0

raw patch · 2 files changed

+22/−14 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Database.LMDB.Raw: mdb_dbi_open :: MDB_txn -> String -> [MDB_DbFlag] -> IO MDB_dbi
+ Database.LMDB.Raw: mdb_dbi_open :: MDB_txn -> Maybe String -> [MDB_DbFlag] -> IO MDB_dbi
- Database.LMDB.Raw: mdb_dbi_open' :: MDB_txn -> String -> [MDB_DbFlag] -> IO MDB_dbi'
+ Database.LMDB.Raw: mdb_dbi_open' :: MDB_txn -> Maybe String -> [MDB_DbFlag] -> IO MDB_dbi'
- Database.LMDB.Raw: mdb_reader_list :: MDB_env -> IO [String]
+ Database.LMDB.Raw: mdb_reader_list :: MDB_env -> IO String

Files

hsrc_lib/Database/LMDB/Raw.hsc view
@@ -785,8 +785,8 @@     if (0 == rc) then fromIntegral <$> _peekCInt pCount else     _throwLMDBErrNum "mdb_reader_check" rc  --- | Dump entries from reader lock table.-mdb_reader_list :: MDB_env -> IO [String]+-- | Dump entries from reader lock table (for human consumption)+mdb_reader_list :: MDB_env -> IO String mdb_reader_list env =     newIORef [] >>= \ rf ->     let onMsg cs _ = @@ -796,7 +796,8 @@     in     withMsgFunc onMsg $ \ pMsgFunc ->     _mdb_reader_list (_env_ptr env) pMsgFunc nullPtr >>= \ rc ->-    if (0 == rc) then L.reverse <$> readIORef rf else+    let toMsg = L.foldl (flip (++)) [] in+    if (0 == rc) then toMsg <$> readIORef rf else     _throwLMDBErrNum "mdb_reader_list" rc  withMsgFunc :: MDB_msg_func -> (FunPtr MDB_msg_func -> IO a) -> IO a@@ -913,7 +914,10 @@  -- | Open a database that supports user-defined comparisons, but -- has slightly more FFI overhead for reads and writes.-mdb_dbi_open :: MDB_txn -> String -> [MDB_DbFlag] -> IO MDB_dbi+--+-- LMDB supports a small set of named databases, plus one 'main'+-- database using the null argument for the database name.+mdb_dbi_open :: MDB_txn -> Maybe String -> [MDB_DbFlag] -> IO MDB_dbi mdb_dbi_open txn dbName flags = MDB_dbi <$> mdb_dbi_open_t txn dbName flags  -- | database statistics@@ -942,7 +946,7 @@ mdb_clear :: MDB_txn -> MDB_dbi -> IO () mdb_clear txn = mdb_clear_t txn . _dbi -mdb_dbi_open' :: MDB_txn -> String -> [MDB_DbFlag] -> IO MDB_dbi'+mdb_dbi_open' :: MDB_txn -> Maybe String -> [MDB_DbFlag] -> IO MDB_dbi' mdb_dbi_open' txn dbName flags = MDB_dbi' <$> mdb_dbi_open_t txn dbName flags  mdb_stat' :: MDB_txn -> MDB_dbi' -> IO MDB_stat@@ -961,9 +965,15 @@ mdb_clear' txn = mdb_clear_t txn . _dbi'  -mdb_dbi_open_t :: MDB_txn -> String -> [MDB_DbFlag] -> IO MDB_dbi_t-mdb_dbi_open_t txn dbName flags =+mdb_dbi_open_t :: MDB_txn -> Maybe String -> [MDB_DbFlag] -> IO MDB_dbi_t+mdb_dbi_open_t txn Nothing flags = -- use nullPtr for name     let cdbFlags = compileDBFlags flags in+    alloca $ \ pDBI ->+    _mdb_dbi_open (_txn_ptr txn) nullPtr cdbFlags pDBI >>= \ rc ->+    if (0 == rc) then peek pDBI else+    _throwLMDBErrNum "mdb_dbi_open" rc+mdb_dbi_open_t txn (Just dbName) flags = -- use string name+    let cdbFlags = compileDBFlags flags in     withCString dbName $ \ cdbName ->     alloca $ \ pDBI ->     _mdb_dbi_open (_txn_ptr txn) cdbName cdbFlags pDBI >>= \ rc ->@@ -1126,14 +1136,12 @@  mdb_del' :: MDB_txn -> MDB_dbi' -> MDB_val -> Maybe MDB_val -> IO Bool mdb_del' txn dbi key Nothing =-    allocaBytes (sizeOf key) $ \ pKey ->+    alloca $ \ pKey ->     poke pKey key >>     _mdb_del' (_txn_ptr txn) dbi pKey nullPtr >>= \ rc ->     r_del rc mdb_del' txn dbi key (Just val) =-    allocaBytes (2 * sizeOf key) $ \ pKey ->-    let pVal = pKey `plusPtr` sizeOf key in-    poke pKey key >> poke pVal val >>+    withKVPtrs key val $ \ pKey pVal ->     _mdb_del' (_txn_ptr txn) dbi pKey pVal >>= \rc ->     r_del rc 
lmdb.cabal view
@@ -1,15 +1,15 @@ Name: lmdb-Version: 0.1.1+Version: 0.2.0 Synopsis: Lightning MDB bindings  Category: Database Description:   LMDB is a read-optimized Berkeley DB replacement developed by Sysmas   for the OpenLDAP project. LMDB has impressive performance characteristics    and a friendly BSD-style license.-  +  .   You will need to install the lmdb development files to install this   library, e.g. `sudo apt-get install liblmdb-dev` works for Ubuntu 14.04-  +  .   At the moment, only a raw, low-level interface to LMDB is supported.    Author: David Barbour