diff --git a/core/src/server/ValidationUtil.cpp b/core/src/server/ValidationUtil.cpp index cc4fd55151ebf29ef284580543fbb0cca9e7351d..a41b49c8f3e7649cb152e6f4eb7dc562ef546f18 100644 --- a/core/src/server/ValidationUtil.cpp +++ b/core/src/server/ValidationUtil.cpp @@ -448,5 +448,15 @@ ValidateInsertDataSize(const engine::DataChunkPtr& data) { return Status::OK(); } +Status +ValidateCompactThreshold(double threshold) { + if (threshold > 1.0 || threshold < 0.0) { + std::string msg = "Invalid compact threshold: " + std::to_string(threshold) + ". Should be in range [0.0, 1.0]"; + return Status(SERVER_INVALID_ROWRECORD_ARRAY, msg); + } + + return Status::OK(); +} + } // namespace server } // namespace milvus diff --git a/core/src/server/ValidationUtil.h b/core/src/server/ValidationUtil.h index 79705aa30252e94a87fb33823fcd7fe527e37af5..f9f950d1c3c181ad0cb7f2c27569294f415784f1 100644 --- a/core/src/server/ValidationUtil.h +++ b/core/src/server/ValidationUtil.h @@ -55,5 +55,8 @@ ValidatePartitionTags(const std::vector& partition_tags); extern Status ValidateInsertDataSize(const engine::DataChunkPtr& data); + +extern Status +ValidateCompactThreshold(double threshold); } // namespace server } // namespace milvus diff --git a/core/src/server/delivery/request/CompactReq.cpp b/core/src/server/delivery/request/CompactReq.cpp index 22fa724bbffb6f268803e8e46e6811d9b480e196..a0f2d391b64354b1b7bd814c356c50a6d2b09656 100644 --- a/core/src/server/delivery/request/CompactReq.cpp +++ b/core/src/server/delivery/request/CompactReq.cpp @@ -43,6 +43,11 @@ CompactReq::OnExecute() { std::string hdr = "CompactReq(collection=" + collection_name_ + ")"; TimeRecorderAuto rc(hdr); + auto status = ValidateCompactThreshold(compact_threshold_); + if (!status.ok()) { + return status; + } + bool exist = false; STATUS_CHECK(DBWrapper::DB()->HasCollection(collection_name_, exist)); if (!exist) {