From b92ad3edd6d764a4c908ce5b50c895cfa6b91b3a Mon Sep 17 00:00:00 2001 From: xige-16 Date: Mon, 15 Mar 2021 19:58:52 +0800 Subject: [PATCH] Fix error when search on collection without partitions Signed-off-by: xige-16 --- internal/querynode/search_service.go | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/internal/querynode/search_service.go b/internal/querynode/search_service.go index c89d1e034..4aea33c90 100644 --- a/internal/querynode/search_service.go +++ b/internal/querynode/search_service.go @@ -4,7 +4,6 @@ import "C" import ( "context" "errors" - "regexp" "strconv" "strings" "sync" @@ -250,16 +249,22 @@ func (ss *searchService) search(msg msgstream.TsMsg) error { var searchPartitionIDs []UniqueID partitionIDsInQuery := searchMsg.PartitionIDs if len(partitionIDsInQuery) == 0 { + if len(partitionIDsInCol) == 0 { + return errors.New("can't find any partition in this collection on query node") + } searchPartitionIDs = partitionIDsInCol } else { - for _, id := range partitionIDsInCol { - for _, toMatchID := range partitionIDsInQuery { - re := regexp.MustCompile("^" + strconv.FormatInt(toMatchID, 10) + "$") - if re.MatchString(strconv.FormatInt(id, 10)) { - searchPartitionIDs = append(searchPartitionIDs, id) - } + findPartition := false + for _, id := range partitionIDsInQuery { + _, err := ss.replica.getPartitionByID(id) + if err == nil { + searchPartitionIDs = append(searchPartitionIDs, id) + findPartition = true } } + if !findPartition { + return errors.New("partition to be searched not exist in query node") + } } for _, partitionID := range searchPartitionIDs { -- GitLab