Bug #49837 mysqltest exec cannot handle multi-line command correctly
Since the exec command line is passed on externally, it cannot take newlines Simply replace \n with space Now also added test case
This commit is contained in:
parent
9ada265d39
commit
5ae2eda776
@ -2661,6 +2661,10 @@ void do_exec(struct st_command *command)
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* exec command is interpreted externally and will not take newlines */
|
||||||
|
while(replace(&ds_cmd, "\n", 1, " ", 1) == 0)
|
||||||
|
;
|
||||||
|
|
||||||
DBUG_PRINT("info", ("Executing '%s' as '%s'",
|
DBUG_PRINT("info", ("Executing '%s' as '%s'",
|
||||||
command->first_argument, ds_cmd.str));
|
command->first_argument, ds_cmd.str));
|
||||||
|
|
||||||
|
@ -216,6 +216,12 @@ source database
|
|||||||
echo message echo message
|
echo message echo message
|
||||||
|
|
||||||
mysqltest: At line 1: Missing argument in exec
|
mysqltest: At line 1: Missing argument in exec
|
||||||
|
1
|
||||||
|
1
|
||||||
|
2
|
||||||
|
2
|
||||||
|
X
|
||||||
|
3
|
||||||
MySQL
|
MySQL
|
||||||
"MySQL"
|
"MySQL"
|
||||||
MySQL: The
|
MySQL: The
|
||||||
|
@ -605,6 +605,15 @@ echo ;
|
|||||||
--error 1
|
--error 1
|
||||||
--exec echo "--exec " | $MYSQL_TEST 2>&1
|
--exec echo "--exec " | $MYSQL_TEST 2>&1
|
||||||
|
|
||||||
|
# Multi-line exec
|
||||||
|
exec $MYSQL
|
||||||
|
test -e "select 1";
|
||||||
|
exec $MYSQL test -e "select
|
||||||
|
2";
|
||||||
|
let $query = select 3
|
||||||
|
as X;
|
||||||
|
exec $MYSQL test -e "$query";
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# Test let command
|
# Test let command
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user