mariadb/mysql-test/t/query_cache_notembedded.test
unknown 6b27acbdf4 Big patch to make embedded-server working in 5.x
Now it supports queries returning several results
(particularly important with the SP)


include/mysql.h:
  embedded_query_result structure added
libmysql/libmysql.c:
  embedded-server related fixes
libmysqld/emb_qcache.cc:
  multiple-result support added
libmysqld/embedded_priv.h:
  embedded_query_result struct implemented
libmysqld/lib_sql.cc:
  multiple-result support added
libmysqld/libmysqld.c:
  small fixes
mysql-test/t/backup.test:
  test fixed
mysql-test/t/binlog_stm_binlog.test:
  test fixed
mysql-test/t/binlog_stm_blackhole.test:
  test fixed
mysql-test/t/binlog_stm_ctype_cp932.test:
  test fixed
mysql-test/t/compress.test:
  test fixed
mysql-test/t/delayed.test:
  test fixed
mysql-test/t/federated.test:
  test fixed
mysql-test/t/federated_archive.test:
  test fixed
mysql-test/t/federated_bug_13118.test:
  test fixed
mysql-test/t/federated_transactions.test:
  test fixed
mysql-test/t/flush_table.test:
  test fixed
mysql-test/t/handler.test:
  test fixed
mysql-test/t/init_connect.test:
  test fixed
mysql-test/t/innodb.test:
  test fixed
mysql-test/t/mysql.test:
  test fixed
mysql-test/t/mysql_client_test.test:
  test fixed
mysql-test/t/mysqltest.test:
  test fixed
mysql-test/t/query_cache.test:
  test fixed
mysql-test/t/query_cache_notembedded.test:
  test fixed
mysql-test/t/read_only.test:
  test fixed
mysql-test/t/skip_grants.test:
  test fixed
mysql-test/t/sp-destruct.test:
  test fixed
mysql-test/t/sp-error.test:
  test fixed
mysql-test/t/sp-threads.test:
  test fixed
mysql-test/t/sp.test:
  test fixed
mysql-test/t/view.test:
  test fixed
mysql-test/t/wait_timeout.test:
  test fixed
sql-common/client.c:
  small fixes
sql/mysqld.cc:
  embedded-server related fix
sql/protocol.cc:
  embedded-server related fix
sql/protocol.h:
  embedded-server related fix
sql/sql_class.cc:
  embedded-server related fix
sql/sql_class.h:
  embedded-server related fix
sql/sql_cursor.cc:
  embedded-server related fix
sql/sql_parse.cc:
  embedded-server related fix
sql/sql_prepare.cc:
  embedded-server related fix
2006-01-04 14:20:28 +04:00

184 lines
4.7 KiB
Text

-- source include/have_query_cache.inc
-- source include/not_embedded.inc
#
# Tests with query cache
#
set GLOBAL query_cache_size=1355776;
# Reset query cache variables.
flush query cache; # This crashed in some versions
flush query cache; # This crashed in some versions
reset query cache;
flush status;
--disable_warnings
drop table if exists t1, t2, t3, t11, t21;
--enable_warnings
#
# FLUSH QUERY CACHE
#
create table t1 (a int not null);
insert into t1 values (1),(2),(3);
create table t2 (a int not null);
insert into t2 values (1),(2),(3);
select * from t1;
select * from t2;
insert into t1 values (4);
show status like "Qcache_free_blocks";
flush query cache;
show status like "Qcache_free_blocks";
drop table t1, t2;
# With join results...
create table t1 (a text not null);
create table t11 (a text not null);
create table t2 (a text not null);
create table t21 (a text not null);
create table t3 (a text not null);
insert into t1 values("1111111111111111111111111111111111111111111111111111");
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
# t11 and t21 must be over 4Kb (QUERY_CACHE_MIN_RESULT_DATA_SIZE)
insert into t11 select * from t1;
insert into t21 select * from t1;
insert into t1 select * from t2;
insert into t2 select * from t1;
insert into t1 select * from t2;
#results of t3 must be > 0.5Mb
insert into t3 select * from t1;
insert into t3 select * from t2;
insert into t3 select * from t1;
disable_result_log;
select * from t11;
select * from t21;
enable_result_log;
show status like "Qcache_total_blocks";
show status like "Qcache_free_blocks";
disable_result_log;
insert into t11 values("");
select * from t3;
enable_result_log;
show status like "Qcache_total_blocks";
show status like "Qcache_free_blocks";
flush query cache;
show status like "Qcache_total_blocks";
show status like "Qcache_free_blocks";
drop table t1, t2, t3, t11, t21;
#
# do not use QC if tables locked (BUG#12385)
#
connect (root,localhost,root,,test,$MASTER_MYPORT,master.sock);
connection root;
CREATE TABLE t1 ( a INT NOT NULL PRIMARY KEY AUTO_INCREMENT ) ENGINE =
MyISAM;
LOCK TABLE t1 READ LOCAL;
connect (root2,localhost,root,,test,$MASTER_MYPORT,master.sock);
connection root2;
INSERT INTO t1 VALUES (), (), ();
connection root;
SELECT * FROM t1;
connection root2;
SELECT * FROM t1;
connection root;
SELECT * FROM t1;
drop table t1;
#
# query in QC from normal execution and SP (BUG#6897)
# improved to also test BUG#3583 and BUG#12990
#
flush query cache;
reset query cache;
flush status;
delimiter //;
create table t1 (s1 int)//
create procedure f1 () begin
select sql_cache * from t1;
select sql_cache * from t1;
select sql_cache * from t1;
end;//
create procedure f2 () begin
select sql_cache * from t1 where s1=1;
select sql_cache * from t1;
end;//
create procedure f3 () begin
select sql_cache * from t1;
select sql_cache * from t1 where s1=1;
end;//
create procedure f4 () begin
select sql_cache * from t1;
select sql_cache * from t1 where s1=1;
select sql_cache * from t1;
select sql_cache * from t1 where s1=1;
select sql_cache * from t1 where s1=1;
end;//
delimiter ;//
call f1();
--replace_result 1 3
show status like "Qcache_queries_in_cache";
show status like "Qcache_inserts";
show status like "Qcache_hits";
call f1();
show status like "Qcache_queries_in_cache";
show status like "Qcache_inserts";
show status like "Qcache_hits";
call f1();
select sql_cache * from t1;
show status like "Qcache_queries_in_cache";
show status like "Qcache_inserts";
show status like "Qcache_hits";
insert into t1 values (1);
select sql_cache * from t1;
show status like "Qcache_queries_in_cache";
show status like "Qcache_inserts";
show status like "Qcache_hits";
call f1();
call f1();
select sql_cache * from t1;
show status like "Qcache_queries_in_cache";
show status like "Qcache_inserts";
show status like "Qcache_hits";
flush query cache;
reset query cache;
flush status;
select sql_cache * from t1;
select sql_cache * from t1 where s1=1;
call f1();
call f2();
call f3();
call f4();
call f4();
call f3();
call f2();
select sql_cache * from t1 where s1=1;
insert into t1 values (2);
call f1();
select sql_cache * from t1 where s1=1;
select sql_cache * from t1;
call f1();
call f3();
call f3();
call f1();
drop procedure f1;
drop procedure f2;
drop procedure f3;
drop procedure f4;
drop table t1;
set GLOBAL query_cache_size=0;