packages feed

higher-leveldb 0.1.0.1 → 0.1.0.2

raw patch · 2 files changed

+8/−4 lines, 2 files

Files

higher-leveldb.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/  name:                higher-leveldb-version:             0.1.0.1+version:             0.1.0.2 synopsis:            A rich monadic API for working with leveldb databases. description:         A rich monadic API for working with leveldb databases. homepage:            https://github.com/jeremyjh/higher-leveldb
src/Database/LevelDB/Higher.hs view
@@ -347,16 +347,18 @@      -> m b scan k scanQuery = do     (db, ksId, (ropt,_)) <- getDB-    withIterator db ropt $ doScan (ksId <> k)+    withIterator db ropt $ doScan (ksId <> k) ksId   where-    doScan prefix iter = do+    doScan prefix ksId iter = do         iterSeek iter prefix         applyIterate initV       where         readItem = do             nk <- iterKey iter             nv <- iterValue iter-            return (fmap (BS.drop 4) nk, nv) --unkeyspace+            if sameKsId nk then+                return (fmap (BS.drop 4) nk, nv) --unkeyspace+                else return (Nothing, Nothing)         applyIterate acc = do             item <- readItem             case item of@@ -369,6 +371,8 @@                                  else items                     else return acc                 _ -> return acc+        sameKsId Nothing = False+        sameKsId (Just nk) = BS.take 4 nk == ksId     initV = scanInit scanQuery     whileFn = scanWhile scanQuery k     mapFn = scanMap scanQuery