diff --git a/db/db_sst_test.cc b/db/db_sst_test.cc index 478a6bdab..589a5915b 100644 --- a/db/db_sst_test.cc +++ b/db/db_sst_test.cc @@ -102,6 +102,14 @@ TEST_F(DBSSTTest, SSTsWithLdbSuffixHandling) { int const num_files = GetSstFileCount(dbname_); ASSERT_GT(num_files, 0); + Reopen(options); + std::vector values; + values.reserve(key_id); + for (int k = 0; k < key_id; ++k) { + values.push_back(Get(Key(k))); + } + Close(); + std::vector filenames; GetSstFiles(env_, dbname_, &filenames); int num_ldb_files = 0; @@ -119,7 +127,7 @@ TEST_F(DBSSTTest, SSTsWithLdbSuffixHandling) { Reopen(options); for (int k = 0; k < key_id; ++k) { - ASSERT_NE("NOT_FOUND", Get(Key(k))); + ASSERT_EQ(values[k], Get(Key(k))); } Destroy(options); } diff --git a/db/table_cache.cc b/db/table_cache.cc index 8a8a80ba3..12bd90230 100644 --- a/db/table_cache.cc +++ b/db/table_cache.cc @@ -100,8 +100,13 @@ Status TableCache::GetTableReader( std::unique_ptr file; Status s = ioptions_.fs->NewRandomAccessFile(fname, file_options, &file, nullptr); - RecordTick(ioptions_.statistics, NO_FILE_OPENS); + if (s.IsPathNotFound()) { + fname = Rocks2LevelTableFileName(fname); + s = ioptions_.fs->NewRandomAccessFile(fname, file_options, &file, nullptr); + RecordTick(ioptions_.statistics, NO_FILE_OPENS); + } + if (s.ok()) { if (!sequential_mode && ioptions_.advise_random_on_open) { file->Hint(FSRandomAccessFile::kRandom);