diff --git a/be/src/runtime/snapshot_loader.cpp b/be/src/runtime/snapshot_loader.cpp index f88b4cb87c1d2..20b8ebbf5c892 100644 --- a/be/src/runtime/snapshot_loader.cpp +++ b/be/src/runtime/snapshot_loader.cpp @@ -756,10 +756,14 @@ bool SnapshotLoader::_end_with(const std::string& str, const std::string& match) return false; } +bool SnapshotLoader::_contains(const std::string& str, const std::string& match) { + return str.find(match) != std::string::npos; +} + bool SnapshotLoader::_is_index_files(const std::string& str) { return _end_with(str, "fdt") || _end_with(str, "fdx") || _end_with(str, "fnm") || _end_with(str, "frq") || _end_with(str, "nrm") || _end_with(str, "prx") || _end_with(str, "tii") || _end_with(str, "tis") || - _end_with(str, "null_bitmap") || _end_with(str, "segments_2") || _end_with(str, "segments.gen"); + _end_with(str, "null_bitmap") || _contains(str, "segments"); } Status SnapshotLoader::_get_tablet_id_and_schema_hash_from_file_path(const std::string& src_path, int64_t* tablet_id, diff --git a/be/src/runtime/snapshot_loader.h b/be/src/runtime/snapshot_loader.h index e7a8172c11dc5..db83947bfce28 100644 --- a/be/src/runtime/snapshot_loader.h +++ b/be/src/runtime/snapshot_loader.h @@ -96,6 +96,7 @@ class SnapshotLoader { const std::string& new_name); bool _end_with(const std::string& str, const std::string& match); + bool _contains(const std::string& str, const std::string& match); bool _is_index_files(const std::string& str); diff --git a/be/test/runtime/snapshot_loader_test.cpp b/be/test/runtime/snapshot_loader_test.cpp index fcd2f889e06bc..6801a3b42e11c 100644 --- a/be/test/runtime/snapshot_loader_test.cpp +++ b/be/test/runtime/snapshot_loader_test.cpp @@ -108,6 +108,14 @@ TEST_F(SnapshotLoaderTest, NormalCase) { st = loader._get_tablet_id_from_remote_path("/__tbl_10004/__part_10003/__idx_10004/__10005", &tablet_id); ASSERT_TRUE(st.ok()); ASSERT_EQ(10005, tablet_id); + + ASSERT_TRUE(loader._contains("1234_2_5_12345_1.segments_1", "segments")); + ASSERT_TRUE(loader._contains("1234_2_5_12345_1.segments_2", "segments")); + ASSERT_TRUE(loader._contains("1234_2_5_12345_1.segments_3", "segments")); + ASSERT_TRUE(loader._contains("1234_2_5_12345_1.segments_4", "segments")); + ASSERT_TRUE(loader._contains("1234_2_5_12345_1.segments_5", "segments")); + + ASSERT_TRUE(loader._contains("1234_2_5_12345_1.segments.gen", "segments")); } } // namespace starrocks