From 62c9e7c583476c9a79a1a6fce2cf6789939202db Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Mon, 25 Sep 2023 19:14:10 -0700 Subject: [PATCH] query fixes --- datastore/backend.nim | 7 ++++++- datastore/sql/sqliteds.nim | 2 +- tests/datastore/sql/testsqliteds.nim | 14 +++++++------- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/datastore/backend.nim b/datastore/backend.nim index 1524600..350f590 100644 --- a/datastore/backend.nim +++ b/datastore/backend.nim @@ -13,6 +13,11 @@ export databuffer, threadresult, semaphore, types export upraises, results, SortOrder type + + DbSortOrder* {.pure.} = enum + Ascending, + Descending + KeyId* = object ## serialized Key ID, equivalent to `key.id()` data*: DataBuffer @@ -27,7 +32,7 @@ type value*: bool # Flag to indicate if data should be returned limit*: int # Max items to return - not available in all backends offset*: int # Offset from which to start querying - not available in all backends - sort*: SortOrder # Sort order - not available in all backends + sort*: DbSortOrder # Sort order - not available in all backends DbQueryHandle*[K, V, T] = object query*: DbQuery[K] diff --git a/datastore/sql/sqliteds.nim b/datastore/sql/sqliteds.nim index 2cc0f53..3f96dd8 100644 --- a/datastore/sql/sqliteds.nim +++ b/datastore/sql/sqliteds.nim @@ -114,7 +114,7 @@ proc query*[K,V]( else: QueryStmtIdStr - if query.sort == SortOrder.Descending: + if query.sort == DbSortOrder.Descending: queryStr &= QueryStmtOrderDescending else: queryStr &= QueryStmtOrderAscending diff --git a/tests/datastore/sql/testsqliteds.nim b/tests/datastore/sql/testsqliteds.nim index 0ea2364..1d644a2 100644 --- a/tests/datastore/sql/testsqliteds.nim +++ b/tests/datastore/sql/testsqliteds.nim @@ -135,7 +135,7 @@ suite "queryTests": var handle = ds.query(q).tryGet - res = handle.iter().toSeq().mapIt(it.tryGet()).reversed() + res = handle.iter().toSeq().mapIt(it.tryGet()) check: res.len == 3 @@ -175,8 +175,8 @@ suite "queryTests": res[0].key.get == key2 res[0].data == val2 - res[1].key.get == key3 - res[1].data == val3 + res[1].key.get == key1 + res[1].data == val1 test "Key should query all keys without values": let @@ -189,7 +189,7 @@ suite "queryTests": var handle = ds.query(q).tryGet let - res = handle.iter().toSeq().mapIt(it.tryGet()).reversed() + res = handle.iter().toSeq().mapIt(it.tryGet()) check: res.len == 3 @@ -214,7 +214,7 @@ suite "queryTests": var handle = ds.query(q).tryGet let - res = handle.iter().toSeq().mapIt(it.tryGet()).reversed() + res = handle.iter().toSeq().mapIt(it.tryGet()) check: res.len == 2 @@ -235,7 +235,7 @@ suite "queryTests": var handle = ds.query(q).tryGet - res = handle.iter().toSeq().mapIt(it.tryGet()).reversed() + res = handle.iter().toSeq().mapIt(it.tryGet()) res.sort do (a, b: DbQueryResponse[KeyId, DataBuffer]) -> int: cmp($a.key.get, $b.key.get) @@ -266,7 +266,7 @@ suite "queryTests": var handle = ds.query(q).tryGet let - res = handle.iter().toSeq().mapIt(it.tryGet()).reversed() + res = handle.iter().toSeq().mapIt(it.tryGet()) echo "RES: ", res.mapIt(it.key) check: