mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
ed8ec2cf16
Rename innodb_table_locks_old_behavior -> innodb_table_locks Set innodb_table_locks to off by default to get same behaviour as in MySQL 4.0.20 (This means that Innodb ignore table locks by default, which makes it easier to combine MyISAM and InnoDB to simulate a transaction) libmysql/libmysql.c: Use ulong instead of unsigned long Reuse _dig_vec() myisam/myisampack.c: Simplify code mysql-test/r/innodb-lock.result: new test case mysql-test/t/innodb-lock.test: new test case sql/ha_innodb.cc: Rename innodb_table_locks_old_behavior -> innodb_table_locks sql/mysqld.cc: Rename innodb_table_locks_old_behavior -> innodb_table_locks Set this off by default to get same behaviour as in MySQL 4.0.20 sql/set_var.cc: Rename innodb_table_locks_old_behavior -> innodb_table_locks sql/sql_class.h: Rename innodb_table_locks_old_behavior -> innodb_table_locks
48 lines
861 B
Text
48 lines
861 B
Text
drop table if exists t1;
|
|
select @@innodb_table_locks;
|
|
@@innodb_table_locks
|
|
0
|
|
set @@innodb_table_locks=1;
|
|
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;
|
|
id x
|
|
0 0
|
|
set autocommit=0;
|
|
lock table t1 write;
|
|
update t1 set x=1 where id = 0;
|
|
select * from t1;
|
|
id x
|
|
0 1
|
|
commit;
|
|
update t1 set x=2 where id = 0;
|
|
commit;
|
|
unlock tables;
|
|
select * from t1;
|
|
id x
|
|
0 2
|
|
commit;
|
|
drop table t1;
|
|
set @@innodb_table_locks=0;
|
|
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;
|
|
id x
|
|
0 0
|
|
set autocommit=0;
|
|
lock table t1 write;
|
|
update t1 set x=1 where id = 0;
|
|
select * from t1;
|
|
id x
|
|
0 1
|
|
commit;
|
|
update t1 set x=2 where id = 0;
|
|
commit;
|
|
unlock tables;
|
|
select * from t1;
|
|
id x
|
|
0 2
|
|
commit;
|
|
drop table t1;
|