From: Sergey Glukhov Date: May 13 2009 7:37am Subject: bzr commit into mysql-5.0-bugteam branch (Sergey.Glukhov:2740) Bug#39793 List-Archive: http://lists.mysql.com/commits/73908 X-Bug: 39793 Message-Id: <0KJK00CRHQM38N90@fe-emea-10.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Boundary_(ID_vaso5WKlnJPqQxePxrveLg)" --Boundary_(ID_vaso5WKlnJPqQxePxrveLg) 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. 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-13 07:37:30 +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-13 07:37:30 +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 07:37:30 +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_vaso5WKlnJPqQxePxrveLg) 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: eefc3de87af7bde8f089244e2d375b07fa5d96c3 # timestamp: 2009-05-13 12:37:38 +0500 # base_revision_id: ramil@stripped # # Begin bundle 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 --Boundary_(ID_vaso5WKlnJPqQxePxrveLg)--