]> git.sur5r.net Git - openldap/commitdiff
ITS#3688 don't sort range IDLs!
authorHoward Chu <hyc@openldap.org>
Wed, 27 Apr 2005 17:29:30 +0000 (17:29 +0000)
committerHoward Chu <hyc@openldap.org>
Wed, 27 Apr 2005 17:29:30 +0000 (17:29 +0000)
servers/slapd/back-bdb/dn2id.c
servers/slapd/back-bdb/idl.c

index d1730234ffecbaa870634d9e0c2b3ef29f222642..a2719a5dbc92c22ab1c84f04b41af3e676b6536f 100644 (file)
@@ -1033,7 +1033,7 @@ hdb_dn2idl(
        DBTzero(&cx.data);
 
        hdb_dn2idl_internal(&cx);
-       if ( !BDB_IDL_IS_ZERO( ids ))
+       if ( !BDB_IDL_IS_ZERO( ids ) && !BDB_IDL_IS_RANGE( ids ))
                bdb_idl_sort( ids );
 
        return cx.rc;
index 21259129df4a078b2afb07454e28c5ba1a77a7a6..e3a2f26c49bc0ccf19dddf7edb4529f05fd16a53 100644 (file)
@@ -1238,7 +1238,7 @@ int bdb_idl_append_one( ID *ids, ID id )
                }
        }
        ids[0]++;
-       if ( ids[0] >= BDB_IDL_DB_MAX ) {
+       if ( ids[0] >= BDB_IDL_UM_MAX ) {
                ids[0] = NOID;
        } else {
                ids[ids[0]] = id;
@@ -1325,6 +1325,9 @@ bdb_idl_sort( ID *ids )
        int i;
        ID temp;
 
+       if ( BDB_IDL_IS_RANGE( ids ))
+               return;
+
        for (i = ids[0] / 2; i >= 1; i--)
                siftDown(ids, i, ids[0]);