Commit a5ff331c authored by unknown's avatar unknown

fix Bug#12813 "Instance Manager: START/STOP INSTANCE

               commands accept a list as argument"


mysql-test/r/im_life_cycle.result:
  update result file
mysql-test/t/im_life_cycle.imtest:
  add a test for the bug
server-tools/instance-manager/parse.cc:
  check for nonaplhanumeric symbols at the end of the commands
parent 2c9e8468
......@@ -64,3 +64,7 @@ mysqld1 online
mysqld2 offline
SHOW INSTANCE STATUS;
ERROR 42000: You have an error in your command syntax. Check the manual that corresponds to your MySQL Instance Manager version for the right syntax to use
START INSTANCE mysqld1,mysqld2,mysqld3;
ERROR 42000: You have an error in your command syntax. Check the manual that corresponds to your MySQL Instance Manager version for the right syntax to use
STOP INSTANCE mysqld1,mysqld2,mysqld3;
ERROR 42000: You have an error in your command syntax. Check the manual that corresponds to your MySQL Instance Manager version for the right syntax to use
......@@ -149,3 +149,18 @@ SHOW INSTANCES;
###########################################################################
--error 1149
SHOW INSTANCE STATUS;
#
# Tests for bug fixes
#
#
# Bug #12813 Instance Manager: START/STOP INSTANCE commands accept
# a list as argument.
#
--error 1149
START INSTANCE mysqld1,mysqld2,mysqld3;
--error 1149
STOP INSTANCE mysqld1,mysqld2,mysqld3;
......@@ -143,7 +143,7 @@ Command *parse_command(Instance_map *map, const char *text)
instance_name_len= word_len;
text+= word_len;
/* it should be the end of command */
get_word(&text, &word_len);
get_word(&text, &word_len, NONSPACE);
if (word_len)
goto syntax_error;
......@@ -156,7 +156,7 @@ Command *parse_command(Instance_map *map, const char *text)
if (shift_token(&text, &word_len) != TOK_INSTANCES)
goto syntax_error;
get_word(&text, &word_len);
get_word(&text, &word_len, NONSPACE);
if (word_len)
goto syntax_error;
......@@ -197,7 +197,7 @@ Command *parse_command(Instance_map *map, const char *text)
}
/* should be empty */
get_word(&text, &word_len);
get_word(&text, &word_len, NONSPACE);
if (word_len)
goto syntax_error;
......@@ -213,7 +213,7 @@ Command *parse_command(Instance_map *map, const char *text)
case TOK_SHOW:
switch (shift_token(&text, &word_len)) {
case TOK_INSTANCES:
get_word(&text, &word_len);
get_word(&text, &word_len, NONSPACE);
if (word_len)
goto syntax_error;
command= new Show_instances(map);
......@@ -226,7 +226,7 @@ Command *parse_command(Instance_map *map, const char *text)
goto syntax_error;
text+= instance_name_len;
/* check that this is the end of the command */
get_word(&text, &word_len);
get_word(&text, &word_len, NONSPACE);
if (word_len)
goto syntax_error;
if (tok2 == TOK_STATUS)
......@@ -250,7 +250,7 @@ Command *parse_command(Instance_map *map, const char *text)
case TOK_LOG:
switch (Token tok3= shift_token(&text, &word_len)) {
case TOK_FILES:
get_word(&text, &word_len);
get_word(&text, &word_len, NONSPACE);
/* check that this is the end of the command */
if (word_len)
goto syntax_error;
......@@ -293,7 +293,10 @@ Command *parse_command(Instance_map *map, const char *text)
command= new Show_instance_log(map, instance_name,
instance_name_len, log_type,
log_size, text);
get_word(&text, &word_len, NONSPACE);
/* check that this is the end of the command */
if (word_len)
goto syntax_error;
break;
case '\0':
command= new Show_instance_log(map, instance_name,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment