summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysql-test/r/preload.result214
-rwxr-xr-xmysql-test/t/preload.test101
2 files changed, 315 insertions, 0 deletions
diff --git a/mysql-test/r/preload.result b/mysql-test/r/preload.result
new file mode 100644
index 00000000000..0afd95b6fb8
--- /dev/null
+++ b/mysql-test/r/preload.result
@@ -0,0 +1,214 @@
+drop table if exists t1, t2;
+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;
+count(*)
+33448
+select count(*) from t2;
+count(*)
+20672
+flush tables;
+flush status;
+show status like "key_%";
+Variable_name Value
+Key_blocks_used 918
+Key_read_requests 0
+Key_reads 0
+Key_write_requests 0
+Key_writes 0
+select count(*) from t1 where b = 'test1';
+count(*)
+4181
+show status like "key_%";
+Variable_name Value
+Key_blocks_used 918
+Key_read_requests 217
+Key_reads 45
+Key_write_requests 0
+Key_writes 0
+select count(*) from t1 where b = 'test1';
+count(*)
+4181
+show status like "key_%";
+Variable_name Value
+Key_blocks_used 918
+Key_read_requests 434
+Key_reads 45
+Key_write_requests 0
+Key_writes 0
+flush tables;
+flush status;
+select @@preload_buffer_size;
+@@preload_buffer_size
+32768
+preload t1 keys;
+Table Op Msg_type Msg_text
+test.t1 preload_keys status OK
+show status like "preload_%";
+Variable_name Value
+show status like "key_%";
+Variable_name Value
+Key_blocks_used 918
+Key_read_requests 0
+Key_reads 0
+Key_write_requests 0
+Key_writes 0
+select count(*) from t1 where b = 'test1';
+count(*)
+4181
+show status like "key_%";
+Variable_name Value
+Key_blocks_used 918
+Key_read_requests 217
+Key_reads 45
+Key_write_requests 0
+Key_writes 0
+flush tables;
+flush status;
+show status like "key_%";
+Variable_name Value
+Key_blocks_used 918
+Key_read_requests 0
+Key_reads 0
+Key_write_requests 0
+Key_writes 0
+set session preload_buffer_size=256*1024;
+select @@preload_buffer_size;
+@@preload_buffer_size
+262144
+preload t1 keys ignore leaves;
+Table Op Msg_type Msg_text
+test.t1 preload_keys status OK
+show status like "key_%";
+Variable_name Value
+Key_blocks_used 918
+Key_read_requests 0
+Key_reads 0
+Key_write_requests 0
+Key_writes 0
+select count(*) from t1 where b = 'test1';
+count(*)
+4181
+show status like "key_%";
+Variable_name Value
+Key_blocks_used 918
+Key_read_requests 217
+Key_reads 45
+Key_write_requests 0
+Key_writes 0
+flush tables;
+flush status;
+show status like "key_%";
+Variable_name Value
+Key_blocks_used 918
+Key_read_requests 0
+Key_reads 0
+Key_write_requests 0
+Key_writes 0
+set session preload_buffer_size=1*1024;
+select @@preload_buffer_size;
+@@preload_buffer_size
+1024
+preload t1 keys, t2 keys (primary,b) ignore leaves;
+Table Op Msg_type Msg_text
+test.t1 preload_keys status OK
+test.t2 preload_keys status OK
+show status like "key_%";
+Variable_name Value
+Key_blocks_used 918
+Key_read_requests 0
+Key_reads 0
+Key_write_requests 0
+Key_writes 0
+select count(*) from t1 where b = 'test1';
+count(*)
+4181
+select count(*) from t2 where b = 'test1';
+count(*)
+2584
+show status like "key_%";
+Variable_name Value
+Key_blocks_used 918
+Key_read_requests 351
+Key_reads 73
+Key_write_requests 0
+Key_writes 0
+flush tables;
+flush status;
+show status like "key_%";
+Variable_name Value
+Key_blocks_used 918
+Key_read_requests 0
+Key_reads 0
+Key_write_requests 0
+Key_writes 0
+preload t3 keys, t2 keys (primary,b) ;
+Table Op Msg_type Msg_text
+test.t3 preload_keys error Table 'test.t3' doesn't exist
+test.t2 preload_keys status OK
+show status like "key_%";
+Variable_name Value
+Key_blocks_used 918
+Key_read_requests 0
+Key_reads 0
+Key_write_requests 0
+Key_writes 0
+flush tables;
+flush status;
+show status like "key_%";
+Variable_name Value
+Key_blocks_used 918
+Key_read_requests 0
+Key_reads 0
+Key_write_requests 0
+Key_writes 0
+preload t3 keys (b), t2 keys (c) ;
+Table Op Msg_type Msg_text
+test.t3 preload_keys error Table 'test.t3' doesn't exist
+test.t2 preload_keys error Key column 'c' doesn't exist in table
+test.t2 preload_keys status Operation failed
+show status like "key_%";
+Variable_name Value
+Key_blocks_used 918
+Key_read_requests 0
+Key_reads 0
+Key_write_requests 0
+Key_writes 0
+drop table t1, t2;
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;