mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Fixed bug in lock tables introduced by shared locks.
New lock test
This commit is contained in:
@ -17995,6 +17995,10 @@ Addresses may be 4 or 8 byte addresses:
|
||||
mysql> select INET_ATON("209.207.224.40");
|
||||
-> 3520061480
|
||||
@end example
|
||||
|
||||
The generated number is always in network byte order; For example the
|
||||
above number is calculated as @code{209*255^3 + 207*255^2 + 224*255 +40}.
|
||||
|
||||
@findex MASTER_POS_WAIT()
|
||||
@item MASTER_POS_WAIT(log_name, log_pos)
|
||||
Blocks until the slave reaches the specified position in the master log during
|
||||
|
2
mysql-test/r/lock.result
Normal file
2
mysql-test/r/lock.result
Normal file
@ -0,0 +1,2 @@
|
||||
dummy1 count(distinct id)
|
||||
NULL 1
|
23
mysql-test/t/lock.test
Normal file
23
mysql-test/t/lock.test
Normal file
@ -0,0 +1,23 @@
|
||||
#
|
||||
# Testing of table locking
|
||||
#
|
||||
|
||||
drop table if exists t1,t2;
|
||||
CREATE TABLE t1 ( `id` int(11) NOT NULL default '0', `id2` int(11) NOT NULL default '0', `id3` int(11) NOT NULL default '0', `dummy1` char(30) default NULL, PRIMARY KEY (`id`,`id2`), KEY `index_id3` (`id3`)) TYPE=MyISAM;
|
||||
insert into t1 (id,id2) values (1,1),(1,2),(1,3);
|
||||
LOCK TABLE t1 WRITE;
|
||||
select dummy1,count(distinct id) from t1 group by dummy1;
|
||||
update t1 set id=-1 where id=1;
|
||||
LOCK TABLE t1 READ;
|
||||
--error 1099
|
||||
update t1 set id=1 where id=1;
|
||||
--error 1100
|
||||
create table t2 SELECT * from t1;
|
||||
create temporary table t2 SELECT * from t1;
|
||||
drop table if exists t2;
|
||||
unlock tables;
|
||||
create table t2 SELECT * from t1;
|
||||
LOCK TABLE t1 WRITE,t2 write;
|
||||
insert into t2 SELECT * from t1;
|
||||
update t1 set id=1 where id=-1;
|
||||
drop table t1,t2;
|
@ -1362,7 +1362,7 @@ int open_tables(THD *thd,TABLE_LIST *start)
|
||||
result= -1; // Fatal error
|
||||
break;
|
||||
}
|
||||
if (tables->lock_type != TL_UNLOCK)
|
||||
if (tables->lock_type != TL_UNLOCK && ! thd->locked_tables)
|
||||
tables->table->reginfo.lock_type=tables->lock_type;
|
||||
tables->table->grant= tables->grant;
|
||||
}
|
||||
|
Reference in New Issue
Block a user