Skip to content

Commit 8aa9213

Browse files
committed
Merge branch 'master' of github.com:codeboost/xitdb-clj
2 parents e661859 + e065ede commit 8aa9213

File tree

4 files changed

+39
-27
lines changed

4 files changed

+39
-27
lines changed

src/xitdb/hash_map.clj

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
(= (into {} this) (into {} other))))
5757

5858
clojure.lang.Seqable
59-
(seq [this]
59+
(seq [_]
6060
(map-seq rhm))
6161

6262
clojure.lang.IFn
@@ -161,7 +161,7 @@
161161
(common/-read-from-cursor (conversion/map-write-cursor whm key)))))
162162

163163
clojure.lang.Seqable
164-
(seq [this]
164+
(seq [_]
165165
(map-seq whm))
166166

167167
clojure.core.protocols/IKVReduce
@@ -192,6 +192,3 @@
192192

193193
(defn xhash-map-counted [^ReadCursor read-cursor]
194194
(->XITDBHashMap (ReadCountedHashMap. read-cursor)))
195-
196-
197-

src/xitdb/hash_set.clj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
(operations/set-item-count rhs))
4242

4343
clojure.lang.Seqable
44-
(seq [_]
44+
(seq [this]
4545
(set-seq rhs))
4646

4747
clojure.lang.ILookup
@@ -117,7 +117,7 @@
117117
(operations/set-item-count whs))
118118

119119
clojure.lang.Seqable
120-
(seq [_]
120+
(seq [this]
121121
(set-seq whs))
122122

123123
clojure.lang.ILookup

src/xitdb/util/operations.clj

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -197,31 +197,33 @@
197197
;; ============================================================================
198198

199199
(defn map-seq
200-
"Return a lazy seq of key-value MapEntry pairs."
200+
"Return a lazy seq of key-value MapEntry pairs, or nil if empty."
201201
[^ReadHashMap rhm read-from-cursor]
202202
(let [it (.iterator rhm)]
203-
(letfn [(step []
204-
(lazy-seq
205-
(when (.hasNext it)
206-
(let [cursor (.next it)
207-
kv (.readKeyValuePair cursor)
208-
k (read-from-cursor (.-keyCursor kv))]
209-
(let [v (read-from-cursor (.-valueCursor kv))]
210-
(cons (clojure.lang.MapEntry. k v) (step)))))))]
211-
(step))))
203+
(when (.hasNext it)
204+
(letfn [(step []
205+
(lazy-seq
206+
(when (.hasNext it)
207+
(let [cursor (.next it)
208+
kv (.readKeyValuePair cursor)
209+
k (read-from-cursor (.-keyCursor kv))]
210+
(let [v (read-from-cursor (.-valueCursor kv))]
211+
(cons (clojure.lang.MapEntry. k v) (step)))))))]
212+
(step)))))
212213

213214
(defn set-seq
214-
"Return a lazy seq values from the set."
215+
"Return a lazy seq values from the set, or nil if empty."
215216
[rhm read-from-cursor]
216217
(let [it (.iterator rhm)]
217-
(letfn [(step []
218-
(lazy-seq
219-
(when (.hasNext it)
220-
(let [cursor (.next it)
221-
kv (.readKeyValuePair cursor)
222-
v (read-from-cursor (.-keyCursor kv))]
223-
(cons v (step))))))]
224-
(step))))
218+
(when (.hasNext it)
219+
(letfn [(step []
220+
(lazy-seq
221+
(when (.hasNext it)
222+
(let [cursor (.next it)
223+
kv (.readKeyValuePair cursor)
224+
v (read-from-cursor (.-keyCursor kv))]
225+
(cons v (step))))))]
226+
(step)))))
225227

226228
(defn array-seq
227229
"Creates a lazy sequence from a ReadArrayList.

test/xitdb/map_test.clj

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
(ns xitdb.map-test
22
(:require
33
[clojure.test :refer :all]
4+
[xitdb.db :as xdb]
45
[xitdb.test-utils :as tu :refer [with-db]]))
56

67
(deftest map-with-complex-keys
@@ -19,4 +20,16 @@
1920
(swap! db update :foo dissoc [2 :baz])
2021

2122
(is (= {:foo {[1 :bar] 31}}
22-
(tu/materialize @db))))))
23+
(tu/materialize @db))))))
24+
25+
(deftest KeysTest
26+
(with-open [db (xdb/xit-db :memory)]
27+
(reset! db {})
28+
(is (= nil (keys @db)))
29+
(is (= 0 (count (keys @db))))))
30+
31+
(deftest KeysTestSet
32+
(with-open [db (xdb/xit-db :memory)]
33+
(reset! db #{})
34+
(is (= 0 (count (keys @db))))
35+
(is (= nil (keys @db)))))

0 commit comments

Comments
 (0)