streamly-lmdb 0.2.1 → 0.3.0
raw patch · 4 files changed
+21/−19 lines, 4 filesdep ~streamlyPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: streamly
API changes (from Hackage documentation)
Files
- ChangeLog.md +4/−0
- README.md +1/−1
- src/Streamly/External/LMDB.hs +13/−13
- streamly-lmdb.cabal +3/−5
ChangeLog.md view
@@ -1,3 +1,7 @@+## 0.3.0++* Updated for Streamly 0.8.0.+ ## 0.2.1 * Allow QuickCheck <2.15 and tasty <1.5.
README.md view
@@ -1,7 +1,7 @@ # streamly-lmdb [](https://hackage.haskell.org/package/streamly-lmdb)-[](https://travis-ci.org/shlok/streamly-lmdb)+ Stream data to or from LMDB databases using the Haskell [streamly](https://hackage.haskell.org/package/streamly) library.
src/Streamly/External/LMDB.hs view
@@ -52,11 +52,11 @@ import Foreign.C.String (CStringLen) import Foreign.Marshal.Utils (with) import Foreign.Storable (poke)-import Streamly.Internal.Data.Fold (Fold (Fold))-import Streamly.Internal.Data.Stream.StreamD (newFinalizedIORef, runIORefFinalizer)+import Streamly.Internal.Data.Fold (Fold (Fold), Step (Partial))+import Streamly.Internal.Data.IOFinalizer (newIOFinalizer, runIOFinalizer) import Streamly.Internal.Data.Stream.StreamD.Type (Step (Stop, Yield)) import Streamly.Internal.Data.Unfold (supply)-import Streamly.Internal.Data.Unfold.Types (Unfold (Unfold))+import Streamly.Internal.Data.Unfold.Type (Unfold (Unfold)) import Streamly.External.LMDB.Internal import Streamly.External.LMDB.Internal.Foreign@@ -197,7 +197,7 @@ (Forward, Just _) -> (mdb_set_range, mdb_next) (Backward, Nothing) -> (mdb_last, mdb_prev) (Backward, Just _) -> (mdb_set_range, mdb_prev)- in flip supply firstOp $ Unfold+ in supply firstOp $ Unfold (\(op, pcurs, pk, pv, ref) -> do rc <- liftIO $ if op == mdb_set_range && subsequentOp == mdb_prev then do@@ -221,7 +221,7 @@ found <- liftIO $ if rc /= 0 && rc /= mdb_notfound then do- runIORefFinalizer ref+ runIOFinalizer ref throwLMDBErrNum "mdb_cursor_get" rc else return $ rc /= mdb_notfound@@ -231,7 +231,7 @@ !v <- liftIO $ (\x -> vmap (mv_data x, fromIntegral $ mv_size x)) =<< peek pv return $ Yield (k, v) (subsequentOp, pcurs, pk, pv, ref) else do- runIORefFinalizer ref+ runIOFinalizer ref return Stop) (\op -> do (pcurs, pk, pv, ref) <- liftIO $ mask_ $ do@@ -245,7 +245,7 @@ Just k -> unsafeUseAsCStringLen k $ \(kp, kl) -> poke pk (MDB_val (fromIntegral kl) kp) - ref <- liftIO . newFinalizedIORef $ do+ ref <- liftIO . newIOFinalizer $ do free pv >> free pk c_mdb_cursor_close pcurs -- No need to commit this read-only transaction.@@ -301,7 +301,7 @@ currChunkSz' <- liftIO $ if currChunkSz >= txnSize then do let (_, ref) = fromJust mtxn- runIORefFinalizer ref+ runIOFinalizer ref return 0 else return currChunkSz@@ -310,7 +310,7 @@ if currChunkSz' == 0 then liftIO $ mask_ $ do ptxn <- mdb_txn_begin penv nullPtr 0- ref <- newFinalizedIORef $ mdb_txn_commit ptxn+ ref <- newIOFinalizer $ mdb_txn_commit ptxn return (ptxn, ref) else return $ fromJust mtxn@@ -331,13 +331,13 @@ && vbs == v else return False- unless ok $ runIORefFinalizer ref >> throw e)- return (threadId, iter', currChunkSz' + 1, Just (ptxn, ref)))+ unless ok $ runIOFinalizer ref >> throw e)+ return $ Partial (threadId, iter', currChunkSz' + 1, Just (ptxn, ref))) (do isBound <- liftIO isCurrentThreadBound threadId <- liftIO myThreadId if isBound then- return (threadId, 0 :: Int, 0, Nothing)+ return $ Partial (threadId, 0 :: Int, 0, Nothing) else throw $ ExceptionString "Error: writeLMDB should be executed on a bound thread") -- This final part is incompatible with scans.@@ -347,4 +347,4 @@ throw (ExceptionString "Error: writeLMDB veered off the original bound thread at the end") case mtxn of Nothing -> return ()- Just (_, ref) -> runIORefFinalizer ref)+ Just (_, ref) -> runIOFinalizer ref)
streamly-lmdb.cabal view
@@ -3,11 +3,9 @@ -- This file has been generated from package.yaml by hpack version 0.34.4. -- -- see: https://github.com/sol/hpack------ hash: d4cb0bcf729fd32460df2fbb52948a7cf9d1cff0094ec59b086b8950847e5491 name: streamly-lmdb-version: 0.2.1+version: 0.3.0 synopsis: Stream data to or from LMDB databases using the streamly library. description: Please see the README on GitHub at <https://github.com/shlok/streamly-lmdb#readme> category: Database, Streaming, Streamly@@ -49,7 +47,7 @@ async >=2.2.2 && <2.3 , base >=4.7 && <5 , bytestring >=0.10.10.0 && <0.11- , streamly >=0.7.2 && <0.8+ , streamly ==0.8.* default-language: Haskell2010 test-suite streamly-lmdb-test@@ -69,7 +67,7 @@ , base >=4.7 && <5 , bytestring >=0.10.10.0 && <0.11 , directory >=1.3.6.0 && <1.4- , streamly >=0.7.2 && <0.8+ , streamly ==0.8.* , streamly-lmdb , tasty >=1.2.3 && <1.5 , tasty-quickcheck >=0.10.1.1 && <0.11