diff options
author | dlenev@mysql.com <> | 2006-07-02 02:12:53 +0400 |
---|---|---|
committer | dlenev@mysql.com <> | 2006-07-02 02:12:53 +0400 |
commit | eb3ae6eb79f90e1d133a30fe52473de70077a772 (patch) | |
tree | 6997be64d5327fe58acf2e694155bdcea954f13c /mysql-test/t/federated.test | |
parent | a3deb94518b54d6319a0c5ac7ea1783b50fe170d (diff) | |
parent | d4450e66964e14ac85bc40c567a510dd86353f60 (diff) | |
download | mariadb-git-eb3ae6eb79f90e1d133a30fe52473de70077a772.tar.gz |
Merge mysql.com:/home/dlenev/mysql-5.0-bg18437-3
into mysql.com:/home/dlenev/mysql-5.1-bg18437
Diffstat (limited to 'mysql-test/t/federated.test')
-rw-r--r-- | mysql-test/t/federated.test | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/mysql-test/t/federated.test b/mysql-test/t/federated.test index 5f5c8d44f35..9144f2965df 100644 --- a/mysql-test/t/federated.test +++ b/mysql-test/t/federated.test @@ -1363,4 +1363,46 @@ drop table federated.t1, federated.t2; connection master; --enable_parsing +# +# Additional test for bug#18437 "Wrong values inserted with a before +# update trigger on NDB table". SQL-layer didn't properly inform +# handler about fields which were read and set in triggers. In some +# cases this resulted in incorrect (garbage) values of OLD variables +# and lost changes to NEW variables. +# Since for federated engine only operation which is affected by wrong +# fields mark-up is handler::write_row() this file constains coverage +# for ON INSERT triggers only. Tests for other types of triggers reside +# in ndb_trigger.test. +# +--disable_warnings +drop table if exists federated.t1; +--enable_warnings +create table federated.t1 (a int, b int, c int); +connection master; +--disable_warnings +drop table if exists federated.t1; +drop table if exists federated.t2; +--enable_warnings +--replace_result $SLAVE_MYPORT SLAVE_PORT +eval create table federated.t1 (a int, b int, c int) engine=federated connection='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1'; +create trigger federated.t1_bi before insert on federated.t1 for each row set new.c= new.a * new.b; +create table federated.t2 (a int, b int); +insert into federated.t2 values (13, 17), (19, 23); +# Each of three statements should correctly set values for all three fields +# insert +insert into federated.t1 (a, b) values (1, 2), (3, 5), (7, 11); +select * from federated.t1; +delete from federated.t1; +# insert ... select +insert into federated.t1 (a, b) select * from federated.t2; +select * from federated.t1; +delete from federated.t1; +# load +load data infile '../std_data_ln/loaddata5.dat' into table federated.t1 fields terminated by '' enclosed by '' ignore 1 lines (a, b); +select * from federated.t1; +drop tables federated.t1, federated.t2; + +connection slave; +drop table federated.t1; + --source include/federated_cleanup.inc |