Add a check to rows.Err after processing all rows
Closes #822. In https://github.com/go-sql-driver/mysql/issues/1075, @acharis notes that the way the go-sql driver is written, query timeout errors don't get set in `rows.Err()` until _after_ a call to `rows.Next()` is made. Because this kind of error means there will be no rows in the result set, the `for rows.Next()` will never enter the for loop, so we must check the value of `rows.Err()` after the loop, and surface the error up appropriately.
This commit is contained in:
parent
4dab06e92b
commit
61de098072
@ -444,6 +444,9 @@ func (this *Applier) CalculateNextIterationRangeEndValues() (hasFurtherRange boo
|
||||
}
|
||||
hasFurtherRange = true
|
||||
}
|
||||
if err = rows.Err(); err != nil {
|
||||
return hasFurtherRange, err
|
||||
}
|
||||
if hasFurtherRange {
|
||||
this.migrationContext.MigrationIterationRangeMaxValues = iterationRangeMaxValues
|
||||
return hasFurtherRange, nil
|
||||
|
Loading…
x
Reference in New Issue
Block a user