diff --git a/mysql-test/main/large_pages.opt b/mysql-test/main/large_pages.opt new file mode 100644 index 00000000000..857c9c1ecee --- /dev/null +++ b/mysql-test/main/large_pages.opt @@ -0,0 +1 @@ +--large-pages diff --git a/mysql-test/main/large_pages.result b/mysql-test/main/large_pages.result new file mode 100644 index 00000000000..9d03e646ddf --- /dev/null +++ b/mysql-test/main/large_pages.result @@ -0,0 +1,43 @@ +call mtr.add_suppression("\\[Warning\\] (mysqld|mariadbd): Couldn't allocate [0-9]+ bytes \\((Large/HugeTLB memory|MEMLOCK) page size [0-9]+\\).*"); +create table t1 ( +a int not null auto_increment, +b char(16) not null, +primary key (a), +key (b) +); +create table t2( +a int not null auto_increment, +b char(16) not null, +primary key (a), +key (b) +); +insert into t1(b) values +('test0'), +('test1'), +('test2'), +('test3'), +('test4'), +('test5'), +('test6'), +('test7'); +insert into t2(b) select b from t1; +insert into t1(b) select b from t2; +select * from t1 join t2 using (b) ORDER BY t1.a, t2.a; +b a a +test0 1 1 +test1 2 2 +test2 3 3 +test3 4 4 +test4 5 5 +test5 6 6 +test6 7 7 +test7 8 8 +test0 9 1 +test1 10 2 +test2 11 3 +test3 12 4 +test4 13 5 +test5 14 6 +test6 15 7 +test7 16 8 +drop table t1, t2; diff --git a/mysql-test/main/large_pages.test b/mysql-test/main/large_pages.test new file mode 100644 index 00000000000..136273a2821 --- /dev/null +++ b/mysql-test/main/large_pages.test @@ -0,0 +1,38 @@ +# Test of large pages (or at least the fallback to conventional allocation) + +# Windows needs SeLockMemoryPrivilege +--source include/not_windows.inc +--source include/have_innodb.inc + +call mtr.add_suppression("\\[Warning\\] (mysqld|mariadbd): Couldn't allocate [0-9]+ bytes \\((Large/HugeTLB memory|MEMLOCK) page size [0-9]+\\).*"); + +create table t1 ( + a int not null auto_increment, + b char(16) not null, + primary key (a), + key (b) +); + +create table t2( + a int not null auto_increment, + b char(16) not null, + primary key (a), + key (b) +); + +insert into t1(b) values + ('test0'), + ('test1'), + ('test2'), + ('test3'), + ('test4'), + ('test5'), + ('test6'), + ('test7'); + +insert into t2(b) select b from t1; +insert into t1(b) select b from t2; + +select * from t1 join t2 using (b) ORDER BY t1.a, t2.a; + +drop table t1, t2;