Skip to content

Commit

Permalink
feat(c-api): checkpoint_create - return sequence number
Browse files Browse the repository at this point in the history
  • Loading branch information
ovr committed Oct 9, 2023
1 parent 21a1236 commit 435f19f
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 4 deletions.
8 changes: 6 additions & 2 deletions db/c.cc
Original file line number Diff line number Diff line change
Expand Up @@ -849,11 +849,15 @@ rocksdb_checkpoint_t* rocksdb_checkpoint_object_create(rocksdb_t* db,
return result;
}

void rocksdb_checkpoint_create(rocksdb_checkpoint_t* checkpoint,
uint64_t rocksdb_checkpoint_create(rocksdb_checkpoint_t* checkpoint,
const char* checkpoint_dir,
uint64_t log_size_for_flush, char** errptr) {
uint64_t* sequence_number_ptr = nullptr;

SaveError(errptr, checkpoint->rep->CreateCheckpoint(
std::string(checkpoint_dir), log_size_for_flush));
std::string(checkpoint_dir), log_size_for_flush, sequence_number_ptr));

return sequence_number_ptr ? *sequence_number_ptr : 0;
}

void rocksdb_checkpoint_object_destroy(rocksdb_checkpoint_t* checkpoint) {
Expand Down
3 changes: 2 additions & 1 deletion db/c_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -814,8 +814,9 @@ int main(int argc, char** argv) {
rocksdb_checkpoint_object_create(db, &err);
CheckNoError(err);

rocksdb_checkpoint_create(checkpoint, dbcheckpointname, 0, &err);
uint64_t checkpoint_sequence_number = rocksdb_checkpoint_create(checkpoint, dbcheckpointname, 0, &err);
CheckNoError(err);
CheckCondition(checkpoint_sequence_number > 0);

// start a new database from the checkpoint
rocksdb_close(db);
Expand Down
2 changes: 1 addition & 1 deletion include/rocksdb/c.h
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,7 @@ extern ROCKSDB_LIBRARY_API void rocksdb_backup_engine_options_destroy(
extern ROCKSDB_LIBRARY_API rocksdb_checkpoint_t*
rocksdb_checkpoint_object_create(rocksdb_t* db, char** errptr);

extern ROCKSDB_LIBRARY_API void rocksdb_checkpoint_create(
extern ROCKSDB_LIBRARY_API uint64_t rocksdb_checkpoint_create(
rocksdb_checkpoint_t* checkpoint, const char* checkpoint_dir,
uint64_t log_size_for_flush, char** errptr);

Expand Down

0 comments on commit 435f19f

Please sign in to comment.