mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	Changed error message to be compatible with old error file Added new error message for new DUP_ENTRY syntax
		
			
				
	
	
		
			105 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
-- source include/have_ndb.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_WITH_KEY_NAME
 | 
						|
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.
 |