mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +03:00 
			
		
		
		
	into neptunus.(none):/home/msvensson/mysql/bug11316/my50-bug11316 mysql-test/mysql-test-run.pl: Auto merged mysql-test/mysql-test-run.sh: Auto merged mysql-test/r/mysqltest.result: Auto merged mysql-test/r/type_newdecimal.result: Auto merged mysql-test/t/create.test: Auto merged mysql-test/t/create_select_tmp.test: Auto merged mysql-test/t/drop.test: Auto merged mysql-test/t/flush.test: Auto merged mysql-test/t/handler.test: Auto merged mysql-test/t/innodb-deadlock.test: Auto merged mysql-test/t/innodb-lock.test: Auto merged mysql-test/t/innodb.test: Auto merged mysql-test/t/kill.test: Auto merged mysql-test/t/ndb_autodiscover2.test: Auto merged mysql-test/t/rpl000001.test: Auto merged mysql-test/t/rpl_EE_error.test: Auto merged mysql-test/t/rpl_change_master.test: Auto merged mysql-test/t/rpl_deadlock.test: Auto merged mysql-test/t/rpl_drop.test: Auto merged mysql-test/t/rpl_drop_temp.test: Auto merged mysql-test/t/rpl_error_ignored_table.test: Auto merged mysql-test/t/rpl_flush_log_loop.test: Auto merged mysql-test/t/rpl_insert_id.test: Auto merged mysql-test/t/rpl_loaddata.test: Auto merged mysql-test/t/rpl_rotate_logs.test: Auto merged mysql-test/t/rpl_sp.test: Auto merged mysql-test/t/rpl_until.test: Auto merged mysql-test/t/strict.test: Auto merged mysql-test/t/type_newdecimal.test: Auto merged client/mysqltest.c: Merge with --parsing-disabled mysql-test/t/mysqltest.test: Manual merge
		
			
				
	
	
		
			118 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| -- source include/have_innodb.inc
 | |
| # Can't test this with embedded server
 | |
| -- source include/not_embedded.inc
 | |
| 
 | |
| connect (con1,localhost,root,,);
 | |
| connect (con2,localhost,root,,);
 | |
| 
 | |
| --disable_warnings
 | |
| drop table if exists t1,t2;
 | |
| --enable_warnings
 | |
| 
 | |
| #
 | |
| # Testing of FOR UPDATE
 | |
| #
 | |
| 
 | |
| connection con1;
 | |
| create table t1 (id integer, x integer) engine=INNODB;
 | |
| insert into t1 values(0, 0);
 | |
| set autocommit=0;
 | |
| SELECT * from t1 where id = 0 FOR UPDATE;
 | |
| 
 | |
| connection con2;
 | |
| set autocommit=0;
 | |
| 
 | |
| # The following query should hang because con1 is locking the page
 | |
| --send
 | |
| update t1 set x=2 where id = 0;
 | |
| --sleep 2
 | |
| 
 | |
| connection con1;
 | |
| update t1 set x=1 where id = 0;
 | |
| select * from t1;
 | |
| commit;
 | |
| 
 | |
| connection con2;
 | |
| reap;
 | |
| commit;
 | |
| 
 | |
| connection con1;
 | |
| select * from t1;
 | |
| commit;
 | |
| 
 | |
| drop table t1;
 | |
| #
 | |
| # Testing of FOR UPDATE
 | |
| #
 | |
| 
 | |
| connection con1;
 | |
| create table t1 (id integer, x integer) engine=INNODB;
 | |
| create table t2 (b integer, a integer) engine=INNODB;
 | |
| insert into t1 values(0, 0), (300, 300);
 | |
| insert into t2 values(0, 10), (1, 20), (2, 30);
 | |
| commit;
 | |
| set autocommit=0;
 | |
| select * from t2;
 | |
| update t2 set a=100 where b=(SELECT x from t1 where id = b FOR UPDATE);
 | |
| select * from t2;
 | |
| select * from t1;
 | |
| 
 | |
| connection con2;
 | |
| set autocommit=0;
 | |
| 
 | |
| # The following query should hang because con1 is locking the page
 | |
| --send
 | |
| update t1 set x=2 where id = 0;
 | |
| --sleep 2
 | |
| 
 | |
| connection con1;
 | |
| update t1 set x=1 where id = 0;
 | |
| select * from t1;
 | |
| commit;
 | |
| 
 | |
| connection con2;
 | |
| reap;
 | |
| commit;
 | |
| 
 | |
| connection con1;
 | |
| select * from t1;
 | |
| commit;
 | |
| 
 | |
| drop table t1, t2;
 | |
| create table t1 (id integer, x integer) engine=INNODB;
 | |
| create table t2 (b integer, a integer) engine=INNODB;
 | |
| insert into t1 values(0, 0), (300, 300);
 | |
| insert into t2 values(0, 0), (1, 20), (2, 30);
 | |
| commit;
 | |
| 
 | |
| connection con1;
 | |
| select a,b from t2 UNION SELECT id, x from t1 FOR UPDATE;
 | |
| select * from t2;
 | |
| select * from t1;
 | |
| 
 | |
| connection con2;
 | |
| 
 | |
| # The following query should hang because con1 is locking the page
 | |
| update t2 set a=2 where b = 0;
 | |
| select * from t2;
 | |
| --send
 | |
| update t1 set x=2 where id = 0;
 | |
| --sleep 2
 | |
| 
 | |
| connection con1;
 | |
| update t1 set x=1 where id = 0;
 | |
| select * from t1;
 | |
| commit;
 | |
| 
 | |
| connection con2;
 | |
| reap;
 | |
| commit;
 | |
| 
 | |
| connection con1;
 | |
| select * from t1;
 | |
| commit;
 | |
| 
 | |
| drop table t1, t2;
 | |
| 
 | |
| # End of 4.1 tests
 |