mariadb/mysql-test/t/key_cache.test
unknown a07e48eca0 After merge fixes
Added more DBUG statements
Ensure that we are comparing end space with BINARY strings
Use 'any_db' instead of '' to mean any database. (For HANDLER command)
Only strip ' ' when comparing CHAR, not other space-like characters (like \t)


BitKeeper/deleted/.del-ctype_tis620.result-old~3578ceb0b8284685:
  Delete: mysql-test/r/ctype_tis620.result-old
BitKeeper/deleted/.del-ctype_tis620.test-old~ffb1bbd2935d1aba:
  Delete: mysql-test/t/ctype_tis620.test-old
client/mysqlbinlog.cc:
  Added DBUG statements
  Added call of my_end() to free all used memory on exit
heap/hp_info.c:
  After merge fixes
heap/hp_open.c:
  After merge fixes
include/heap.h:
  After merge fixes
include/m_ctype.h:
  Use pchar instead of 'int' for character parameters.
  Added 'my_binary_compare()'
include/m_string.h:
  Fixed wrong define
innobase/ibuf/ibuf0ibuf.c:
  After merge fixes
innobase/srv/srv0start.c:
  After merge fixes
mysql-test/r/alter_table.result:
  Fixed results after merge
mysql-test/r/auto_increment.result:
  Fixed results after merge
mysql-test/r/bdb.result:
  Fixed results after merge
mysql-test/r/binary.result:
  Fixed results after merge
mysql-test/r/create.result:
  Fixed results after merge
mysql-test/r/ctype_mb.result:
  Fixed results after merge
mysql-test/r/ctype_tis620.result:
  Fixed results after merge
mysql-test/r/ctype_utf8.result:
  Fixed results after merge
mysql-test/r/delete.result:
  Fixed results after merge
mysql-test/r/func_compress.result:
  Fixed results after merge
mysql-test/r/func_gconcat.result:
  Fixed results after merge
mysql-test/r/func_group.result:
  Fixed results after merge
mysql-test/r/func_str.result:
  Fixed results after merge
mysql-test/r/innodb.result:
  Fixed results after merge
mysql-test/r/insert.result:
  Fixed results after merge
mysql-test/r/insert_select.result:
  Fixed results after merge
mysql-test/r/key.result:
  Fixed results after merge
mysql-test/r/loaddata.result:
  Fixed results after merge
mysql-test/r/lock.result:
  Fixed results after merge
mysql-test/r/myisam.result:
  Fixed results after merge
mysql-test/r/null.result:
  Fixed results after merge
mysql-test/r/null_key.result:
  Fixed results after merge
mysql-test/r/order_by.result:
  Fixed results after merge
mysql-test/r/query_cache.result:
  Fixed results after merge
mysql-test/r/range.result:
  Fixed results after merge
mysql-test/r/rpl_multi_delete.result:
  Fixed results after merge
mysql-test/r/rpl_until.result:
  Fixed results after merge
mysql-test/r/subselect.result:
  Fixed results after merge
mysql-test/r/subselect_innodb.result:
  Fixed results after merge
mysql-test/r/type_blob.result:
  Fixed results after merge
mysql-test/r/type_datetime.result:
  Fixed results after merge
mysql-test/r/type_decimal.result:
  Fixed results after merge
mysql-test/r/type_enum.result:
  Fixed results after merge
mysql-test/r/type_float.result:
  Fixed results after merge
mysql-test/r/type_ranges.result:
  Fixed results after merge
mysql-test/r/type_time.result:
  Fixed results after merge
mysql-test/r/type_timestamp.result:
  Fixed results after merge
mysql-test/r/type_uint.result:
  Fixed results after merge
mysql-test/r/type_year.result:
  Fixed results after merge
mysql-test/r/variables.result:
  Fixed results after merge
mysql-test/r/warnings.result:
  Fixed results after merge
mysql-test/t/case.test:
  Fixed shifted error messages
mysql-test/t/create.test:
  Fixed shifted error messages
mysql-test/t/ctype_collate.test:
  Fixed shifted error messages
mysql-test/t/ctype_tis620.test:
  Merge with 4.0 ctype_tis620 test
mysql-test/t/delete.test:
  Fixed shifted error messages
mysql-test/t/derived.test:
  Fixed shifted error messages
mysql-test/t/fulltext.test:
  Fixed shifted error messages
mysql-test/t/func_in.test:
  Fixed shifted error messages
mysql-test/t/func_str.test:
  Fixed shifted error messages
mysql-test/t/func_test.test:
  Fixed shifted error messages
mysql-test/t/grant.test:
  Fixed shifted error messages
mysql-test/t/innodb.test:
  Change to 4.1 syntax
mysql-test/t/key_cache.test:
  Fixed shifted error messages
mysql-test/t/myisam.test:
  New test of blob and end space
mysql-test/t/row.test:
  Fixed shifted error messages
mysql-test/t/rpl_until.test:
  Fixed shifted error messages
mysql-test/t/subselect.test:
  Fixed shifted error messages
mysql-test/t/subselect_innodb.test:
  Fix test to take into account foreign key constraints
mysql-test/t/union.test:
  Fixed shifted error messages
mysql-test/t/user_var.test:
  Fixed shifted error messages
mysql-test/t/variables.test:
  Fixed shifted error messages
mysys/my_handler.c:
  Merge with 4.0 code
sql/ha_heap.cc:
  After merge fixes
sql/handler.cc:
  After merge fixes
sql/item.cc:
  After merge fixes
sql/item_cmpfunc.cc:
  Ensure that we are comparing end space with BINARY strings
sql/item_cmpfunc.h:
  Ensure that we are comparing end space with BINARY strings
sql/log_event.cc:
  More DBUG statements
  Ensure that we use all options to LOAD DATA in replication
sql/opt_range.cc:
  After merge fixes
sql/sql_db.cc:
  After merge fixes
sql/sql_handler.cc:
  After merge fixes
  Use 'any_db' instead of '' to mean 'no database comparison'
sql/sql_parse.cc:
  After merge fixes
sql/sql_select.cc:
  After merge fixes
  Added function comment for setup_group()
sql/sql_string.cc:
  Added stringcmp() for binary comparison.
  Added function comments for sortcmp() and stringcmp()
sql/sql_string.h:
  Added stringcmp()
sql/sql_table.cc:
  After merge fixes
sql/sql_update.cc:
  After merge fixes
sql/sql_yacc.yy:
  Use 'any_db' instead of '' to mean any database. Using "" causes a 'wrong db name' error.
strings/ctype-big5.c:
  Strip only end space, not other space characters.
strings/ctype-bin.c:
  Removed some not needed functions.
  Added function comments
  Don't remove end space in comparisons
  Change my_wildcmp_bin() to be 'identical' with other similar code
strings/ctype-czech.c:
  Strip only end space, not other space characters.
strings/ctype-gbk.c:
  Strip only end space, not other space characters.
strings/ctype-latin1.c:
  Strip only end space, not other space characters.
strings/ctype-mb.c:
  Strip only end space, not other space characters.
strings/ctype-simple.c:
  Strip only end space, not other space characters.
strings/ctype-sjis.c:
  Strip only end space, not other space characters.
strings/ctype-tis620.c:
  Added usage of my_instr_simple. This needs to be cleaned up!
strings/ctype-utf8.c:
  Strip only end space, not other space characters.
strings/ctype-win1250ch.c:
  Strip only end space, not other space characters.
  Fixed indentation
strings/strto.c:
  Code cleanup
2004-02-16 10:03:25 +02:00

142 lines
3.8 KiB
Text

#
# Test of multiple key caches
#
--disable_warnings
drop table if exists t1, t2, t3;
--enable_warnings
SET @save_key_buffer=@@key_buffer_size;
SELECT @@key_buffer_size, @@small.key_buffer_size;
# Change default key cache size
SET @@global.key_buffer_size=16*1024*1024;
SET @@global.default.key_buffer_size=16*1024*1024;
SET @@global.default.key_buffer_size=16*1024*1024;
SET @@global.small.key_buffer_size=1*1024*1024;
SET @@global.medium.key_buffer_size=4*1024*1024;
# Drop buffer
SET @@global.medium.key_buffer_size=0;
# Test double drop
SET @@global.medium.key_buffer_size=0;
# Print key buffer with different syntaxes
SHOW VARIABLES like "key_buffer_size";
SELECT @@key_buffer_size;
SELECT @@global.key_buffer_size;
SELECT @@global.default.key_buffer_size;
SELECT @@global.default.`key_buffer_size`;
SELECT @@global.`default`.`key_buffer_size`;
SELECT @@`default`.key_buffer_size;
SELECT @@small.key_buffer_size;
SELECT @@medium.key_buffer_size;
SET @@global.key_buffer_size=@save_key_buffer;
#
# Errors
#
--error 1064
SELECT @@default.key_buffer_size;
--error 1272
SELECT @@skr.storage_engine="test";
select @@keycache1.key_cache_block_size;
select @@keycache1.key_buffer_size;
set global keycache1.key_cache_block_size=2048;
select @@keycache1.key_buffer_size;
select @@keycache1.key_cache_block_size;
set global keycache1.key_buffer_size=1*1024*1024;
select @@keycache1.key_buffer_size;
select @@keycache1.key_cache_block_size;
set global keycache2.key_buffer_size=4*1024*1024;
select @@keycache2.key_buffer_size;
select @@keycache2.key_cache_block_size;
set global keycache1.key_buffer_size=0;
select @@keycache1.key_buffer_size;
select @@keycache1.key_cache_block_size;
select @@key_buffer_size;
select @@key_cache_block_size;
set global keycache1.key_buffer_size=1024*1024;
create table t1 (p int primary key, a char(10)) delay_key_write=1;
create table t2 (p int primary key, i int, a char(10), key k1(i), key k2(a));
insert into t1 values (1, 'qqqq'), (11, 'yyyy');
insert into t2 values (1, 1, 'qqqq'), (2, 1, 'pppp'),
(3, 1, 'yyyy'), (4, 3, 'zzzz');
select * from t1;
select * from t2;
update t1 set p=2 where p=1;
update t2 set i=2 where i=1;
cache index t1 key (`primary`) in keycache1;
explain select p from t1;
select p from t1;
explain select i from t2;
select i from t2;
explain select count(*) from t1, t2 where t1.p = t2.i;
select count(*) from t1, t2 where t1.p = t2.i;
cache index t2 in keycache1;
update t2 set p=p+1000, i=2 where a='qqqq';
cache index t2 in keycache2;
insert into t2 values (2000, 3, 'yyyy');
cache index t2 in keycache1;
update t2 set p=3000 where a='zzzz';
select * from t2;
explain select p from t2;
select p from t2;
explain select i from t2;
select i from t2;
explain select a from t2;
select a from t2;
# Test some error conditions
--error 1284
cache index t1 in unknown_key_cache;
cache index t1 key (unknown_key) in keycache1;
select @@keycache2.key_buffer_size;
select @@keycache2.key_cache_block_size;
set global keycache2.key_buffer_size=0;
select @@keycache2.key_buffer_size;
select @@keycache2.key_cache_block_size;
set global keycache2.key_buffer_size=1024*1024;
select @@keycache2.key_buffer_size;
update t2 set p=4000 where a='zzzz';
update t1 set p=p+1;
set global keycache1.key_buffer_size=0;
select * from t2;
select p from t2;
explain select i from t2;
select i from t2;
explain select a from t2;
select a from t2;
select * from t1;
select p from t1;
# Use the 'small' key cache
create table t3 (like t1);
cache index t3 in small;
insert into t3 select * from t1;
cache index t3 in keycache2;
cache index t1,t2 in default;
drop table t1,t2,t3;
# Cleanup
# We don't reset keycache2 as we want to ensure that mysqld will reset it
set global keycache2.key_buffer_size=0;
# Test to set up a too small size for a key cache (bug #2064)
set global keycache3.key_buffer_size=100;
set global keycache3.key_buffer_size=0;