Loading mysql-test/r/func_gconcat.result +1 −7 Original line number Diff line number Diff line Loading @@ -613,10 +613,4 @@ def group_concat(f1) 252 400 1 Y 128 0 63 f2 group_concat(f1) aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 2 select f2,group_concat(f1) from t1 group by f2 order by 2; Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def test t1 t1 f2 f2 253 255 255 Y 0 0 8 def group_concat(f1) group_concat(f1) 252 400 1 Y 144 0 63 f2 group_concat(f1) aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 2 drop table t1; mysql-test/r/key_cache.result +42 −0 Original line number Diff line number Diff line Loading @@ -287,3 +287,45 @@ check table t1; Table Op Msg_type Msg_text test.t1 check status OK drop table t1; CREATE TABLE t1(a int NOT NULL AUTO_INCREMENT PRIMARY KEY); SET GLOBAL key_cache_block_size=1536; INSERT INTO t1 VALUES (1); SELECT @@key_cache_block_size; @@key_cache_block_size 1536 CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK DROP TABLE t1; CREATE TABLE t1(a int NOT NULL AUTO_INCREMENT PRIMARY KEY, b int); CREATE TABLE t2(a int NOT NULL AUTO_INCREMENT PRIMARY KEY, b int); SET GLOBAL key_cache_block_size=1536; INSERT INTO t1 VALUES (1,0); INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; SELECT COUNT(*) FROM t1; COUNT(*) 4181 SELECT @@key_cache_block_size; @@key_cache_block_size 1536 CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK DROP TABLE t1,t2; mysql-test/t/func_gconcat.test +2 −1 Original line number Diff line number Diff line Loading @@ -398,6 +398,7 @@ create table t1 (f1 int unsigned, f2 varchar(255)); insert into t1 values (1,repeat('a',255)),(2,repeat('b',255)); --enable_metadata select f2,group_concat(f1) from t1 group by f2; select f2,group_concat(f1) from t1 group by f2 order by 2; --disable_metadata drop table t1; # End of 4.1 tests mysql-test/t/key_cache.test +40 −1 Original line number Diff line number Diff line Loading @@ -149,6 +149,7 @@ show status like 'key_blocks_used'; --replace_result 1812 KEY_BLOCKS_UNUSED 1793 KEY_BLOCKS_UNUSED 1674 KEY_BLOCKS_UNUSED 1818 KEY_BLOCKS_UNUSED 1824 KEY_BLOCKS_UNUSED show status like 'key_blocks_unused'; # Cleanup # We don't reset keycache2 as we want to ensure that mysqld will reset it set global keycache2.key_buffer_size=0; Loading @@ -157,7 +158,7 @@ set global keycache2.key_buffer_size=0; set global keycache3.key_buffer_size=100; set global keycache3.key_buffer_size=0; # Test case for buf 6447 # Test case for bug 6447 create table t1 (mytext text, FULLTEXT (mytext)); insert t1 values ('aaabbb'); Loading @@ -168,4 +169,42 @@ check table t1; drop table t1; # # Bug #19079: corrupted index when key_cache_block_size is not multiple of # myisam_block_size CREATE TABLE t1(a int NOT NULL AUTO_INCREMENT PRIMARY KEY); SET GLOBAL key_cache_block_size=1536; INSERT INTO t1 VALUES (1); SELECT @@key_cache_block_size; CHECK TABLE t1; DROP TABLE t1; CREATE TABLE t1(a int NOT NULL AUTO_INCREMENT PRIMARY KEY, b int); CREATE TABLE t2(a int NOT NULL AUTO_INCREMENT PRIMARY KEY, b int); SET GLOBAL key_cache_block_size=1536; INSERT INTO t1 VALUES (1,0); INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; SELECT COUNT(*) FROM t1; SELECT @@key_cache_block_size; CHECK TABLE t1; DROP TABLE t1,t2; # End of 4.1 tests mysys/mf_keycache.c +7 −5 Original line number Diff line number Diff line Loading @@ -1741,6 +1741,7 @@ byte *key_cache_read(KEY_CACHE *keycache, uint status; int page_st; offset= (uint) (filepos & (keycache->key_cache_block_size-1)); /* Read data in key_cache_block_size increments */ do { Loading @@ -1750,7 +1751,6 @@ byte *key_cache_read(KEY_CACHE *keycache, keycache_pthread_mutex_unlock(&keycache->cache_lock); goto no_key_cache; } offset= (uint) (filepos & (keycache->key_cache_block_size-1)); filepos-= offset; read_length= length; set_if_smaller(read_length, keycache->key_cache_block_size-offset); Loading Loading @@ -1826,6 +1826,7 @@ byte *key_cache_read(KEY_CACHE *keycache, #endif buff+= read_length; filepos+= read_length+offset; offset= 0; } while ((length-= read_length)); DBUG_RETURN(start); Loading Loading @@ -1877,17 +1878,17 @@ int key_cache_insert(KEY_CACHE *keycache, uint read_length; int page_st; int error; uint offset; offset= (uint) (filepos & (keycache->key_cache_block_size-1)); do { uint offset; keycache_pthread_mutex_lock(&keycache->cache_lock); if (!keycache->can_be_used) { keycache_pthread_mutex_unlock(&keycache->cache_lock); DBUG_RETURN(0); } offset= (uint) (filepos & (keycache->key_cache_block_size-1)); /* Read data into key cache from buff in key_cache_block_size incr. */ filepos-= offset; read_length= length; Loading Loading @@ -1945,6 +1946,7 @@ int key_cache_insert(KEY_CACHE *keycache, buff+= read_length; filepos+= read_length+offset; offset= 0; } while ((length-= read_length)); } Loading Loading @@ -2011,17 +2013,17 @@ int key_cache_write(KEY_CACHE *keycache, /* Key cache is used */ uint read_length; int page_st; uint offset; offset= (uint) (filepos & (keycache->key_cache_block_size-1)); do { uint offset; keycache_pthread_mutex_lock(&keycache->cache_lock); if (!keycache->can_be_used) { keycache_pthread_mutex_unlock(&keycache->cache_lock); goto no_key_cache; } offset= (uint) (filepos & (keycache->key_cache_block_size-1)); /* Write data in key_cache_block_size increments */ filepos-= offset; read_length= length; Loading Loading
mysql-test/r/func_gconcat.result +1 −7 Original line number Diff line number Diff line Loading @@ -613,10 +613,4 @@ def group_concat(f1) 252 400 1 Y 128 0 63 f2 group_concat(f1) aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 2 select f2,group_concat(f1) from t1 group by f2 order by 2; Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def test t1 t1 f2 f2 253 255 255 Y 0 0 8 def group_concat(f1) group_concat(f1) 252 400 1 Y 144 0 63 f2 group_concat(f1) aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 2 drop table t1;
mysql-test/r/key_cache.result +42 −0 Original line number Diff line number Diff line Loading @@ -287,3 +287,45 @@ check table t1; Table Op Msg_type Msg_text test.t1 check status OK drop table t1; CREATE TABLE t1(a int NOT NULL AUTO_INCREMENT PRIMARY KEY); SET GLOBAL key_cache_block_size=1536; INSERT INTO t1 VALUES (1); SELECT @@key_cache_block_size; @@key_cache_block_size 1536 CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK DROP TABLE t1; CREATE TABLE t1(a int NOT NULL AUTO_INCREMENT PRIMARY KEY, b int); CREATE TABLE t2(a int NOT NULL AUTO_INCREMENT PRIMARY KEY, b int); SET GLOBAL key_cache_block_size=1536; INSERT INTO t1 VALUES (1,0); INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; SELECT COUNT(*) FROM t1; COUNT(*) 4181 SELECT @@key_cache_block_size; @@key_cache_block_size 1536 CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK DROP TABLE t1,t2;
mysql-test/t/func_gconcat.test +2 −1 Original line number Diff line number Diff line Loading @@ -398,6 +398,7 @@ create table t1 (f1 int unsigned, f2 varchar(255)); insert into t1 values (1,repeat('a',255)),(2,repeat('b',255)); --enable_metadata select f2,group_concat(f1) from t1 group by f2; select f2,group_concat(f1) from t1 group by f2 order by 2; --disable_metadata drop table t1; # End of 4.1 tests
mysql-test/t/key_cache.test +40 −1 Original line number Diff line number Diff line Loading @@ -149,6 +149,7 @@ show status like 'key_blocks_used'; --replace_result 1812 KEY_BLOCKS_UNUSED 1793 KEY_BLOCKS_UNUSED 1674 KEY_BLOCKS_UNUSED 1818 KEY_BLOCKS_UNUSED 1824 KEY_BLOCKS_UNUSED show status like 'key_blocks_unused'; # Cleanup # We don't reset keycache2 as we want to ensure that mysqld will reset it set global keycache2.key_buffer_size=0; Loading @@ -157,7 +158,7 @@ set global keycache2.key_buffer_size=0; set global keycache3.key_buffer_size=100; set global keycache3.key_buffer_size=0; # Test case for buf 6447 # Test case for bug 6447 create table t1 (mytext text, FULLTEXT (mytext)); insert t1 values ('aaabbb'); Loading @@ -168,4 +169,42 @@ check table t1; drop table t1; # # Bug #19079: corrupted index when key_cache_block_size is not multiple of # myisam_block_size CREATE TABLE t1(a int NOT NULL AUTO_INCREMENT PRIMARY KEY); SET GLOBAL key_cache_block_size=1536; INSERT INTO t1 VALUES (1); SELECT @@key_cache_block_size; CHECK TABLE t1; DROP TABLE t1; CREATE TABLE t1(a int NOT NULL AUTO_INCREMENT PRIMARY KEY, b int); CREATE TABLE t2(a int NOT NULL AUTO_INCREMENT PRIMARY KEY, b int); SET GLOBAL key_cache_block_size=1536; INSERT INTO t1 VALUES (1,0); INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; INSERT INTO t2(b) SELECT b FROM t1; INSERT INTO t1(b) SELECT b FROM t2; SELECT COUNT(*) FROM t1; SELECT @@key_cache_block_size; CHECK TABLE t1; DROP TABLE t1,t2; # End of 4.1 tests
mysys/mf_keycache.c +7 −5 Original line number Diff line number Diff line Loading @@ -1741,6 +1741,7 @@ byte *key_cache_read(KEY_CACHE *keycache, uint status; int page_st; offset= (uint) (filepos & (keycache->key_cache_block_size-1)); /* Read data in key_cache_block_size increments */ do { Loading @@ -1750,7 +1751,6 @@ byte *key_cache_read(KEY_CACHE *keycache, keycache_pthread_mutex_unlock(&keycache->cache_lock); goto no_key_cache; } offset= (uint) (filepos & (keycache->key_cache_block_size-1)); filepos-= offset; read_length= length; set_if_smaller(read_length, keycache->key_cache_block_size-offset); Loading Loading @@ -1826,6 +1826,7 @@ byte *key_cache_read(KEY_CACHE *keycache, #endif buff+= read_length; filepos+= read_length+offset; offset= 0; } while ((length-= read_length)); DBUG_RETURN(start); Loading Loading @@ -1877,17 +1878,17 @@ int key_cache_insert(KEY_CACHE *keycache, uint read_length; int page_st; int error; uint offset; offset= (uint) (filepos & (keycache->key_cache_block_size-1)); do { uint offset; keycache_pthread_mutex_lock(&keycache->cache_lock); if (!keycache->can_be_used) { keycache_pthread_mutex_unlock(&keycache->cache_lock); DBUG_RETURN(0); } offset= (uint) (filepos & (keycache->key_cache_block_size-1)); /* Read data into key cache from buff in key_cache_block_size incr. */ filepos-= offset; read_length= length; Loading Loading @@ -1945,6 +1946,7 @@ int key_cache_insert(KEY_CACHE *keycache, buff+= read_length; filepos+= read_length+offset; offset= 0; } while ((length-= read_length)); } Loading Loading @@ -2011,17 +2013,17 @@ int key_cache_write(KEY_CACHE *keycache, /* Key cache is used */ uint read_length; int page_st; uint offset; offset= (uint) (filepos & (keycache->key_cache_block_size-1)); do { uint offset; keycache_pthread_mutex_lock(&keycache->cache_lock); if (!keycache->can_be_used) { keycache_pthread_mutex_unlock(&keycache->cache_lock); goto no_key_cache; } offset= (uint) (filepos & (keycache->key_cache_block_size-1)); /* Write data in key_cache_block_size increments */ filepos-= offset; read_length= length; Loading