fix db locked
Showing
3 changed files
with
19 additions
and
3 deletions
| ... | @@ -486,6 +486,8 @@ func (d *dbBase) DeleteBatch(q dbQuerier, qs *querySet, mi *modelInfo, cond *Con | ... | @@ -486,6 +486,8 @@ func (d *dbBase) DeleteBatch(q dbQuerier, qs *querySet, mi *modelInfo, cond *Con |
| 486 | rs = r | 486 | rs = r |
| 487 | } | 487 | } |
| 488 | 488 | ||
| 489 | defer rs.Close() | ||
| 490 | |||
| 489 | var ref interface{} | 491 | var ref interface{} |
| 490 | 492 | ||
| 491 | args = make([]interface{}, 0) | 493 | args = make([]interface{}, 0) |
| ... | @@ -640,6 +642,8 @@ func (d *dbBase) ReadBatch(q dbQuerier, qs *querySet, mi *modelInfo, cond *Condi | ... | @@ -640,6 +642,8 @@ func (d *dbBase) ReadBatch(q dbQuerier, qs *querySet, mi *modelInfo, cond *Condi |
| 640 | refs[i] = &ref | 642 | refs[i] = &ref |
| 641 | } | 643 | } |
| 642 | 644 | ||
| 645 | defer rs.Close() | ||
| 646 | |||
| 643 | slice := ind | 647 | slice := ind |
| 644 | 648 | ||
| 645 | var cnt int64 | 649 | var cnt int64 |
| ... | @@ -1150,6 +1154,8 @@ func (d *dbBase) ReadValues(q dbQuerier, qs *querySet, mi *modelInfo, cond *Cond | ... | @@ -1150,6 +1154,8 @@ func (d *dbBase) ReadValues(q dbQuerier, qs *querySet, mi *modelInfo, cond *Cond |
| 1150 | refs[i] = &ref | 1154 | refs[i] = &ref |
| 1151 | } | 1155 | } |
| 1152 | 1156 | ||
| 1157 | defer rs.Close() | ||
| 1158 | |||
| 1153 | var ( | 1159 | var ( |
| 1154 | cnt int64 | 1160 | cnt int64 |
| 1155 | columns []string | 1161 | columns []string |
| ... | @@ -1268,6 +1274,8 @@ func (d *dbBase) GetTables(db dbQuerier) (map[string]bool, error) { | ... | @@ -1268,6 +1274,8 @@ func (d *dbBase) GetTables(db dbQuerier) (map[string]bool, error) { |
| 1268 | return tables, err | 1274 | return tables, err |
| 1269 | } | 1275 | } |
| 1270 | 1276 | ||
| 1277 | defer rows.Close() | ||
| 1278 | |||
| 1271 | for rows.Next() { | 1279 | for rows.Next() { |
| 1272 | var table string | 1280 | var table string |
| 1273 | err := rows.Scan(&table) | 1281 | err := rows.Scan(&table) |
| ... | @@ -1290,6 +1298,8 @@ func (d *dbBase) GetColumns(db dbQuerier, table string) (map[string][3]string, e | ... | @@ -1290,6 +1298,8 @@ func (d *dbBase) GetColumns(db dbQuerier, table string) (map[string][3]string, e |
| 1290 | return columns, err | 1298 | return columns, err |
| 1291 | } | 1299 | } |
| 1292 | 1300 | ||
| 1301 | defer rows.Close() | ||
| 1302 | |||
| 1293 | for rows.Next() { | 1303 | for rows.Next() { |
| 1294 | var ( | 1304 | var ( |
| 1295 | name string | 1305 | name string | ... | ... |
| ... | @@ -285,6 +285,8 @@ func (o *rawSet) QueryRow(containers ...interface{}) error { | ... | @@ -285,6 +285,8 @@ func (o *rawSet) QueryRow(containers ...interface{}) error { |
| 285 | return err | 285 | return err |
| 286 | } | 286 | } |
| 287 | 287 | ||
| 288 | defer rows.Close() | ||
| 289 | |||
| 288 | if rows.Next() { | 290 | if rows.Next() { |
| 289 | if structMode { | 291 | if structMode { |
| 290 | columns, err := rows.Columns() | 292 | columns, err := rows.Columns() |
| ... | @@ -408,11 +410,12 @@ func (o *rawSet) QueryRows(containers ...interface{}) (int64, error) { | ... | @@ -408,11 +410,12 @@ func (o *rawSet) QueryRows(containers ...interface{}) (int64, error) { |
| 408 | return 0, err | 410 | return 0, err |
| 409 | } | 411 | } |
| 410 | 412 | ||
| 411 | nInds := make([]reflect.Value, len(sInds)) | 413 | defer rows.Close() |
| 412 | 414 | ||
| 415 | var cnt int64 | ||
| 416 | nInds := make([]reflect.Value, len(sInds)) | ||
| 413 | sInd := sInds[0] | 417 | sInd := sInds[0] |
| 414 | 418 | ||
| 415 | var cnt int64 | ||
| 416 | for rows.Next() { | 419 | for rows.Next() { |
| 417 | 420 | ||
| 418 | if structMode { | 421 | if structMode { |
| ... | @@ -538,6 +541,8 @@ func (o *rawSet) readValues(container interface{}) (int64, error) { | ... | @@ -538,6 +541,8 @@ func (o *rawSet) readValues(container interface{}) (int64, error) { |
| 538 | rs = r | 541 | rs = r |
| 539 | } | 542 | } |
| 540 | 543 | ||
| 544 | defer rs.Close() | ||
| 545 | |||
| 541 | var ( | 546 | var ( |
| 542 | refs []interface{} | 547 | refs []interface{} |
| 543 | cnt int64 | 548 | cnt int64 | ... | ... |
| ... | @@ -1392,7 +1392,8 @@ func TestQueryRows(t *testing.T) { | ... | @@ -1392,7 +1392,8 @@ func TestQueryRows(t *testing.T) { |
| 1392 | 1392 | ||
| 1393 | var ids []int | 1393 | var ids []int |
| 1394 | var usernames []string | 1394 | var usernames []string |
| 1395 | num, err = dORM.Raw("SELECT id, user_name FROM user ORDER BY id asc").QueryRows(&ids, &usernames) | 1395 | query = fmt.Sprintf("SELECT %sid%s, %suser_name%s FROM %suser%s ORDER BY %sid%s ASC", Q, Q, Q, Q, Q, Q, Q, Q) |
| 1396 | num, err = dORM.Raw(query).QueryRows(&ids, &usernames) | ||
| 1396 | throwFailNow(t, err) | 1397 | throwFailNow(t, err) |
| 1397 | throwFailNow(t, AssertIs(num, 3)) | 1398 | throwFailNow(t, AssertIs(num, 3)) |
| 1398 | throwFailNow(t, AssertIs(len(ids), 3)) | 1399 | throwFailNow(t, AssertIs(len(ids), 3)) | ... | ... |
-
Please register or sign in to post a comment