Unverified Commit 8dc64d85 authored by qupeng's avatar qupeng Committed by GitHub

compaction filter: add bottommost level (#494)

Signed-off-by: 's avatarqupeng <qupeng@pingcap.com>
parent ca985cef
...@@ -3151,6 +3151,11 @@ unsigned char crocksdb_compactionfiltercontext_is_manual_compaction( ...@@ -3151,6 +3151,11 @@ unsigned char crocksdb_compactionfiltercontext_is_manual_compaction(
return context->rep.is_manual_compaction; return context->rep.is_manual_compaction;
} }
unsigned char crocksdb_compactionfiltercontext_is_bottommost_level(
crocksdb_compactionfiltercontext_t* context) {
return context->rep.is_bottommost_level;
}
crocksdb_compactionfilterfactory_t* crocksdb_compactionfilterfactory_create( crocksdb_compactionfilterfactory_t* crocksdb_compactionfilterfactory_create(
void* state, void (*destructor)(void*), void* state, void (*destructor)(void*),
crocksdb_compactionfilter_t* (*create_compaction_filter)( crocksdb_compactionfilter_t* (*create_compaction_filter)(
......
...@@ -1248,6 +1248,10 @@ extern C_ROCKSDB_LIBRARY_API unsigned char ...@@ -1248,6 +1248,10 @@ extern C_ROCKSDB_LIBRARY_API unsigned char
crocksdb_compactionfiltercontext_is_manual_compaction( crocksdb_compactionfiltercontext_is_manual_compaction(
crocksdb_compactionfiltercontext_t* context); crocksdb_compactionfiltercontext_t* context);
extern C_ROCKSDB_LIBRARY_API unsigned char
crocksdb_compactionfiltercontext_is_bottommost_level(
crocksdb_compactionfiltercontext_t* context);
/* Compaction Filter Factory */ /* Compaction Filter Factory */
extern C_ROCKSDB_LIBRARY_API crocksdb_compactionfilterfactory_t* extern C_ROCKSDB_LIBRARY_API crocksdb_compactionfilterfactory_t*
......
...@@ -1397,6 +1397,9 @@ extern "C" { ...@@ -1397,6 +1397,9 @@ extern "C" {
pub fn crocksdb_compactionfiltercontext_is_manual_compaction( pub fn crocksdb_compactionfiltercontext_is_manual_compaction(
context: *const DBCompactionFilterContext, context: *const DBCompactionFilterContext,
) -> bool; ) -> bool;
pub fn crocksdb_compactionfiltercontext_is_bottommost_level(
context: *const DBCompactionFilterContext,
) -> bool;
// Compaction filter factory // Compaction filter factory
pub fn crocksdb_compactionfilterfactory_create( pub fn crocksdb_compactionfilterfactory_create(
......
...@@ -127,6 +127,11 @@ impl CompactionFilterContext { ...@@ -127,6 +127,11 @@ impl CompactionFilterContext {
let ctx = &self.0 as *const DBCompactionFilterContext; let ctx = &self.0 as *const DBCompactionFilterContext;
unsafe { crocksdb_ffi::crocksdb_compactionfiltercontext_is_manual_compaction(ctx) } unsafe { crocksdb_ffi::crocksdb_compactionfiltercontext_is_manual_compaction(ctx) }
} }
pub fn is_bottommost_level(&self) -> bool {
let ctx = &self.0 as *const DBCompactionFilterContext;
unsafe { crocksdb_ffi::crocksdb_compactionfiltercontext_is_bottommost_level(ctx) }
}
} }
pub trait CompactionFilterFactory { pub trait CompactionFilterFactory {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment