source include/not_valgrind.inc; source include/have_memcached_plugin.inc; source include/not_windows.inc; #call mtr.add_suppression("InnoDB MEMCACHED: cannot map memcached to table contains virtual columns."); --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"); --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", "|"); # describe table for memcache INSERT INTO containers VALUES ("desc_t1", "test", "t1", "c1", "c2", "0" ,"0", "0", "PRIMARY"); USE test; --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings CREATE TABLE t1( c1 VARCHAR(30) PRIMARY KEY, c2 INT, c3 INT GENERATED ALWAYS AS (c2 + c2) VIRTUAL ) ENGINE=INNODB; INSERT INTO t1(c1, c2) VALUES("Wayne", 1); INSERT INTO t1(c1, c2) VALUES("Stark", 2); # Tables must exist before plugin can be started! # Unfortunately virtual columns are not yet supported. --let $memcached_address=127.0.0.1:11295 --source ../include/load_daemon_memcached_expecting_error.inc show variables like 'daemon_memcached_option'; --sorted_result SELECT c1,c2 FROM t1; perl; use DBI; use Cache::Memcached; my $memd = new Cache::Memcached { 'servers' => [ "127.0.0.1:11295" ], 'connect_timeout' => 20, 'select_timeout' => 20 }; $val = $memd->get("Stark"); if ($val) { print "VALUE is $val\n"; } else { print "NO_RESULT\n";} $memd->disconnect_all; EOF --sorted_result SELECT c1,c2 FROM t1; perl; use DBI; use Cache::Memcached; my $memd = new Cache::Memcached { 'servers' => [ "127.0.0.1:11295" ], 'connect_timeout' => 20, 'select_timeout' => 20 }; print "Set Mycroft|3:\n"; if (!$memd->set("Mycroft","3")) { print "Error: Mycroft|3 cannot be inserted.\n"; } $memd->disconnect_all; EOF --sorted_result SELECT c1,c2 FROM t1; drop table t1; # Stop plugin befor innodb_memcached configuration UNINSTALL PLUGIN daemon_memcached; DROP DATABASE innodb_memcache; SET @@global.transaction_isolation= @transaction_isolation;