Handle backslashes correctly in strings that also have doubled quotes when
we are using the NO_BACKSLASH_ESCAPES SQL mode. (Bug #6368)
This commit is contained in:
parent
9eca8dced6
commit
f32c61fbaf
@ -386,4 +386,18 @@ p mask example
|
||||
20 \\\\% \\\\%
|
||||
20 \\\\% \\\\_
|
||||
DROP TABLE t1;
|
||||
SET @@SQL_MODE='NO_BACKSLASH_ESCAPES';
|
||||
SELECT 'a\\b', 'a\\\"b', 'a''\\b', 'a''\\\"b';
|
||||
a\\b a\\\"b a'\\b a'\\\"b
|
||||
a\\b a\\\"b a'\\b a'\\\"b
|
||||
SELECT "a\\b", "a\\\'b", "a""\\b", "a""\\\'b";
|
||||
a\\b a\\\'b a"\\b a"\\\'b
|
||||
a\\b a\\\'b a"\\b a"\\\'b
|
||||
SET @@SQL_MODE='';
|
||||
SELECT 'a\\b', 'a\\\"b', 'a''\\b', 'a''\\\"b';
|
||||
a\b a\"b a'\b a'\"b
|
||||
a\b a\"b a'\b a'\"b
|
||||
SELECT "a\\b", "a\\\'b", "a""\\b", "a""\\\'b";
|
||||
a\b a\'b a"\b a"\'b
|
||||
a\b a\'b a"\b a"\'b
|
||||
SET @@SQL_MODE=@OLD_SQL_MODE;
|
||||
|
@ -174,4 +174,14 @@ order by masks.p, example;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
# Bug #6368: Make sure backslashes mixed with doubled quotes are handled
|
||||
# correctly in NO_BACKSLASH_ESCAPES mode
|
||||
SET @@SQL_MODE='NO_BACKSLASH_ESCAPES';
|
||||
SELECT 'a\\b', 'a\\\"b', 'a''\\b', 'a''\\\"b';
|
||||
SELECT "a\\b", "a\\\'b", "a""\\b", "a""\\\'b";
|
||||
|
||||
SET @@SQL_MODE='';
|
||||
SELECT 'a\\b', 'a\\\"b', 'a''\\b', 'a''\\\"b';
|
||||
SELECT "a\\b", "a\\\'b", "a""\\b", "a""\\\'b";
|
||||
|
||||
SET @@SQL_MODE=@OLD_SQL_MODE;
|
||||
|
@ -334,7 +334,8 @@ static char *get_text(LEX *lex)
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
if (*str == '\\' && str+1 != end)
|
||||
if (!(lex->thd->variables.sql_mode & MODE_NO_BACKSLASH_ESCAPES) &&
|
||||
*str == '\\' && str+1 != end)
|
||||
{
|
||||
switch(*++str) {
|
||||
case 'n':
|
||||
|
Loading…
x
Reference in New Issue
Block a user