--- mysql-5.1.17-beta/sql/lex.h 2007-04-04 15:15:16.000000000 +0200 +++ mysql-5.1.17-beta-mysqlimport-stdin-clean/sql/lex.h 2007-05-08 02:49:15.000000000 +0200 @@ -464,6 +464,7 @@ { "SHARE", SYM(SHARE_SYM)}, { "SHOW", SYM(SHOW)}, { "SHUTDOWN", SYM(SHUTDOWN)}, + { "SIGNAL", SYM(SIGNAL_SYM)}, { "SIGNED", SYM(SIGNED_SYM)}, { "SIMPLE", SYM(SIMPLE_SYM)}, { "SLAVE", SYM(SLAVE)}, --- mysql-5.1.17-beta/sql/share/errmsg.txt 2007-04-04 15:09:50.000000000 +0200 +++ mysql-5.1.17-beta-mysqlimport-stdin-clean/sql/share/errmsg.txt 2007-05-08 02:49:15.000000000 +0200 @@ -5208,6 +5208,8 @@ ER_SP_CASE_NOT_FOUND 20000 eng "Case not found for CASE statement" ger "Fall für CASE-Anweisung nicht gefunden" +ER_SP_SIGNAL 38503 + eng "Exception generated from user-defined function/procedure" ER_FPARSER_TOO_BIG_FILE eng "Configuration file '%-.64s' is too big" ger "Konfigurationsdatei '%-.64s' ist zu groß" --- mysql-5.1.17-beta/sql/sql_yacc.yy 2007-04-04 15:13:09.000000000 +0200 +++ mysql-5.1.17-beta-mysqlimport-stdin-clean/sql/sql_yacc.yy 2007-05-08 02:49:17.000000000 +0200 @@ -945,6 +945,7 @@ %token SHIFT_RIGHT /* OPERATOR */ %token SHOW %token SHUTDOWN +%token SIGNAL_SYM %token SIGNED_SYM %token SIMPLE_SYM /* SQL-2003-N */ %token SLAVE @@ -2644,6 +2645,7 @@ | sp_proc_stmt_unlabeled | sp_proc_stmt_leave | sp_proc_stmt_iterate + | sp_proc_stmt_signal | sp_proc_stmt_open | sp_proc_stmt_fetch | sp_proc_stmt_close @@ -2775,6 +2777,18 @@ } ; +sp_proc_stmt_signal: + SIGNAL_SYM + { + LEX *lex= Lex; + sp_head *sp= lex->sphead; + sp_instr_error *i; + + i= new sp_instr_error(sp->instructions(), lex->spcont, ER_SP_SIGNAL); + sp->add_instr(i); + } + + sp_proc_stmt_iterate: ITERATE_SYM label_ident {