@@ -925,13 +925,17 @@ func (v *DataValidator) processRowsEvent(header *replication.EventHeader, ev *re
925925 beforeImage = ev .Rows [i ]
926926 }
927927
928- beforeImage , err = adjustValueImageFromBinlogData (beforeImage , tableInfo )
929- if err != nil {
930- return terror .Annotate (err , "failed to adjust row before image" )
928+ if beforeImage != nil {
929+ beforeImage , err = adjustValueFromBinlogData (beforeImage , tableInfo )
930+ if err != nil {
931+ return terror .Annotate (err , "failed to adjust row before image" )
932+ }
931933 }
932- afterImage , err = adjustValueImageFromBinlogData (afterImage , tableInfo )
933- if err != nil {
934- return terror .Annotate (err , "failed to adjust row after image" )
934+ if afterImage != nil {
935+ afterImage , err = adjustValueFromBinlogData (afterImage , tableInfo )
936+ if err != nil {
937+ return terror .Annotate (err , "failed to adjust row after image" )
938+ }
935939 }
936940
937941 rowChange := sqlmodel .NewRowChange (
@@ -965,13 +969,6 @@ func (v *DataValidator) processRowsEvent(header *replication.EventHeader, ev *re
965969 return nil
966970}
967971
968- func adjustValueImageFromBinlogData (data []interface {}, sourceTI * model.TableInfo ) ([]interface {}, error ) {
969- if data == nil {
970- return nil , nil
971- }
972- return adjustValueFromBinlogData (data , sourceTI )
973- }
974-
975972func (v * DataValidator ) checkAndPersistCheckpointAndData (loc binlog.Location ) error {
976973 metaFlushInterval := v .cfg .ValidatorCfg .MetaFlushInterval .Duration
977974 cutOverLocation := v .cutOverLocation .Load ()
0 commit comments