diff options
author | Michael Widenius <monty@askmonty.org> | 2013-05-06 16:51:41 +0300 |
---|---|---|
committer | Michael Widenius <monty@askmonty.org> | 2013-05-06 16:51:41 +0300 |
commit | d18cc84c73398eac5378d1dcd6b9c23fb6af32f6 (patch) | |
tree | f3f0cefa31373c8108119522b900f1c7064d645a /sql/sql_admin.cc | |
parent | 97c98efc154fdebf9364d8cc2f5b9a7754a259f3 (diff) | |
download | mariadb-git-d18cc84c73398eac5378d1dcd6b9c23fb6af32f6.tar.gz |
If one declared several continue handler for the same condition on different level of stored procedures, all of them where executed.
Now we only execute the innermost of them (the most relevant).
The solution was to add a 'handled' marker to MYSQL_ERROR and mark all elements for which we have executed a condition handler.
When searching for new conditions, we will ignore any marked element.
.bzrignore:
Ignore error message file
mysql-test/r/sp.result:
Added testcase for continue handlers.
mysql-test/t/sp.test:
Added testcase for continue handlers.
sql/sp_head.cc:
Mark errors for which we will excute a handler as 'handled'
Ignore already handled warnings/errors
sql/sql_error.cc:
Add 'handled' argument to MYSQL_ERROR, so that we can mark the errors/warnings we have handled.
sql/sql_error.h:
Add 'handled' argument to MYSQL_ERROR, so that we can mark the errors/warnings we have handled.
Diffstat (limited to 'sql/sql_admin.cc')
0 files changed, 0 insertions, 0 deletions