From 9ec78729fabb46e35fcdb760ba403cdf120bb432 Mon Sep 17 00:00:00 2001 From: Weizhen Wang Date: Fri, 15 Sep 2023 11:42:09 +0800 Subject: [PATCH] statistics: use slices.BinarySearchFunc to simple TopN.FindTopN (#46996) ref pingcap/tidb#45933 --- statistics/cmsketch.go | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/statistics/cmsketch.go b/statistics/cmsketch.go index 7a51a5e466..ed924b39e0 100644 --- a/statistics/cmsketch.go +++ b/statistics/cmsketch.go @@ -639,13 +639,8 @@ func (c *TopN) FindTopN(d []byte) int { if c == nil { return -1 } - match := false - idx := sort.Search(len(c.TopN), func(i int) bool { - cmpRst := bytes.Compare(c.TopN[i].Encoded, d) - if cmpRst == 0 { - match = true - } - return cmpRst >= 0 + idx, match := slices.BinarySearchFunc(c.TopN, d, func(a TopNMeta, b []byte) int { + return bytes.Compare(a.Encoded, b) }) if !match { return -1