diff options
author | dlenev@brandersnatch.localdomain <> | 2005-04-15 20:31:47 +0400 |
---|---|---|
committer | dlenev@brandersnatch.localdomain <> | 2005-04-15 20:31:47 +0400 |
commit | 6b0b4734d90efd3c98d7f7ad9584f0aa404ba52b (patch) | |
tree | cfeca0850da684db9d6d61780d75e68485f053ec /mysql-test/t/sp-threads.test | |
parent | 32221d9b9e17867e5b2596e7ae36b0aa08dcc6fb (diff) | |
download | mariadb-git-6b0b4734d90efd3c98d7f7ad9584f0aa404ba52b.tar.gz |
Fix for bug #9486 "Can't perform multi-update in stored procedure".
New more SP-locking friendly approach to handling locks in multi-update.
Now we mark all tables of multi-update as needing write lock at parsing
stage and if possible downgrade lock at execution stage (For its work
SP-locking mechanism needs to know all lock types right after parsing
stage).
Diffstat (limited to 'mysql-test/t/sp-threads.test')
-rw-r--r-- | mysql-test/t/sp-threads.test | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/mysql-test/t/sp-threads.test b/mysql-test/t/sp-threads.test index 0ced60a610f..608ac3e2ee7 100644 --- a/mysql-test/t/sp-threads.test +++ b/mysql-test/t/sp-threads.test @@ -55,6 +55,37 @@ drop procedure bug4934; # +# BUG #9486 "Can't perform multi-update in stored procedure" +# +--disable_warnings +drop procedure if exists bug9486; +drop table if exists t1, t2; +--enable_warnings +create table t1 (id1 int, val int); +create table t2 (id2 int); + +create procedure bug9486() + update t1, t2 set val= 1 where id1=id2; +call bug9486(); +# Let us check that SP invocation requires write lock for t2. +connection con2root; +lock tables t2 write; +connection con1root; +send call bug9486(); +connection con2root; +--sleep 2 +# There should be call statement in locked state. +--replace_column 1 # 6 # +show processlist; +unlock tables; +connection con1root; +reap; + +drop procedure bug9486; +drop table t1, t2; + + +# # BUG#NNNN: New bug synopsis # #--disable_warnings |