mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-04 12:56:14 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			53 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
# Tests for delete with INNODB
 | 
						|
#
 | 
						|
# MDEV-22187: SIGSEGV in ha_innobase::cmp_ref on DELETE
 | 
						|
#
 | 
						|
SET @save_sort_buffer_size= @@sort_buffer_size;
 | 
						|
SET sort_buffer_size=1024;
 | 
						|
CREATE TABLE t1(c1 CHAR(255) PRIMARY KEY) ENGINE=InnoDB;
 | 
						|
INSERT INTO t1 VALUES (0), ('a'), ('b');
 | 
						|
ANALYZE TABLE t1 PERSISTENT FOR ALL;
 | 
						|
Table	Op	Msg_type	Msg_text
 | 
						|
test.t1	analyze	status	Engine-independent statistics collected
 | 
						|
test.t1	analyze	status	OK
 | 
						|
SELECT * FROM t1;
 | 
						|
c1
 | 
						|
0
 | 
						|
a
 | 
						|
b
 | 
						|
EXPLAIN DELETE b FROM t1 AS a JOIN t1 AS b;
 | 
						|
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 | 
						|
1	SIMPLE	a	index	NULL	PRIMARY	255	NULL	3	Using index
 | 
						|
1	SIMPLE	b	ALL	NULL	NULL	NULL	NULL	3	
 | 
						|
DELETE b FROM t1 AS a JOIN t1 AS b;
 | 
						|
SELECT * FROM t1;
 | 
						|
c1
 | 
						|
SET sort_buffer_size=@save_sort_buffer_size;
 | 
						|
DROP TABLE t1;
 | 
						|
#
 | 
						|
# MDEV-35944 DELETE fails to notice transaction abort, violating ACID
 | 
						|
#
 | 
						|
CREATE TABLE t1 (id INT PRIMARY KEY, col_varchar VARCHAR(8)) ENGINE=InnoDB;
 | 
						|
INSERT INTO t1 (id) VALUES (1),(2);
 | 
						|
CREATE TABLE t2 (id INT, f INT, s DATE, e DATE, PERIOD FOR p(s,e), PRIMARY KEY(id, p WITHOUT OVERLAPS)) ENGINE=InnoDB;
 | 
						|
INSERT INTO t2 VALUES (1,0,'2000-01-01','2000-01-02');
 | 
						|
CREATE TABLE t3 (id INT, f BLOB, UNIQUE(f)) ENGINE=InnoDB;
 | 
						|
connection default;
 | 
						|
SET innodb_lock_wait_timeout=1;
 | 
						|
START TRANSACTION;
 | 
						|
DELETE FROM t1;
 | 
						|
connect  con1,localhost,root,,;
 | 
						|
START TRANSACTION;
 | 
						|
UPDATE t2 SET f = 20;
 | 
						|
connection default;
 | 
						|
DELETE FROM t2 FOR PORTION OF p FROM '2000-01-01' TO '2000-01-02';
 | 
						|
connection con1;
 | 
						|
INSERT INTO t3 (id) VALUES (1), (2);
 | 
						|
UPDATE t1 SET col_varchar = 'bar';
 | 
						|
COMMIT;
 | 
						|
connection default;
 | 
						|
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
 | 
						|
COMMIT;
 | 
						|
UPDATE t3 SET f = 'foo' ORDER BY f LIMIT 1;
 | 
						|
DROP TABLE t1, t2, t3;
 | 
						|
# End of 10.5 tests
 |