SET DEFAULT_STORAGE_ENGINE = 'tokudb';
# Establish connection conn1 (user = root)
DROP TABLE IF EXISTS foo;
set session transaction isolation level repeatable read;
create table foo (a int, b int, primary key (a), key (b))engine=TokuDB;
show create table foo;
Table	Create Table
foo	CREATE TABLE `foo` (
  `a` int(11) NOT NULL,
  `b` int(11) DEFAULT NULL,
  PRIMARY KEY (`a`),
  KEY `b` (`b`)
) ENGINE=TokuDB DEFAULT CHARSET=latin1
insert into foo values (100,100);
begin;
insert into foo values (1,100);
set session transaction isolation level repeatable read;
begin;
# should NOT see (1,100)
select * from foo;
a	b
100	100
# should be empty
select * from foo where a=1;
a	b
# should fail with a lock wait timeout
insert into foo values (1,1000);
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
commit;
# should return two values
select * from foo;
a	b
1	100
100	100
# should be empty
select * from foo where a=1;
a	b
# should fail with a dup entry
insert into foo values (1,1000);
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
commit;
set session transaction isolation level serializable;
DROP TABLE foo;
