mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Fixed BUG#2653: Undeclared variables not detected in stored procedures.
We now get an run-time error instead of a crash (although a slightly misleading error message, but it's an improvement). mysql-test/r/sp-error.result: New test case for BUG#2653. mysql-test/t/sp-error.test: New test case for BUG#2653. sql/sp_head.cc: Detect failed evals (fix item really), which are due to unresolved variables/fields. Typically this would be a reference to an undeclared variable. (Also got rid of some compiler warnings.) sql/sp_rcontext.cc: Detect failed evals (fix item really), which are due to unresolved variables/fields. Typically this would be a reference to an undeclared variable. sql/sp_rcontext.h: Changed return type to int, so be able to detect failed evals (fix item). sql/sql_class.cc: Changed return type to int, so be able to detect failed evals (fix item).
This commit is contained in:
@ -397,4 +397,20 @@ drop procedure bug3279|
|
||||
drop table t3|
|
||||
create procedure nodb.bug3339() begin end|
|
||||
ERROR 42000: Unknown database 'nodb'
|
||||
create procedure bug2653_1(a int, out b int)
|
||||
set b = aa|
|
||||
create procedure bug2653_2(a int, out b int)
|
||||
begin
|
||||
if aa < 0 then
|
||||
set b = - a;
|
||||
else
|
||||
set b = a;
|
||||
end if;
|
||||
end|
|
||||
call bug2653_1(1, @b)|
|
||||
ERROR 42S22: Unknown column 'aa' in 'order clause'
|
||||
call bug2653_2(2, @b)|
|
||||
ERROR 42S22: Unknown column 'aa' in 'order clause'
|
||||
drop procedure bug2653_1|
|
||||
drop procedure bug2653_2|
|
||||
drop table t1|
|
||||
|
Reference in New Issue
Block a user