List:Commits« Previous MessageNext Message »
From:Nirbhay Choubey Date:April 8 2011 6:52am
Subject:bzr commit into mysql-5.1 branch (nirbhay.choubey:3649) Bug#11765157
View as plain text  
#At file:///home/nirbhay/Project/mysql/repo/bugs/mysql-5.1.58090/ based on revid:bjorn.munch@stripped

 3649 Nirbhay Choubey	2011-04-08
      Bug#11765157 - 58090: mysqlslap drops schema specified in
                     create_schema if auto-generate-sql also set.
      
      mysqlslap uses a schema to run its tests on and later
      drops it if auto-generate-sql is used. This can be a
      problem, if the schema is an already existing one.
      
      If create-schema is used with auto-generate-sql option,
      mysqlslap while performing the cleanup, drops the specified
      database.
      
      Fixed by introducing an option --no-drop, which, if used,
      will prevent the dropping of schema at the end of the test.
     @ client/client_priv.h
        Bug#11765157 - 58090: mysqlslap drops schema specified in
                       create_schema if auto-generate-sql also set.
        
        Added an option.
     @ client/mysqlslap.c
        Bug#11765157 - 58090: mysqlslap drops schema specified in
                       create_schema if auto-generate-sql also set.
        
        Introduced an option 'no-drop' to forbid the removal of schema
        even if 'create' or 'auto-generate-sql' options are used.
     @ mysql-test/r/mysqlslap.result
        Added a testcase for Bug#11765157.
     @ mysql-test/t/mysqlslap.test
        Added a testcase for Bug#11765157.

    modified:
      client/client_priv.h
      client/mysqlslap.c
      mysql-test/r/mysqlslap.result
      mysql-test/t/mysqlslap.test
=== modified file 'client/client_priv.h'
--- a/client/client_priv.h	2010-01-27 12:23:28 +0000
+++ b/client/client_priv.h	2011-04-08 06:52:44 +0000
@@ -85,6 +85,7 @@ enum options_client
   OPT_SLAP_POST_SYSTEM,
   OPT_SLAP_COMMIT,
   OPT_SLAP_DETACH,
+  OPT_SLAP_NO_DROP,
   OPT_MYSQL_REPLACE_INTO, OPT_BASE64_OUTPUT_MODE, OPT_SERVER_ID,
   OPT_FIX_TABLE_NAMES, OPT_FIX_DB_NAMES, OPT_SSL_VERIFY_SERVER_CERT,
   OPT_DEBUG_INFO, OPT_DEBUG_CHECK, OPT_COLUMN_TYPES, OPT_ERROR_LOG_FILE,

=== modified file 'client/mysqlslap.c'
--- a/client/mysqlslap.c	2011-01-13 10:26:42 +0000
+++ b/client/mysqlslap.c	2011-04-08 06:52:44 +0000
@@ -131,7 +131,7 @@ const char *delimiter= "\n";
 
 const char *create_schema_string= "mysqlslap";
 
-static my_bool opt_preserve= TRUE;
+static my_bool opt_preserve= TRUE, opt_no_drop= FALSE;
 static my_bool debug_info_flag= 0, debug_check_flag= 0;
 static my_bool opt_only_print= FALSE;
 static my_bool opt_compress= FALSE, tty_password= FALSE,
@@ -599,6 +599,8 @@ static struct my_option my_long_options[
     REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
   {"iterations", 'i', "Number of times to run the tests.", &iterations,
     &iterations, 0, GET_UINT, REQUIRED_ARG, 1, 0, 0, 0, 0, 0},
+  {"no-drop", OPT_SLAP_NO_DROP, "Do not drop the schema after the test.",
+   &opt_no_drop, &opt_no_drop, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
   {"number-char-cols", 'x', 
     "Number of VARCHAR columns to create in table if specifying --auto-generate-sql.",
     &num_char_cols_opt, &num_char_cols_opt, 0, GET_STR, REQUIRED_ARG,
@@ -1147,8 +1149,11 @@ get_options(int *argc,char ***argv)
   if (!user)
     user= (char *)"root";
 
-  /* If something is created we clean it up, otherwise we leave schemas alone */
-  if (create_string || auto_generate_sql)
+  /*
+    If something is created and --no-drop is not specified, we drop the
+    schema.
+  */
+  if (!opt_no_drop && (create_string || auto_generate_sql))
     opt_preserve= FALSE;
 
   if (auto_generate_sql && (create_string || user_supplied_query))

=== modified file 'mysql-test/r/mysqlslap.result'
--- a/mysql-test/r/mysqlslap.result	2007-12-20 20:32:16 +0000
+++ b/mysql-test/r/mysqlslap.result	2011-04-08 06:52:44 +0000
@@ -225,3 +225,23 @@ DROP SCHEMA IF EXISTS `mysqlslap`;
 DROP PROCEDURE IF EXISTS p1;
 CREATE PROCEDURE p1() SELECT 1;
 DROP PROCEDURE p1;
+#
+# Bug #11765157 - 58090: mysqlslap drops schema specified in
+#                 create_schema if auto-generate-sql also set.
+#
+# 'bug58090' database should not be present.
+SHOW DATABASES;
+Database
+information_schema
+mtr
+mysql
+test
+# 'bug58090' database should be present.
+SHOW DATABASES;
+Database
+information_schema
+bug58090
+mtr
+mysql
+test
+DROP DATABASE bug58090;

=== modified file 'mysql-test/t/mysqlslap.test'
--- a/mysql-test/t/mysqlslap.test	2007-09-27 08:15:15 +0000
+++ b/mysql-test/t/mysqlslap.test	2011-04-08 06:52:44 +0000
@@ -53,3 +53,18 @@ CREATE PROCEDURE p1() SELECT 1;
 --exec $MYSQL_SLAP --create-schema=test --delimiter=";" --query="CALL p1; SELECT 1;" --silent 2>&1 
 
 DROP PROCEDURE p1;
+
+
+--echo #
+--echo # Bug #11765157 - 58090: mysqlslap drops schema specified in
+--echo #                 create_schema if auto-generate-sql also set.
+--echo #
+
+--exec $MYSQL_SLAP --silent --create-schema=bug58090 --concurrency=5 --iterations=20 --auto-generate-sql
+--echo # 'bug58090' database should not be present.
+SHOW DATABASES;
+--exec $MYSQL_SLAP --silent --create-schema=bug58090 --no-drop --auto-generate-sql
+--echo # 'bug58090' database should be present.
+SHOW DATABASES;
+DROP DATABASE bug58090;
+


Attachment: [text/bzr-bundle] bzr/nirbhay.choubey@oracle.com-20110408065244-y8br9lublzt79f4i.bundle
Thread
bzr commit into mysql-5.1 branch (nirbhay.choubey:3649) Bug#11765157Nirbhay Choubey8 Apr