Skip to content

Commit 40b95be

Browse files
committed
w
Merge branch 'main' into fix_crash_test
2 parents ac5f126 + c6cfbc2 commit 40b95be

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1266
-175
lines changed

db/builder.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,7 @@ Status BuildTable(
218218
const Slice& key = c_iter.key();
219219
const Slice& value = c_iter.value();
220220
ParsedInternalKey ikey = c_iter.ikey();
221-
key_after_flush_buf.assign(key.data(), key.size());
222-
Slice key_after_flush = key_after_flush_buf;
221+
Slice key_after_flush = key;
223222
Slice value_after_flush = value;
224223

225224
if (ikey.type == kTypeValuePreferredSeqno) {
@@ -237,6 +236,7 @@ Status BuildTable(
237236
std::min(smallest_preferred_seqno, preferred_seqno);
238237
} else {
239238
// Cannot get a useful preferred seqno, convert it to a kTypeValue.
239+
key_after_flush_buf.assign(key.data(), key.size());
240240
UpdateInternalKey(&key_after_flush_buf, ikey.sequence, kTypeValue);
241241
ikey = ParsedInternalKey(ikey.user_key, ikey.sequence, kTypeValue);
242242
key_after_flush = key_after_flush_buf;

db/column_family.cc

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,19 +110,28 @@ void GetInternalTblPropCollFactory(
110110
}
111111
}
112112

113+
bool CompressionSupportedWithManager(CompressionType type,
114+
UnownedPtr<CompressionManager> mgr) {
115+
return mgr ? mgr->SupportsCompressionType(type)
116+
: CompressionTypeSupported(type);
117+
}
118+
113119
Status CheckCompressionSupported(const ColumnFamilyOptions& cf_options) {
114120
if (!cf_options.compression_per_level.empty()) {
115121
for (size_t level = 0; level < cf_options.compression_per_level.size();
116122
++level) {
117-
if (!CompressionTypeSupported(cf_options.compression_per_level[level])) {
123+
if (!CompressionSupportedWithManager(
124+
cf_options.compression_per_level[level],
125+
cf_options.compression_manager.get())) {
118126
return Status::InvalidArgument(
119127
"Compression type " +
120128
CompressionTypeToString(cf_options.compression_per_level[level]) +
121129
" is not linked with the binary.");
122130
}
123131
}
124132
} else {
125-
if (!CompressionTypeSupported(cf_options.compression)) {
133+
if (!CompressionSupportedWithManager(
134+
cf_options.compression, cf_options.compression_manager.get())) {
126135
return Status::InvalidArgument(
127136
"Compression type " +
128137
CompressionTypeToString(cf_options.compression) +

db/compaction/compaction_job_test.cc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -458,9 +458,10 @@ class CompactionJobTestBase : public testing::Test {
458458
ReadOptions read_opts;
459459
Status s = cf_options_.table_factory->NewTableReader(
460460
read_opts,
461-
TableReaderOptions(cfd->ioptions(), nullptr, FileOptions(),
461+
TableReaderOptions(cfd->ioptions(), /*prefix_extractor=*/nullptr,
462+
/*compression_manager=*/nullptr, FileOptions(),
462463
cfd_->internal_comparator(),
463-
0 /* block_protection_bytes_per_key */),
464+
/*block_protection_bytes_per_key=*/0),
464465
std::move(freader), file_size, &table_reader, false);
465466
ASSERT_OK(s);
466467
assert(table_reader);

db/convenience.cc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,10 @@ Status VerifySstFileChecksumInternal(const Options& options,
9393
nullptr /* file_read_hist */, ioptions.rate_limiter.get()));
9494
const bool kImmortal = true;
9595
auto reader_options = TableReaderOptions(
96-
ioptions, options.prefix_extractor, env_options, internal_comparator,
97-
options.block_protection_bytes_per_key, false /* skip_filters */,
98-
!kImmortal, false /* force_direct_prefetch */, -1 /* level */);
96+
ioptions, options.prefix_extractor, options.compression_manager.get(),
97+
env_options, internal_comparator, options.block_protection_bytes_per_key,
98+
false /* skip_filters */, !kImmortal, false /* force_direct_prefetch */,
99+
-1 /* level */);
99100
reader_options.largest_seqno = largest_seqno;
100101
s = options.table_factory->NewTableReader(
101102
read_options, reader_options, std::move(file_reader), file_size,

db/db_test.cc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6209,8 +6209,7 @@ TEST_F(DBTest, L0L1L2AndUpHitCounter) {
62096209
}
62106210

62116211
TEST_F(DBTest, EncodeDecompressedBlockSizeTest) {
6212-
bool& allow_unsupported_fv =
6213-
BlockBasedTableFactory::AllowUnsupportedFormatVersion();
6212+
bool& allow_unsupported_fv = TEST_AllowUnsupportedFormatVersion();
62146213
SaveAndRestore guard(&allow_unsupported_fv);
62156214
ASSERT_FALSE(allow_unsupported_fv);
62166215

0 commit comments

Comments
 (0)