Now when you reverse iterate past the last key, it goes backwards from the end.
When you reverse iterate before the first key, you get nothing out.
Note: This is a breaking change if users have come to depend on the old
behavior.
Allow creating both db and column family iterators that are specific to
a key prefix, by setting the `prefix_same_as_start` read option when
creating the iterator.
Currently this only supports `Direction::Forward`, but it'd likely be
trivial to support `Backward` as well, by incrementing the given prefix
by one and seeking to the key before that key.
Adds a new `DB::open_cf_descriptors` method that allows passing in Options for
each column family. A new `ColumnFamilyDescriptor` type was added to contain
the congfiguration for each column family. This fixes an issue where a column
family was created with non-default options, and then fails to re-open due to a
config mismatch.
This as added to make while-loops easy:
while iter.next() {
...
}
But this involves adding a layer of custom logic on top of the RocksDB
API. This is probably a bad idea given that this API is meant to closely
match the underlying iterator API in RocksDB, so this commit changes
that.
The new way to iterate is as follows:
while iter.valid() {
...
iter.next();
}
This solves the following type mismatch error in 32-bit ARM systems.
error[E0308]: mismatched types
key.as_ptr() as *const i8,
^^^^^^^^^^^^^^^^^^^^^^^^^ expected u8, found i8