From b6a5ce892d108cff920c16ea8f4fa3fe8701e9fe Mon Sep 17 00:00:00 2001 From: docsir <1060166828@qq.com> Date: Thu, 2 Sep 2021 13:11:40 +0800 Subject: [PATCH] add a func for sort pkVals --- v4/export/dump.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/v4/export/dump.go b/v4/export/dump.go index f26b48b7..ef5f336d 100755 --- a/v4/export/dump.go +++ b/v4/export/dump.go @@ -691,6 +691,30 @@ func (d *Dumper) L() log.Logger { return d.tctx.L() } +// func for sort pkVals +type tds [][]string + +func (d tds) Len() int { + return len(d) +} + +func (d tds) Swap(i, j int) { + d[i], d[j] = d[j], d[i] +} + +func (d tds) Less(i, j int) bool { + n := len(d[i]) + for k := 0; k < n; k++ { + if d[i][k] < d[j][k] { + return true + } else if d[i][k] == d[j][k] { + continue + } else { + return false + } + } + return false +} func selectTiDBTableSample(tctx *tcontext.Context, conn *sql.Conn, meta TableMeta) (pkFields []string, pkVals [][]string, err error) { pkFields, pkColTypes, err := selectTiDBRowKeyFields(conn, meta, nil) if err != nil { @@ -723,6 +747,7 @@ func selectTiDBTableSample(tctx *tcontext.Context, conn *sql.Conn, meta TableMet iter.Next() } iter.Close() + sort.Sort(tds(pkVals)) return pkFields, pkVals, iter.Error() }