diff options
author | unknown <monty@hundin.mysql.fi> | 2001-12-10 00:08:24 +0200 |
---|---|---|
committer | unknown <monty@hundin.mysql.fi> | 2001-12-10 00:08:24 +0200 |
commit | f939a6b635846216778bb4abd96ba6fef229908e (patch) | |
tree | 3e69c63ee516f0cf84e4f42523b616db0f833200 /mysql-test | |
parent | b05520526e75ea6fbe17aad0c256851bccd33054 (diff) | |
download | mariadb-git-f939a6b635846216778bb4abd96ba6fef229908e.tar.gz |
Removed compiler warnings.
Added new operators to be used with gcc 3.0.x
Update of query cache code.
Added semaphores for Windows (not yet in use)
Added pthread_mutex_trylock for windows.
Docs/manual.texi:
Update of query cache info.
Docs/section.Comparisons.texi:
Added indexing.
client/mysqlbinlog.cc:
Removed compiler warnings.
client/mysqltest.c:
Added enable_result_log/disable_result_log
include/config-win.h:
Added support of semaphores on Windows.
include/my_pthread.h:
Added pthread_mutex_trylock for windows.
include/my_sys.h:
Cleanup
libmysql/libmysql.c:
Fixed bug in mysql_use_result() (When reusing connections).
myisam/ft_boolean_search.c:
Removed compiler warnings
myisam/ft_nlq_search.c:
Removed compiler warnings
myisam/ft_update.c:
Removed compiler warnings
mysql-test/r/query_cache.result:
New tests
mysql-test/t/query_cache-master.opt:
New tests
mysql-test/t/query_cache.test:
New tests
mysys/Makefile.am:
Added new operators to be used with gcc 3.0.x
sql/filesort.cc:
Removed compiler warnings
sql/item_func.cc:
Removed compiler warnings
sql/mysql_priv.h:
Removed compiler warnings
sql/mysqld.cc:
Update of query cache code.
sql/slave.cc:
Removed compiler warnings.
Code cleanup (Indentation)
sql/sql_cache.cc:
Updated code
sql/sql_cache.h:
Updated code
sql/sql_repl.cc:
Removed compiler warnings
sql/sql_yacc.yy:
Updated query cache
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/query_cache.result | 264 | ||||
-rw-r--r-- | mysql-test/t/query_cache-master.opt | 2 | ||||
-rw-r--r-- | mysql-test/t/query_cache.test | 159 |
3 files changed, 422 insertions, 3 deletions
diff --git a/mysql-test/r/query_cache.result b/mysql-test/r/query_cache.result index ac6962bfd9d..f16c72d148a 100644 --- a/mysql-test/r/query_cache.result +++ b/mysql-test/r/query_cache.result @@ -1,6 +1,6 @@ reset query cache; flush status; -drop table if exists t1; +drop table if exists t1,t2,t3; create table t1 (a int not null); insert into t1 values (1),(2),(3); select * from t1; @@ -36,3 +36,265 @@ drop table t1; show status like "Qcache_queries_in_cache"; Variable_name Value Qcache_queries_in_cache 0 +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 (4),(5),(6); +create table t3 (a int not null) type=MERGE UNION=(t1,t2) INSERT_METHOD=FIRST; +select * from t3; +a +1 +2 +3 +4 +5 +6 +select * from t3; +a +1 +2 +3 +4 +5 +6 +show status like "Qcache_hits"; +Variable_name Value +Qcache_hits 2 +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 1 +insert into t2 values (7); +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 0 +select * from t1; +a +1 +2 +3 +select * from t1; +a +1 +2 +3 +show status like "Qcache_hits"; +Variable_name Value +Qcache_hits 3 +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 1 +insert into t3 values (8); +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 0 +select * from t3; +a +1 +2 +3 +8 +4 +5 +6 +7 +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 1 +update t2 set a=9 where a=7; +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 0 +select * from t1; +a +1 +2 +3 +8 +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 1 +update t3 set a=10 where a=1; +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 0 +select * from t3; +a +10 +2 +3 +8 +4 +5 +6 +9 +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 1 +delete from t2 where a=9; +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 0 +select * from t1; +a +10 +2 +3 +8 +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 1 +delete from t3 where a=10; +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 0 +drop table t1, t2, t3; +set autocommit=0; +create table t1 (a int not null) type=innodb; +insert into t1 values (1),(2),(3); +select * from t1; +a +1 +2 +3 +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 0 +drop table t1; +commit; +set autocommit=1; +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; +a +1 +2 +3 +select * from t2; +a +1 +2 +3 +insert into t1 values (4); +show status like "Qcache_free_blocks"; +Variable_name Value +Qcache_free_blocks 2 +flush query cache; +show status like "Qcache_free_blocks"; +Variable_name Value +Qcache_free_blocks 1 +drop table t1, t2; +set sql_query_cache_type=demand; +create table t1 (a int not null); +insert into t1 values (1),(2),(3); +select * from t1; +a +1 +2 +3 +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 0 +select sql_cache * from t1; +a +1 +2 +3 +set sql_query_cache_type=2; +select sql_cache * from t1; +a +1 +2 +3 +show status like "Qcache_hits"; +Variable_name Value +Qcache_hits 4 +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 1 +set sql_query_cache_type=on; +reset query cache; +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 0 +select sql_no_cache * from t1; +a +1 +2 +3 +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 0 +drop table t1; +create table t1 (a text not null); +select CONNECTION_ID() from t1; +CONNECTION_ID() +select FOUND_ROWS(); +FOUND_ROWS() +0 +select NOW() from t1; +NOW() +select CURDATE() from t1; +CURDATE() +select CURTIME() from t1; +CURTIME() +select DATABASE() from t1; +DATABASE() +select ENCRYPT("test") from t1; +ENCRYPT("test") +select LAST_INSERT_ID() from t1; +last_insert_id() +select RAND() from t1; +RAND() +select UNIX_TIMESTAMP() from t1; +UNIX_TIMESTAMP() +select USER() from t1; +USER() +select benchmark(1,1) from t1; +benchmark(1,1) +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 0 +create table t2 (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; +insert into t1 select * from t2; +insert into t2 select * from t1; +insert into t1 select * from t2; +drop table t2; +show status like "Qcache_hits"; +Variable_name Value +Qcache_hits 4 +select a as a1, a as a2 from t1; +select a as a2, a as a3 from t1; +select a as a3, a as a4 from t1; +select a as a1, a as a2 from t1; +show status like "Qcache_hits"; +Variable_name Value +Qcache_hits 4 +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 2 +reset query cache; +show variables like "query_cache_size"; +Variable_name Value +query_cache_size 1039700 +show status like "Qcache_free_memory"; +Variable_name Value +Qcache_free_memory 1039700 +drop table t1; diff --git a/mysql-test/t/query_cache-master.opt b/mysql-test/t/query_cache-master.opt index 7ff962c2216..5f0ebff98f6 100644 --- a/mysql-test/t/query_cache-master.opt +++ b/mysql-test/t/query_cache-master.opt @@ -1 +1 @@ ---set-variable=query_cache_size=2M +--set-variable=query_cache_size=1M diff --git a/mysql-test/t/query_cache.test b/mysql-test/t/query_cache.test index 3d1aa70d8b2..e9e138c9b61 100644 --- a/mysql-test/t/query_cache.test +++ b/mysql-test/t/query_cache.test @@ -1,3 +1,5 @@ +-- source include/have_innodb.inc + # # Tests with query cache # @@ -6,7 +8,12 @@ reset query cache; flush status; -drop table if exists t1; +drop table if exists t1,t2,t3; + +# +# First simple test +# + create table t1 (a int not null); insert into t1 values (1),(2),(3); select * from t1; @@ -24,3 +31,153 @@ show status like "Qcache_hits"; drop table t1; show status like "Qcache_queries_in_cache"; + +# +# MERGE TABLES with INSERT/UPDATE and DELETE +# +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 (4),(5),(6); +create table t3 (a int not null) type=MERGE UNION=(t1,t2) INSERT_METHOD=FIRST; +# insert +select * from t3; +select * from t3; +show status like "Qcache_hits"; +show status like "Qcache_queries_in_cache"; +insert into t2 values (7); +show status like "Qcache_queries_in_cache"; +select * from t1; +select * from t1; +show status like "Qcache_hits"; +show status like "Qcache_queries_in_cache"; +insert into t3 values (8); +show status like "Qcache_queries_in_cache"; +# update +select * from t3; +show status like "Qcache_queries_in_cache"; +update t2 set a=9 where a=7; +show status like "Qcache_queries_in_cache"; +select * from t1; +show status like "Qcache_queries_in_cache"; +update t3 set a=10 where a=1; +show status like "Qcache_queries_in_cache"; +#delete +select * from t3; +show status like "Qcache_queries_in_cache"; +delete from t2 where a=9; +show status like "Qcache_queries_in_cache"; +select * from t1; +show status like "Qcache_queries_in_cache"; +delete from t3 where a=10; +show status like "Qcache_queries_in_cache"; +drop table t1, t2, t3; +# +# Without auto_commit. +# +set autocommit=0; +create table t1 (a int not null) type=innodb; +insert into t1 values (1),(2),(3); +select * from t1; +show status like "Qcache_queries_in_cache"; +drop table t1; +commit; +set autocommit=1; +# +# 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; +# +# SELECT SQL_CACHE ... +# +set sql_query_cache_type=demand; +create table t1 (a int not null); +insert into t1 values (1),(2),(3); +select * from t1; +show status like "Qcache_queries_in_cache"; +select sql_cache * from t1; +set sql_query_cache_type=2; +select sql_cache * from t1; +show status like "Qcache_hits"; +show status like "Qcache_queries_in_cache"; +set sql_query_cache_type=on; +# +# RESET QUERY CACHE +# +reset query cache; +show status like "Qcache_queries_in_cache"; +# +# SELECT SQL_NO_CACHE +# +select sql_no_cache * from t1; +show status like "Qcache_queries_in_cache"; +drop table t1; +# +# Check that queries that uses NOW(), LAST_INSERT_ID()... are not cached. +# +create table t1 (a text not null); +select CONNECTION_ID() from t1; +#GET_LOCK +#RELEASE_LOCK +#LOAD_FILE +select FOUND_ROWS(); +select NOW() from t1; +select CURDATE() from t1; +select CURTIME() from t1; +select DATABASE() from t1; +select ENCRYPT("test") from t1; +select LAST_INSERT_ID() from t1; +select RAND() from t1; +select UNIX_TIMESTAMP() from t1; +select USER() from t1; +select benchmark(1,1) from t1; +show status like "Qcache_queries_in_cache"; +# +# Tests when the cache is filled +# +create table t2 (a text not null); +insert into t1 values("1111111111111111111111111111111111111111111111111111"); +insert into t2 select * from t1; +insert into t1 select * from t2; # 2 +insert into t2 select * from t1; # 3 +insert into t1 select * from t2; # 5 +insert into t2 select * from t1; # 8 +insert into t1 select * from t2; # 13 +insert into t2 select * from t1; # 21 +insert into t1 select * from t2; # 34 +insert into t2 select * from t1; # 55 +insert into t1 select * from t2; # 89 +insert into t2 select * from t1; # 144 +insert into t1 select * from t2; # 233 +insert into t2 select * from t1; # 357 +insert into t1 select * from t2; # 610 +insert into t2 select * from t1; # 987 +insert into t1 select * from t2; # 1597 +insert into t2 select * from t1; # 2584 +insert into t1 select * from t2; # 4181 +drop table t2; + +show status like "Qcache_hits"; +disable_result_log; +select a as a1, a as a2 from t1; +select a as a2, a as a3 from t1; +select a as a3, a as a4 from t1; +# next query must be out of 1Mb cache +select a as a1, a as a2 from t1; +enable_result_log; +show status like "Qcache_hits"; +show status like "Qcache_queries_in_cache"; +reset query cache; +show variables like "query_cache_size"; +show status like "Qcache_free_memory"; +drop table t1; |