Skip to content

Commit d0416ff

Browse files
committed
extmod/modbtree: Actually implement end key support for .items().
1 parent 1babeb4 commit d0416ff

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

extmod/modbtree.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,16 @@ STATIC mp_obj_t btree_iternext(mp_obj_t self_in) {
153153
}
154154
CHECK_ERROR(res);
155155

156+
if (self->end_key != mp_const_none) {
157+
DBT end_key;
158+
end_key.data = (void*)mp_obj_str_get_data(self->end_key, &end_key.size);
159+
BTREE *t = self->db->internal;
160+
if (t->bt_cmp(&key, &end_key) >= 0) {
161+
self->end_key = MP_OBJ_NULL;
162+
return MP_OBJ_STOP_ITERATION;
163+
}
164+
}
165+
156166
mp_obj_tuple_t *pair = mp_obj_new_tuple(2, NULL);
157167
pair->items[0] = mp_obj_new_bytes(key.data, key.size);
158168
pair->items[1] = mp_obj_new_bytes(val.data, val.size);

0 commit comments

Comments
 (0)