61c0b3e2 by slene

fix db locked

1 parent 383a04f4
...@@ -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))
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!