Bug#16795 ndb_cache_multi2

 - Change && to ||
 - Check for return value != 0 in "ndb->init()"
parent b11c033f
drop table if exists t1, t2; drop table if exists t1, t2;
== Connected to server1 ==
set GLOBAL query_cache_type=on; set GLOBAL query_cache_type=on;
set GLOBAL query_cache_size=1355776; set GLOBAL query_cache_size=1355776;
set GLOBAL ndb_cache_check_time=1; set GLOBAL ndb_cache_check_time=1;
reset query cache; reset query cache;
flush status; flush status;
== Connected to server2 ==
set GLOBAL query_cache_type=on; set GLOBAL query_cache_type=on;
set GLOBAL query_cache_size=1355776; set GLOBAL query_cache_size=1355776;
set GLOBAL ndb_cache_check_time=1; set GLOBAL ndb_cache_check_time=1;
reset query cache; reset query cache;
flush status; flush status;
== Connected to server1 ==
create table t1 (a int) engine=ndbcluster; create table t1 (a int) engine=ndbcluster;
create table t2 (a int) engine=ndbcluster; create table t2 (a int) engine=ndbcluster;
insert into t1 value (2); insert into t1 value (2);
...@@ -16,18 +19,22 @@ insert into t2 value (3); ...@@ -16,18 +19,22 @@ insert into t2 value (3);
select * from t1; select * from t1;
a a
2 2
select a != 3 from t1;
a != 3
1
select * from t2; select * from t2;
a a
3 3
show status like "Qcache_queries_in_cache"; show status like "Qcache_queries_in_cache";
Variable_name Value Variable_name Value
Qcache_queries_in_cache 2 Qcache_queries_in_cache 3
show status like "Qcache_inserts"; show status like "Qcache_inserts";
Variable_name Value Variable_name Value
Qcache_inserts 2 Qcache_inserts 3
show status like "Qcache_hits"; show status like "Qcache_hits";
Variable_name Value Variable_name Value
Qcache_hits 0 Qcache_hits 0
== Connected to server2 ==
show status like "Qcache_queries_in_cache"; show status like "Qcache_queries_in_cache";
Variable_name Value Variable_name Value
Qcache_queries_in_cache 0 Qcache_queries_in_cache 0
...@@ -50,24 +57,13 @@ show status like "Qcache_hits"; ...@@ -50,24 +57,13 @@ show status like "Qcache_hits";
Variable_name Value Variable_name Value
Qcache_hits 0 Qcache_hits 0
update t1 set a=3 where a=2; update t1 set a=3 where a=2;
show status like "Qcache_queries_in_cache"; == Connected to server1 ==
Variable_name Value
Qcache_queries_in_cache 2
show status like "Qcache_inserts";
Variable_name Value
Qcache_inserts 2
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 0
select * from t1; select * from t1;
a a
3 3
show status like "Qcache_queries_in_cache"; show status like "Qcache_queries_in_cache";
Variable_name Value Variable_name Value
Qcache_queries_in_cache 3 Qcache_queries_in_cache 3
show status like "Qcache_inserts";
Variable_name Value
Qcache_inserts 4
drop table t1, t2; drop table t1, t2;
set GLOBAL query_cache_size=0; set GLOBAL query_cache_size=0;
set GLOBAL ndb_cache_check_time=0; set GLOBAL ndb_cache_check_time=0;
......
...@@ -10,6 +10,7 @@ drop table if exists t1, t2; ...@@ -10,6 +10,7 @@ drop table if exists t1, t2;
# Turn on and reset query cache on server1 # Turn on and reset query cache on server1
connection server1; connection server1;
echo == Connected to server1 ==;
set GLOBAL query_cache_type=on; set GLOBAL query_cache_type=on;
set GLOBAL query_cache_size=1355776; set GLOBAL query_cache_size=1355776;
set GLOBAL ndb_cache_check_time=1; set GLOBAL ndb_cache_check_time=1;
...@@ -18,6 +19,7 @@ flush status; ...@@ -18,6 +19,7 @@ flush status;
# Turn on and reset query cache on server2 # Turn on and reset query cache on server2
connection server2; connection server2;
echo == Connected to server2 ==;
set GLOBAL query_cache_type=on; set GLOBAL query_cache_type=on;
set GLOBAL query_cache_size=1355776; set GLOBAL query_cache_size=1355776;
set GLOBAL ndb_cache_check_time=1; set GLOBAL ndb_cache_check_time=1;
...@@ -27,11 +29,14 @@ flush status; ...@@ -27,11 +29,14 @@ flush status;
# Create test tables in NDB and load them into cache # Create test tables in NDB and load them into cache
# on server1 # on server1
connection server1; connection server1;
echo == Connected to server1 ==;
create table t1 (a int) engine=ndbcluster; create table t1 (a int) engine=ndbcluster;
create table t2 (a int) engine=ndbcluster; create table t2 (a int) engine=ndbcluster;
insert into t1 value (2); insert into t1 value (2);
insert into t2 value (3); insert into t2 value (3);
select * from t1; select * from t1;
# Run the check query once to load it into qc on server1
select a != 3 from t1;
select * from t2; select * from t2;
show status like "Qcache_queries_in_cache"; show status like "Qcache_queries_in_cache";
show status like "Qcache_inserts"; show status like "Qcache_inserts";
...@@ -40,6 +45,7 @@ show status like "Qcache_hits"; ...@@ -40,6 +45,7 @@ show status like "Qcache_hits";
# Connect server2, load table in to cache, then update the table # Connect server2, load table in to cache, then update the table
connection server2; connection server2;
echo == Connected to server2 ==;
show status like "Qcache_queries_in_cache"; show status like "Qcache_queries_in_cache";
show status like "Qcache_inserts"; show status like "Qcache_inserts";
show status like "Qcache_hits"; show status like "Qcache_hits";
...@@ -49,12 +55,10 @@ show status like "Qcache_inserts"; ...@@ -49,12 +55,10 @@ show status like "Qcache_inserts";
show status like "Qcache_hits"; show status like "Qcache_hits";
update t1 set a=3 where a=2; update t1 set a=3 where a=2;
# Connect to server1 and check that cache is invalidated # Connect to server1 and check that cache is invalidated
# and correct data is returned # and correct data is returned
connection server1; connection server1;
show status like "Qcache_queries_in_cache"; echo == Connected to server1 ==;
show status like "Qcache_inserts";
show status like "Qcache_hits";
# Loop and wait for max 10 seconds until query cache thread # Loop and wait for max 10 seconds until query cache thread
# has invalidated the cache and the column a in t1 is equal to 3 # has invalidated the cache and the column a in t1 is equal to 3
...@@ -75,8 +79,6 @@ select * from t1; ...@@ -75,8 +79,6 @@ select * from t1;
# There should now be three queries in the cache # There should now be three queries in the cache
show status like "Qcache_queries_in_cache"; show status like "Qcache_queries_in_cache";
# And inserts should be four
show status like "Qcache_inserts";
drop table t1, t2; drop table t1, t2;
......
...@@ -6014,7 +6014,7 @@ pthread_handler_t ndb_util_thread_func(void *arg __attribute__((unused))) ...@@ -6014,7 +6014,7 @@ pthread_handler_t ndb_util_thread_func(void *arg __attribute__((unused)))
ndb_util_thread= pthread_self(); ndb_util_thread= pthread_self();
thd->thread_stack= (char*)&thd; /* remember where our stack is */ thd->thread_stack= (char*)&thd; /* remember where our stack is */
if (thd->store_globals() && (ndb->init() != -1)) if (thd->store_globals() || (ndb->init() != 0))
{ {
thd->cleanup(); thd->cleanup();
delete thd; delete thd;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment