[MDEV-4684] Enhancement request: --init-command support for mysqlslap Created: 2013-06-20  Updated: 2013-09-24  Resolved: 2013-09-23

Status: Closed
Project: MariaDB Server
Component/s: None
Fix Version/s: 5.5.34

Type: Task Priority: Minor
Reporter: Peter (Stig) Edwards Assignee: Sergey Vojtovich
Resolution: Fixed Votes: 0
Labels: None


 Description   

Hello and thank you for mariadb,

I was not able to create this request with anything other than Bug/Epic/Task.

While testing handlersocket with mysqlslap I came upon the need for mysqlslap to support --init-command, this was because on http://varokism.blogspot.co.uk/2010/12/using-mysql-as-nosql-story-for_27.html it looked like init_connect was at one time supported. I have:

~/.my.cnf
[client]
init-command = use test;HANDLER table_a OPEN

and am using mysqlslap thus:

mysqlslap --create-schema=test --query="HANDLER table_a READ \`PRIMARY\`=(101)"

These are the changes I made against trunk to get this to work:

bzr diff
=== modified file 'client/mysqlslap.c'
--- client/mysqlslap.c  2012-12-18 14:01:58 +0000
+++ client/mysqlslap.c  2013-06-19 20:32:44 +0000
@@ -123,7 +123,8 @@
             *default_engine= NULL,
             *pre_system= NULL,
             *post_system= NULL,
-            *opt_mysql_unix_port= NULL;
+            *opt_mysql_unix_port= NULL,
+            *opt_init_command= NULL;
 static char *opt_plugin_dir= 0, *opt_default_auth= 0;
 
 const char *delimiter= "\n";
@@ -633,6 +634,11 @@
     GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
   {"host", 'h', "Connect to host.", &host, &host, 0, GET_STR,
     REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+  {"init-command", OPT_INIT_COMMAND,
+   "SQL Command to execute when connecting to MySQL server. Will "
+   "automatically be re-executed when reconnecting.",
+   &opt_init_command, &opt_init_command, 0,
+   GET_STR, 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.",
@@ -2245,6 +2251,8 @@
   for (x= 0; x < 10; x++)
   {
     set_mysql_connect_options(mysql);
+    if (opt_init_command)
+      mysql_options(mysql, MYSQL_INIT_COMMAND, opt_init_command);
     if (mysql_real_connect(mysql, host, user, opt_password,
                            create_schema_string,
                            opt_mysql_port,
 
=== modified file 'man/mysqlslap.1'
--- man/mysqlslap.1     2010-04-28 13:06:11 +0000
+++ man/mysqlslap.1     2013-06-19 20:55:23 +0000
@@ -546,6 +546,21 @@
 .sp -1
 .IP \(bu 2.3
 .\}
+.\" mysqlslap: init-command option
+.\" init-command option: mysqlslap
+\fB\-\-init\-command=str\fR
+.sp
+SQL Command to execute when connecting to MySQL server\&. Will automatically be re\-executed when reconnecting\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
 .\" mysqlslap: iterations option
 .\" iterations option: mysqlslap
 \fB\-\-iterations=\fR\fB\fIN\fR\fR,
 
=== modified file 'mysql-test/r/mysqlslap.result'
--- mysql-test/r/mysqlslap.result       2013-04-07 15:17:25 +0000
+++ mysql-test/r/mysqlslap.result       2013-06-19 21:07:38 +0000
@@ -251,3 +251,6 @@
        Number of clients running queries: 1
        Average number of queries per client: 0
 
+#
+# Add support for --init-command=str
+#
 
=== modified file 'mysql-test/t/mysqlslap.test'
--- mysql-test/t/mysqlslap.test 2012-05-07 20:20:42 +0000
+++ mysql-test/t/mysqlslap.test 2013-06-19 21:04:36 +0000
@@ -73,3 +73,9 @@
 
 --replace_regex /queries: [0-9]+.[0-9]+/queries: TIME/
 --exec $MYSQL_SLAP
+
+--echo #
+--echo # Add support for --init-command=str
+--echo #
+
+--exec $MYSQL_SLAP --init-command="select 7" --silent --concurrency=1 --iterations=1

Thank you for your consideration.



 Comments   
Comment by Sergey Vojtovich [ 2013-09-17 ]

Sergei, please review patch for this task.

Comment by Sergei Golubchik [ 2013-09-20 ]

ok to push

Comment by Sergey Vojtovich [ 2013-09-23 ]

Fixed in 5.5.34, revision-id: svoj@mariadb.org-20130917145114-0vhvia7h4zliqcm3

Comment by Peter (Stig) Edwards [ 2013-09-24 ]

Great, thank you. I am able to confirm the --init-command option for mysqlslap is working as expected with 5.5 revno:3920.

Generated at Thu Feb 08 06:58:20 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.