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
13 changes: 13 additions & 0 deletions db/c.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5765,6 +5765,19 @@ void rocksdb_readoptions_set_auto_readahead_size(rocksdb_readoptions_t* opt,
opt->rep.auto_readahead_size = v;
}

void rocksdb_readoptions_set_table_filter(
rocksdb_readoptions_t* opt, void* state,
unsigned char (*table_filter)(void*, const rocksdb_table_properties_t*),
void (*destroy)(void*)) {
std::shared_ptr<void> shared_state(state, destroy ? destroy : [](void*) {});
opt->rep.table_filter = [shared_state,
table_filter](const TableProperties& props) -> bool {
rocksdb_table_properties_t c_props;
c_props.rep = &props;
return table_filter(shared_state.get(), &c_props);
};
}

rocksdb_writeoptions_t* rocksdb_writeoptions_create() {
return new rocksdb_writeoptions_t;
}
Expand Down
5 changes: 5 additions & 0 deletions include/rocksdb/c.h
Original file line number Diff line number Diff line change
Expand Up @@ -2350,6 +2350,11 @@ extern ROCKSDB_LIBRARY_API void rocksdb_readoptions_set_iter_start_ts(
extern ROCKSDB_LIBRARY_API void rocksdb_readoptions_set_auto_readahead_size(
rocksdb_readoptions_t*, unsigned char);

extern ROCKSDB_LIBRARY_API void rocksdb_readoptions_set_table_filter(
rocksdb_readoptions_t*, void* state,
unsigned char (*table_filter)(void*, const rocksdb_table_properties_t*),
void (*destroy)(void*));

/* Write options */

extern ROCKSDB_LIBRARY_API rocksdb_writeoptions_t* rocksdb_writeoptions_create(
Expand Down