summaryrefslogtreecommitdiff
path: root/mysql-test/t/preload.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/t/preload.test')
-rwxr-xr-xmysql-test/t/preload.test101
1 files changed, 101 insertions, 0 deletions
diff --git a/mysql-test/t/preload.test b/mysql-test/t/preload.test
new file mode 100755
index 00000000000..1fd0d0a5b17
--- /dev/null
+++ b/mysql-test/t/preload.test
@@ -0,0 +1,101 @@
+#
+# Testing of PRELOAD
+#
+
+--disable_warnings
+drop table if exists t1, t2;
+--enable_warnings
+
+
+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;
+insert into t2(b) select b from t1;
+insert into t1(b) select b from t2;
+insert into t2(b) select b from t1;
+insert into t1(b) select b from t2;
+insert into t2(b) select b from t1;
+insert into t1(b) select b from t2;
+insert into t2(b) select b from t1;
+insert into t1(b) select b from t2;
+insert into t2(b) select b from t1;
+insert into t1(b) select b from t2;
+insert into t2(b) select b from t1;
+insert into t1(b) select b from t2;
+insert into t2(b) select b from t1;
+insert into t1(b) select b from t2;
+insert into t2(b) select b from t1;
+insert into t1(b) select b from t2;
+
+select count(*) from t1;
+select count(*) from t2;
+
+flush tables; flush status;
+show status like "key_%";
+
+select count(*) from t1 where b = 'test1';
+show status like "key_%";
+select count(*) from t1 where b = 'test1';
+show status like "key_%";
+
+flush tables; flush status;
+select @@preload_buffer_size;
+preload t1 keys;
+show status like "preload_%";
+show status like "key_%";
+select count(*) from t1 where b = 'test1';
+show status like "key_%";
+
+flush tables; flush status;
+show status like "key_%";
+set session preload_buffer_size=256*1024;
+select @@preload_buffer_size;
+preload t1 keys ignore leaves;
+show status like "key_%";
+select count(*) from t1 where b = 'test1';
+show status like "key_%";
+
+flush tables; flush status;
+show status like "key_%";
+set session preload_buffer_size=1*1024;
+select @@preload_buffer_size;
+preload t1 keys, t2 keys (primary,b) ignore leaves;
+show status like "key_%";
+select count(*) from t1 where b = 'test1';
+select count(*) from t2 where b = 'test1';
+show status like "key_%";
+
+flush tables; flush status;
+show status like "key_%";
+preload t3 keys, t2 keys (primary,b) ;
+show status like "key_%";
+
+flush tables; flush status;
+show status like "key_%";
+preload t3 keys (b), t2 keys (c) ;
+show status like "key_%";
+
+drop table t1, t2;