~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/key_cache.test

  • Committer: Padraig O'Sullivan
  • Date: 2009-09-17 00:08:20 UTC
  • mto: (1126.9.3 captain-20090915-01)
  • mto: This revision was merged to the branch mainline in revision 1133.
  • Revision ID: osullivan.padraig@gmail.com-20090917000820-urd6p46qngi1okjp
Updated calls to some dtrace probes to cast the parameter to const char *
appropriately. Also, removed the additional variable in places that I was
using.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#
2
 
# Test of the MyISAM key cache
 
2
# Test of multiple key caches
3
3
#
4
4
--disable_warnings
5
5
drop table if exists t1, t2, t3;
6
6
--enable_warnings
7
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;
 
8
SET @save_key_buffer=@@key_buffer_size;
12
9
 
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;
 
10
SELECT @@key_buffer_size;
18
11
 
19
12
# Change default key cache size
20
 
SET @@global.myisam_key_cache_size=16*1024*1024;
 
13
SET @@global.key_buffer_size=16*1024*1024;
21
14
 
22
 
# Drop Key Cache (warning generated)
23
 
SET @@global.myisam_key_cache_size=0;
 
15
# Drop buffer
 
16
SET @@global.key_buffer_size=0;
24
17
# 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;
 
18
SET @@global.key_buffer_size=0;
29
19
 
30
20
# 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;
 
21
SHOW VARIABLES like "key_buffer_size";
 
22
SELECT @@key_buffer_size;
 
23
SELECT @@global.key_buffer_size;
 
24
SELECT @@global.key_buffer_size;
 
25
SELECT @@global.`key_buffer_size`;
 
26
SELECT @@global.`key_buffer_size`;
 
27
SELECT @@key_buffer_size;
 
28
 
 
29
SELECT @@key_buffer_size;
 
30
SELECT @@key_buffer_size;
 
31
 
 
32
SET @@global.key_buffer_size=@save_key_buffer;
40
33
 
41
34
#
42
35
# Errors
43
36
#
44
37
 
45
 
SELECT @@myisam_key_cache_size;
 
38
SELECT @@key_buffer_size;
46
39
-- error 1272
47
40
SELECT @@skr.storage_engine="test";
48
41
 
49
42
-- error 1272
50
 
select @@keycache1.myisam_key_cache_block_size;
 
43
select @@keycache1.key_cache_block_size;
51
44
 
52
 
--replace_column 2 #
53
45
show status like 'key_blocks_used';
54
46
 
 
47
# Cleanup
 
48
# We don't reset keycache2 as we want to ensure that mysqld will reset it
 
49
set global key_buffer_size=0;
 
50
 
55
51
# Test to set up a too small size for a key cache (bug #2064)
56
 
set global myisam_key_cache_size=100;
 
52
set global key_buffer_size=100;
 
53
set global key_buffer_size=0;
 
54
 
 
55
# Restore the changed variable value
 
56
-- error 1232
 
57
set global key_cache_block_size= @my_key_cache_block_size;
57
58
 
58
59
#
59
 
# Bug #19079: corrupted index when myisam_key_cache_block_size is not multiple of
 
60
# Bug #19079: corrupted index when key_cache_block_size is not multiple of
60
61
#             myisam_block_size
61
62
 
62
63
CREATE temporary TABLE t1(a int NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=MYISAM;
63
 
SET GLOBAL myisam_key_cache_block_size=1536;
 
64
SET @my_key_cache_block_size= @@global.key_cache_block_size;
 
65
SET GLOBAL key_cache_block_size=1536;
64
66
INSERT INTO t1 VALUES (1);
65
 
SELECT @@myisam_key_cache_block_size;
 
67
SELECT @@key_cache_block_size;
66
68
CHECK TABLE t1;
67
69
DROP TABLE t1;
68
70
 
69
71
CREATE TEMPORARY TABLE t1(a int NOT NULL AUTO_INCREMENT PRIMARY KEY, b int) ENGINE=MYISAM;
70
72
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;
 
73
SET GLOBAL key_cache_block_size=1536;
72
74
INSERT INTO t1 VALUES (1,0);
73
75
INSERT INTO t2(b) SELECT b FROM t1;
74
76
INSERT INTO t1(b) SELECT b FROM t2;
89
91
INSERT INTO t2(b) SELECT b FROM t1;
90
92
INSERT INTO t1(b) SELECT b FROM t2;
91
93
SELECT COUNT(*) FROM t1;
92
 
SELECT @@myisam_key_cache_block_size;
 
94
SELECT @@key_cache_block_size;
93
95
CHECK TABLE t1;
94
96
DROP TABLE t1,t2;
95
97
# 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;
 
98
set global key_cache_block_size= @my_key_cache_block_size;
 
99
 
 
100
#
 
101
# Bug#10473 - Can't set 'key_buffer_size' system variable to ZERO
 
102
# (One cannot drop the default key cache.)
 
103
#
 
104
set @@global.key_buffer_size=0;
 
105
select @@global.key_buffer_size;
 
106
 
 
107
#
 
108
# Bug#28478 - Improper key_cache_block_size corrupts MyISAM tables
 
109
#
 
110
SET @bug28478_key_cache_block_size= @@global.key_cache_block_size;
 
111
SET GLOBAL key_cache_block_size= 1536;
102
112
CREATE TEMPORARY TABLE t1 (
103
113
  id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
104
114
  c1 CHAR(50),
118
128
INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t2;
119
129
INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t2;
120
130
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;
 
131
SHOW VARIABLES LIKE 'key_cache_block_size';
 
132
SET GLOBAL key_cache_block_size= @bug28478_key_cache_block_size;
123
133
DROP TABLE t1,t2;
124
134
 
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;
 
135
# End of 4.1 tests