From: Date: April 29 2008 6:08pm Subject: bk commit into 5.1 tree (gkodinov:1.2572) BUG#36041 List-Archive: http://lists.mysql.com/commits/46197 X-Bug: 36041 Message-Id: <200804291608.m3TG8uJ8009376@magare.gmz> Below is the list of changes that have just been committed into a local 5.1 repository of gkodinov. When gkodinov does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet@stripped, 2008-04-29 19:08:52+03:00, gkodinov@stripped +3 -0 Bug #36041: mysql-test-run doesn't seem to string match 100% effectively on Windows The mysqltest docs state that the 'replace_result' command doesn't perform any escape processing. However the current implementation was processing backslash escapes in the from/to strings. This prevents replacing e.g. patch on windows (where backslash is used as a path separator). Fixed by removing the backslash escape processing from 'replace_result'. client/mysqltest.c@stripped, 2008-04-29 19:08:49+03:00, gkodinov@stripped +1 -31 Bug #36041: remove the escape processing from --replace_result mysql-test/r/mysqltest.result@stripped, 2008-04-29 19:08:50+03:00, gkodinov@stripped +3 -0 Bug #36041: test case mysql-test/t/mysqltest.test@stripped, 2008-04-29 19:08:50+03:00, gkodinov@stripped +7 -0 Bug #36041: test case diff -Nrup a/client/mysqltest.c b/client/mysqltest.c --- a/client/mysqltest.c 2008-03-30 14:12:23 +03:00 +++ b/client/mysqltest.c 2008-04-29 19:08:49 +03:00 @@ -8094,8 +8094,6 @@ uint replace_len(char * str) uint len=0; while (*str) { - if (str[0] == '\\' && str[1]) - str++; str++; len++; } @@ -8194,35 +8192,7 @@ REPLACE *init_replace(char * *from, char } for (pos=from[i], len=0; *pos ; pos++) { - if (*pos == '\\' && *(pos+1)) - { - pos++; - switch (*pos) { - case 'b': - follow_ptr->chr = SPACE_CHAR; - break; - case '^': - follow_ptr->chr = START_OF_LINE; - break; - case '$': - follow_ptr->chr = END_OF_LINE; - break; - case 'r': - follow_ptr->chr = '\r'; - break; - case 't': - follow_ptr->chr = '\t'; - break; - case 'v': - follow_ptr->chr = '\v'; - break; - default: - follow_ptr->chr = (uchar) *pos; - break; - } - } - else - follow_ptr->chr= (uchar) *pos; + follow_ptr->chr= (uchar) *pos; follow_ptr->table_offset=i; follow_ptr->len= ++len; follow_ptr++; diff -Nrup a/mysql-test/r/mysqltest.result b/mysql-test/r/mysqltest.result --- a/mysql-test/r/mysqltest.result 2008-02-28 16:06:56 +02:00 +++ b/mysql-test/r/mysqltest.result 2008-04-29 19:08:50 +03:00 @@ -725,4 +725,7 @@ drop table t1; mysqltest: At line 1: change user failed: Unknown database 'inexistent' mysqltest: At line 1: change user failed: Access denied for user 'inexistent'@'localhost' (using password: NO) mysqltest: At line 1: change user failed: Access denied for user 'root'@'localhost' (using password: YES) +SELECT 'c:\\a.txt' AS col; +col +z End of tests diff -Nrup a/mysql-test/t/mysqltest.test b/mysql-test/t/mysqltest.test --- a/mysql-test/t/mysqltest.test 2007-11-01 17:47:55 +02:00 +++ b/mysql-test/t/mysqltest.test 2008-04-29 19:08:50 +03:00 @@ -2123,6 +2123,13 @@ rmdir $MYSQLTEST_VARDIR/tmp/testdir; remove_file $MYSQLTEST_VARDIR/tmp/testdir/file1.txt; rmdir $MYSQLTEST_VARDIR/tmp/testdir; +# +# Bug #36041: mysql-test-run doesn't seem to string match 100% effectively +# on Windows +# + +--replace_result c:\\a.txt z +SELECT 'c:\\a.txt' AS col; --echo End of tests