summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysql-test/r/ndb_cache_multi2.result24
-rw-r--r--mysql-test/t/ndb_cache_multi2.test14
-rw-r--r--sql/ha_ndbcluster.cc2
3 files changed, 19 insertions, 21 deletions
diff --git a/mysql-test/r/ndb_cache_multi2.result b/mysql-test/r/ndb_cache_multi2.result
index 63cc4d4ceed..53767bb6d3c 100644
--- a/mysql-test/r/ndb_cache_multi2.result
+++ b/mysql-test/r/ndb_cache_multi2.result
@@ -1,14 +1,17 @@
drop table if exists t1, t2;
+== Connected to server1 ==
set GLOBAL query_cache_type=on;
set GLOBAL query_cache_size=1355776;
set GLOBAL ndb_cache_check_time=1;
reset query cache;
flush status;
+== Connected to server2 ==
set GLOBAL query_cache_type=on;
set GLOBAL query_cache_size=1355776;
set GLOBAL ndb_cache_check_time=1;
reset query cache;
flush status;
+== Connected to server1 ==
create table t1 (a int) engine=ndbcluster;
create table t2 (a int) engine=ndbcluster;
insert into t1 value (2);
@@ -16,18 +19,22 @@ insert into t2 value (3);
select * from t1;
a
2
+select a != 3 from t1;
+a != 3
+1
select * from t2;
a
3
show status like "Qcache_queries_in_cache";
Variable_name Value
-Qcache_queries_in_cache 2
+Qcache_queries_in_cache 3
show status like "Qcache_inserts";
Variable_name Value
-Qcache_inserts 2
+Qcache_inserts 3
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 0
+== Connected to server2 ==
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 0
@@ -50,24 +57,13 @@ show status like "Qcache_hits";
Variable_name Value
Qcache_hits 0
update t1 set a=3 where a=2;
-show status like "Qcache_queries_in_cache";
-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
+== Connected to server1 ==
select * from t1;
a
3
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 3
-show status like "Qcache_inserts";
-Variable_name Value
-Qcache_inserts 4
drop table t1, t2;
set GLOBAL query_cache_size=0;
set GLOBAL ndb_cache_check_time=0;
diff --git a/mysql-test/t/ndb_cache_multi2.test b/mysql-test/t/ndb_cache_multi2.test
index 5a78380097e..4abb537624a 100644
--- a/mysql-test/t/ndb_cache_multi2.test
+++ b/mysql-test/t/ndb_cache_multi2.test
@@ -10,6 +10,7 @@ drop table if exists t1, t2;
# Turn on and reset query cache on server1
connection server1;
+echo == Connected to server1 ==;
set GLOBAL query_cache_type=on;
set GLOBAL query_cache_size=1355776;
set GLOBAL ndb_cache_check_time=1;
@@ -18,6 +19,7 @@ flush status;
# Turn on and reset query cache on server2
connection server2;
+echo == Connected to server2 ==;
set GLOBAL query_cache_type=on;
set GLOBAL query_cache_size=1355776;
set GLOBAL ndb_cache_check_time=1;
@@ -27,11 +29,14 @@ flush status;
# Create test tables in NDB and load them into cache
# on server1
connection server1;
+echo == Connected to server1 ==;
create table t1 (a int) engine=ndbcluster;
create table t2 (a int) engine=ndbcluster;
insert into t1 value (2);
insert into t2 value (3);
select * from t1;
+# Run the check query once to load it into qc on server1
+select a != 3 from t1;
select * from t2;
show status like "Qcache_queries_in_cache";
show status like "Qcache_inserts";
@@ -40,6 +45,7 @@ show status like "Qcache_hits";
# Connect server2, load table in to cache, then update the table
connection server2;
+echo == Connected to server2 ==;
show status like "Qcache_queries_in_cache";
show status like "Qcache_inserts";
show status like "Qcache_hits";
@@ -49,12 +55,10 @@ show status like "Qcache_inserts";
show status like "Qcache_hits";
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
connection server1;
-show status like "Qcache_queries_in_cache";
-show status like "Qcache_inserts";
-show status like "Qcache_hits";
+echo == Connected to server1 ==;
# 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
@@ -75,8 +79,6 @@ select * from t1;
# There should now be three queries in the cache
show status like "Qcache_queries_in_cache";
-# And inserts should be four
-show status like "Qcache_inserts";
drop table t1, t2;
diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc
index 61a6ce75712..bc790ae0138 100644
--- a/sql/ha_ndbcluster.cc
+++ b/sql/ha_ndbcluster.cc
@@ -6014,7 +6014,7 @@ pthread_handler_t ndb_util_thread_func(void *arg __attribute__((unused)))
ndb_util_thread= pthread_self();
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();
delete thd;