summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2004-11-25 19:49:50 +0200
committerunknown <bell@sanja.is.com.ua>2004-11-25 19:49:50 +0200
commit93191c739e8302c312d283169c736867cf8327b3 (patch)
treef6eff6e65503b4149f17a6775827aa490d4780fd
parent92882749589a2d3353119fb5fed7299b62d2f8e9 (diff)
downloadmariadb-git-93191c739e8302c312d283169c736867cf8327b3.tar.gz
new NDB test with QC
sql/sql_cache.cc: if we removed old values in cache, then we can cache new one
-rw-r--r--mysql-test/r/ndb_cache.result43
-rw-r--r--mysql-test/t/ndb_cache.test32
-rw-r--r--sql/sql_cache.cc3
3 files changed, 27 insertions, 51 deletions
diff --git a/mysql-test/r/ndb_cache.result b/mysql-test/r/ndb_cache.result
index 714e1831267..e69de29bb2d 100644
--- a/mysql-test/r/ndb_cache.result
+++ b/mysql-test/r/ndb_cache.result
@@ -1,43 +0,0 @@
-set GLOBAL query_cache_size=1355776;
-reset query cache;
-flush status;
-drop table if exists t1,t2;
-CREATE TABLE t1 (a int) ENGINE=ndbcluster;
-CREATE TABLE t2 (a int);
-select * from t1;
-a
-show status like "Qcache_queries_in_cache";
-Variable_name Value
-Qcache_queries_in_cache 0
-show status like "Qcache_inserts";
-Variable_name Value
-Qcache_inserts 0
-show status like "Qcache_hits";
-Variable_name Value
-Qcache_hits 0
-select * from t2;
-a
-show status like "Qcache_queries_in_cache";
-Variable_name Value
-Qcache_queries_in_cache 1
-show status like "Qcache_inserts";
-Variable_name Value
-Qcache_inserts 1
-show status like "Qcache_hits";
-Variable_name Value
-Qcache_hits 0
-select * from t1;
-a
-select * from t2;
-a
-show status like "Qcache_queries_in_cache";
-Variable_name Value
-Qcache_queries_in_cache 1
-show status like "Qcache_inserts";
-Variable_name Value
-Qcache_inserts 1
-show status like "Qcache_hits";
-Variable_name Value
-Qcache_hits 1
-drop table t1, t2;
-SET GLOBAL query_cache_size=0;
diff --git a/mysql-test/t/ndb_cache.test b/mysql-test/t/ndb_cache.test
index abd09424f64..bd368105a84 100644
--- a/mysql-test/t/ndb_cache.test
+++ b/mysql-test/t/ndb_cache.test
@@ -1,31 +1,49 @@
-- 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,t2;
+drop table if exists t1;
--enable_warnings
CREATE TABLE t1 (a int) ENGINE=ndbcluster;
-CREATE TABLE t2 (a int);
-
+insert into t1 value (2);
+select * from t1;
+show status like "Qcache_queries_in_cache";
+show status like "Qcache_inserts";
+show status like "Qcache_hits";
+connect (con1,localhost,root,,);
+connection con1;
+use test;
+set autocommit=0;
+update t1 set a=3;
+connect (con2,localhost,root,,);
+connection con2;
+select * from t1;
select * from t1;
show status like "Qcache_queries_in_cache";
show status like "Qcache_inserts";
show status like "Qcache_hits";
-select * from t2;
+connection con1;
+select * from t1;
+select * from t1;
show status like "Qcache_queries_in_cache";
show status like "Qcache_inserts";
show status like "Qcache_hits";
+commit;
+connection con2;
+select * from t1;
select * from t1;
-select * from t2;
show status like "Qcache_queries_in_cache";
show status like "Qcache_inserts";
show status like "Qcache_hits";
+drop table t1;
-drop table t1, t2;
SET GLOBAL query_cache_size=0;
diff --git a/sql/sql_cache.cc b/sql/sql_cache.cc
index 105dcae0319..28e814a2d62 100644
--- a/sql/sql_cache.cc
+++ b/sql/sql_cache.cc
@@ -1093,7 +1093,6 @@ Query_cache::send_result_to_client(THD *thd, char *sql, uint query_length)
DBUG_PRINT("qcache", ("Handler does not allow caching for %s.%s",
table_list.db, table_list.alias));
BLOCK_UNLOCK_RD(query_block);
- thd->lex->safe_to_cache_query= 0; // Don't try to cache this
if (engine_data != table->engine_data())
{
DBUG_PRINT("qcache",
@@ -1102,6 +1101,8 @@ Query_cache::send_result_to_client(THD *thd, char *sql, uint query_length)
engine_data, table->engine_data()));
invalidate_table(table->db(), table->key_length());
}
+ else
+ thd->lex->safe_to_cache_query= 0; // Don't try to cache this
goto err_unlock; // Parse query
}
else