Skip to content

Commit e4bb47e

Browse files
authored
Merge pull request #545 from zeminzhou/sort-mariadb-gtid
sort mariadb gtid set before printing
2 parents 0bd942a + 8b5c143 commit e4bb47e

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

mysql/mariadb_gtid.go

+8-2
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ package mysql
33
import (
44
"bytes"
55
"fmt"
6+
"sort"
67
"strconv"
78
"strings"
89

910
"github.com/pingcap/errors"
1011
"github.com/siddontang/go-log/log"
11-
"github.com/siddontang/go/hack"
1212
)
1313

1414
// MariadbGTID represent mariadb gtid, [domain ID]-[server-id]-[sequence]
@@ -157,7 +157,13 @@ func (s *MariadbGTIDSet) Update(GTIDStr string) error {
157157
}
158158

159159
func (s *MariadbGTIDSet) String() string {
160-
return hack.String(s.Encode())
160+
sets := make([]string, 0, len(s.Sets))
161+
for _, set := range s.Sets {
162+
sets = append(sets, set.String())
163+
}
164+
sort.Strings(sets)
165+
166+
return strings.Join(sets, ",")
161167
}
162168

163169
// Encode encodes mariadb gtid set

mysql/mariadb_gtid_test.go

+11
Original file line numberDiff line numberDiff line change
@@ -232,3 +232,14 @@ func (t *mariaDBTestSuite) TestMariaDBGTIDSetClone(c *check.C) {
232232
c.Assert(gtidSet.Clone(), check.DeepEquals, gtidSet)
233233
}
234234
}
235+
236+
func (t *mariaDBTestSuite) TestMariaDBGTIDSetSortedString(c *check.C) {
237+
cases := [][]string{{"", ""}, {"1-1-1", "1-1-1"},
238+
{"2-2-2,1-1-1,3-2-1", "1-1-1,2-2-2,3-2-1"}}
239+
240+
for _, strs := range cases {
241+
gtidSet, err := ParseMariadbGTIDSet(strs[0])
242+
c.Assert(err, check.IsNil)
243+
c.Assert(gtidSet.String(), check.Equals, strs[1])
244+
}
245+
}

0 commit comments

Comments
 (0)