Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
e0efcfe8
Commit
e0efcfe8
authored
Nov 02, 2010
by
kevin.lewis@oracle.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug#57904 - Only one INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS was displayed
per table from Innodb
parent
e5ad4e20
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
69 additions
and
1 deletion
+69
-1
mysql-test/suite/innodb/r/innodb_bug57904.result
mysql-test/suite/innodb/r/innodb_bug57904.result
+41
-0
mysql-test/suite/innodb/t/innodb_bug57904.test
mysql-test/suite/innodb/t/innodb_bug57904.test
+27
-0
storage/innobase/handler/ha_innodb.cc
storage/innobase/handler/ha_innodb.cc
+1
-1
No files found.
mysql-test/suite/innodb/r/innodb_bug57904.result
0 → 100755
View file @
e0efcfe8
CREATE TABLE product (category INT NOT NULL, id INT NOT NULL,
price DECIMAL, PRIMARY KEY(category, id)) ENGINE=INNODB;
CREATE TABLE customer (id INT NOT NULL, PRIMARY KEY (id)) ENGINE=INNODB;
CREATE TABLE product_order (no INT NOT NULL AUTO_INCREMENT,
product_category INT NOT NULL,
product_id INT NOT NULL,
customer_id INT NOT NULL,
PRIMARY KEY(no),
INDEX (product_category, product_id),
FOREIGN KEY (product_category, product_id)
REFERENCES product(category, id) ON UPDATE CASCADE ON DELETE RESTRICT,
INDEX (customer_id),
FOREIGN KEY (customer_id)
REFERENCES customer(id)
) ENGINE=INNODB;
SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS;
CONSTRAINT_CATALOG def
CONSTRAINT_SCHEMA test
CONSTRAINT_NAME product_order_ibfk_1
UNIQUE_CONSTRAINT_CATALOG def
UNIQUE_CONSTRAINT_SCHEMA test
UNIQUE_CONSTRAINT_NAME PRIMARY
MATCH_OPTION NONE
UPDATE_RULE CASCADE
DELETE_RULE RESTRICT
TABLE_NAME product_order
REFERENCED_TABLE_NAME pro
CONSTRAINT_CATALOG def
CONSTRAINT_SCHEMA test
CONSTRAINT_NAME product_order_ibfk_2
UNIQUE_CONSTRAINT_CATALOG def
UNIQUE_CONSTRAINT_SCHEMA test
UNIQUE_CONSTRAINT_NAME PRIMARY
MATCH_OPTION NONE
UPDATE_RULE RESTRICT
DELETE_RULE RESTRICT
TABLE_NAME product_order
REFERENCED_TABLE_NAME cus
DROP TABLE product_order;
DROP TABLE product;
DROP TABLE customer;
mysql-test/suite/innodb/t/innodb_bug57904.test
0 → 100755
View file @
e0efcfe8
#
# Bug #57904 Missing constraint from information schema REFERENTIAL_CONSTRAINTS table
#
--
source
include
/
have_innodb
.
inc
CREATE
TABLE
product
(
category
INT
NOT
NULL
,
id
INT
NOT
NULL
,
price
DECIMAL
,
PRIMARY
KEY
(
category
,
id
))
ENGINE
=
INNODB
;
CREATE
TABLE
customer
(
id
INT
NOT
NULL
,
PRIMARY
KEY
(
id
))
ENGINE
=
INNODB
;
CREATE
TABLE
product_order
(
no
INT
NOT
NULL
AUTO_INCREMENT
,
product_category
INT
NOT
NULL
,
product_id
INT
NOT
NULL
,
customer_id
INT
NOT
NULL
,
PRIMARY
KEY
(
no
),
INDEX
(
product_category
,
product_id
),
FOREIGN
KEY
(
product_category
,
product_id
)
REFERENCES
product
(
category
,
id
)
ON
UPDATE
CASCADE
ON
DELETE
RESTRICT
,
INDEX
(
customer_id
),
FOREIGN
KEY
(
customer_id
)
REFERENCES
customer
(
id
)
)
ENGINE
=
INNODB
;
query_vertical
SELECT
*
FROM
INFORMATION_SCHEMA
.
REFERENTIAL_CONSTRAINTS
;
DROP
TABLE
product_order
;
DROP
TABLE
product
;
DROP
TABLE
customer
;
storage/innobase/handler/ha_innodb.cc
View file @
e0efcfe8
...
@@ -8482,7 +8482,7 @@ ha_innobase::get_foreign_key_list(
...
@@ -8482,7 +8482,7 @@ ha_innobase::get_foreign_key_list(
for
(
foreign
=
UT_LIST_GET_FIRST
(
prebuilt
->
table
->
foreign_list
);
for
(
foreign
=
UT_LIST_GET_FIRST
(
prebuilt
->
table
->
foreign_list
);
foreign
!=
NULL
;
foreign
!=
NULL
;
foreign
=
UT_LIST_GET_NEXT
(
referenced
_list
,
foreign
))
{
foreign
=
UT_LIST_GET_NEXT
(
foreign
_list
,
foreign
))
{
pf_key_info
=
get_foreign_key_info
(
thd
,
foreign
);
pf_key_info
=
get_foreign_key_info
(
thd
,
foreign
);
if
(
pf_key_info
)
{
if
(
pf_key_info
)
{
f_key_list
->
push_back
(
pf_key_info
);
f_key_list
->
push_back
(
pf_key_info
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment