summaryrefslogtreecommitdiff
path: root/mysql-test/suite/sys_vars/t/innodb_log_write_ahead_size_basic.test
blob: 8693c6a7b1b2154af8beceaf10ded1f628cb521f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
--source include/have_innodb.inc

SET @start_global_value = @@global.innodb_log_write_ahead_size;

# default value is limited by innodb_page_size and varying along with the page size.
#SELECT @start_global_value;

#set common valid value
SET global innodb_log_write_ahead_size=4096;

#
# exists as global only
#
--echo Valid values are positive number
SELECT @@global.innodb_log_write_ahead_size >= 512;
SELECT @@global.innodb_log_write_ahead_size <= 16*1024;

--error ER_INCORRECT_GLOBAL_LOCAL_VAR
SELECT @@session.innodb_log_write_ahead_size;
SHOW global variables LIKE 'innodb_log_write_ahead_size';
SHOW session variables LIKE 'innodb_log_write_ahead_size';
--disable_warnings
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_log_write_ahead_size';
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_log_write_ahead_size';
--enable_warnings

#
# show that it's writable
#
SET global innodb_log_write_ahead_size=1024;
SELECT @@global.innodb_log_write_ahead_size;
--disable_warnings
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_log_write_ahead_size';
SELECT * FROM information_schema.session_variables
WHERE variable_name='innodb_log_write_ahead_size';
--enable_warnings
--error ER_GLOBAL_VARIABLE
SET session innodb_log_write_ahead_size=2048;

#
# Valid values
#
SET global innodb_log_write_ahead_size=512;
SELECT @@global.innodb_log_write_ahead_size;
SET global innodb_log_write_ahead_size=2048;
SELECT @@global.innodb_log_write_ahead_size;
SET global innodb_log_write_ahead_size=4096;
SELECT @@global.innodb_log_write_ahead_size;

# limited by innodb_page_size, and the followings are occationally invalid
#SET global innodb_log_write_ahead_size=8192;
#SELECT @@global.innodb_log_write_ahead_size;
#SET global innodb_log_write_ahead_size=16384;
#SELECT @@global.innodb_log_write_ahead_size;

#
# Invalid values
#
SET global innodb_log_write_ahead_size=0;
SELECT @@global.innodb_log_write_ahead_size;
SET global innodb_log_write_ahead_size=-1024;
SELECT @@global.innodb_log_write_ahead_size;
SET global innodb_log_write_ahead_size=3000;
SELECT @@global.innodb_log_write_ahead_size;

# limited by innodb_page_size, and the followings result occationally different
#SET global innodb_log_write_ahead_size=32768;
#SELECT @@global.innodb_log_write_ahead_size;

#
# incorrect types
#
--error ER_WRONG_TYPE_FOR_VAR
SET global innodb_log_write_ahead_size=1.1;
--error ER_WRONG_TYPE_FOR_VAR
SET global innodb_log_write_ahead_size=1e1;
--error ER_WRONG_TYPE_FOR_VAR
SET global innodb_log_write_ahead_size="foo";
SET global innodb_log_write_ahead_size=-7;
SELECT @@global.innodb_log_write_ahead_size;
--disable_warnings
SELECT * FROM information_schema.global_variables
WHERE variable_name='innodb_log_write_ahead_size';
--enable_warnings

#
# cleanup
#

SET @@global.innodb_log_write_ahead_size = @start_global_value;