Bug #117005 | ODBC Driver 8.4 GetDataTypeName returns bad and random values | ||
---|---|---|---|
Submitted: | 18 Dec 9:14 | Modified: | 19 Dec 4:10 |
Reporter: | Timo Hyrsylä | Email Updates: | |
Status: | Verified | Impact on me: | |
Category: | Connector / ODBC | Severity: | S2 (Serious) |
Version: | MySql ODBC 8.4 | OS: | Windows |
Assigned to: | CPU Architecture: | Any (64-bit) |
[18 Dec 9:14]
Timo Hyrsylä
[18 Dec 10:05]
Timo Hyrsylä
Occurs when using .Net Framework 4.7.2 and 4.8 or .Net 8.0
[18 Dec 10:53]
MySQL Verification Team
Hi Mr. Hyrsyla, Thank you for your bug report. However, we are not sure what category should this report belong to. Is it a problem with .Net or is it a problem with ODBC ???? Also, we require the full test case. That includes tables and their contents. We can not repeat without these data. Can't repeat.
[18 Dec 11:43]
MySQL Verification Team
Hi Mr. Hyrsyla, Recently we became aware of the ODBC Driver 8.4 and 9.1 malfunctions or crashes caused by runtime libraries inside Visual C++ Redistributable package 2015-2022 version 14.36. Updating the VC++ package to version 14.40 or newer should resolve the problem with the crashes. Make sure that the redistributable package for x64 architecture is updated. Please try this and let us know if it worked.
[18 Dec 13:44]
MySQL Verification Team
Hi, Your problem is definitely not with libraries ..... Our Connector's team will try to repeat your test case during next week, since we have arrived near the holiday season.
[19 Dec 4:10]
Bogdan Degtyariov
Dear Mr. Hyrsylä, Thank you for providing the test code and sample data We were able to repeat the problem. The bug is now verified. We will do the diagnosis and post updates on our findings into this ticket.
[19 Dec 10:41]
MySQL Verification Team
Thank you, Bogdan.
[20 Dec 5:13]
Bogdan Degtyariov
Posted by developer: Preliminary Diagnosis of the issue: To get the type name information in C# the user code has the following line: OdBcDataReader.GetDataTypeName(N); The above function does ODBC API call like this: MySqlTest.net 6e5c-5210 ENTER SQLColAttributeW SQLHSTMT 0x0000029FD222CA60 SQLSMALLINT 1 SQLSMALLINT 14 <SQL_DESC_TYPE_NAME> SQLPOINTER 0x0000029FEC468FF0 SQLSMALLINT 4096 SQLSMALLINT * 0x000000A9167FEEE8 SQLPOINTER 0x000000A9167FEE88 (NYI) MySqlTest.net 6e5c-5210 EXIT SQLColAttributeW with return code 0 (SQL_SUCCESS) SQLHSTMT 0x0000029FD222CA60 SQLSMALLINT 1 SQLSMALLINT 14 <SQL_DESC_TYPE_NAME> SQLPOINTER 0x0000029FEC468FF0 SQLSMALLINT 4096 SQLSMALLINT * 0x000000A9167FEEE8 (0) SQLPOINTER 0x000000A9167FEE88 (NYI) The column attribute SQL_DESC_TYPE_NAME requested by the user application is obtained from IRD internally. The type information in IRD is not properly initialized, that is why the driver returns garbage in the output buffer.
[20 Dec 10:47]
MySQL Verification Team
Thank you, Bogdan.