1source include/have_memcached_plugin.inc; 2source include/not_valgrind.inc; 3source include/have_log_bin.inc; 4 5# Test of master and both with slave with memcached access and binlog-format=raw. 6# 7source include/not_windows.inc; 8--disable_warnings 9source include/master-slave.inc; 10--enable_warnings 11 12--disable_query_log 13CALL mtr.add_suppression("daemon-memcached-w-batch-size': unsigned"); 14CALL mtr.add_suppression("Could not obtain server's UPN to be used as target service name"); 15CALL mtr.add_suppression("Warning: MySQL is trying to drop"); 16--enable_query_log 17 18--enable_connect_log 19SET @transaction_isolation= @@global.transaction_isolation; 20SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; 21 22# Create the memcached tables 23--disable_query_log 24source include/memcache_config.inc; 25--enable_query_log 26 27INSERT INTO cache_policies VALUES("cache_policy", "innodb_only", 28 "innodb_only", "innodb_only", "innodb_only"); 29 30INSERT INTO config_options VALUES("separator", "|"); 31 32# describe table for memcache 33INSERT INTO containers VALUES ("desc_t1", "test", "t1", 34 "c1", "c2,c21", "c3", "c4", "c5", "PRIMARY"); 35 36USE test; 37 38--disable_warnings 39DROP TABLE IF EXISTS t1; 40--enable_warnings 41CREATE TABLE t1 (c1 VARCHAR(32), 42 c2 VARCHAR(1024), 43 c21 VARCHAR(1024), 44 c3 INT, c4 BIGINT UNSIGNED, c5 INT, primary key(c1)) 45ENGINE = INNODB; 46 47INSERT INTO t1 VALUES ('D', 'Darmstadt', 'City', 0, 0, 0); 48INSERT INTO t1 VALUES ('B', 'Berlin', 'Mitte', 0, 0, 0); 49INSERT INTO t1 VALUES ('C', 'Cottbus', 'West', 0, 0 ,0); 50INSERT INTO t1 VALUES ('H', 'Hamburg', 'Norderstedt', 0, 0, 0); 51 52# Tables must exist before plugin can be started! 53--let $memcached_address=127.0.0.1:11270 54--source ../include/load_daemon_memcached_expecting_success.inc 55 56--sorted_result 57SELECT c1,c2,c21 FROM t1; 58 59perl; 60use DBI; 61use Cache::Memcached; 62my $memd = new Cache::Memcached { 63 'servers' => [ "127.0.0.1:11270" ] 64}; 65print "Here are the memcached results with D,B,H,C:\n"; 66$val = $memd->get("D"); 67if ($val) { print "$val\n"; } 68$val = $memd->get("B"); 69if ($val) { print "$val\n"; } 70$val = $memd->get("H"); 71if ($val) { print "$val\n"; } 72$val = $memd->get("C"); 73if ($val) { print "$val\n"; } 74$memd->disconnect_all; 75EOF 76 77--sorted_result 78SELECT c1,c2,c21 FROM t1; 79 80--echo sync_slave_with_master; 81sync_slave_with_master; 82 83connection slave; 84--sorted_result 85SELECT c1,c2,c21 FROM t1; 86 87connection master; 88perl; 89use DBI; 90use Cache::Memcached; 91my $memd = new Cache::Memcached { 92 'servers' => [ "127.0.0.1:11270" ] 93}; 94print "Here are the memcached results after set:\n"; 95$val = $memd->set("E","Essen|Ost"); 96$val = $memd->get("E"); 97if ($val) { print "$val\n"; } 98$memd->disconnect_all; 99EOF 100 101--sorted_result 102SELECT c1,c2,c21 FROM t1; 103 104--echo sync_slave_with_master; 105sync_slave_with_master; 106 107connection slave; 108--sorted_result 109SELECT c1,c2,c21 FROM t1; 110 111connection master; 112perl; 113use DBI; 114use Cache::Memcached; 115my $memd = new Cache::Memcached { 116 'servers' => [ "127.0.0.1:11270" ] 117}; 118print "Here are the memcached results after add:\n"; 119$val = $memd->add("F","Frankfurt|Sachsenhause"); 120$val = $memd->get("F"); 121if ($val) { print "$val\n"; } 122$memd->disconnect_all; 123EOF 124 125--sorted_result 126SELECT c1,c2,c21 FROM t1; 127 128--echo sync_slave_with_master; 129sync_slave_with_master; 130 131connection slave; 132--sorted_result 133SELECT c1,c2,c21 FROM t1; 134 135connection master; 136perl; 137use DBI; 138use Cache::Memcached; 139my $memd = new Cache::Memcached { 140 'servers' => [ "127.0.0.1:11270" ] 141}; 142print "Here are the memcached results after replace:\n"; 143$val = $memd->replace("F","Frankfurt a. M.|Sachsenhausen"); 144$val = $memd->get("F"); 145if ($val) { print "$val\n"; } 146$memd->disconnect_all; 147EOF 148 149--sorted_result 150SELECT c1,c2,c21 FROM t1; 151 152--echo sync_slave_with_master; 153sync_slave_with_master; 154 155connection slave; 156--sorted_result 157SELECT c1,c2,c21 FROM t1; 158 159connection master; 160perl; 161use DBI; 162use Cache::Memcached; 163my $memd = new Cache::Memcached { 164 'servers' => [ "127.0.0.1:11270" ] 165}; 166print "Here are the memcached results after delete:\n"; 167$val = $memd->delete("F"); 168$val = $memd->get("F"); 169if ($val) { print "$val\n"; } 170$memd->disconnect_all; 171EOF 172 173--sorted_result 174SELECT c1,c2,c21 FROM t1; 175 176--echo sync_slave_with_master; 177sync_slave_with_master; 178 179connection slave; 180--sorted_result 181SELECT c1,c2,c21 FROM t1; 182 183connection master; 184perl; 185use DBI; 186use Cache::Memcached; 187my $memd = new Cache::Memcached { 188 'servers' => [ "127.0.0.1:11270" ] 189}; 190print "Here are the memcached results after add Frankfurt|:\n"; 191$val = $memd->add("F","Frankfurt|"); 192$val = $memd->get("F"); 193if ($val) { print "$val\n"; } 194print "Here are the memcached results after add |Airport:\n"; 195$val = $memd->add("F","|"); 196$val = $memd->get("F"); 197if ($val) { print "$val\n"; } 198$memd->disconnect_all; 199EOF 200 201--sorted_result 202SELECT c1,c2,c21 FROM t1; 203 204--echo sync_slave_with_master; 205sync_slave_with_master; 206 207connection slave; 208--sorted_result 209SELECT c1,c2,c21 FROM t1; 210 211connection master; 212perl; 213use DBI; 214use Cache::Memcached; 215my $memd = new Cache::Memcached { 216 'servers' => [ "127.0.0.1:11270" ] 217}; 218print "Here are the memcached results after replace Frankfurt a.M.:\n"; 219$val = $memd->replace("F","Frankfurt a. M.|"); 220$val = $memd->get("F"); 221if ($val) { print "$val\n"; } 222print "Here are the memcached results after replace Sachsenhausen:\n"; 223$val = $memd->replace("F","|Sachsenhausen"); 224$val = $memd->get("F"); 225if ($val) { print "$val\n"; } 226$memd->disconnect_all; 227EOF 228 229--sorted_result 230SELECT c1,c2,c21 FROM t1; 231 232--echo sync_slave_with_master; 233sync_slave_with_master; 234 235connection slave; 236--sorted_result 237SELECT c1,c2,c21 FROM t1; 238 239connection master; 240DROP TABLE t1; 241 242UNINSTALL PLUGIN daemon_memcached; 243DROP DATABASE innodb_memcache; 244 245SET @@global.transaction_isolation= @transaction_isolation; 246sync_slave_with_master; 247source include/rpl_end.inc; 248 249