388 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			388 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# These tests are designed to cause an internal parser stack overflow,
							 | 
						||
| 
								 | 
							
								# and trigger my_yyoverflow().
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use test;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								SELECT
							 | 
						||
| 
								 | 
							
								((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
							 | 
						||
| 
								 | 
							
								((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
							 | 
						||
| 
								 | 
							
								((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
							 | 
						||
| 
								 | 
							
								1
							 | 
						||
| 
								 | 
							
								))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
							 | 
						||
| 
								 | 
							
								))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
							 | 
						||
| 
								 | 
							
								))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
							 | 
						||
| 
								 | 
							
								;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								prepare stmt from
							 | 
						||
| 
								 | 
							
								"
							 | 
						||
| 
								 | 
							
								SELECT
							 | 
						||
| 
								 | 
							
								((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
							 | 
						||
| 
								 | 
							
								((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
							 | 
						||
| 
								 | 
							
								((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
							 | 
						||
| 
								 | 
							
								1
							 | 
						||
| 
								 | 
							
								))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
							 | 
						||
| 
								 | 
							
								))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
							 | 
						||
| 
								 | 
							
								))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
							 | 
						||
| 
								 | 
							
								"
							 | 
						||
| 
								 | 
							
								;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								execute stmt;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--disable_warnings
							 | 
						||
| 
								 | 
							
								drop view if exists view_overflow;
							 | 
						||
| 
								 | 
							
								--enable_warnings
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CREATE VIEW view_overflow AS
							 | 
						||
| 
								 | 
							
								SELECT
							 | 
						||
| 
								 | 
							
								((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
							 | 
						||
| 
								 | 
							
								((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
							 | 
						||
| 
								 | 
							
								((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
							 | 
						||
| 
								 | 
							
								1
							 | 
						||
| 
								 | 
							
								))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
							 | 
						||
| 
								 | 
							
								))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
							 | 
						||
| 
								 | 
							
								))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
							 | 
						||
| 
								 | 
							
								;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								SELECT * from view_overflow;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								drop view view_overflow;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--disable_warnings
							 | 
						||
| 
								 | 
							
								drop procedure if exists proc_overflow;
							 | 
						||
| 
								 | 
							
								--enable_warnings
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								delimiter $$;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CREATE PROCEDURE proc_overflow()
							 | 
						||
| 
								 | 
							
								BEGIN
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  select 1;
							 | 
						||
| 
								 | 
							
								  select 2;
							 | 
						||
| 
								 | 
							
								  select 3;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								END $$
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								delimiter ;$$
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								call proc_overflow();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								drop procedure proc_overflow;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--disable_warnings
							 | 
						||
| 
								 | 
							
								drop function if exists func_overflow;
							 | 
						||
| 
								 | 
							
								--enable_warnings
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								delimiter $$;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								create function func_overflow() returns int
							 | 
						||
| 
								 | 
							
								BEGIN
							 | 
						||
| 
								 | 
							
								  DECLARE x int default 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  SET x=x+1;
							 | 
						||
| 
								 | 
							
								  SET x=x+2;
							 | 
						||
| 
								 | 
							
								  SET x=x+3;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return x;
							 | 
						||
| 
								 | 
							
								END $$
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								delimiter ;$$
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								select func_overflow();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								drop function func_overflow;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--disable_warnings
							 | 
						||
| 
								 | 
							
								drop table if exists table_overflow;
							 | 
						||
| 
								 | 
							
								--enable_warnings
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								create table table_overflow(a int, b int);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								delimiter $$;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								create trigger trigger_overflow before insert on table_overflow
							 | 
						||
| 
								 | 
							
								for each row
							 | 
						||
| 
								 | 
							
								BEGIN
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								  BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  SET NEW.b := NEW.a;
							 | 
						||
| 
								 | 
							
								  SET NEW.b := NEW.b + 1;
							 | 
						||
| 
								 | 
							
								  SET NEW.b := NEW.b + 2;
							 | 
						||
| 
								 | 
							
								  SET NEW.b := NEW.b + 3;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;  END;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								END $$
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								delimiter ;$$
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								insert into table_overflow set a=10;
							 | 
						||
| 
								 | 
							
								insert into table_overflow set a=20;
							 | 
						||
| 
								 | 
							
								select * from table_overflow;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								drop table table_overflow;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--disable_warnings
							 | 
						||
| 
								 | 
							
								drop procedure if exists proc_35577;
							 | 
						||
| 
								 | 
							
								--enable_warnings
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								delimiter $$;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CREATE PROCEDURE proc_35577()
							 | 
						||
| 
								 | 
							
								BEGIN
							 | 
						||
| 
								 | 
							
								  DECLARE z_done INT DEFAULT 0;
							 | 
						||
| 
								 | 
							
								  DECLARE t_done VARCHAR(5000);
							 | 
						||
| 
								 | 
							
								  outer_loop: LOOP
							 | 
						||
