From: Bjorn Munch Date: August 10 2010 10:16am Subject: bzr commit into mysql-5.1-mtr branch (bjorn.munch:2924) Bug#55413 List-Archive: http://lists.mysql.com/commits/115383 X-Bug: 55413 Message-Id: <201008101016.o7AAG9cO013416@khepri15.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0806363214==" --===============0806363214== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/bm136801/my/letbs-51/ based on revid:bjorn.bunch@stripped 2924 Bjorn Munch 2010-08-10 Bug #55413 mysqltest gives parse error for lines matching "^let.*\\.*;$" Allow escaped quotes also in statements not starting with -- But will not support single unescaped ' or ` modified: client/mysqltest.cc mysql-test/r/mysqltest.result mysql-test/t/mysqltest.test === modified file 'client/mysqltest.cc' --- a/client/mysqltest.cc 2010-08-04 10:19:51 +0000 +++ b/client/mysqltest.cc 2010-08-10 10:13:58 +0000 @@ -5507,6 +5507,8 @@ int read_line(char *buf, int size) char c, UNINIT_VAR(last_quote); char *p= buf, *buf_end= buf + size - 1; int skip_char= 0; + my_bool have_slash= FALSE; + enum {R_NORMAL, R_Q, R_SLASH_IN_Q, R_COMMENT, R_LINE_START} state= R_LINE_START; DBUG_ENTER("read_line"); @@ -5578,9 +5580,13 @@ int read_line(char *buf, int size) } else if (c == '\'' || c == '"' || c == '`') { - last_quote= c; - state= R_Q; + if (! have_slash) + { + last_quote= c; + state= R_Q; + } } + have_slash= (c == '\\'); break; case R_COMMENT: === modified file 'mysql-test/r/mysqltest.result' --- a/mysql-test/r/mysqltest.result 2010-08-04 08:52:45 +0000 +++ b/mysql-test/r/mysqltest.result 2010-08-10 10:13:58 +0000 @@ -262,6 +262,9 @@ a long \$where variable content banana = banana Not a banana: ba\$cat\$cat +with\`some"escaped\'quotes +with\`some"escaped\'quotes +single'tick`backtick mysqltest: At line 1: Missing arguments to let mysqltest: At line 1: Missing variable name in let mysqltest: At line 1: Missing assignment operator in let === modified file 'mysql-test/t/mysqltest.test' --- a/mysql-test/t/mysqltest.test 2010-08-04 08:52:45 +0000 +++ b/mysql-test/t/mysqltest.test 2010-08-10 10:13:58 +0000 @@ -701,6 +701,16 @@ echo banana = $cat; let $cat=ba\\\$cat\\\$cat; echo Not a banana: $cat; +# Bug #55413 would cause this to fail +let $escape= with\`some\"escaped\'quotes; +echo $escape; + +--let $escape= with\`some\"escaped\'quotes +echo $escape; + +# This only works with "--let" syntax +--let $tick= single'tick`backtick +echo $tick; # Test illegal uses of let --===============0806363214== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/bjorn.munch@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: bjorn.munch@stripped # target_branch: file:///home/bm136801/my/letbs-51/ # testament_sha1: d376f0a53bec147ffb60bff86435b25355afa6dd # timestamp: 2010-08-10 12:16:09 +0200 # base_revision_id: bjorn.bunch@stripped\ # e1t12peapcte4egd # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWagfKdcAAvxfgBQwfPP//3MG PAX////6YAZndvgAAuzQAANAMkp6T0FPCanlNHgRkgaaPUANDNQZGQ5gTE0GEyZMmRhME00yMTAE MBmm1R6ahhMTIaNMmRiYmgA0NAYEGJEp6mTCek2U3qJoBkwARp6mmIyAMcwJiaDCZMmTIwmCaaZG JgCGASSCaJgEZT0BT0TyZAhqan6pp5Rpp6j1PU8osrO6gCbk4qzpb3sWmvVv+PZLamV2cEDUY3YQ OPhttraytggbIMfpAWc0LziRv4Zm/lkkAckAxIWkKGtEvvNA2hEv7KVJHaPuZiikkAl8dREOSLjf Bk48z2EGT3OQaNhYIQBHAfegRQNHRiBT7WsMRGrFo2rhWSnjTxiA42QloQFGYZdhRzEpZMLEwKoY IX7ruea3JnzzwBHXql2HY8ksRC1KB+pBnIO8geLJQZgiOWHdu+Z5xoNukuDEAbbv5irEQ4N0KltF Iu3GzYcctD6qhPWSAckOFqTp4LWvK/rJBWwzJPpHUkR4wQEDPHDgB45CUw8JjAm3MKQOm8OA6A4o cAOJyBDSQQ5OGItApRM2hlCJAH63gikR7OEaAPod5VuL6Xwpi1DFFE1xhiF0SRAkIY+6LAt/FkDH kS7dG2kKjIoV5oKlaY4vFiWBGukL6OAosAODTIstD1KCvLPOY0kSeUAy0FFFyn9CiugmuOJHNjbQ a3iqLLqMvxlIKMimVuE3Y9xXOUwnIhiwKe2cpVozjY4/R52/ktrJh1jFw4sQyB5AeHMtdGBLyO6b OJpYNFDJNuDGsjVBDDjoe4pqjSZBUWxB2cKimw7pyROMUQF2VBj6jg3THusEUGIxTaYOIkquRvJi dX3usMKt5WZv0kTC7I03RwaY4sajUUZORaPJ6ysw/QiJOVEeY6UsTUFJGZiU071gbrHmiL0TW24F JxKYFHYIveGiIBVEpOwgPHz3DyaX7Rt56DAn4CLxEK6TF1T9dQOM4mwpLx9do4mnImS01vMSqE5C 1z0p3vISaLqXhByGmaISFNJq/vxPbL7e/+KrgO/tDgbQTxqKXGhWAqBczazW6QB9vtlChQRZQ478 id8r/X2njzqgKeaoBJ++ksxokBCEbAuKpWBSAiJ7hl2nbRdtHlMvTuL9f9vM9UBVQ8ofAWk8Pjqe sY0B3iPKoRHzDknDek2ah8IQ+I53nnef0sPiWhAcfycCc0h0RCcHQKQEKtvQqU6QdAB1S5FjGLDm mS1QsYCNqJ+z2+ojkkHO/gnHBkMkH0oQGPMIfUl3se5MMa8MYHdXpVyP3nRrfCKUgzaVGywLVz1G Ac9GRV/nTimbqMJFnA3FtYOLK9RImrC0YY8VUszFiLnlikL6LPv0B379yfsbE6DgbhHrpZ+QfAyz 2m7Li3P7ONkfQM1tcjiX8Jd8Pj1ziGFLv5B8d4WWTJJrF2o5CGThQSh2TNrFkd+o2DcdZbI3HTmF Qea4qSuKsX1jFfvENDcNtccAwyYU8y266ynezDIBwM4Cb7trLI/mXhyEQXUq6DjeYEjsQMlQYkNJ qIGpg1fBJp+2H41hRTvQfaYzICnt8o7V8vMRx3SiKR4mwTqxdPTEkrMfkInEfPggOe9dhxA2X8Fv Fx+T/gSL8cjr8sbQfMJ/MtiEF2+ElsVSAcLZuY/XDAmo5Tz/Wm6Ll7gT7jlt6X+JkAXHMQ5xczit MZacDlCMA8PmkUGZ6jDMFFLUOQDIxJk2hkBEXqRc9hSfMVotZRYTITjy09VjvseaNyAgDUC51dJx zaF+UBSL3vXiIOZBbxjUK3jPx34ILN7JkNsCAMHeDCo0lhUdKHaTYXYa59QjXeC7XHX6rU16whWn oFsgg7Vh30BIn4jqKzQOQjCa7T1J7JOc71GT0T8XNjTrIR2522RSLNdJqtTYMsFp1NMJ62WoeDjb nAumdJJXQDaFYEwEjGoeUFizKq4vlr2RLbCZhxyvaEEHsDHpOQEaJlE/2JkOyIxceAOlJ0Hop7Uy RcJupeJ8ptJ+5yNWI0ZXivVRc4mZHMvLHiN3n6m0r8K17z9dRdEjDMUxmU8jvN5aRV6w7Oswsjdm YxLl0GHMMcquRUVW+ViXiVxscZUl5+x5HZvJgWg9DodxNpwDMuvqLy20qwPb/3/xdyRThQkKgfKd cA== --===============0806363214==--