1# Variable: innodb_redo_log_archive_dirs
2# Default : NULL
3# Scope   : GLOBAL
4# Dynamic : Yes
5
6## Save variable
7SET @innodb_redo_log_archive_dirs_sav= @@global.innodb_redo_log_archive_dirs;
8
9## Show default value
10SELECT @@global.innodb_redo_log_archive_dirs;
11
12## Valid cases
13## Syntax: semi-colon separated list of labeled path names.
14## Path names are not checked when the variable is set.
15#
16SET @@global.innodb_redo_log_archive_dirs="label1:/dir1";
17SELECT @@global.innodb_redo_log_archive_dirs;
18#
19SET @@global.innodb_redo_log_archive_dirs="label1:/dir1;label2:dir2";
20SELECT @@global.innodb_redo_log_archive_dirs;
21#
22## A single trailing semi-colon is allowed.
23#
24SET @@global.innodb_redo_log_archive_dirs="label1:/dir1;";
25SELECT @@global.innodb_redo_log_archive_dirs;
26#
27SET @@global.innodb_redo_log_archive_dirs="label1:dir1;label2:/dir2;";
28SELECT @@global.innodb_redo_log_archive_dirs;
29#
30## Label can be empty, but colon must exist.
31#
32SET @@global.innodb_redo_log_archive_dirs=":/dir1";
33SELECT @@global.innodb_redo_log_archive_dirs;
34#
35## Labels are not checked for uniqueness. Nor are path names.
36#
37SET @@global.innodb_redo_log_archive_dirs=":dir1;:dir1";
38SELECT @@global.innodb_redo_log_archive_dirs;
39#
40## Label can contain every character, but colon. Example label ";;;".
41#
42SET @@global.innodb_redo_log_archive_dirs=";;;:/dir1";
43SELECT @@global.innodb_redo_log_archive_dirs;
44#
45## Path can contain every character, but semi-colon. Example path ":::".
46#
47SET @@global.innodb_redo_log_archive_dirs="label::::";
48SELECT @@global.innodb_redo_log_archive_dirs;
49#
50## Example: Two times in a row label ";;;", path ":::", trailing semi-colon.
51#
52SET @@global.innodb_redo_log_archive_dirs=";;;::::;;;;::::;";
53SELECT @@global.innodb_redo_log_archive_dirs;
54#
55## Variable can be empty.
56#
57SET @@global.innodb_redo_log_archive_dirs="";
58SELECT @@global.innodb_redo_log_archive_dirs;
59#
60## Variable can be NULL.
61#
62SET @@global.innodb_redo_log_archive_dirs=NULL;
63SELECT @@global.innodb_redo_log_archive_dirs;
64#
65## Variable can be persisted.
66#
67SET PERSIST innodb_redo_log_archive_dirs="label1:/dir1";
68SELECT @@global.innodb_redo_log_archive_dirs;
69RESET PERSIST innodb_redo_log_archive_dirs;
70
71## Invalid cases
72--error ER_GLOBAL_VARIABLE
73SET innodb_redo_log_archive_dirs="label1:/dir1";
74--error ER_GLOBAL_VARIABLE
75SET @@local.innodb_redo_log_archive_dirs="label1:/dir1";
76--error ER_GLOBAL_VARIABLE
77SET @@innodb_redo_log_archive_dirs="label1:/dir1";
78--error ER_GLOBAL_VARIABLE
79SET @@session.innodb_redo_log_archive_dirs="label1:/dir1";
80
81## Invalid cases
82# Label missing
83--error ER_WRONG_VALUE_FOR_VAR
84SET @@global.innodb_redo_log_archive_dirs="/dir1";
85## Path missing.
86--error ER_WRONG_VALUE_FOR_VAR
87SET @@global.innodb_redo_log_archive_dirs=":";
88--error ER_WRONG_VALUE_FOR_VAR
89SET @@global.innodb_redo_log_archive_dirs="l1:";
90# (Second) Label missing
91--error ER_WRONG_VALUE_FOR_VAR
92SET @@global.innodb_redo_log_archive_dirs=":d1;;";
93--error ER_WRONG_VALUE_FOR_VAR
94SET @@global.innodb_redo_log_archive_dirs=":d1;d2";
95# (Second) Path missing
96--error ER_WRONG_VALUE_FOR_VAR
97SET @@global.innodb_redo_log_archive_dirs="l1:d1;l2:";
98# (Second) Path missing
99--error ER_WRONG_VALUE_FOR_VAR
100SET @@global.innodb_redo_log_archive_dirs="l1:d1;l2:;";
101
102# Repeated execution of SET @@global.innodb_redo_log_archive_dirs
103--disable_warnings
104DROP PROCEDURE IF EXISTS test.innodb_redo_log_archive_dirs;
105--enable_warnings
106DELIMITER |;
107CREATE PROCEDURE test.innodb_redo_log_archive_dirs (IN start BIGINT, IN nam CHAR(20))
108BEGIN
109  DECLARE CONTINUE HANDLER FOR 13178 SET @x2 = 1;
110  SET @idx=start;
111  SET @n=nam;
112  WHILE (@idx > 0) DO
113    SET @s=CONCAT("SET @@global.innodb_redo_log_archive_dirs='1:../www/",@n,@idx,"'");
114    Prepare stmt from @s;
115    Execute stmt;
116    SET @@global.innodb_redo_log_archive_dirs="";
117    SET @idx = @idx - 1;
118  END WHILE;
119END|
120DELIMITER ;|
121CALL test.innodb_redo_log_archive_dirs(100,'s');
122DROP PROCEDURE test.innodb_redo_log_archive_dirs;
123
124## Restore variable
125SET @@global.innodb_redo_log_archive_dirs= @innodb_redo_log_archive_dirs_sav;
126