| 
								 | 
							
								    IF t_done=1  THEN
							 | 
						||
| 
								 | 
							
								      LEAVE outer_loop;
							 | 
						||
| 
								 | 
							
								    END IF;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    inner_block:BEGIN
							 | 
						||
| 
								 | 
							
								      DECLARE z_done INT DEFAULT  0;
							 | 
						||
| 
								 | 
							
								      SET z_done = 0;
							 | 
						||
| 
								 | 
							
								      inner_loop: LOOP
							 | 
						||
| 
								 | 
							
								        IF z_done=1  THEN
							 | 
						||
| 
								 | 
							
								          LEAVE inner_loop;
							 | 
						||
| 
								 | 
							
								        END IF;
							 | 
						||
| 
								 | 
							
								        IF (t_done = 'a') THEN
							 | 
						||
| 
								 | 
							
								          IF (t_done <> 0) THEN
							 | 
						||
| 
								 | 
							
								            IF ( t_done > 0) THEN
							 | 
						||
| 
								 | 
							
								              IF (t_done = 'a') THEN
							 | 
						||
| 
								 | 
							
								                SET t_done = 'a';
							 | 
						||
| 
								 | 
							
								              ELSEIF (t_done = 'a') THEN
							 | 
						||
| 
								 | 
							
								                SET t_done = 'a';
							 | 
						||
| 
								 | 
							
								              ELSEIF(t_done = 'a') THEN
							 | 
						||
| 
								 | 
							
								                SET t_done = 'a';
							 | 
						||
| 
								 | 
							
								              ELSEIF(t_done = 'a') THEN
							 | 
						||
| 
								 | 
							
								                SET t_done = 'a';
							 | 
						||
| 
								 | 
							
								              ELSEIF(t_done = 'a') THEN
							 | 
						||
| 
								 | 
							
								                SET t_done = 'a';
							 | 
						||
| 
								 | 
							
								              ELSEIF(t_done = 'a') THEN
							 | 
						||
| 
								 | 
							
								                SET t_done = 'a';
							 | 
						||
| 
								 | 
							
								              ELSEIF(t_done = 'a') THEN
							 | 
						||
| 
								 | 
							
								                SET t_done = 'a';
							 | 
						||
| 
								 | 
							
								              ELSEIF(t_done = 'a') THEN
							 | 
						||
| 
								 | 
							
								                SET t_done = 'a';
							 | 
						||
| 
								 | 
							
								              END IF;
							 | 
						||
| 
								 | 
							
								            END IF;
							 | 
						||
| 
								 | 
							
								          END IF;
							 | 
						||
| 
								 | 
							
								        END IF;
							 | 
						||
| 
								 | 
							
								      END LOOP inner_loop;
							 | 
						||
| 
								 | 
							
								    END inner_block;
							 | 
						||
| 
								 | 
							
								  END LOOP outer_loop;
							 | 
						||
| 
								 | 
							
								END $$
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								delimiter ;$$
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								drop procedure proc_35577;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Bug#37269 (parser crash when creating stored procedure)
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--disable_warnings
							 | 
						||
| 
								 | 
							
								drop procedure if exists p_37269;
							 | 
						||
| 
								 | 
							
								--enable_warnings
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								delimiter $$;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								create procedure p_37269()
							 | 
						||
| 
								 | 
							
								begin
							 | 
						||
| 
								 | 
							
								  declare done int default 0;
							 | 
						||
| 
								 | 
							
								  declare varb int default 0;
							 | 
						||
| 
								 | 
							
								  declare vara int default 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  repeat
							 | 
						||
| 
								 | 
							
								    select now();
							 | 
						||
| 
								 | 
							
								  until done end repeat;
							 | 
						||
| 
								 | 
							
								  while varb do
							 | 
						||
| 
								 | 
							
								    select now();
							 | 
						||
| 
								 | 
							
								    begin
							 | 
						||
| 
								 | 
							
								      select now();
							 | 
						||
| 
								 | 
							
								      repeat
							 | 
						||
| 
								 | 
							
								        select now();
							 | 
						||
| 
								 | 
							
								      until done end repeat;
							 | 
						||
| 
								 | 
							
								      if vara then 
							 | 
						||
| 
								 | 
							
								        select now();
							 | 
						||
| 
								 | 
							
								        repeat
							 | 
						||
| 
								 | 
							
								          select now();
							 | 
						||
| 
								 | 
							
								          loop
							 | 
						||
| 
								 | 
							
								            select now();
							 | 
						||
| 
								 | 
							
								          end loop;
							 | 
						||
| 
								 | 
							
								          repeat
							 | 
						||
| 
								 | 
							
								            select now();
							 | 
						||
| 
								 | 
							
								            label1: while varb do
							 | 
						||
| 
								 | 
							
								              select now();
							 | 
						||
| 
								 | 
							
								            end while label1;
							 | 
						||
| 
								 | 
							
								            if vara then 
							 | 
						||
