@@ -48,3 +48,54 @@ func (_ *testDecodeSuite) TestMariadbGTIDEvent(c *C) {
48
48
c .Assert (ev .IsGroupCommit (), Equals , true )
49
49
c .Assert (ev .CommitID , Equals , uint64 (0x1716151413121110 ))
50
50
}
51
+
52
+ func (_ * testDecodeSuite ) TestGTIDEventMysql8NewFields (c * C ) {
53
+
54
+ testcases := []struct {
55
+ data []byte
56
+ expectImmediateCommitTimestamp uint64
57
+ expectOriginalCommitTimestamp uint64
58
+ expectTransactoinLength uint64
59
+ expectImmediateServerVersion uint32
60
+ expectOriginalServerVersion uint32
61
+ }{
62
+ {
63
+ // master: mysql-5.7, slave: mysql-8.0
64
+ data : []byte ("\x00 Z\xa7 *\u007f D\xa8 \x11 \xea \x94 \u007f \x02 B\xac \x19 \x00 \x02 \x02 \x01 \x00 \x00 \x00 \x00 \x00 \x00 \x02 v\x00 \x00 \x00 \x00 \x00 \x00 \x00 w\x00 \x00 \x00 \x00 \x00 \x00 \x00 \xc1 G\x81 \x16 x\xa0 \x85 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \xfc \xc5 \x03 \x93 8\x01 \x80 \x00 \x00 \x00 \x00 " ),
65
+ expectImmediateCommitTimestamp : 1583812517644225 ,
66
+ expectOriginalCommitTimestamp : 0 ,
67
+ expectTransactoinLength : 965 ,
68
+ expectImmediateServerVersion : 80019 ,
69
+ expectOriginalServerVersion : 0 ,
70
+ },
71
+ {
72
+ // mysql-5.7 only
73
+ data : []byte ("\x00 Z\xa7 *\u007f D\xa8 \x11 \xea \x94 \u007f \x02 B\xac \x19 \x00 \x02 \x03 \x01 \x00 \x00 \x00 \x00 \x00 \x00 \x02 5\x00 \x00 \x00 \x00 \x00 \x00 \x00 6\x00 \x00 \x00 \x00 \x00 \x00 \x00 " ),
74
+ expectImmediateCommitTimestamp : 0 ,
75
+ expectOriginalCommitTimestamp : 0 ,
76
+ expectTransactoinLength : 0 ,
77
+ expectImmediateServerVersion : 0 ,
78
+ expectOriginalServerVersion : 0 ,
79
+ },
80
+ {
81
+ // mysql-8.0 only
82
+ data : []byte ("\x00 \\ \xcc \x10 3D\xa8 \x11 \xea \xbd Y\x02 B\xac \x19 \x00 \x03 w\x00 \x00 \x00 \x00 \x00 \x00 \x00 \x02 x\x00 \x00 \x00 \x00 \x00 \x00 \x00 y\x00 \x00 \x00 \x00 \x00 \x00 \x00 j0\xb1 >x\xa0 \x05 \xfc \xc3 \x03 \x93 8\x01 \x00 " ),
83
+ expectImmediateCommitTimestamp : 1583813191872618 ,
84
+ expectOriginalCommitTimestamp : 1583813191872618 ,
85
+ expectTransactoinLength : 963 ,
86
+ expectImmediateServerVersion : 80019 ,
87
+ expectOriginalServerVersion : 80019 ,
88
+ },
89
+ }
90
+
91
+ for _ , tc := range testcases {
92
+ ev := new (GTIDEvent )
93
+ err := ev .Decode (tc .data )
94
+ c .Assert (err , IsNil )
95
+ c .Assert (ev .ImmediateCommitTimestamp , Equals , tc .expectImmediateCommitTimestamp )
96
+ c .Assert (ev .OriginalCommitTimestamp , Equals , tc .expectOriginalCommitTimestamp )
97
+ c .Assert (ev .ImmediateServerVersion , Equals , tc .expectImmediateServerVersion )
98
+ c .Assert (ev .OriginalServerVersion , Equals , tc .expectOriginalServerVersion )
99
+ }
100
+
101
+ }
0 commit comments