diff options
author | unknown <pem@mysql.comhem.se> | 2004-08-17 20:20:58 +0200 |
---|---|---|
committer | unknown <pem@mysql.comhem.se> | 2004-08-17 20:20:58 +0200 |
commit | 9b5a6f7228850479abe0e4e2439dcf6b27a87136 (patch) | |
tree | 0a14fd07bbceeceb892fb762e8f9af5e74153b89 /sql/lex.h | |
parent | f43fe31e571bb5e127d5e0ca4ad6680a15104aa7 (diff) | |
download | mariadb-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.h | 2 |
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)}, |