Merge lp:~laurynas-biveinis/percona-server/bug1039384-5.5 into lp:percona-server/5.5
- bug1039384-5.5
- Merge into 5.5
Status: | Merged |
---|---|
Approved by: | Stewart Smith |
Approved revision: | no longer in the source branch. |
Merged at revision: | 295 |
Proposed branch: | lp:~laurynas-biveinis/percona-server/bug1039384-5.5 |
Merge into: | lp:percona-server/5.5 |
Diff against target: |
903 lines (+799/-16) 15 files modified
Percona-Server/mysql-test/suite/sys_vars/r/innodb_adaptive_flushing_method_basic.result (+79/-3) Percona-Server/mysql-test/suite/sys_vars/r/innodb_adaptive_flushing_method_startup.result (+18/-0) Percona-Server/mysql-test/suite/sys_vars/r/innodb_corrupt_table_action_basic.result (+48/-2) Percona-Server/mysql-test/suite/sys_vars/r/innodb_flush_neighbor_pages_basic.result (+79/-3) Percona-Server/mysql-test/suite/sys_vars/r/innodb_flush_neighbor_pages_startup.result (+18/-0) Percona-Server/mysql-test/suite/sys_vars/r/innodb_read_ahead_basic.result (+99/-3) Percona-Server/mysql-test/suite/sys_vars/r/innodb_read_ahead_startup.result (+24/-0) Percona-Server/mysql-test/suite/sys_vars/t/innodb_adaptive_flushing_method_basic.test (+62/-1) Percona-Server/mysql-test/suite/sys_vars/t/innodb_adaptive_flushing_method_startup.test (+57/-0) Percona-Server/mysql-test/suite/sys_vars/t/innodb_corrupt_table_action_basic.test (+47/-1) Percona-Server/mysql-test/suite/sys_vars/t/innodb_flush_neighbor_pages_basic.test (+62/-1) Percona-Server/mysql-test/suite/sys_vars/t/innodb_flush_neighbor_pages_startup.test (+57/-0) Percona-Server/mysql-test/suite/sys_vars/t/innodb_read_ahead_basic.test (+72/-1) Percona-Server/mysql-test/suite/sys_vars/t/innodb_read_ahead_startup.test (+75/-0) Percona-Server/storage/innobase/handler/ha_innodb.cc (+2/-1) |
To merge this branch: | bzr merge lp:~laurynas-biveinis/percona-server/bug1039384-5.5 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Stewart Smith (community) | Approve | ||
Sergei Glushchenko (community) | Approve | ||
Review via email: mp+120554@code.launchpad.net |
Commit message
Description of the change
Merge fix of bug 1039384 (innodb_
innodb_
The problem for innodb_
update method sets the value to modulus four insted of three. The
problem with innodb_
not set it to modulus three. This results in unhandled values for
both variables.
Fixed by adding missing "srv_flush_
innobase_init() and adjusting innodb_
to do the correct operation.
Extended the sys_vars testsuite to ensure testing for enum variables,
especially those that have aliases in allowed values: expanded
innodb_
innodb_
innodb_
innodb_
Added innodb_
innodb_
innodb_
Jenkins: http://
Stewart Smith (stewart) : | # |
Preview Diff
1 | === modified file 'Percona-Server/mysql-test/suite/sys_vars/r/innodb_adaptive_flushing_method_basic.result' |
2 | --- Percona-Server/mysql-test/suite/sys_vars/r/innodb_adaptive_flushing_method_basic.result 2012-04-18 23:26:11 +0000 |
3 | +++ Percona-Server/mysql-test/suite/sys_vars/r/innodb_adaptive_flushing_method_basic.result 2012-08-21 13:01:22 +0000 |
4 | @@ -1,3 +1,79 @@ |
5 | -SELECT @@global.innodb_adaptive_flushing_method; |
6 | -@@global.innodb_adaptive_flushing_method |
7 | -estimate |
8 | +SET @saved_val = @@global.innodb_adaptive_flushing_method; |
9 | +SELECT @@global.innodb_adaptive_flushing_method IN ('native', 'estimate', 'keep_average', '0', '1', '2'); |
10 | +@@global.innodb_adaptive_flushing_method IN ('native', 'estimate', 'keep_average', '0', '1', '2') |
11 | +1 |
12 | +SELECT @@session.innodb_adaptive_flushing_method; |
13 | +ERROR HY000: Variable 'innodb_adaptive_flushing_method' is a GLOBAL variable |
14 | +SET GLOBAL innodb_adaptive_flushing_method='native'; |
15 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
16 | +@@GLOBAL.innodb_adaptive_flushing_method |
17 | +native |
18 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
19 | +VARIABLE_NAME VARIABLE_VALUE |
20 | +INNODB_ADAPTIVE_FLUSHING_METHOD native |
21 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
22 | +VARIABLE_NAME VARIABLE_VALUE |
23 | +INNODB_ADAPTIVE_FLUSHING_METHOD native |
24 | +SET GLOBAL innodb_adaptive_flushing_method='estimate'; |
25 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
26 | +@@GLOBAL.innodb_adaptive_flushing_method |
27 | +estimate |
28 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
29 | +VARIABLE_NAME VARIABLE_VALUE |
30 | +INNODB_ADAPTIVE_FLUSHING_METHOD estimate |
31 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
32 | +VARIABLE_NAME VARIABLE_VALUE |
33 | +INNODB_ADAPTIVE_FLUSHING_METHOD estimate |
34 | +SET GLOBAL innodb_adaptive_flushing_method='keep_average'; |
35 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
36 | +@@GLOBAL.innodb_adaptive_flushing_method |
37 | +keep_average |
38 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
39 | +VARIABLE_NAME VARIABLE_VALUE |
40 | +INNODB_ADAPTIVE_FLUSHING_METHOD keep_average |
41 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
42 | +VARIABLE_NAME VARIABLE_VALUE |
43 | +INNODB_ADAPTIVE_FLUSHING_METHOD keep_average |
44 | +SET GLOBAL innodb_adaptive_flushing_method='0'; |
45 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
46 | +@@GLOBAL.innodb_adaptive_flushing_method |
47 | +native |
48 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
49 | +VARIABLE_NAME VARIABLE_VALUE |
50 | +INNODB_ADAPTIVE_FLUSHING_METHOD native |
51 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
52 | +VARIABLE_NAME VARIABLE_VALUE |
53 | +INNODB_ADAPTIVE_FLUSHING_METHOD native |
54 | +SET GLOBAL innodb_adaptive_flushing_method='1'; |
55 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
56 | +@@GLOBAL.innodb_adaptive_flushing_method |
57 | +estimate |
58 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
59 | +VARIABLE_NAME VARIABLE_VALUE |
60 | +INNODB_ADAPTIVE_FLUSHING_METHOD estimate |
61 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
62 | +VARIABLE_NAME VARIABLE_VALUE |
63 | +INNODB_ADAPTIVE_FLUSHING_METHOD estimate |
64 | +SET GLOBAL innodb_adaptive_flushing_method='2'; |
65 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
66 | +@@GLOBAL.innodb_adaptive_flushing_method |
67 | +keep_average |
68 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
69 | +VARIABLE_NAME VARIABLE_VALUE |
70 | +INNODB_ADAPTIVE_FLUSHING_METHOD keep_average |
71 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
72 | +VARIABLE_NAME VARIABLE_VALUE |
73 | +INNODB_ADAPTIVE_FLUSHING_METHOD keep_average |
74 | +SET SESSION innodb_adaptive_flushing_method='estimate'; |
75 | +ERROR HY000: Variable 'innodb_adaptive_flushing_method' is a GLOBAL variable and should be set with SET GLOBAL |
76 | +SET @@session.innodb_adaptive_flushing_method='keep_average'; |
77 | +ERROR HY000: Variable 'innodb_adaptive_flushing_method' is a GLOBAL variable and should be set with SET GLOBAL |
78 | +SET global innodb_adaptive_flushing_method=1.1; |
79 | +ERROR 42000: Incorrect argument type to variable 'innodb_adaptive_flushing_method' |
80 | +SET global innodb_adaptive_flushing_method=1e1; |
81 | +ERROR 42000: Incorrect argument type to variable 'innodb_adaptive_flushing_method' |
82 | +SET global innodb_adaptive_flushing_method='foo'; |
83 | +ERROR 42000: Variable 'innodb_adaptive_flushing_method' can't be set to the value of 'foo' |
84 | +SET global innodb_adaptive_flushing_method=-2; |
85 | +ERROR 42000: Variable 'innodb_adaptive_flushing_method' can't be set to the value of '-2' |
86 | +SET @@global.innodb_adaptive_flushing_method = @saved_val; |
87 | |
88 | === added file 'Percona-Server/mysql-test/suite/sys_vars/r/innodb_adaptive_flushing_method_startup.result' |
89 | --- Percona-Server/mysql-test/suite/sys_vars/r/innodb_adaptive_flushing_method_startup.result 1970-01-01 00:00:00 +0000 |
90 | +++ Percona-Server/mysql-test/suite/sys_vars/r/innodb_adaptive_flushing_method_startup.result 2012-08-21 13:01:22 +0000 |
91 | @@ -0,0 +1,18 @@ |
92 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
93 | +@@GLOBAL.innodb_adaptive_flushing_method |
94 | +native |
95 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
96 | +@@GLOBAL.innodb_adaptive_flushing_method |
97 | +estimate |
98 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
99 | +@@GLOBAL.innodb_adaptive_flushing_method |
100 | +keep_average |
101 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
102 | +@@GLOBAL.innodb_adaptive_flushing_method |
103 | +native |
104 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
105 | +@@GLOBAL.innodb_adaptive_flushing_method |
106 | +estimate |
107 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
108 | +@@GLOBAL.innodb_adaptive_flushing_method |
109 | +keep_average |
110 | |
111 | === modified file 'Percona-Server/mysql-test/suite/sys_vars/r/innodb_corrupt_table_action_basic.result' |
112 | --- Percona-Server/mysql-test/suite/sys_vars/r/innodb_corrupt_table_action_basic.result 2012-04-18 23:26:11 +0000 |
113 | +++ Percona-Server/mysql-test/suite/sys_vars/r/innodb_corrupt_table_action_basic.result 2012-08-21 13:01:22 +0000 |
114 | @@ -1,3 +1,49 @@ |
115 | -SELECT @@global.innodb_corrupt_table_action; |
116 | -@@global.innodb_corrupt_table_action |
117 | +SET @saved_val = @@global.innodb_corrupt_table_action; |
118 | +SELECT @@global.innodb_corrupt_table_action IN ('assert', 'warn', 'salvage'); |
119 | +@@global.innodb_corrupt_table_action IN ('assert', 'warn', 'salvage') |
120 | +1 |
121 | +SELECT @@session.innodb_corrupt_table_action; |
122 | +ERROR HY000: Variable 'innodb_corrupt_table_action' is a GLOBAL variable |
123 | +SET GLOBAL innodb_corrupt_table_action='assert'; |
124 | +SELECT @@GLOBAL.innodb_corrupt_table_action; |
125 | +@@GLOBAL.innodb_corrupt_table_action |
126 | assert |
127 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_corrupt_table_action'; |
128 | +VARIABLE_NAME VARIABLE_VALUE |
129 | +INNODB_CORRUPT_TABLE_ACTION assert |
130 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_corrupt_table_action'; |
131 | +VARIABLE_NAME VARIABLE_VALUE |
132 | +INNODB_CORRUPT_TABLE_ACTION assert |
133 | +SET GLOBAL innodb_corrupt_table_action='warn'; |
134 | +SELECT @@GLOBAL.innodb_corrupt_table_action; |
135 | +@@GLOBAL.innodb_corrupt_table_action |
136 | +warn |
137 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_corrupt_table_action'; |
138 | +VARIABLE_NAME VARIABLE_VALUE |
139 | +INNODB_CORRUPT_TABLE_ACTION warn |
140 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_corrupt_table_action'; |
141 | +VARIABLE_NAME VARIABLE_VALUE |
142 | +INNODB_CORRUPT_TABLE_ACTION warn |
143 | +SET GLOBAL innodb_corrupt_table_action='salvage'; |
144 | +SELECT @@GLOBAL.innodb_corrupt_table_action; |
145 | +@@GLOBAL.innodb_corrupt_table_action |
146 | +salvage |
147 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_corrupt_table_action'; |
148 | +VARIABLE_NAME VARIABLE_VALUE |
149 | +INNODB_CORRUPT_TABLE_ACTION salvage |
150 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_corrupt_table_action'; |
151 | +VARIABLE_NAME VARIABLE_VALUE |
152 | +INNODB_CORRUPT_TABLE_ACTION salvage |
153 | +SET SESSION innodb_corrupt_table_action='warn'; |
154 | +ERROR HY000: Variable 'innodb_corrupt_table_action' is a GLOBAL variable and should be set with SET GLOBAL |
155 | +SET @@session.innodb_corrupt_table_action='salvage'; |
156 | +ERROR HY000: Variable 'innodb_corrupt_table_action' is a GLOBAL variable and should be set with SET GLOBAL |
157 | +SET global innodb_corrupt_table_action=1.1; |
158 | +ERROR 42000: Incorrect argument type to variable 'innodb_corrupt_table_action' |
159 | +SET global innodb_corrupt_table_action=1e1; |
160 | +ERROR 42000: Incorrect argument type to variable 'innodb_corrupt_table_action' |
161 | +SET global innodb_corrupt_table_action='foo'; |
162 | +ERROR 42000: Variable 'innodb_corrupt_table_action' can't be set to the value of 'foo' |
163 | +SET global innodb_corrupt_table_action=-2; |
164 | +ERROR 42000: Variable 'innodb_corrupt_table_action' can't be set to the value of '-2' |
165 | +SET @@global.innodb_corrupt_table_action = @saved_val; |
166 | |
167 | === modified file 'Percona-Server/mysql-test/suite/sys_vars/r/innodb_flush_neighbor_pages_basic.result' |
168 | --- Percona-Server/mysql-test/suite/sys_vars/r/innodb_flush_neighbor_pages_basic.result 2012-04-18 23:26:11 +0000 |
169 | +++ Percona-Server/mysql-test/suite/sys_vars/r/innodb_flush_neighbor_pages_basic.result 2012-08-21 13:01:22 +0000 |
170 | @@ -1,3 +1,79 @@ |
171 | -SELECT @@global.innodb_flush_neighbor_pages; |
172 | -@@global.innodb_flush_neighbor_pages |
173 | -area |
174 | +SET @saved_val = @@global.innodb_flush_neighbor_pages; |
175 | +SELECT @@global.innodb_flush_neighbor_pages IN ('none', 'area', 'cont', '0', '1', '2'); |
176 | +@@global.innodb_flush_neighbor_pages IN ('none', 'area', 'cont', '0', '1', '2') |
177 | +1 |
178 | +SELECT @@session.innodb_flush_neighbor_pages; |
179 | +ERROR HY000: Variable 'innodb_flush_neighbor_pages' is a GLOBAL variable |
180 | +SET GLOBAL innodb_flush_neighbor_pages='none'; |
181 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
182 | +@@GLOBAL.innodb_flush_neighbor_pages |
183 | +none |
184 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
185 | +VARIABLE_NAME VARIABLE_VALUE |
186 | +INNODB_FLUSH_NEIGHBOR_PAGES none |
187 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
188 | +VARIABLE_NAME VARIABLE_VALUE |
189 | +INNODB_FLUSH_NEIGHBOR_PAGES none |
190 | +SET GLOBAL innodb_flush_neighbor_pages='area'; |
191 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
192 | +@@GLOBAL.innodb_flush_neighbor_pages |
193 | +area |
194 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
195 | +VARIABLE_NAME VARIABLE_VALUE |
196 | +INNODB_FLUSH_NEIGHBOR_PAGES area |
197 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
198 | +VARIABLE_NAME VARIABLE_VALUE |
199 | +INNODB_FLUSH_NEIGHBOR_PAGES area |
200 | +SET GLOBAL innodb_flush_neighbor_pages='cont'; |
201 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
202 | +@@GLOBAL.innodb_flush_neighbor_pages |
203 | +cont |
204 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
205 | +VARIABLE_NAME VARIABLE_VALUE |
206 | +INNODB_FLUSH_NEIGHBOR_PAGES cont |
207 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
208 | +VARIABLE_NAME VARIABLE_VALUE |
209 | +INNODB_FLUSH_NEIGHBOR_PAGES cont |
210 | +SET GLOBAL innodb_flush_neighbor_pages='0'; |
211 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
212 | +@@GLOBAL.innodb_flush_neighbor_pages |
213 | +none |
214 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
215 | +VARIABLE_NAME VARIABLE_VALUE |
216 | +INNODB_FLUSH_NEIGHBOR_PAGES none |
217 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
218 | +VARIABLE_NAME VARIABLE_VALUE |
219 | +INNODB_FLUSH_NEIGHBOR_PAGES none |
220 | +SET GLOBAL innodb_flush_neighbor_pages='1'; |
221 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
222 | +@@GLOBAL.innodb_flush_neighbor_pages |
223 | +area |
224 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
225 | +VARIABLE_NAME VARIABLE_VALUE |
226 | +INNODB_FLUSH_NEIGHBOR_PAGES area |
227 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
228 | +VARIABLE_NAME VARIABLE_VALUE |
229 | +INNODB_FLUSH_NEIGHBOR_PAGES area |
230 | +SET GLOBAL innodb_flush_neighbor_pages='2'; |
231 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
232 | +@@GLOBAL.innodb_flush_neighbor_pages |
233 | +cont |
234 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
235 | +VARIABLE_NAME VARIABLE_VALUE |
236 | +INNODB_FLUSH_NEIGHBOR_PAGES cont |
237 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
238 | +VARIABLE_NAME VARIABLE_VALUE |
239 | +INNODB_FLUSH_NEIGHBOR_PAGES cont |
240 | +SET SESSION innodb_flush_neighbor_pages='area'; |
241 | +ERROR HY000: Variable 'innodb_flush_neighbor_pages' is a GLOBAL variable and should be set with SET GLOBAL |
242 | +SET @@session.innodb_flush_neighbor_pages='cont'; |
243 | +ERROR HY000: Variable 'innodb_flush_neighbor_pages' is a GLOBAL variable and should be set with SET GLOBAL |
244 | +SET global innodb_flush_neighbor_pages=1.1; |
245 | +ERROR 42000: Incorrect argument type to variable 'innodb_flush_neighbor_pages' |
246 | +SET global innodb_flush_neighbor_pages=1e1; |
247 | +ERROR 42000: Incorrect argument type to variable 'innodb_flush_neighbor_pages' |
248 | +SET global innodb_flush_neighbor_pages='foo'; |
249 | +ERROR 42000: Variable 'innodb_flush_neighbor_pages' can't be set to the value of 'foo' |
250 | +SET global innodb_flush_neighbor_pages=-2; |
251 | +ERROR 42000: Variable 'innodb_flush_neighbor_pages' can't be set to the value of '-2' |
252 | +SET @@global.innodb_flush_neighbor_pages = @saved_val; |
253 | |
254 | === added file 'Percona-Server/mysql-test/suite/sys_vars/r/innodb_flush_neighbor_pages_startup.result' |
255 | --- Percona-Server/mysql-test/suite/sys_vars/r/innodb_flush_neighbor_pages_startup.result 1970-01-01 00:00:00 +0000 |
256 | +++ Percona-Server/mysql-test/suite/sys_vars/r/innodb_flush_neighbor_pages_startup.result 2012-08-21 13:01:22 +0000 |
257 | @@ -0,0 +1,18 @@ |
258 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
259 | +@@GLOBAL.innodb_flush_neighbor_pages |
260 | +none |
261 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
262 | +@@GLOBAL.innodb_flush_neighbor_pages |
263 | +area |
264 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
265 | +@@GLOBAL.innodb_flush_neighbor_pages |
266 | +cont |
267 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
268 | +@@GLOBAL.innodb_flush_neighbor_pages |
269 | +none |
270 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
271 | +@@GLOBAL.innodb_flush_neighbor_pages |
272 | +area |
273 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
274 | +@@GLOBAL.innodb_flush_neighbor_pages |
275 | +cont |
276 | |
277 | === modified file 'Percona-Server/mysql-test/suite/sys_vars/r/innodb_read_ahead_basic.result' |
278 | --- Percona-Server/mysql-test/suite/sys_vars/r/innodb_read_ahead_basic.result 2012-04-18 23:26:11 +0000 |
279 | +++ Percona-Server/mysql-test/suite/sys_vars/r/innodb_read_ahead_basic.result 2012-08-21 13:01:22 +0000 |
280 | @@ -1,3 +1,99 @@ |
281 | -SELECT @@global.innodb_read_ahead; |
282 | -@@global.innodb_read_ahead |
283 | -linear |
284 | +SET @saved_val = @@global.innodb_read_ahead; |
285 | +SELECT @@global.innodb_read_ahead IN ('none', 'random', 'linear', 'both', '0', '1', '2', '3'); |
286 | +@@global.innodb_read_ahead IN ('none', 'random', 'linear', 'both', '0', '1', '2', '3') |
287 | +1 |
288 | +SELECT @@session.innodb_read_ahead; |
289 | +ERROR HY000: Variable 'innodb_read_ahead' is a GLOBAL variable |
290 | +SET GLOBAL innodb_read_ahead='none'; |
291 | +SELECT @@GLOBAL.innodb_read_ahead; |
292 | +@@GLOBAL.innodb_read_ahead |
293 | +none |
294 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
295 | +VARIABLE_NAME VARIABLE_VALUE |
296 | +INNODB_READ_AHEAD none |
297 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
298 | +VARIABLE_NAME VARIABLE_VALUE |
299 | +INNODB_READ_AHEAD none |
300 | +SET GLOBAL innodb_read_ahead='random'; |
301 | +SELECT @@GLOBAL.innodb_read_ahead; |
302 | +@@GLOBAL.innodb_read_ahead |
303 | +random |
304 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
305 | +VARIABLE_NAME VARIABLE_VALUE |
306 | +INNODB_READ_AHEAD random |
307 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
308 | +VARIABLE_NAME VARIABLE_VALUE |
309 | +INNODB_READ_AHEAD random |
310 | +SET GLOBAL innodb_read_ahead='linear'; |
311 | +SELECT @@GLOBAL.innodb_read_ahead; |
312 | +@@GLOBAL.innodb_read_ahead |
313 | +linear |
314 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
315 | +VARIABLE_NAME VARIABLE_VALUE |
316 | +INNODB_READ_AHEAD linear |
317 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
318 | +VARIABLE_NAME VARIABLE_VALUE |
319 | +INNODB_READ_AHEAD linear |
320 | +SET GLOBAL innodb_read_ahead='both'; |
321 | +SELECT @@GLOBAL.innodb_read_ahead; |
322 | +@@GLOBAL.innodb_read_ahead |
323 | +both |
324 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
325 | +VARIABLE_NAME VARIABLE_VALUE |
326 | +INNODB_READ_AHEAD both |
327 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
328 | +VARIABLE_NAME VARIABLE_VALUE |
329 | +INNODB_READ_AHEAD both |
330 | +SET GLOBAL innodb_read_ahead='0'; |
331 | +SELECT @@GLOBAL.innodb_read_ahead; |
332 | +@@GLOBAL.innodb_read_ahead |
333 | +none |
334 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
335 | +VARIABLE_NAME VARIABLE_VALUE |
336 | +INNODB_READ_AHEAD none |
337 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
338 | +VARIABLE_NAME VARIABLE_VALUE |
339 | +INNODB_READ_AHEAD none |
340 | +SET GLOBAL innodb_read_ahead='1'; |
341 | +SELECT @@GLOBAL.innodb_read_ahead; |
342 | +@@GLOBAL.innodb_read_ahead |
343 | +random |
344 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
345 | +VARIABLE_NAME VARIABLE_VALUE |
346 | +INNODB_READ_AHEAD random |
347 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
348 | +VARIABLE_NAME VARIABLE_VALUE |
349 | +INNODB_READ_AHEAD random |
350 | +SET GLOBAL innodb_read_ahead='2'; |
351 | +SELECT @@GLOBAL.innodb_read_ahead; |
352 | +@@GLOBAL.innodb_read_ahead |
353 | +linear |
354 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
355 | +VARIABLE_NAME VARIABLE_VALUE |
356 | +INNODB_READ_AHEAD linear |
357 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
358 | +VARIABLE_NAME VARIABLE_VALUE |
359 | +INNODB_READ_AHEAD linear |
360 | +SET GLOBAL innodb_read_ahead='3'; |
361 | +SELECT @@GLOBAL.innodb_read_ahead; |
362 | +@@GLOBAL.innodb_read_ahead |
363 | +both |
364 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
365 | +VARIABLE_NAME VARIABLE_VALUE |
366 | +INNODB_READ_AHEAD both |
367 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
368 | +VARIABLE_NAME VARIABLE_VALUE |
369 | +INNODB_READ_AHEAD both |
370 | +SET SESSION innodb_read_ahead='linear'; |
371 | +ERROR HY000: Variable 'innodb_read_ahead' is a GLOBAL variable and should be set with SET GLOBAL |
372 | +SET @@session.innodb_read_ahead='both'; |
373 | +ERROR HY000: Variable 'innodb_read_ahead' is a GLOBAL variable and should be set with SET GLOBAL |
374 | +SET global innodb_read_ahead=1.1; |
375 | +ERROR 42000: Incorrect argument type to variable 'innodb_read_ahead' |
376 | +SET global innodb_read_ahead=1e1; |
377 | +ERROR 42000: Incorrect argument type to variable 'innodb_read_ahead' |
378 | +SET global innodb_read_ahead='foo'; |
379 | +ERROR 42000: Variable 'innodb_read_ahead' can't be set to the value of 'foo' |
380 | +SET global innodb_read_ahead=-2; |
381 | +ERROR 42000: Variable 'innodb_read_ahead' can't be set to the value of '-2' |
382 | +SET @@global.innodb_read_ahead = @saved_val; |
383 | |
384 | === added file 'Percona-Server/mysql-test/suite/sys_vars/r/innodb_read_ahead_startup.result' |
385 | --- Percona-Server/mysql-test/suite/sys_vars/r/innodb_read_ahead_startup.result 1970-01-01 00:00:00 +0000 |
386 | +++ Percona-Server/mysql-test/suite/sys_vars/r/innodb_read_ahead_startup.result 2012-08-21 13:01:22 +0000 |
387 | @@ -0,0 +1,24 @@ |
388 | +SELECT @@GLOBAL.innodb_read_ahead; |
389 | +@@GLOBAL.innodb_read_ahead |
390 | +none |
391 | +SELECT @@GLOBAL.innodb_read_ahead; |
392 | +@@GLOBAL.innodb_read_ahead |
393 | +random |
394 | +SELECT @@GLOBAL.innodb_read_ahead; |
395 | +@@GLOBAL.innodb_read_ahead |
396 | +linear |
397 | +SELECT @@GLOBAL.innodb_read_ahead; |
398 | +@@GLOBAL.innodb_read_ahead |
399 | +both |
400 | +SELECT @@GLOBAL.innodb_read_ahead; |
401 | +@@GLOBAL.innodb_read_ahead |
402 | +none |
403 | +SELECT @@GLOBAL.innodb_read_ahead; |
404 | +@@GLOBAL.innodb_read_ahead |
405 | +random |
406 | +SELECT @@GLOBAL.innodb_read_ahead; |
407 | +@@GLOBAL.innodb_read_ahead |
408 | +linear |
409 | +SELECT @@GLOBAL.innodb_read_ahead; |
410 | +@@GLOBAL.innodb_read_ahead |
411 | +both |
412 | |
413 | === modified file 'Percona-Server/mysql-test/suite/sys_vars/t/innodb_adaptive_flushing_method_basic.test' |
414 | --- Percona-Server/mysql-test/suite/sys_vars/t/innodb_adaptive_flushing_method_basic.test 2012-04-18 23:26:11 +0000 |
415 | +++ Percona-Server/mysql-test/suite/sys_vars/t/innodb_adaptive_flushing_method_basic.test 2012-08-21 13:01:22 +0000 |
416 | @@ -1,1 +1,62 @@ |
417 | -SELECT @@global.innodb_adaptive_flushing_method; |
418 | +# Tests for innodb_adaptive_flushing_method variable |
419 | + |
420 | +--source include/have_innodb.inc |
421 | + |
422 | +SET @saved_val = @@global.innodb_adaptive_flushing_method; |
423 | + |
424 | +# Valid values |
425 | +SELECT @@global.innodb_adaptive_flushing_method IN ('native', 'estimate', 'keep_average', '0', '1', '2'); |
426 | + |
427 | +--error ER_INCORRECT_GLOBAL_LOCAL_VAR |
428 | +SELECT @@session.innodb_adaptive_flushing_method; |
429 | + |
430 | +# Test its writability |
431 | +SET GLOBAL innodb_adaptive_flushing_method='native'; |
432 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
433 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
434 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
435 | + |
436 | +SET GLOBAL innodb_adaptive_flushing_method='estimate'; |
437 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
438 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
439 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
440 | + |
441 | +SET GLOBAL innodb_adaptive_flushing_method='keep_average'; |
442 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
443 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
444 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
445 | + |
446 | +SET GLOBAL innodb_adaptive_flushing_method='0'; |
447 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
448 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
449 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
450 | + |
451 | +SET GLOBAL innodb_adaptive_flushing_method='1'; |
452 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
453 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
454 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
455 | + |
456 | +SET GLOBAL innodb_adaptive_flushing_method='2'; |
457 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
458 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
459 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_adaptive_flushing_method'; |
460 | + |
461 | +# Cannot set it for session |
462 | + |
463 | +--error ER_GLOBAL_VARIABLE |
464 | +SET SESSION innodb_adaptive_flushing_method='estimate'; |
465 | +--error ER_GLOBAL_VARIABLE |
466 | +SET @@session.innodb_adaptive_flushing_method='keep_average'; |
467 | + |
468 | +# Incorrect types and values |
469 | +--error ER_WRONG_TYPE_FOR_VAR |
470 | +SET global innodb_adaptive_flushing_method=1.1; |
471 | +--error ER_WRONG_TYPE_FOR_VAR |
472 | +SET global innodb_adaptive_flushing_method=1e1; |
473 | +--error ER_WRONG_VALUE_FOR_VAR |
474 | +SET global innodb_adaptive_flushing_method='foo'; |
475 | +--error ER_WRONG_VALUE_FOR_VAR |
476 | +SET global innodb_adaptive_flushing_method=-2; |
477 | + |
478 | +# Cleanup |
479 | +SET @@global.innodb_adaptive_flushing_method = @saved_val; |
480 | |
481 | === added file 'Percona-Server/mysql-test/suite/sys_vars/t/innodb_adaptive_flushing_method_startup.test' |
482 | --- Percona-Server/mysql-test/suite/sys_vars/t/innodb_adaptive_flushing_method_startup.test 1970-01-01 00:00:00 +0000 |
483 | +++ Percona-Server/mysql-test/suite/sys_vars/t/innodb_adaptive_flushing_method_startup.test 2012-08-21 13:01:22 +0000 |
484 | @@ -0,0 +1,57 @@ |
485 | +# Test setting innodb_adaptive_flushing_method at startup time |
486 | + |
487 | +--source include/have_innodb.inc |
488 | + |
489 | +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
490 | +--shutdown_server 10 |
491 | +--source include/wait_until_disconnected.inc |
492 | +--enable_reconnect |
493 | +--exec echo "restart:--innodb_adaptive_flushing_method=native" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
494 | +--source include/wait_until_connected_again.inc |
495 | + |
496 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
497 | + |
498 | +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
499 | +--shutdown_server 10 |
500 | +--source include/wait_until_disconnected.inc |
501 | +--enable_reconnect |
502 | +--exec echo "restart:--innodb_adaptive_flushing_method=estimate" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
503 | +--source include/wait_until_connected_again.inc |
504 | + |
505 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
506 | + |
507 | +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
508 | +--shutdown_server 10 |
509 | +--source include/wait_until_disconnected.inc |
510 | +--enable_reconnect |
511 | +--exec echo "restart:--innodb_adaptive_flushing_method=keep_average" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
512 | +--source include/wait_until_connected_again.inc |
513 | + |
514 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
515 | + |
516 | +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
517 | +--shutdown_server 10 |
518 | +--source include/wait_until_disconnected.inc |
519 | +--enable_reconnect |
520 | +--exec echo "restart:--innodb_adaptive_flushing_method=0" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
521 | +--source include/wait_until_connected_again.inc |
522 | + |
523 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
524 | + |
525 | +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
526 | +--shutdown_server 10 |
527 | +--source include/wait_until_disconnected.inc |
528 | +--enable_reconnect |
529 | +--exec echo "restart:--innodb_adaptive_flushing_method=1" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
530 | +--source include/wait_until_connected_again.inc |
531 | + |
532 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
533 | + |
534 | +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
535 | +--shutdown_server 10 |
536 | +--source include/wait_until_disconnected.inc |
537 | +--enable_reconnect |
538 | +--exec echo "restart:--innodb_adaptive_flushing_method=2" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
539 | +--source include/wait_until_connected_again.inc |
540 | + |
541 | +SELECT @@GLOBAL.innodb_adaptive_flushing_method; |
542 | |
543 | === modified file 'Percona-Server/mysql-test/suite/sys_vars/t/innodb_corrupt_table_action_basic.test' |
544 | --- Percona-Server/mysql-test/suite/sys_vars/t/innodb_corrupt_table_action_basic.test 2012-04-18 23:26:11 +0000 |
545 | +++ Percona-Server/mysql-test/suite/sys_vars/t/innodb_corrupt_table_action_basic.test 2012-08-21 13:01:22 +0000 |
546 | @@ -1,1 +1,47 @@ |
547 | -SELECT @@global.innodb_corrupt_table_action; |
548 | +# Tests for innodb_corrupt_table_action variable |
549 | + |
550 | +--source include/have_innodb.inc |
551 | + |
552 | +SET @saved_val = @@global.innodb_corrupt_table_action; |
553 | + |
554 | +# Valid values |
555 | +SELECT @@global.innodb_corrupt_table_action IN ('assert', 'warn', 'salvage'); |
556 | + |
557 | +--error ER_INCORRECT_GLOBAL_LOCAL_VAR |
558 | +SELECT @@session.innodb_corrupt_table_action; |
559 | + |
560 | +# Test its writability |
561 | +SET GLOBAL innodb_corrupt_table_action='assert'; |
562 | +SELECT @@GLOBAL.innodb_corrupt_table_action; |
563 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_corrupt_table_action'; |
564 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_corrupt_table_action'; |
565 | + |
566 | +SET GLOBAL innodb_corrupt_table_action='warn'; |
567 | +SELECT @@GLOBAL.innodb_corrupt_table_action; |
568 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_corrupt_table_action'; |
569 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_corrupt_table_action'; |
570 | + |
571 | +SET GLOBAL innodb_corrupt_table_action='salvage'; |
572 | +SELECT @@GLOBAL.innodb_corrupt_table_action; |
573 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_corrupt_table_action'; |
574 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_corrupt_table_action'; |
575 | + |
576 | +# Cannot set it for session |
577 | + |
578 | +--error ER_GLOBAL_VARIABLE |
579 | +SET SESSION innodb_corrupt_table_action='warn'; |
580 | +--error ER_GLOBAL_VARIABLE |
581 | +SET @@session.innodb_corrupt_table_action='salvage'; |
582 | + |
583 | +# Incorrect types and values |
584 | +--error ER_WRONG_TYPE_FOR_VAR |
585 | +SET global innodb_corrupt_table_action=1.1; |
586 | +--error ER_WRONG_TYPE_FOR_VAR |
587 | +SET global innodb_corrupt_table_action=1e1; |
588 | +--error ER_WRONG_VALUE_FOR_VAR |
589 | +SET global innodb_corrupt_table_action='foo'; |
590 | +--error ER_WRONG_VALUE_FOR_VAR |
591 | +SET global innodb_corrupt_table_action=-2; |
592 | + |
593 | +# Cleanup |
594 | +SET @@global.innodb_corrupt_table_action = @saved_val; |
595 | |
596 | === modified file 'Percona-Server/mysql-test/suite/sys_vars/t/innodb_flush_neighbor_pages_basic.test' |
597 | --- Percona-Server/mysql-test/suite/sys_vars/t/innodb_flush_neighbor_pages_basic.test 2012-04-18 23:26:11 +0000 |
598 | +++ Percona-Server/mysql-test/suite/sys_vars/t/innodb_flush_neighbor_pages_basic.test 2012-08-21 13:01:22 +0000 |
599 | @@ -1,1 +1,62 @@ |
600 | -SELECT @@global.innodb_flush_neighbor_pages; |
601 | +# Tests for innodb_flush_neighbor_pages variable |
602 | + |
603 | +--source include/have_innodb.inc |
604 | + |
605 | +SET @saved_val = @@global.innodb_flush_neighbor_pages; |
606 | + |
607 | +# Valid values |
608 | +SELECT @@global.innodb_flush_neighbor_pages IN ('none', 'area', 'cont', '0', '1', '2'); |
609 | + |
610 | +--error ER_INCORRECT_GLOBAL_LOCAL_VAR |
611 | +SELECT @@session.innodb_flush_neighbor_pages; |
612 | + |
613 | +# Test its writability |
614 | +SET GLOBAL innodb_flush_neighbor_pages='none'; |
615 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
616 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
617 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
618 | + |
619 | +SET GLOBAL innodb_flush_neighbor_pages='area'; |
620 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
621 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
622 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
623 | + |
624 | +SET GLOBAL innodb_flush_neighbor_pages='cont'; |
625 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
626 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
627 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
628 | + |
629 | +SET GLOBAL innodb_flush_neighbor_pages='0'; |
630 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
631 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
632 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
633 | + |
634 | +SET GLOBAL innodb_flush_neighbor_pages='1'; |
635 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
636 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
637 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
638 | + |
639 | +SET GLOBAL innodb_flush_neighbor_pages='2'; |
640 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
641 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
642 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_flush_neighbor_pages'; |
643 | + |
644 | +# Cannot set it for session |
645 | + |
646 | +--error ER_GLOBAL_VARIABLE |
647 | +SET SESSION innodb_flush_neighbor_pages='area'; |
648 | +--error ER_GLOBAL_VARIABLE |
649 | +SET @@session.innodb_flush_neighbor_pages='cont'; |
650 | + |
651 | +# Incorrect types and values |
652 | +--error ER_WRONG_TYPE_FOR_VAR |
653 | +SET global innodb_flush_neighbor_pages=1.1; |
654 | +--error ER_WRONG_TYPE_FOR_VAR |
655 | +SET global innodb_flush_neighbor_pages=1e1; |
656 | +--error ER_WRONG_VALUE_FOR_VAR |
657 | +SET global innodb_flush_neighbor_pages='foo'; |
658 | +--error ER_WRONG_VALUE_FOR_VAR |
659 | +SET global innodb_flush_neighbor_pages=-2; |
660 | + |
661 | +# Cleanup |
662 | +SET @@global.innodb_flush_neighbor_pages = @saved_val; |
663 | |
664 | === added file 'Percona-Server/mysql-test/suite/sys_vars/t/innodb_flush_neighbor_pages_startup.test' |
665 | --- Percona-Server/mysql-test/suite/sys_vars/t/innodb_flush_neighbor_pages_startup.test 1970-01-01 00:00:00 +0000 |
666 | +++ Percona-Server/mysql-test/suite/sys_vars/t/innodb_flush_neighbor_pages_startup.test 2012-08-21 13:01:22 +0000 |
667 | @@ -0,0 +1,57 @@ |
668 | +# Test setting innodb_flush_neighbor_pages at startup time (bug 1039384) |
669 | + |
670 | +--source include/have_innodb.inc |
671 | + |
672 | +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
673 | +--shutdown_server 10 |
674 | +--source include/wait_until_disconnected.inc |
675 | +--enable_reconnect |
676 | +--exec echo "restart:--innodb_flush_neighbor_pages=none" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
677 | +--source include/wait_until_connected_again.inc |
678 | + |
679 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
680 | + |
681 | +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
682 | +--shutdown_server 10 |
683 | +--source include/wait_until_disconnected.inc |
684 | +--enable_reconnect |
685 | +--exec echo "restart:--innodb_flush_neighbor_pages=area" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
686 | +--source include/wait_until_connected_again.inc |
687 | + |
688 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
689 | + |
690 | +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
691 | +--shutdown_server 10 |
692 | +--source include/wait_until_disconnected.inc |
693 | +--enable_reconnect |
694 | +--exec echo "restart:--innodb_flush_neighbor_pages=cont" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
695 | +--source include/wait_until_connected_again.inc |
696 | + |
697 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
698 | + |
699 | +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
700 | +--shutdown_server 10 |
701 | +--source include/wait_until_disconnected.inc |
702 | +--enable_reconnect |
703 | +--exec echo "restart:--innodb_flush_neighbor_pages=0" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
704 | +--source include/wait_until_connected_again.inc |
705 | + |
706 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
707 | + |
708 | +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
709 | +--shutdown_server 10 |
710 | +--source include/wait_until_disconnected.inc |
711 | +--enable_reconnect |
712 | +--exec echo "restart:--innodb_flush_neighbor_pages=1" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
713 | +--source include/wait_until_connected_again.inc |
714 | + |
715 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
716 | + |
717 | +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
718 | +--shutdown_server 10 |
719 | +--source include/wait_until_disconnected.inc |
720 | +--enable_reconnect |
721 | +--exec echo "restart:--innodb_flush_neighbor_pages=2" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
722 | +--source include/wait_until_connected_again.inc |
723 | + |
724 | +SELECT @@GLOBAL.innodb_flush_neighbor_pages; |
725 | |
726 | === modified file 'Percona-Server/mysql-test/suite/sys_vars/t/innodb_read_ahead_basic.test' |
727 | --- Percona-Server/mysql-test/suite/sys_vars/t/innodb_read_ahead_basic.test 2012-04-18 23:26:11 +0000 |
728 | +++ Percona-Server/mysql-test/suite/sys_vars/t/innodb_read_ahead_basic.test 2012-08-21 13:01:22 +0000 |
729 | @@ -1,1 +1,72 @@ |
730 | -SELECT @@global.innodb_read_ahead; |
731 | +# Tests for innodb_read_ahead variable |
732 | + |
733 | +--source include/have_innodb.inc |
734 | + |
735 | +SET @saved_val = @@global.innodb_read_ahead; |
736 | + |
737 | +# Valid values |
738 | +SELECT @@global.innodb_read_ahead IN ('none', 'random', 'linear', 'both', '0', '1', '2', '3'); |
739 | + |
740 | +--error ER_INCORRECT_GLOBAL_LOCAL_VAR |
741 | +SELECT @@session.innodb_read_ahead; |
742 | + |
743 | +# Test its writability |
744 | +SET GLOBAL innodb_read_ahead='none'; |
745 | +SELECT @@GLOBAL.innodb_read_ahead; |
746 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
747 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
748 | + |
749 | +SET GLOBAL innodb_read_ahead='random'; |
750 | +SELECT @@GLOBAL.innodb_read_ahead; |
751 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
752 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
753 | + |
754 | +SET GLOBAL innodb_read_ahead='linear'; |
755 | +SELECT @@GLOBAL.innodb_read_ahead; |
756 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
757 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
758 | + |
759 | +SET GLOBAL innodb_read_ahead='both'; |
760 | +SELECT @@GLOBAL.innodb_read_ahead; |
761 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
762 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
763 | + |
764 | +SET GLOBAL innodb_read_ahead='0'; |
765 | +SELECT @@GLOBAL.innodb_read_ahead; |
766 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
767 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
768 | + |
769 | +SET GLOBAL innodb_read_ahead='1'; |
770 | +SELECT @@GLOBAL.innodb_read_ahead; |
771 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
772 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
773 | + |
774 | +SET GLOBAL innodb_read_ahead='2'; |
775 | +SELECT @@GLOBAL.innodb_read_ahead; |
776 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
777 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
778 | + |
779 | +SET GLOBAL innodb_read_ahead='3'; |
780 | +SELECT @@GLOBAL.innodb_read_ahead; |
781 | +SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
782 | +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_read_ahead'; |
783 | + |
784 | +# Cannot set it for session |
785 | + |
786 | +--error ER_GLOBAL_VARIABLE |
787 | +SET SESSION innodb_read_ahead='linear'; |
788 | +--error ER_GLOBAL_VARIABLE |
789 | +SET @@session.innodb_read_ahead='both'; |
790 | + |
791 | +# Incorrect types and values |
792 | +--error ER_WRONG_TYPE_FOR_VAR |
793 | +SET global innodb_read_ahead=1.1; |
794 | +--error ER_WRONG_TYPE_FOR_VAR |
795 | +SET global innodb_read_ahead=1e1; |
796 | +--error ER_WRONG_VALUE_FOR_VAR |
797 | +SET global innodb_read_ahead='foo'; |
798 | +--error ER_WRONG_VALUE_FOR_VAR |
799 | +SET global innodb_read_ahead=-2; |
800 | + |
801 | +# Cleanup |
802 | +SET @@global.innodb_read_ahead = @saved_val; |
803 | |
804 | === added file 'Percona-Server/mysql-test/suite/sys_vars/t/innodb_read_ahead_startup.test' |
805 | --- Percona-Server/mysql-test/suite/sys_vars/t/innodb_read_ahead_startup.test 1970-01-01 00:00:00 +0000 |
806 | +++ Percona-Server/mysql-test/suite/sys_vars/t/innodb_read_ahead_startup.test 2012-08-21 13:01:22 +0000 |
807 | @@ -0,0 +1,75 @@ |
808 | +# Test setting innodb_read_ahead at startup time |
809 | + |
810 | +--source include/have_innodb.inc |
811 | + |
812 | +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
813 | +--shutdown_server 10 |
814 | +--source include/wait_until_disconnected.inc |
815 | +--enable_reconnect |
816 | +--exec echo "restart:--innodb_read_ahead=none" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
817 | +--source include/wait_until_connected_again.inc |
818 | + |
819 | +SELECT @@GLOBAL.innodb_read_ahead; |
820 | + |
821 | +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
822 | +--shutdown_server 10 |
823 | +--source include/wait_until_disconnected.inc |
824 | +--enable_reconnect |
825 | +--exec echo "restart:--innodb_read_ahead=random" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
826 | +--source include/wait_until_connected_again.inc |
827 | + |
828 | +SELECT @@GLOBAL.innodb_read_ahead; |
829 | + |
830 | +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
831 | +--shutdown_server 10 |
832 | +--source include/wait_until_disconnected.inc |
833 | +--enable_reconnect |
834 | +--exec echo "restart:--innodb_read_ahead=linear" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
835 | +--source include/wait_until_connected_again.inc |
836 | + |
837 | +SELECT @@GLOBAL.innodb_read_ahead; |
838 | + |
839 | +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
840 | +--shutdown_server 10 |
841 | +--source include/wait_until_disconnected.inc |
842 | +--enable_reconnect |
843 | +--exec echo "restart:--innodb_read_ahead=both" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
844 | +--source include/wait_until_connected_again.inc |
845 | + |
846 | +SELECT @@GLOBAL.innodb_read_ahead; |
847 | + |
848 | +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
849 | +--shutdown_server 10 |
850 | +--source include/wait_until_disconnected.inc |
851 | +--enable_reconnect |
852 | +--exec echo "restart:--innodb_read_ahead=0" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
853 | +--source include/wait_until_connected_again.inc |
854 | + |
855 | +SELECT @@GLOBAL.innodb_read_ahead; |
856 | + |
857 | +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
858 | +--shutdown_server 10 |
859 | +--source include/wait_until_disconnected.inc |
860 | +--enable_reconnect |
861 | +--exec echo "restart:--innodb_read_ahead=1" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
862 | +--source include/wait_until_connected_again.inc |
863 | + |
864 | +SELECT @@GLOBAL.innodb_read_ahead; |
865 | + |
866 | +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
867 | +--shutdown_server 10 |
868 | +--source include/wait_until_disconnected.inc |
869 | +--enable_reconnect |
870 | +--exec echo "restart:--innodb_read_ahead=2" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
871 | +--source include/wait_until_connected_again.inc |
872 | + |
873 | +SELECT @@GLOBAL.innodb_read_ahead; |
874 | + |
875 | +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
876 | +--shutdown_server 10 |
877 | +--source include/wait_until_disconnected.inc |
878 | +--enable_reconnect |
879 | +--exec echo "restart:--innodb_read_ahead=3" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
880 | +--source include/wait_until_connected_again.inc |
881 | + |
882 | +SELECT @@GLOBAL.innodb_read_ahead; |
883 | |
884 | === modified file 'Percona-Server/storage/innobase/handler/ha_innodb.cc' |
885 | --- Percona-Server/storage/innobase/handler/ha_innodb.cc 2012-08-07 06:10:00 +0000 |
886 | +++ Percona-Server/storage/innobase/handler/ha_innodb.cc 2012-08-21 13:01:22 +0000 |
887 | @@ -2918,6 +2918,7 @@ |
888 | |
889 | srv_read_ahead &= 3; |
890 | srv_adaptive_flushing_method %= 3; |
891 | + srv_flush_neighbor_pages %= 3; |
892 | |
893 | srv_force_recovery = (ulint) innobase_force_recovery; |
894 | |
895 | @@ -12781,7 +12782,7 @@ |
896 | void* var_ptr, |
897 | const void* save) |
898 | { |
899 | - *(long *)var_ptr= (*(long *)save) % 4; |
900 | + *(long *)var_ptr= (*(long *)save) % 3; |
901 | } |
902 | const char *adaptive_flushing_method_names[]= |
903 | { |
Looks good to me.