From 9ab2ce07675e4679f19e1d9f3420eaa29bb1be9a Mon Sep 17 00:00:00 2001 From: xige-16 Date: Mon, 29 Jan 2024 14:47:03 +0800 Subject: [PATCH] enhance: [Cherry-pick] Opt vector dimension mismatch error message (#30316) Cherry-pick from master pr: https://github.com/milvus-io/milvus/pull/29928 Signed-off-by: xige-16 Signed-off-by: xige-16 --- internal/core/src/common/EasyAssert.h | 1 + internal/core/src/query/Plan.cpp | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/internal/core/src/common/EasyAssert.h b/internal/core/src/common/EasyAssert.h index 98b9eb7218..6d6bb2844f 100644 --- a/internal/core/src/common/EasyAssert.h +++ b/internal/core/src/common/EasyAssert.h @@ -58,6 +58,7 @@ enum ErrorCode { FieldNotLoaded = 2027, ExprInvalid = 2028, UnistdError = 2030, + DimNotMatch = 2032, KnowhereError = 2100, }; namespace impl { diff --git a/internal/core/src/query/Plan.cpp b/internal/core/src/query/Plan.cpp index e74e387111..87f1488753 100644 --- a/internal/core/src/query/Plan.cpp +++ b/internal/core/src/query/Plan.cpp @@ -49,8 +49,14 @@ ParsePlaceholderGroup(const Plan* plan, AssertInfo(element.num_of_queries_, "must have queries"); Assert(element.num_of_queries_ > 0); element.line_sizeof_ = info.values().Get(0).size(); - AssertInfo(field_meta.get_sizeof() == element.line_sizeof_, - "vector dimension mismatch"); + if (field_meta.get_sizeof() != element.line_sizeof_) { + throw SegcoreError( + DimNotMatch, + fmt::format("vector dimension mismatch, expected vector " + "size(byte) {}, actual {}.", + field_meta.get_sizeof(), + element.line_sizeof_)); + } auto& target = element.blob_; target.reserve(element.line_sizeof_ * element.num_of_queries_); for (auto& line : info.values()) {