1# ticket 895 is a query optimization problem with the primary key
2
3--source include/have_tokudb.inc
4SET DEFAULT_STORAGE_ENGINE = 'tokudb';
5
6--echo # Establish connection conn1 (user = root)
7connect (conn1,localhost,root,,);
8connect (conn2,localhost,root,,);
9connect (conn3,localhost,root,,);
10connect (conn4,localhost,root,,);
11connect (conn5,localhost,root,,);
12
13--disable_warnings
14DROP TABLE IF EXISTS foo;
15--enable_warnings
16
17connection default;
18create table foo (a int, b varchar (100), primary key (a)) engine=TokuDB;
19show create table foo;
20
21connection conn1;
22set session transaction isolation level repeatable read;
23begin;
24select * from foo;
25
26connection default;
27replace into foo values (1, "a");
28
29connection conn2;
30set session transaction isolation level repeatable read;
31begin;
32select * from foo;
33
34connection default;
35replace into foo values (1,"abGARBAGE"), (2, "abGARBAGE");
36replace into foo values (1,"ab"), (2, "ab");
37
38connection conn3;
39set session transaction isolation level repeatable read;
40begin;
41select * from foo;
42
43connection default;
44replace into foo values (1,"abcGARBAGE"),(2,"abcGARBAGE"),(3, "abcGARBAGE");
45replace into foo values (1,"abc"),(2,"abc"),(3, "abc");
46
47connection conn4;
48set session transaction isolation level repeatable read;
49begin;
50select * from foo;
51
52connection default;
53replace into foo values (1,"abcdGARBAGE"),(2,"abcdGARBAGE"),(3, "abcdGARBAGE"),(4, "abcdGARBAGE");
54replace into foo values (1,"abcd"),(2,"abcd"),(3, "abcd"),(4, "abcd");
55
56connection conn5;
57set session transaction isolation level repeatable read;
58begin;
59select * from foo;
60
61connection conn1;
62select * from foo;
63commit;
64
65connection conn2;
66select * from foo;
67commit;
68
69connection conn3;
70select * from foo;
71commit;
72
73connection conn4;
74select * from foo;
75commit;
76
77connection conn5;
78select * from foo;
79commit;
80
81
82connection default;
83select * from foo;
84replace into foo values (1,"1"),(2,"2"),(3,"3"),(4,"4");
85select * from foo;
86disconnect conn1;
87disconnect conn2;
88disconnect conn3;
89disconnect conn4;
90disconnect conn5;
91
92connection default;
93# Final cleanup.
94set session transaction isolation level serializable;
95DROP TABLE foo;