Skip to content

Commit 1ae2d62

Browse files
committed
Fix the map-seq and hash-set to return nil
1 parent 26399de commit 1ae2d62

File tree

3 files changed

+25
-27
lines changed

3 files changed

+25
-27
lines changed

src/xitdb/hash_map.clj

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,7 @@
5757

5858
clojure.lang.Seqable
5959
(seq [this]
60-
(when (pos? (operations/map-item-count rhm))
61-
(map-seq rhm)))
60+
(map-seq rhm))
6261

6362
clojure.lang.IFn
6463
(invoke [this k]
@@ -163,8 +162,7 @@
163162

164163
clojure.lang.Seqable
165164
(seq [this]
166-
(when (pos? (operations/map-item-count whm))
167-
(map-seq whm)))
165+
(map-seq whm))
168166

169167
clojure.core.protocols/IKVReduce
170168
(kv-reduce [this f init]

src/xitdb/hash_set.clj

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,7 @@
4242

4343
clojure.lang.Seqable
4444
(seq [this]
45-
(when (pos? (operations/set-item-count rhs))
46-
(set-seq rhs)))
45+
(set-seq rhs))
4746

4847
clojure.lang.ILookup
4948
(valAt [this k]
@@ -119,8 +118,7 @@
119118

120119
clojure.lang.Seqable
121120
(seq [this]
122-
(when (pos? (operations/set-item-count whs))
123-
(set-seq whs)))
121+
(set-seq whs))
124122

125123
clojure.lang.ILookup
126124
(valAt [this k]

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.

0 commit comments

Comments
 (0)