mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
90 lines
3.8 KiB
PHP
90 lines
3.8 KiB
PHP
|
eval set session autocommit=$autocommit;
|
||
|
let $is_gaplock_target = `SELECT @@autocommit = 0 && '$select_lock' != '' && '$expect_gap_lock_errors' = 1`;
|
||
|
|
||
|
if ($is_gaplock_target)
|
||
|
{
|
||
|
# rnd_init
|
||
|
--error ER_UNKNOWN_ERROR
|
||
|
eval select * from gap1 limit 1 $select_lock;
|
||
|
--error ER_UNKNOWN_ERROR
|
||
|
eval select * from gap1 where value != 100 limit 1 $select_lock;
|
||
|
# index_read_map
|
||
|
--error ER_UNKNOWN_ERROR
|
||
|
eval select * from gap1 where id1=1 $select_lock;
|
||
|
--error ER_UNKNOWN_ERROR
|
||
|
eval select * from gap1 where id1=1 and id2= 1 $select_lock;
|
||
|
# read_range_first
|
||
|
--error ER_UNKNOWN_ERROR
|
||
|
eval select * from gap1 where id1=1 and id2= 1 and id3 != 1 $select_lock;
|
||
|
--error ER_UNKNOWN_ERROR
|
||
|
eval select * from gap1 where id1=1 and id2= 1 and id3
|
||
|
between 1 and 3 $select_lock;
|
||
|
--error ER_UNKNOWN_ERROR
|
||
|
eval select * from gap1 where id1=1 and id2= 1 order by id3 asc
|
||
|
limit 1 $select_lock;
|
||
|
--error ER_UNKNOWN_ERROR
|
||
|
eval select * from gap1 where id1=1 and id2= 1 order by id3 desc
|
||
|
limit 1 $select_lock;
|
||
|
# index_first
|
||
|
--error ER_UNKNOWN_ERROR
|
||
|
eval select * from gap1 order by id1 asc limit 1 $select_lock;
|
||
|
--error ER_UNKNOWN_ERROR
|
||
|
eval select * from gap1 order by id1 asc, id2 asc, id3 asc limit 1 $select_lock;
|
||
|
# index_last
|
||
|
--error ER_UNKNOWN_ERROR
|
||
|
eval select * from gap1 order by id1 desc limit 1 $select_lock;
|
||
|
--error ER_UNKNOWN_ERROR
|
||
|
eval select * from gap1 order by id1 desc, id2 desc, id3 desc
|
||
|
limit 1 $select_lock;
|
||
|
# secondary index lookup
|
||
|
--error ER_UNKNOWN_ERROR
|
||
|
eval select * from gap1 force index(i) where c1=1 $select_lock;
|
||
|
# unique index lookup, ensure no gap lock errors as this is effectively a
|
||
|
# single point select that does not lock ranges or gaps of keys
|
||
|
eval select * from gap3 force index(ui) where value=1 $select_lock;
|
||
|
# primary key lookup, ensure no gap lock errors as these are effectively
|
||
|
# single point selects that do not lock ranges or gaps of keys
|
||
|
eval select * from gap1 where id1=1 and id2=1 and id3=1 $select_lock;
|
||
|
eval select * from gap1 where id1=1 and id2=1 and id3 in (1, 2, 3) $select_lock;
|
||
|
eval select * from gap1 where id1=1 and id2=1 and id3=1 and value=1
|
||
|
order by c1 $select_lock;
|
||
|
eval select * from gap3 where id=1 $select_lock;
|
||
|
eval select * from gap4 where id=1 $select_lock;
|
||
|
eval select * from gap4 where id in (1, 2, 3) $select_lock;
|
||
|
--error ER_UNKNOWN_ERROR
|
||
|
eval select * from gap4 $select_lock;
|
||
|
--error ER_UNKNOWN_ERROR
|
||
|
eval select * from gap4 where id between 3 and 7 $select_lock;
|
||
|
}
|
||
|
|
||
|
if (!$is_gaplock_target)
|
||
|
{
|
||
|
eval select * from gap1 limit 1 $select_lock;
|
||
|
eval select * from gap1 where value != 100 limit 1 $select_lock;
|
||
|
eval select * from gap1 where id1=1 $select_lock;
|
||
|
eval select * from gap1 where id1=1 and id2= 1 $select_lock;
|
||
|
eval select * from gap1 where id1=1 and id2= 1 and id3 != 1 $select_lock;
|
||
|
eval select * from gap1 where id1=1 and id2= 1 and id3
|
||
|
between 1 and 3 $select_lock;
|
||
|
eval select * from gap1 where id1=1 and id2= 1 order by id3 asc
|
||
|
limit 1 $select_lock;
|
||
|
eval select * from gap1 where id1=1 and id2= 1 order by id3 desc
|
||
|
limit 1 $select_lock;
|
||
|
eval select * from gap1 order by id1 asc limit 1 $select_lock;
|
||
|
eval select * from gap1 order by id1 asc, id2 asc, id3 asc limit 1 $select_lock;
|
||
|
eval select * from gap1 order by id1 desc limit 1 $select_lock;
|
||
|
eval select * from gap1 order by id1 desc, id2 desc, id3 desc
|
||
|
limit 1 $select_lock;
|
||
|
eval select * from gap1 force index(i) where c1=1 $select_lock;
|
||
|
eval select * from gap3 force index(ui) where value=1 $select_lock;
|
||
|
eval select * from gap1 where id1=1 and id2=1 and id3=1 $select_lock;
|
||
|
eval select * from gap1 where id1=1 and id2=1 and id3 in (1, 2, 3) $select_lock;
|
||
|
eval select * from gap1 where id1=1 and id2=1 and id3=1 and value=1
|
||
|
order by c1 $select_lock;
|
||
|
eval select * from gap3 where id=1 $select_lock;
|
||
|
eval select * from gap4 where id=1 $select_lock;
|
||
|
eval select * from gap4 where id in (1, 2, 3) $select_lock;
|
||
|
eval select * from gap4 $select_lock;
|
||
|
eval select * from gap4 where id between 3 and 7 $select_lock;
|
||
|
}
|