|
|||||||||||
|
bk commit into 5.1 tree (anozdrin:1.2517)
From: Alexander Nozdrin <alik(at)mysql.com>
Date: Fri Jun 29 2007 - 08:52:11 EDT
ChangeSet@1.2517, 2007-06-29 16:52:05+04:00, anozdrin@ibm. +4 -0 Folow up on the CS patch:
client/mysqldump.c@1.284, 2007-06-29 16:52:02+04:00, anozdrin@ibm. +45 -18 Prevent crash if collation does not exist. mysql-test/t/ddl_i18n_koi8r.test@1.2, 2007-06-29 16:52:02+04:00, anozdrin@ibm. +13 -13 Explicitly specify character-sets-directory for mysqldump. mysql-test/t/ddl_i18n_utf8.test@1.2, 2007-06-29 16:52:02+04:00, anozdrin@ibm. +13 -13 Explicitly specify character-sets-directory for mysqldump. sql/sql_lex.cc@1.249, 2007-06-29 16:52:02+04:00, anozdrin@ibm. +1 -1 Use my_charset_same() function to check if the charset names are equal. diff -Nrup a/client/mysqldump.c b/client/mysqldump.c --- a/client/mysqldump.c 2007-06-28 21:34:47 +04:00 +++ b/client/mysqldump.c 2007-06-29 16:52:02 +04:00{ if (strcmp(current_db_cl_name, required_db_cl_name) != 0) { CHARSET_INFO *db_cl= get_charset_by_name(required_db_cl_name, MYF(0));
+ if (!db_cl)
+ return 1;
+
fprintf(sql_file,
"ALTER DATABASE %s CHARACTER SET %s COLLATE %s %s\n",
(const char *) db_name,
+ *db_cl_altered= 0;
return 0;
-static void restore_db_collation(FILE *sql_file, - const char *db_name, - const char *delimiter, - const char *db_cl_name) +static int restore_db_collation(FILE *sql_file, + const char *db_name, + const char *delimiter, + const char *db_cl_name){ CHARSET_INFO *db_cl= get_charset_by_name(db_cl_name, MYF(0));
+ if (!db_cl)
+ return 1;
+
fprintf(sql_file,
"ALTER DATABASE %s CHARACTER SET %s COLLATE %s %s\n",
(const char *) db_name,
(const char *) db_cl->csname,
(const char *) db_cl->name,
(const char *) delimiter);
+ + return 0; } @@ -1724,11 +1737,11 @@ static uint dump_events_for_db(char *db) fprintf(sql_file, "DELIMITER %s\n", delimiter);
switch_cs_variables(sql_file, delimiter,
row[4], /* character_set_client */
@@ -139,7 +139,7 @@ set names koi8r| --echo --echo ---> Dumping mysqltest1 to ddl_i18n_koi8r.views.mysqltest1.sql ---exec $MYSQL_DUMP --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.views.mysqltest1.sql +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.views.mysqltest1.sql # - Clean mysqltest1; @@ -393,22 +393,22 @@ set names koi8r| ---exec $MYSQL_DUMP --compact --routines --databases mysqltest1 +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest1
--echo
---exec $MYSQL_DUMP --compact --routines --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.sp.mysqltest1.sql +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.sp.mysqltest1.sql
--echo
---exec $MYSQL_DUMP --compact --routines --databases mysqltest2 +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest2
--echo
---exec $MYSQL_DUMP --compact --routines --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.sp.mysqltest2.sql +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.sp.mysqltest2.sql # - Clean mysqltest1, mysqltest2; @@ -664,22 +664,22 @@ use mysqltest1| ---exec $MYSQL_DUMP --compact --triggers --databases mysqltest1 +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest1
--echo
---exec $MYSQL_DUMP --compact --triggers --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.triggers.mysqltest1.sql +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.triggers.mysqltest1.sql
--echo
---exec $MYSQL_DUMP --compact --triggers --databases mysqltest2 +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest2
--echo
---exec $MYSQL_DUMP --compact --triggers --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.triggers.mysqltest2.sql +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.triggers.mysqltest2.sql # - Clean mysqltest1, mysqltest2; @@ -919,22 +919,22 @@ set names koi8r| ---exec $MYSQL_DUMP --compact --events --databases mysqltest1 +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest1
--echo
---exec $MYSQL_DUMP --compact --events --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.events.mysqltest1.sql +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.events.mysqltest1.sql
--echo
---exec $MYSQL_DUMP --compact --events --databases mysqltest2 +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest2
--echo
---exec $MYSQL_DUMP --compact --events --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.events.mysqltest2.sql +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.events.mysqltest2.sql # - Clean mysqltest1, mysqltest2; diff -Nrup a/mysql-test/t/ddl_i18n_utf8.test b/mysql-test/t/ddl_i18n_utf8.test --- a/mysql-test/t/ddl_i18n_utf8.test 2007-06-28 21:34:50 +04:00 +++ b/mysql-test/t/ddl_i18n_utf8.test 2007-06-29 16:52:02 +04:00 @@ -139,7 +139,7 @@ set names utf8| --echo --echo ---> Dumping mysqltest1 to ddl_i18n_utf8views.mysqltest1.sql ---exec $MYSQL_DUMP --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8views.mysqltest1.sql +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8views.mysqltest1.sql # - Clean mysqltest1; @@ -393,22 +393,22 @@ set names utf8| ---exec $MYSQL_DUMP --compact --routines --databases mysqltest1 +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest1
--echo
---exec $MYSQL_DUMP --compact --routines --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8sp.mysqltest1.sql +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8sp.mysqltest1.sql
--echo
---exec $MYSQL_DUMP --compact --routines --databases mysqltest2 +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest2
--echo
---exec $MYSQL_DUMP --compact --routines --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8sp.mysqltest2.sql +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8sp.mysqltest2.sql # - Clean mysqltest1, mysqltest2; @@ -664,22 +664,22 @@ use mysqltest1| ---exec $MYSQL_DUMP --compact --triggers --databases mysqltest1 +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest1
--echo
---exec $MYSQL_DUMP --compact --triggers --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8triggers.mysqltest1.sql +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8triggers.mysqltest1.sql
--echo
---exec $MYSQL_DUMP --compact --triggers --databases mysqltest2 +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest2
--echo
---exec $MYSQL_DUMP --compact --triggers --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8triggers.mysqltest2.sql +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8triggers.mysqltest2.sql # - Clean mysqltest1, mysqltest2; @@ -919,22 +919,22 @@ set names utf8| ---exec $MYSQL_DUMP --compact --events --databases mysqltest1 +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest1
--echo
---exec $MYSQL_DUMP --compact --events --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8events.mysqltest1.sql +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8events.mysqltest1.sql
--echo
---exec $MYSQL_DUMP --compact --events --databases mysqltest2 +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest2
--echo
---exec $MYSQL_DUMP --compact --events --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8events.mysqltest2.sql +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8events.mysqltest2.sql # - Clean mysqltest1, mysqltest2; diff -Nrup a/sql/sql_lex.cc b/sql/sql_lex.cc --- a/sql/sql_lex.cc 2007-06-28 21:34:49 +04:00 +++ b/sql/sql_lex.cc 2007-06-29 16:52:02 +04:00 @@ -249,7 +249,7 @@ void Lex_input_stream::body_utf8_append_ LEX_STRING utf_txt;
-- MySQL Code Commits Mailing List For list archives: http://lists.mysql.com/commits To unsubscribe: http://lists.mysql.com/commits?unsub=lists@pantek.comReceived on Fri Jun 29 08:53:23 2007 This archive was generated by hypermail 2.1.8 : Fri Jun 29 2007 - 09:00:02 EDT |
||||||||||
|
|||||||||||