~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/myisam/tests/t/key_cache.test

  • Committer: Brian Aker
  • Date: 2010-08-11 06:07:52 UTC
  • mfrom: (1698.2.4 drizzle)
  • Revision ID: brian@gaz-20100811060752-nlxybv6ch3t0dx8i
MergeĀ fromĀ staging.

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
 
SELECT @@skr.storage_engine="test";
47
 
 
48
 
select @@keycache1.myisam_key_cache_block_size;
49
 
 
50
 
--replace_column 2 #
51
 
show status like 'key_blocks_used';
52
 
 
53
 
# Test to set up a too small size for a key cache (bug #2064)
54
 
set global myisam_key_cache_size=100;
55
 
 
56
 
#
57
 
# Bug #19079: corrupted index when myisam_key_cache_block_size is not multiple of
58
 
#             myisam_block_size
59
 
 
60
 
CREATE temporary TABLE t1(a int NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=MYISAM;
61
 
SET GLOBAL myisam_key_cache_block_size=1536;
62
 
INSERT INTO t1 VALUES (1);
63
 
SELECT @@myisam_key_cache_block_size;
64
 
CHECK TABLE t1;
65
 
DROP TABLE t1;
66
 
 
67
 
CREATE TEMPORARY TABLE t1(a int NOT NULL AUTO_INCREMENT PRIMARY KEY, b int) ENGINE=MYISAM;
68
 
CREATE TEMPORARY TABLE t2(a int NOT NULL AUTO_INCREMENT PRIMARY KEY, b int) ENGINE=MYISAM;
69
 
SET GLOBAL myisam_key_cache_block_size=1536;
70
 
INSERT INTO t1 VALUES (1,0);
71
 
INSERT INTO t2(b) SELECT b FROM t1;
72
 
INSERT INTO t1(b) SELECT b FROM t2;
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
 
SELECT COUNT(*) FROM t1;
90
 
SELECT @@myisam_key_cache_block_size;
91
 
CHECK TABLE t1;
92
 
DROP TABLE t1,t2;
93
 
# Restore changed variables
94
 
set global myisam_key_cache_block_size= @save_myisam_key_cache_block_size;
95
 
 
96
 
#
97
 
# Bug#28478 - Improper myisam_key_cache_block_size corrupts MyISAM tables
98
 
#
99
 
SET GLOBAL myisam_key_cache_block_size= 1536;
100
 
CREATE TEMPORARY TABLE t1 (
101
 
  id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
102
 
  c1 CHAR(50),
103
 
  c2 CHAR(50),
104
 
  c3 CHAR(50),
105
 
  KEY(c1, c2, c3)
106
 
  ) ENGINE= MyISAM;
107
 
INSERT INTO t1 (c1, c2, c3) VALUES
108
 
  ('a', 'b', 'c'), ('b', 'c', 'd'), ('c', 'd', 'e'), ('d', 'e', 'f'),
109
 
  ('e', 'f', 'g'), ('f', 'g', 'h'), ('g', 'h', 'i'), ('h', 'i', 'j'),
110
 
  ('i', 'j', 'k'), ('j', 'k', 'l'), ('k', 'l', 'm'), ('l', 'm', 'n'),
111
 
  ('m', 'n', 'o'), ('n', 'o', 'p'), ('o', 'p', 'q'), ('p', 'q', 'r'),
112
 
  ('q', 'r', 's'), ('r', 's', 't'), ('s', 't', 'u'), ('t', 'u', 'v'),
113
 
  ('u', 'v', 'w'), ('v', 'w', 'x'), ('w', 'x', 'y'), ('x', 'y', 'z');
114
 
CREATE TABLE t2 AS SELECT * FROM t1;
115
 
INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t2;
116
 
INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t2;
117
 
INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t2;
118
 
CHECK TABLE t1;
119
 
SHOW VARIABLES LIKE 'myisam_key_cache_block_size';
120
 
SET GLOBAL myisam_key_cache_block_size= @save_myisam_key_cache_block_size;
121
 
DROP TABLE t1,t2;
122
 
 
123
 
# Check division limit and age threshold
124
 
 
125
 
# Division Limit: Minimum 1, maximum 100
126
 
SET GLOBAL myisam_key_cache_division_limit= 0;
127
 
 
128
 
SELECT @@myisam_key_cache_division_limit;
129
 
 
130
 
SET GLOBAL myisam_key_cache_division_limit= 101;
131
 
 
132
 
SELECT @@myisam_key_cache_division_limit;
133
 
 
134
 
# Age Threshold: Minimum 100, maximum UINT32_MAX
135
 
SET GLOBAL myisam_key_cache_age_threshold= 98;
136
 
 
137
 
SELECT @@myisam_key_cache_age_threshold;
138
 
 
139
 
SET GLOBAL myisam_key_cache_age_threshold= 5000000000;
140
 
 
141
 
SELECT @@myisam_key_cache_age_threshold;