leveldb-haskell 0.6.4 → 0.6.5
raw patch · 4 files changed
+19/−118 lines, 4 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Database.LevelDB.MonadResource: approximateSize :: MonadResource m => DB -> Range -> m Int64
+ Database.LevelDB.MonadResource: approximateSize :: MonadIO m => DB -> Range -> m Int64
- Database.LevelDB.MonadResource: compactRange :: MonadResource m => DB -> Range -> m ()
+ Database.LevelDB.MonadResource: compactRange :: MonadIO m => DB -> Range -> m ()
- Database.LevelDB.MonadResource: delete :: MonadResource m => DB -> WriteOptions -> ByteString -> m ()
+ Database.LevelDB.MonadResource: delete :: MonadIO m => DB -> WriteOptions -> ByteString -> m ()
- Database.LevelDB.MonadResource: destroy :: MonadResource m => FilePath -> Options -> m ()
+ Database.LevelDB.MonadResource: destroy :: MonadIO m => FilePath -> Options -> m ()
- Database.LevelDB.MonadResource: get :: MonadResource m => DB -> ReadOptions -> ByteString -> m (Maybe ByteString)
+ Database.LevelDB.MonadResource: get :: MonadIO m => DB -> ReadOptions -> ByteString -> m (Maybe ByteString)
- Database.LevelDB.MonadResource: getProperty :: MonadResource m => DB -> Property -> m (Maybe ByteString)
+ Database.LevelDB.MonadResource: getProperty :: MonadIO m => DB -> Property -> m (Maybe ByteString)
- Database.LevelDB.MonadResource: iterFirst :: MonadResource m => Iterator -> m ()
+ Database.LevelDB.MonadResource: iterFirst :: MonadIO m => Iterator -> m ()
- Database.LevelDB.MonadResource: iterGetError :: MonadResource m => Iterator -> m (Maybe ByteString)
+ Database.LevelDB.MonadResource: iterGetError :: MonadIO m => Iterator -> m (Maybe ByteString)
- Database.LevelDB.MonadResource: iterKey :: MonadResource m => Iterator -> m (Maybe ByteString)
+ Database.LevelDB.MonadResource: iterKey :: MonadIO m => Iterator -> m (Maybe ByteString)
- Database.LevelDB.MonadResource: iterLast :: MonadResource m => Iterator -> m ()
+ Database.LevelDB.MonadResource: iterLast :: MonadIO m => Iterator -> m ()
- Database.LevelDB.MonadResource: iterNext :: MonadResource m => Iterator -> m ()
+ Database.LevelDB.MonadResource: iterNext :: MonadIO m => Iterator -> m ()
- Database.LevelDB.MonadResource: iterPrev :: MonadResource m => Iterator -> m ()
+ Database.LevelDB.MonadResource: iterPrev :: MonadIO m => Iterator -> m ()
- Database.LevelDB.MonadResource: iterSeek :: MonadResource m => Iterator -> ByteString -> m ()
+ Database.LevelDB.MonadResource: iterSeek :: MonadIO m => Iterator -> ByteString -> m ()
- Database.LevelDB.MonadResource: iterValid :: MonadResource m => Iterator -> m Bool
+ Database.LevelDB.MonadResource: iterValid :: MonadIO m => Iterator -> m Bool
- Database.LevelDB.MonadResource: iterValue :: MonadResource m => Iterator -> m (Maybe ByteString)
+ Database.LevelDB.MonadResource: iterValue :: MonadIO m => Iterator -> m (Maybe ByteString)
- Database.LevelDB.MonadResource: put :: MonadResource m => DB -> WriteOptions -> ByteString -> ByteString -> m ()
+ Database.LevelDB.MonadResource: put :: MonadIO m => DB -> WriteOptions -> ByteString -> ByteString -> m ()
- Database.LevelDB.MonadResource: repair :: MonadResource m => FilePath -> Options -> m ()
+ Database.LevelDB.MonadResource: repair :: MonadIO m => FilePath -> Options -> m ()
- Database.LevelDB.MonadResource: version :: MonadResource m => m (Int, Int)
+ Database.LevelDB.MonadResource: version :: MonadIO m => m (Int, Int)
- Database.LevelDB.MonadResource: write :: MonadResource m => DB -> WriteOptions -> WriteBatch -> m ()
+ Database.LevelDB.MonadResource: write :: MonadIO m => DB -> WriteOptions -> WriteBatch -> m ()
Files
- CHANGELOG +4/−0
- leveldb-haskell.cabal +7/−12
- src/Database/LevelDB/MonadResource.hs +7/−105
- src/Database/LevelDB/Types.hs +1/−1
CHANGELOG view
@@ -1,3 +1,7 @@+[0.6.5]:++* Relaxed constraints in `MonadResource` module+ [0.6.1]: * Expose `compactRange`
leveldb-haskell.cabal view
@@ -1,5 +1,5 @@ name: leveldb-haskell-version: 0.6.4+version: 0.6.5 synopsis: Haskell bindings to LevelDB homepage: http://github.com/kim/leveldb-haskell bug-reports: http://github.com/kim/leveldb-haskell/issues@@ -12,7 +12,7 @@ stability: Experimental build-type: Simple cabal-version: >=1.10-tested-with: GHC == 7.4.2, GHC == 7.6.4, GHC == 7.8.3, GHC == 7.10.1+tested-with: GHC == 7.4.2, GHC == 7.6.4, GHC == 7.8.3, GHC == 7.10.1, GHC == 8.0.1 description: From <http://code.google.com/p/snappy>: .@@ -59,8 +59,7 @@ , resourcet > 0.3.2 , transformers - ghc-options: -Wall -rtsopts -funbox-strict-fields- ghc-prof-options: -prof -auto-all+ ghc-options: -Wall -funbox-strict-fields hs-source-dirs: src @@ -76,8 +75,7 @@ , data-default , leveldb-haskell - ghc-options: -Wall -O -rtsopts- ghc-prof-options: -prof -auto-all+ ghc-options: -Wall -O -threaded -rtsopts hs-source-dirs: examples @@ -98,8 +96,7 @@ , data-default , leveldb-haskell - ghc-options: -Wall -O -rtsopts- ghc-prof-options: -prof -auto-all+ ghc-options: -Wall -O -threaded -rtsopts hs-source-dirs: examples @@ -118,8 +115,7 @@ , data-default , leveldb-haskell - ghc-options: -Wall -O -rtsopts- ghc-prof-options: -prof -auto-all+ ghc-options: -Wall -O -threaded -rtsopts hs-source-dirs: examples @@ -139,8 +135,7 @@ , data-default , leveldb-haskell - ghc-options: -Wall -O -rtsopts- ghc-prof-options: -prof -auto-all+ ghc-options: -Wall -O -threaded -rtsopts hs-source-dirs: examples
src/Database/LevelDB/MonadResource.hs view
@@ -71,17 +71,20 @@ import Control.Applicative ((<$>)) import Control.Monad.Trans.Resource-import Data.ByteString (ByteString)-import Data.Int (Int64)- import Database.LevelDB.Base (BatchOp, BloomFilter, Comparator, Compression, DB, FilterPolicy, Iterator, Options, Property, Range, ReadOptions, Snapshot, WriteBatch, WriteOptions,+ approximateSize, compactRange, defaultOptions, defaultReadOptions,- defaultWriteOptions)+ defaultWriteOptions, delete,+ destroy, get, getProperty,+ iterFirst, iterGetError, iterKey,+ iterLast, iterNext, iterPrev,+ iterSeek, iterValid, iterValue,+ put, repair, version, write) import qualified Database.LevelDB.Base as Base import qualified Database.LevelDB.Internal as Internal @@ -128,46 +131,6 @@ createSnapshot' :: MonadResource m => DB -> m (ReleaseKey, Snapshot) createSnapshot' db = allocate (Base.createSnapshot db) (Base.releaseSnapshot db) --- | Get a DB property-getProperty :: MonadResource m => DB -> Property -> m (Maybe ByteString)-getProperty = Base.getProperty---- | Destroy the given leveldb database.-destroy :: MonadResource m => FilePath -> Options -> m ()-destroy = Base.destroy---- | Repair the given leveldb database.-repair :: MonadResource m => FilePath -> Options -> m ()-repair = Base.repair----- | Inspect the approximate sizes of the different levels-approximateSize :: MonadResource m => DB -> Range -> m Int64-approximateSize = Base.approximateSize---- | Compact the underlying storage for the given Range.--- In particular this means discarding deleted and overwritten data as well as--- rearranging the data to reduce the cost of operations accessing the data.-compactRange :: MonadResource m => DB -> Range -> m ()-compactRange = Base.compactRange---- | Write a key/value pair-put :: MonadResource m => DB -> WriteOptions -> ByteString -> ByteString -> m ()-put = Base.put---- | Read a value by key-get :: MonadResource m => DB -> ReadOptions -> ByteString -> m (Maybe ByteString)-get = Base.get---- | Delete a key/value pair-delete :: MonadResource m => DB -> WriteOptions -> ByteString -> m ()-delete = Base.delete---- | Perform a batch mutation-write :: MonadResource m => DB -> WriteOptions -> WriteBatch -> m ()-write = Base.write-- -- | Run an action with an Iterator. The iterator will be closed after the -- action returns or an error is thrown. Thus, the iterator will /not/ be valid -- after this function terminates.@@ -193,64 +156,3 @@ -- | Create an 'Iterator' which can be released early. iterOpen' :: MonadResource m => DB -> ReadOptions -> m (ReleaseKey, Iterator) iterOpen' db opts = allocate (Base.createIter db opts) Base.releaseIter---- | An iterator is either positioned at a key/value pair, or not valid. This--- function returns /true/ iff the iterator is valid.-iterValid :: MonadResource m => Iterator -> m Bool-iterValid = Base.iterValid---- | Position at the first key in the source that is at or past target. The--- iterator is /valid/ after this call iff the source contains an entry that--- comes at or past target.-iterSeek :: MonadResource m => Iterator -> ByteString -> m ()-iterSeek = Base.iterSeek---- | Position at the first key in the source. The iterator is /valid/ after this--- call iff the source is not empty.-iterFirst :: MonadResource m => Iterator -> m ()-iterFirst = Base.iterFirst---- | Position at the last key in the source. The iterator is /valid/ after this--- call iff the source is not empty.-iterLast :: MonadResource m => Iterator -> m ()-iterLast = Base.iterLast---- | Moves to the next entry in the source. After this call, 'iterValid' is--- /true/ iff the iterator was not positioned at the last entry in the source.------ If the iterator is not valid, this function does nothing. Note that this is a--- shortcoming of the C API: an 'iterPrev' might still be possible, but we can't--- determine if we're at the last or first entry.-iterNext :: MonadResource m => Iterator -> m ()-iterNext = Base.iterNext---- | Moves to the previous entry in the source. After this call, 'iterValid' is--- /true/ iff the iterator was not positioned at the first entry in the source.------ If the iterator is not valid, this function does nothing. Note that this is a--- shortcoming of the C API: an 'iterNext' might still be possible, but we can't--- determine if we're at the last or first entry.-iterPrev :: MonadResource m => Iterator -> m ()-iterPrev = Base.iterPrev---- | Return the key for the current entry if the iterator is currently--- positioned at an entry, ie. 'iterValid'.-iterKey :: MonadResource m => Iterator -> m (Maybe ByteString)-iterKey = Base.iterKey---- | Return the value for the current entry if the iterator is currently--- positioned at an entry, ie. 'iterValid'.-iterValue :: MonadResource m => Iterator -> m (Maybe ByteString)-iterValue = Base.iterValue---- | Check for errors------ Note that this captures somewhat severe errors such as a corrupted database.-iterGetError :: MonadResource m => Iterator -> m (Maybe ByteString)-iterGetError = Base.iterGetError----- | Return the runtime version of the underlying LevelDB library as a (major,--- minor) pair.-version :: MonadResource m => m (Int, Int)-version = Base.version
src/Database/LevelDB/Types.hs view
@@ -179,7 +179,7 @@ data ReadOptions = ReadOptions { verifyCheckSums :: !Bool -- ^ If true, all data read from underlying storage will be verified- -- against corresponding checksuyms.+ -- against corresponding checksums. -- -- Default: False , fillCache :: !Bool