DB2 - Problem description
Problem IC70444 | Status: Closed |
SQLSTATISTICS ROUTINE, CLI/ODBC SQLSTATISTICS CALL, JDBC GETINDE XINFO CALL RETURN SQLCODE -413 FOR LARGE VALUES OF CARDINALITY | |
product: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problem description: | |
Currently, the SYSIBM.SQLSTATISTICS routine and the corresponding CLI/ODBC SQLStatistics () andd JDBC getIndexInfo calls, return SQLCODE -413 (Overflow occurred during numeric data type conversion) if the CARDINALITY returned exceeds 2147483647. Per the ODBC specification, we return CARDINALITY as INTEGER. However it is defined as BIGINT in the referenced table SYSIBM.SQLSTATISTICS. So, the SQLSTATISTICS routine CASTSs CARDINALITY to INTEGER before returning this value. If the CARDINALITY value returned is greater than the maximum allowable INTEGER value (2147483647), then a numeric overflow error will occur on the data type conversion (SQLCODE -413). The design will be changed to return 2147483647 (largest INTEGER value) when CARDINALITY cannot fit into INTEGER. This design is consistent with other IBM-defined views and routines which reference CARDINALITY. | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * Developers and users of IBM DB2 ODBC Driver (and IBM Data * * Server for ODBC and CLI Driver) applications connecting to * * DB2 servers. * **************************************************************** * PROBLEM DESCRIPTION: * * Currently, the CLI/ODBC SQLStatistics () and JDBC * * getIndexInfo calls, return SQLCODE -413 (Overflow occurred * * during numeric data type conversion) if the CARDINALITY * * returned exceeds 2147483647. * * * * * * Per the ODBC specification, the IBM DB2 ODBC driver returns * * CARDINALITY as INTEGER. * * However it is defined as BIGINT in the referenced table * * SYSIBM.SQLSTATISTICS. So, the IBM-defined SQLSTATISTICS * * routine (which is called by SQLStatistics () and JDBC * * getIndexInfo) CASTs CARDINALITY to INTEGER before returning * * this value. * * * * * * If the CARDINALITY value returned is greater than the * * maximum allowable INTEGER value (2147483647), then a numeric * * overflow error will occur on the data type conversion * * (SQLCODE -413). * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 version 9.7 Fix Pack 4. * **************************************************************** | |
Local Fix: | |
available fix packs: | |
DB2 Version 9.7 Fix Pack 4 for Linux, UNIX, and Windows | |
Solution | |
Problem was first fixed in Version 9.7 Fix Pack 4. | |
Workaround | |
not known / see Local fix | |
BUG-Tracking | |
forerunner : APAR is sysrouted TO one or more of the following: IC72744 follow-up : | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 06.08.2010 16.06.2011 16.06.2011 |
Problem solved at the following versions (IBM BugInfos) | |
9.7.FP4 | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.7.0.4 |