The Send and Sync traits aren't auto-implemented on the many types which
wrap a raw pointer to some RocksDB struct. Most of these types are
nevertheless safe to use in Send and Sync context, so they should be
marked as such
Reformat code
Extract log_size_for_flush into constant
Fix test nits
Rename Checkpoint to CheckpointBuilder and fix test nit
Add comment to LOG_SIZE_FOR_FLUSH and fix CheckpointBuilder comment
Rename CheckpointBuilder to Checkpoint and create_checkpoint to save_to
Rename save_to to create_checkpoint to be consistent with C API naming
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.
opts.set_disable_data_sync was removed from RocksDB (commit eb912a9),
but our doctest didn't fail because the function opts.set_disable_data_sync
was called in, badly_tuned_for_somebody_elses_disk, was elided by the linker.
Remove this function to ensure the doctest actually exercises the code
path.
This makes it easier for people who are using the try!() macro to convert errors into their own Error type. It isn't possible to diffrentiate between errors raised from RocksDB and other string errors at the moment.
This adds a simple ``Error`` type that wraps ``String``. People using RocksDB can now implement ``impl From<rocksdb::Error> for MyError`` and add custom behaviour for handling RocksDB errors.