@@ -169,8 +169,6 @@ func (s *bridgeSuite) TestDump() {
169169 require .NoError (t , err )
170170 }
171171
172- s .init (s .cfg )
173-
174172 go func () {
175173 errors := s .bridge .Run ()
176174 for err := range errors {
@@ -322,3 +320,58 @@ func (s *bridgeSuite) TestReconnect() {
322320 assert .NoError (t , err )
323321 }
324322}
323+
324+ func (s * bridgeSuite ) TestRenameColumn () {
325+ t := s .T ()
326+
327+ s .init (s .cfg )
328+
329+ go func () {
330+ errors := s .bridge .Run ()
331+ for err := range errors {
332+ assert .NoError (t , err )
333+ }
334+ }()
335+
336+ <- s .bridge .canal .WaitDumpDone ()
337+
338+ _ , err := s .executeSQL ("INSERT INTO city.users (username, password, name, email) VALUES (?, ?, ?, ?)" , "bob" , "12345" , "Bob" , "bob@email.com" )
339+ require .NoError (t , err )
340+
341+ _ , err = s .executeSQL ("ALTER TABLE city.users CHANGE `name` `new_name` varchar(50)" )
342+ require .NoError (t , err )
343+
344+ defer func () {
345+ _ , err = s .executeSQL ("ALTER TABLE city.users CHANGE `new_name` `name` varchar(50)" )
346+ require .NoError (t , err )
347+ }()
348+
349+ _ , err = s .executeSQL ("INSERT INTO city.users (id, username, password, new_name, email) VALUES (?, ?, ?, ?, ?)" , 2 , "alice" , "123" , "Alice" , "alice@email.com" )
350+ require .NoError (t , err )
351+
352+ err = s .bridge .canal .CatchMasterPos (500 * time .Millisecond )
353+ require .NoError (t , err )
354+
355+ wantRows := uint64 (2 )
356+ require .Eventually (t , func () bool {
357+ return s .hasSyncedData ("users" , wantRows )
358+ }, 500 * time .Millisecond , 50 * time .Millisecond )
359+
360+ got , err := s .executeTNT (& tarantool.Select {
361+ Space : "users" ,
362+ Key : 2 ,
363+ })
364+ require .NoError (t , err )
365+ require .NotNil (t , got )
366+ require .NotEmpty (t , got .Data )
367+ require .Len (t , got .Data , 1 )
368+ want := []interface {}{2 , "alice" , "123" , "alice@email.com" }
369+ gotTuple := got .Data [0 ]
370+ require .Len (t , gotTuple , len (want ))
371+ for i , v := range want {
372+ require .EqualValues (t , v , gotTuple [i ])
373+ }
374+
375+ err = s .bridge .Close ()
376+ assert .NoError (t , err )
377+ }
0 commit comments