From: Date: July 18 2008 1:48am Subject: bzr push into mysql-5.0 branch (davi:2580 to 2581) Bug#38158, Bug#33812 List-Archive: http://lists.mysql.com/commits/49988 X-Bug: 38158 Message-Id: <20080717234813.44353245FA@skynet> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 2581 Davi Arnaut 2008-07-17 Bug#33812: mysql client incorrectly parsing DELIMITER Revert fix for this bug as it introduced a regression reported in Bug#38158. modified: client/mysql.cc mysql-test/r/mysql.result mysql-test/t/mysql_delimiter.sql 2580 Jonathan Perkin 2008-07-17 [merge] Merge from mysql-5.0.66-release added: mysql-test/r/parser.result mysql-test/t/parser.test modified: mysql-test/include/have_archive.inc mysql-test/include/have_bdb.inc mysql-test/include/have_big5.inc mysql-test/include/have_blackhole.inc mysql-test/include/have_case_sensitive_file_system.inc mysql-test/include/have_compress.inc mysql-test/include/have_cp1250_ch.inc mysql-test/include/have_cp932.inc mysql-test/include/have_crypt.inc mysql-test/include/have_csv.inc mysql-test/include/have_eucjpms.inc mysql-test/include/have_euckr.inc mysql-test/include/have_exampledb.inc mysql-test/include/have_federated_db.inc mysql-test/include/have_gb2312.inc mysql-test/include/have_gbk.inc mysql-test/include/have_geometry.inc mysql-test/include/have_innodb.inc mysql-test/include/have_latin2_ch.inc mysql-test/include/have_log_bin.inc mysql-test/include/have_lowercase0.inc mysql-test/include/have_multi_ndb.inc mysql-test/include/have_ndb.inc mysql-test/include/have_query_cache.inc mysql-test/include/have_sjis.inc mysql-test/include/have_ssl.inc mysql-test/include/have_tis620.inc mysql-test/include/have_ucs2.inc mysql-test/include/have_udf.inc mysql-test/include/have_ujis.inc mysql-test/r/comments.result mysql-test/r/ps.result mysql-test/r/varbinary.result mysql-test/suite/funcs_1/t/is_columns_myisam_embedded.test mysql-test/t/varbinary.test mysys/default.c sql/item.cc sql/log_event.cc sql/sp_head.h sql/sql_lex.cc sql/sql_parse.cc sql/sql_yacc.yy === modified file 'client/mysql.cc' --- a/client/mysql.cc 2008-06-24 16:05:56 +0000 +++ b/client/mysql.cc 2008-07-17 23:19:13 +0000 @@ -2081,6 +2081,37 @@ static bool add_line(String &buffer,char continue; } } + else if (!*ml_comment && !*in_string && + (end_of_line - pos) >= 10 && + !my_strnncoll(charset_info, (uchar*) pos, 10, + (const uchar*) "delimiter ", 10)) + { + // Flush previously accepted characters + if (out != line) + { + buffer.append(line, (uint32) (out - line)); + out= line; + } + + // Flush possible comments in the buffer + if (!buffer.is_empty()) + { + if (com_go(&buffer, 0) > 0) // < 0 is not fatal + DBUG_RETURN(1); + buffer.length(0); + } + + /* + Delimiter wants the get rest of the given line as argument to + allow one to change ';' to ';;' and back + */ + buffer.append(pos); + if (com_delimiter(&buffer, pos) > 0) + DBUG_RETURN(1); + + buffer.length(0); + break; + } else if (!*ml_comment && !*in_string && is_prefix(pos, delimiter)) { // Found a statement. Continue parsing after the delimiter === modified file 'mysql-test/r/mysql.result' --- a/mysql-test/r/mysql.result 2008-06-24 16:03:17 +0000 +++ b/mysql-test/r/mysql.result 2008-07-17 23:19:13 +0000 @@ -38,8 +38,6 @@ t2 t3 Tables_in_test t1 -delimiter -1 _ Test delimiter : from command line a === modified file 'mysql-test/t/mysql_delimiter.sql' --- a/mysql-test/t/mysql_delimiter.sql 2008-06-24 16:03:17 +0000 +++ b/mysql-test/t/mysql_delimiter.sql 2008-07-17 23:19:13 +0000 @@ -61,12 +61,6 @@ show tables// delimiter ; # Reset delimiter # -# Bug #33812: mysql client incorrectly parsing DELIMITER -# -select a as delimiter from t1 -delimiter ; # Reset delimiter - -# # Bug #36244: MySQL CLI doesn't recognize standalone -- as comment # before DELIMITER statement #