source include/not_valgrind.inc; source include/have_memcached_plugin.inc; source include/not_windows.inc; --disable_query_log CALL mtr.add_suppression("daemon-memcached-w-batch-size': unsigned"); CALL mtr.add_suppression("Could not obtain server's UPN to be used as target service name"); CALL mtr.add_suppression("Warning: MySQL is trying to drop"); CALL mtr.add_suppression("Error: MySQL is freeing a thd"); --enable_query_log --enable_connect_log SET @transaction_isolation= @@global.transaction_isolation; SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; # Create the memcached tables --disable_query_log source include/memcache_config.inc; --enable_query_log INSERT INTO cache_policies VALUES("cache_policy", "innodb_only", "innodb_only", "innodb_only", "innodb_only"); INSERT INTO config_options VALUES("separator", "|"); INSERT INTO containers VALUES ("desc_t1", "test", "t1", "c1", "c2,c21", "c3", "c4", "c5", "it1"); USE test; --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings --disable_warnings DROP TABLE IF EXISTS t2; --enable_warnings CREATE TABLE t1 (c1 VARCHAR(32), c2 VARCHAR(1024), c21 VARCHAR(1024), c3 INT, c4 BIGINT UNSIGNED, c5 INT) ENGINE = INNODB; CREATE UNIQUE INDEX it1 ON t1 (c1); CREATE TABLE t2 (c1 VARCHAR(32), c11 VARCHAR(32), c2 VARCHAR(255), c21 VARCHAR(255), c3 INT, c4 BIGINT UNSIGNED, c5 INT, primary key(c1), CONSTRAINT ft2 FOREIGN KEY (c11) REFERENCES t1(c1)) ENGINE = INNODB; INSERT INTO t1 VALUES ('Dd', 'Hessen', 'M', 0, 0, 0); INSERT INTO t1 VALUES ('Bb', 'Brandenburg', 'M', 0, 0, 0); INSERT INTO t1 VALUES ('Cc', 'Lausitz', 'S', 0, 0 ,0); INSERT INTO t1 VALUES ('Hh', 'Schleswig-Holstein', 'S', 0, 0, 0); INSERT INTO t2 VALUES ('D','Dd', 'Darmstadt', 'City', 0, 0, 0); INSERT INTO t2 VALUES ('B','Bb', 'Berlin', 'Mitte', 0, 0, 0); INSERT INTO t2 VALUES ('C','Cc', 'Cottbus', 'West', 0, 0 ,0); INSERT INTO t2 VALUES ('H','Hh', 'Hamburg', 'Norderstedt', 0, 0, 0); # Tables must exist before plugin can be started! --let $memcached_address=127.0.0.1:11248 --source ../include/load_daemon_memcached_expecting_success.inc --sorted_result SELECT c1,c2,c21 FROM t1; perl; use DBI; use Cache::Memcached; my $memd = new Cache::Memcached { 'servers' => [ "127.0.0.1:11248" ], 'connect_timeout' => 20, 'select_timeout' => 20 }; print "Here are the memcached results with D,B,H,C:\n"; $val = $memd->get("Dd"); if ($val) { print "$val\n"; } $val = $memd->get("Bb"); if ($val) { print "$val\n"; } $val = $memd->get("Hh"); if ($val) { print "$val\n"; } $val = $memd->get("Cc"); if ($val) { print "$val\n"; } $memd->disconnect_all; EOF --sorted_result SELECT t1.c1,t1.c2,t1.c21,t2.c2,t2.c21 FROM t1,t2 WHERE t2.c11=t1.c1; perl; use DBI; use Cache::Memcached; my $memd = new Cache::Memcached { 'servers' => [ "127.0.0.1:11248" ], 'connect_timeout' => 20, 'select_timeout' => 20 }; print "Here are the memcached results after set:\n"; $val = $memd->set("Ee","Hessen|O"); $val = $memd->get("Ee"); if ($val) { print "$val\n"; } $memd->disconnect_all; EOF --sorted_result SELECT t1.c1,t1.c2,t1.c21,t2.c2,t2.c21 FROM t1,t2 WHERE t2.c11=t1.c1; perl; use DBI; perl; use DBI; use Cache::Memcached; my $memd = new Cache::Memcached { 'servers' => [ "127.0.0.1:11248" ], 'connect_timeout' => 20, 'select_timeout' => 20 }; print "Here are the memcached results after add:\n"; $val = $memd->add("Ff","Mecklenburg|V"); $val = $memd->get("Ff"); if ($val) { print "$val\n"; } $memd->disconnect_all; EOF --sorted_result SELECT t1.c1,t1.c2,t1.c21,t2.c2,t2.c21 FROM t1,t2 WHERE t2.c11=t1.c1; perl; use DBI; use Cache::Memcached; my $memd = new Cache::Memcached { 'servers' => [ "127.0.0.1:11248" ], 'connect_timeout' => 20, 'select_timeout' => 20 }; print "Here are the memcached results after replace:\n"; $val = $memd->replace("Ff","Mecklenburg-Vorpommern|V"); $val = $memd->get("Ff"); if ($val) { print "$val\n"; } $memd->disconnect_all; EOF --sorted_result SELECT t1.c1,t1.c2,t1.c21,t2.c2,t2.c21 FROM t1,t2 WHERE t2.c11=t1.c1; perl; use DBI; use Cache::Memcached; my $memd = new Cache::Memcached { 'servers' => [ "127.0.0.1:11248" ], 'connect_timeout' => 20, 'select_timeout' => 20 }; print "Here are the memcached results after delete:\n"; $val = $memd->delete("Ff"); $val = $memd->get("Ff"); if ($val) { print "$val\n"; } $memd->disconnect_all; EOF --sorted_result SELECT t1.c1,t1.c2,t1.c21,t2.c2,t2.c21 FROM t1,t2 WHERE t2.c11=t1.c1; --error ER_NO_REFERENCED_ROW_2 INSERT INTO t2 VALUES ('E','Ff', 'Essen','Ost', 0, 0, 0); perl; use DBI; use Cache::Memcached; my $memd = new Cache::Memcached { 'servers' => [ "127.0.0.1:11248" ], 'connect_timeout' => 20, 'select_timeout' => 20 }; print "Here are the memcached results after add Frankfurt|Airport:\n"; $val = $memd->add("Ff","Mecklenburg-Vorpommern|A"); $val = $memd->get("Ff"); if ($val) { print "$val\n"; } $memd->disconnect_all; EOF INSERT INTO t2 VALUES ('E','Ff', 'Essen','Ost', 0, 0, 0); --sorted_result SELECT t1.c1,t1.c2,t1.c21,t2.c2,t2.c21 FROM t1,t2 WHERE t2.c11=t1.c1; DROP TABLE test.t2; DROP TABLE test.t1; UNINSTALL PLUGIN daemon_memcached; DROP DATABASE innodb_memcache; SET @@global.transaction_isolation= @transaction_isolation;