~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/key_cache.test

  • Committer: Monty Taylor
  • Date: 2010-07-19 05:06:59 UTC
  • mto: (1662.1.2 rollup)
  • mto: This revision was merged to the branch mainline in revision 1663.
  • Revision ID: mordred@inaugust.com-20100719050659-if3thz0k66m1jkaf
Backed out two bits that snuck in to the merge.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#
 
2
# Test of the MyISAM key cache
 
3
#
 
4
--disable_warnings
 
5
drop table if exists t1, t2, t3;
 
6
--enable_warnings
 
7
 
 
8
SET @save_myisam_key_cache_size=@@myisam_key_cache_size;
 
9
SET @save_myisam_key_cache_block_size=@@myisam_key_cache_block_size;
 
10
SET @save_myisam_key_cache_division_limit=@@myisam_key_cache_division_limit;
 
11
SET @save_myisam_key_cache_age_threshold=@@myisam_key_cache_age_threshold;
 
12
 
 
13
# Show default variables for MyISAM key cache
 
14
SELECT @@myisam_key_cache_size;
 
15
SELECT @@myisam_key_cache_block_size;
 
16
SELECT @@myisam_key_cache_division_limit;
 
17
SELECT @@myisam_key_cache_age_threshold;
 
18
 
 
19
# Change default key cache size
 
20
SET @@global.myisam_key_cache_size=16*1024*1024;
 
21
 
 
22
# Drop Key Cache (warning generated)
 
23
SET @@global.myisam_key_cache_size=0;
 
24
# Test double drop
 
25
SET @@global.myisam_key_cache_size=0;
 
26
 
 
27
# Change default key cache size
 
28
SET @@global.myisam_key_cache_size=16*1024*1024;
 
29
 
 
30
# Print key buffer with different syntaxes
 
31
SHOW VARIABLES like "myisam_key_cache_size";
 
32
SELECT @@myisam_key_cache_size;
 
33
SELECT @@global.myisam_key_cache_size;
 
34
SELECT @@global.myisam_key_cache_size;
 
35
SELECT @@global.`myisam_key_cache_size`;
 
36
SELECT @@global.`myisam_key_cache_size`;
 
37
SELECT @@myisam_key_cache_size;
 
38
 
 
39
SET @@global.myisam_key_cache_size=@save_myisam_key_cache_size;
 
40
 
 
41
#
 
42
# Errors
 
43
#
 
44
 
 
45
SELECT @@myisam_key_cache_size;
 
46
-- error 1272
 
47
SELECT @@skr.storage_engine="test";
 
48
 
 
49
-- error 1272
 
50
select @@keycache1.myisam_key_cache_block_size;
 
51
 
 
52
--replace_column 2 #
 
53
show status like 'key_blocks_used';
 
54
 
 
55
# Test to set up a too small size for a key cache (bug #2064)
 
56
set global myisam_key_cache_size=100;
 
57
 
 
58
#
 
59
# Bug #19079: corrupted index when myisam_key_cache_block_size is not multiple of
 
60
#             myisam_block_size
 
