Loading mysql-test/r/sql_mode.result +14 −0 Original line number Diff line number Diff line Loading @@ -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; mysql-test/t/sql_mode.test +10 −0 Original line number Diff line number Diff line Loading @@ -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; sql/sql_lex.cc +2 −1 Original line number Diff line number Diff line Loading @@ -337,7 +337,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 Loading
mysql-test/r/sql_mode.result +14 −0 Original line number Diff line number Diff line Loading @@ -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;
mysql-test/t/sql_mode.test +10 −0 Original line number Diff line number Diff line Loading @@ -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;
sql/sql_lex.cc +2 −1 Original line number Diff line number Diff line Loading @@ -337,7 +337,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