Bug #50066 | DatabaseMetaData.getImportedKeys throws exception with useInformationSchema | ||
---|---|---|---|
Submitted: | 5 Jan 2010 0:00 | Modified: | 1 Feb 2010 13:38 |
Reporter: | Alexander Hristov (Candidate Quality Contributor) | Email Updates: | |
Status: | Can't repeat | Impact on me: | |
Category: | Connector / J | Severity: | S3 (Non-critical) |
Version: | 5.1.10 | OS: | Any |
Assigned to: | CPU Architecture: | Any |
[5 Jan 2010 0:00]
Alexander Hristov
[1 Feb 2010 13:38]
Tonci Grgin
Hi Alexander and thanks for your report. There is a test for this in our test suite (testsuite.simple/MetadataTest.java, public void testGetImportedKeysUsingInfoSchema() throws Exception {) which works perfectly for me (and yes, I did add props.put("pedantic", "true");). Below is the relevant query from general query log which also shows no neuralgic points concerning your problem. I think we might have a problem with your MySQL server mode, mine is empty. 10 Query /* mysql-connector-java-5.1.11 ( Revision: ${svn.Revision} ) */SELECT @@session.auto_increment_increment 10 Query SHOW COLLATION 10 Query SET autocommit=1 10 Query SET sql_mode='STRICT_TRANS_TABLES' 10 Query SHOW FULL TABLES FROM `INFORMATION_SCHEMA` LIKE 'PARAMETERS' 10 Query SHOW FULL TABLES FROM `INFORMATION_SCHEMA` LIKE 'PARAMETERS' 10 Query SELECT A.REFERENCED_TABLE_SCHEMA AS PKTABLE_CAT,NULL AS PKTABLE_SCHEM,A.REFERENCED_TABLE_NAME AS PKTABLE_NAME,A.REFERENCED_COLUMN_NAME AS PKCOLUMN_NAME,A.TABLE_SCHEMA AS FKTABLE_CAT,NULL AS FKTABLE_SCHEM,A.TABLE_NAME AS FKTABLE_NAME, A.COLUMN_NAME AS FKCOLUMN_NAME, A.ORDINAL_POSITION AS KEY_SEQ,CASE WHEN R.UPDATE_RULE='CASCADE' THEN 0 WHEN R.UPDATE_RULE='SET NULL' THEN 2 WHEN R.UPDATE_RULE='SET DEFAULT' THEN 4 WHEN R.UPDATE_RULE='RESTRICT' THEN 1 WHEN R.UPDATE_RULE='NO ACTION' THEN 3 ELSE 3 END AS UPDATE_RULE,CASE WHEN R.DELETE_RULE='CASCADE' THEN 0 WHEN R.DELETE_RULE='SET NULL' THEN 2 WHEN R.DELETE_RULE='SET DEFAULT' THEN 4 WHEN R.DELETE_RULE='RESTRICT' THEN 1 WHEN R.DELETE_RULE='NO ACTION' THEN 3 ELSE 3 END AS DELETE_RULE,A.CONSTRAINT_NAME AS FK_NAME,(SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_SCHEMA = A.REFERENCED_TABLE_SCHEMA AND TABLE_NAME = A.REFERENCED_TABLE_NAME AND CONSTRAINT_TYPE IN ('UNIQUE','PRIMARY KEY') LIMIT 1) AS PK_NAME,7 AS DEFERRABILITY FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE A JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS B USING (CONSTRAINT_NAME, TABLE_NAME) JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS R ON (R.CONSTRAINT_NAME = B.CONSTRAINT_NAME AND R.TABLE_NAME = B.TABLE_NAME AND R.CONSTRAINT_SCHEMA = B.TABLE_SCHEMA) WHERE B.CONSTRAINT_TYPE = 'FOREIGN KEY' AND A.TABLE_SCHEMA LIKE 'test' AND A.TABLE_NAME='child' AND A.REFERENCED_TABLE_SCHEMA IS NOT NULL ORDER BY A.REFERENCED_TABLE_SCHEMA, A.REFERENCED_TABLE_NAME, A.ORDINAL_POSITION 100201 14:24:52 9 Query DROP TABLE IF EXISTS child 9 Query DROP TABLE If EXISTS parent 10 Quit Can't repeat with latest sources.