From b06b19136201356efc516e9a773243059a4d0ff5 Mon Sep 17 00:00:00 2001 From: zhangjinpeng1987 Date: Sat, 10 Sep 2016 01:11:30 +0800 Subject: [PATCH] add C api for set wal_recovery_mode (#1327) * add C api for set wal recovery mode * add test --- db/c.cc | 5 +++++ db/c_test.c | 1 + include/rocksdb/c.h | 9 +++++++++ 3 files changed, 15 insertions(+) diff --git a/db/c.cc b/db/c.cc index 981a097f6..c9d0a2316 100644 --- a/db/c.cc +++ b/db/c.cc @@ -43,6 +43,7 @@ using rocksdb::CompactionFilterContext; using rocksdb::CompactionOptionsFIFO; using rocksdb::Comparator; using rocksdb::CompressionType; +using rocksdb::WALRecoveryMode; using rocksdb::DB; using rocksdb::DBOptions; using rocksdb::Env; @@ -1554,6 +1555,10 @@ void rocksdb_options_set_level0_stop_writes_trigger( void rocksdb_options_set_max_mem_compaction_level(rocksdb_options_t* opt, int n) {} +void rocksdb_options_set_wal_recovery_mode(rocksdb_options_t* opt,int mode) { + opt->rep.wal_recovery_mode = static_cast(mode); +} + void rocksdb_options_set_compression(rocksdb_options_t* opt, int t) { opt->rep.compression = static_cast(t); } diff --git a/db/c_test.c b/db/c_test.c index 7236e01db..7194a843b 100644 --- a/db/c_test.c +++ b/db/c_test.c @@ -575,6 +575,7 @@ int main(int argc, char** argv) { rocksdb_close(db); rocksdb_options_set_create_if_missing(options, 0); rocksdb_options_set_error_if_exists(options, 0); + rocksdb_options_set_wal_recovery_mode(options, 2); rocksdb_repair_db(options, dbname, &err); CheckNoError(err); db = rocksdb_open(options, dbname, &err); diff --git a/include/rocksdb/c.h b/include/rocksdb/c.h index f22dc049b..899ad1c17 100644 --- a/include/rocksdb/c.h +++ b/include/rocksdb/c.h @@ -690,6 +690,15 @@ extern ROCKSDB_LIBRARY_API void rocksdb_options_set_inplace_update_num_locks( extern ROCKSDB_LIBRARY_API void rocksdb_options_set_report_bg_io_stats( rocksdb_options_t*, int); +enum { + rocksdb_tolerate_corrupted_tail_records_recovery = 0, + rocksdb_absolute_consistency_recovery = 1, + rocksdb_point_in_time_recovery = 2, + rocksdb_skip_any_corrupted_records_recovery = 3 +}; +extern ROCKSDB_LIBRARY_API void rocksdb_options_set_wal_recovery_mode( + rocksdb_options_t*, int); + enum { rocksdb_no_compression = 0, rocksdb_snappy_compression = 1,