Skip to content
Snippets Groups Projects
Commit a30d2c8e authored by Roman Tsisyk's avatar Roman Tsisyk
Browse files

Fix Bug#1073476 "box.select_range only use first part of compound keys"

parent ce9952f2
No related branches found
No related tags found
No related merge requests found
......@@ -207,21 +207,21 @@ function box.on_reload_configuration()
--
index_mt.select_range = function(index, limit, ...)
local range = {}
for k, v in index.idx.next, index.idx, ... do
if #range >= limit then
break
end
local iterator_state, v = index:next(...)
while true do
if (#range >= limit) or (iterator_state == nil) then break end
table.insert(range, v)
iterator_state, v = index:next(iterator_state)
end
return unpack(range)
end
index_mt.select_reverse_range = function(index, limit, ...)
local range = {}
for k, v in index.idx.prev, index.idx, ... do
if #range >= limit then
break
end
local iterator_state, v = index:prev(...)
while true do
if (#range >= limit) or (iterator_state == nil) then break end
table.insert(range, v)
iterator_state, v = index:prev(iterator_state)
end
return unpack(range)
end
......
......@@ -111,8 +111,7 @@ call box.select_range(1, 0, 100, 'key2')
Found 1 tuple:
[846816619, 'part1', 'part2_a']
call box.select_range(1, 1, 100, 'part1', 'part2_a')
Found 3 tuples:
[830039403, 'part1', 'part2']
Found 2 tuples:
[846816619, 'part1', 'part2_a']
[863593835, 'part1', 'part2_b']
insert into t5 values ('01234567', 'part1', 'part2')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment