Bug #35753 jdbc useOldAliasMetadataBehavior connection property not set
| Submitted: | 1 Apr 2008 21:39 | Modified: | 16 Jul 2009 13:10 |
|---|---|---|---|
| Reporter: | Zeph Harben | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | Connector / J | Severity: | S3 (Non-critical) |
| Version: | 5.1 | OS: | Any |
| Assigned to: | CPU Architecture: | Any |
[2 Apr 2008 23:09]
Zeph Harben
Downgrading to S3/Non-critical since you can use MysqlDataSource.setUseOldAliasmetadataBehavior() to work-around the JDBC URL issue.
[3 Apr 2008 20:10]
Sveta Smirnova
Thank you for the report. I was not able to repeat described behavior on my side. Could you please provide repeatable test case?
[3 Apr 2008 20:29]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/44888
[30 Jul 2008 14:53]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/50724
[1 Jul 2009 21:08]
Mark Matthews
This got fixed in 5.1.7, but missed a bug status state to get it documented in the manual.
[16 Jul 2009 13:10]
Tony Bedford
An entry was added to the 5.1.7 changelog: The useOldAliasMetadataBehavior connection property was ignored.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.056 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
Description: Upgrading from MYSQL Connector/J 3.1 => 5.1; Per the documentation in order to be JDBC-compliant, the default behavior doesn't support referencing table/column aliases. Attempted to use the "useOldAliasMetadataBehavior" connection property to override the default - here is the URL format being used : db_connection_url=jdbc:mysql://[server]/[database]?useUnicode=true&characterEncoding=UTF-8&jdbcCompliantTruncation=false&useOldAliasMetadataBehavior=true The other properties are handled correctly [useUnicode, characterEncoding, jdbcCompliantTruncation] however "useOldAliasMetadataBehavior" is ignored. In com.mysql.jdbc.NonRegisteringDriver.parseURL(String url, Properties defaults), the following code appears to override the URL properties with the defaults [lines 748 - 758]: // Properties passed in should override ones in URL if (defaults != null) { Iterator propsIter = defaults.keySet().iterator(); while (propsIter.hasNext()) { String key = propsIter.next().toString(); String property = defaults.getProperty(key); urlProps.setProperty(key, property); } } How to repeat: use a connection URL with the "useOldAliasMetadataBehavior" property set to "true" and check whether or not the resulting connection has been set correctly. Suggested fix: I suggest that NonRegisteringDriver.parseURL() override the defaults with whatever properties are specified in the URL, as this is the documented/suggested way to override the connector defaults.