<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<a class="moz-txt-link-freetext" href="https://fedorahosted.org/389/ticket/537">https://fedorahosted.org/389/ticket/537</a><br>
<br>
<a class="moz-txt-link-freetext" href="https://fedorahosted.org/389/attachment/ticket/537/0001-Ticket-537-Improvement-of-range-search.2.patch">https://fedorahosted.org/389/attachment/ticket/537/0001-Ticket-537-Improvement-of-range-search.2.patch</a><br>
<br>
Thanks to Rich for his reviews and comments. I've added the read
transaction abort in case idl_new_fetch / idl_new_range_fetch failed
in the transaction.<br>
<br>
Fix description: The index range search function index_range<br>
_read_ext was written to call idl_fetch_ext to get an idlist<br>
belonging to one key. Then add it to the main idlist as long<br>
as the key satisfiles the range search filter condition.<br>
This patch introduces a new range search function idl_new_<br>
range_fetch to the new idl code, which generates an idlist<br>
in one idl function that eliminates the redundancy such as<br>
generating idlist and cursor per key.<br>
<br>
This patch only implements the new idl version. If idl_new<br>
is not set, the existing code is executed.<br>
<br>
<font color="#cc0000"><b>Additionally, idl_new_fetch did not abort
the read transaction</b><b><br>
</b><b>even if any error occurred in the transaction. Now, it
switches</b><b><br>
</b><b>between commit and abort based upon the result.</b></font><br>
<br>
</body>
</html>