307 lines
		
	
	
		
			9.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			307 lines
		
	
	
		
			9.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | use test; | ||
|  | SELECT | ||
|  | (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( | ||
|  | (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( | ||
|  | (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( | ||
|  | 1 | ||
|  | )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) | ||
|  | )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) | ||
|  | )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) | ||
|  | ; | ||
|  | 1 | ||
|  | 1 | ||
|  | prepare stmt from | ||
|  | " | ||
|  | SELECT | ||
|  | (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( | ||
|  | (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( | ||
|  | (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( | ||
|  | 1 | ||
|  | )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) | ||
|  | )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) | ||
|  | )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) | ||
|  | " | ||
|  | ; | ||
|  | execute stmt; | ||
|  | 1 | ||
|  | 1 | ||
|  | drop view if exists view_overflow; | ||
|  | CREATE VIEW view_overflow AS | ||
|  | SELECT | ||
|  | (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( | ||
|  | (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( | ||
|  | (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( | ||
|  | 1 | ||
|  | )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) | ||
|  | )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) | ||
|  | )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) | ||
|  | ; | ||
|  | SELECT * from view_overflow; | ||
|  | 1 | ||
|  | 1 | ||
|  | drop view view_overflow; | ||
|  | drop procedure if exists proc_overflow; | ||
|  | 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 $$ | ||
|  | call proc_overflow(); | ||
|  | 1 | ||
|  | 1 | ||
|  | 2 | ||
|  | 2 | ||
|  | 3 | ||
|  | 3 | ||
|  | drop procedure proc_overflow; | ||
|  | drop function if exists func_overflow; | ||
|  | 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 $$ | ||
|  | select func_overflow(); | ||
|  | func_overflow() | ||
|  | 6 | ||
|  | drop function func_overflow; | ||
|  | drop table if exists table_overflow; | ||
|  | create table table_overflow(a int, b int); | ||
|  | 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 $$ | ||
|  | insert into table_overflow set a=10; | ||
|  | insert into table_overflow set a=20; | ||
|  | select * from table_overflow; | ||
|  | a	b | ||
|  | 10	16 | ||
|  | 20	26 | ||
|  | drop table table_overflow; | ||
|  | drop procedure if exists proc_35577; | ||
|  | 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 $$ | ||
|  | drop procedure proc_35577; | ||
|  | drop procedure if exists p_37269; | ||
|  | 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 $$ | ||
|  | drop procedure p_37269; | ||
|  | drop procedure if exists p_37228; | ||
|  | 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 $$ | ||
|  | drop procedure p_37228; |