]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/rocksdb/java/rocksjni/rocksjni.cc
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / rocksdb / java / rocksjni / rocksjni.cc
index f39a75e6a84ddd758feaa5501eb517e4de0e9a2a..6e50c32f7ac9971e56818a34d649b2ffa2eea267 100644 (file)
@@ -1,7 +1,7 @@
 // Copyright (c) 2011-present, Facebook, Inc.  All rights reserved.
-// This source code is licensed under the BSD-style license found in the
-// LICENSE file in the root directory of this source tree. An additional grant
-// of patent rights can be found in the PATENTS file in the same directory.
+//  This source code is licensed under both the GPLv2 (found in the
+//  COPYING file in the root directory) and Apache 2.0 License
+//  (found in the LICENSE.Apache file in the root directory).
 //
 // This file implements the "bridge" between Java and C++ and enables
 // calling c++ rocksdb::DB methods from Java side.
 
 //////////////////////////////////////////////////////////////////////////////
 // rocksdb::DB::Open
-jlong rocksdb_open_helper(JNIEnv* env, jlong jopt_handle, jstring jdb_path,
-    std::function<rocksdb::Status(
-      const rocksdb::Options&, const std::string&, rocksdb::DB**)> open_fn
-    ) {
+jlong rocksdb_open_helper(
+    JNIEnv* env, jlong jopt_handle, jstring jdb_path,
+    std::function<rocksdb::Status(const rocksdb::Options&, const std::string&,
+                                  rocksdb::DB**)>
+        open_fn) {
   const char* db_path = env->GetStringUTFChars(jdb_path, nullptr);
-  if(db_path == nullptr) {
+  if (db_path == nullptr) {
     // exception thrown: OutOfMemoryError
     return 0;
   }
@@ -58,13 +59,15 @@ jlong rocksdb_open_helper(JNIEnv* env, jlong jopt_handle, jstring jdb_path,
  * Method:    open
  * Signature: (JLjava/lang/String;)J
  */
-jlong Java_org_rocksdb_RocksDB_open__JLjava_lang_String_2(
-    JNIEnv* env, jclass jcls, jlong jopt_handle, jstring jdb_path) {
-  return rocksdb_open_helper(env, jopt_handle, jdb_path,
-    (rocksdb::Status(*)
-      (const rocksdb::Options&, const std::string&, rocksdb::DB**)
-    )&rocksdb::DB::Open
-  );
+jlong Java_org_rocksdb_RocksDB_open__JLjava_lang_String_2(JNIEnv* env,
+                                                          jclass /*jcls*/,
+                                                          jlong jopt_handle,
+                                                          jstring jdb_path) {
+  return rocksdb_open_helper(
+      env, jopt_handle, jdb_path,
+      (rocksdb::Status(*)(const rocksdb::Options&, const std::string&,
+                          rocksdb::DB**)) &
+          rocksdb::DB::Open);
 }
 
 /*
@@ -73,31 +76,32 @@ jlong Java_org_rocksdb_RocksDB_open__JLjava_lang_String_2(
  * Signature: (JLjava/lang/String;)J
  */
 jlong Java_org_rocksdb_RocksDB_openROnly__JLjava_lang_String_2(
-    JNIEnv* env, jclass jcls, jlong jopt_handle, jstring jdb_path) {
-  return rocksdb_open_helper(env, jopt_handle, jdb_path, [](
-      const rocksdb::Options& options,
-      const std::string& db_path, rocksdb::DB** db) {
-    return rocksdb::DB::OpenForReadOnly(options, db_path, db);
-  });
+    JNIEnv* env, jclass /*jcls*/, jlong jopt_handle, jstring jdb_path) {
+  return rocksdb_open_helper(env, jopt_handle, jdb_path,
+                             [](const rocksdb::Options& options,
+                                const std::string& db_path, rocksdb::DB** db) {
+                               return rocksdb::DB::OpenForReadOnly(options,
+                                                                   db_path, db);
+                             });
 }
 
-jlongArray rocksdb_open_helper(JNIEnv* env, jlong jopt_handle,
-    jstring jdb_path, jobjectArray jcolumn_names, jlongArray jcolumn_options,
+jlongArray rocksdb_open_helper(
+    JNIEnv* env, jlong jopt_handle, jstring jdb_path,
+    jobjectArray jcolumn_names, jlongArray jcolumn_options,
     std::function<rocksdb::Status(
-      const rocksdb::DBOptions&, const std::string&,
-      const std::vector<rocksdb::ColumnFamilyDescriptor>&,
-      std::vector<rocksdb::ColumnFamilyHandle*>*,
-      rocksdb::DB**)> open_fn
-    ) {
+        const rocksdb::DBOptions&, const std::string&,
+        const std::vector<rocksdb::ColumnFamilyDescriptor>&,
+        std::vector<rocksdb::ColumnFamilyHandle*>*, rocksdb::DB**)>
+        open_fn) {
   const char* db_path = env->GetStringUTFChars(jdb_path, nullptr);
-  if(db_path == nullptr) {
+  if (db_path == nullptr) {
     // exception thrown: OutOfMemoryError
     return nullptr;
   }
 
   const jsize len_cols = env->GetArrayLength(jcolumn_names);
   jlong* jco = env->GetLongArrayElements(jcolumn_options, nullptr);
-  if(jco == nullptr) {
+  if (jco == nullptr) {
     // exception thrown: OutOfMemoryError
     env->ReleaseStringUTFChars(jdb_path, db_path);
     return nullptr;
@@ -106,23 +110,22 @@ jlongArray rocksdb_open_helper(JNIEnv* env, jlong jopt_handle,
   std::vector<rocksdb::ColumnFamilyDescriptor> column_families;
   jboolean has_exception = JNI_FALSE;
   rocksdb::JniUtil::byteStrings<std::string>(
-    env,
-    jcolumn_names,
-    [](const char* str_data, const size_t str_len) {
-      return std::string(str_data, str_len);
-    },
-    [&jco, &column_families](size_t idx, std::string cf_name) {
-      rocksdb::ColumnFamilyOptions* cf_options =
-          reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jco[idx]);
-      column_families.push_back(
-          rocksdb::ColumnFamilyDescriptor(cf_name, *cf_options));
-    },
-    &has_exception);
+      env, jcolumn_names,
+      [](const char* str_data, const size_t str_len) {
+        return std::string(str_data, str_len);
+      },
+      [&jco, &column_families](size_t idx, std::string cf_name) {
+        rocksdb::ColumnFamilyOptions* cf_options =
+            reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jco[idx]);
+        column_families.push_back(
+            rocksdb::ColumnFamilyDescriptor(cf_name, *cf_options));
+      },
+      &has_exception);
 
   env->ReleaseLongArrayElements(jcolumn_options, jco, JNI_ABORT);
 
-  if(has_exception == JNI_TRUE) {
-    // exception occured
+  if (has_exception == JNI_TRUE) {
+    // exception occurred
     env->ReleaseStringUTFChars(jdb_path, db_path);
     return nullptr;
   }
@@ -130,30 +133,29 @@ jlongArray rocksdb_open_helper(JNIEnv* env, jlong jopt_handle,
   auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jopt_handle);
   std::vector<rocksdb::ColumnFamilyHandle*> handles;
   rocksdb::DB* db = nullptr;
-  rocksdb::Status s = open_fn(*opt, db_path, column_families,
-      &handles, &db);
+  rocksdb::Status s = open_fn(*opt, db_path, column_families, &handles, &db);
 
   // we have now finished with db_path
   env->ReleaseStringUTFChars(jdb_path, db_path);
 
   // check if open operation was successful
   if (s.ok()) {
-    const jsize resultsLen = 1 + len_cols; //db handle + column family handles
+    const jsize resultsLen = 1 + len_cols;  // db handle + column family handles
     std::unique_ptr<jlong[]> results =
         std::unique_ptr<jlong[]>(new jlong[resultsLen]);
     results[0] = reinterpret_cast<jlong>(db);
-    for(int i = 1; i <= len_cols; i++) {
+    for (int i = 1; i <= len_cols; i++) {
       results[i] = reinterpret_cast<jlong>(handles[i - 1]);
     }
 
     jlongArray jresults = env->NewLongArray(resultsLen);
-    if(jresults == nullptr) {
+    if (jresults == nullptr) {
       // exception thrown: OutOfMemoryError
       return nullptr;
     }
 
     env->SetLongArrayRegion(jresults, 0, resultsLen, results.get());
-    if(env->ExceptionCheck()) {
+    if (env->ExceptionCheck()) {
       // exception thrown: ArrayIndexOutOfBoundsException
       env->DeleteLocalRef(jresults);
       return nullptr;
@@ -172,16 +174,16 @@ jlongArray rocksdb_open_helper(JNIEnv* env, jlong jopt_handle,
  * Signature: (JLjava/lang/String;[[B[J)[J
  */
 jlongArray Java_org_rocksdb_RocksDB_openROnly__JLjava_lang_String_2_3_3B_3J(
-    JNIEnv* env, jclass jcls, jlong jopt_handle, jstring jdb_path,
+    JNIEnv* env, jclass /*jcls*/, jlong jopt_handle, jstring jdb_path,
     jobjectArray jcolumn_names, jlongArray jcolumn_options) {
-  return rocksdb_open_helper(env, jopt_handle, jdb_path, jcolumn_names,
-    jcolumn_options, [](
-        const rocksdb::DBOptions& options, const std::string& db_path,
-        const std::vector<rocksdb::ColumnFamilyDescriptor>& column_families,
-        std::vector<rocksdb::ColumnFamilyHandle*>* handles, rocksdb::DB** db) {
-      return rocksdb::DB::OpenForReadOnly(options, db_path, column_families,
-        handles, db);
-  });
+  return rocksdb_open_helper(
+      env, jopt_handle, jdb_path, jcolumn_names, jcolumn_options,
+      [](const rocksdb::DBOptions& options, const std::string& db_path,
+         const std::vector<rocksdb::ColumnFamilyDescriptor>& column_families,
+         std::vector<rocksdb::ColumnFamilyHandle*>* handles, rocksdb::DB** db) {
+        return rocksdb::DB::OpenForReadOnly(options, db_path, column_families,
+                                            handles, db);
+      });
 }
 
 /*
@@ -190,15 +192,15 @@ jlongArray Java_org_rocksdb_RocksDB_openROnly__JLjava_lang_String_2_3_3B_3J(
  * Signature: (JLjava/lang/String;[[B[J)[J
  */
 jlongArray Java_org_rocksdb_RocksDB_open__JLjava_lang_String_2_3_3B_3J(
-    JNIEnv* env, jclass jcls, jlong jopt_handle, jstring jdb_path,
+    JNIEnv* env, jclass /*jcls*/, jlong jopt_handle, jstring jdb_path,
     jobjectArray jcolumn_names, jlongArray jcolumn_options) {
-  return rocksdb_open_helper(env, jopt_handle, jdb_path, jcolumn_names,
-    jcolumn_options, (rocksdb::Status(*)
-      (const rocksdb::DBOptions&, const std::string&,
-        const std::vector<rocksdb::ColumnFamilyDescriptor>&,
-        std::vector<rocksdb::ColumnFamilyHandle*>*, rocksdb::DB**)
-      )&rocksdb::DB::Open
-    );
+  return rocksdb_open_helper(
+      env, jopt_handle, jdb_path, jcolumn_names, jcolumn_options,
+      (rocksdb::Status(*)(const rocksdb::DBOptions&, const std::string&,
+                          const std::vector<rocksdb::ColumnFamilyDescriptor>&,
+                          std::vector<rocksdb::ColumnFamilyHandle*>*,
+                          rocksdb::DB**)) &
+          rocksdb::DB::Open);
 }
 
 //////////////////////////////////////////////////////////////////////////////
@@ -209,18 +211,20 @@ jlongArray Java_org_rocksdb_RocksDB_open__JLjava_lang_String_2_3_3B_3J(
  * Method:    listColumnFamilies
  * Signature: (JLjava/lang/String;)[[B
  */
-jobjectArray Java_org_rocksdb_RocksDB_listColumnFamilies(
-    JNIEnv* env, jclass jclazz, jlong jopt_handle, jstring jdb_path) {
+jobjectArray Java_org_rocksdb_RocksDB_listColumnFamilies(JNIEnv* env,
+                                                         jclass /*jclazz*/,
+                                                         jlong jopt_handle,
+                                                         jstring jdb_path) {
   std::vector<std::string> column_family_names;
   const char* db_path = env->GetStringUTFChars(jdb_path, nullptr);
-  if(db_path == nullptr) {
+  if (db_path == nullptr) {
     // exception thrown: OutOfMemoryError
     return nullptr;
   }
 
   auto* opt = reinterpret_cast<rocksdb::Options*>(jopt_handle);
-  rocksdb::Status s = rocksdb::DB::ListColumnFamilies(*opt, db_path,
-      &column_family_names);
+  rocksdb::Status s =
+      rocksdb::DB::ListColumnFamilies(*opt, db_path, &column_family_names);
 
   env->ReleaseStringUTFChars(jdb_path, db_path);
 
@@ -243,18 +247,18 @@ bool rocksdb_put_helper(JNIEnv* env, rocksdb::DB* db,
                         jint jval_off, jint jval_len) {
   jbyte* key = new jbyte[jkey_len];
   env->GetByteArrayRegion(jkey, jkey_off, jkey_len, key);
-  if(env->ExceptionCheck()) {
+  if (env->ExceptionCheck()) {
     // exception thrown: ArrayIndexOutOfBoundsException
-    delete [] key;
+    delete[] key;
     return false;
   }
 
   jbyte* value = new jbyte[jval_len];
   env->GetByteArrayRegion(jval, jval_off, jval_len, value);
-  if(env->ExceptionCheck()) {
+  if (env->ExceptionCheck()) {
     // exception thrown: ArrayIndexOutOfBoundsException
-    delete [] value;
-    delete [] key;
+    delete[] value;
+    delete[] key;
     return false;
   }
 
@@ -270,8 +274,8 @@ bool rocksdb_put_helper(JNIEnv* env, rocksdb::DB* db,
   }
 
   // cleanup
-  delete [] value;
-  delete [] key;
+  delete[] value;
+  delete[] key;
 
   if (s.ok()) {
     return true;
@@ -286,7 +290,7 @@ bool rocksdb_put_helper(JNIEnv* env, rocksdb::DB* db,
  * Method:    put
  * Signature: (J[BII[BII)V
  */
-void Java_org_rocksdb_RocksDB_put__J_3BII_3BII(JNIEnv* env, jobject jdb,
+void Java_org_rocksdb_RocksDB_put__J_3BII_3BII(JNIEnv* env, jobject /*jdb*/,
                                                jlong jdb_handle,
                                                jbyteArray jkey, jint jkey_off,
                                                jint jkey_len, jbyteArray jval,
@@ -304,7 +308,7 @@ void Java_org_rocksdb_RocksDB_put__J_3BII_3BII(JNIEnv* env, jobject jdb,
  * Method:    put
  * Signature: (J[BII[BIIJ)V
  */
-void Java_org_rocksdb_RocksDB_put__J_3BII_3BIIJ(JNIEnv* env, jobject jdb,
+void Java_org_rocksdb_RocksDB_put__J_3BII_3BIIJ(JNIEnv* env, jobject /*jdb*/,
                                                 jlong jdb_handle,
                                                 jbyteArray jkey, jint jkey_off,
                                                 jint jkey_len, jbyteArray jval,
@@ -318,8 +322,8 @@ void Java_org_rocksdb_RocksDB_put__J_3BII_3BIIJ(JNIEnv* env, jobject jdb,
     rocksdb_put_helper(env, db, default_write_options, cf_handle, jkey,
                        jkey_off, jkey_len, jval, jval_off, jval_len);
   } else {
-    rocksdb::RocksDBExceptionJni::ThrowNew(env,
-        rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
+    rocksdb::RocksDBExceptionJni::ThrowNew(
+        env, rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
   }
 }
 
@@ -328,15 +332,15 @@ void Java_org_rocksdb_RocksDB_put__J_3BII_3BIIJ(JNIEnv* env, jobject jdb,
  * Method:    put
  * Signature: (JJ[BII[BII)V
  */
-void Java_org_rocksdb_RocksDB_put__JJ_3BII_3BII(JNIEnv* env, jobject jdb,
+void Java_org_rocksdb_RocksDB_put__JJ_3BII_3BII(JNIEnv* env, jobject /*jdb*/,
                                                 jlong jdb_handle,
                                                 jlong jwrite_options_handle,
                                                 jbyteArray jkey, jint jkey_off,
                                                 jint jkey_len, jbyteArray jval,
                                                 jint jval_off, jint jval_len) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
-  auto* write_options = reinterpret_cast<rocksdb::WriteOptions*>(
-      jwrite_options_handle);
+  auto* write_options =
+      reinterpret_cast<rocksdb::WriteOptions*>(jwrite_options_handle);
 
   rocksdb_put_helper(env, db, *write_options, nullptr, jkey, jkey_off, jkey_len,
                      jval, jval_off, jval_len);
@@ -348,19 +352,19 @@ void Java_org_rocksdb_RocksDB_put__JJ_3BII_3BII(JNIEnv* env, jobject jdb,
  * Signature: (JJ[BII[BIIJ)V
  */
 void Java_org_rocksdb_RocksDB_put__JJ_3BII_3BIIJ(
-    JNIEnv* env, jobject jdb, jlong jdb_handle, jlong jwrite_options_handle,
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jlong jwrite_options_handle,
     jbyteArray jkey, jint jkey_off, jint jkey_len, jbyteArray jval,
     jint jval_off, jint jval_len, jlong jcf_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
-  auto* write_options = reinterpret_cast<rocksdb::WriteOptions*>(
-      jwrite_options_handle);
+  auto* write_options =
+      reinterpret_cast<rocksdb::WriteOptions*>(jwrite_options_handle);
   auto* cf_handle = reinterpret_cast<rocksdb::ColumnFamilyHandle*>(jcf_handle);
   if (cf_handle != nullptr) {
     rocksdb_put_helper(env, db, *write_options, cf_handle, jkey, jkey_off,
                        jkey_len, jval, jval_off, jval_len);
   } else {
-    rocksdb::RocksDBExceptionJni::ThrowNew(env,
-        rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
+    rocksdb::RocksDBExceptionJni::ThrowNew(
+        env, rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
   }
 }
 
@@ -371,12 +375,13 @@ void Java_org_rocksdb_RocksDB_put__JJ_3BII_3BIIJ(
  * Method:    write0
  * Signature: (JJJ)V
  */
-void Java_org_rocksdb_RocksDB_write0(
-    JNIEnv* env, jobject jdb, jlong jdb_handle,
-    jlong jwrite_options_handle, jlong jwb_handle) {
+void Java_org_rocksdb_RocksDB_write0(JNIEnv* env, jobject /*jdb*/,
+                                     jlong jdb_handle,
+                                     jlong jwrite_options_handle,
+                                     jlong jwb_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
-  auto* write_options = reinterpret_cast<rocksdb::WriteOptions*>(
-      jwrite_options_handle);
+  auto* write_options =
+      reinterpret_cast<rocksdb::WriteOptions*>(jwrite_options_handle);
   auto* wb = reinterpret_cast<rocksdb::WriteBatch*>(jwb_handle);
 
   rocksdb::Status s = db->Write(*write_options, wb);
@@ -391,12 +396,13 @@ void Java_org_rocksdb_RocksDB_write0(
  * Method:    write1
  * Signature: (JJJ)V
  */
-void Java_org_rocksdb_RocksDB_write1(
-    JNIEnv* env, jobject jdb, jlong jdb_handle,
-    jlong jwrite_options_handle, jlong jwbwi_handle) {
+void Java_org_rocksdb_RocksDB_write1(JNIEnv* env, jobject /*jdb*/,
+                                     jlong jdb_handle,
+                                     jlong jwrite_options_handle,
+                                     jlong jwbwi_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
-  auto* write_options = reinterpret_cast<rocksdb::WriteOptions*>(
-      jwrite_options_handle);
+  auto* write_options =
+      reinterpret_cast<rocksdb::WriteOptions*>(jwrite_options_handle);
   auto* wbwi = reinterpret_cast<rocksdb::WriteBatchWithIndex*>(jwbwi_handle);
   auto* wb = wbwi->GetWriteBatch();
 
@@ -410,41 +416,39 @@ void Java_org_rocksdb_RocksDB_write1(
 //////////////////////////////////////////////////////////////////////////////
 // rocksdb::DB::KeyMayExist
 jboolean key_may_exist_helper(JNIEnv* env, rocksdb::DB* db,
-    const rocksdb::ReadOptions& read_opt,
-    rocksdb::ColumnFamilyHandle* cf_handle, jbyteArray jkey, jint jkey_off,
-    jint jkey_len, jobject jstring_builder, bool* has_exception) {
-
+                              const rocksdb::ReadOptions& read_opt,
+                              rocksdb::ColumnFamilyHandle* cf_handle,
+                              jbyteArray jkey, jint jkey_off, jint jkey_len,
+                              jobject jstring_builder, bool* has_exception) {
   jbyte* key = new jbyte[jkey_len];
   env->GetByteArrayRegion(jkey, jkey_off, jkey_len, key);
-  if(env->ExceptionCheck()) {
+  if (env->ExceptionCheck()) {
     // exception thrown: ArrayIndexOutOfBoundsException
-    delete [] key;
+    delete[] key;
     *has_exception = true;
     return false;
   }
 
   rocksdb::Slice key_slice(reinterpret_cast<char*>(key), jkey_len);
-  
+
   std::string value;
   bool value_found = false;
   bool keyMayExist;
   if (cf_handle != nullptr) {
-    keyMayExist = db->KeyMayExist(read_opt, cf_handle, key_slice,
-        &value, &value_found);
+    keyMayExist =
+        db->KeyMayExist(read_opt, cf_handle, key_slice, &value, &value_found);
   } else {
-    keyMayExist = db->KeyMayExist(read_opt, key_slice,
-        &value, &value_found);
+    keyMayExist = db->KeyMayExist(read_opt, key_slice, &value, &value_found);
   }
 
   // cleanup
-  delete [] key;
+  delete[] key;
 
   // extract the value
   if (value_found && !value.empty()) {
     jobject jresult_string_builder =
-        rocksdb::StringBuilderJni::append(env, jstring_builder,
-            value.c_str());
-    if(jresult_string_builder == nullptr) {
+        rocksdb::StringBuilderJni::append(env, jstring_builder, value.c_str());
+    if (jresult_string_builder == nullptr) {
       *has_exception = true;
       return false;
     }
@@ -460,12 +464,13 @@ jboolean key_may_exist_helper(JNIEnv* env, rocksdb::DB* db,
  * Signature: (J[BIILjava/lang/StringBuilder;)Z
  */
 jboolean Java_org_rocksdb_RocksDB_keyMayExist__J_3BIILjava_lang_StringBuilder_2(
-    JNIEnv* env, jobject jdb, jlong jdb_handle, jbyteArray jkey, jint jkey_off,
-    jint jkey_len, jobject jstring_builder) {
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jbyteArray jkey,
+    jint jkey_off, jint jkey_len, jobject jstring_builder) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   bool has_exception = false;
-  return key_may_exist_helper(env, db, rocksdb::ReadOptions(),
-      nullptr, jkey, jkey_off, jkey_len, jstring_builder, &has_exception);
+  return key_may_exist_helper(env, db, rocksdb::ReadOptions(), nullptr, jkey,
+                              jkey_off, jkey_len, jstring_builder,
+                              &has_exception);
 }
 
 /*
@@ -473,19 +478,20 @@ jboolean Java_org_rocksdb_RocksDB_keyMayExist__J_3BIILjava_lang_StringBuilder_2(
  * Method:    keyMayExist
  * Signature: (J[BIIJLjava/lang/StringBuilder;)Z
  */
-jboolean Java_org_rocksdb_RocksDB_keyMayExist__J_3BIIJLjava_lang_StringBuilder_2(
-    JNIEnv* env, jobject jdb, jlong jdb_handle, jbyteArray jkey, jint jkey_off,
-    jint jkey_len, jlong jcf_handle, jobject jstring_builder) {
+jboolean
+Java_org_rocksdb_RocksDB_keyMayExist__J_3BIIJLjava_lang_StringBuilder_2(
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jbyteArray jkey,
+    jint jkey_off, jint jkey_len, jlong jcf_handle, jobject jstring_builder) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
-  auto* cf_handle = reinterpret_cast<rocksdb::ColumnFamilyHandle*>(
-      jcf_handle);
+  auto* cf_handle = reinterpret_cast<rocksdb::ColumnFamilyHandle*>(jcf_handle);
   if (cf_handle != nullptr) {
     bool has_exception = false;
-    return key_may_exist_helper(env, db, rocksdb::ReadOptions(),
-        cf_handle, jkey, jkey_off, jkey_len, jstring_builder, &has_exception);
+    return key_may_exist_helper(env, db, rocksdb::ReadOptions(), cf_handle,
+                                jkey, jkey_off, jkey_len, jstring_builder,
+                                &has_exception);
   } else {
-    rocksdb::RocksDBExceptionJni::ThrowNew(env,
-        rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
+    rocksdb::RocksDBExceptionJni::ThrowNew(
+        env, rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
     return true;
   }
 }
@@ -495,15 +501,16 @@ jboolean Java_org_rocksdb_RocksDB_keyMayExist__J_3BIIJLjava_lang_StringBuilder_2
  * Method:    keyMayExist
  * Signature: (JJ[BIILjava/lang/StringBuilder;)Z
  */
-jboolean Java_org_rocksdb_RocksDB_keyMayExist__JJ_3BIILjava_lang_StringBuilder_2(
-    JNIEnv* env, jobject jdb, jlong jdb_handle, jlong jread_options_handle,
+jboolean
+Java_org_rocksdb_RocksDB_keyMayExist__JJ_3BIILjava_lang_StringBuilder_2(
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jlong jread_options_handle,
     jbyteArray jkey, jint jkey_off, jint jkey_len, jobject jstring_builder) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
-  auto& read_options = *reinterpret_cast<rocksdb::ReadOptions*>(
-      jread_options_handle);
+  auto& read_options =
+      *reinterpret_cast<rocksdb::ReadOptions*>(jread_options_handle);
   bool has_exception = false;
-  return key_may_exist_helper(env, db, read_options,
-      nullptr, jkey, jkey_off, jkey_len, jstring_builder, &has_exception);
+  return key_may_exist_helper(env, db, read_options, nullptr, jkey, jkey_off,
+                              jkey_len, jstring_builder, &has_exception);
 }
 
 /*
@@ -511,22 +518,23 @@ jboolean Java_org_rocksdb_RocksDB_keyMayExist__JJ_3BIILjava_lang_StringBuilder_2
  * Method:    keyMayExist
  * Signature: (JJ[BIIJLjava/lang/StringBuilder;)Z
  */
-jboolean Java_org_rocksdb_RocksDB_keyMayExist__JJ_3BIIJLjava_lang_StringBuilder_2(
-    JNIEnv* env, jobject jdb, jlong jdb_handle, jlong jread_options_handle,
+jboolean
+Java_org_rocksdb_RocksDB_keyMayExist__JJ_3BIIJLjava_lang_StringBuilder_2(
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jlong jread_options_handle,
     jbyteArray jkey, jint jkey_off, jint jkey_len, jlong jcf_handle,
     jobject jstring_builder) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
-  auto& read_options = *reinterpret_cast<rocksdb::ReadOptions*>(
-      jread_options_handle);
-  auto* cf_handle = reinterpret_cast<rocksdb::ColumnFamilyHandle*>(
-      jcf_handle);
+  auto& read_options =
+      *reinterpret_cast<rocksdb::ReadOptions*>(jread_options_handle);
+  auto* cf_handle = reinterpret_cast<rocksdb::ColumnFamilyHandle*>(jcf_handle);
   if (cf_handle != nullptr) {
     bool has_exception = false;
-    return key_may_exist_helper(env, db, read_options, cf_handle,
-        jkey, jkey_off, jkey_len, jstring_builder, &has_exception);
+    return key_may_exist_helper(env, db, read_options, cf_handle, jkey,
+                                jkey_off, jkey_len, jstring_builder,
+                                &has_exception);
   } else {
-    rocksdb::RocksDBExceptionJni::ThrowNew(env,
-        rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
+    rocksdb::RocksDBExceptionJni::ThrowNew(
+        env, rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
     return true;
   }
 }
@@ -534,21 +542,19 @@ jboolean Java_org_rocksdb_RocksDB_keyMayExist__JJ_3BIIJLjava_lang_StringBuilder_
 //////////////////////////////////////////////////////////////////////////////
 // rocksdb::DB::Get
 
-jbyteArray rocksdb_get_helper(
-    JNIEnv* env, rocksdb::DB* db, const rocksdb::ReadOptions& read_opt,
-    rocksdb::ColumnFamilyHandle* column_family_handle, jbyteArray jkey,
-    jint jkey_off, jint jkey_len) {
-
+jbyteArray rocksdb_get_helper(JNIEnv* env, rocksdb::DB* db,
+                              const rocksdb::ReadOptions& read_opt,
+                              rocksdb::ColumnFamilyHandle* column_family_handle,
+                              jbyteArray jkey, jint jkey_off, jint jkey_len) {
   jbyte* key = new jbyte[jkey_len];
   env->GetByteArrayRegion(jkey, jkey_off, jkey_len, key);
-  if(env->ExceptionCheck()) {
+  if (env->ExceptionCheck()) {
     // exception thrown: ArrayIndexOutOfBoundsException
-    delete [] key;
+    delete[] key;
     return nullptr;
   }
 
-  rocksdb::Slice key_slice(
-      reinterpret_cast<char*>(key), jkey_len);
+  rocksdb::Slice key_slice(reinterpret_cast<char*>(key), jkey_len);
 
   std::string value;
   rocksdb::Status s;
@@ -560,7 +566,7 @@ jbyteArray rocksdb_get_helper(
   }
 
   // cleanup
-  delete [] key;
+  delete[] key;
 
   if (s.IsNotFound()) {
     return nullptr;
@@ -568,7 +574,7 @@ jbyteArray rocksdb_get_helper(
 
   if (s.ok()) {
     jbyteArray jret_value = rocksdb::JniUtil::copyBytes(env, value);
-    if(jret_value == nullptr) {
+    if (jret_value == nullptr) {
       // exception occurred
       return nullptr;
     }
@@ -584,13 +590,13 @@ jbyteArray rocksdb_get_helper(
  * Method:    get
  * Signature: (J[BII)[B
  */
-jbyteArray Java_org_rocksdb_RocksDB_get__J_3BII(
-    JNIEnv* env, jobject jdb, jlong jdb_handle,
-    jbyteArray jkey, jint jkey_off, jint jkey_len) {
-  return rocksdb_get_helper(env,
-      reinterpret_cast<rocksdb::DB*>(jdb_handle),
-      rocksdb::ReadOptions(), nullptr,
-      jkey, jkey_off, jkey_len);
+jbyteArray Java_org_rocksdb_RocksDB_get__J_3BII(JNIEnv* env, jobject /*jdb*/,
+                                                jlong jdb_handle,
+                                                jbyteArray jkey, jint jkey_off,
+                                                jint jkey_len) {
+  return rocksdb_get_helper(env, reinterpret_cast<rocksdb::DB*>(jdb_handle),
+                            rocksdb::ReadOptions(), nullptr, jkey, jkey_off,
+                            jkey_len);
 }
 
 /*
@@ -598,17 +604,19 @@ jbyteArray Java_org_rocksdb_RocksDB_get__J_3BII(
  * Method:    get
  * Signature: (J[BIIJ)[B
  */
-jbyteArray Java_org_rocksdb_RocksDB_get__J_3BIIJ(
-    JNIEnv* env, jobject jdb, jlong jdb_handle,
-    jbyteArray jkey, jint jkey_off, jint jkey_len, jlong jcf_handle) {
+jbyteArray Java_org_rocksdb_RocksDB_get__J_3BIIJ(JNIEnv* env, jobject /*jdb*/,
+                                                 jlong jdb_handle,
+                                                 jbyteArray jkey, jint jkey_off,
+                                                 jint jkey_len,
+                                                 jlong jcf_handle) {
   auto db_handle = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   auto cf_handle = reinterpret_cast<rocksdb::ColumnFamilyHandle*>(jcf_handle);
   if (cf_handle != nullptr) {
-    return rocksdb_get_helper(env, db_handle, rocksdb::ReadOptions(),
-        cf_handle, jkey, jkey_off, jkey_len);
+    return rocksdb_get_helper(env, db_handle, rocksdb::ReadOptions(), cf_handle,
+                              jkey, jkey_off, jkey_len);
   } else {
-    rocksdb::RocksDBExceptionJni::ThrowNew(env,
-        rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
+    rocksdb::RocksDBExceptionJni::ThrowNew(
+        env, rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
     return nullptr;
   }
 }
@@ -618,13 +626,15 @@ jbyteArray Java_org_rocksdb_RocksDB_get__J_3BIIJ(
  * Method:    get
  * Signature: (JJ[BII)[B
  */
-jbyteArray Java_org_rocksdb_RocksDB_get__JJ_3BII(
-    JNIEnv* env, jobject jdb, jlong jdb_handle, jlong jropt_handle,
-    jbyteArray jkey, jint jkey_off, jint jkey_len) {
-  return rocksdb_get_helper(env,
-      reinterpret_cast<rocksdb::DB*>(jdb_handle),
-      *reinterpret_cast<rocksdb::ReadOptions*>(jropt_handle), nullptr,
-      jkey, jkey_off, jkey_len);
+jbyteArray Java_org_rocksdb_RocksDB_get__JJ_3BII(JNIEnv* env, jobject /*jdb*/,
+                                                 jlong jdb_handle,
+                                                 jlong jropt_handle,
+                                                 jbyteArray jkey, jint jkey_off,
+                                                 jint jkey_len) {
+  return rocksdb_get_helper(
+      env, reinterpret_cast<rocksdb::DB*>(jdb_handle),
+      *reinterpret_cast<rocksdb::ReadOptions*>(jropt_handle), nullptr, jkey,
+      jkey_off, jkey_len);
 }
 
 /*
@@ -633,17 +643,17 @@ jbyteArray Java_org_rocksdb_RocksDB_get__JJ_3BII(
  * Signature: (JJ[BIIJ)[B
  */
 jbyteArray Java_org_rocksdb_RocksDB_get__JJ_3BIIJ(
-    JNIEnv* env, jobject jdb, jlong jdb_handle, jlong jropt_handle,
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jlong jropt_handle,
     jbyteArray jkey, jint jkey_off, jint jkey_len, jlong jcf_handle) {
   auto* db_handle = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   auto& ro_opt = *reinterpret_cast<rocksdb::ReadOptions*>(jropt_handle);
   auto* cf_handle = reinterpret_cast<rocksdb::ColumnFamilyHandle*>(jcf_handle);
   if (cf_handle != nullptr) {
-    return rocksdb_get_helper(env, db_handle, ro_opt, cf_handle,
-        jkey, jkey_off, jkey_len);
+    return rocksdb_get_helper(env, db_handle, ro_opt, cf_handle, jkey, jkey_off,
+                              jkey_len);
   } else {
-    rocksdb::RocksDBExceptionJni::ThrowNew(env,
-        rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
+    rocksdb::RocksDBExceptionJni::ThrowNew(
+        env, rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
     return nullptr;
   }
 }
@@ -659,9 +669,9 @@ jint rocksdb_get_helper(JNIEnv* env, rocksdb::DB* db,
 
   jbyte* key = new jbyte[jkey_len];
   env->GetByteArrayRegion(jkey, jkey_off, jkey_len, key);
-  if(env->ExceptionCheck()) {
+  if (env->ExceptionCheck()) {
     // exception thrown: OutOfMemoryError
-    delete [] key;
+    delete[] key;
     *has_exception = true;
     return kStatusError;
   }
@@ -679,7 +689,7 @@ jint rocksdb_get_helper(JNIEnv* env, rocksdb::DB* db,
   }
 
   // cleanup
-  delete [] key;
+  delete[] key;
 
   if (s.IsNotFound()) {
     *has_exception = false;
@@ -701,9 +711,10 @@ jint rocksdb_get_helper(JNIEnv* env, rocksdb::DB* db,
   const jint cvalue_len = static_cast<jint>(cvalue.size());
   const jint length = std::min(jval_len, cvalue_len);
 
-  env->SetByteArrayRegion(jval, jval_off, length,
-                          const_cast<jbyte*>(reinterpret_cast<const jbyte*>(cvalue.c_str())));
-  if(env->ExceptionCheck()) {
+  env->SetByteArrayRegion(
+      jval, jval_off, length,
+      const_cast<jbyte*>(reinterpret_cast<const jbyte*>(cvalue.c_str())));
+  if (env->ExceptionCheck()) {
     // exception thrown: OutOfMemoryError
     *has_exception = true;
     return kStatusError;
@@ -713,11 +724,11 @@ jint rocksdb_get_helper(JNIEnv* env, rocksdb::DB* db,
   return cvalue_len;
 }
 
-inline void multi_get_helper_release_keys(JNIEnv* env,
-    std::vector<std::pair<jbyte*, jobject>> &keys_to_free) {
+inline void multi_get_helper_release_keys(
+    JNIEnv* env, std::vector<std::pair<jbyte*, jobject>>& keys_to_free) {
   auto end = keys_to_free.end();
   for (auto it = keys_to_free.begin(); it != end; ++it) {
-    delete [] it->first;
+    delete[] it->first;
     env->DeleteLocalRef(it->second);
   }
   keys_to_free.clear();
@@ -727,24 +738,24 @@ inline void multi_get_helper_release_keys(JNIEnv* env,
  * cf multi get
  *
  * @return byte[][] of values or nullptr if an exception occurs
- */ 
-jobjectArray multi_get_helper(JNIEnv* env, jobject jdb, rocksdb::DB* db,
-    const rocksdb::ReadOptions& rOpt, jobjectArray jkeys,
-    jintArray jkey_offs, jintArray jkey_lens,
-    jlongArray jcolumn_family_handles) {
+ */
+jobjectArray multi_get_helper(JNIEnv* env, jobject /*jdb*/, rocksdb::DB* db,
+                              const rocksdb::ReadOptions& rOpt,
+                              jobjectArray jkeys, jintArray jkey_offs,
+                              jintArray jkey_lens,
+                              jlongArray jcolumn_family_handles) {
   std::vector<rocksdb::ColumnFamilyHandle*> cf_handles;
   if (jcolumn_family_handles != nullptr) {
     const jsize len_cols = env->GetArrayLength(jcolumn_family_handles);
 
     jlong* jcfh = env->GetLongArrayElements(jcolumn_family_handles, nullptr);
-    if(jcfh == nullptr) {
+    if (jcfh == nullptr) {
       // exception thrown: OutOfMemoryError
       return nullptr;
     }
 
     for (jsize i = 0; i < len_cols; i++) {
-      auto* cf_handle =
-          reinterpret_cast<rocksdb::ColumnFamilyHandle*>(jcfh[i]);
+      auto* cf_handle = reinterpret_cast<rocksdb::ColumnFamilyHandle*>(jcfh[i]);
       cf_handles.push_back(cf_handle);
     }
     env->ReleaseLongArrayElements(jcolumn_family_handles, jcfh, JNI_ABORT);
@@ -757,13 +768,13 @@ jobjectArray multi_get_helper(JNIEnv* env, jobject jdb, rocksdb::DB* db,
   }
 
   jint* jkey_off = env->GetIntArrayElements(jkey_offs, nullptr);
-  if(jkey_off == nullptr) {
+  if (jkey_off == nullptr) {
     // exception thrown: OutOfMemoryError
     return nullptr;
   }
 
   jint* jkey_len = env->GetIntArrayElements(jkey_lens, nullptr);
-  if(jkey_len == nullptr) {
+  if (jkey_len == nullptr) {
     // exception thrown: OutOfMemoryError
     env->ReleaseIntArrayElements(jkey_offs, jkey_off, JNI_ABORT);
     return nullptr;
@@ -773,7 +784,7 @@ jobjectArray multi_get_helper(JNIEnv* env, jobject jdb, rocksdb::DB* db,
   std::vector<std::pair<jbyte*, jobject>> keys_to_free;
   for (jsize i = 0; i < len_keys; i++) {
     jobject jkey = env->GetObjectArrayElement(jkeys, i);
-    if(env->ExceptionCheck()) {
+    if (env->ExceptionCheck()) {
       // exception thrown: ArrayIndexOutOfBoundsException
       env->ReleaseIntArrayElements(jkey_lens, jkey_len, JNI_ABORT);
       env->ReleaseIntArrayElements(jkey_offs, jkey_off, JNI_ABORT);
@@ -786,9 +797,9 @@ jobjectArray multi_get_helper(JNIEnv* env, jobject jdb, rocksdb::DB* db,
     const jint len_key = jkey_len[i];
     jbyte* key = new jbyte[len_key];
     env->GetByteArrayRegion(jkey_ba, jkey_off[i], len_key, key);
-    if(env->ExceptionCheck()) {
+    if (env->ExceptionCheck()) {
       // exception thrown: ArrayIndexOutOfBoundsException
-      delete [] key;
+      delete[] key;
       env->DeleteLocalRef(jkey);
       env->ReleaseIntArrayElements(jkey_lens, jkey_len, JNI_ABORT);
       env->ReleaseIntArrayElements(jkey_offs, jkey_off, JNI_ABORT);
@@ -820,7 +831,7 @@ jobjectArray multi_get_helper(JNIEnv* env, jobject jdb, rocksdb::DB* db,
   // prepare the results
   jobjectArray jresults =
       rocksdb::ByteJni::new2dByteArray(env, static_cast<jsize>(s.size()));
-  if(jresults == nullptr) {
+  if (jresults == nullptr) {
     // exception occurred
     return nullptr;
   }
@@ -837,21 +848,22 @@ jobjectArray multi_get_helper(JNIEnv* env, jobject jdb, rocksdb::DB* db,
       std::string* value = &values[i];
       const jsize jvalue_len = static_cast<jsize>(value->size());
       jbyteArray jentry_value = env->NewByteArray(jvalue_len);
-      if(jentry_value == nullptr) {
+      if (jentry_value == nullptr) {
         // exception thrown: OutOfMemoryError
         return nullptr;
       }
 
-      env->SetByteArrayRegion(jentry_value, 0, static_cast<jsize>(jvalue_len),
+      env->SetByteArrayRegion(
+          jentry_value, 0, static_cast<jsize>(jvalue_len),
           const_cast<jbyte*>(reinterpret_cast<const jbyte*>(value->c_str())));
-      if(env->ExceptionCheck()) {
+      if (env->ExceptionCheck()) {
         // exception thrown: ArrayIndexOutOfBoundsException
         env->DeleteLocalRef(jentry_value);
         return nullptr;
       }
 
       env->SetObjectArrayElement(jresults, static_cast<jsize>(i), jentry_value);
-      if(env->ExceptionCheck()) {
+      if (env->ExceptionCheck()) {
         // exception thrown: ArrayIndexOutOfBoundsException
         env->DeleteLocalRef(jentry_value);
         return nullptr;
@@ -873,7 +885,8 @@ jobjectArray Java_org_rocksdb_RocksDB_multiGet__J_3_3B_3I_3I(
     JNIEnv* env, jobject jdb, jlong jdb_handle, jobjectArray jkeys,
     jintArray jkey_offs, jintArray jkey_lens) {
   return multi_get_helper(env, jdb, reinterpret_cast<rocksdb::DB*>(jdb_handle),
-      rocksdb::ReadOptions(), jkeys, jkey_offs, jkey_lens, nullptr);
+                          rocksdb::ReadOptions(), jkeys, jkey_offs, jkey_lens,
+                          nullptr);
 }
 
 /*
@@ -886,8 +899,8 @@ jobjectArray Java_org_rocksdb_RocksDB_multiGet__J_3_3B_3I_3I_3J(
     jintArray jkey_offs, jintArray jkey_lens,
     jlongArray jcolumn_family_handles) {
   return multi_get_helper(env, jdb, reinterpret_cast<rocksdb::DB*>(jdb_handle),
-      rocksdb::ReadOptions(), jkeys, jkey_offs, jkey_lens,
-      jcolumn_family_handles);
+                          rocksdb::ReadOptions(), jkeys, jkey_offs, jkey_lens,
+                          jcolumn_family_handles);
 }
 
 /*
@@ -898,7 +911,8 @@ jobjectArray Java_org_rocksdb_RocksDB_multiGet__J_3_3B_3I_3I_3J(
 jobjectArray Java_org_rocksdb_RocksDB_multiGet__JJ_3_3B_3I_3I(
     JNIEnv* env, jobject jdb, jlong jdb_handle, jlong jropt_handle,
     jobjectArray jkeys, jintArray jkey_offs, jintArray jkey_lens) {
-  return multi_get_helper(env, jdb, reinterpret_cast<rocksdb::DB*>(jdb_handle),
+  return multi_get_helper(
+      env, jdb, reinterpret_cast<rocksdb::DB*>(jdb_handle),
       *reinterpret_cast<rocksdb::ReadOptions*>(jropt_handle), jkeys, jkey_offs,
       jkey_lens, nullptr);
 }
@@ -912,7 +926,8 @@ jobjectArray Java_org_rocksdb_RocksDB_multiGet__JJ_3_3B_3I_3I_3J(
     JNIEnv* env, jobject jdb, jlong jdb_handle, jlong jropt_handle,
     jobjectArray jkeys, jintArray jkey_offs, jintArray jkey_lens,
     jlongArray jcolumn_family_handles) {
-  return multi_get_helper(env, jdb, reinterpret_cast<rocksdb::DB*>(jdb_handle),
+  return multi_get_helper(
+      env, jdb, reinterpret_cast<rocksdb::DB*>(jdb_handle),
       *reinterpret_cast<rocksdb::ReadOptions*>(jropt_handle), jkeys, jkey_offs,
       jkey_lens, jcolumn_family_handles);
 }
@@ -922,7 +937,7 @@ jobjectArray Java_org_rocksdb_RocksDB_multiGet__JJ_3_3B_3I_3I_3J(
  * Method:    get
  * Signature: (J[BII[BII)I
  */
-jint Java_org_rocksdb_RocksDB_get__J_3BII_3BII(JNIEnv* env, jobject jdb,
+jint Java_org_rocksdb_RocksDB_get__J_3BII_3BII(JNIEnv* env, jobject /*jdb*/,
                                                jlong jdb_handle,
                                                jbyteArray jkey, jint jkey_off,
                                                jint jkey_len, jbyteArray jval,
@@ -930,8 +945,7 @@ jint Java_org_rocksdb_RocksDB_get__J_3BII_3BII(JNIEnv* env, jobject jdb,
   bool has_exception = false;
   return rocksdb_get_helper(env, reinterpret_cast<rocksdb::DB*>(jdb_handle),
                             rocksdb::ReadOptions(), nullptr, jkey, jkey_off,
-                            jkey_len, jval, jval_off, jval_len,
-                            &has_exception);
+                            jkey_len, jval, jval_off, jval_len, &has_exception);
 }
 
 /*
@@ -939,7 +953,7 @@ jint Java_org_rocksdb_RocksDB_get__J_3BII_3BII(JNIEnv* env, jobject jdb,
  * Method:    get
  * Signature: (J[BII[BIIJ)I
  */
-jint Java_org_rocksdb_RocksDB_get__J_3BII_3BIIJ(JNIEnv* env, jobject jdb,
+jint Java_org_rocksdb_RocksDB_get__J_3BII_3BIIJ(JNIEnv* env, jobject /*jdb*/,
                                                 jlong jdb_handle,
                                                 jbyteArray jkey, jint jkey_off,
                                                 jint jkey_len, jbyteArray jval,
@@ -953,8 +967,8 @@ jint Java_org_rocksdb_RocksDB_get__J_3BII_3BIIJ(JNIEnv* env, jobject jdb,
                               jkey, jkey_off, jkey_len, jval, jval_off,
                               jval_len, &has_exception);
   } else {
-    rocksdb::RocksDBExceptionJni::ThrowNew(env,
-        rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
+    rocksdb::RocksDBExceptionJni::ThrowNew(
+        env, rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
     // will never be evaluated
     return 0;
   }
@@ -965,7 +979,7 @@ jint Java_org_rocksdb_RocksDB_get__J_3BII_3BIIJ(JNIEnv* env, jobject jdb,
  * Method:    get
  * Signature: (JJ[BII[BII)I
  */
-jint Java_org_rocksdb_RocksDB_get__JJ_3BII_3BII(JNIEnv* env, jobject jdb,
+jint Java_org_rocksdb_RocksDB_get__JJ_3BII_3BII(JNIEnv* env, jobject /*jdb*/,
                                                 jlong jdb_handle,
                                                 jlong jropt_handle,
                                                 jbyteArray jkey, jint jkey_off,
@@ -984,7 +998,7 @@ jint Java_org_rocksdb_RocksDB_get__JJ_3BII_3BII(JNIEnv* env, jobject jdb,
  * Signature: (JJ[BII[BIIJ)I
  */
 jint Java_org_rocksdb_RocksDB_get__JJ_3BII_3BIIJ(
-    JNIEnv* env, jobject jdb, jlong jdb_handle, jlong jropt_handle,
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jlong jropt_handle,
     jbyteArray jkey, jint jkey_off, jint jkey_len, jbyteArray jval,
     jint jval_off, jint jval_len, jlong jcf_handle) {
   auto* db_handle = reinterpret_cast<rocksdb::DB*>(jdb_handle);
@@ -996,8 +1010,8 @@ jint Java_org_rocksdb_RocksDB_get__JJ_3BII_3BIIJ(
                               jkey_len, jval, jval_off, jval_len,
                               &has_exception);
   } else {
-    rocksdb::RocksDBExceptionJni::ThrowNew(env,
-        rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
+    rocksdb::RocksDBExceptionJni::ThrowNew(
+        env, rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
     // will never be evaluated
     return 0;
   }
@@ -1009,15 +1023,15 @@ jint Java_org_rocksdb_RocksDB_get__JJ_3BII_3BIIJ(
 /**
  * @return true if the delete succeeded, false if a Java Exception was thrown
  */
-bool rocksdb_delete_helper(
-    JNIEnv* env, rocksdb::DB* db, const rocksdb::WriteOptions& write_options,
-    rocksdb::ColumnFamilyHandle* cf_handle, jbyteArray jkey, jint jkey_off,
-    jint jkey_len) {
+bool rocksdb_delete_helper(JNIEnv* env, rocksdb::DB* db,
+                           const rocksdb::WriteOptions& write_options,
+                           rocksdb::ColumnFamilyHandle* cf_handle,
+                           jbyteArray jkey, jint jkey_off, jint jkey_len) {
   jbyte* key = new jbyte[jkey_len];
   env->GetByteArrayRegion(jkey, jkey_off, jkey_len, key);
-  if(env->ExceptionCheck()) {
+  if (env->ExceptionCheck()) {
     // exception thrown: ArrayIndexOutOfBoundsException
-    delete [] key;
+    delete[] key;
     return false;
   }
   rocksdb::Slice key_slice(reinterpret_cast<char*>(key), jkey_len);
@@ -1031,7 +1045,7 @@ bool rocksdb_delete_helper(
   }
 
   // cleanup
-  delete [] key;
+  delete[] key;
 
   if (s.ok()) {
     return true;
@@ -1046,14 +1060,14 @@ bool rocksdb_delete_helper(
  * Method:    delete
  * Signature: (J[BII)V
  */
-void Java_org_rocksdb_RocksDB_delete__J_3BII(
-    JNIEnv* env, jobject jdb, jlong jdb_handle,
-    jbyteArray jkey, jint jkey_off, jint jkey_len) {
+void Java_org_rocksdb_RocksDB_delete__J_3BII(JNIEnv* env, jobject /*jdb*/,
+                                             jlong jdb_handle, jbyteArray jkey,
+                                             jint jkey_off, jint jkey_len) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   static const rocksdb::WriteOptions default_write_options =
       rocksdb::WriteOptions();
-  rocksdb_delete_helper(env, db, default_write_options, nullptr,
-      jkey, jkey_off, jkey_len);
+  rocksdb_delete_helper(env, db, default_write_options, nullptr, jkey, jkey_off,
+                        jkey_len);
 }
 
 /*
@@ -1061,19 +1075,20 @@ void Java_org_rocksdb_RocksDB_delete__J_3BII(
  * Method:    delete
  * Signature: (J[BIIJ)V
  */
-void Java_org_rocksdb_RocksDB_delete__J_3BIIJ(
-    JNIEnv* env, jobject jdb, jlong jdb_handle,
-    jbyteArray jkey, jint jkey_off, jint jkey_len, jlong jcf_handle) {
+void Java_org_rocksdb_RocksDB_delete__J_3BIIJ(JNIEnv* env, jobject /*jdb*/,
+                                              jlong jdb_handle, jbyteArray jkey,
+                                              jint jkey_off, jint jkey_len,
+                                              jlong jcf_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   static const rocksdb::WriteOptions default_write_options =
       rocksdb::WriteOptions();
   auto* cf_handle = reinterpret_cast<rocksdb::ColumnFamilyHandle*>(jcf_handle);
   if (cf_handle != nullptr) {
-    rocksdb_delete_helper(env, db, default_write_options, cf_handle,
-        jkey, jkey_off, jkey_len);
+    rocksdb_delete_helper(env, db, default_write_options, cf_handle, jkey,
+                          jkey_off, jkey_len);
   } else {
-    rocksdb::RocksDBExceptionJni::ThrowNew(env,
-        rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
+    rocksdb::RocksDBExceptionJni::ThrowNew(
+        env, rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
   }
 }
 
@@ -1082,14 +1097,16 @@ void Java_org_rocksdb_RocksDB_delete__J_3BIIJ(
  * Method:    delete
  * Signature: (JJ[BII)V
  */
-void Java_org_rocksdb_RocksDB_delete__JJ_3BII(
-    JNIEnv* env, jobject jdb, jlong jdb_handle,
-    jlong jwrite_options, jbyteArray jkey, jint jkey_off, jint jkey_len) {
+void Java_org_rocksdb_RocksDB_delete__JJ_3BII(JNIEnv* env, jobject /*jdb*/,
+                                              jlong jdb_handle,
+                                              jlong jwrite_options,
+                                              jbyteArray jkey, jint jkey_off,
+                                              jint jkey_len) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   auto* write_options =
       reinterpret_cast<rocksdb::WriteOptions*>(jwrite_options);
   rocksdb_delete_helper(env, db, *write_options, nullptr, jkey, jkey_off,
-      jkey_len);
+                        jkey_len);
 }
 
 /*
@@ -1098,19 +1115,18 @@ void Java_org_rocksdb_RocksDB_delete__JJ_3BII(
  * Signature: (JJ[BIIJ)V
  */
 void Java_org_rocksdb_RocksDB_delete__JJ_3BIIJ(
-    JNIEnv* env, jobject jdb, jlong jdb_handle,
-    jlong jwrite_options, jbyteArray jkey, jint jkey_off, jint jkey_len,
-    jlong jcf_handle) {
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jlong jwrite_options,
+    jbyteArray jkey, jint jkey_off, jint jkey_len, jlong jcf_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   auto* write_options =
       reinterpret_cast<rocksdb::WriteOptions*>(jwrite_options);
   auto* cf_handle = reinterpret_cast<rocksdb::ColumnFamilyHandle*>(jcf_handle);
   if (cf_handle != nullptr) {
     rocksdb_delete_helper(env, db, *write_options, cf_handle, jkey, jkey_off,
-        jkey_len);
+                          jkey_len);
   } else {
-    rocksdb::RocksDBExceptionJni::ThrowNew(env,
-        rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
+    rocksdb::RocksDBExceptionJni::ThrowNew(
+        env, rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
   }
 }
 
@@ -1120,11 +1136,12 @@ void Java_org_rocksdb_RocksDB_delete__JJ_3BIIJ(
  * @return true if the single delete succeeded, false if a Java Exception
  *     was thrown
  */
-bool rocksdb_single_delete_helper(
-    JNIEnv* env, rocksdb::DB* db, const rocksdb::WriteOptions& write_options,
-    rocksdb::ColumnFamilyHandle* cf_handle, jbyteArray jkey, jint jkey_len) {
+bool rocksdb_single_delete_helper(JNIEnv* env, rocksdb::DB* db,
+                                  const rocksdb::WriteOptions& write_options,
+                                  rocksdb::ColumnFamilyHandle* cf_handle,
+                                  jbyteArray jkey, jint jkey_len) {
   jbyte* key = env->GetByteArrayElements(jkey, nullptr);
-  if(key == nullptr) {
+  if (key == nullptr) {
     // exception thrown: OutOfMemoryError
     return false;
   }
@@ -1156,14 +1173,15 @@ bool rocksdb_single_delete_helper(
  * Method:    singleDelete
  * Signature: (J[BI)V
  */
-void Java_org_rocksdb_RocksDB_singleDelete__J_3BI(
-    JNIEnv* env, jobject jdb, jlong jdb_handle,
-    jbyteArray jkey, jint jkey_len) {
+void Java_org_rocksdb_RocksDB_singleDelete__J_3BI(JNIEnv* env, jobject /*jdb*/,
+                                                  jlong jdb_handle,
+                                                  jbyteArray jkey,
+                                                  jint jkey_len) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   static const rocksdb::WriteOptions default_write_options =
       rocksdb::WriteOptions();
-  rocksdb_single_delete_helper(env, db, default_write_options, nullptr,
-      jkey, jkey_len);
+  rocksdb_single_delete_helper(env, db, default_write_options, nullptr, jkey,
+                               jkey_len);
 }
 
 /*
@@ -1171,19 +1189,21 @@ void Java_org_rocksdb_RocksDB_singleDelete__J_3BI(
  * Method:    singleDelete
  * Signature: (J[BIJ)V
  */
-void Java_org_rocksdb_RocksDB_singleDelete__J_3BIJ(
-    JNIEnv* env, jobject jdb, jlong jdb_handle,
-    jbyteArray jkey, jint jkey_len, jlong jcf_handle) {
+void Java_org_rocksdb_RocksDB_singleDelete__J_3BIJ(JNIEnv* env, jobject /*jdb*/,
+                                                   jlong jdb_handle,
+                                                   jbyteArray jkey,
+                                                   jint jkey_len,
+                                                   jlong jcf_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   static const rocksdb::WriteOptions default_write_options =
       rocksdb::WriteOptions();
   auto* cf_handle = reinterpret_cast<rocksdb::ColumnFamilyHandle*>(jcf_handle);
   if (cf_handle != nullptr) {
     rocksdb_single_delete_helper(env, db, default_write_options, cf_handle,
-        jkey, jkey_len);
+                                 jkey, jkey_len);
   } else {
-    rocksdb::RocksDBExceptionJni::ThrowNew(env,
-        rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
+    rocksdb::RocksDBExceptionJni::ThrowNew(
+        env, rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
   }
 }
 
@@ -1192,14 +1212,16 @@ void Java_org_rocksdb_RocksDB_singleDelete__J_3BIJ(
  * Method:    singleDelete
  * Signature: (JJ[BIJ)V
  */
-void Java_org_rocksdb_RocksDB_singleDelete__JJ_3BI(
-    JNIEnv* env, jobject jdb, jlong jdb_handle,
-    jlong jwrite_options, jbyteArray jkey, jint jkey_len) {
+void Java_org_rocksdb_RocksDB_singleDelete__JJ_3BI(JNIEnv* env, jobject /*jdb*/,
+                                                   jlong jdb_handle,
+                                                   jlong jwrite_options,
+                                                   jbyteArray jkey,
+                                                   jint jkey_len) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   auto* write_options =
       reinterpret_cast<rocksdb::WriteOptions*>(jwrite_options);
   rocksdb_single_delete_helper(env, db, *write_options, nullptr, jkey,
-      jkey_len);
+                               jkey_len);
 }
 
 /*
@@ -1208,19 +1230,18 @@ void Java_org_rocksdb_RocksDB_singleDelete__JJ_3BI(
  * Signature: (JJ[BIJ)V
  */
 void Java_org_rocksdb_RocksDB_singleDelete__JJ_3BIJ(
-    JNIEnv* env, jobject jdb, jlong jdb_handle,
-    jlong jwrite_options, jbyteArray jkey, jint jkey_len,
-    jlong jcf_handle) {
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jlong jwrite_options,
+    jbyteArray jkey, jint jkey_len, jlong jcf_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   auto* write_options =
       reinterpret_cast<rocksdb::WriteOptions*>(jwrite_options);
   auto* cf_handle = reinterpret_cast<rocksdb::ColumnFamilyHandle*>(jcf_handle);
   if (cf_handle != nullptr) {
     rocksdb_single_delete_helper(env, db, *write_options, cf_handle, jkey,
-        jkey_len);
+                                 jkey_len);
   } else {
-    rocksdb::RocksDBExceptionJni::ThrowNew(env,
-        rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
+    rocksdb::RocksDBExceptionJni::ThrowNew(
+        env, rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
   }
 }
 
@@ -1278,7 +1299,7 @@ bool rocksdb_delete_range_helper(JNIEnv* env, rocksdb::DB* db,
  * Signature: (J[BII[BII)V
  */
 void Java_org_rocksdb_RocksDB_deleteRange__J_3BII_3BII(
-    JNIEnv* env, jobject jdb, jlong jdb_handle, jbyteArray jbegin_key,
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jbyteArray jbegin_key,
     jint jbegin_key_off, jint jbegin_key_len, jbyteArray jend_key,
     jint jend_key_off, jint jend_key_len) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
@@ -1295,7 +1316,7 @@ void Java_org_rocksdb_RocksDB_deleteRange__J_3BII_3BII(
  * Signature: (J[BII[BIIJ)V
  */
 void Java_org_rocksdb_RocksDB_deleteRange__J_3BII_3BIIJ(
-    JNIEnv* env, jobject jdb, jlong jdb_handle, jbyteArray jbegin_key,
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jbyteArray jbegin_key,
     jint jbegin_key_off, jint jbegin_key_len, jbyteArray jend_key,
     jint jend_key_off, jint jend_key_len, jlong jcf_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
@@ -1318,7 +1339,7 @@ void Java_org_rocksdb_RocksDB_deleteRange__J_3BII_3BIIJ(
  * Signature: (JJ[BII[BII)V
  */
 void Java_org_rocksdb_RocksDB_deleteRange__JJ_3BII_3BII(
-    JNIEnv* env, jobject jdb, jlong jdb_handle, jlong jwrite_options,
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jlong jwrite_options,
     jbyteArray jbegin_key, jint jbegin_key_off, jint jbegin_key_len,
     jbyteArray jend_key, jint jend_key_off, jint jend_key_len) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
@@ -1335,7 +1356,7 @@ void Java_org_rocksdb_RocksDB_deleteRange__JJ_3BII_3BII(
  * Signature: (JJ[BII[BIIJ)V
  */
 void Java_org_rocksdb_RocksDB_deleteRange__JJ_3BII_3BIIJ(
-    JNIEnv* env, jobject jdb, jlong jdb_handle, jlong jwrite_options,
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jlong jwrite_options,
     jbyteArray jbegin_key, jint jbegin_key_off, jint jbegin_key_len,
     jbyteArray jend_key, jint jend_key_off, jint jend_key_len,
     jlong jcf_handle) {
@@ -1366,19 +1387,19 @@ bool rocksdb_merge_helper(JNIEnv* env, rocksdb::DB* db,
                           jbyteArray jval, jint jval_off, jint jval_len) {
   jbyte* key = new jbyte[jkey_len];
   env->GetByteArrayRegion(jkey, jkey_off, jkey_len, key);
-  if(env->ExceptionCheck()) {
+  if (env->ExceptionCheck()) {
     // exception thrown: ArrayIndexOutOfBoundsException
-    delete [] key;
+    delete[] key;
     return false;
   }
   rocksdb::Slice key_slice(reinterpret_cast<char*>(key), jkey_len);
 
-  jbyte* value = new jbyte[jkey_len];
+  jbyte* value = new jbyte[jval_len];
   env->GetByteArrayRegion(jval, jval_off, jval_len, value);
-  if(env->ExceptionCheck()) {
+  if (env->ExceptionCheck()) {
     // exception thrown: ArrayIndexOutOfBoundsException
-    delete [] value;
-    delete [] key;
+    delete[] value;
+    delete[] key;
     return false;
   }
   rocksdb::Slice value_slice(reinterpret_cast<char*>(value), jval_len);
@@ -1391,8 +1412,8 @@ bool rocksdb_merge_helper(JNIEnv* env, rocksdb::DB* db,
   }
 
   // cleanup
-  delete [] value;
-  delete [] key;
+  delete[] value;
+  delete[] key;
 
   if (s.ok()) {
     return true;
@@ -1407,7 +1428,7 @@ bool rocksdb_merge_helper(JNIEnv* env, rocksdb::DB* db,
  * Method:    merge
  * Signature: (J[BII[BII)V
  */
-void Java_org_rocksdb_RocksDB_merge__J_3BII_3BII(JNIEnv* env, jobject jdb,
+void Java_org_rocksdb_RocksDB_merge__J_3BII_3BII(JNIEnv* env, jobject /*jdb*/,
                                                  jlong jdb_handle,
                                                  jbyteArray jkey, jint jkey_off,
                                                  jint jkey_len, jbyteArray jval,
@@ -1426,8 +1447,8 @@ void Java_org_rocksdb_RocksDB_merge__J_3BII_3BII(JNIEnv* env, jobject jdb,
  * Signature: (J[BII[BIIJ)V
  */
 void Java_org_rocksdb_RocksDB_merge__J_3BII_3BIIJ(
-    JNIEnv* env, jobject jdb, jlong jdb_handle, jbyteArray jkey, jint jkey_off,
-    jint jkey_len, jbyteArray jval, jint jval_off, jint jval_len,
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jbyteArray jkey,
+    jint jkey_off, jint jkey_len, jbyteArray jval, jint jval_off, jint jval_len,
     jlong jcf_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   static const rocksdb::WriteOptions default_write_options =
@@ -1437,8 +1458,8 @@ void Java_org_rocksdb_RocksDB_merge__J_3BII_3BIIJ(
     rocksdb_merge_helper(env, db, default_write_options, cf_handle, jkey,
                          jkey_off, jkey_len, jval, jval_off, jval_len);
   } else {
-    rocksdb::RocksDBExceptionJni::ThrowNew(env,
-        rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
+    rocksdb::RocksDBExceptionJni::ThrowNew(
+        env, rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
   }
 }
 
@@ -1448,7 +1469,7 @@ void Java_org_rocksdb_RocksDB_merge__J_3BII_3BIIJ(
  * Signature: (JJ[BII[BII)V
  */
 void Java_org_rocksdb_RocksDB_merge__JJ_3BII_3BII(
-    JNIEnv* env, jobject jdb, jlong jdb_handle, jlong jwrite_options_handle,
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jlong jwrite_options_handle,
     jbyteArray jkey, jint jkey_off, jint jkey_len, jbyteArray jval,
     jint jval_off, jint jval_len) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
@@ -1465,7 +1486,7 @@ void Java_org_rocksdb_RocksDB_merge__JJ_3BII_3BII(
  * Signature: (JJ[BII[BIIJ)V
  */
 void Java_org_rocksdb_RocksDB_merge__JJ_3BII_3BIIJ(
-    JNIEnv* env, jobject jdb, jlong jdb_handle, jlong jwrite_options_handle,
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jlong jwrite_options_handle,
     jbyteArray jkey, jint jkey_off, jint jkey_len, jbyteArray jval,
     jint jval_off, jint jval_len, jlong jcf_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
@@ -1476,8 +1497,8 @@ void Java_org_rocksdb_RocksDB_merge__JJ_3BII_3BIIJ(
     rocksdb_merge_helper(env, db, *write_options, cf_handle, jkey, jkey_off,
                          jkey_len, jval, jval_off, jval_len);
   } else {
-    rocksdb::RocksDBExceptionJni::ThrowNew(env,
-        rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
+    rocksdb::RocksDBExceptionJni::ThrowNew(
+        env, rocksdb::Status::InvalidArgument("Invalid ColumnFamilyHandle."));
   }
 }
 
@@ -1489,16 +1510,17 @@ void Java_org_rocksdb_RocksDB_merge__JJ_3BII_3BIIJ(
  * Method:    disposeInternal
  * Signature: (J)V
  */
-void Java_org_rocksdb_RocksDB_disposeInternal(
-    JNIEnv* env, jobject java_db, jlong jhandle) {
+void Java_org_rocksdb_RocksDB_disposeInternal(JNIEnv* /*env*/,
+                                              jobject /*java_db*/,
+                                              jlong jhandle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jhandle);
   assert(db != nullptr);
   delete db;
 }
 
-jlong rocksdb_iterator_helper(
-    rocksdb::DB* db, rocksdb::ReadOptions read_options,
-    rocksdb::ColumnFamilyHandle* cf_handle) {
+jlong rocksdb_iterator_helper(rocksdb::DB* db,
+                              rocksdb::ReadOptions read_options,
+                              rocksdb::ColumnFamilyHandle* cf_handle) {
   rocksdb::Iterator* iterator = nullptr;
   if (cf_handle != nullptr) {
     iterator = db->NewIterator(read_options, cf_handle);
@@ -1513,11 +1535,10 @@ jlong rocksdb_iterator_helper(
  * Method:    iterator
  * Signature: (J)J
  */
-jlong Java_org_rocksdb_RocksDB_iterator__J(
-    JNIEnv* env, jobject jdb, jlong db_handle) {
+jlong Java_org_rocksdb_RocksDB_iterator__J(JNIEnv* /*env*/, jobject /*jdb*/,
+                                           jlong db_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(db_handle);
-  return rocksdb_iterator_helper(db, rocksdb::ReadOptions(),
-      nullptr);
+  return rocksdb_iterator_helper(db, rocksdb::ReadOptions(), nullptr);
 }
 
 /*
@@ -1525,14 +1546,13 @@ jlong Java_org_rocksdb_RocksDB_iterator__J(
  * Method:    iterator
  * Signature: (JJ)J
  */
-jlong Java_org_rocksdb_RocksDB_iterator__JJ(
-    JNIEnv* env, jobject jdb, jlong db_handle,
-    jlong jread_options_handle) {
+jlong Java_org_rocksdb_RocksDB_iterator__JJ(JNIEnv* /*env*/, jobject /*jdb*/,
+                                            jlong db_handle,
+                                            jlong jread_options_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(db_handle);
-  auto& read_options = *reinterpret_cast<rocksdb::ReadOptions*>(
-      jread_options_handle);
-  return rocksdb_iterator_helper(db, read_options,
-      nullptr);
+  auto& read_options =
+      *reinterpret_cast<rocksdb::ReadOptions*>(jread_options_handle);
+  return rocksdb_iterator_helper(db, read_options, nullptr);
 }
 
 /*
@@ -1540,12 +1560,12 @@ jlong Java_org_rocksdb_RocksDB_iterator__JJ(
  * Method:    iteratorCF
  * Signature: (JJ)J
  */
-jlong Java_org_rocksdb_RocksDB_iteratorCF__JJ(
-    JNIEnv* env, jobject jdb, jlong db_handle, jlong jcf_handle) {
+jlong Java_org_rocksdb_RocksDB_iteratorCF__JJ(JNIEnv* /*env*/, jobject /*jdb*/,
+                                              jlong db_handle,
+                                              jlong jcf_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(db_handle);
   auto* cf_handle = reinterpret_cast<rocksdb::ColumnFamilyHandle*>(jcf_handle);
-  return rocksdb_iterator_helper(db, rocksdb::ReadOptions(),
-        cf_handle);
+  return rocksdb_iterator_helper(db, rocksdb::ReadOptions(), cf_handle);
 }
 
 /*
@@ -1553,15 +1573,15 @@ jlong Java_org_rocksdb_RocksDB_iteratorCF__JJ(
  * Method:    iteratorCF
  * Signature: (JJJ)J
  */
-jlong Java_org_rocksdb_RocksDB_iteratorCF__JJJ(
-    JNIEnv* env, jobject jdb, jlong db_handle, jlong jcf_handle,
-    jlong jread_options_handle) {
+jlong Java_org_rocksdb_RocksDB_iteratorCF__JJJ(JNIEnv* /*env*/, jobject /*jdb*/,
+                                               jlong db_handle,
+                                               jlong jcf_handle,
+                                               jlong jread_options_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(db_handle);
   auto* cf_handle = reinterpret_cast<rocksdb::ColumnFamilyHandle*>(jcf_handle);
-  auto& read_options = *reinterpret_cast<rocksdb::ReadOptions*>(
-      jread_options_handle);
-  return rocksdb_iterator_helper(db, read_options,
-        cf_handle);
+  auto& read_options =
+      *reinterpret_cast<rocksdb::ReadOptions*>(jread_options_handle);
+  return rocksdb_iterator_helper(db, read_options, cf_handle);
 }
 
 /*
@@ -1569,25 +1589,25 @@ jlong Java_org_rocksdb_RocksDB_iteratorCF__JJJ(
  * Method:    iterators
  * Signature: (J[JJ)[J
  */
-jlongArray Java_org_rocksdb_RocksDB_iterators(
-    JNIEnv* env, jobject jdb, jlong db_handle,
-    jlongArray jcolumn_family_handles, jlong jread_options_handle) {
+jlongArray Java_org_rocksdb_RocksDB_iterators(JNIEnv* env, jobject /*jdb*/,
+                                              jlong db_handle,
+                                              jlongArray jcolumn_family_handles,
+                                              jlong jread_options_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(db_handle);
-  auto& read_options = *reinterpret_cast<rocksdb::ReadOptions*>(
-        jread_options_handle);
+  auto& read_options =
+      *reinterpret_cast<rocksdb::ReadOptions*>(jread_options_handle);
 
   std::vector<rocksdb::ColumnFamilyHandle*> cf_handles;
   if (jcolumn_family_handles != nullptr) {
     const jsize len_cols = env->GetArrayLength(jcolumn_family_handles);
     jlong* jcfh = env->GetLongArrayElements(jcolumn_family_handles, nullptr);
-    if(jcfh == nullptr) {
+    if (jcfh == nullptr) {
       // exception thrown: OutOfMemoryError
       return nullptr;
     }
 
     for (jsize i = 0; i < len_cols; i++) {
-      auto* cf_handle =
-          reinterpret_cast<rocksdb::ColumnFamilyHandle*>(jcfh[i]);
+      auto* cf_handle = reinterpret_cast<rocksdb::ColumnFamilyHandle*>(jcfh[i]);
       cf_handles.push_back(cf_handle);
     }
 
@@ -1595,21 +1615,21 @@ jlongArray Java_org_rocksdb_RocksDB_iterators(
   }
 
   std::vector<rocksdb::Iterator*> iterators;
-  rocksdb::Status s = db->NewIterators(read_options,
-      cf_handles, &iterators);
+  rocksdb::Status s = db->NewIterators(read_options, cf_handles, &iterators);
   if (s.ok()) {
     jlongArray jLongArray =
         env->NewLongArray(static_cast<jsize>(iterators.size()));
-    if(jLongArray == nullptr) {
+    if (jLongArray == nullptr) {
       // exception thrown: OutOfMemoryError
       return nullptr;
     }
 
-    for (std::vector<rocksdb::Iterator*>::size_type i = 0;
-        i < iterators.size(); i++) {
-      env->SetLongArrayRegion(jLongArray, static_cast<jsize>(i), 1,
-                              const_cast<jlong*>(reinterpret_cast<const jlong*>(&iterators[i])));
-      if(env->ExceptionCheck()) {
+    for (std::vector<rocksdb::Iterator*>::size_type i = 0; i < iterators.size();
+         i++) {
+      env->SetLongArrayRegion(
+          jLongArray, static_cast<jsize>(i), 1,
+          const_cast<jlong*>(reinterpret_cast<const jlong*>(&iterators[i])));
+      if (env->ExceptionCheck()) {
         // exception thrown: ArrayIndexOutOfBoundsException
         env->DeleteLocalRef(jLongArray);
         return nullptr;
@@ -1628,8 +1648,9 @@ jlongArray Java_org_rocksdb_RocksDB_iterators(
  * Method:    getDefaultColumnFamily
  * Signature: (J)J
  */
-jlong Java_org_rocksdb_RocksDB_getDefaultColumnFamily(
-    JNIEnv* env, jobject jobj, jlong jdb_handle) {
+jlong Java_org_rocksdb_RocksDB_getDefaultColumnFamily(JNIEnv* /*env*/,
+                                                      jobject /*jobj*/,
+                                                      jlong jdb_handle) {
   auto* db_handle = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   auto* cf_handle = db_handle->DefaultColumnFamily();
   return reinterpret_cast<jlong>(cf_handle);
@@ -1640,16 +1661,17 @@ jlong Java_org_rocksdb_RocksDB_getDefaultColumnFamily(
  * Method:    createColumnFamily
  * Signature: (J[BJ)J
  */
-jlong Java_org_rocksdb_RocksDB_createColumnFamily(
-    JNIEnv* env, jobject jdb, jlong jdb_handle,
-    jbyteArray jcolumn_name, jlong jcolumn_options) {
+jlong Java_org_rocksdb_RocksDB_createColumnFamily(JNIEnv* env, jobject /*jdb*/,
+                                                  jlong jdb_handle,
+                                                  jbyteArray jcolumn_name,
+                                                  jlong jcolumn_options) {
   rocksdb::ColumnFamilyHandle* handle;
   jboolean has_exception = JNI_FALSE;
-  std::string column_name = rocksdb::JniUtil::byteString<std::string>(env,
-    jcolumn_name,
-    [](const char* str, const size_t len) { return std::string(str, len); },
-    &has_exception);
-  if(has_exception == JNI_TRUE) {
+  std::string column_name = rocksdb::JniUtil::byteString<std::string>(
+      env, jcolumn_name,
+      [](const char* str, const size_t len) { return std::string(str, len); },
+      &has_exception);
+  if (has_exception == JNI_TRUE) {
     // exception occurred
     return 0;
   }
@@ -1658,8 +1680,8 @@ jlong Java_org_rocksdb_RocksDB_createColumnFamily(
   auto* cfOptions =
       reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jcolumn_options);
 
-  rocksdb::Status s = db_handle->CreateColumnFamily(
-      *cfOptions, column_name, &handle);
+  rocksdb::Status s =
+      db_handle->CreateColumnFamily(*cfOptions, column_name, &handle);
 
   if (s.ok()) {
     return reinterpret_cast<jlong>(handle);
@@ -1674,8 +1696,9 @@ jlong Java_org_rocksdb_RocksDB_createColumnFamily(
  * Method:    dropColumnFamily
  * Signature: (JJ)V;
  */
-void Java_org_rocksdb_RocksDB_dropColumnFamily(
-    JNIEnv* env, jobject jdb, jlong jdb_handle, jlong jcf_handle) {
+void Java_org_rocksdb_RocksDB_dropColumnFamily(JNIEnv* env, jobject /*jdb*/,
+                                               jlong jdb_handle,
+                                               jlong jcf_handle) {
   auto* cf_handle = reinterpret_cast<rocksdb::ColumnFamilyHandle*>(jcf_handle);
   auto* db_handle = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   rocksdb::Status s = db_handle->DropColumnFamily(cf_handle);
@@ -1688,8 +1711,8 @@ void Java_org_rocksdb_RocksDB_dropColumnFamily(
  * Method:    getSnapshot
  * Signature: (J)J
  */
-jlong Java_org_rocksdb_RocksDB_getSnapshot(
-    JNIEnv* env, jobject jdb, jlong db_handle) {
+jlong Java_org_rocksdb_RocksDB_getSnapshot(JNIEnv* /*env*/, jobject /*jdb*/,
+                                           jlong db_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(db_handle);
   const rocksdb::Snapshot* snapshot = db->GetSnapshot();
   return reinterpret_cast<jlong>(snapshot);
@@ -1699,8 +1722,9 @@ jlong Java_org_rocksdb_RocksDB_getSnapshot(
  * Method:    releaseSnapshot
  * Signature: (JJ)V
  */
-void Java_org_rocksdb_RocksDB_releaseSnapshot(
-    JNIEnv* env, jobject jdb, jlong db_handle, jlong snapshot_handle) {
+void Java_org_rocksdb_RocksDB_releaseSnapshot(JNIEnv* /*env*/, jobject /*jdb*/,
+                                              jlong db_handle,
+                                              jlong snapshot_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(db_handle);
   auto* snapshot = reinterpret_cast<rocksdb::Snapshot*>(snapshot_handle);
   db->ReleaseSnapshot(snapshot);
@@ -1712,16 +1736,16 @@ void Java_org_rocksdb_RocksDB_releaseSnapshot(
  * Signature: (JLjava/lang/String;I)Ljava/lang/String;
  */
 jstring Java_org_rocksdb_RocksDB_getProperty0__JLjava_lang_String_2I(
-    JNIEnv* env, jobject jdb, jlong db_handle, jstring jproperty,
+    JNIEnv* env, jobject /*jdb*/, jlong db_handle, jstring jproperty,
     jint jproperty_len) {
   const char* property = env->GetStringUTFChars(jproperty, nullptr);
-  if(property == nullptr) {
+  if (property == nullptr) {
     // exception thrown: OutOfMemoryError
     return nullptr;
   }
   rocksdb::Slice property_slice(property, jproperty_len);
 
-  auto *db = reinterpret_cast<rocksdb::DB*>(db_handle);
+  autodb = reinterpret_cast<rocksdb::DB*>(db_handle);
   std::string property_value;
   bool retCode = db->GetProperty(property_slice, &property_value);
   env->ReleaseStringUTFChars(jproperty, property);
@@ -1740,10 +1764,10 @@ jstring Java_org_rocksdb_RocksDB_getProperty0__JLjava_lang_String_2I(
  * Signature: (JJLjava/lang/String;I)Ljava/lang/String;
  */
 jstring Java_org_rocksdb_RocksDB_getProperty0__JJLjava_lang_String_2I(
-    JNIEnv* env, jobject jdb, jlong db_handle, jlong jcf_handle,
+    JNIEnv* env, jobject /*jdb*/, jlong db_handle, jlong jcf_handle,
     jstring jproperty, jint jproperty_len) {
   const char* property = env->GetStringUTFChars(jproperty, nullptr);
-  if(property == nullptr) {
+  if (property == nullptr) {
     // exception thrown: OutOfMemoryError
     return nullptr;
   }
@@ -1769,10 +1793,10 @@ jstring Java_org_rocksdb_RocksDB_getProperty0__JJLjava_lang_String_2I(
  * Signature: (JLjava/lang/String;I)L;
  */
 jlong Java_org_rocksdb_RocksDB_getLongProperty__JLjava_lang_String_2I(
-    JNIEnv* env, jobject jdb, jlong db_handle, jstring jproperty,
+    JNIEnv* env, jobject /*jdb*/, jlong db_handle, jstring jproperty,
     jint jproperty_len) {
   const char* property = env->GetStringUTFChars(jproperty, nullptr);
-  if(property == nullptr) {
+  if (property == nullptr) {
     // exception thrown: OutOfMemoryError
     return 0;
   }
@@ -1797,10 +1821,10 @@ jlong Java_org_rocksdb_RocksDB_getLongProperty__JLjava_lang_String_2I(
  * Signature: (JJLjava/lang/String;I)L;
  */
 jlong Java_org_rocksdb_RocksDB_getLongProperty__JJLjava_lang_String_2I(
-    JNIEnv* env, jobject jdb, jlong db_handle, jlong jcf_handle,
+    JNIEnv* env, jobject /*jdb*/, jlong db_handle, jlong jcf_handle,
     jstring jproperty, jint jproperty_len) {
   const char* property = env->GetStringUTFChars(jproperty, nullptr);
-  if(property == nullptr) {
+  if (property == nullptr) {
     // exception thrown: OutOfMemoryError
     return 0;
   }
@@ -1820,12 +1844,38 @@ jlong Java_org_rocksdb_RocksDB_getLongProperty__JJLjava_lang_String_2I(
   return 0;
 }
 
+/*
+ * Class:     org_rocksdb_RocksDB
+ * Method:    getAggregatedLongProperty
+ * Signature: (JLjava/lang/String;I)J
+ */
+jlong Java_org_rocksdb_RocksDB_getAggregatedLongProperty(
+    JNIEnv* env, jobject, jlong db_handle, jstring jproperty, jint jproperty_len) {
+  const char* property = env->GetStringUTFChars(jproperty, nullptr);
+  if (property == nullptr) {
+    return 0;
+  }
+  rocksdb::Slice property_slice(property, jproperty_len);
+  auto* db = reinterpret_cast<rocksdb::DB*>(db_handle);
+  uint64_t property_value = 0;
+  bool retCode = db->GetAggregatedIntProperty(property_slice, &property_value);
+  env->ReleaseStringUTFChars(jproperty, property);
+
+  if (retCode) {
+    return property_value;
+  }
+
+  rocksdb::RocksDBExceptionJni::ThrowNew(env, rocksdb::Status::NotFound());
+  return 0;
+}
+
+
 //////////////////////////////////////////////////////////////////////////////
 // rocksdb::DB::Flush
 
-void rocksdb_flush_helper(
-    JNIEnv* env, rocksdb::DB* db, const rocksdb::FlushOptions& flush_options,
-  rocksdb::ColumnFamilyHandle* column_family_handle) {
+void rocksdb_flush_helper(JNIEnv* env, rocksdb::DB* db,
+                          const rocksdb::FlushOptions& flush_options,
+                          rocksdb::ColumnFamilyHandle* column_family_handle) {
   rocksdb::Status s;
   if (column_family_handle != nullptr) {
     s = db->Flush(flush_options, column_family_handle);
@@ -1833,7 +1883,7 @@ void rocksdb_flush_helper(
     s = db->Flush(flush_options);
   }
   if (!s.ok()) {
-      rocksdb::RocksDBExceptionJni::ThrowNew(env, s);
+    rocksdb::RocksDBExceptionJni::ThrowNew(env, s);
   }
 }
 
@@ -1842,9 +1892,9 @@ void rocksdb_flush_helper(
  * Method:    flush
  * Signature: (JJ)V
  */
-void Java_org_rocksdb_RocksDB_flush__JJ(
-    JNIEnv* env, jobject jdb, jlong jdb_handle,
-    jlong jflush_options) {
+void Java_org_rocksdb_RocksDB_flush__JJ(JNIEnv* env, jobject /*jdb*/,
+                                        jlong jdb_handle,
+                                        jlong jflush_options) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   auto* flush_options =
       reinterpret_cast<rocksdb::FlushOptions*>(jflush_options);
@@ -1856,9 +1906,9 @@ void Java_org_rocksdb_RocksDB_flush__JJ(
  * Method:    flush
  * Signature: (JJJ)V
  */
-void Java_org_rocksdb_RocksDB_flush__JJJ(
-    JNIEnv* env, jobject jdb, jlong jdb_handle,
-    jlong jflush_options, jlong jcf_handle) {
+void Java_org_rocksdb_RocksDB_flush__JJJ(JNIEnv* env, jobject /*jdb*/,
+                                         jlong jdb_handle, jlong jflush_options,
+                                         jlong jcf_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   auto* flush_options =
       reinterpret_cast<rocksdb::FlushOptions*>(jflush_options);
@@ -1870,9 +1920,9 @@ void Java_org_rocksdb_RocksDB_flush__JJJ(
 // rocksdb::DB::CompactRange - Full
 
 void rocksdb_compactrange_helper(JNIEnv* env, rocksdb::DB* db,
-    rocksdb::ColumnFamilyHandle* cf_handle, jboolean jreduce_level,
-    jint jtarget_level, jint jtarget_path_id) {
-
+                                 rocksdb::ColumnFamilyHandle* cf_handle,
+                                 jboolean jreduce_level, jint jtarget_level,
+                                 jint jtarget_path_id) {
   rocksdb::Status s;
   rocksdb::CompactRangeOptions compact_options;
   compact_options.change_level = jreduce_level;
@@ -1896,12 +1946,14 @@ void rocksdb_compactrange_helper(JNIEnv* env, rocksdb::DB* db,
  * Method:    compactRange0
  * Signature: (JZII)V
  */
-void Java_org_rocksdb_RocksDB_compactRange0__JZII(JNIEnv* env,
-    jobject jdb, jlong jdb_handle, jboolean jreduce_level,
-    jint jtarget_level, jint jtarget_path_id) {
+void Java_org_rocksdb_RocksDB_compactRange0__JZII(JNIEnv* env, jobject /*jdb*/,
+                                                  jlong jdb_handle,
+                                                  jboolean jreduce_level,
+                                                  jint jtarget_level,
+                                                  jint jtarget_path_id) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
-  rocksdb_compactrange_helper(env, db, nullptr, jreduce_level,
-      jtarget_level, jtarget_path_id);
+  rocksdb_compactrange_helper(env, db, nullptr, jreduce_level, jtarget_level,
+                              jtarget_path_id);
 }
 
 /*
@@ -1910,13 +1962,12 @@ void Java_org_rocksdb_RocksDB_compactRange0__JZII(JNIEnv* env,
  * Signature: (JZIIJ)V
  */
 void Java_org_rocksdb_RocksDB_compactRange__JZIIJ(
-    JNIEnv* env, jobject jdb, jlong jdb_handle,
-     jboolean jreduce_level, jint jtarget_level,
-     jint jtarget_path_id, jlong jcf_handle) {
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jboolean jreduce_level,
+    jint jtarget_level, jint jtarget_path_id, jlong jcf_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   auto* cf_handle = reinterpret_cast<rocksdb::ColumnFamilyHandle*>(jcf_handle);
-  rocksdb_compactrange_helper(env, db, cf_handle, jreduce_level,
-      jtarget_level, jtarget_path_id);
+  rocksdb_compactrange_helper(env, db, cf_handle, jreduce_level, jtarget_level,
+                              jtarget_path_id);
 }
 
 //////////////////////////////////////////////////////////////////////////////
@@ -1927,18 +1978,18 @@ void Java_org_rocksdb_RocksDB_compactRange__JZIIJ(
  *     was thrown
  */
 bool rocksdb_compactrange_helper(JNIEnv* env, rocksdb::DB* db,
-    rocksdb::ColumnFamilyHandle* cf_handle, jbyteArray jbegin, jint jbegin_len,
-    jbyteArray jend, jint jend_len, jboolean jreduce_level, jint jtarget_level,
-    jint jtarget_path_id) {
-
+                                 rocksdb::ColumnFamilyHandle* cf_handle,
+                                 jbyteArray jbegin, jint jbegin_len,
+                                 jbyteArray jend, jint jend_len,
+                                 const rocksdb::CompactRangeOptions& compact_options) {
   jbyte* begin = env->GetByteArrayElements(jbegin, nullptr);
-  if(begin == nullptr) {
+  if (begin == nullptr) {
     // exception thrown: OutOfMemoryError
     return false;
   }
 
   jbyte* end = env->GetByteArrayElements(jend, nullptr);
-  if(end == nullptr) {
+  if (end == nullptr) {
     // exception thrown: OutOfMemoryError
     env->ReleaseByteArrayElements(jbegin, begin, JNI_ABORT);
     return false;
@@ -1948,10 +1999,6 @@ bool rocksdb_compactrange_helper(JNIEnv* env, rocksdb::DB* db,
   const rocksdb::Slice end_slice(reinterpret_cast<char*>(end), jend_len);
 
   rocksdb::Status s;
-  rocksdb::CompactRangeOptions compact_options;
-  compact_options.change_level = jreduce_level;
-  compact_options.target_level = jtarget_level;
-  compact_options.target_path_id = static_cast<uint32_t>(jtarget_path_id);
   if (cf_handle != nullptr) {
     s = db->CompactRange(compact_options, cf_handle, &begin_slice, &end_slice);
   } else {
@@ -1970,18 +2017,38 @@ bool rocksdb_compactrange_helper(JNIEnv* env, rocksdb::DB* db,
   return false;
 }
 
+/**
+ * @return true if the compact range succeeded, false if a Java Exception
+ *     was thrown
+ */
+bool rocksdb_compactrange_helper(JNIEnv* env, rocksdb::DB* db,
+                                 rocksdb::ColumnFamilyHandle* cf_handle,
+                                 jbyteArray jbegin, jint jbegin_len,
+                                 jbyteArray jend, jint jend_len,
+                                 jboolean jreduce_level, jint jtarget_level,
+                                 jint jtarget_path_id) {
+    rocksdb::CompactRangeOptions compact_options;
+    compact_options.change_level = jreduce_level;
+    compact_options.target_level = jtarget_level;
+    compact_options.target_path_id = static_cast<uint32_t>(jtarget_path_id);
+
+    return rocksdb_compactrange_helper(env, db, cf_handle, jbegin, jbegin_len,
+      jend, jend_len, compact_options);
+}
+
 /*
  * Class:     org_rocksdb_RocksDB
  * Method:    compactRange0
  * Signature: (J[BI[BIZII)V
  */
-void Java_org_rocksdb_RocksDB_compactRange0__J_3BI_3BIZII(JNIEnv* env,
-    jobject jdb, jlong jdb_handle, jbyteArray jbegin, jint jbegin_len,
-    jbyteArray jend, jint jend_len, jboolean jreduce_level,
+void Java_org_rocksdb_RocksDB_compactRange0__J_3BI_3BIZII(
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jbyteArray jbegin,
+    jint jbegin_len, jbyteArray jend, jint jend_len, jboolean jreduce_level,
     jint jtarget_level, jint jtarget_path_id) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
-  rocksdb_compactrange_helper(env, db, nullptr, jbegin, jbegin_len,
-      jend, jend_len, jreduce_level, jtarget_level, jtarget_path_id);
+  rocksdb_compactrange_helper(env, db, nullptr, jbegin, jbegin_len, jend,
+                              jend_len, jreduce_level, jtarget_level,
+                              jtarget_path_id);
 }
 
 /*
@@ -1990,16 +2057,30 @@ void Java_org_rocksdb_RocksDB_compactRange0__J_3BI_3BIZII(JNIEnv* env,
  * Signature: (JJ[BI[BIZII)V
  */
 void Java_org_rocksdb_RocksDB_compactRange__J_3BI_3BIZIIJ(
-    JNIEnv* env, jobject jdb, jlong jdb_handle, jbyteArray jbegin,
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jbyteArray jbegin,
+    jint jbegin_len, jbyteArray jend, jint jend_len, jboolean jreduce_level,
+    jint jtarget_level, jint jtarget_path_id, jlong jcf_handle) {
+  auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
+  auto* cf_handle = reinterpret_cast<rocksdb::ColumnFamilyHandle*>(jcf_handle);
+  rocksdb_compactrange_helper(env, db, cf_handle, jbegin, jbegin_len, jend,
+                              jend_len, jreduce_level, jtarget_level,
+                              jtarget_path_id);
+}
+
+
+void Java_org_rocksdb_RocksDB_compactRange__J_3BI_3BIJJ(
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jbyteArray jbegin,
     jint jbegin_len, jbyteArray jend, jint jend_len,
-    jboolean jreduce_level, jint jtarget_level,
-    jint jtarget_path_id, jlong jcf_handle) {
+    jlong jcompact_options_handle, jlong jcf_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   auto* cf_handle = reinterpret_cast<rocksdb::ColumnFamilyHandle*>(jcf_handle);
-  rocksdb_compactrange_helper(env, db, cf_handle, jbegin, jbegin_len,
-      jend, jend_len, jreduce_level, jtarget_level, jtarget_path_id);
+  auto* compact_options = reinterpret_cast<rocksdb::CompactRangeOptions*>(jcompact_options_handle);
+
+  rocksdb_compactrange_helper(env, db, cf_handle, jbegin, jbegin_len, jend,
+                              jend_len, *compact_options);
 }
 
+
 //////////////////////////////////////////////////////////////////////////////
 // rocksdb::DB::PauseBackgroundWork
 
@@ -2008,8 +2089,8 @@ void Java_org_rocksdb_RocksDB_compactRange__J_3BI_3BIZIIJ(
  * Method:    pauseBackgroundWork
  * Signature: (J)V
  */
-void Java_org_rocksdb_RocksDB_pauseBackgroundWork(
-    JNIEnv* env, jobject jobj, jlong jdb_handle) {
+void Java_org_rocksdb_RocksDB_pauseBackgroundWork(JNIEnv* env, jobject /*jobj*/,
+                                                  jlong jdb_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   auto s = db->PauseBackgroundWork();
   if (!s.ok()) {
@@ -2025,8 +2106,9 @@ void Java_org_rocksdb_RocksDB_pauseBackgroundWork(
  * Method:    continueBackgroundWork
  * Signature: (J)V
  */
-void Java_org_rocksdb_RocksDB_continueBackgroundWork(
-    JNIEnv* env, jobject jobj, jlong jdb_handle) {
+void Java_org_rocksdb_RocksDB_continueBackgroundWork(JNIEnv* env,
+                                                     jobject /*jobj*/,
+                                                     jlong jdb_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   auto s = db->ContinueBackgroundWork();
   if (!s.ok()) {
@@ -2042,8 +2124,9 @@ void Java_org_rocksdb_RocksDB_continueBackgroundWork(
  * Method:    getLatestSequenceNumber
  * Signature: (J)V
  */
-jlong Java_org_rocksdb_RocksDB_getLatestSequenceNumber(JNIEnv* env,
-    jobject jdb, jlong jdb_handle) {
+jlong Java_org_rocksdb_RocksDB_getLatestSequenceNumber(JNIEnv* /*env*/,
+                                                       jobject /*jdb*/,
+                                                       jlong jdb_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   return db->GetLatestSequenceNumber();
 }
@@ -2056,8 +2139,8 @@ jlong Java_org_rocksdb_RocksDB_getLatestSequenceNumber(JNIEnv* env,
  * Method:    enableFileDeletions
  * Signature: (J)V
  */
-void Java_org_rocksdb_RocksDB_disableFileDeletions(JNIEnv* env,
-    jobject jdb, jlong jdb_handle) {
+void Java_org_rocksdb_RocksDB_disableFileDeletions(JNIEnv* env, jobject /*jdb*/,
+                                                   jlong jdb_handle) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   rocksdb::Status s = db->DisableFileDeletions();
   if (!s.ok()) {
@@ -2070,8 +2153,9 @@ void Java_org_rocksdb_RocksDB_disableFileDeletions(JNIEnv* env,
  * Method:    enableFileDeletions
  * Signature: (JZ)V
  */
-void Java_org_rocksdb_RocksDB_enableFileDeletions(JNIEnv* env,
-    jobject jdb, jlong jdb_handle, jboolean jforce) {
+void Java_org_rocksdb_RocksDB_enableFileDeletions(JNIEnv* env, jobject /*jdb*/,
+                                                  jlong jdb_handle,
+                                                  jboolean jforce) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   rocksdb::Status s = db->EnableFileDeletions(jforce);
   if (!s.ok()) {
@@ -2087,8 +2171,9 @@ void Java_org_rocksdb_RocksDB_enableFileDeletions(JNIEnv* env,
  * Method:    getUpdatesSince
  * Signature: (JJ)J
  */
-jlong Java_org_rocksdb_RocksDB_getUpdatesSince(JNIEnv* env,
-    jobject jdb, jlong jdb_handle, jlong jsequence_number) {
+jlong Java_org_rocksdb_RocksDB_getUpdatesSince(JNIEnv* env, jobject /*jdb*/,
+                                               jlong jdb_handle,
+                                               jlong jsequence_number) {
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   rocksdb::SequenceNumber sequence_number =
       static_cast<rocksdb::SequenceNumber>(jsequence_number);
@@ -2107,22 +2192,23 @@ jlong Java_org_rocksdb_RocksDB_getUpdatesSince(JNIEnv* env,
  * Method:    setOptions
  * Signature: (JJ[Ljava/lang/String;[Ljava/lang/String;)V
  */
-void Java_org_rocksdb_RocksDB_setOptions(JNIEnv* env, jobject jdb,
-    jlong jdb_handle, jlong jcf_handle, jobjectArray jkeys,
-    jobjectArray jvalues) {
+void Java_org_rocksdb_RocksDB_setOptions(JNIEnv* env, jobject /*jdb*/,
+                                         jlong jdb_handle, jlong jcf_handle,
+                                         jobjectArray jkeys,
+                                         jobjectArray jvalues) {
   const jsize len = env->GetArrayLength(jkeys);
   assert(len == env->GetArrayLength(jvalues));
 
   std::unordered_map<std::string, std::string> options_map;
   for (jsize i = 0; i < len; i++) {
     jobject jobj_key = env->GetObjectArrayElement(jkeys, i);
-    if(env->ExceptionCheck()) {
+    if (env->ExceptionCheck()) {
       // exception thrown: ArrayIndexOutOfBoundsException
       return;
     }
 
     jobject jobj_value = env->GetObjectArrayElement(jvalues, i);
-    if(env->ExceptionCheck()) {
+    if (env->ExceptionCheck()) {
       // exception thrown: ArrayIndexOutOfBoundsException
       env->DeleteLocalRef(jobj_key);
       return;
@@ -2132,7 +2218,7 @@ void Java_org_rocksdb_RocksDB_setOptions(JNIEnv* env, jobject jdb,
     jstring jval = reinterpret_cast<jstring>(jobj_value);
 
     const char* key = env->GetStringUTFChars(jkey, nullptr);
-    if(key == nullptr) {
+    if (key == nullptr) {
       // exception thrown: OutOfMemoryError
       env->DeleteLocalRef(jobj_value);
       env->DeleteLocalRef(jobj_key);
@@ -2140,7 +2226,7 @@ void Java_org_rocksdb_RocksDB_setOptions(JNIEnv* env, jobject jdb,
     }
 
     const char* value = env->GetStringUTFChars(jval, nullptr);
-    if(value == nullptr) {
+    if (value == nullptr) {
       // exception thrown: OutOfMemoryError
       env->ReleaseStringUTFChars(jkey, key);
       env->DeleteLocalRef(jobj_value);
@@ -2164,39 +2250,61 @@ void Java_org_rocksdb_RocksDB_setOptions(JNIEnv* env, jobject jdb,
 }
 
 //////////////////////////////////////////////////////////////////////////////
-// rocksdb::DB::AddFile
+// rocksdb::DB::IngestExternalFile
 
 /*
  * Class:     org_rocksdb_RocksDB
- * Method:    addFile
- * Signature: (JJ[Ljava/lang/String;IZ)V
+ * Method:    ingestExternalFile
+ * Signature: (JJ[Ljava/lang/String;IJ)V
  */
-void Java_org_rocksdb_RocksDB_addFile__JJ_3Ljava_lang_String_2IZ(
-    JNIEnv* env, jobject jdb, jlong jdb_handle, jlong jcf_handle,
+void Java_org_rocksdb_RocksDB_ingestExternalFile(
+    JNIEnv* env, jobject /*jdb*/, jlong jdb_handle, jlong jcf_handle,
     jobjectArray jfile_path_list, jint jfile_path_list_len,
-    jboolean jmove_file) {
-
+    jlong jingest_external_file_options_handle) {
   jboolean has_exception = JNI_FALSE;
-  std::vector<std::string> file_path_list =
-      rocksdb::JniUtil::copyStrings(env, jfile_path_list, jfile_path_list_len,
-          &has_exception);
-  if(has_exception == JNI_TRUE) {
-    // exception occured
+  std::vector<std::string> file_path_list = rocksdb::JniUtil::copyStrings(
+      env, jfile_path_list, jfile_path_list_len, &has_exception);
+  if (has_exception == JNI_TRUE) {
+    // exception occurred
     return;
   }
 
   auto* db = reinterpret_cast<rocksdb::DB*>(jdb_handle);
   auto* column_family =
       reinterpret_cast<rocksdb::ColumnFamilyHandle*>(jcf_handle);
-  rocksdb::IngestExternalFileOptions ifo;
-  ifo.move_files = static_cast<bool>(jmove_file);
-  ifo.snapshot_consistency = true;
-  ifo.allow_global_seqno = false;
-  ifo.allow_blocking_flush = false;
+  auto* ifo = reinterpret_cast<rocksdb::IngestExternalFileOptions*>(
+      jingest_external_file_options_handle);
   rocksdb::Status s =
-      db->IngestExternalFile(column_family, file_path_list, ifo);
+      db->IngestExternalFile(column_family, file_path_list, *ifo);
   if (!s.ok()) {
     rocksdb::RocksDBExceptionJni::ThrowNew(env, s);
   }
 }
 
+/*
+ * Class:     org_rocksdb_RocksDB
+ * Method:    destroyDB
+ * Signature: (Ljava/lang/String;J)V
+ */
+void Java_org_rocksdb_RocksDB_destroyDB(JNIEnv* env, jclass /*jcls*/,
+                                        jstring jdb_path,
+                                        jlong joptions_handle) {
+  const char* db_path = env->GetStringUTFChars(jdb_path, nullptr);
+  if (db_path == nullptr) {
+    // exception thrown: OutOfMemoryError
+    return;
+  }
+
+  auto* options = reinterpret_cast<rocksdb::Options*>(joptions_handle);
+  if (options == nullptr) {
+    rocksdb::RocksDBExceptionJni::ThrowNew(
+        env, rocksdb::Status::InvalidArgument("Invalid Options."));
+  }
+
+  rocksdb::Status s = rocksdb::DestroyDB(db_path, *options);
+  env->ReleaseStringUTFChars(jdb_path, db_path);
+
+  if (!s.ok()) {
+    rocksdb::RocksDBExceptionJni::ThrowNew(env, s);
+  }
+}