1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-31 22:22:30 +03:00
Files
mariadb/mysql-test/suite/optimizer_unfixed_bugs/t/bug41029.test
Sergey Petrunya 96e092dc73 Backport into MariaDB-5.2 the following:
WL#2474 "Multi Range Read: Change the default MRR implementation to implement new MRR interface"
WL#2475 "Batched range read functions for MyISAM/InnoDb"
        "Index condition pushdown for MyISAM/InnoDB"
Igor's fix from sp1r-igor@olga.mysql.com-20080330055902-07614:
  There could be observed the following problems:
  1. EXPLAIN did not mention pushdown conditions from on expressions in the 
  'extra' column.  As a result if a query had no where conditions pushed 
  down to a table, but had on conditions pushed to this table the 'extra' 
  column in the EXPLAIN for the table missed 'using where'.
  2. Conditions for ref access were not eliminated from on expressions 
  though such conditions were eliminated from the where condition.
2009-12-15 10:16:46 +03:00

45 lines
971 B
Plaintext

# test for BUG#41029:
# "MRR: SELECT FOR UPDATE fails to lock gaps (InnoDB table)"
--source include/have_debug.inc
--source include/have_innodb.inc
select @default_binlog_format:=@@global.binlog_format;
set global binlog_format=row;
connect (con1,localhost,root,,);
connect (con2,localhost,root,,);
connection con1;
# bug requires this
set session debug="+d,optimizer_innodb_ds_mrr";
set autocommit=0;
use test;
drop table if exists t1;
create table t1 (dummy int primary key, a int unique, b int) engine=innodb;
insert into t1 values(1,1,1),(3,3,3),(5,5,5);
commit;
set session transaction isolation level repeatable read;
select @@tx_isolation;
start transaction;
select * from t1 where a > 2 for update;
connection con2;
use test;
set autocommit=0;
start transaction;
select 1;
--error ER_LOCK_WAIT_TIMEOUT
insert into t1 values(2,2,2);
rollback;
connection con1;
rollback;
drop table t1;
connection default;
set global binlog_format=@default_binlog_format;