• unknown's avatar
    WL#2002: Implement stored procedure GOTO. · 9b5a6f72
    unknown authored
    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.
    9b5a6f72
sp_pcontext.h 5.29 KB