summaryrefslogtreecommitdiff
path: root/sql/sp_pcontext.h
diff options
context:
space:
mode:
authorunknown <pem@mysql.com>2005-11-04 15:37:39 +0100
committerunknown <pem@mysql.com>2005-11-04 15:37:39 +0100
commit898adb8cfc2e5d4bdf01ae9085f042a82f85c3f7 (patch)
treef171748ec24780206fc394565155b746aa2b2384 /sql/sp_pcontext.h
parent02ac7bef876ba51f13c09174da7a706ea35b6613 (diff)
downloadmariadb-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