Loading mysql-test/t/analyse.test +5 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,11 @@ select * from t2; insert into t2 select * from t1 procedure analyse(); select * from t2; drop table t1,t2; # # Bug#2813 - analyse does not quote string values in enums from string # create table t1 (v varchar(128)); insert into t1 values ('abc'),('abc\'def\\hij\"klm\0opq'),('\''),('\"'),('\\'),('a\0'),('b\''),('c\"'),('d\\'),('\'b'),('\"c'),('\\d'),('a\0\0\0b'),('a\'\'\'\'b'),('a\"\"\"\"b'),('a\\\\\\\\b'),('\'\0\\\"'),('\'\''),('\"\"'),('\\\\'),('The\ZEnd'); select * from t1 procedure analyse(); Loading sql/sql_analyse.cc +7 −8 Original line number Diff line number Diff line Loading @@ -1029,20 +1029,19 @@ uint check_ulonglong(const char *str, uint length) } /* check_ulonlong */ /* FUNCTION: append_escaped() Quote special characters in a string. SYNOPSIS append_escaped(to_str, from_str) to_str (in) A pointer to a String. from_str (to) A pointer to an allocated string DESCRIPTION append_escaped() takes a String type variable, where it appends escaped the second argument. Only characters that require escaping will be escaped. ARGUMENTS A pointer to a String variable, where results will be appended A pointer to a String variable, which is appended to the result String, escaping those characters that require it. RETURN VALUES 0 Success 1 Out of memory Loading Loading
mysql-test/t/analyse.test +5 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,11 @@ select * from t2; insert into t2 select * from t1 procedure analyse(); select * from t2; drop table t1,t2; # # Bug#2813 - analyse does not quote string values in enums from string # create table t1 (v varchar(128)); insert into t1 values ('abc'),('abc\'def\\hij\"klm\0opq'),('\''),('\"'),('\\'),('a\0'),('b\''),('c\"'),('d\\'),('\'b'),('\"c'),('\\d'),('a\0\0\0b'),('a\'\'\'\'b'),('a\"\"\"\"b'),('a\\\\\\\\b'),('\'\0\\\"'),('\'\''),('\"\"'),('\\\\'),('The\ZEnd'); select * from t1 procedure analyse(); Loading
sql/sql_analyse.cc +7 −8 Original line number Diff line number Diff line Loading @@ -1029,20 +1029,19 @@ uint check_ulonglong(const char *str, uint length) } /* check_ulonlong */ /* FUNCTION: append_escaped() Quote special characters in a string. SYNOPSIS append_escaped(to_str, from_str) to_str (in) A pointer to a String. from_str (to) A pointer to an allocated string DESCRIPTION append_escaped() takes a String type variable, where it appends escaped the second argument. Only characters that require escaping will be escaped. ARGUMENTS A pointer to a String variable, where results will be appended A pointer to a String variable, which is appended to the result String, escaping those characters that require it. RETURN VALUES 0 Success 1 Out of memory Loading