diff options
author | unknown <magnus@neptunus.(none)> | 2004-12-09 12:55:17 +0100 |
---|---|---|
committer | unknown <magnus@neptunus.(none)> | 2004-12-09 12:55:17 +0100 |
commit | ead004f91f38d5c90cb73e63969bc1a222c22325 (patch) | |
tree | 15c1634d0803b72055aacd0ef763dedebd7f9da3 /mysql-test/t/ndb_cache.test | |
parent | b5b72271353f3fc4b3ef593f11c54ed5fa7c18ef (diff) | |
download | mariadb-git-ead004f91f38d5c90cb73e63969bc1a222c22325.tar.gz |
Test for query cache in combination with NDB
mysql-test/r/ndb_cache.result:
Updated tests and results for ndb_cache
mysql-test/t/ndb_cache.test:
Updated tests and results for ndb_cache
Diffstat (limited to 'mysql-test/t/ndb_cache.test')
-rw-r--r-- | mysql-test/t/ndb_cache.test | 96 |
1 files changed, 84 insertions, 12 deletions
diff --git a/mysql-test/t/ndb_cache.test b/mysql-test/t/ndb_cache.test index bd368105a84..8bdcbe17728 100644 --- a/mysql-test/t/ndb_cache.test +++ b/mysql-test/t/ndb_cache.test @@ -1,33 +1,77 @@ -- source include/have_query_cache.inc -- source include/have_ndb.inc -set GLOBAL ndb_query_cache_type=on; -# following line have to be removed when ndb_query_cache_type will made -# global only -set ndb_query_cache_type=on; -set GLOBAL query_cache_size=1355776; -reset query cache; -flush status; --disable_warnings drop table if exists t1; --enable_warnings -CREATE TABLE t1 (a int) ENGINE=ndbcluster; -insert into t1 value (2); +# Turn on and reset query cache +set GLOBAL query_cache_type=on; +set GLOBAL query_cache_size=1355776; +reset query cache; +flush status; + +# Create test table in NDB +CREATE TABLE t1 ( pk int not null primary key, + a int, b int not null, c varchar(20)) ENGINE=ndbcluster; +insert into t1 value (1, 2, 3, 'First row'); + +# Perform one query which should be inerted in query cache select * from t1; show status like "Qcache_queries_in_cache"; show status like "Qcache_inserts"; show status like "Qcache_hits"; + +# Perform the same query and make sure the query cache is hit +select * from t1; +show status like "Qcache_hits"; + +# Update the table and make sure the correct data is returned +update t1 set a=3 where pk=1; +select * from t1; +show status like "Qcache_inserts"; +show status like "Qcache_hits"; + +# Insert a new record and make sure the correct data is returned +insert into t1 value (2, 7, 8, 'Second row'); +insert into t1 value (4, 5, 6, 'Fourth row'); +select * from t1; +show status like "Qcache_inserts"; +show status like "Qcache_hits"; +select * from t1; +show status like "Qcache_hits"; + +# Perform a "new" query and make sure the query cache is not hit +select * from t1 where b=3; +show status like "Qcache_queries_in_cache"; +show status like "Qcache_hits"; + +# Same query again... +select * from t1 where b=3; +show status like "Qcache_hits"; + +# Delete from the table +delete from t1 where c='Fourth row'; +show status like "Qcache_queries_in_cache"; +select * from t1 where b=3; +show status like "Qcache_hits"; + +# Start another connection and check that the query cache is hit connect (con1,localhost,root,,); connection con1; use test; -set autocommit=0; -update t1 set a=3; +select * from t1; +select * from t1 where b=3; +show status like "Qcache_hits"; + +# Update the table and switch to other connection +update t1 set a=4 where b=3; connect (con2,localhost,root,,); connection con2; +use test; +show status like "Qcache_queries_in_cache"; select * from t1; select * from t1; -show status like "Qcache_queries_in_cache"; show status like "Qcache_inserts"; show status like "Qcache_hits"; connection con1; @@ -36,14 +80,42 @@ select * from t1; show status like "Qcache_queries_in_cache"; show status like "Qcache_inserts"; show status like "Qcache_hits"; + +# Use transactions and make sure the query cache is not updated until +# transaction is commited +begin; +update t1 set a=5 where pk=1; +# Note!! the below test shows that table is invalidated +# before transaction is committed +# TODO Fix so that cache is not invalidated HERE! +show status like "Qcache_queries_in_cache"; +show status like "Qcache_inserts"; +show status like "Qcache_hits"; +connection con2; +select * from t1; +show status like "Qcache_queries_in_cache"; +show status like "Qcache_inserts"; +show status like "Qcache_hits"; +connection con1; commit; +# TODO Here query is invalidated once again, commit count in NDB has changed +show status like "Qcache_queries_in_cache"; +show status like "Qcache_inserts"; +show status like "Qcache_hits"; connection con2; select * from t1; +show status like "Qcache_inserts"; +show status like "Qcache_hits"; +connection con1; select * from t1; show status like "Qcache_queries_in_cache"; show status like "Qcache_inserts"; show status like "Qcache_hits"; + drop table t1; +show status like "Qcache_queries_in_cache"; SET GLOBAL query_cache_size=0; + + |