diff --git a/CHANGELOG.md b/CHANGELOG.md index 03b1ddc..3066886 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## [Unreleased] +* Bump `librocksdb-sys` up to 6.19.3 (olegnn) + ## 0.16.0 (2021-04-18) * Add `DB::cancel_all_background_work` method (stanislav-tkach) diff --git a/Cargo.toml b/Cargo.toml index 8667c5e..721d6a1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rocksdb" description = "Rust wrapper for Facebook's RocksDB embeddable database" -version = "0.16.0" +version = "0.17.0" edition = "2018" authors = ["Tyler Neely ", "David Greenberg "] repository = "https://github.com/rust-rocksdb/rust-rocksdb" @@ -28,7 +28,7 @@ multi-threaded-cf = [] [dependencies] libc = "0.2" -librocksdb-sys = { path = "librocksdb-sys", version = "6.17.3" } +librocksdb-sys = { path = "librocksdb-sys", version = "6.19.3" } [dev-dependencies] trybuild = "1.0" diff --git a/librocksdb-sys/Cargo.toml b/librocksdb-sys/Cargo.toml index 7361f5f..f1d22b6 100644 --- a/librocksdb-sys/Cargo.toml +++ b/librocksdb-sys/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "librocksdb-sys" -version = "6.17.3" +version = "6.19.3" edition = "2018" authors = ["Karl Hobley ", "Arkadiy Paronyan "] license = "MIT/Apache-2.0/BSD-3-Clause" @@ -29,5 +29,5 @@ uuid = { version = "0.8", features = ["v4"] } [build-dependencies] cc = { version = "1.0", features = ["parallel"] } -bindgen = { version = "0.57.0", default-features = false, features = ["runtime"] } +bindgen = { version = "0.58.1", default-features = false, features = ["runtime"] } glob = "0.3" diff --git a/librocksdb-sys/build.rs b/librocksdb-sys/build.rs index 417f916..28433a5 100644 --- a/librocksdb-sys/build.rs +++ b/librocksdb-sys/build.rs @@ -37,7 +37,7 @@ fn bindgen_rocksdb() { let bindings = bindgen::Builder::default() .header(rocksdb_include_dir() + "/rocksdb/c.h") .derive_debug(false) - .blacklist_type("max_align_t") // https://github.com/rust-lang-nursery/rust-bindgen/issues/550 + .blocklist_type("max_align_t") // https://github.com/rust-lang-nursery/rust-bindgen/issues/550 .ctypes_prefix("libc") .size_t_is_usize(true) .generate() @@ -96,7 +96,7 @@ fn build_rocksdb() { lib_sources = lib_sources .iter() .cloned() - .filter(|file| *file != "util/build_version.cc") + .filter(|&file| file != "util/build_version.cc") .collect::>(); if target.contains("x86_64") { diff --git a/librocksdb-sys/build_version.cc b/librocksdb-sys/build_version.cc index 9854317..c9774f9 100644 --- a/librocksdb-sys/build_version.cc +++ b/librocksdb-sys/build_version.cc @@ -1,4 +1,62 @@ -#include "build_version.h" -const char* rocksdb_build_git_sha = "rocksdb_build_git_sha:@09c7e96eac1ab983f97ce9e0406730b8014b3398@"; -const char* rocksdb_build_git_date = "rocksdb_build_git_date:@2021/02/18 09:36:23@"; -const char* rocksdb_build_compile_date = __DATE__; +// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + +#include + +#include "rocksdb/version.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:645c445978bb22c8c7791f90a0d9931928a58045"; +static const std::string rocksdb_build_git_tag = "rocksdb_build_git_tag:master"; +static const std::string rocksdb_build_date = "rocksdb_build_date:2021-04-19 19:57:42"; + +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 = ToString(ROCKSDB_MAJOR) + "." + ToString(ROCKSDB_MINOR); + if (with_patch) { + return version + "." + ToString(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/librocksdb-sys/build_version.h b/librocksdb-sys/build_version.h deleted file mode 100644 index ca1dbf5..0000000 --- a/librocksdb-sys/build_version.h +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) 2013, 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. -// -#pragma once -#if !defined(IOS_CROSS_COMPILE) -// if we compile with Xcode, we don't run build_detect_vesion, so we don't -// generate these variables -// this variable tells us about the git revision -extern const char* rocksdb_build_git_sha; - -// Date on which the code was compiled: -extern const char* rocksdb_build_compile_date; -#endif diff --git a/librocksdb-sys/rocksdb b/librocksdb-sys/rocksdb index 09c7e96..645c445 160000 --- a/librocksdb-sys/rocksdb +++ b/librocksdb-sys/rocksdb @@ -1 +1 @@ -Subproject commit 09c7e96eac1ab983f97ce9e0406730b8014b3398 +Subproject commit 645c445978bb22c8c7791f90a0d9931928a58045 diff --git a/librocksdb-sys/rocksdb_lib_sources.txt b/librocksdb-sys/rocksdb_lib_sources.txt index 2fb1970..2270bad 100644 --- a/librocksdb-sys/rocksdb_lib_sources.txt +++ b/librocksdb-sys/rocksdb_lib_sources.txt @@ -76,20 +76,22 @@ db/write_batch.cc db/write_batch_base.cc db/write_controller.cc db/write_thread.cc +env/composite_env.cc env/env.cc env/env_chroot.cc env/env_encryption.cc env/env_hdfs.cc env/env_posix.cc env/file_system.cc -env/file_system_tracer.cc env/fs_posix.cc +env/file_system_tracer.cc env/io_posix.cc env/mock_env.cc file/delete_scheduler.cc file/file_prefetch_buffer.cc file/file_util.cc file/filename.cc +file/line_file_reader.cc file/random_access_file_reader.cc file/read_write_util.cc file/readahead_raf.cc @@ -131,6 +133,12 @@ options/options.cc options/options_helper.cc options/options_parser.cc port/port_posix.cc +port/win/env_default.cc +port/win/env_win.cc +port/win/io_win.cc +port/win/port_win.cc +port/win/win_logger.cc +port/win/win_thread.cc port/stack_trace.cc table/adaptive/adaptive_table_factory.cc table/block_based/binary_search_index_reader.cc @@ -182,15 +190,8 @@ table/table_properties.cc table/two_level_iterator.cc test_util/sync_point.cc test_util/sync_point_impl.cc -test_util/testutil.cc test_util/transaction_test_util.cc -tools/block_cache_analyzer/block_cache_trace_analyzer.cc tools/dump/db_dump_tool.cc -tools/io_tracer_parser_tool.cc -tools/ldb_cmd.cc -tools/ldb_tool.cc -tools/sst_dump_tool.cc -tools/trace_analyzer_tool.cc trace_replay/trace_replay.cc trace_replay/block_cache_tracer.cc trace_replay/io_tracer.cc @@ -206,6 +207,7 @@ util/hash.cc util/murmurhash.cc util/random.cc util/rate_limiter.cc +util/ribbon_config.cc util/slice.cc util/file_checksum_helper.cc util/status.cc @@ -218,7 +220,6 @@ utilities/blob_db/blob_compaction_filter.cc utilities/blob_db/blob_db.cc utilities/blob_db/blob_db_impl.cc utilities/blob_db/blob_db_impl_filesnapshot.cc -utilities/blob_db/blob_dump_tool.cc utilities/blob_db/blob_file.cc utilities/cassandra/cassandra_compaction_filter.cc utilities/cassandra/format.cc @@ -233,13 +234,13 @@ utilities/fault_injection_env.cc utilities/fault_injection_fs.cc utilities/leveldb_options/leveldb_options.cc utilities/memory/memory_util.cc -utilities/merge_operators/bytesxor.cc utilities/merge_operators/max.cc utilities/merge_operators/put.cc utilities/merge_operators/sortlist.cc utilities/merge_operators/string_append/stringappend.cc utilities/merge_operators/string_append/stringappend2.cc utilities/merge_operators/uint64add.cc +utilities/merge_operators/bytesxor.cc utilities/object_registry.cc utilities/option_change_migration/option_change_migration.cc utilities/options/options_util.cc @@ -255,22 +256,8 @@ utilities/trace/file_trace_reader_writer.cc utilities/transactions/lock/lock_manager.cc utilities/transactions/lock/point/point_lock_tracker.cc utilities/transactions/lock/point/point_lock_manager.cc -utilities/transactions/lock/range/range_tree/lib/locktree/concurrent_tree.cc -utilities/transactions/lock/range/range_tree/lib/locktree/keyrange.cc -utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc -utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc -utilities/transactions/lock/range/range_tree/lib/locktree/manager.cc -utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.cc -utilities/transactions/lock/range/range_tree/lib/locktree/treenode.cc -utilities/transactions/lock/range/range_tree/lib/locktree/txnid_set.cc -utilities/transactions/lock/range/range_tree/lib/locktree/wfg.cc -utilities/transactions/lock/range/range_tree/lib/standalone_port.cc -utilities/transactions/lock/range/range_tree/lib/util/dbt.cc -utilities/transactions/lock/range/range_tree/lib/util/memarena.cc -utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc -utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.cc -utilities/transactions/optimistic_transaction_db_impl.cc utilities/transactions/optimistic_transaction.cc +utilities/transactions/optimistic_transaction_db_impl.cc utilities/transactions/pessimistic_transaction.cc utilities/transactions/pessimistic_transaction_db.cc utilities/transactions/snapshot_checker.cc @@ -284,3 +271,18 @@ utilities/transactions/write_unprepared_txn_db.cc utilities/ttl/db_ttl_impl.cc utilities/write_batch_with_index/write_batch_with_index.cc utilities/write_batch_with_index/write_batch_with_index_internal.cc +util/crc32c_arm64.cc +utilities/transactions/lock/range/range_tree/lib/locktree/concurrent_tree.cc +utilities/transactions/lock/range/range_tree/lib/locktree/keyrange.cc +utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc +utilities/transactions/lock/range/range_tree/lib/locktree/manager.cc +utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.cc +utilities/transactions/lock/range/range_tree/lib/locktree/treenode.cc +utilities/transactions/lock/range/range_tree/lib/locktree/txnid_set.cc +utilities/transactions/lock/range/range_tree/lib/locktree/wfg.cc +utilities/transactions/lock/range/range_tree/lib/standalone_port.cc +utilities/transactions/lock/range/range_tree/lib/util/dbt.cc +utilities/transactions/lock/range/range_tree/lib/util/memarena.cc +utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.cc \ No newline at end of file