diff options
author | unknown <jimw@mysql.com> | 2005-11-02 16:38:23 -0800 |
---|---|---|
committer | unknown <jimw@mysql.com> | 2005-11-02 16:38:23 -0800 |
commit | a96c12e745155bf6259a4a91b53848c26878838f (patch) | |
tree | 48faba508485cecf3aa4a28ffb873ad3e7a82a51 /mysql-test | |
parent | bd4f4c6e55e441eebbe457f132c42128cd928fed (diff) | |
download | mariadb-git-a96c12e745155bf6259a4a91b53848c26878838f.tar.gz |
Fix handling of "SET TRANSACTION ISOLATION LEVEL ...". (Bug #7955)
mysql-test/r/bdb.result:
Add results
mysql-test/t/bdb.test:
Add new test
sql/set_var.cc:
Refuse attempts to change tx_isolation while a transaction is in progress.
sql/set_var.h:
Support check function for sys_var_thd_enum
sql/share/errmsg.txt:
Add new error message
sql/sql_yacc.yy:
Make sure that lex->option_type always gets set in 'SET TRANSACTION ...'
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/bdb.result | 18 | ||||
-rw-r--r-- | mysql-test/t/bdb.test | 21 |
2 files changed, 39 insertions, 0 deletions
diff --git a/mysql-test/r/bdb.result b/mysql-test/r/bdb.result index 2bba44d36e9..41f7369c686 100644 --- a/mysql-test/r/bdb.result +++ b/mysql-test/r/bdb.result @@ -1895,3 +1895,21 @@ t1 CREATE TABLE `t1` ( ) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1 drop table t1; set storage_engine=MyISAM; +create table t1 (a int) engine=bdb; +set session transaction isolation level repeatable read; +set transaction isolation level serializable; +begin; +select @@tx_isolation; +@@tx_isolation +SERIALIZABLE +insert into t1 values (1); +set transaction isolation level read committed; +ERROR 25001: Transaction isolation level can't be changed while a transaction is in progress +rollback; +begin; +select @@tx_isolation; +@@tx_isolation +REPEATABLE-READ +insert into t1 values (1); +rollback; +drop table t1; diff --git a/mysql-test/t/bdb.test b/mysql-test/t/bdb.test index 3167682f816..2a987e8e7a6 100644 --- a/mysql-test/t/bdb.test +++ b/mysql-test/t/bdb.test @@ -973,3 +973,24 @@ drop table t1; # End varchar test eval set storage_engine=$default; + +# +# Bug #7955: SET TRANSACTION ISIOLATION LEVEL lives longer than next +# transaciton +# +create table t1 (a int) engine=bdb; +set session transaction isolation level repeatable read; +set transaction isolation level serializable; +begin; +select @@tx_isolation; +insert into t1 values (1); +--error ER_CANT_CHANGE_TX_ISOLATION +set transaction isolation level read committed; +rollback; +begin; +select @@tx_isolation; +insert into t1 values (1); +rollback; +drop table t1; + +# End of 5.0 tests |