Current Path : /usr/opt/mysql57/mysql-test/suite/memcached/t/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //usr/opt/mysql57/mysql-test/suite/memcached/t/memc251_w_batch_6.test |
source include/not_valgrind.inc; source include/have_memcached_plugin.inc; source include/not_windows.inc; source include/have_innodb.inc; # This is a test on max daemon_memcached_w_batch_size configure option (1048576) # The read configure option daemon_memcached_r_batch_size is also configured # to 1048576. This means the transaction never commits --disable_query_log CALL mtr.add_suppression("daemon-memcached-r-batch-size': unsigned value"); CALL mtr.add_suppression("Could not obtain server's UPN to be used as target service name"); CALL mtr.add_suppression("InnoDB: Warning: MySQL is trying to drop"); --enable_query_log --enable_connect_log SET @auto_commit= @@global.autocommit; SET @@global.autocommit=0; SET @tx_isolation= @@global.tx_isolation; SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE; SET @lock_wait=@@global.lock_wait_timeout; SET @@global.lock_wait_timeout=1; SET @innodb_lock_wait=@@global.innodb_lock_wait_timeout; SET @@global.innodb_lock_wait_timeout=1; # 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,c21", "c3", "c4", "c5", "PRIMARY"); COMMIT; CREATE USER mysqltest1@localhost; COMMIT; connect (mysqltest1,localhost,mysqltest1,,); connection mysqltest1; USE test; --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings CREATE TABLE t1 (c1 VARCHAR(32), c2 TEXT, c21 TEXT, c3 INT, c4 BIGINT UNSIGNED, c5 INT, primary key(c1)) ENGINE = INNODB; INSERT INTO t1 VALUES("Z", REPEAT("a", 15000), REPEAT("b", 1000), 0, 0, 0); COMMIT; connection default; # Tables must exist before plugin can be started! INSTALL PLUGIN daemon_memcached SONAME 'libmemcached.so'; SELECT @@global.daemon_memcached_w_batch_size; --error ER_INCORRECT_GLOBAL_LOCAL_VAR SET @@global.daemon_memcached_w_batch_size=100; connection mysqltest1; # The following select is writing all to memcache otherwisw memcache is empty. --sorted_result #SELECT c1 FROM test.t1; SELECT SLEEP(2); connection default; perl; use DBI; use Cache::Memcached; my $memd = new Cache::Memcached { 'servers' => [ "127.0.0.1:11251" ], 'connect_timeout' => 20, 'select_timeout' => 20 }; #print "Here the memcached :\n"; $val = $memd->set("B","Berlin|Mitte"); $val = $memd->get("B"); if ($val) { print "$val\n"; } $val = $memd->set("D","Darmstadt|City"); $val = $memd->get("D"); if ($val) { print "$val\n"; } $val = $memd->get("Z"); if ($val) { print "$val\n"; } $memd->disconnect_all; EOF --sorted_result SELECT c1 FROM test.t1; connection mysqltest1; # With latest checkin, the memcached plugin will automatically commit # transactions when the connection is closed. So we cannot test the # timeout with the memcached connection closed. If there are new ways # to test such, we can re-enable this # --error ER_LOCK_WAIT_TIMEOUT SELECT c1 FROM t1 FOR UPDATE; COMMIT; connection default; perl; use DBI; use Cache::Memcached; my $memd = new Cache::Memcached { 'servers' => [ "127.0.0.1:11251" ], 'connect_timeout' => 20, 'select_timeout' => 20 }; print "Here the memcached results:\n"; $val = $memd->add("M","München|Perlach"); $val = $memd->get("M"); if ($val) { print "$val\n"; } $val = $memd->add("N","Nürnberg|Nord"); $val = $memd->get("N"); if ($val) { print "$val\n"; } $val = $memd->add("O","Oldenburg|Friesland"); $val = $memd->get("O"); if ($val) { print "$val\n"; } #It will not be able to see values added by other session $val = $memd->get("D"); if ($val) { print "$val\n"; } $memd->disconnect_all; EOF --sorted_result SELECT c1 FROM test.t1; connection mysqltest1; # With latest checkin, the memcached plugin will automatically commit # transactions when the connection is closed. So we cannot test the # timeout with the memcached connection closed. If there are new ways # to test such, we can re-enable this # --error ER_LOCK_WAIT_TIMEOUT SELECT c1,c2,c21 FROM test.t1 FOR UPDATE; COMMIT; connection default; perl; use DBI; use Cache::Memcached; my $memd = new Cache::Memcached { 'servers' => [ "127.0.0.1:11251" ], 'connect_timeout' => 20, 'select_timeout' => 20 }; print "Here the memcached results:\n"; $val = $memd->replace("G","Gossen|C"); if ($val) { print "$val\n"; } $val = $memd->get("G"); if ($val) { print "$val\n"; } $val = $memd->replace("F","Frankfurt|S"); if ($val) { print "$val\n"; } $val = $memd->get("F"); if ($val) { print "$val\n"; } $val = $memd->replace("E","Essen|W"); if ($val) { print "$val\n"; } $val = $memd->get("E"); if ($val) { print "$val\n"; } $memd->disconnect_all; EOF --sorted_result SELECT c1 FROM test.t1; connection default; # With latest checkin, the memcached plugin will automatically commit # transactions when the connection is closed. So we cannot test the # timeout with the memcached connection closed. If there are new ways # to test such, we can re-enable this # --error ER_LOCK_WAIT_TIMEOUT SELECT c1,c2,c21 FROM test.t1 FOR UPDATE; DROP TABLE test.t1; connection default; disconnect mysqltest1; UNINSTALL PLUGIN daemon_memcached; DROP DATABASE innodb_memcache; DROP USER mysqltest1@localhost; SET @@global.tx_isolation= @tx_isolation; SET @@global.autocommit=@auto_commit; SET @@global.lock_wait_timeout=@lock_wait; SET @@global.innodb_lock_wait_timeout=@innodb_lock_wait;