61
 
 
62
CREATE temporary TABLE t1(a int NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=MYISAM;
 
63
SET GLOBAL myisam_key_cache_block_size=1536;
 
64
INSERT INTO t1 VALUES (1);
 
65
SELECT @@myisam_key_cache_block_size;
 
66
CHECK TABLE t1;
 
67
DROP TABLE t1;
 
68
 
 
69
CREATE TEMPORARY TABLE t1(a int NOT NULL AUTO_INCREMENT PRIMARY KEY, b int) ENGINE=MYISAM;
 
70
CREATE TEMPORARY TABLE t2(a int NOT NULL AUTO_INCREMENT PRIMARY KEY, b int) ENGINE=MYISAM;
 
71
SET GLOBAL myisam_key_cache_block_size=1536;
 
72
INSERT INTO t1 VALUES (1,0);
 
73
INSERT INTO t2(b) SELECT b FROM t1;
 
74
INSERT INTO t1(b) SELECT b FROM t2;
 
75
INSERT INTO t2(b) SELECT b FROM t1;
 
76
INSERT INTO t1(b) SELECT b FROM t2;
 
77
INSERT INTO t2(b) SELECT b FROM t1;
 
78
INSERT INTO t1(b) SELECT b FROM t2;
 
79
INSERT INTO t2(b) SELECT b FROM t1;
 
80
INSERT INTO t1(b) SELECT b FROM t2;
 
81
INSERT INTO t2(b) SELECT b FROM t1;
 
82
INSERT INTO t1(b) SELECT b FROM t2;
 
83
INSERT INTO t2(b) SELECT b FROM t1;
 
84
INSERT INTO t1(b) SELECT b FROM t2;
 
85
INSERT INTO t2(b) SELECT b FROM t1;
 
86
INSERT INTO t1(b) SELECT b FROM t2;
 
87
INSERT INTO t2(b) SELECT b FROM t1;
 
88
INSERT INTO t1(b) SELECT b FROM t2;
 
89
INSERT INTO t2(b) SELECT b FROM t1;
 
90
INSERT INTO t1(b) SELECT b FROM t2;
 
91
SELECT COUNT(*) FROM t1;
 
92
SELECT @@myisam_key_cache_block_size;
 
93
CHECK TABLE t1;
 
94
DROP TABLE t1,t2;
 
95
# Restore changed variables
 
96
set global myisam_key_cache_block_size= @save_myisam_key_cache_block_size;
 
97
 
 
98
#
 
99
# Bug#28478 - Improper myisam_key_cache_block_size corrupts MyISAM tables
 
100
#
 
101
SET GLOBAL myisam_key_cache_block_size= 1536;
 
102
CREATE TEMPORARY TABLE t1 (
 
103
  id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
 
104
  c1 CHAR(50),
 
105
  c2 CHAR(50),
 
106
  c3 CHAR(50),
 
107
  KEY(c1, c2, c3)
 
108
  ) ENGINE= MyISAM;
 
109
INSERT INTO t1 (c1, c2, c3) VALUES
 
110
  ('a', 'b', 'c'), ('b', 'c', 'd'), ('c', 'd', 'e'), ('d', 'e', 'f'),
 
111
  ('e', 'f', 'g'), ('f', 'g', 'h'), ('g', 'h', 'i'), ('h', 'i', 'j'),
 
112
  ('i', 'j', 'k'), ('j', 'k', 'l'), ('k', 'l', 'm'), ('l', 'm', 'n'),
 
113
  ('m', 'n', 'o'), ('n', 'o', 'p'), ('o', 'p', 'q'), ('p', 'q', 'r'),
 
114
  ('q', 'r', 's'), ('r', 's', 't'), ('s', 't', 'u'), ('t', 'u', 'v'),
 
115
  ('u', 'v', 'w'), ('v', 'w', 'x'), ('w', 'x', 'y'), ('x', 'y', 'z');
 
116
CREATE TABLE t2 AS SELECT * FROM t1;
 
117
INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t2;
 
118
INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t2;
 
119
INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t2;
 
120
CHECK TABLE t1;
 
121
SHOW VARIABLES LIKE 'myisam_key_cache_block_size';
 
122
SET GLOBAL myisam_key_cache_block_size= @save_myisam_key_cache_block_size;
 
123
DROP TABLE t1,t2;
 
124
 
 
125
# Check division limit and age threshold
 
126
 
 
127
# Division Limit: Minimum 1, maximum 100
 
128
SET GLOBAL myisam_key_cache_division_limit= 0;
 
129
 
 
130
SELECT @@myisam_key_cache_division_limit;
 
131
 
 
132
SET GLOBAL myisam_key_cache_division_limit= 101;
 
133
 
 
134
SELECT @@myisam_key_cache_division_limit;
 
135
 
 
136
# Age Threshold: Minimum 100, maximum UINT32_MAX
 
137
SET GLOBAL myisam_key_cache_age_threshold= 98;
 
138
 
 
139
SELECT @@myisam_key_cache_age_threshold;
 
140
 
 
141
SET GLOBAL myisam_key_cache_age_threshold= 5000000000;
 
142
 
 
143
SELECT @@myisam_key_cache_age_threshold;