Skip to content

Commit 33da064

Browse files
authored
Add rocksdb patch to solve symbol conflict issues (#88)
1 parent 8c9883c commit 33da064

File tree

2 files changed

+113
-0
lines changed

2 files changed

+113
-0
lines changed

patches/apply.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@ else
1010
git -C ../third_party/rocksdb apply ../../patches/rocksdb.patch
1111
fi
1212

13+
if git -C ../third_party/rocksdb apply --reverse --check ../../patches/rocksdb.patch.2 &>/dev/null; then
14+
echo "rocksdb patch 2 already applied. skipping."
15+
else
16+
git -C ../third_party/rocksdb apply ../../patches/rocksdb.patch.2
17+
fi
18+
1319
if git -C ../third_party/folly apply --reverse --check ../../patches/folly.patch &>/dev/null; then
1420
echo "folly patch already applied. skipping."
1521
else

patches/rocksdb.patch.2

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
diff --git a/utilities/cassandra/cassandra_compaction_filter.cc b/utilities/cassandra/cassandra_compaction_filter.cc
2+
index d59db47d4..938f56af4 100644
3+
--- a/utilities/cassandra/cassandra_compaction_filter.cc
4+
+++ b/utilities/cassandra/cassandra_compaction_filter.cc
5+
@@ -78,7 +78,7 @@ CassandraCompactionFilterFactory::CreateCompactionFilter(
6+
}
7+
8+
#ifndef ROCKSDB_LITE
9+
-int RegisterCassandraObjects(ObjectLibrary& library,
10+
+int RocksDBRegisterCassandraObjects(ObjectLibrary& library,
11+
const std::string& /*arg*/) {
12+
library.AddFactory<MergeOperator>(
13+
CassandraValueMergeOperator::kClassName(),
14+
diff --git a/utilities/cassandra/cassandra_functional_test.cc b/utilities/cassandra/cassandra_functional_test.cc
15+
index 15f633bac..03ea6b949 100644
16+
--- a/utilities/cassandra/cassandra_functional_test.cc
17+
+++ b/utilities/cassandra/cassandra_functional_test.cc
18+
@@ -335,7 +335,7 @@ TEST_F(CassandraFunctionalTest, LoadMergeOperator) {
19+
ASSERT_NOK(MergeOperator::CreateFromString(
20+
config_options, CassandraValueMergeOperator::kClassName(), &mo));
21+
22+
- config_options.registry->AddLibrary("cassandra", RegisterCassandraObjects,
23+
+ config_options.registry->AddLibrary("cassandra", RocksDBRegisterCassandraObjects,
24+
"cassandra");
25+
26+
ASSERT_OK(MergeOperator::CreateFromString(
27+
@@ -363,7 +363,7 @@ TEST_F(CassandraFunctionalTest, LoadCompactionFilter) {
28+
29+
ASSERT_NOK(CompactionFilter::CreateFromString(
30+
config_options, CassandraCompactionFilter::kClassName(), &filter));
31+
- config_options.registry->AddLibrary("cassandra", RegisterCassandraObjects,
32+
+ config_options.registry->AddLibrary("cassandra", RocksDBRegisterCassandraObjects,
33+
"cassandra");
34+
35+
ASSERT_OK(CompactionFilter::CreateFromString(
36+
@@ -395,7 +395,7 @@ TEST_F(CassandraFunctionalTest, LoadCompactionFilterFactory) {
37+
ASSERT_NOK(CompactionFilterFactory::CreateFromString(
38+
config_options, CassandraCompactionFilterFactory::kClassName(),
39+
&factory));
40+
- config_options.registry->AddLibrary("cassandra", RegisterCassandraObjects,
41+
+ config_options.registry->AddLibrary("cassandra", RocksDBRegisterCassandraObjects,
42+
"cassandra");
43+
44+
ASSERT_OK(CompactionFilterFactory::CreateFromString(
45+
diff --git a/utilities/cassandra/cassandra_options.h b/utilities/cassandra/cassandra_options.h
46+
index efa73a308..f399b4c96 100644
47+
--- a/utilities/cassandra/cassandra_options.h
48+
+++ b/utilities/cassandra/cassandra_options.h
49+
@@ -36,7 +36,7 @@ struct CassandraOptions {
50+
};
51+
#ifndef ROCKSDB_LITE
52+
extern "C" {
53+
-int RegisterCassandraObjects(ObjectLibrary& library, const std::string& arg);
54+
+int RocksDBRegisterCassandraObjects(ObjectLibrary& library, const std::string& arg);
55+
} // extern "C"
56+
#endif // ROCKSDB_LITE
57+
} // namespace cassandra
58+
diff --git a/utilities/ttl/db_ttl_impl.cc b/utilities/ttl/db_ttl_impl.cc
59+
index 1c2c6daa1..a8d7fde70 100644
60+
--- a/utilities/ttl/db_ttl_impl.cc
61+
+++ b/utilities/ttl/db_ttl_impl.cc
62+
@@ -279,7 +279,7 @@ Status TtlCompactionFilterFactory::ValidateOptions(
63+
}
64+
}
65+
66+
-int RegisterTtlObjects(ObjectLibrary& library, const std::string& /*arg*/) {
67+
+int RocksDBRegisterTtlObjects(ObjectLibrary& library, const std::string& /*arg*/) {
68+
library.AddFactory<MergeOperator>(
69+
TtlMergeOperator::kClassName(),
70+
[](const std::string& /*uri*/, std::unique_ptr<MergeOperator>* guard,
71+
@@ -330,7 +330,7 @@ Status DBWithTTLImpl::Close() {
72+
void DBWithTTLImpl::RegisterTtlClasses() {
73+
static std::once_flag once;
74+
std::call_once(once, [&]() {
75+
- ObjectRegistry::Default()->AddLibrary("TTL", RegisterTtlObjects, "");
76+
+ ObjectRegistry::Default()->AddLibrary("TTL", RocksDBRegisterTtlObjects, "");
77+
});
78+
}
79+
80+
diff --git a/utilities/ttl/db_ttl_impl.h b/utilities/ttl/db_ttl_impl.h
81+
index 7c43501a4..f11910d36 100644
82+
--- a/utilities/ttl/db_ttl_impl.h
83+
+++ b/utilities/ttl/db_ttl_impl.h
84+
@@ -242,7 +242,7 @@ class TtlMergeOperator : public MergeOperator {
85+
SystemClock* clock_;
86+
};
87+
extern "C" {
88+
-int RegisterTtlObjects(ObjectLibrary& library, const std::string& /*arg*/);
89+
+int RocksDBRegisterTtlObjects(ObjectLibrary& library, const std::string& /*arg*/);
90+
} // extern "C"
91+
92+
} // namespace ROCKSDB_NAMESPACE
93+
diff --git a/utilities/ttl/ttl_test.cc b/utilities/ttl/ttl_test.cc
94+
index 982051ac7..0434de021 100644
95+
--- a/utilities/ttl/ttl_test.cc
96+
+++ b/utilities/ttl/ttl_test.cc
97+
@@ -772,8 +772,8 @@ static int RegisterTestObjects(ObjectLibrary& library,
98+
class TtlOptionsTest : public testing::Test {
99+
public:
100+
TtlOptionsTest() {
101+
- config_options_.registry->AddLibrary("RegisterTtlObjects",
102+
- RegisterTtlObjects, "");
103+
+ config_options_.registry->AddLibrary("RocksDBRegisterTtlObjects",
104+
+ RocksDBRegisterTtlObjects, "");
105+
config_options_.registry->AddLibrary("RegisterTtlTestObjects",
106+
RegisterTestObjects, "");
107+
}

0 commit comments

Comments
 (0)