Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions db/c.cc
Original file line number Diff line number Diff line change
Expand Up @@ -4242,6 +4242,15 @@ void rocksdb_set_options(rocksdb_t* db, int count, const char* const keys[],
SaveError(errptr, db->rep->SetOptions(options_map));
}

void rocksdb_set_db_options(rocksdb_t* db, int count, const char* const keys[],
const char* const values[], char** errptr) {
std::unordered_map<std::string, std::string> options_map;
for (int i = 0; i < count; i++) {
options_map[keys[i]] = values[i];
}
SaveError(errptr, db->rep->SetDBOptions(options_map));
}

void rocksdb_set_options_cf(rocksdb_t* db,
rocksdb_column_family_handle_t* handle, int count,
const char* const keys[],
Expand Down
13 changes: 13 additions & 0 deletions db/c_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -948,6 +948,19 @@ int main(int argc, char** argv) {
CheckNoError(err);
CheckGet(db, roptions, "foo", "hello");

StartPhase("set_db_options");
{
const char* keys[] = {"stats_dump_period_sec"};
const char* values[] = {"10"};
rocksdb_set_db_options(db, 1, keys, values, &err);
CheckNoError(err);

keys[0] = "not_a_db_option";
rocksdb_set_db_options(db, 1, keys, values, &err);
CheckCondition(err != NULL);
Free(&err);
}

StartPhase("backup_and_restore");
{
rocksdb_destroy_db(options, dbbackupname, &err);
Expand Down
4 changes: 4 additions & 0 deletions include/rocksdb/c.h
Original file line number Diff line number Diff line change
Expand Up @@ -1426,6 +1426,10 @@ extern ROCKSDB_LIBRARY_API void rocksdb_set_options(rocksdb_t* db, int count,
const char* const values[],
char** errptr);

extern ROCKSDB_LIBRARY_API void rocksdb_set_db_options(
rocksdb_t* db, int count, const char* const keys[],
const char* const values[], char** errptr);

extern ROCKSDB_LIBRARY_API void rocksdb_set_options_cf(
rocksdb_t* db, rocksdb_column_family_handle_t* handle, int count,
const char* const keys[], const char* const values[], char** errptr);
Expand Down
Loading