From b7f410e43f964b861c6cbaf1276c80a7df39c20a Mon Sep 17 00:00:00 2001 From: groot Date: Thu, 14 May 2020 07:50:26 -0500 Subject: [PATCH] #2338 (#2345) * fix #2264 Signed-off-by: yhmo * typo Signed-off-by: yhmo * fix ut Signed-off-by: yhmo * typo Signed-off-by: yhmo * Remove unnecessary memcpy Signed-off-by: yhmo * remove SearchByID from C++SDK Signed-off-by: yhmo * #2338 Signed-off-by: yhmo --- core/src/db/meta/MySQLMetaImpl.cpp | 13 ++++++++----- core/src/db/meta/SqliteMetaImpl.cpp | 13 ++++++++----- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/core/src/db/meta/MySQLMetaImpl.cpp b/core/src/db/meta/MySQLMetaImpl.cpp index 31df3f90fe..ae98a28ff3 100644 --- a/core/src/db/meta/MySQLMetaImpl.cpp +++ b/core/src/db/meta/MySQLMetaImpl.cpp @@ -1731,7 +1731,7 @@ MySQLMetaImpl::FilesToMerge(const std::string& collection_id, FilesHolder& files } // Scoped Connection Status ret; - int64_t files_count = 0; + SegmentsSchema files; for (auto& resRow : res) { SegmentSchema collection_file; collection_file.file_size_ = resRow["file_size"]; @@ -1759,12 +1759,15 @@ MySQLMetaImpl::FilesToMerge(const std::string& collection_id, FilesHolder& files continue; } - files_holder.MarkFile(collection_file); - files_count++; + files.emplace_back(collection_file); } - if (files_count > 0) { - LOG_ENGINE_DEBUG_ << "Collect " << files_count << " to-merge files in collection " << collection_id; + // no need to merge if files count less than 2 + if (files.size() > 1) { + LOG_ENGINE_DEBUG_ << "Collect " << files.size() << " to-merge files in collection " << collection_id; + for (auto& file : files) { + files_holder.MarkFile(file); + } } return ret; } catch (std::exception& e) { diff --git a/core/src/db/meta/SqliteMetaImpl.cpp b/core/src/db/meta/SqliteMetaImpl.cpp index 00cb6c1133..373d15ae10 100644 --- a/core/src/db/meta/SqliteMetaImpl.cpp +++ b/core/src/db/meta/SqliteMetaImpl.cpp @@ -1148,7 +1148,7 @@ SqliteMetaImpl::FilesToMerge(const std::string& collection_id, FilesHolder& file } Status result; - int64_t files_count = 0; + SegmentsSchema files; for (auto& file : selected) { SegmentSchema collection_file; collection_file.file_size_ = std::get<5>(file); @@ -1174,12 +1174,15 @@ SqliteMetaImpl::FilesToMerge(const std::string& collection_id, FilesHolder& file result = status; } - files_holder.MarkFile(collection_file); - files_count++; + files.emplace_back(collection_file); } - if (files_count > 0) { - LOG_ENGINE_DEBUG_ << "Collect " << files_count << " to-merge files in collection " << collection_id; + // no need to merge if files count less than 2 + if (files.size() > 1) { + LOG_ENGINE_DEBUG_ << "Collect " << files.size() << " to-merge files in collection " << collection_id; + for (auto& file : files) { + files_holder.MarkFile(file); + } } return result; } catch (std::exception& e) {