File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -961,21 +961,27 @@ func (this *Applier) ApplyDMLEventQueries(dmlEvents [](*binlog.BinlogDMLEvent))
961961 if err != nil {
962962 return err
963963 }
964+
965+ rollback := func (err error ) error {
966+ tx .Rollback ()
967+ return err
968+ }
969+
964970 sessionQuery := `SET
965971 SESSION time_zone = '+00:00',
966972 sql_mode = CONCAT(@@session.sql_mode, ',STRICT_ALL_TABLES')
967973 `
968974 if _ , err := tx .Exec (sessionQuery ); err != nil {
969- return err
975+ return rollback ( err )
970976 }
971977 for _ , dmlEvent := range dmlEvents {
972978 query , args , rowDelta , err := this .buildDMLEventQuery (dmlEvent )
973979 if err != nil {
974- return err
980+ return rollback ( err )
975981 }
976982 if _ , err := tx .Exec (query , args ... ); err != nil {
977983 err = fmt .Errorf ("%s; query=%s; args=%+v" , err .Error (), query , args )
978- return err
984+ return rollback ( err )
979985 }
980986 totalDelta += rowDelta
981987 }
You can’t perform that action at this time.
0 commit comments