Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into mysql.com:/Users/davi/mysql/mysql-5.1-runtime
This commit is contained in:
commit
d5847eb112
@ -2016,4 +2016,42 @@ i j
|
||||
10 10
|
||||
unlock tables;
|
||||
drop table t1;
|
||||
drop table if exists t1, t2;
|
||||
drop trigger if exists trg1;
|
||||
drop trigger if exists trg2;
|
||||
create table t1 (a int);
|
||||
create table t2 (b int);
|
||||
create trigger trg1 after update on t1 for each row set @a= @a+1;
|
||||
create trigger trg2 after update on t2 for each row set @b= @b+1;
|
||||
insert into t1 values (1), (2), (3);
|
||||
insert into t2 values (1), (2), (3);
|
||||
set @a= 0;
|
||||
set @b= 0;
|
||||
update t1, t2 set t1.a= t1.a, t2.b= t2.b;
|
||||
select @a, @b;
|
||||
@a @b
|
||||
3 3
|
||||
update t1, t2 set t1.a= t2.b, t2.b= t1.a;
|
||||
select @a, @b;
|
||||
@a @b
|
||||
6 6
|
||||
update t1 set a= a;
|
||||
select @a, @b;
|
||||
@a @b
|
||||
9 6
|
||||
update t2 set b= b;
|
||||
select @a, @b;
|
||||
@a @b
|
||||
9 9
|
||||
update t1 set a= 1;
|
||||
select @a, @b;
|
||||
@a @b
|
||||
12 9
|
||||
update t2 set b= 1;
|
||||
select @a, @b;
|
||||
@a @b
|
||||
12 12
|
||||
drop trigger trg1;
|
||||
drop trigger trg2;
|
||||
drop table t1, t2;
|
||||
End of 5.1 tests.
|
||||
|
@ -2304,4 +2304,37 @@ unlock tables;
|
||||
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#23771 AFTER UPDATE trigger not invoked when there are no changes of the data
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1, t2;
|
||||
drop trigger if exists trg1;
|
||||
drop trigger if exists trg2;
|
||||
--enable_warnings
|
||||
create table t1 (a int);
|
||||
create table t2 (b int);
|
||||
create trigger trg1 after update on t1 for each row set @a= @a+1;
|
||||
create trigger trg2 after update on t2 for each row set @b= @b+1;
|
||||
insert into t1 values (1), (2), (3);
|
||||
insert into t2 values (1), (2), (3);
|
||||
set @a= 0;
|
||||
set @b= 0;
|
||||
update t1, t2 set t1.a= t1.a, t2.b= t2.b;
|
||||
select @a, @b;
|
||||
update t1, t2 set t1.a= t2.b, t2.b= t1.a;
|
||||
select @a, @b;
|
||||
update t1 set a= a;
|
||||
select @a, @b;
|
||||
update t2 set b= b;
|
||||
select @a, @b;
|
||||
update t1 set a= 1;
|
||||
select @a, @b;
|
||||
update t2 set b= 1;
|
||||
select @a, @b;
|
||||
drop trigger trg1;
|
||||
drop trigger trg2;
|
||||
drop table t1, t2;
|
||||
|
||||
--echo End of 5.1 tests.
|
||||
|
@ -643,14 +643,6 @@ int mysql_update(THD *thd,
|
||||
updated++;
|
||||
else
|
||||
error= 0;
|
||||
|
||||
if (table->triggers &&
|
||||
table->triggers->process_triggers(thd, TRG_EVENT_UPDATE,
|
||||
TRG_ACTION_AFTER, TRUE))
|
||||
{
|
||||
error= 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (!ignore ||
|
||||
table->file->is_fatal_error(error, HA_CHECK_DUP_KEY))
|
||||
@ -669,6 +661,14 @@ int mysql_update(THD *thd,
|
||||
}
|
||||
}
|
||||
|
||||
if (table->triggers &&
|
||||
table->triggers->process_triggers(thd, TRG_EVENT_UPDATE,
|
||||
TRG_ACTION_AFTER, TRUE))
|
||||
{
|
||||
error= 1;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!--limit && using_limit)
|
||||
{
|
||||
/*
|
||||
@ -1633,12 +1633,12 @@ bool multi_update::send_data(List<Item> ¬_used_values)
|
||||
trans_safe= 0;
|
||||
thd->transaction.stmt.modified_non_trans_table= TRUE;
|
||||
}
|
||||
if (table->triggers &&
|
||||
table->triggers->process_triggers(thd, TRG_EVENT_UPDATE,
|
||||
TRG_ACTION_AFTER, TRUE))
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
}
|
||||
if (table->triggers &&
|
||||
table->triggers->process_triggers(thd, TRG_EVENT_UPDATE,
|
||||
TRG_ACTION_AFTER, TRUE))
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1860,12 +1860,12 @@ int multi_update::do_updates()
|
||||
updated++;
|
||||
else
|
||||
local_error= 0;
|
||||
|
||||
if (table->triggers &&
|
||||
table->triggers->process_triggers(thd, TRG_EVENT_UPDATE,
|
||||
TRG_ACTION_AFTER, TRUE))
|
||||
goto err2;
|
||||
}
|
||||
|
||||
if (table->triggers &&
|
||||
table->triggers->process_triggers(thd, TRG_EVENT_UPDATE,
|
||||
TRG_ACTION_AFTER, TRUE))
|
||||
goto err2;
|
||||
}
|
||||
|
||||
if (updated != org_updated)
|
||||
|
Loading…
x
Reference in New Issue
Block a user