mirror of
https://github.com/logos-storage/nim-datastore.git
synced 2026-01-05 23:23:10 +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".} =
|
method delete*(self: Datastore, keys: seq[Key]): Future[?!void] {.base, gcsafe, locks: "unknown".} =
|
||||||
raiseAssert("Not implemented!")
|
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".} =
|
method get*(self: Datastore, key: Key): Future[?!seq[byte]] {.base, gcsafe, locks: "unknown".} =
|
||||||
raiseAssert("Not implemented!")
|
raiseAssert("Not implemented!")
|
||||||
|
|
||||||
|
|||||||
@ -40,6 +40,16 @@ method delete*(self: LevelDbDatastore, keys: seq[Key]): Future[?!void] {.async.}
|
|||||||
return failure(err.msg)
|
return failure(err.msg)
|
||||||
return success()
|
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.} =
|
method get*(self: LevelDbDatastore, key: Key): Future[?!seq[byte]] {.async.} =
|
||||||
try:
|
try:
|
||||||
let str = self.db.get($key)
|
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.} =
|
proc delete*(self: TypedDatastore, keys: seq[Key]): Future[?!void] {.async.} =
|
||||||
await self.ds.delete(keys)
|
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.} =
|
proc close*(self: TypedDatastore): Future[?!void] {.async.} =
|
||||||
await self.ds.close()
|
await self.ds.close()
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user