@@ -3421,6 +3421,137 @@ end;
34213421 },
34223422 },
34233423 },
3424+
3425+ {
3426+ Name : "insert trigger with stored procedure with deletes" ,
3427+ SetUpScript : []string {
3428+ "create table t (i int);" ,
3429+ "create table t1 (j int);" ,
3430+ "insert into t1 values (1);" ,
3431+ "create table t2 (k int);" ,
3432+ "insert into t2 values (1);" ,
3433+ "create table t3 (l int);" ,
3434+ "insert into t3 values (1);" ,
3435+ "create table t4 (m int);" ,
3436+ `
3437+ create procedure proc(x int)
3438+ begin
3439+ delete from t2 where k = (select j from t1 where j = x);
3440+ update t3 set l = 10 where l = x;
3441+ insert into t4 values (x);
3442+ end;
3443+ ` ,
3444+ `
3445+ create trigger trig before insert on t
3446+ for each row
3447+ begin
3448+ call proc(new.i);
3449+ end;
3450+ ` ,
3451+
3452+ },
3453+ Assertions : []ScriptTestAssertion {
3454+ {
3455+ Query : "insert into t values (1);" ,
3456+ Expected : []sql.Row {
3457+ {types .NewOkResult (1 )},
3458+ },
3459+ },
3460+ {
3461+ Query : "select * from t;" ,
3462+ Expected : []sql.Row {
3463+ {1 },
3464+ },
3465+ },
3466+ {
3467+ Query : "select * from t1;" ,
3468+ Expected : []sql.Row {
3469+ {1 },
3470+ },
3471+ },
3472+ {
3473+ Query : "select * from t2;" ,
3474+ Expected : []sql.Row {},
3475+ },
3476+ {
3477+ Query : "select * from t3;" ,
3478+ Expected : []sql.Row {
3479+ {10 },
3480+ },
3481+ },
3482+ {
3483+ Query : "select * from t4;" ,
3484+ Expected : []sql.Row {
3485+ {1 },
3486+ },
3487+ },
3488+ },
3489+ },
3490+
3491+ {
3492+ Name : "delete trigger with stored procedure with deletes" ,
3493+ SetUpScript : []string {
3494+ "create table t (i int);" ,
3495+ "insert into t values (1)" ,
3496+ "create table t1 (j int);" ,
3497+ "insert into t1 values (1);" ,
3498+ "create table t2 (k int);" ,
3499+ "insert into t2 values (1);" ,
3500+ "create table t3 (l int);" ,
3501+ "insert into t3 values (1);" ,
3502+ "create table t4 (m int);" ,
3503+ `
3504+ create procedure proc(x int)
3505+ begin
3506+ delete from t2 where k = (select j from t1 where j = x);
3507+ update t3 set l = 10 where l = x;
3508+ insert into t4 values (x);
3509+ end;
3510+ ` ,
3511+ `
3512+ create trigger trig before delete on t
3513+ for each row
3514+ begin
3515+ call proc(old.i);
3516+ end;
3517+ ` ,
3518+
3519+ },
3520+ Assertions : []ScriptTestAssertion {
3521+ {
3522+ Query : "delete from t where i = 1;" ,
3523+ Expected : []sql.Row {
3524+ {types .NewOkResult (1 )},
3525+ },
3526+ },
3527+ {
3528+ Query : "select * from t;" ,
3529+ Expected : []sql.Row {},
3530+ },
3531+ {
3532+ Query : "select * from t1;" ,
3533+ Expected : []sql.Row {
3534+ {1 },
3535+ },
3536+ },
3537+ {
3538+ Query : "select * from t2;" ,
3539+ Expected : []sql.Row {},
3540+ },
3541+ {
3542+ Query : "select * from t3;" ,
3543+ Expected : []sql.Row {
3544+ {10 },
3545+ },
3546+ },
3547+ {
3548+ Query : "select * from t4;" ,
3549+ Expected : []sql.Row {
3550+ {1 },
3551+ },
3552+ },
3553+ },
3554+ },
34243555}
34253556
34263557var TriggerCreateInSubroutineTests = []ScriptTest {
0 commit comments