<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>