mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Fix Bug #13083023 - 60229: BROKEN COMPATIBILITY: ERROR WHILE CREATE TABLE
WITH FOREIGN KEY CONSTRAI rb://844 approved by marko
This commit is contained in:
26
mysql-test/suite/innodb/r/innodb_bug60229.result
Normal file
26
mysql-test/suite/innodb/r/innodb_bug60229.result
Normal file
@ -0,0 +1,26 @@
|
||||
CREATE TABLE PERSON (
|
||||
PERSON_ID VARCHAR(50) NOT NULL,
|
||||
DOB VARCHAR(50) NOT NULL,
|
||||
NAME NVARCHAR(255) NOT NULL,
|
||||
CONSTRAINT PK_PERSON PRIMARY KEY (PERSON_ID, DOB)
|
||||
)Engine=InnoDB;
|
||||
CREATE TABLE PHOTO (
|
||||
PERSON_ID VARCHAR(50) NOT NULL,
|
||||
DOB VARCHAR(50) NOT NULL,
|
||||
PHOTO_DETAILS VARCHAR(50) NULL,
|
||||
CONSTRAINT PK_PHOTO PRIMARY KEY (PERSON_ID, DOB),
|
||||
CONSTRAINT FK_PHOTO_2_PERSON FOREIGN KEY (PERSON_ID, DOB) REFERENCES PERSON (PERSON_ID, DOB)
|
||||
)Engine=InnoDB;
|
||||
CREATE TABLE ADDRESS (
|
||||
PERSON_ID VARCHAR(50) NOT NULL,
|
||||
DOB VARCHAR(50) NOT NULL,
|
||||
ADDRESS_ID VARCHAR(50) NOT NULL,
|
||||
ADDRESS_DETAILS NVARCHAR(250) NULL,
|
||||
CONSTRAINT PK_ADDRESS PRIMARY KEY (PERSON_ID, DOB, ADDRESS_ID),
|
||||
CONSTRAINT FK_ADDRESS_2_PERSON FOREIGN KEY (PERSON_ID, DOB) REFERENCES PERSON (PERSON_ID, DOB) ON DELETE CASCADE
|
||||
)Engine=InnoDB;
|
||||
INSERT INTO PERSON VALUES("10", "11011999", "John");
|
||||
INSERT INTO PHOTO VALUES("10", "11011999", "new photo");
|
||||
DROP TABLE PHOTO;
|
||||
DROP TABLE ADDRESS;
|
||||
DROP TABLE PERSON;
|
1
mysql-test/suite/innodb/t/innodb_bug60229-master.opt
Normal file
1
mysql-test/suite/innodb/t/innodb_bug60229-master.opt
Normal file
@ -0,0 +1 @@
|
||||
--lower_case_table_names=0
|
39
mysql-test/suite/innodb/t/innodb_bug60229.test
Normal file
39
mysql-test/suite/innodb/t/innodb_bug60229.test
Normal file
@ -0,0 +1,39 @@
|
||||
#
|
||||
# Bug #13083023 - 60229: BROKEN COMPATIBILITY: ERROR WHILE CREATE TABLE
|
||||
# WITH FOREIGN KEY CONSTRAINT.
|
||||
|
||||
-- source include/have_innodb.inc
|
||||
|
||||
CREATE TABLE PERSON (
|
||||
PERSON_ID VARCHAR(50) NOT NULL,
|
||||
DOB VARCHAR(50) NOT NULL,
|
||||
NAME NVARCHAR(255) NOT NULL,
|
||||
CONSTRAINT PK_PERSON PRIMARY KEY (PERSON_ID, DOB)
|
||||
)Engine=InnoDB;
|
||||
|
||||
|
||||
CREATE TABLE PHOTO (
|
||||
PERSON_ID VARCHAR(50) NOT NULL,
|
||||
DOB VARCHAR(50) NOT NULL,
|
||||
PHOTO_DETAILS VARCHAR(50) NULL,
|
||||
CONSTRAINT PK_PHOTO PRIMARY KEY (PERSON_ID, DOB),
|
||||
CONSTRAINT FK_PHOTO_2_PERSON FOREIGN KEY (PERSON_ID, DOB) REFERENCES PERSON (PERSON_ID, DOB)
|
||||
)Engine=InnoDB;
|
||||
|
||||
|
||||
CREATE TABLE ADDRESS (
|
||||
PERSON_ID VARCHAR(50) NOT NULL,
|
||||
DOB VARCHAR(50) NOT NULL,
|
||||
ADDRESS_ID VARCHAR(50) NOT NULL,
|
||||
ADDRESS_DETAILS NVARCHAR(250) NULL,
|
||||
CONSTRAINT PK_ADDRESS PRIMARY KEY (PERSON_ID, DOB, ADDRESS_ID),
|
||||
CONSTRAINT FK_ADDRESS_2_PERSON FOREIGN KEY (PERSON_ID, DOB) REFERENCES PERSON (PERSON_ID, DOB) ON DELETE CASCADE
|
||||
)Engine=InnoDB;
|
||||
|
||||
INSERT INTO PERSON VALUES("10", "11011999", "John");
|
||||
INSERT INTO PHOTO VALUES("10", "11011999", "new photo");
|
||||
|
||||
DROP TABLE PHOTO;
|
||||
DROP TABLE ADDRESS;
|
||||
DROP TABLE PERSON;
|
||||
|
@ -3069,10 +3069,15 @@ dict_scan_table_name(
|
||||
memcpy(ref, database_name, database_name_len);
|
||||
ref[database_name_len] = '/';
|
||||
memcpy(ref + database_name_len + 1, table_name, table_name_len + 1);
|
||||
|
||||
} else {
|
||||
#ifndef __WIN__
|
||||
if (innobase_get_lower_case_table_names() == 1) {
|
||||
innobase_casedn_str(ref);
|
||||
}
|
||||
#else
|
||||
innobase_casedn_str(ref);
|
||||
#endif /* !__WIN__ */
|
||||
*table = dict_table_get_low(ref);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user