Commit f20955af authored by petr@mysql.com's avatar petr@mysql.com

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

               commands accept a list as argument"
parent 78f4f940
...@@ -64,3 +64,7 @@ mysqld1 online ...@@ -64,3 +64,7 @@ mysqld1 online
mysqld2 offline mysqld2 offline
SHOW INSTANCE STATUS; 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 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; ...@@ -149,3 +149,18 @@ SHOW INSTANCES;
########################################################################### ###########################################################################
--error 1149 --error 1149
SHOW INSTANCE STATUS; 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) ...@@ -143,7 +143,7 @@ Command *parse_command(Instance_map *map, const char *text)
instance_name_len= word_len; instance_name_len= word_len;
text+= word_len; text+= word_len;
/* it should be the end of command */ /* it should be the end of command */
get_word(&text, &word_len); get_word(&text, &word_len, NONSPACE);
if (word_len) if (word_len)
goto syntax_error; goto syntax_error;
...@@ -156,7 +156,7 @@ Command *parse_command(Instance_map *map, const char *text) ...@@ -156,7 +156,7 @@ Command *parse_command(Instance_map *map, const char *text)
if (shift_token(&text, &word_len) != TOK_INSTANCES) if (shift_token(&text, &word_len) != TOK_INSTANCES)
goto syntax_error; goto syntax_error;
get_word(&text, &word_len); get_word(&text, &word_len, NONSPACE);
if (word_len) if (word_len)
goto syntax_error; goto syntax_error;
...@@ -197,7 +197,7 @@ Command *parse_command(Instance_map *map, const char *text) ...@@ -197,7 +197,7 @@ Command *parse_command(Instance_map *map, const char *text)
} }
/* should be empty */ /* should be empty */
get_word(&text, &word_len); get_word(&text, &word_len, NONSPACE);
if (word_len) if (word_len)
goto syntax_error; goto syntax_error;
...@@ -213,7 +213,7 @@ Command *parse_command(Instance_map *map, const char *text) ...@@ -213,7 +213,7 @@ Command *parse_command(Instance_map *map, const char *text)
case TOK_SHOW: case TOK_SHOW:
switch (shift_token(&text, &word_len)) { switch (shift_token(&text, &word_len)) {
case TOK_INSTANCES: case TOK_INSTANCES:
get_word(&text, &word_len); get_word(&text, &word_len, NONSPACE);
if (word_len) if (word_len)
goto syntax_error; goto syntax_error;
command= new Show_instances(map); command= new Show_instances(map);
...@@ -226,7 +226,7 @@ Command *parse_command(Instance_map *map, const char *text) ...@@ -226,7 +226,7 @@ Command *parse_command(Instance_map *map, const char *text)
goto syntax_error; goto syntax_error;
text+= instance_name_len; text+= instance_name_len;
/* check that this is the end of the command */ /* check that this is the end of the command */
get_word(&text, &word_len); get_word(&text, &word_len, NONSPACE);
if (word_len) if (word_len)
goto syntax_error; goto syntax_error;
if (tok2 == TOK_STATUS) if (tok2 == TOK_STATUS)
...@@ -250,7 +250,7 @@ Command *parse_command(Instance_map *map, const char *text) ...@@ -250,7 +250,7 @@ Command *parse_command(Instance_map *map, const char *text)
case TOK_LOG: case TOK_LOG:
switch (Token tok3= shift_token(&text, &word_len)) { switch (Token tok3= shift_token(&text, &word_len)) {
case TOK_FILES: case TOK_FILES:
get_word(&text, &word_len); get_word(&text, &word_len, NONSPACE);
/* check that this is the end of the command */ /* check that this is the end of the command */
if (word_len) if (word_len)
goto syntax_error; goto syntax_error;
...@@ -293,7 +293,10 @@ Command *parse_command(Instance_map *map, const char *text) ...@@ -293,7 +293,10 @@ Command *parse_command(Instance_map *map, const char *text)
command= new Show_instance_log(map, instance_name, command= new Show_instance_log(map, instance_name,
instance_name_len, log_type, instance_name_len, log_type,
log_size, text); 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; break;
case '\0': case '\0':
command= new Show_instance_log(map, instance_name, 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