diff options
author | unknown <jimw@mysql.com> | 2005-02-07 12:20:08 -0800 |
---|---|---|
committer | unknown <jimw@mysql.com> | 2005-02-07 12:20:08 -0800 |
commit | 7814366660c9dc5fa210e4b74d837aa87da1488e (patch) | |
tree | 540f7542464f7ded08389366a486a1f19a89c986 | |
parent | 9c99d6b267944f2282469c793426057cb9eddba8 (diff) | |
parent | 3443fdf954dbe604db66386711ba3e36116beba0 (diff) | |
download | mariadb-git-7814366660c9dc5fa210e4b74d837aa87da1488e.tar.gz |
Merge mysql.com:/home/jimw/my/mysql-5.0-6368
into mysql.com:/home/jimw/my/mysql-5.0-clean
sql/sql_lex.cc:
Auto merged
-rw-r--r-- | mysql-test/r/sql_mode.result | 14 | ||||
-rw-r--r-- | mysql-test/t/sql_mode.test | 10 | ||||
-rw-r--r-- | sql/sql_lex.cc | 3 |
3 files changed, 26 insertions, 1 deletions
diff --git a/mysql-test/r/sql_mode.result b/mysql-test/r/sql_mode.result index 5492a7a65fc..09adc48259c 100644 --- a/mysql-test/r/sql_mode.result +++ b/mysql-test/r/sql_mode.result @@ -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; diff --git a/mysql-test/t/sql_mode.test b/mysql-test/t/sql_mode.test index fa5c6cb8a5b..e80752eb71b 100644 --- a/mysql-test/t/sql_mode.test +++ b/mysql-test/t/sql_mode.test @@ -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; diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index 0644ca5af68..b8c77a822c4 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -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': |