From e6a6eb9be536f83c9f43cb34574e34ed8223b7a1 Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Sun, 8 Apr 2018 11:13:48 +0200 Subject: [PATCH] Fix issue in it_from for B+TREE --- m-bptree.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/m-bptree.h b/m-bptree.h index d990c482..3117d3c4 100644 --- a/m-bptree.h +++ b/m-bptree.h @@ -712,12 +712,16 @@ pit_t pit; \ node_t n = M_C(name, _search_leaf)(pit, b, key); \ it->node = n; \ - int i, cmp = 1; \ + int i; \ BPTREEI_NODE_CONTRACT(N, key_oplist, n, b->root); \ - for(i = 0; cmp > 0 && i < -n->num; i++) { \ - cmp = M_GET_CMP key_oplist (key, n->key[i]); \ + for(i = 0; i < -n->num; i++) { \ + if (M_GET_CMP key_oplist (key, n->key[i]) <= 0) \ + break; \ } \ - assert(i != -n->num); /* TBC */ \ + if (i == -n->num && n->next != NULL) { \ + it->node = n->next; \ + i = 0; \ + } \ it->idx = i; \ } \ \