-- source include/have_ndb.inc -- source include/have_binlog_format_row.inc -- source include/not_embedded.inc # # Test of REPLACE with NDB # --disable_warnings drop table if exists t1,t2; --enable_warnings CREATE TABLE t1 ( gesuchnr int(11) DEFAULT '0' NOT NULL, benutzer_id int(11) DEFAULT '0' NOT NULL, PRIMARY KEY (gesuchnr,benutzer_id) ) engine=ndbcluster; replace into t1 (gesuchnr,benutzer_id) values (2,1); replace into t1 (gesuchnr,benutzer_id) values (1,1); replace into t1 (gesuchnr,benutzer_id) values (1,1); insert into t1 (gesuchnr, benutzer_id) value (3,2); replace into t1 (gesuchnr,benutzer_id) values (1,1); replace into t1 (gesuchnr,benutzer_id) values (1,1); --error ER_DUP_ENTRY insert into t1 (gesuchnr,benutzer_id) values (1,1); replace into t1 (gesuchnr,benutzer_id) values (1,1); select * from t1 order by gesuchnr; drop table t1; # End of 4.1 tests # bug#17431 CREATE TABLE t1(i INT PRIMARY KEY AUTO_INCREMENT, j INT, k INT, UNIQUE INDEX(j) ) ENGINE = ndb; INSERT INTO t1 VALUES (1,1,23),(2,2,24); REPLACE INTO t1 (j,k) VALUES (1,42); REPLACE INTO t1 (i,j) VALUES (17,2); SELECT * from t1 ORDER BY i; DROP TABLE t1; # bug#19906 CREATE TABLE t2 (a INT(11) NOT NULL, b INT(11) NOT NULL, c INT(11) NOT NULL, x TEXT, y TEXT, z TEXT, id INT(10) unsigned NOT NULL AUTO_INCREMENT, i INT(11) DEFAULT NULL, PRIMARY KEY (id), UNIQUE KEY a (a,b,c) ) ENGINE=ndbcluster; REPLACE INTO t2 (a,b,c,x,y,z,i) VALUES (1,1,1,'a','a','a',1),(1,1,1,'b','b','b',2), (1,1,1,'c','c','c',3); SELECT * FROM t2 ORDER BY id; REPLACE INTO t2(a,b,c,x,y,z,i) values (1,1,1,'a','a','a',1); REPLACE INTO t2(a,b,c,x,y,z,i) values (1,1,1,'b','b','b',2); SELECT * FROM t2 ORDER BY id; DROP TABLE t2; # # Bug #20728 "REPLACE does not work correctly for NDB table with PK and # unique index" # --disable_warnings drop table if exists t1; --enable_warnings create table t1 (pk int primary key, apk int unique, data int) engine=ndbcluster; # Test for plain replace which updates pk insert into t1 values (1, 1, 1), (2, 2, 2), (3, 3, 3); replace into t1 (pk, apk) values (4, 1), (5, 2); select * from t1 order by pk; delete from t1; # Another test for plain replace which doesn't touch pk insert into t1 values (1, 1, 1), (2, 2, 2), (3, 3, 3); replace into t1 (pk, apk) values (1, 4), (2, 5); select * from t1 order by pk; delete from t1; # Test for load data replace which updates pk insert into t1 values (1, 1, 1), (4, 4, 4), (6, 6, 6); load data infile '../std_data_ln/loaddata5.dat' replace into table t1 fields terminated by '' enclosed by '' ignore 1 lines (pk, apk); select * from t1 order by pk; delete from t1; # Now test for load data replace which doesn't touch pk insert into t1 values (1, 1, 1), (3, 3, 3), (5, 5, 5); load data infile '../std_data_ln/loaddata5.dat' replace into table t1 fields terminated by '' enclosed by '' ignore 1 lines (pk, apk); select * from t1 order by pk; delete from t1; # Finally test for both types of replace ... select insert into t1 values (1, 1, 1), (2, 2, 2), (3, 3, 3); replace into t1 (pk, apk) select 4, 1; replace into t1 (pk, apk) select 2, 4; select * from t1 order by pk; # Clean-up drop table t1; --echo End of 5.0 tests.