diff options
author | unknown <pem@mysql.com> | 2005-11-04 15:37:39 +0100 |
---|---|---|
committer | unknown <pem@mysql.com> | 2005-11-04 15:37:39 +0100 |
commit | 898adb8cfc2e5d4bdf01ae9085f042a82f85c3f7 (patch) | |
tree | f171748ec24780206fc394565155b746aa2b2384 /sql/sp_pcontext.h | |
parent | 02ac7bef876ba51f13c09174da7a706ea35b6613 (diff) | |
download | mariadb-git-898adb8cfc2e5d4bdf01ae9085f042a82f85c3f7.tar.gz |
Fixed BUG#14498: Stored procedures: hang if undefined variable and exception
The problem was to continue at the right place in the code after the
test expression in a flow control statement fails with an exception
(internally, the test in sp_instr_jump_if_not), and the exception is
caught by a continue handler. Execution must then be resumed after the
the entire flow control statement (END IF, END WHILE, etc).
mysql-test/r/sp.result:
New test case for BUG#14498.
mysql-test/t/sp.test:
New test case for BUG#14498.
(Note that one call is disabled at the moment. Depends on BUG#14643.)
sql/sp_head.cc:
Added a continuation destination for sp_instr_jump_if_not, for the case when
an error in the test expression causes a continue handler to catch.
This includes new members in sp_instr_jump_if_not, adjustment of the optmizer
(mark and move methods), and separate backpatching code (since we can't use
the normal one for this).
Also removed the class sp_instr_jump, since it's never used.
...and added some comments to the optimizer.
sql/sp_head.h:
Added a continuation destination for sp_instr_jump_if_not, for the case when
an error in the test expression causes a continue handler to catch.
This includes new members in sp_instr_jump_if_not, adjustment of the optmizer
(mark and move methods), and separate backpatching code (since we can't use
the normal one for this).
Also removed the class sp_instr_jump, since it's never used.
sql/sql_yacc.yy:
Added backpatching of the continue destination for all conditional statements
(using sp_instr_jump_if_not).
Diffstat (limited to 'sql/sp_pcontext.h')
0 files changed, 0 insertions, 0 deletions