2 # These tests are designed to cause an internal parser stack overflow,
3 # and trigger my_yyoverflow().
9 ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
10 ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
11 ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
13 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
14 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
15 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
21 ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
22 ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
23 ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
25 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
26 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
27 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
34 drop view if exists view_overflow;
37 CREATE VIEW view_overflow AS
39 ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
40 ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
41 ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
43 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
44 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
45 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
48 SELECT * from view_overflow;
50 drop view view_overflow;
53 drop procedure if exists proc_overflow;
58 CREATE PROCEDURE proc_overflow()
61 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
62 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
63 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
64 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
65 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
66 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
67 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
68 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
69 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
70 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
76 END; END; END; END; END; END; END; END; END; END; END; END;
77 END; END; END; END; END; END; END; END; END; END; END; END;
78 END; END; END; END; END; END; END; END; END; END; END; END;
79 END; END; END; END; END; END; END; END; END; END; END; END;
80 END; END; END; END; END; END; END; END; END; END; END; END;
81 END; END; END; END; END; END; END; END; END; END; END; END;
82 END; END; END; END; END; END; END; END; END; END; END; END;
83 END; END; END; END; END; END; END; END; END; END; END; END;
84 END; END; END; END; END; END; END; END; END; END; END; END;
85 END; END; END; END; END; END; END; END; END; END; END; END;
93 drop procedure proc_overflow;
96 drop function if exists func_overflow;
101 create function func_overflow() returns int
103 DECLARE x int default 0;
105 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
106 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
107 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
108 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
109 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
110 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
111 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
112 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
113 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
114 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
120 END; END; END; END; END; END; END; END; END; END; END; END;
121 END; END; END; END; END; END; END; END; END; END; END; END;
122 END; END; END; END; END; END; END; END; END; END; END; END;
123 END; END; END; END; END; END; END; END; END; END; END; END;
124 END; END; END; END; END; END; END; END; END; END; END; END;
125 END; END; END; END; END; END; END; END; END; END; END; END;
126 END; END; END; END; END; END; END; END; END; END; END; END;
127 END; END; END; END; END; END; END; END; END; END; END; END;
128 END; END; END; END; END; END; END; END; END; END; END; END;
129 END; END; END; END; END; END; END; END; END; END; END; END;
136 select func_overflow();
138 drop function func_overflow;
141 drop table if exists table_overflow;
144 create table table_overflow(a int, b int);
148 create trigger trigger_overflow before insert on table_overflow
152 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
153 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
154 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
155 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
156 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
157 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
158 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
159 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
160 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
161 BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
164 SET NEW.b := NEW.b + 1;
165 SET NEW.b := NEW.b + 2;
166 SET NEW.b := NEW.b + 3;
168 END; END; END; END; END; END; END; END; END; END; END; END;
169 END; END; END; END; END; END; END; END; END; END; END; END;
170 END; END; END; END; END; END; END; END; END; END; END; END;
171 END; END; END; END; END; END; END; END; END; END; END; END;
172 END; END; END; END; END; END; END; END; END; END; END; END;
173 END; END; END; END; END; END; END; END; END; END; END; END;
174 END; END; END; END; END; END; END; END; END; END; END; END;
175 END; END; END; END; END; END; END; END; END; END; END; END;
176 END; END; END; END; END; END; END; END; END; END; END; END;
177 END; END; END; END; END; END; END; END; END; END; END; END;
183 insert into table_overflow set a=10;
184 insert into table_overflow set a=20;
185 select * from table_overflow;
187 drop table table_overflow;
190 drop procedure if exists proc_35577;
195 CREATE PROCEDURE proc_35577()
197 DECLARE z_done INT DEFAULT 0;
198 DECLARE t_done VARCHAR(5000);
205 DECLARE z_done INT DEFAULT 0;
211 IF (t_done = 'a') THEN
212 IF (t_done <> 0) THEN
213 IF ( t_done > 0) THEN
214 IF (t_done = 'a') THEN
216 ELSEIF (t_done = 'a') THEN
218 ELSEIF(t_done = 'a') THEN
220 ELSEIF(t_done = 'a') THEN
222 ELSEIF(t_done = 'a') THEN
224 ELSEIF(t_done = 'a') THEN
226 ELSEIF(t_done = 'a') THEN
228 ELSEIF(t_done = 'a') THEN
241 drop procedure proc_35577;
244 # Bug#37269 (parser crash when creating stored procedure)
248 drop procedure if exists p_37269;
253 create procedure p_37269()
255 declare done int default 0;
256 declare varb int default 0;
257 declare vara int default 0;
261 until done end repeat;
268 until done end repeat;
278 label1: while varb do
285 until done end repeat;
290 label1: while varb do
315 until done end repeat;
317 until done end repeat;
323 until done end repeat;
324 until done end repeat;
332 drop procedure p_37269;
335 # Bug#37228 (Sever crashes when creating stored procedure with more than
340 drop procedure if exists p_37228;
345 create procedure p_37228 ()
347 DECLARE v INT DEFAULT 123;
349 IF (v > 1) THEN SET v = 1;
350 ELSEIF (v < 10) THEN SET v = 10;
351 ELSEIF (v < 11) THEN SET v = 11;
352 ELSEIF (v < 12) THEN SET v = 12;
353 ELSEIF (v < 13) THEN SET v = 13;
354 ELSEIF (v < 14) THEN SET v = 14;
355 ELSEIF (v < 15) THEN SET v = 15;
356 ELSEIF (v < 16) THEN SET v = 16;
357 ELSEIF (v < 17) THEN SET v = 17;
358 ELSEIF (v < 18) THEN SET v = 18;
359 ELSEIF (v < 19) THEN SET v = 19;
360 ELSEIF (v < 20) THEN SET v = 20;
361 ELSEIF (v < 21) THEN SET v = 21;
362 ELSEIF (v < 22) THEN SET v = 22;
363 ELSEIF (v < 23) THEN SET v = 23;
364 ELSEIF (v < 24) THEN SET v = 24;
365 ELSEIF (v < 25) THEN SET v = 25;
366 ELSEIF (v < 26) THEN SET v = 26;
367 ELSEIF (v < 27) THEN SET v = 27;
368 ELSEIF (v < 28) THEN SET v = 28;
369 ELSEIF (v < 29) THEN SET v = 29;
370 ELSEIF (v < 30) THEN SET v = 30;
371 ELSEIF (v < 31) THEN SET v = 31;
372 ELSEIF (v < 32) THEN SET v = 32;
373 ELSEIF (v < 33) THEN SET v = 33;
374 ELSEIF (v < 34) THEN SET v = 34;
375 ELSEIF (v < 35) THEN SET v = 35;
376 ELSEIF (v < 36) THEN SET v = 36;
377 ELSEIF (v < 37) THEN SET v = 37;
378 ELSEIF (v < 38) THEN SET v = 38;
379 ELSEIF (v < 39) THEN SET v = 39;
385 drop procedure p_37228;