From 7b4a85050b59f6148e8ab4e6f3ae92aa1427f170 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 14 Nov 2003 13:46:50 +0100 Subject: [PATCH] Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) Also fixed memory leak when aborting parsing for a duplicate cursor. include/mysqld_error.h: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) mysql-test/r/sp-error.result: Fixed error message for duplicate variable. mysql-test/t/sp-error.test: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/czech/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/danish/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/dutch/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/english/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/estonian/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/french/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/german/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/greek/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/hungarian/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/italian/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/japanese/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/korean/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/norwegian-ny/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/norwegian/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/polish/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/portuguese/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/romanian/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/russian/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/serbian/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/slovak/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/spanish/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/swedish/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) sql/share/ukrainian/errmsg.txt: Changed single generic error code/message into different ones for duplicate things. (For multi-lingual support.) --- include/mysqld_error.h | 7 +++++-- mysql-test/r/sp-error.result | 2 +- mysql-test/t/sp-error.test | 9 ++++++--- sql/share/czech/errmsg.txt | 5 ++++- sql/share/danish/errmsg.txt | 5 ++++- sql/share/dutch/errmsg.txt | 5 ++++- sql/share/english/errmsg.txt | 5 ++++- sql/share/estonian/errmsg.txt | 5 ++++- sql/share/french/errmsg.txt | 5 ++++- sql/share/german/errmsg.txt | 5 ++++- sql/share/greek/errmsg.txt | 5 ++++- sql/share/hungarian/errmsg.txt | 5 ++++- sql/share/italian/errmsg.txt | 5 ++++- sql/share/japanese/errmsg.txt | 5 ++++- sql/share/korean/errmsg.txt | 5 ++++- sql/share/norwegian-ny/errmsg.txt | 5 ++++- sql/share/norwegian/errmsg.txt | 5 ++++- sql/share/polish/errmsg.txt | 5 ++++- sql/share/portuguese/errmsg.txt | 5 ++++- sql/share/romanian/errmsg.txt | 5 ++++- sql/share/russian/errmsg.txt | 5 ++++- sql/share/serbian/errmsg.txt | 5 ++++- sql/share/slovak/errmsg.txt | 5 ++++- sql/share/spanish/errmsg.txt | 5 ++++- sql/share/swedish/errmsg.txt | 5 ++++- sql/share/ukrainian/errmsg.txt | 5 ++++- sql/sql_yacc.yy | 13 +++++++------ 27 files changed, 111 insertions(+), 35 deletions(-) diff --git a/include/mysqld_error.h b/include/mysqld_error.h index 4304235055f..4031d64602f 100644 --- a/include/mysqld_error.h +++ b/include/mysqld_error.h @@ -323,5 +323,8 @@ #define ER_SP_UNDECLARED_VAR 1304 #define ER_SP_WRONG_NO_OF_FETCH_ARGS 1305 #define ER_SP_FETCH_NO_DATA 1306 -#define ER_SP_DUP_THING 1307 -#define ER_ERROR_MESSAGES 308 +#define ER_SP_DUP_PARAM 1307 +#define ER_SP_DUP_VAR 1308 +#define ER_SP_DUP_COND 1309 +#define ER_SP_DUP_CURS 1310 +#define ER_ERROR_MESSAGES 311 diff --git a/mysql-test/r/sp-error.result b/mysql-test/r/sp-error.result index 2ece3e61d1d..82da4e0cb2e 100644 --- a/mysql-test/r/sp-error.result +++ b/mysql-test/r/sp-error.result @@ -237,7 +237,7 @@ begin declare x float; declare x int; end; -ERROR HY000: Duplicate parameter: x +ERROR HY000: Duplicate variable: x create procedure p() begin declare c condition for 1064; diff --git a/mysql-test/t/sp-error.test b/mysql-test/t/sp-error.test index 09a1e196786..d98385b42e0 100644 --- a/mysql-test/t/sp-error.test +++ b/mysql-test/t/sp-error.test @@ -311,19 +311,22 @@ end| create function p(x int, x char(10)) begin end| ---error 1307 + +--error 1308 create procedure p() begin declare x float; declare x int; end| ---error 1307 + +--error 1309 create procedure p() begin declare c condition for 1064; declare c condition for 1065; end| ---error 1307 + +--error 1310 create procedure p() begin declare c cursor for select * from t1; diff --git a/sql/share/czech/errmsg.txt b/sql/share/czech/errmsg.txt index 1f85a5fb84b..abad832511f 100644 --- a/sql/share/czech/errmsg.txt +++ b/sql/share/czech/errmsg.txt @@ -319,4 +319,7 @@ character-set=latin2 "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/danish/errmsg.txt b/sql/share/danish/errmsg.txt index f66b1492433..f3ee18e586f 100644 --- a/sql/share/danish/errmsg.txt +++ b/sql/share/danish/errmsg.txt @@ -313,4 +313,7 @@ character-set=latin1 "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/dutch/errmsg.txt b/sql/share/dutch/errmsg.txt index d4ea5803390..df1445d3758 100644 --- a/sql/share/dutch/errmsg.txt +++ b/sql/share/dutch/errmsg.txt @@ -321,4 +321,7 @@ character-set=latin1 "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/english/errmsg.txt b/sql/share/english/errmsg.txt index b52762aaac9..c38969b778c 100644 --- a/sql/share/english/errmsg.txt +++ b/sql/share/english/errmsg.txt @@ -310,4 +310,7 @@ character-set=latin1 "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/estonian/errmsg.txt b/sql/share/estonian/errmsg.txt index 18201380fbd..885e9cd5c11 100644 --- a/sql/share/estonian/errmsg.txt +++ b/sql/share/estonian/errmsg.txt @@ -315,4 +315,7 @@ character-set=latin7 "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/french/errmsg.txt b/sql/share/french/errmsg.txt index c5912d59d23..acb003fb8a4 100644 --- a/sql/share/french/errmsg.txt +++ b/sql/share/french/errmsg.txt @@ -310,4 +310,7 @@ character-set=latin1 "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/german/errmsg.txt b/sql/share/german/errmsg.txt index cc3a9d88a45..855db0ee094 100644 --- a/sql/share/german/errmsg.txt +++ b/sql/share/german/errmsg.txt @@ -322,4 +322,7 @@ character-set=latin1 "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/greek/errmsg.txt b/sql/share/greek/errmsg.txt index b64a1971e35..60e3adf5aae 100644 --- a/sql/share/greek/errmsg.txt +++ b/sql/share/greek/errmsg.txt @@ -310,4 +310,7 @@ character-set=greek "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/hungarian/errmsg.txt b/sql/share/hungarian/errmsg.txt index 911cf3a09b6..aef2808cdd2 100644 --- a/sql/share/hungarian/errmsg.txt +++ b/sql/share/hungarian/errmsg.txt @@ -312,4 +312,7 @@ character-set=latin2 "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/italian/errmsg.txt b/sql/share/italian/errmsg.txt index 152bd2dd922..429909cfa08 100644 --- a/sql/share/italian/errmsg.txt +++ b/sql/share/italian/errmsg.txt @@ -310,4 +310,7 @@ character-set=latin1 "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/japanese/errmsg.txt b/sql/share/japanese/errmsg.txt index 963642a6348..1f7e4b4c103 100644 --- a/sql/share/japanese/errmsg.txt +++ b/sql/share/japanese/errmsg.txt @@ -312,4 +312,7 @@ character-set=ujis "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/korean/errmsg.txt b/sql/share/korean/errmsg.txt index 7f721cd999e..ba2ab18f1f5 100644 --- a/sql/share/korean/errmsg.txt +++ b/sql/share/korean/errmsg.txt @@ -310,4 +310,7 @@ character-set=euckr "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/norwegian-ny/errmsg.txt b/sql/share/norwegian-ny/errmsg.txt index ab9c428e3b0..a72f78540f2 100644 --- a/sql/share/norwegian-ny/errmsg.txt +++ b/sql/share/norwegian-ny/errmsg.txt @@ -312,4 +312,7 @@ character-set=latin1 "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/norwegian/errmsg.txt b/sql/share/norwegian/errmsg.txt index 29e14d3b580..8dbef326260 100644 --- a/sql/share/norwegian/errmsg.txt +++ b/sql/share/norwegian/errmsg.txt @@ -312,4 +312,7 @@ character-set=latin1 "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/polish/errmsg.txt b/sql/share/polish/errmsg.txt index c0caecfd5a0..60d7b4d83cf 100644 --- a/sql/share/polish/errmsg.txt +++ b/sql/share/polish/errmsg.txt @@ -314,4 +314,7 @@ character-set=latin2 "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/portuguese/errmsg.txt b/sql/share/portuguese/errmsg.txt index 4044abdbcb2..95f959c4a18 100644 --- a/sql/share/portuguese/errmsg.txt +++ b/sql/share/portuguese/errmsg.txt @@ -311,4 +311,7 @@ character-set=latin1 "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/romanian/errmsg.txt b/sql/share/romanian/errmsg.txt index 1fdcec122b8..976a897eb39 100644 --- a/sql/share/romanian/errmsg.txt +++ b/sql/share/romanian/errmsg.txt @@ -314,4 +314,7 @@ character-set=latin2 "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/russian/errmsg.txt b/sql/share/russian/errmsg.txt index 9736cf23d2b..a446d69cd12 100644 --- a/sql/share/russian/errmsg.txt +++ b/sql/share/russian/errmsg.txt @@ -312,4 +312,7 @@ character-set=koi8r "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/serbian/errmsg.txt b/sql/share/serbian/errmsg.txt index d95500183f0..bd44ade9b72 100644 --- a/sql/share/serbian/errmsg.txt +++ b/sql/share/serbian/errmsg.txt @@ -305,4 +305,7 @@ character-set=cp1250 "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/slovak/errmsg.txt b/sql/share/slovak/errmsg.txt index 2cf355e2659..85bbced043b 100644 --- a/sql/share/slovak/errmsg.txt +++ b/sql/share/slovak/errmsg.txt @@ -318,4 +318,7 @@ character-set=latin2 "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/spanish/errmsg.txt b/sql/share/spanish/errmsg.txt index 53d3c26b990..ae76b53b130 100644 --- a/sql/share/spanish/errmsg.txt +++ b/sql/share/spanish/errmsg.txt @@ -312,4 +312,7 @@ character-set=latin1 "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/swedish/errmsg.txt b/sql/share/swedish/errmsg.txt index ac9ac52c0f3..5282e9e1fab 100644 --- a/sql/share/swedish/errmsg.txt +++ b/sql/share/swedish/errmsg.txt @@ -310,4 +310,7 @@ character-set=latin1 "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/share/ukrainian/errmsg.txt b/sql/share/ukrainian/errmsg.txt index 3e3e06d31ea..2059e1f1cea 100644 --- a/sql/share/ukrainian/errmsg.txt +++ b/sql/share/ukrainian/errmsg.txt @@ -315,4 +315,7 @@ character-set=koi8u "Undeclared variable: %s" "Wrong number of FETCH variables" "No data to FETCH" -"Duplicate %s: %s" +"Duplicate parameter: %s" +"Duplicate variable: %s" +"Duplicate condition: %s" +"Duplicate cursor: %s" diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 391cac37ceb..0af4b774615 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -1155,7 +1155,7 @@ sp_fdparam: if (spc->find_pvar(&$1, TRUE)) { - net_printf(YYTHD, ER_SP_DUP_THING, "parameter", $1.str); + net_printf(YYTHD, ER_SP_DUP_PARAM, $1.str); YYABORT; } spc->push_pvar(&$1, (enum enum_field_types)$2, sp_param_in); @@ -1181,7 +1181,7 @@ sp_pdparam: if (spc->find_pvar(&$2, TRUE)) { - net_printf(YYTHD, ER_SP_DUP_THING, "parameter", $2.str); + net_printf(YYTHD, ER_SP_DUP_PARAM, $2.str); YYABORT; } spc->push_pvar(&$2, (enum enum_field_types)$3, @@ -1252,7 +1252,7 @@ sp_decl: if (spc->find_cond(&$2, TRUE)) { - net_printf(YYTHD, ER_SP_DUP_THING, "condition", $2.str); + net_printf(YYTHD, ER_SP_DUP_COND, $2.str); YYABORT; } YYTHD->lex->spcont->push_cond(&$2, $5); @@ -1302,7 +1302,8 @@ sp_decl: if (spc->find_cursor(&$2, &offp, TRUE)) { - net_printf(YYTHD, ER_SP_DUP_THING, "cursor", $2.str); + net_printf(YYTHD, ER_SP_DUP_CURS, $2.str); + delete $5; YYABORT; } i= new sp_instr_cpush(sp->instructions(), $5); @@ -1432,7 +1433,7 @@ sp_decl_idents: if (spc->find_pvar(&$1, TRUE)) { - net_printf(YYTHD, ER_SP_DUP_THING, "parameter", $1.str); + net_printf(YYTHD, ER_SP_DUP_VAR, $1.str); YYABORT; } spc->push_pvar(&$1, (enum_field_types)0, sp_param_in); @@ -1445,7 +1446,7 @@ sp_decl_idents: if (spc->find_pvar(&$3, TRUE)) { - net_printf(YYTHD, ER_SP_DUP_THING, "parameter", $3.str); + net_printf(YYTHD, ER_SP_DUP_VAR, $3.str); YYABORT; } spc->push_pvar(&$3, (enum_field_types)0, sp_param_in);