diff --git a/.gitmodules b/.gitmodules
index 5560cb3..e69de29 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,6 +0,0 @@
-[submodule "rocksdb"]
- path = rocksdb
- url = https://github.com/facebook/rocksdb.git
-[submodule "lz4"]
- path = lz4
- url = git@github.com:lz4/lz4.git
diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/ObjectiveRocks.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/ObjectiveRocks.xcscheme
new file mode 100644
index 0000000..ca4c14d
--- /dev/null
+++ b/.swiftpm/xcode/xcshareddata/xcschemes/ObjectiveRocks.xcscheme
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Code/RocksDBBackupEngine.mm b/Code/RocksDBBackupEngine.mm
index 408e47e..039bff4 100644
--- a/Code/RocksDBBackupEngine.mm
+++ b/Code/RocksDBBackupEngine.mm
@@ -11,7 +11,7 @@
#import "RocksDBBackupInfo.h"
#include
-#include
+#include
#pragma mark - Informal Protocols
@@ -45,7 +45,7 @@ - (instancetype)initWithPath:(NSString *)path
if (self) {
_path = [path copy];
rocksdb::Status status = rocksdb::BackupEngine::Open(rocksdb::Env::Default(),
- rocksdb::BackupableDBOptions(_path.UTF8String),
+ rocksdb::BackupEngineOptions(_path.UTF8String),
&_backupEngine);
if (!status.ok()) {
NSLog(@"Error opening database backup: %@", [RocksDBError errorWithRocksStatus:status]);
diff --git a/Code/RocksDBComparator.mm b/Code/RocksDBComparator.mm
index 169404f..7aa6dc0 100644
--- a/Code/RocksDBComparator.mm
+++ b/Code/RocksDBComparator.mm
@@ -42,14 +42,14 @@ + (instancetype)comaparatorWithType:(RocksDBComparatorType)type
return [[self alloc] initWithName:@"objectiverocks.string.compare.asc" andBlock:^int(NSData *key1, NSData *key2) {
NSString *str1 = [[NSString alloc] initWithData:key1 encoding:NSUTF8StringEncoding];
NSString *str2 = [[NSString alloc] initWithData:key2 encoding:NSUTF8StringEncoding];
- return [str1 compare:str2];
+ return (int)[str1 compare:str2];
}];
case RocksDBComparatorStringCompareDescending:
return [[self alloc] initWithName:@"objectiverocks.string.compare.desc" andBlock:^int(NSData *key1, NSData *key2) {
NSString *str1 = [[NSString alloc] initWithData:key1 encoding:NSUTF8StringEncoding];
NSString *str2 = [[NSString alloc] initWithData:key2 encoding:NSUTF8StringEncoding];
- return -1 * [str1 compare:str2];
+ return -1 * (int)[str1 compare:str2];
}];
}
}
diff --git a/Package.swift b/Package.swift
index 16ec7de..f807863 100644
--- a/Package.swift
+++ b/Package.swift
@@ -1,4 +1,4 @@
-// swift-tools-version: 5.7
+// swift-tools-version: 5.8
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
@@ -21,337 +21,49 @@ let package = Package(
// Targets can depend on other targets in this package, and on products in packages this package depends on.
.target(
name: "ObjectiveRocks",
- dependencies: ["librocksdb"],
+ dependencies: ["RocksDB", "lz4"],
path: "Code",
+ publicHeadersPath: "./"
+ ),
+ .testTarget(
+ name: "ObjectiveRocksTests",
+ dependencies: ["ObjectiveRocks"],
+ path: "Tests",
exclude: [
- "RocksDBWriteBatchIterator+Private.h",
-
- "RocksDBColumnFamilyMetadata.h",
- "RocksDBIndexedWriteBatch.h",
- "RocksDBWriteBatchIterator.h",
- "RocksDBPlainTableOptions.h",
- "RocksDBCuckooTableOptions.h",
- "RocksDBProperties.h",
- "RocksDBCheckpoint.h",
- "RocksDBStatistics.h",
- "RocksDBStatisticsHistogram.h",
- "RocksDBBackupEngine.h",
- "RocksDBBackupInfo.h",
-
- "RocksDBColumnFamilyMetadata.mm",
- "RocksDBIndexedWriteBatch.mm",
- "RocksDBWriteBatchIterator.mm",
- "RocksDBPlainTableOptions.mm",
- "RocksDBCuckooTableOptions.mm",
- "RocksDBProperties.mm",
- "RocksDBCheckpoint.mm",
- "RocksDBStatistics.mm",
- "RocksDBStatisticsHistogram.mm",
- "RocksDBBackupEngine.mm",
- "RocksDBBackupInfo.mm",
-
- "RocksDBError.h",
- "RocksDBSlice.h",
-
- "RocksDBCallbackAssociativeMergeOperator.h",
- "RocksDBCallbackComparator.h",
- "RocksDBCallbackMergeOperator.h",
- "RocksDBCallbackSliceTransform.h",
- ],
- publicHeadersPath: "./",
- cxxSettings: [
- .define("ROCKSDB_LITE"),
+ "RocksDBIndexedWriteBatchTests.m",
+ "RocksDBReadOnlyTests.m",
+ "RocksDBBackupTests.mm",
+ "RocksDBBasicTests.mm",
+ "RocksDBCheckpointTests.mm",
+ "RocksDBColumnFamilyMetadataTests.mm",
+ "RocksDBColumnFamilyTests.mm",
+ "RocksDBComparatorTests.mm",
+ "RocksDBIteratorTests.mm",
+ "RocksDBMergeOperatorTests.mm",
+ "RocksDBPrefixExtractorTests.mm",
+ "RocksDBPropertiesTests.mm",
+ "RocksDBSnapshotTests.mm",
+ "RocksDBStatisticsTests.mm",
+ "RocksDBTests.mm",
+ "RocksDBWriteBatchTests.mm",
]
),
- .target(name: "librocksdb",
- path: ".",
- exclude: [
- "rocksdb/db/c.cc",
- "rocksdb/db/db_test2.cc",
- "rocksdb/db/db_test_util.cc",
-
- "rocksdb/db/db_test2.cc",
- "rocksdb/db/db_test_util.cc",
- "rocksdb/db/db_with_timestamp_test_util.cc",
- "rocksdb/db/c_test.c",
-
- "rocksdb/include/rocksdb/c.h",
-
- "rocksdb/table/mock_table.cc",
-
- "rocksdb/test_util/testharness.cc",
- "rocksdb/test_util/secondary_cache_test_util.cc",
- "rocksdb/test_util/transaction_test_util.cc",
-
- "rocksdb/utilities/cassandra",
-
- "rocksdb/util/crc32c_ppc_asm.S",
-
- "rocksdb/util/build_version.cc",
-
- "rocksdb/port/README",
- "rocksdb/util/build_version.cc.in",
- "rocksdb/utilities/transactions/lock/range/range_tree/lib/COPYING.AGPLv3",
- "rocksdb/utilities/transactions/lock/range/range_tree/lib/COPYING.APACHEv2",
- "rocksdb/utilities/transactions/lock/range/range_tree/lib/COPYING.GPLv2",
- "rocksdb/utilities/transactions/lock/range/range_tree/lib/README",
-
- "rocksdb/tools/db_bench.cc",
- "rocksdb/cache/cache_bench.cc",
- "rocksdb/util/log_write_bench.cc",
- "rocksdb/util/filter_bench.cc",
- "rocksdb/memtable/memtablerep_bench.cc",
- "rocksdb/utilities/persistent_cache/persistent_cache_bench.cc",
- "rocksdb/utilities/persistent_cache/hash_table_bench.cc",
- "rocksdb/microbench/ribbon_bench.cc",
- "rocksdb/microbench/db_basic_bench.cc",
- "rocksdb/table/table_reader_bench.cc",
- "rocksdb/db/forward_iterator_bench.cc",
- "rocksdb/db/range_del_aggregator_bench.cc",
-
- "rocksdb/options/customizable_test.cc",
- "rocksdb/options/options_test.cc",
- "rocksdb/options/configurable_test.cc",
- "rocksdb/options/options_settable_test.cc",
- "rocksdb/tools/db_bench_tool_test.cc",
- "rocksdb/tools/sst_dump_test.cc",
- "rocksdb/tools/trace_analyzer_test.cc",
- "rocksdb/tools/io_tracer_parser_test.cc",
- "rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc",
- "rocksdb/tools/reduce_levels_test.cc",
- "rocksdb/tools/ldb_cmd_test.cc",
- "rocksdb/tools/db_sanity_test.cc",
- "rocksdb/memory/memory_allocator_test.cc",
- "rocksdb/memory/arena_test.cc",
- "rocksdb/cache/compressed_secondary_cache_test.cc",
- "rocksdb/cache/lru_cache_test.cc",
- "rocksdb/cache/cache_test.cc",
- "rocksdb/cache/cache_reservation_manager_test.cc",
- "rocksdb/util/rate_limiter_test.cc",
- "rocksdb/util/thread_list_test.cc",
- "rocksdb/util/work_queue_test.cc",
- "rocksdb/util/thread_local_test.cc",
- "rocksdb/util/defer_test.cc",
- "rocksdb/util/file_reader_writer_test.cc",
- "rocksdb/util/heap_test.cc",
- "rocksdb/util/autovector_test.cc",
- "rocksdb/util/crc32c_test.cc",
- "rocksdb/util/bloom_test.cc",
- "rocksdb/util/hash_test.cc",
- "rocksdb/util/udt_util_test.cc",
- "rocksdb/util/filelock_test.cc",
- "rocksdb/util/timer_test.cc",
- "rocksdb/util/coding_test.cc",
- "rocksdb/util/ribbon_test.cc",
- "rocksdb/util/dynamic_bloom_test.cc",
- "rocksdb/util/repeatable_thread_test.cc",
- "rocksdb/util/random_test.cc",
- "rocksdb/util/slice_transform_test.cc",
- "rocksdb/util/slice_test.cc",
- "rocksdb/util/timer_queue_test.cc",
- "rocksdb/file/prefetch_test.cc",
- "rocksdb/file/random_access_file_reader_test.cc",
- "rocksdb/file/delete_scheduler_test.cc",
- "rocksdb/memtable/inlineskiplist_test.cc",
- "rocksdb/memtable/write_buffer_manager_test.cc",
- "rocksdb/memtable/skiplist_test.cc",
-
- "rocksdb/java/rocksjni/native_comparator_wrapper_test.cc",
- "rocksdb/java/rocksjni/rocksdb_exception_test.cc",
- "rocksdb/java/rocksjni/write_batch_test.cc",
- "rocksdb/env/env_basic_test.cc",
- "rocksdb/env/env_test.cc",
- "rocksdb/env/io_posix_test.cc",
- "rocksdb/env/mock_env_test.cc",
- "rocksdb/utilities/simulator_cache/sim_cache_test.cc",
- "rocksdb/utilities/simulator_cache/cache_simulator_test.cc",
- "rocksdb/utilities/options/options_util_test.cc",
- "rocksdb/utilities/util_merge_operators_test.cc",
- "rocksdb/utilities/checkpoint/checkpoint_test.cc",
- "rocksdb/utilities/memory/memory_test.cc",
- "rocksdb/utilities/ttl/ttl_test.cc",
- "rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector_test.cc",
- "rocksdb/utilities/option_change_migration/option_change_migration_test.cc",
- "rocksdb/utilities/transactions/timestamped_snapshot_test.cc",
- "rocksdb/utilities/transactions/write_prepared_transaction_test.cc",
- "rocksdb/utilities/transactions/write_unprepared_transaction_test.cc",
- "rocksdb/utilities/transactions/lock/point/point_lock_manager_test.cc",
- "rocksdb/utilities/transactions/lock/range/range_locking_test.cc",
- "rocksdb/utilities/transactions/transaction_test.cc",
- "rocksdb/utilities/transactions/optimistic_transaction_test.cc",
- "rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc",
- "rocksdb/utilities/cassandra/cassandra_serialize_test.cc",
- "rocksdb/utilities/cassandra/cassandra_row_merge_test.cc",
- "rocksdb/utilities/cassandra/cassandra_format_test.cc",
- "rocksdb/utilities/cassandra/cassandra_functional_test.cc",
- "rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc",
- "rocksdb/utilities/agg_merge/agg_merge_test.cc",
- "rocksdb/utilities/merge_operators/string_append/stringappend_test.cc",
- "rocksdb/utilities/backup/backup_engine_test.cc",
- "rocksdb/utilities/persistent_cache/persistent_cache_test.cc",
- "rocksdb/utilities/persistent_cache/hash_table_test.cc",
- "rocksdb/utilities/object_registry_test.cc",
- "rocksdb/utilities/env_mirror_test.cc",
- "rocksdb/utilities/env_timed_test.cc",
- "rocksdb/utilities/blob_db/blob_db_test.cc",
- "rocksdb/table/sst_file_reader_test.cc",
- "rocksdb/table/cleanable_test.cc",
- "rocksdb/table/merger_test.cc",
- "rocksdb/table/cuckoo/cuckoo_table_builder_test.cc",
- "rocksdb/table/cuckoo/cuckoo_table_reader_test.cc",
- "rocksdb/table/block_based/data_block_hash_index_test.cc",
- "rocksdb/table/block_based/full_filter_block_test.cc",
- "rocksdb/table/block_based/block_test.cc",
- "rocksdb/table/block_based/block_based_table_reader_test.cc",
- "rocksdb/table/block_based/partitioned_filter_block_test.cc",
- "rocksdb/table/block_fetcher_test.cc",
- "rocksdb/table/table_test.cc",
- "rocksdb/db/db_io_failure_test.cc",
- "rocksdb/db/periodic_task_scheduler_test.cc",
- "rocksdb/db/db_universal_compaction_test.cc",
- "rocksdb/db/options_file_test.cc",
- "rocksdb/db/db_encryption_test.cc",
- "rocksdb/db/db_iter_test.cc",
- "rocksdb/db/db_compaction_test.cc",
- "rocksdb/db/column_family_test.cc",
- "rocksdb/db/range_tombstone_fragmenter_test.cc",
- "rocksdb/db/compact_files_test.cc",
- "rocksdb/db/table_properties_collector_test.cc",
- "rocksdb/db/db_basic_test.cc",
- "rocksdb/db/file_indexer_test.cc",
- "rocksdb/db/flush_job_test.cc",
- "rocksdb/db/external_sst_file_test.cc",
- "rocksdb/db/range_del_aggregator_test.cc",
- "rocksdb/db/db_iter_stress_test.cc",
- "rocksdb/db/fault_injection_test.cc",
- "rocksdb/db/wal_manager_test.cc",
- "rocksdb/db/db_inplace_update_test.cc",
- "rocksdb/db/db_flush_test.cc",
- "rocksdb/db/db_log_iter_test.cc",
- "rocksdb/db/wal_edit_test.cc",
- "rocksdb/db/prefix_test.cc",
- "rocksdb/db/db_range_del_test.cc",
- "rocksdb/db/db_memtable_test.cc",
- "rocksdb/db/db_secondary_test.cc",
- "rocksdb/db/compaction/compaction_iterator_test.cc",
- "rocksdb/db/compaction/compaction_service_test.cc",
- "rocksdb/db/compaction/compaction_job_stats_test.cc",
- "rocksdb/db/compaction/clipping_iterator_test.cc",
- "rocksdb/db/compaction/tiered_compaction_test.cc",
- "rocksdb/db/compaction/compaction_picker_test.cc",
- "rocksdb/db/compaction/compaction_job_test.cc",
- "rocksdb/db/db_with_timestamp_compaction_test.cc",
- "rocksdb/db/db_clip_test.cc",
- "rocksdb/db/perf_context_test.cc",
- "rocksdb/db/db_merge_operand_test.cc",
- "rocksdb/db/db_logical_block_size_cache_test.cc",
- "rocksdb/db/comparator_db_test.cc",
- "rocksdb/db/db_readonly_with_timestamp_test.cc",
- "rocksdb/db/version_builder_test.cc",
- "rocksdb/db/wide/db_wide_basic_test.cc",
- "rocksdb/db/wide/wide_column_serialization_test.cc",
- "rocksdb/db/external_sst_file_basic_test.cc",
- "rocksdb/db/db_statistics_test.cc",
- "rocksdb/db/import_column_family_test.cc",
- "rocksdb/db/db_compaction_filter_test.cc",
- "rocksdb/db/corruption_test.cc",
- "rocksdb/db/seqno_time_test.cc",
- "rocksdb/db/repair_test.cc",
- "rocksdb/db/db_merge_operator_test.cc",
- "rocksdb/db/merge_helper_test.cc",
- "rocksdb/db/filename_test.cc",
- "rocksdb/db/log_test.cc",
- "rocksdb/db/db_kv_checksum_test.cc",
- "rocksdb/db/obsolete_files_test.cc",
- "rocksdb/db/db_properties_test.cc",
- "rocksdb/db/version_set_test.cc",
- "rocksdb/db/db_test.cc",
- "rocksdb/db/listener_test.cc",
- "rocksdb/db/db_with_timestamp_basic_test.cc",
- "rocksdb/db/db_options_test.cc",
- "rocksdb/db/db_table_properties_test.cc",
- "rocksdb/db/merge_test.cc",
- "rocksdb/db/db_bloom_filter_test.cc",
- "rocksdb/db/cuckoo_table_db_test.cc",
- "rocksdb/db/db_rate_limiter_test.cc",
- "rocksdb/db/db_block_cache_test.cc",
- "rocksdb/db/manual_compaction_test.cc",
- "rocksdb/db/db_write_buffer_manager_test.cc",
- "rocksdb/db/db_wal_test.cc",
- "rocksdb/db/memtable_list_test.cc",
- "rocksdb/db/write_batch_test.cc",
- "rocksdb/db/db_iterator_test.cc",
- "rocksdb/db/db_write_test.cc",
- "rocksdb/db/error_handler_fs_test.cc",
- "rocksdb/db/blob/blob_counting_iterator_test.cc",
- "rocksdb/db/blob/db_blob_compaction_test.cc",
- "rocksdb/db/blob/db_blob_corruption_test.cc",
- "rocksdb/db/blob/blob_garbage_meter_test.cc",
- "rocksdb/db/blob/blob_file_builder_test.cc",
- "rocksdb/db/blob/blob_file_reader_test.cc",
- "rocksdb/db/blob/blob_source_test.cc",
- "rocksdb/db/blob/db_blob_basic_test.cc",
- "rocksdb/db/blob/db_blob_index_test.cc",
- "rocksdb/db/blob/blob_file_cache_test.cc",
- "rocksdb/db/blob/blob_file_garbage_test.cc",
- "rocksdb/db/blob/blob_file_addition_test.cc",
- "rocksdb/db/plain_table_db_test.cc",
- "rocksdb/db/db_sst_test.cc",
- "rocksdb/db/version_edit_test.cc",
- "rocksdb/db/db_tailing_iter_test.cc",
- "rocksdb/db/deletefile_test.cc",
- "rocksdb/db/write_controller_test.cc",
- "rocksdb/db/dbformat_test.cc",
- "rocksdb/db/db_dynamic_level_test.cc",
- "rocksdb/db/write_callback_test.cc",
- "rocksdb/test_util/testutil_test.cc",
- "rocksdb/monitoring/statistics_test.cc",
- "rocksdb/monitoring/iostats_context_test.cc",
- "rocksdb/monitoring/stats_history_test.cc",
- "rocksdb/monitoring/histogram_test.cc",
- "rocksdb/trace_replay/block_cache_tracer_test.cc",
- "rocksdb/trace_replay/io_tracer_test.cc",
- "rocksdb/logging/auto_roll_logger_test.cc",
- "rocksdb/logging/env_logger_test.cc",
- "rocksdb/logging/event_logger_test.cc",
-
-
- ],
- sources: [
- "Patches/build_version.cc",
- "rocksdb/cache",
- "rocksdb/db",
- "rocksdb/env",
- "rocksdb/file",
- "rocksdb/include",
- "rocksdb/logging",
- "rocksdb/memory",
- "rocksdb/memtable",
- "rocksdb/monitoring",
- "rocksdb/options",
- "rocksdb/port",
- "rocksdb/table",
- "rocksdb/trace_replay",
- "rocksdb/util",
- "rocksdb/utilities",
- ],
- publicHeadersPath: "rocksdb/include",
- cxxSettings: [
- .headerSearchPath("./rocksdb"),
- .headerSearchPath("./lz4/lib"),
- .define("ROCKSDB_LITE"),
- .define("IOS_CROSS_COMPILE", .when(platforms: [.iOS])),
- .define("ROCKSDB_PLATFORM_POSIX"),
- .define("ROCKSDB_LIB_IO_POSIX"),
- .define("PORTABLE"),
- .define("OS_MACOSX"),
- .define("NDEBUG"),
- .define("NPERF_CONTEXT"),
- .define("NIOSTATS_CONTEXT"),
- .define("LZ4"),
- .define("HAVE_FULLFSYNC"),
- ]
- ),
+ .binaryTarget(
+ name: "RocksDB",
+ url: "https://github.com/GoodNotes/rocksdb/releases/download/v8.10.0/RocksDB.xcframework.zip",
+ checksum: "70b11dbb039a4e63fc7f4d100c49fb5dbd73db8a5cdefe24b6ee0eb32d1bda39"
+ ),
+ .target(
+ name: "lz4",
+ path: "lz4",
+ sources: [
+ "lz4.c",
+ "lz4.h",
+ "lz4hc.c",
+ "lz4hc.h",
+ ],
+ publicHeadersPath: "."
+ )
],
cxxLanguageStandard: .cxx20
)
diff --git a/Patches/build_version.cc b/Patches/build_version.cc
deleted file mode 100644
index e639f0c..0000000
--- a/Patches/build_version.cc
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
-
-#include
-
-#include "rocksdb/version.h"
-#include "rocksdb/utilities/object_registry.h"
-#include "util/string_util.h"
-
-// The build script may replace these values with real values based
-// on whether or not GIT is available and the platform settings
-static const std::string rocksdb_build_git_sha = "rocksdb_build_git_sha:145a50ba007326eab90da9b12d697b35f5b60e7d";
-static const std::string rocksdb_build_git_tag = "rocksdb_build_git_tag:v8.5.4";
-static const std::string rocksdb_build_date = "rocksdb_build_date:2023-09-27 04:47:02";
-
-std::unordered_map ROCKSDB_NAMESPACE::ObjectRegistry::builtins_ = {
-
-};
-
-namespace ROCKSDB_NAMESPACE {
-static void AddProperty(std::unordered_map *props, const std::string& name) {
- size_t colon = name.find(":");
- if (colon != std::string::npos && colon > 0 && colon < name.length() - 1) {
- // If we found a "@:", then this property was a build-time substitution that failed. Skip it
- size_t at = name.find("@", colon);
- if (at != colon + 1) {
- // Everything before the colon is the name, after is the value
- (*props)[name.substr(0, colon)] = name.substr(colon + 1);
- }
- }
-}
-
-static std::unordered_map* LoadPropertiesSet() {
- auto * properties = new std::unordered_map();
- AddProperty(properties, rocksdb_build_git_sha);
- AddProperty(properties, rocksdb_build_git_tag);
- AddProperty(properties, rocksdb_build_date);
- return properties;
-}
-
-const std::unordered_map& GetRocksBuildProperties() {
- static std::unique_ptr> props(LoadPropertiesSet());
- return *props;
-}
-
-std::string GetRocksVersionAsString(bool with_patch) {
- std::string version = std::to_string(ROCKSDB_MAJOR) + "." + std::to_string(ROCKSDB_MINOR);
- if (with_patch) {
- return version + "." + std::to_string(ROCKSDB_PATCH);
- } else {
- return version;
- }
-}
-
-std::string GetRocksBuildInfoAsString(const std::string& program, bool verbose) {
- std::string info = program + " (RocksDB) " + GetRocksVersionAsString(true);
- if (verbose) {
- for (const auto& it : GetRocksBuildProperties()) {
- info.append("\n ");
- info.append(it.first);
- info.append(": ");
- info.append(it.second);
- }
- }
- return info;
-}
-} // namespace ROCKSDB_NAMESPACE
-
diff --git a/Tests/RocksDBBasicTests.swift b/Tests/RocksDBBasicTests.swift
index 4a5177a..ca4eca9 100644
--- a/Tests/RocksDBBasicTests.swift
+++ b/Tests/RocksDBBasicTests.swift
@@ -8,7 +8,6 @@
import XCTest
import ObjectiveRocks
-
class RocksDBBasicTests : RocksDBTests {
func testSwift_DB_Open_ErrorIfExists() throws {
diff --git a/Tests/RocksDBColumnFamilyTests.swift b/Tests/RocksDBColumnFamilyTests.swift
index d63a5e0..07fea74 100644
--- a/Tests/RocksDBColumnFamilyTests.swift
+++ b/Tests/RocksDBColumnFamilyTests.swift
@@ -258,7 +258,7 @@ class RocksDBColumnFamilyTests : RocksDBTests {
try! newColumnFamily.setData("cf_value1", forKey: "cf_key1")
try! newColumnFamily.setData("cf_value2", forKey: "cf_key2")
- let dfIterator = defaultColumnFamily.iterator()
+ let dfIterator = defaultColumnFamily.iterator()!
var actual = [String]()
@@ -274,7 +274,7 @@ class RocksDBColumnFamilyTests : RocksDBTests {
dfIterator.close()
- let cfIterator = newColumnFamily.iterator()
+ let cfIterator = newColumnFamily.iterator()!
actual.removeAll()
diff --git a/Tests/RocksDBComparatorTests.swift b/Tests/RocksDBComparatorTests.swift
index 10d82a5..85ebb10 100644
--- a/Tests/RocksDBComparatorTests.swift
+++ b/Tests/RocksDBComparatorTests.swift
@@ -21,7 +21,7 @@ class RocksDBComparatorTests : RocksDBTests {
try! rocks.setData("abc2", forKey: "abc2")
try! rocks.setData("abc3", forKey: "abc3")
- let iterator = rocks.iterator()
+ let iterator = rocks.iterator()!
iterator.seekToFirst()
@@ -70,7 +70,7 @@ class RocksDBComparatorTests : RocksDBTests {
try! rocks.setData("abc2", forKey: "abc2")
try! rocks.setData("abc3", forKey: "abc3")
- let iterator = rocks.iterator()
+ let iterator = rocks.iterator()!
iterator.seekToFirst()
@@ -130,7 +130,7 @@ class RocksDBComparatorTests : RocksDBTests {
/* Expected Array: [A0, A1, A10, A100, A1000, A1001, A1019, A102, A1020, ...] */
expected.sort()
- let iterator = rocks.iterator()
+ let iterator = rocks.iterator()!
var idx = 0
iterator.enumerateKeys { (key, stop) -> Void in
@@ -156,7 +156,7 @@ class RocksDBComparatorTests : RocksDBTests {
/* Expected Array: [A9999, A9998 .. A9990, A999, A9989, ...] */
expected.sort()
- let iterator = rocks.iterator()
+ let iterator = rocks.iterator()!
var idx = 9999
iterator.enumerateKeys { (key, stop) -> Void in
diff --git a/Tests/RocksDBIteratorTests.swift b/Tests/RocksDBIteratorTests.swift
index 23074fd..8de2abb 100644
--- a/Tests/RocksDBIteratorTests.swift
+++ b/Tests/RocksDBIteratorTests.swift
@@ -21,7 +21,7 @@ class RocksDBIteratorTests : RocksDBTests {
try! rocks.setData("value 3", forKey: "key 3")
var actual = [String]()
- let iterator = rocks.iterator()
+ let iterator = rocks.iterator()!
iterator.seekToFirst()
while iterator.isValid() {
@@ -43,7 +43,7 @@ class RocksDBIteratorTests : RocksDBTests {
try! rocks.setData("value 1", forKey: "key 1")
try! rocks.setData("value 2", forKey: "key 2")
- let iterator = rocks.iterator()
+ let iterator = rocks.iterator()!
iterator.seekToFirst()
@@ -88,7 +88,7 @@ class RocksDBIteratorTests : RocksDBTests {
try! rocks.setData("value 3", forKey: "key 3")
var actual = [String]()
- let iterator = rocks.iterator()
+ let iterator = rocks.iterator()!
iterator.enumerateKeys { (key, stop) -> Void in
actual.append(String(data: key, encoding: .utf8)!)
@@ -110,7 +110,7 @@ class RocksDBIteratorTests : RocksDBTests {
try! rocks.setData("value 3", forKey: "key 3")
var actual = [String]()
- let iterator = rocks.iterator()
+ let iterator = rocks.iterator()!
iterator.enumerateKeys(inReverse: true, using: { (key, stop) -> Void in
actual.append(String(data: key, encoding: .utf8)!)
@@ -133,7 +133,7 @@ class RocksDBIteratorTests : RocksDBTests {
try! rocks.setData("value 4", forKey: "key 4")
var actual = [String]()
- let iterator = rocks.iterator()
+ let iterator = rocks.iterator()!
iterator.enumerateKeys(in: RocksDBMakeKeyRange("key 2", nil), reverse: false) { (key, stop) -> Void in
actual.append(String(data: key, encoding: .utf8)!)
@@ -156,7 +156,7 @@ class RocksDBIteratorTests : RocksDBTests {
try! rocks.setData("value 4", forKey: "key 4")
var actual = [String]()
- let iterator = rocks.iterator()
+ let iterator = rocks.iterator()!
iterator.enumerateKeys(in: RocksDBMakeKeyRange(nil, "key 4"), reverse: false) { (key, stop) -> Void in
actual.append(String(data: key, encoding: .utf8)!)
@@ -179,7 +179,7 @@ class RocksDBIteratorTests : RocksDBTests {
try! rocks.setData("value 4", forKey: "key 4")
var actual = [String]()
- let iterator = rocks.iterator()
+ let iterator = rocks.iterator()!
iterator.enumerateKeys(in: RocksDBMakeKeyRange("key 2", "key 4"), reverse: false) { (key, stop) -> Void in
actual.append(String(data: key, encoding: .utf8)!)
@@ -201,7 +201,7 @@ class RocksDBIteratorTests : RocksDBTests {
try! rocks.setData("value 3", forKey: "key 3")
var actual = [String]()
- let iterator = rocks.iterator()
+ let iterator = rocks.iterator()!
iterator.enumerateKeysAndValues { (key, value, stop) -> Void in
actual.append(String(data: key, encoding: .utf8)!)
@@ -224,7 +224,7 @@ class RocksDBIteratorTests : RocksDBTests {
try! rocks.setData("value 3", forKey: "key 3")
var actual = [String]()
- let iterator = rocks.iterator()
+ let iterator = rocks.iterator()!
iterator.enumerateKeysAndValues(inReverse: true, using: { (key, value, stop) -> Void in
actual.append(String(data: key, encoding: .utf8)!)
@@ -248,7 +248,7 @@ class RocksDBIteratorTests : RocksDBTests {
try! rocks.setData("value 4", forKey: "key 4")
var actual = [String]()
- let iterator = rocks.iterator()
+ let iterator = rocks.iterator()!
iterator.enumerateKeysAndValues(in: RocksDBMakeKeyRange("key 2", nil), reverse: false) { (key, value, stop) -> Void in
actual.append(String(data: key, encoding: .utf8)!)
@@ -272,7 +272,7 @@ class RocksDBIteratorTests : RocksDBTests {
try! rocks.setData("value 4", forKey: "key 4")
var actual = [String]()
- let iterator = rocks.iterator()
+ let iterator = rocks.iterator()!
iterator.enumerateKeysAndValues(in: RocksDBMakeKeyRange(nil, "key 4"), reverse: false) { (key, value, stop) -> Void in
actual.append(String(data: key, encoding: .utf8)!)
@@ -296,7 +296,7 @@ class RocksDBIteratorTests : RocksDBTests {
try! rocks.setData("value 4", forKey: "key 4")
var actual = [String]()
- let iterator = rocks.iterator()
+ let iterator = rocks.iterator()!
iterator.enumerateKeysAndValues(in: RocksDBMakeKeyRange("key 2", "key 4"), reverse: false) { (key, value, stop) -> Void in
actual.append(String(data: key, encoding: .utf8)!)
diff --git a/Tests/RocksDBMergeOperatorTests.swift b/Tests/RocksDBMergeOperatorTests.swift
index 9a85452..c85bc82 100644
--- a/Tests/RocksDBMergeOperatorTests.swift
+++ b/Tests/RocksDBMergeOperatorTests.swift
@@ -16,14 +16,18 @@ protocol DataConvertible {
extension DataConvertible {
init?(data: Data) {
- guard data.count == MemoryLayout.size else {
- return nil
- }
- self = data.withUnsafeBytes { $0.pointee }
+ guard data.count == MemoryLayout.size else {
+ return nil
+ }
+ self = data.withUnsafeBytes { rawBufferPointer in
+ guard let pointer = rawBufferPointer.baseAddress?.assumingMemoryBound(to: Self.self) else {
+ fatalError()
+ }
+ return pointer.pointee
+ }
}
var data: Data {
- var value = self
- return Data(buffer: UnsafeBufferPointer(start: &value, count: 1))
+ withUnsafeBytes(of: self) { Data($0) }
}
}
diff --git a/Tests/RocksDBPrefixExtractorTests.swift b/Tests/RocksDBPrefixExtractorTests.swift
index f3eb879..7164991 100644
--- a/Tests/RocksDBPrefixExtractorTests.swift
+++ b/Tests/RocksDBPrefixExtractorTests.swift
@@ -23,7 +23,7 @@ class RocksDBPrefixExtractorTests : RocksDBTests {
try! rocks.setData("x", forKey: "101A")
try! rocks.setData("x", forKey: "101B")
- let iterator = rocks.iterator()
+ let iterator = rocks.iterator()!
var keys = [String]()
iterator.enumerateKeys(withPrefix: "100", using: { (key, stop) -> Void in
@@ -97,7 +97,7 @@ class RocksDBPrefixExtractorTests : RocksDBTests {
try! rocks.setData("x", forKey: "1022")
try! rocks.setData("x", forKey: "5323")
- let iterator = rocks.iterator()
+ let iterator = rocks.iterator()!
var keys = [String]()
iterator.enumerateKeys(withPrefix: "10", using: { (key, stop) -> Void in
diff --git a/Tests/RocksDBSnapshotTests.swift b/Tests/RocksDBSnapshotTests.swift
index f23803a..9ecaeac 100644
--- a/Tests/RocksDBSnapshotTests.swift
+++ b/Tests/RocksDBSnapshotTests.swift
@@ -20,7 +20,7 @@ class RocksDBSnapshotTests : RocksDBTests {
try! rocks.setData("value 2", forKey: "key 2")
try! rocks.setData("value 3", forKey: "key 3")
- let snapshot = rocks.snapshot()
+ let snapshot = rocks.snapshot()!
try! rocks.deleteData(forKey: "key 1")
try! rocks.setData("value 4", forKey: "key 4")
@@ -45,13 +45,13 @@ class RocksDBSnapshotTests : RocksDBTests {
try! rocks.setData("value 2", forKey: "key 2")
try! rocks.setData("value 3", forKey: "key 3")
- let snapshot = rocks.snapshot()
+ let snapshot = rocks.snapshot()!
try! rocks.deleteData(forKey: "key 1")
try! rocks.setData("value 4", forKey: "key 4")
var actual = [String]()
- var iterator = snapshot.iterator()
+ var iterator = snapshot.iterator()!
iterator.enumerateKeys { (key, stop) -> Void in
actual.append(String(data: key, encoding: .utf8)!)
}
@@ -63,7 +63,7 @@ class RocksDBSnapshotTests : RocksDBTests {
actual.removeAll()
- iterator = snapshot.iterator()
+ iterator = snapshot.iterator()!
iterator.enumerateKeys { (key, stop) -> Void in
actual.append(String(data: key, encoding: .utf8)!)
}
@@ -78,13 +78,13 @@ class RocksDBSnapshotTests : RocksDBTests {
})
try! rocks.setData("value 1", forKey: "key 1")
- let snapshot1 = rocks.snapshot()
+ let snapshot1 = rocks.snapshot()!
try! rocks.setData("value 2", forKey: "key 2")
- let snapshot2 = rocks.snapshot()
+ let snapshot2 = rocks.snapshot()!
try! rocks.setData("value 3", forKey: "key 3")
- let snapshot3 = rocks.snapshot()
+ let snapshot3 = rocks.snapshot()!
XCTAssertEqual(snapshot1.sequenceNumber(), 1 as UInt64)
XCTAssertEqual(snapshot2.sequenceNumber(), 2 as UInt64)
diff --git a/lz4 b/lz4
deleted file mode 160000
index 5ff8396..0000000
--- a/lz4
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 5ff839680134437dbf4678f3d0c7b371d84f4964
diff --git a/rocksdb b/rocksdb
deleted file mode 160000
index 145a50b..0000000
--- a/rocksdb
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 145a50ba007326eab90da9b12d697b35f5b60e7d