diff --git a/mysql/mariadb_gtid.go b/mysql/mariadb_gtid.go index 8faf0f5ef..6e472c657 100644 --- a/mysql/mariadb_gtid.go +++ b/mysql/mariadb_gtid.go @@ -217,6 +217,9 @@ func (s *MariadbGTIDSet) Equal(o GTIDSet) bool { if !ok { return false } + if len(serverSet) != len(set) { + return false + } for serverID, gtid := range set { if o, ok := serverSet[serverID]; !ok { return false diff --git a/mysql/mariadb_gtid_test.go b/mysql/mariadb_gtid_test.go index 0acb8ce5e..5a2aeca23 100644 --- a/mysql/mariadb_gtid_test.go +++ b/mysql/mariadb_gtid_test.go @@ -181,6 +181,7 @@ func TestMariaDBGTIDSetEqual(t *testing.T) { {"1-1-1,2-2-2", "1-1-1", false}, {"1-1-1,2-2-2", "1-1-1,2-2-2", true}, {"1-1-1,2-2-2", "1-1-1,2-2-3", false}, + {"0-1-1,0-2-2", "0-2-2", false}, } for _, cs := range cases {