mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 20:36:16 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			81 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
--source include/not_msan.inc
 | 
						|
--source include/not_embedded.inc
 | 
						|
--source include/have_innodb.inc
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # MDEV-23836: Assertion `! is_set() || m_can_overwrite_status' in
 | 
						|
--echo # Diagnostics_area::set_error_status (interrupted ALTER TABLE under LOCK)
 | 
						|
--echo #
 | 
						|
 | 
						|
SET @max_session_mem_used_save= @@max_session_mem_used;
 | 
						|
 | 
						|
CREATE TABLE t1 (a INT);
 | 
						|
SELECT * FROM t1;
 | 
						|
 | 
						|
--error ER_NO_SUCH_TABLE
 | 
						|
ALTER TABLE x MODIFY xx INT;
 | 
						|
 | 
						|
SET SESSION max_session_mem_used= 8192;
 | 
						|
--error 0,ER_OPTION_PREVENTS_STATEMENT
 | 
						|
LOCK TABLE t1 WRITE;
 | 
						|
 | 
						|
--disable_warnings
 | 
						|
--error 0,ER_OPTION_PREVENTS_STATEMENT
 | 
						|
ALTER TABLE t1 CHANGE COLUMN IF EXISTS b c INT;
 | 
						|
--enable_warnings
 | 
						|
 | 
						|
SET SESSION max_session_mem_used = @max_session_mem_used_save;
 | 
						|
UNLOCK TABLES;
 | 
						|
DROP TABLE t1;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # End of 10.5 tests
 | 
						|
--echo #
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # MDEV-28943 Online alter fails under LOCK TABLE with ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
 | 
						|
--echo #
 | 
						|
 | 
						|
# test that any lock=xxx works under LOCK TABLES
 | 
						|
# and that it is ignored, does not actually downgrade the lock
 | 
						|
create table t1 (f int) engine=innodb;
 | 
						|
insert t1 values (1);
 | 
						|
alter table t1 force, algorithm=copy, lock=none;
 | 
						|
alter table t1 force, algorithm=inplace, lock=none;
 | 
						|
alter table t1 force, algorithm=copy, lock=shared;
 | 
						|
alter table t1 force, algorithm=inplace, lock=shared;
 | 
						|
alter table t1 force, algorithm=copy, lock=exclusive;
 | 
						|
alter table t1 force, algorithm=inplace, lock=exclusive;
 | 
						|
lock table t1 write;
 | 
						|
connect con1, localhost, root;
 | 
						|
--send select count(*) as 'must be 0' from t1
 | 
						|
--connection default
 | 
						|
alter table t1 force, algorithm=copy, lock=none;
 | 
						|
alter table t1 force, algorithm=inplace, lock=none;
 | 
						|
alter table t1 force, algorithm=copy, lock=shared;
 | 
						|
alter table t1 force, algorithm=inplace, lock=shared;
 | 
						|
alter table t1 force, algorithm=copy, lock=exclusive;
 | 
						|
alter table t1 force, algorithm=inplace, lock=exclusive;
 | 
						|
delete from t1;
 | 
						|
unlock tables;
 | 
						|
--connection con1
 | 
						|
--reap
 | 
						|
--connection default
 | 
						|
drop table t1;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # MDEV-29056 Replica SQL thread stops with 1846 error on ALTER ONLINE after LOCK WRITE
 | 
						|
--echo #
 | 
						|
create table t1 (c varchar(1), key (c)) engine=innodb;
 | 
						|
insert into t1 (c) values ('g') ;
 | 
						|
alter table t1 add fulltext key(c), algorithm=inplace;
 | 
						|
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
 | 
						|
alter online table t1 add column s blob not null, algorithm=inplace;
 | 
						|
lock table t1 write;
 | 
						|
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
 | 
						|
alter online table t1 add column s blob not null, algorithm=inplace;
 | 
						|
drop table t1;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # End of 10.11 tests
 | 
						|
--echo #
 |