From 5346427ab8e1c70e78b0f86dc252bbe5ca09fdd8 Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 15 May 2024 08:40:37 +0200 Subject: [PATCH] Applies leveldb batch-put --- datastore/leveldb/leveldbds.nim | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/datastore/leveldb/leveldbds.nim b/datastore/leveldb/leveldbds.nim index 893987c..e08f3f8 100644 --- a/datastore/leveldb/leveldbds.nim +++ b/datastore/leveldb/leveldbds.nim @@ -60,10 +60,14 @@ method put*(self: LevelDbDatastore, key: Key, data: seq[byte]): Future[?!void] { return failure("LevelDbDatastore.put exception: " & $e.msg) method put*(self: LevelDbDatastore, batch: seq[BatchEntry]): Future[?!void] {.async.} = - for entry in batch: - if err =? (await self.put(entry.key, entry.data)).errorOption: - return failure(err.msg) - return success() + try: + let b = newBatch() + for entry in batch: + b.put($(entry.key), string.fromBytes(entry.data)) + self.db.write(b) + return success() + except LevelDbException as e: + return failure("LevelDbDatastore.put (batch) exception: " & $e.msg) method close*(self: LevelDbDatastore): Future[?!void] {.async.} = try: