This commit is contained in:
Jaremy Creechley 2023-09-26 20:07:02 -07:00
parent 2255ea1c1c
commit c67b61aa50
No known key found for this signature in database
GPG Key ID: 4E66FB67B21D3300
2 changed files with 18 additions and 22 deletions

View File

@ -13,7 +13,7 @@ import ../datastore
import ./backend
import ./sql/sqliteds
export datastore
export datastore, sqliteds
push: {.upraises: [].}
@ -42,7 +42,8 @@ method delete*(self: SQLiteDatastore,
method get*(self: SQLiteDatastore,
key: Key): Future[?!seq[byte]] {.async.} =
self.db.get(KeyId.new key.id())
self.db.get(KeyId.new key.id()).map() do(d: DataBuffer) -> seq[byte]:
d.toSeq()
method put*(self: SQLiteDatastore,
key: Key,
@ -79,7 +80,7 @@ method queryIter*(
yield QueryResponse.failure err
let k = qres.key.map() do(k: KeyId) -> Key:
Key.init($k).expect("valid key")
let v: seq[byte] = qres.data
let v: seq[byte] = qres.data.toSeq()
yield success (k, v)
success iter
@ -87,20 +88,14 @@ method queryIter*(
proc new*(
T: type SQLiteDatastore,
path: string,
readOnly = false): ?!T =
readOnly = false): ?!SQLiteDatastore =
let
flags =
if readOnly: SQLITE_OPEN_READONLY
else: SQLITE_OPEN_READWRITE or SQLITE_OPEN_CREATE
success T(
db: ? SQLiteDsDb.open(path, flags),
readOnly: readOnly)
success SQLiteDatastore(
db: ? newSQLiteBackend[KeyId, DataBuffer](path, readOnly))
proc new*(
T: type SQLiteDatastore,
db: SQLiteDsDb): ?!T =
db: SQLiteBackend[KeyId, DataBuffer]): ?!T =
success T(
db: db,

View File

@ -8,7 +8,7 @@ import pkg/chronos
import pkg/stew/results
import pkg/stew/byteutils
import pkg/datastore/sql/sqliteds
import pkg/datastore/sql
import ../dscommontests
import ../querycommontests
@ -25,6 +25,7 @@ suite "Test Basic SQLiteDatastore":
basicStoreTests(ds, key, bytes, otherBytes)
suite "Test Read Only SQLiteDatastore":
let
path = currentSourcePath() # get this file's name
@ -76,14 +77,14 @@ suite "Test Read Only SQLiteDatastore":
not (await readOnlyDb.has(key)).tryGet()
not (await dsDb.has(key)).tryGet()
suite "Test Query":
var
ds: SQLiteDatastore
# suite "Test Query":
# var
# ds: SQLiteDatastore
setup:
ds = SQLiteDatastore.new(Memory).tryGet()
# setup:
# ds = SQLiteDatastore.new(Memory).tryGet()
teardown:
(await ds.close()).tryGet
# teardown:
# (await ds.close()).tryGet
queryTests(ds)
# queryTests(ds)