@@ -3407,7 +3407,8 @@ func TestConnectionAttributes(t *testing.T) {
3407
3407
rows .Close ()
3408
3408
}
3409
3409
3410
- func TestIssue1361 (t * testing.T ) {
3410
+ func TestErrorInMultiResult (t * testing.T ) {
3411
+ // https://github.com/go-sql-driver/mysql/issues/1361
3411
3412
var db * sql.DB
3412
3413
if _ , err := ParseDSN (dsn ); err != errInvalidDSNUnsafeCollation {
3413
3414
db , err = sql .Open ("mysql" , dsn )
@@ -3418,45 +3419,30 @@ func TestIssue1361(t *testing.T) {
3418
3419
}
3419
3420
3420
3421
dbt := & DBTest {t , db }
3421
- queries := []string {
3422
- `
3423
- CREATE PROCEDURE test_proc1()
3424
- BEGIN
3425
- SIGNAL SQLSTATE '10000' SET MESSAGE_TEXT = "some error", MYSQL_ERRNO = 10000;
3426
- END;
3427
- ` ,
3428
- `
3429
- CREATE PROCEDURE test_proc2()
3430
- BEGIN
3431
- SELECT 1,2;
3432
- SELECT 3,4;
3433
- SIGNAL SQLSTATE '10000' SET MESSAGE_TEXT = "some error", MYSQL_ERRNO = 10000;
3434
- END;
3435
- ` ,
3436
- }
3437
- names := []string {
3438
- "test_proc1" , "test_proc2" ,
3439
- }
3440
- for i , query := range queries {
3441
- runCallCommand (dbt , query , names [i ])
3442
- }
3443
-
3422
+ query := `
3423
+ CREATE PROCEDURE test_proc1()
3424
+ BEGIN
3425
+ SELECT 1,2;
3426
+ SELECT 3,4;
3427
+ SIGNAL SQLSTATE '10000' SET MESSAGE_TEXT = "some error", MYSQL_ERRNO = 10000;
3428
+ END;
3429
+ `
3430
+ runCallCommand (dbt , query , "test_proc1" )
3444
3431
}
3445
3432
3446
3433
func runCallCommand (dbt * DBTest , query , name string ) {
3447
-
3448
- dbt .mustExec (fmt .Sprintf ("DROP PROCEDURE IF EXISTS %s;" , name ))
3434
+ dbt .mustExec (fmt .Sprintf ("DROP PROCEDURE IF EXISTS %s" , name ))
3449
3435
dbt .mustExec (query )
3450
- defer dbt .mustExec ("drop procedure " + name )
3451
- rows , err := dbt .db .Query (fmt .Sprintf ("call %s; " , name ))
3436
+ defer dbt .mustExec ("DROP PROCEDURE " + name )
3437
+ rows , err := dbt .db .Query (fmt .Sprintf ("CALL %s" , name ))
3452
3438
if err != nil {
3453
3439
return
3454
3440
}
3455
3441
defer rows .Close ()
3456
3442
3457
3443
for rows .Next () {
3458
3444
}
3459
- for rows .NextResultSet () { // original thread will be blocked when exec rs.Close()
3445
+ for rows .NextResultSet () {
3460
3446
for rows .Next () {
3461
3447
}
3462
3448
}
0 commit comments