From 4be57723399574ec9645c4961925e644943a8e88 Mon Sep 17 00:00:00 2001
From: Alexander Regueiro <alexreg@gmail.com>
Date: Fri, 25 Feb 2022 15:44:35 +0000
Subject: [PATCH] Updated API for compatibility with latest rocksdb.

Removed following properties of ColumnFamilyOptions, which have been deprecated for some time. (They cause issues with Cython right now, and will be obsolete in v7 anyway.)

* `soft_rate_limit`
* `hard_rate_limit`
* `rate_limit_delay_max_milliseconds`
* `purge_redundant_kvs_while_flush`
* `skip_log_error_on_recovery`
---
 rocksdb/_rocksdb.pyx | 30 ------------------------------
 rocksdb/backup.pxd   |  3 +++
 2 files changed, 3 insertions(+), 30 deletions(-)

diff --git a/rocksdb/_rocksdb.pyx b/rocksdb/_rocksdb.pyx
index 697651b..9ae4fea 100644
--- a/rocksdb/_rocksdb.pyx
+++ b/rocksdb/_rocksdb.pyx
@@ -1072,24 +1072,6 @@ cdef class ColumnFamilyOptions(object):
         def __set__(self, value):
             self.copts.max_bytes_for_level_multiplier_additional = value
 
-    property soft_rate_limit:
-        def __get__(self):
-            return self.copts.soft_rate_limit
-        def __set__(self, value):
-            self.copts.soft_rate_limit = value
-
-    property hard_rate_limit:
-        def __get__(self):
-            return self.copts.hard_rate_limit
-        def __set__(self, value):
-            self.copts.hard_rate_limit = value
-
-    property rate_limit_delay_max_milliseconds:
-        def __get__(self):
-            return self.copts.rate_limit_delay_max_milliseconds
-        def __set__(self, value):
-            self.copts.rate_limit_delay_max_milliseconds = value
-
     property arena_block_size:
         def __get__(self):
             return self.copts.arena_block_size
@@ -1102,12 +1084,6 @@ cdef class ColumnFamilyOptions(object):
         def __set__(self, value):
             self.copts.disable_auto_compactions = value
 
-    property purge_redundant_kvs_while_flush:
-        def __get__(self):
-            return self.copts.purge_redundant_kvs_while_flush
-        def __set__(self, value):
-            self.copts.purge_redundant_kvs_while_flush = value
-
     # FIXME: remove to util/options_helper.h
     #  property allow_os_buffer:
         #  def __get__(self):
@@ -1455,12 +1431,6 @@ cdef class Options(ColumnFamilyOptions):
         def __set__(self, value):
             self.opts.is_fd_close_on_exec = value
 
-    property skip_log_error_on_recovery:
-        def __get__(self):
-            return self.opts.skip_log_error_on_recovery
-        def __set__(self, value):
-            self.opts.skip_log_error_on_recovery = value
-
     property stats_dump_period_sec:
         def __get__(self):
             return self.opts.stats_dump_period_sec
diff --git a/rocksdb/backup.pxd b/rocksdb/backup.pxd
index 1271c73..9efbb58 100644
--- a/rocksdb/backup.pxd
+++ b/rocksdb/backup.pxd
@@ -9,9 +9,11 @@ from .status cimport Status
 from .db cimport DB
 from .env cimport Env
 
+# TODO: For rocksdb >= 6.21.0, change to `rocksdb/utilities/backup_engine.h`.
 cdef extern from "rocksdb/utilities/backupable_db.h" namespace "rocksdb":
     ctypedef uint32_t BackupID
 
+    # TODO: For rocksdb >= 6.21.0, rename to `BackupEngineOptions`.
     cdef cppclass BackupableDBOptions:
         BackupableDBOptions(const string& backup_dir)
 
@@ -29,6 +31,7 @@ cdef extern from "rocksdb/utilities/backupable_db.h" namespace "rocksdb":
         Status RestoreDBFromBackup(BackupID, string&, string&) nogil except+
         Status RestoreDBFromLatestBackup(string&, string&) nogil except+
 
+    # TODO: For rocksdb >= 6.21.0, swap order of first two parameters.
     cdef Status BackupEngine_Open "rocksdb::BackupEngine::Open"(
             Env*,
             BackupableDBOptions&,
-- 
GitLab