elastic / elasticsearch-sql-odbc

ODBC driver for Elasticsearch SQL
Other
0 stars 30 forks source link

Fix SQLDescribeCol numeric attribute param handling #306

Closed bpintea closed 2 years ago

bpintea commented 2 years ago

The last parameter of SQLDescribeCol(), the "NumericAttributePtr" is an out parameter that should always point to a SQLLEN value (for both x64 and x32 builds), despite this value being assigned different width values.

The x32 API definition uses a "void *" that would allow passing pointers to various width integers, but the spec does require an SQLLEN and other drivers and apps aligned to it. Some apps seem however to not cast down to the width corresponding to the various attributes, which can lead to incorrect behavior. The driver now scales up all values to an SQLLEN.

Also, returning of the SQL_DESC_NUM_PREC_RADIX attribute is corrected.