From: Sergey Glukhov Date: May 19 2009 6:32am Subject: bzr commit into mysql-5.0-bugteam branch (Sergey.Glukhov:2749) Bug#39793 List-Archive: http://lists.mysql.com/commits/74449 X-Bug: 39793 Message-Id: <0KJV0014JRLQL030@fe-emea-10.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Boundary_(ID_0HydobcnVeMiJyWu9omxvg)" --Boundary_(ID_0HydobcnVeMiJyWu9omxvg) MIME-version: 1.0 Content-type: text/plain; CHARSET=US-ASCII Content-transfer-encoding: 7BIT Content-disposition: inline #At file:///home/gluh/MySQL/mysql-5.0-bugteam/ based on revid:gshchepa@stripped 2749 Sergey Glukhov 2009-05-19 Bug#39793 Foreign keys not constructed when column has a '#' in a comment or default value Internal InnoDN FK parser does not recognize '\'' as quotation symbol. Suggested fix is to add '\'' symbol check for quotation condition (dict_strip_comments() function). @ innobase/dict/dict0dict.c Internal InnoDN FK parser does not recognize '\'' as quotation symbol. Suggested fix is to add '\'' symbol check for quotation condition (dict_strip_comments() function). @ mysql-test/r/innodb_mysql.result test result @ mysql-test/t/innodb_mysql.test test case modified: innobase/dict/dict0dict.c mysql-test/r/innodb_mysql.result mysql-test/t/innodb_mysql.test === modified file 'innobase/dict/dict0dict.c' --- a/innobase/dict/dict0dict.c 2008-12-13 00:40:31 +0000 +++ b/innobase/dict/dict0dict.c 2009-05-19 06:32:21 +0000 @@ -2829,7 +2829,7 @@ scan_more: } else if (quote) { /* Within quotes: do not look for starting quotes or comments. */ - } else if (*sptr == '"' || *sptr == '`') { + } else if (*sptr == '"' || *sptr == '`' || *sptr == '\'') { /* Starting quote: remember the quote character. */ quote = *sptr; } else if (*sptr == '#' === modified file 'mysql-test/r/innodb_mysql.result' --- a/mysql-test/r/innodb_mysql.result 2009-03-27 06:24:32 +0000 +++ b/mysql-test/r/innodb_mysql.result 2009-05-19 06:32:21 +0000 @@ -1291,4 +1291,16 @@ SAVEPOINT s4; ROLLBACK; ROLLBACK TO SAVEPOINT s4; ERROR 42000: SAVEPOINT s4 does not exist +CREATE TABLE t1 (f1 INTEGER PRIMARY KEY COMMENT 'My ID#', f2 INTEGER DEFAULT NULL, f3 CHAR(10) DEFAULT 'My ID#', CONSTRAINT f2_ref FOREIGN KEY (f2) REFERENCES t1 (f1)) ENGINE=INNODB; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `f1` int(11) NOT NULL COMMENT 'My ID#', + `f2` int(11) default NULL, + `f3` char(10) default 'My ID#', + PRIMARY KEY (`f1`), + KEY `f2_ref` (`f2`), + CONSTRAINT `f2_ref` FOREIGN KEY (`f2`) REFERENCES `t1` (`f1`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +DROP TABLE t1; End of 5.0 tests === modified file 'mysql-test/t/innodb_mysql.test' --- a/mysql-test/t/innodb_mysql.test 2009-03-27 06:24:32 +0000 +++ b/mysql-test/t/innodb_mysql.test 2009-05-19 06:32:21 +0000 @@ -1054,4 +1054,13 @@ ROLLBACK; --error 1305 ROLLBACK TO SAVEPOINT s4; +# +# Bug#39793 Foreign keys not constructed when column has a '#' in a comment or default value +# + +#This statement should be written on a single line for proper testing +CREATE TABLE t1 (f1 INTEGER PRIMARY KEY COMMENT 'My ID#', f2 INTEGER DEFAULT NULL, f3 CHAR(10) DEFAULT 'My ID#', CONSTRAINT f2_ref FOREIGN KEY (f2) REFERENCES t1 (f1)) ENGINE=INNODB; +SHOW CREATE TABLE t1; +DROP TABLE t1; + --echo End of 5.0 tests --Boundary_(ID_0HydobcnVeMiJyWu9omxvg) MIME-version: 1.0 Content-type: text/bzr-bundle; CHARSET=US-ASCII; name="bzr/sergey.glukhov@stripped" Content-transfer-encoding: 7BIT Content-disposition: inline; filename="bzr/sergey.glukhov@stripped" # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: sergey.glukhov@stripped # target_branch: file:///home/gluh/MySQL/mysql-5.0-bugteam/ # testament_sha1: 83364ff282fbbe43e248381f01882464551b1e61 # timestamp: 2009-05-19 11:32:33 +0500 # source_branch: bzr+ssh://sgluhov@stripped/bzrroot\ # /server/mysql-5.0-bugteam/ # base_revision_id: gshchepa@stripped # # Begin bundle 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 --Boundary_(ID_0HydobcnVeMiJyWu9omxvg)--