1eval set session autocommit=$autocommit; 2let $is_gaplock_target = `SELECT @@autocommit = 0 && '$select_lock' != '' && '$expect_gap_lock_errors' = 1`; 3 4if ($is_gaplock_target) 5{ 6# rnd_init 7--error ER_UNKNOWN_ERROR 8eval select * from gap1 limit 1 $select_lock; 9--error ER_UNKNOWN_ERROR 10eval select * from gap1 where value != 100 limit 1 $select_lock; 11# index_read_map 12--error ER_UNKNOWN_ERROR 13eval select * from gap1 where id1=1 $select_lock; 14--error ER_UNKNOWN_ERROR 15eval select * from gap1 where id1=1 and id2= 1 $select_lock; 16# read_range_first 17--error ER_UNKNOWN_ERROR 18eval select * from gap1 where id1=1 and id2= 1 and id3 != 1 $select_lock; 19--error ER_UNKNOWN_ERROR 20eval select * from gap1 where id1=1 and id2= 1 and id3 21 between 1 and 3 $select_lock; 22--error ER_UNKNOWN_ERROR 23eval select * from gap1 where id1=1 and id2= 1 order by id3 asc 24 limit 1 $select_lock; 25--error ER_UNKNOWN_ERROR 26eval select * from gap1 where id1=1 and id2= 1 order by id3 desc 27 limit 1 $select_lock; 28# index_first 29--error ER_UNKNOWN_ERROR 30eval select * from gap1 order by id1 asc limit 1 $select_lock; 31--error ER_UNKNOWN_ERROR 32eval select * from gap1 order by id1 asc, id2 asc, id3 asc limit 1 $select_lock; 33# index_last 34--error ER_UNKNOWN_ERROR 35eval select * from gap1 order by id1 desc limit 1 $select_lock; 36--error ER_UNKNOWN_ERROR 37eval select * from gap1 order by id1 desc, id2 desc, id3 desc 38 limit 1 $select_lock; 39# secondary index lookup 40--error ER_UNKNOWN_ERROR 41eval select * from gap1 force index(i) where c1=1 $select_lock; 42# unique index lookup, ensure no gap lock errors as this is effectively a 43# single point select that does not lock ranges or gaps of keys 44eval select * from gap3 force index(ui) where value=1 $select_lock; 45# primary key lookup, ensure no gap lock errors as these are effectively 46# single point selects that do not lock ranges or gaps of keys 47eval select * from gap1 where id1=1 and id2=1 and id3=1 $select_lock; 48eval select * from gap1 where id1=1 and id2=1 and id3 in (1, 2, 3) $select_lock; 49eval select * from gap1 where id1=1 and id2=1 and id3=1 and value=1 50 order by c1 $select_lock; 51eval select * from gap3 where id=1 $select_lock; 52eval select * from gap4 where id=1 $select_lock; 53eval select * from gap4 where id in (1, 2, 3) $select_lock; 54--error ER_UNKNOWN_ERROR 55eval select * from gap4 $select_lock; 56--error ER_UNKNOWN_ERROR 57eval select * from gap4 where id between 3 and 7 $select_lock; 58} 59 60if (!$is_gaplock_target) 61{ 62eval select * from gap1 limit 1 $select_lock; 63eval select * from gap1 where value != 100 limit 1 $select_lock; 64eval select * from gap1 where id1=1 $select_lock; 65eval select * from gap1 where id1=1 and id2= 1 $select_lock; 66eval select * from gap1 where id1=1 and id2= 1 and id3 != 1 $select_lock; 67eval select * from gap1 where id1=1 and id2= 1 and id3 68 between 1 and 3 $select_lock; 69eval select * from gap1 where id1=1 and id2= 1 order by id3 asc 70 limit 1 $select_lock; 71eval select * from gap1 where id1=1 and id2= 1 order by id3 desc 72 limit 1 $select_lock; 73eval select * from gap1 order by id1 asc limit 1 $select_lock; 74eval select * from gap1 order by id1 asc, id2 asc, id3 asc limit 1 $select_lock; 75eval select * from gap1 order by id1 desc limit 1 $select_lock; 76eval select * from gap1 order by id1 desc, id2 desc, id3 desc 77 limit 1 $select_lock; 78eval select * from gap1 force index(i) where c1=1 $select_lock; 79eval select * from gap3 force index(ui) where value=1 $select_lock; 80eval select * from gap1 where id1=1 and id2=1 and id3=1 $select_lock; 81eval select * from gap1 where id1=1 and id2=1 and id3 in (1, 2, 3) $select_lock; 82eval select * from gap1 where id1=1 and id2=1 and id3=1 and value=1 83 order by c1 $select_lock; 84eval select * from gap3 where id=1 $select_lock; 85eval select * from gap4 where id=1 $select_lock; 86eval select * from gap4 where id in (1, 2, 3) $select_lock; 87eval select * from gap4 $select_lock; 88eval select * from gap4 where id between 3 and 7 $select_lock; 89} 90