From: Sergey Glukhov Date: May 13 2009 6:50am Subject: bzr commit into mysql-5.0-bugteam branch (Sergey.Glukhov:2740) Bug#39793 List-Archive: http://lists.mysql.com/commits/73902 X-Bug: 39793 Message-Id: <0KJK0085SOF2X900@fe-emea-09.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Boundary_(ID_NnI9nX/3cFkK2ZXEJRl6ig)" --Boundary_(ID_NnI9nX/3cFkK2ZXEJRl6ig) 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-bug-39793/ based on revid:ramil@stripped 2740 Sergey Glukhov 2009-05-13 Bug#39793 Foreign keys not constructed when column has a '#' in a comment or default value Internal InnoDN FK parser does not recognize '\'' as qoutation 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 qoutation symbol. The 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-13 06:50:02 +0000 @@ -2829,7 +2829,8 @@ 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-13 06:50:02 +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-13 06:50:02 +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_NnI9nX/3cFkK2ZXEJRl6ig) 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-bug-39793/ # testament_sha1: 2a6f1f1be60667594856a31e667f7c437e8f9bc4 # timestamp: 2009-05-13 11:50:12 +0500 # base_revision_id: ramil@stripped # # Begin bundle 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 --Boundary_(ID_NnI9nX/3cFkK2ZXEJRl6ig)--