1SET @session_max_recursion_depth = @@SESSION.max_sp_recursion_depth;
2'#--------------------FN_DYNVARS_099_01-------------------------#'
3CONNECT  test_con1,localhost,root,,;
4connection test_con1;
5SET @@session.max_sp_recursion_depth = 10;
6SELECT @@session.max_sp_recursion_depth;
7@@session.max_sp_recursion_depth
810
9DROP PROCEDURE IF EXISTS sp_addRecords;
10CREATE PROCEDURE sp_addRecords (IN var1 INT,IN var2 INT)
11BEGIN
12SELECT var1,var2;
13IF var1 < var2 THEN
14CALL sp_addRecords(var1+1,var2);
15SELECT var1,var2;
16END IF;
17END //
18CALL sp_addRecords(0,8);
19var1	var2
200	8
21var1	var2
221	8
23var1	var2
242	8
25var1	var2
263	8
27var1	var2
284	8
29var1	var2
305	8
31var1	var2
326	8
33var1	var2
347	8
35var1	var2
368	8
37var1	var2
387	8
39var1	var2
406	8
41var1	var2
425	8
43var1	var2
444	8
45var1	var2
463	8
47var1	var2
482	8
49var1	var2
501	8
51var1	var2
520	8
53'#--------------------FN_DYNVARS_099_02-------------------------#'
54CONNECT  test_con2,localhost,root,,;
55connection test_con2;
56SET @@session.max_sp_recursion_depth = 4;
57SELECT @@session.max_sp_recursion_depth;
58@@session.max_sp_recursion_depth
594
60DROP PROCEDURE IF EXISTS sp_addRecords1;
61CREATE PROCEDURE sp_addRecords1 (IN var1 INT,IN var2 INT)
62BEGIN
63SELECT var1,var2;
64IF var1 < var2 THEN
65CALL sp_addRecords1(var1+1,var2);
66SELECT var1,var2;
67END IF;
68END //
69CALL sp_addRecords1(0,4);
70var1	var2
710	4
72var1	var2
731	4
74var1	var2
752	4
76var1	var2
773	4
78var1	var2
794	4
80var1	var2
813	4
82var1	var2
832	4
84var1	var2
851	4
86var1	var2
870	4
88'#---------------------FN_DYNVARS_99_03----------------------#'
89SET @@max_sp_recursion_depth = 10;
90DROP PROCEDURE IF EXISTS sp_addRecords2;
91CREATE PROCEDURE sp_addRecords2(IN var1 INT,IN var2 INT)
92BEGIN
93SELECT var1,var2;
94IF var1 < var2 THEN
95CALL sp_addRecords2(var1+1,var2);
96SELECT var1,var2;
97END IF;
98END //
99CALL sp_addRecords2(0,8);
100var1	var2
1010	8
102var1	var2
1031	8
104var1	var2
1052	8
106var1	var2
1073	8
108var1	var2
1094	8
110var1	var2
1115	8
112var1	var2
1136	8
114var1	var2
1157	8
116var1	var2
1178	8
118var1	var2
1197	8
120var1	var2
1216	8
122var1	var2
1235	8
124var1	var2
1254	8
126var1	var2
1273	8
128var1	var2
1292	8
130var1	var2
1311	8
132var1	var2
1330	8
134'#---------------------FN_DYNVARS_99_04----------------------#'
135SET @@max_sp_recursion_depth = 4;
136DROP PROCEDURE IF EXISTS sp_addRecords3;
137CREATE PROCEDURE sp_addRecords3 (IN var1 INT,IN var2 INT)
138BEGIN
139SELECT var1,var2;
140IF var1 < var2 THEN
141CALL sp_addRecords3(var1+1,var2);
142SELECT var1,var2;
143END IF;
144END //
145Expected error 'SP Recursion limit'
146CALL sp_addRecords3(0,8);
147var1	var2
1480	8
149var1	var2
1501	8
151var1	var2
1522	8
153var1	var2
1543	8
155var1	var2
1564	8
157ERROR HY000: Recursive limit 4 (as set by the max_sp_recursion_depth variable) was exceeded for routine sp_addRecords3
158connection default;
159disconnect test_con1;
160disconnect test_con2;
161DROP PROCEDURE IF EXISTS sp_addRecords;
162DROP PROCEDURE IF EXISTS sp_addRecords1;
163DROP PROCEDURE IF EXISTS sp_addRecords2;
164DROP PROCEDURE IF EXISTS sp_addRecords3;
165SET @@SESSION.max_sp_recursion_depth = @session_max_recursion_depth;
166