[ODBC-322] Binding floating point value as SQL_NUMERIC errors on fetch Created: 2021-06-09  Updated: 2021-06-09

Status: Open
Project: MariaDB Connector/ODBC
Component/s: None
Affects Version/s: 3.1.12
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Tom Hughes Assignee: Lawrin Novitsky
Resolution: Unresolved Votes: 0
Labels: None


 Description   

Taking SQL like this:

SELECT SUM( ROUND( field/ 2.2046, 1 ) ) FROM file

and binding the result column as SQL_NUMERIC with a scale of 1 causes the subsequent fetch to fail with:

[ma-3.1.12][10.5.10-MariaDB]Numeric value out of range

debugging the driver it seems that the server considers that column as floating point and the error is being triggered here:

https://github.com/mariadb-corporation/mariadb-connector-odbc/blob/master/ma_statement.c#L1861

the value of buffer_length is 40 set internally by the driver based on the maximum length it expects for a numeric when written as a string while max_length is 300.

This happens with both MariaDB and MySQL as the server but only with the MariaDB ODBC driver - it doesn't happen with either database with the MySQL driver.


Generated at Thu Feb 08 03:27:51 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.