Skip to content

Commit 8d0faa5

Browse files
author
Shlomi Noach
committed
explicit rollback in ApplyDMLEventQueries()
1 parent 220bf83 commit 8d0faa5

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

go/logic/applier.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff 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
}

0 commit comments

Comments
 (0)