mirror of
https://github.com/logos-storage/nim-datastore.git
synced 2026-01-02 13:43:11 +00:00
add support for batch deletes
This commit is contained in:
parent
39000fd4fc
commit
237f2d2b8a
@ -25,6 +25,9 @@ method delete*(self: Datastore, key: Key): Future[?!void] {.base, gcsafe, locks:
|
||||
method delete*(self: Datastore, keys: seq[Key]): Future[?!void] {.base, gcsafe, locks: "unknown".} =
|
||||
raiseAssert("Not implemented!")
|
||||
|
||||
method batchDelete*(self: Datastore, keys: seq[Key]): Future[?!void] {.base, gcsafe, locks: "unknown".} =
|
||||
raiseAssert("Not implemented!")
|
||||
|
||||
method get*(self: Datastore, key: Key): Future[?!seq[byte]] {.base, gcsafe, locks: "unknown".} =
|
||||
raiseAssert("Not implemented!")
|
||||
|
||||
|
||||
@ -40,6 +40,16 @@ method delete*(self: LevelDbDatastore, keys: seq[Key]): Future[?!void] {.async.}
|
||||
return failure(err.msg)
|
||||
return success()
|
||||
|
||||
method batchDelete*(self: LevelDbDatastore, keys: seq[Key]): Future[?!void] {.async.} =
|
||||
try:
|
||||
let b = newBatch()
|
||||
for key in keys:
|
||||
b.delete($key)
|
||||
self.db.write(b)
|
||||
return success()
|
||||
except LevelDbException as e:
|
||||
return failure("LevelDbDatastore.batchDelete exception: " & e.msg)
|
||||
|
||||
method get*(self: LevelDbDatastore, key: Key): Future[?!seq[byte]] {.async.} =
|
||||
try:
|
||||
let str = self.db.get($key)
|
||||
|
||||
@ -83,6 +83,9 @@ proc delete*(self: TypedDatastore, key: Key): Future[?!void] {.async.} =
|
||||
proc delete*(self: TypedDatastore, keys: seq[Key]): Future[?!void] {.async.} =
|
||||
await self.ds.delete(keys)
|
||||
|
||||
proc batchDelete*(self: TypedDatastore, keys: seq[Key]): Future[?!void] {.async.} =
|
||||
await self.ds.batchDelete(keys)
|
||||
|
||||
proc close*(self: TypedDatastore): Future[?!void] {.async.} =
|
||||
await self.ds.close()
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user