| 
								 | 
							
								              select now();
							 | 
						||
| 
								 | 
							
								              repeat
							 | 
						||
| 
								 | 
							
								                select now();
							 | 
						||
| 
								 | 
							
								              until done end repeat;
							 | 
						||
| 
								 | 
							
								              begin
							 | 
						||
| 
								 | 
							
								                select now();
							 | 
						||
| 
								 | 
							
								                while varb do
							 | 
						||
| 
								 | 
							
								                  select now();
							 | 
						||
| 
								 | 
							
								                  label1: while varb do
							 | 
						||
| 
								 | 
							
								                    select now();
							 | 
						||
| 
								 | 
							
								                  end while label1;
							 | 
						||
| 
								 | 
							
								                  if vara then 
							 | 
						||
| 
								 | 
							
								                    select now();
							 | 
						||
| 
								 | 
							
								                    while varb do
							 | 
						||
| 
								 | 
							
								                      select now();
							 | 
						||
| 
								 | 
							
								                      loop
							 | 
						||
| 
								 | 
							
								                        select now();
							 | 
						||
| 
								 | 
							
								                      end loop;
							 | 
						||
| 
								 | 
							
								                      repeat
							 | 
						||
| 
								 | 
							
								                        select now();
							 | 
						||
| 
								 | 
							
								                        loop
							 | 
						||
| 
								 | 
							
								                          select now();
							 | 
						||
| 
								 | 
							
								                          while varb do
							 | 
						||
| 
								 | 
							
								                            select now();
							 | 
						||
| 
								 | 
							
								                          end while;
							 | 
						||
| 
								 | 
							
								                          repeat
							 | 
						||
| 
								 | 
							
								                            select now();
							 | 
						||
| 
								 | 
							
								                            label1: loop
							 | 
						||
| 
								 | 
							
								                              select now();
							 | 
						||
| 
								 | 
							
								                              if vara then 
							 | 
						||
| 
								 | 
							
								                                select now();
							 | 
						||
| 
								 | 
							
								                              end if;
							 | 
						||
| 
								 | 
							
								                            end loop label1;
							 | 
						||
| 
								 | 
							
								                          until done end repeat;
							 | 
						||
| 
								 | 
							
								                        end loop;
							 | 
						||
| 
								 | 
							
								                      until done end repeat;
							 | 
						||
| 
								 | 
							
								                    end while;
							 | 
						||
| 
								 | 
							
								                  end if;
							 | 
						||
| 
								 | 
							
								                end while;
							 | 
						||
| 
								 | 
							
								              end;
							 | 
						||
| 
								 | 
							
								            end if;
							 | 
						||
| 
								 | 
							
								          until done end repeat;
							 | 
						||
| 
								 | 
							
								        until done end repeat;
							 | 
						||
| 
								 | 
							
								      end if;
							 | 
						||
| 
								 | 
							
								    end;
							 | 
						||
| 
								 | 
							
								  end while;
							 | 
						||
| 
								 | 
							
								end $$
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								delimiter ;$$
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								drop procedure p_37269;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Bug#37228 (Sever crashes when creating stored procedure with more than
							 | 
						||
| 
								 | 
							
								#            10 IF/ELSEIF)
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--disable_warnings
							 | 
						||
| 
								 | 
							
								drop procedure if exists p_37228;
							 | 
						||
| 
								 | 
							
								--enable_warnings
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								delimiter $$;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								create procedure p_37228 ()
							 | 
						||
| 
								 | 
							
								BEGIN
							 | 
						||
| 
								 | 
							
								  DECLARE v INT DEFAULT 123;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  IF (v > 1) THEN SET v = 1; 
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 10) THEN SET v = 10;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 11) THEN SET v = 11;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 12) THEN SET v = 12;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 13) THEN SET v = 13;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 14) THEN SET v = 14;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 15) THEN SET v = 15;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 16) THEN SET v = 16;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 17) THEN SET v = 17;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 18) THEN SET v = 18;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 19) THEN SET v = 19;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 20) THEN SET v = 20;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 21) THEN SET v = 21;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 22) THEN SET v = 22;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 23) THEN SET v = 23;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 24) THEN SET v = 24;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 25) THEN SET v = 25;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 26) THEN SET v = 26;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 27) THEN SET v = 27;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 28) THEN SET v = 28;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 29) THEN SET v = 29;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 30) THEN SET v = 30;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 31) THEN SET v = 31;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 32) THEN SET v = 32;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 33) THEN SET v = 33;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 34) THEN SET v = 34;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 35) THEN SET v = 35;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 36) THEN SET v = 36;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 37) THEN SET v = 37;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 38) THEN SET v = 38;
							 | 
						||
| 
								 | 
							
								  ELSEIF (v < 39) THEN SET v = 39;
							 | 
						||
| 
								 | 
							
								  END IF;
							 | 
						||
| 
								 | 
							
								END $$
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								delimiter ;$$
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								drop procedure p_37228;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 |