1source include/not_valgrind.inc; 2source include/have_memcached_plugin.inc; 3source include/not_windows.inc; 4source include/have_innodb.inc; 5 6call mtr.add_suppression("InnoDB: Cannot add field "); 7 8--disable_query_log 9CALL mtr.add_suppression("daemon-memcached-w-batch-size': unsigned"); 10CALL mtr.add_suppression("Could not obtain server's UPN to be used as target service name"); 11CALL mtr.add_suppression("InnoDB: Warning: MySQL is trying to drop"); 12--enable_query_log 13 14--enable_connect_log 15SET @tx_isolation= @@global.tx_isolation; 16SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; 17 18# Create the memcached tables 19--disable_query_log 20source include/memcache_config.inc; 21--enable_query_log 22SET sql_mode='NO_ENGINE_SUBSTITUTION'; 23INSERT INTO cache_policies VALUES("cache_policy", "innodb_only", 24 "innodb_only", "innodb_only", "innodb_only"); 25 26INSERT INTO config_options VALUES("separator", ","); 27 28# describe table for memcache 29INSERT INTO containers VALUES ("desc_t1", "test", "t1", 30 "c1", 31 "c200,c201,c202,c203,c204,c205,c206,c207,c208,c209, 32 c210,c211,c212,c213,c214,c215,c216,c217,c218,c219, 33 c220,c221,c222,c223,c224,c225,c226,c227,c228,c229, 34 c230,c231,c232,c233,c234,c235,c236,c237,c238,c239, 35 c240,c241,c242,c243,c244,c245,c246,c247,c248,c249", 36 "c3", "c4", "c5", "PRIMARY"); 37 38# Container's value_columns is 255 bytes, above insertion would be truncated. 39# The truncation left an invalid column name "c", which will be rejected 40# by InnoDB memcached configuration 41SELECT * FROM containers; 42 43DELETE FROM containers; 44 45# The 255 character limit of "value_columns" can hold columns up to "c230" 46INSERT INTO containers VALUES ("desc_t1", "test", "t1", 47 "c1", 48 "c200,c201,c202,c203,c204,c205,c206,c207,c208,c209, 49 c210,c211,c212,c213,c214,c215,c216,c217,c218,c219, 50 c220,c221,c222,c223,c224,c225,c226,c227,c228,c229", 51 "c3", "c4", "c5", "PRIMARY"); 52 53USE test; 54 55SET innodb_strict_mode=OFF; 56--disable_warnings 57CREATE TABLE t1 (c1 VARCHAR(32), 58 c200 VARCHAR(40), 59 c201 VARCHAR(40), 60 c202 VARCHAR(40), 61 c203 VARCHAR(40), 62 c204 VARCHAR(40), 63 c205 VARCHAR(40), 64 c206 VARCHAR(40), 65 c207 VARCHAR(40), 66 c208 VARCHAR(40), 67 c209 VARCHAR(40), 68 c210 VARCHAR(40), 69 c211 VARCHAR(40), 70 c212 VARCHAR(40), 71 c213 VARCHAR(40), 72 c214 VARCHAR(40), 73 c215 VARCHAR(40), 74 c216 VARCHAR(40), 75 c217 VARCHAR(40), 76 c218 VARCHAR(40), 77 c219 VARCHAR(40), 78 c220 VARCHAR(40), 79 c221 VARCHAR(40), 80 c222 VARCHAR(40), 81 c223 VARCHAR(40), 82 c224 VARCHAR(40), 83 c225 VARCHAR(40), 84 c226 VARCHAR(40), 85 c227 VARCHAR(40), 86 c228 VARCHAR(40), 87 c229 VARCHAR(40), 88 c230 VARCHAR(40), 89 c231 VARCHAR(40), 90 c232 VARCHAR(40), 91 c233 VARCHAR(40), 92 c234 VARCHAR(40), 93 c235 VARCHAR(40), 94 c236 VARCHAR(40), 95 c237 VARCHAR(40), 96 c238 VARCHAR(40), 97 c239 VARCHAR(40), 98 c240 VARCHAR(40), 99 c241 VARCHAR(40), 100 c242 VARCHAR(40), 101 c243 VARCHAR(40), 102 c244 VARCHAR(40), 103 c245 VARCHAR(40), 104 c246 VARCHAR(40), 105 c247 VARCHAR(40), 106 c248 VARCHAR(40), 107 c249 VARCHAR(40), 108 c3 INT, c4 BIGINT UNSIGNED, c5 INT, primary key(c1)) 109ROW_FORMAT=COMPACT ENGINE = INNODB; 110--enable_warnings 111 112INSERT INTO t1 VALUES ('1', 113 'c200','c201','c202','c203','c204','c205','c206','c207','c208','c209', 114 'c210','c211','c212','c213','c214','c215','c216','c217','c218','c219', 115 'c220','c221','c222','c223','c224','c225','c226','c227','c228','c229', 116 'c230','c231','c232','c233','c234','c235','c236','c237','c238','c239', 117 'c240','c241','c242','c243','c244','c245','c246','c247','c248','c249', 118 0, 0, 0); 119INSERT INTO t1 VALUES ('2', 120 'c200','c201','c202','c203','c204','c205','c206','c207','c208','c209', 121 'c210','c211','c212','c213','c214','c215','c216','c217','c218','c219', 122 'c220','c221','c222','c223','c224','c225','c226','c227','c228','c229', 123 'c230','c231','c232','c233','c234','c235','c236','c237','c238','c239', 124 'c240','c241','c242','c243','c244','c245','c246','c247','c248','c249', 125 0, 0, 0); 126INSERT INTO t1 VALUES ('3', 127 'c200','c201','c202','c203','c204','c205','c206','c207','c208','c209', 128 'c210','c211','c212','c213','c214','c215','c216','c217','c218','c219', 129 'c220','c221','c222','c223','c224','c225','c226','c227','c228','c229', 130 'c230','c231','c232','c233','c234','c235','c236','c237','c238','c239', 131 'c240','c241','c242','c243','c244','c245','c246','c247','c248','c249', 132 0, 0, 0); 133 134# Tables must exist before plugin can be started! 135INSTALL PLUGIN daemon_memcached SONAME 'libmemcached.so'; 136 137# The following select is writing all to memcache otherwisw memcache is empty. 138--sorted_result 139SELECT c1,c200,c201,c202,c203,c204,c205,c206,c207,c208,c209, 140 c210,c211,c212,c213,c214,c215,c216,c217,c218,c219, 141 c220,c221,c222,c223,c224,c225,c226,c227,c228,c229, 142 c230,c231,c232,c233,c234,c235,c236,c237,c238,c239, 143 c240,c241,c242,c243,c244,c245,c246,c247,c248,c249 144 FROM t1; 145 146SELECT SLEEP(2); 147 148perl; 149use DBI; 150use Cache::Memcached; 151my $memd = new Cache::Memcached { 152 'servers' => [ "127.0.0.1:11215" ], 153 'connect_timeout' => 20, 154 'select_timeout' => 20 155}; 156print "Here the memcached results:\n"; 157$val = $memd->get("1"); 158if ($val) { print "$val\n"; } 159$val = $memd->get("2"); 160if ($val) { print "$val\n"; } 161$val = $memd->get("3"); 162if ($val) { print "$val\n"; } 163$memd->disconnect_all; 164EOF 165 166--sorted_result 167SELECT c1,c200,c201,c202,c203,c204,c205,c206,c207,c208,c209, 168 c210,c211,c212,c213,c214,c215,c216,c217,c218,c219, 169 c220,c221,c222,c223,c224,c225,c226,c227,c228,c229, 170 c230,c231,c232,c233,c234,c235,c236,c237,c238,c239, 171 c240,c241,c242,c243,c244,c245,c246,c247,c248,c249 172 FROM t1; 173 174perl; 175use DBI; 176use Cache::Memcached; 177my $memd = new Cache::Memcached { 178 'servers' => [ "127.0.0.1:11215" ], 179 'connect_timeout' => 20, 180 'select_timeout' => 20 181}; 182print "Here the memcached results after set:\n"; 183$val = $memd->set("4","c200,c201,c202,c203,c204,c205,c206,c207,c208,c209,c210,c211,c212,c213,c214,c215,c216,c217,c218,c219,c220,c221,c222,c223,c224,c225,c226,c227,c228,c229"); 184$val = $memd->get("4"); 185if ($val) { print "$val\n"; } 186$memd->disconnect_all; 187EOF 188 189--sorted_result 190SELECT c1,c200,c201,c202,c203,c204,c205,c206,c207,c208,c209, 191 c210,c211,c212,c213,c214,c215,c216,c217,c218,c219, 192 c220,c221,c222,c223,c224,c225,c226,c227,c228,c229, 193 c230,c231,c232,c233,c234,c235,c236,c237,c238,c239, 194 c240,c241,c242,c243,c244,c245,c246,c247,c248,c249 195 FROM t1; 196 197perl; 198use DBI; 199use Cache::Memcached; 200my $memd = new Cache::Memcached { 201 'servers' => [ "127.0.0.1:11215" ], 202 'connect_timeout' => 20, 203 'select_timeout' => 20 204}; 205print "Here the memcached results after set:\n"; 206$val = $memd->set("4","c200,c201,c202,c203,c204,c205,c206,c207,c208,c209, 207 c210,c211,c212,c213,c214,c215,c216,c217,c218,c219, 208 c220,c221,c222,c223,c224,c225,c226,c227,c228,c229" 209 ); 210$val = $memd->get("4"); 211if ($val) { print "$val\n"; } 212$memd->disconnect_all; 213EOF 214 215--sorted_result 216SELECT c1,c200,c201,c202,c203,c204,c205,c206,c207,c208,c209, 217 c210,c211,c212,c213,c214,c215,c216,c217,c218,c219, 218 c220,c221,c222,c223,c224,c225,c226,c227,c228,c229, 219 c230,c231,c232,c233,c234,c235,c236,c237,c238,c239, 220 c240,c241,c242,c243,c244,c245,c246,c247,c248,c249 221 FROM t1; 222 223perl; 224use DBI; 225use Cache::Memcached; 226my $memd = new Cache::Memcached { 227 'servers' => [ "127.0.0.1:11215" ], 228 'connect_timeout' => 20, 229 'select_timeout' => 20 230}; 231print "Here the memcached results after set:\n"; 232$val = $memd->set("4","c200,c201,c202,c203,c204,c205,c206,c207,c208,c209, 233 c210,c211,c212,c213,c214,c215,c216,c217,c218,c219, 234 c220,c221,c222,c223,c224,c225,c226,c227,c228,c229, 235 c230,c231,c232,c233,c234,c235,c236,c237,c238,c239, 236 c240,c241,c242,c243,c244,c245,c246,c247,c248,c249" 237 ); 238$val = $memd->get("4"); 239if ($val) { print "$val\n"; } 240$memd->disconnect_all; 241EOF 242 243--sorted_result 244SELECT c1,c200,c201,c202,c203,c204,c205,c206,c207,c208,c209, 245 c210,c211,c212,c213,c214,c215,c216,c217,c218,c219, 246 c220,c221,c222,c223,c224,c225,c226,c227,c228,c229, 247 c230,c231,c232,c233,c234,c235,c236,c237,c238,c239, 248 c240,c241,c242,c243,c244,c245,c246,c247,c248,c249 249 FROM t1; 250 251DROP TABLE t1; 252SET sql_mode=default; 253UNINSTALL PLUGIN daemon_memcached; 254DROP DATABASE innodb_memcache; 255 256SET @@global.tx_isolation= @tx_isolation; 257