86 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			86 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | # should work with embedded server after mysqltest is fixed | ||
|  | -- source include/not_embedded.inc | ||
|  | -- source include/have_innodb.inc | ||
|  | 
 | ||
|  | # | ||
|  | # BUG#11733: COMMITs should not happen if read-only is set | ||
|  | # | ||
|  | 
 | ||
|  | --disable_warnings | ||
|  | DROP TABLE IF EXISTS table_11733 ; | ||
|  | --enable_warnings | ||
|  | 
 | ||
|  | # READ_ONLY does nothing to SUPER users | ||
|  | # so we use a non-SUPER one: | ||
|  | 
 | ||
|  | grant CREATE, SELECT, DROP on *.* to test@localhost; | ||
|  | 
 | ||
|  | connect (con1,localhost,test,,test); | ||
|  | 
 | ||
|  | connection default; | ||
|  | set global read_only=0; | ||
|  | 
 | ||
|  | # Any transactional engine will do | ||
|  | create table table_11733 (a int) engine=InnoDb; | ||
|  | 
 | ||
|  | connection con1; | ||
|  | BEGIN; | ||
|  | insert into table_11733 values(11733); | ||
|  | 
 | ||
|  | connection default; | ||
|  | set global read_only=1; | ||
|  | 
 | ||
|  | connection con1; | ||
|  | select @@global.read_only; | ||
|  | select * from table_11733 ; | ||
|  | -- error ER_OPTION_PREVENTS_STATEMENT | ||
|  | COMMIT; | ||
|  | 
 | ||
|  | connection default; | ||
|  | set global read_only=0; | ||
|  | drop table table_11733 ; | ||
|  | drop user test@localhost; | ||
|  | 
 | ||
|  | disconnect con1; | ||
|  | 
 | ||
|  | # | ||
|  | # Bug #35732: read-only blocks SELECT statements in InnoDB | ||
|  | # | ||
|  | # Test 1: read only mode | ||
|  | GRANT CREATE, SELECT, DROP ON *.* TO test@localhost; | ||
|  | connect(con1, localhost, test, , test); | ||
|  | 
 | ||
|  | connection default; | ||
|  | CREATE TABLE t1(a INT) ENGINE=INNODB; | ||
|  | INSERT INTO t1 VALUES (0), (1); | ||
|  | SET GLOBAL read_only=1; | ||
|  | 
 | ||
|  | connection con1; | ||
|  | SELECT * FROM t1; | ||
|  | BEGIN; | ||
|  | SELECT * FROM t1; | ||
|  | COMMIT; | ||
|  | 
 | ||
|  | connection default; | ||
|  | SET GLOBAL read_only=0; | ||
|  | 
 | ||
|  | # | ||
|  | # Test 2: global read lock | ||
|  | # | ||
|  | FLUSH TABLES WITH READ LOCK; | ||
|  | 
 | ||
|  | connection con1; | ||
|  | SELECT * FROM t1; | ||
|  | BEGIN; | ||
|  | SELECT * FROM t1; | ||
|  | COMMIT; | ||
|  | 
 | ||
|  | connection default; | ||
|  | UNLOCK TABLES; | ||
|  | DROP TABLE t1; | ||
|  | DROP USER test@localhost; | ||
|  | 
 | ||
|  | disconnect con1; | ||
|  | 
 | ||
|  | --echo echo End of 5.1 tests  |