*: simple code (#46247)

This commit is contained in:
Weizhen Wang
2023-08-21 10:11:03 +08:00
committed by GitHub
parent 0b2d62bcf6
commit ab4d6ad71c
3 changed files with 8 additions and 11 deletions

View File

@ -919,14 +919,13 @@ func checkEmptyTopNs(topNs []*TopN) bool {
}
// SortTopnMeta sort topnMeta
func SortTopnMeta(topnMetas []TopNMeta) []TopNMeta {
func SortTopnMeta(topnMetas []TopNMeta) {
slices.SortFunc(topnMetas, func(i, j TopNMeta) int {
if i.Count != j.Count {
return cmp.Compare(j.Count, i.Count)
}
return bytes.Compare(i.Encoded, j.Encoded)
})
return topnMetas
}
// GetMergedTopNFromSortedSlice returns merged topn
@ -935,12 +934,7 @@ func GetMergedTopNFromSortedSlice(sorted []TopNMeta, n uint32) (*TopN, []TopNMet
}
func getMergedTopNFromSortedSlice(sorted []TopNMeta, n uint32) (*TopN, []TopNMeta) {
slices.SortFunc(sorted, func(i, j TopNMeta) int {
if i.Count != j.Count {
return cmp.Compare(j.Count, i.Count)
}
return bytes.Compare(i.Encoded, j.Encoded)
})
SortTopnMeta(sorted)
n = mathutil.Min(uint32(len(sorted)), n)
var finalTopN TopN

View File

@ -347,8 +347,8 @@ func TestSortTopnMeta(t *testing.T) {
Encoded: []byte("b"),
Count: 2,
}}
sortedData := SortTopnMeta(data)
require.Equal(t, uint64(2), sortedData[0].Count)
SortTopnMeta(data)
require.Equal(t, uint64(2), data[0].Count)
}
func TestMergePartTopN2GlobalTopNWithHists(t *testing.T) {

View File

@ -970,7 +970,10 @@ func MergeGlobalStatsTopNByConcurrency(mergeConcurrency, mergeBatchSize int, wra
}
globalTopN, popedTopn := statistics.GetMergedTopNFromSortedSlice(sorted, n)
return globalTopN, statistics.SortTopnMeta(append(leftTopn, popedTopn...)), wrapper.AllHg, nil
result := append(leftTopn, popedTopn...)
statistics.SortTopnMeta(result)
return globalTopN, result, wrapper.AllHg, nil
}
func (h *Handle) getTableByPhysicalID(is infoschema.InfoSchema, physicalID int64) (table.Table, bool) {