diff --git a/src/lock_tree/locktree.c b/src/lock_tree/locktree.c index 843934143a7..902fe741e0a 100644 --- a/src/lock_tree/locktree.c +++ b/src/lock_tree/locktree.c @@ -933,7 +933,19 @@ int toku_lt_acquire_range_write_lock(toku_lock_tree* tree, DB_TXN* txn, __toku_lt_is_infinite(key_left)) return EINVAL; if (tree->duplicates && key_right != data_right && __toku_lt_is_infinite(key_right)) return EINVAL; - assert(FALSE); + + toku_point left; + toku_point right; + + __toku_init_point(&left, tree, key_left, data_left); + __toku_init_point(&right, tree, key_right, data_right); + + /* Verify left <= right. */ + if ((key_left != key_right || data_left != data_right) && + __toku_lt_point_cmp(&left, &right) > 0) return EDOM; + + + return ENOSYS; //We are not ready for this. //Not needed for Feb 1 release. } diff --git a/src/lock_tree/locktree.h b/src/lock_tree/locktree.h index 35d2df3d8bb..7c11554d45a 100644 --- a/src/lock_tree/locktree.h +++ b/src/lock_tree/locktree.h @@ -251,6 +251,8 @@ int toku_lt_acquire_write_lock(toku_lock_tree* tree, DB_TXN* txn, * If (key_left, data_left) > (key_right, data_right) or * In a nodup db: if (key_left) > (key_right) * (According to the db's comparison functions. + * ENOSYS: THis is not yet implemented. Till it is, it will return ENOSYS, + * if other errors do not occur first. * Asserts: * The EINVAL and ERANGE cases described will use assert to abort instead of returning errors. * If this library is ever exported to users, we will use error datas instead.