summaryrefslogtreecommitdiff
path: root/sql/lex.h
diff options
context:
space:
mode:
authorunknown <pem@mysql.comhem.se>2004-08-17 20:20:58 +0200
committerunknown <pem@mysql.comhem.se>2004-08-17 20:20:58 +0200
commit9b5a6f7228850479abe0e4e2439dcf6b27a87136 (patch)
tree0a14fd07bbceeceb892fb762e8f9af5e74153b89 /sql/lex.h
parentf43fe31e571bb5e127d5e0ca4ad6680a15104aa7 (diff)
downloadmariadb-git-9b5a6f7228850479abe0e4e2439dcf6b27a87136.tar.gz
WL#2002: Implement stored procedure GOTO.
Mostly done, it works, but the temporary LABEL syntax still to be fixed. mysql-test/r/sp-error.result: New test case for WL#2002 (GOTO). mysql-test/r/sp.result: New test case for WL#2002 (GOTO). (Also corrected another test) mysql-test/t/sp-error.test: New test case for WL#2002 (GOTO). mysql-test/t/sp.test: New test case for WL#2002 (GOTO). (Also corrected another test) sql/lex.h: New symbol GOTO. Also a temporary symbol LABEL, which hopefully will go away soon. sql/sp_head.cc: Fixed backpatching to cope with free GOTO labels an hpop and cpop instructions. Also optimized away pointless jump instructions. sql/sp_head.h: Fixed backpatching to cope with free GOTO labels an hpop and cpop instructions. We now sometimes generate hpop/cpop 0 instructions but the optimizer removes them. sql/sp_pcontext.cc: Added free GOTO labels, and support for coping with jumps out of blocks with handlers or cursors. sql/sp_pcontext.h: Added free GOTO labels, and support for coping with jumps out of blocks with handlers or cursors. sql/sql_yacc.yy: Added GOTO and LABEL, and adjusted backpatching accordingly. Also fixed LEAVE out of blocks. The LABEL syntax will go away soon, hopefully.
Diffstat (limited to 'sql/lex.h')
-rw-r--r--sql/lex.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/sql/lex.h b/sql/lex.h
index 023c4752720..957aa3159e7 100644
--- a/sql/lex.h
+++ b/sql/lex.h
@@ -209,6 +209,7 @@ static SYMBOL symbols[] = {
{ "GEOMETRYCOLLECTION",SYM(GEOMETRYCOLLECTION)},
{ "GET_FORMAT", SYM(GET_FORMAT)},
{ "GLOBAL", SYM(GLOBAL_SYM)},
+ { "GOTO", SYM(GOTO_SYM)},
{ "GRANT", SYM(GRANT)},
{ "GRANTS", SYM(GRANTS)},
{ "GROUP", SYM(GROUP)},
@@ -256,6 +257,7 @@ static SYMBOL symbols[] = {
{ "KEY", SYM(KEY_SYM)},
{ "KEYS", SYM(KEYS)},
{ "KILL", SYM(KILL_SYM)},
+ { "LABEL", SYM(LABEL_SYM)},
{ "LANGUAGE", SYM(LANGUAGE_SYM)},
{ "LAST", SYM(LAST_SYM)},
{ "LEADING", SYM(LEADING)},