Commit 1e768c1c authored by Howard Chu's avatar Howard Chu
Browse files

ITS#8146 fix mdb_filter_candidates for unindexed attr

Change result of MDB_IDL_ALL() to use the last entryID in the DB
instead of NOID.
parent fc05c63b
......@@ -211,6 +211,31 @@ mdb_filter_candidates(
/* Must not return NULL, otherwise extended filters break */
MDB_IDL_ALL( ids );
}
if ( MDB_IDL_IS_RANGE( ids ) && ids[2] == NOID ) {
struct mdb_info *mdb = (struct mdb_info *) op->o_bd->be_private;
ID last;
if ( mdb->mi_nextid ) {
last = mdb->mi_nextid - 1;
} else {
MDB_cursor *mc;
MDB_val key;
last = 0;
rc = mdb_cursor_open( rtxn, mdb->mi_id2entry, &mc );
if ( !rc ) {
rc = mdb_cursor_get( mc, &key, NULL, MDB_LAST );
if ( !rc )
memcpy( &last, key.mv_data, sizeof( last ));
mdb_cursor_close( mc );
}
}
if ( last ) {
ids[2] = last;
} else {
MDB_IDL_ZERO( ids );
}
}
out:
Debug( LDAP_DEBUG_FILTER,
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment