summaryrefslogtreecommitdiff
path: root/sql/sp_head.cc
diff options
context:
space:
mode:
authorunknown <pem@mysql.comhem.se>2004-04-05 17:01:19 +0200
committerunknown <pem@mysql.comhem.se>2004-04-05 17:01:19 +0200
commit4a7c72e9dfe2c1274d92bde9eec158c089f22dac (patch)
treecf7e76c8e635cc495116540f20458ac279c1cfd3 /sql/sp_head.cc
parentc489c6aba7b2d0d38fdf6ce8448676320282d171 (diff)
downloadmariadb-git-4a7c72e9dfe2c1274d92bde9eec158c089f22dac.tar.gz
Fixed BUG#3287: Stored procedure handler scope outside of begin/end.
Backpatching overwrote already backpatched instructions, which made it skip the hpop instruction; possibly not only a problem for handlers, but this is one known case when it happened. mysql-test/r/sp-error.result: New testcase for BUG#3287 mysql-test/t/sp-error.test: New testcase for BUG#3287 sql/sp_head.cc: Made the debug printout of hpush_jump instructions somewhat clearer. sql/sp_head.h: Don't backpatch the same instruction more than once.
Diffstat (limited to 'sql/sp_head.cc')
-rw-r--r--sql/sp_head.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/sql/sp_head.cc b/sql/sp_head.cc
index 4c883d4cd3d..dfc3e8190fe 100644
--- a/sql/sp_head.cc
+++ b/sql/sp_head.cc
@@ -1144,10 +1144,12 @@ sp_instr_hpush_jump::print(String *str)
{
str->reserve(32);
str->append("hpush_jump ");
+ str->qs_append(m_dest);
+ str->append(" t=");
str->qs_append(m_type);
- str->append(' ');
+ str->append(" f=");
str->qs_append(m_frame);
- str->append(' ');
+ str->append(" h=");
str->qs_append(m_handler);
}