add sstfilewriter_delete_range (#10314)

Summary:
I add C API
db/c.cc
rocksdb_sstfilewriter_delete_range

and test it , PASS.
 can you review it ? ajkr

Pull Request resolved: https://github.com/facebook/rocksdb/pull/10314

Reviewed By: riversand963

Differential Revision: D37657236

Pulled By: ajkr

fbshipit-source-id: c3b758daa36fbd9133210b011716914dff311278
main
sg20180546 2 years ago committed by Facebook GitHub Bot
parent 95ef007adc
commit f5ef36a29a
  1. 9
      db/c.cc
  2. 15
      db/c_test.c
  3. 4
      include/rocksdb/c.h

@ -4899,6 +4899,15 @@ void rocksdb_sstfilewriter_delete_with_ts(rocksdb_sstfilewriter_t* writer,
SaveError(errptr, writer->rep->Delete(Slice(key, keylen), Slice(ts, tslen)));
}
void rocksdb_sstfilewriter_delete_range(rocksdb_sstfilewriter_t* writer,
const char* begin_key,
size_t begin_keylen,
const char* end_key, size_t end_keylen,
char** errptr) {
SaveError(errptr, writer->rep->DeleteRange(Slice(begin_key, begin_keylen),
Slice(end_key, end_keylen)));
}
void rocksdb_sstfilewriter_finish(rocksdb_sstfilewriter_t* writer,
char** errptr) {
SaveError(errptr, writer->rep->Finish(nullptr));

@ -905,6 +905,21 @@ int main(int argc, char** argv) {
CheckGet(db, roptions, "sstk22", "v5");
CheckGet(db, roptions, "sstk3", "v6");
rocksdb_sstfilewriter_open(writer, sstfilename, &err);
CheckNoError(err);
rocksdb_sstfilewriter_put(writer, "abc1", 4, "v7", 2, &err);
CheckNoError(err);
rocksdb_sstfilewriter_put(writer, "abc2", 4, "v8", 2, &err);
CheckNoError(err);
rocksdb_sstfilewriter_put(writer, "abc3", 4, "v9", 2, &err);
CheckNoError(err);
rocksdb_sstfilewriter_put(writer, "abc4", 4, "v10", 3, &err);
CheckNoError(err);
rocksdb_sstfilewriter_delete_range(writer, "abc1", 4, "abc4", 4, &err);
CheckNoError(err);
rocksdb_sstfilewriter_finish(writer, &err);
CheckNoError(err);
rocksdb_ingestexternalfileoptions_destroy(ing_opt);
rocksdb_sstfilewriter_destroy(writer);
rocksdb_options_destroy(io_options);

@ -2061,13 +2061,15 @@ extern ROCKSDB_LIBRARY_API void rocksdb_sstfilewriter_delete(
extern ROCKSDB_LIBRARY_API void rocksdb_sstfilewriter_delete_with_ts(
rocksdb_sstfilewriter_t* writer, const char* key, size_t keylen,
const char* ts, size_t tslen, char** errptr);
extern ROCKSDB_LIBRARY_API void rocksdb_sstfilewriter_delete_range(
rocksdb_sstfilewriter_t* writer, const char* begin_key, size_t begin_keylen,
const char* end_key, size_t end_keylen, char** errptr);
extern ROCKSDB_LIBRARY_API void rocksdb_sstfilewriter_finish(
rocksdb_sstfilewriter_t* writer, char** errptr);
extern ROCKSDB_LIBRARY_API void rocksdb_sstfilewriter_file_size(
rocksdb_sstfilewriter_t* writer, uint64_t* file_size);
extern ROCKSDB_LIBRARY_API void rocksdb_sstfilewriter_destroy(
rocksdb_sstfilewriter_t* writer);
extern ROCKSDB_LIBRARY_API rocksdb_ingestexternalfileoptions_t*
rocksdb_ingestexternalfileoptions_create(void);
extern ROCKSDB_LIBRARY_API void

Loading…
Cancel
Save