Pantek Library
Hosting Provided By
CybrHost
High Speed Hosting

bk commit into 5.0 tree (gshchepa:1.2504) BUG#30126

From: <gshchepa(at)mysql.com>
Date: Fri Aug 31 2007 - 07:59:13 EDT


Below is the list of changes that have just been committed into a local 5.0 repository of uchum. When uchum does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository.
For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@1.2504, 2007-08-31 16:59:07+05:00, gshchepa@gleb.loc +5 -0   Fixed bug #30126.
  When dumping database from a 4.x server, the mysqldump client   inserted a delimiter sign inside special commentaries of the form:     /*!... CREATE DATABASE IF NOT EXISTS ... ;*/   During restoration that dump file was splitten by delimiter signs on   the client side, and the rest of some commentary strings was prepended   to following statements.   

  The 4x_server_emul test case option has been added for use with the   DBUG_EXECUTE_IF debugging macro. This option affects debug server   builds only to emulate particular behavior of a 4.x server for   the mysqldump client testing. Non-debugging builds are not affected.

  client/mysqldump.c@1.271, 2007-08-31 16:53:54+05:00, gshchepa@gleb.loc +1 -1     Fixed bug #30126.
    The init_dumping_tables function has been modified to output semicolon     outside of commentaries.

  mysql-test/r/mysqldump-compat.result@1.1, 2007-08-31 16:49:46+05:00, gshchepa@gleb.loc +4 -0     Added test case for bug #30126.

  mysql-test/r/mysqldump-compat.result@1.0, 2007-08-31 16:49:45+05:00, gshchepa@gleb.loc +0 -0

  mysql-test/t/mysqldump-compat.opt@1.1, 2007-08-31 16:49:46+05:00, gshchepa@gleb.loc +1 -0     Added test case for bug #30126.

  mysql-test/t/mysqldump-compat.opt@1.0, 2007-08-31 16:49:46+05:00, gshchepa@gleb.loc +0 -0

Do you need help?X

  mysql-test/t/mysqldump-compat.test@1.1, 2007-08-31 16:49:46+05:00, gshchepa@gleb.loc +13 -0     Added test case for bug #30126.

  mysql-test/t/mysqldump-compat.test@1.0, 2007-08-31 16:49:46+05:00, gshchepa@gleb.loc +0 -0

  sql/sql_parse.cc@1.636, 2007-08-31 16:53:51+05:00, gshchepa@gleb.loc +2 -0     Fixed bug #30126.
    The mysqldump client uses the "SHOW CREATE DATABASE" query to     obtain the "CREATE DATABASE" statement from that database.     The 4.x server doesn't recognise that query, and mysqldump     forms the "CREATE DATABASE" statement from scratch.     That statement was formed incorrectly.     

    To enforce the mysqldump client to create that statement from     scratch, debugging code has been added to the mysql_execute_command     function: in tcase of the --loose-debug=d,4x_server_emul option,     the server returns parse error to client to emulate old behaviour.     

    The 4x_server_emul test case option has been added for use with the     DBUG_EXECUTE_IF debugging macro. This option affects debug server     builds only to emulate particular behavior of a 4.x server for     the mysqldump client testing. Non-debugging builds are not affected.

diff -Nrup a/client/mysqldump.c b/client/mysqldump.c
--- a/client/mysqldump.c	2007-07-31 21:00:52 +05:00

+++ b/client/mysqldump.c 2007-08-31 16:53:54 +05:00
@@ -2898,7 +2898,7 @@ int init_dumping_tables(char *qdatabase) /* Old server version, dump generic CREATE DATABASE */ if (opt_drop_database) fprintf(md_result_file, - "\n/*!40000 DROP DATABASE IF EXISTS %s;*/\n", + "\n/*!40000 DROP DATABASE IF EXISTS %s*/;\n", qdatabase); fprintf(md_result_file, "\nCREATE DATABASE /*!32312 IF NOT EXISTS*/ %s;\n", diff -Nrup a/mysql-test/r/mysqldump-compat.result b/mysql-test/r/mysqldump-compat.result --- /dev/null Wed Dec 31 16:00:00 196900
+++ b/mysql-test/r/mysqldump-compat.result 2007-08-31 16:49:46 +05:00
@@ -0,0 +1,4 @@
+CREATE DATABASE mysqldump_30126;
+USE mysqldump_30126;
+CREATE TABLE t1 (c1 int);
+DROP DATABASE mysqldump_30126;
diff -Nrup a/mysql-test/t/mysqldump-compat.opt b/mysql-test/t/mysqldump-compat.opt
--- /dev/null	Wed Dec 31 16:00:00 196900

+++ b/mysql-test/t/mysqldump-compat.opt 2007-08-31 16:49:46 +05:00
@@ -0,0 +1 @@
+--loose-debug=d,4x_server_emul
diff -Nrup a/mysql-test/t/mysqldump-compat.test b/mysql-test/t/mysqldump-compat.test
--- /dev/null	Wed Dec 31 16:00:00 196900

+++ b/mysql-test/t/mysqldump-compat.test 2007-08-31 16:49:46 +05:00
@@ -0,0 +1,13 @@
+# Embedded server doesn't support external clients
+--source include/not_embedded.inc
+
+#
+# Bug #30126: semicolon before closing */ in /*!... CREATE DATABASE ;*/
+#
+
+CREATE DATABASE mysqldump_30126;
+USE mysqldump_30126;
+CREATE TABLE t1 (c1 int);
+--exec $MYSQL_DUMP --add-drop-database mysqldump_30126 > $MYSQLTEST_VARDIR/tmp/bug30126.sql
+--exec $MYSQL mysqldump_30126 < $MYSQLTEST_VARDIR/tmp/bug30126.sql
+DROP DATABASE mysqldump_30126;
diff -Nrup a/sql/sql_parse.cc b/sql/sql_parse.cc
--- a/sql/sql_parse.cc	2007-08-05 08:53:13 +05:00

+++ b/sql/sql_parse.cc 2007-08-31 16:53:51 +05:00
@@ -3990,6 +3990,8 @@ end_with_restore_list:

   }
   case SQLCOM_SHOW_CREATE_DB:
   {
+ DBUG_EXECUTE_IF("4x_server_emul",

+                    my_error(ER_UNKNOWN_ERROR, MYF(0)); goto error;);
     if (!strip_sp(lex->name) || check_db_name(lex->name))
     {
       my_error(ER_WRONG_DB_NAME, MYF(0), lex->name);
-- 
MySQL Code Commits Mailing List
For list archives: 
http://lists.mysql.com/commits
To unsubscribe:    
http://lists.mysql.com/commits?unsub=lists@pantek.com
Received on Fri Aug 31 08:01:16 2007

This archive was generated by hypermail 2.1.8 : Sun Oct 07 2007 - 09:01:20 EDT


Contact Us  Legal Notices  Order Services Online 
Pantek Home  Privacy Policy  IT news  Site Map  Pantek Library