Commit ec95bf78 authored by unknown's avatar unknown

Bug #20103: Escaping with backslash does not work

 - make the client to respect the server-side 
   no_backslash_escapes option and disable the 
   special meaning of backslash also at client side.


mysql-test/r/mysql_client.result:
  Bug #20103: Escaping with backslash does not work
   - test case
mysql-test/t/mysql_client.test:
  Bug #20103: Escaping with backslash does not work
   - test case
parent 667c73be
...@@ -1221,7 +1221,8 @@ static bool add_line(String &buffer,char *line,char *in_string, ...@@ -1221,7 +1221,8 @@ static bool add_line(String &buffer,char *line,char *in_string,
continue; continue;
} }
#endif #endif
if (!*ml_comment && inchar == '\\') if (!*ml_comment && inchar == '\\' &&
!(mysql.server_status & SERVER_STATUS_NO_BACKSLASH_ESCAPES))
{ {
// Found possbile one character command like \c // Found possbile one character command like \c
......
...@@ -2,3 +2,7 @@ ...@@ -2,3 +2,7 @@
1 1
ERROR 1064 (42000) at line 3: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 ERROR 1064 (42000) at line 3: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
ERROR at line 1: USE must be followed by a database name ERROR at line 1: USE must be followed by a database name
\
\\
';
';
...@@ -27,3 +27,14 @@ ...@@ -27,3 +27,14 @@
# client comment recognized, but parameter missing => error # client comment recognized, but parameter missing => error
--exec echo "use" > $MYSQLTEST_VARDIR/tmp/bug20432.sql --exec echo "use" > $MYSQLTEST_VARDIR/tmp/bug20432.sql
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1 --exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
#
# Bug #20103: Escaping with backslash does not work
#
--exec echo "SET SQL_MODE = 'NO_BACKSLASH_ESCAPES';" > $MYSQLTEST_VARDIR/tmp/bug20103.sql
--exec echo "SELECT '\';" >> $MYSQLTEST_VARDIR/tmp/bug20103.sql
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20103.sql 2>&1
--exec echo "SET SQL_MODE = '';" > $MYSQLTEST_VARDIR/tmp/bug20103.sql
--exec echo "SELECT '\';';" >> $MYSQLTEST_VARDIR/tmp/bug20103.sql
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20103.sql 2>&1
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