mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
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).
This commit is contained in:
@ -2829,7 +2829,7 @@ scan_more:
|
|||||||
} else if (quote) {
|
} else if (quote) {
|
||||||
/* Within quotes: do not look for
|
/* Within quotes: do not look for
|
||||||
starting quotes or comments. */
|
starting quotes or comments. */
|
||||||
} else if (*sptr == '"' || *sptr == '`') {
|
} else if (*sptr == '"' || *sptr == '`' || *sptr == '\'') {
|
||||||
/* Starting quote: remember the quote character. */
|
/* Starting quote: remember the quote character. */
|
||||||
quote = *sptr;
|
quote = *sptr;
|
||||||
} else if (*sptr == '#'
|
} else if (*sptr == '#'
|
||||||
|
@ -1291,4 +1291,16 @@ SAVEPOINT s4;
|
|||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
ROLLBACK TO SAVEPOINT s4;
|
ROLLBACK TO SAVEPOINT s4;
|
||||||
ERROR 42000: SAVEPOINT s4 does not exist
|
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
|
End of 5.0 tests
|
||||||
|
@ -1054,4 +1054,13 @@ ROLLBACK;
|
|||||||
--error 1305
|
--error 1305
|
||||||
ROLLBACK TO SAVEPOINT s4;
|
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
|
--echo End of 5.0 tests
|
||||||
|
Reference in New Issue
Block a user