@@ -19,6 +19,7 @@ type resultSet struct {
19
19
columns []mysqlField
20
20
columnNames []string
21
21
done bool
22
+ lasterr error
22
23
}
23
24
24
25
type mysqlRows struct {
@@ -117,9 +118,10 @@ func (rows *mysqlRows) Close() (err error) {
117
118
// by the time the user calls `(*Rows).Close`, so we won't reach this
118
119
// see: https://github.com/golang/go/commit/651ddbdb5056ded455f47f9c494c67b389622a47
119
120
mc .buf .flip ()
120
-
121
+ // check nextResult error
122
+ err = rows .rs .lasterr
121
123
// Remove unread packets from stream
122
- if ! rows .rs .done {
124
+ if err == nil && ! rows .rs .done {
123
125
err = mc .readUntilEOF ()
124
126
}
125
127
if err == nil {
@@ -179,13 +181,14 @@ func (rows *mysqlRows) nextNotEmptyResultSet() (int, error) {
179
181
}
180
182
181
183
func (rows * binaryRows ) NextResultSet () error {
182
- resLen , err := rows .nextNotEmptyResultSet ()
183
- if err != nil {
184
- return err
184
+ var resLen int
185
+ resLen , rows .rs .lasterr = rows .nextNotEmptyResultSet ()
186
+ if rows .rs .lasterr != nil {
187
+ return rows .rs .lasterr
185
188
}
186
189
187
- rows .rs .columns , err = rows .mc .readColumns (resLen )
188
- return err
190
+ rows .rs .columns , rows . rs . lasterr = rows .mc .readColumns (resLen )
191
+ return rows . rs . lasterr
189
192
}
190
193
191
194
func (rows * binaryRows ) Next (dest []driver.Value ) error {
@@ -201,13 +204,15 @@ func (rows *binaryRows) Next(dest []driver.Value) error {
201
204
}
202
205
203
206
func (rows * textRows ) NextResultSet () (err error ) {
204
- resLen , err := rows .nextNotEmptyResultSet ()
205
- if err != nil {
206
- return err
207
+ var resLen int
208
+ resLen , rows .rs .lasterr = rows .nextNotEmptyResultSet ()
209
+ if rows .rs .lasterr != nil {
210
+ return rows .rs .lasterr
207
211
}
208
212
209
- rows .rs .columns , err = rows .mc .readColumns (resLen )
210
- return err
213
+ rows .rs .columns , rows .rs .lasterr = rows .mc .readColumns (resLen )
214
+ return rows .rs .lasterr
215
+
211
216
}
212
217
213
218
func (rows * textRows ) Next (dest []driver.Value ) error {
0 commit comments