Bug #95859 Server-side prepared statements return no integer
Submitted: 18 Jun 2019 12:12 Modified: 6 Nov 2019 6:54
Reporter: Jan Jary Email Updates:
Status: Duplicate Impact on me:
None 
Category:Connector / ODBC Severity:S3 (Non-critical)
Version:8.0.16 OS:Any
Assigned to: Bogdan Degtyariov CPU Architecture:Any
Tags: ODBC

[18 Jun 2019 12:12] Jan Jary
Description:
Server-side prepared statement selecting integer and blob doesn't return the stored integer value.

Workaround: client-side prepared statements works (dsn setting NO_SSPS=1).

$ mysql --version
mysql  Ver 8.0.16 for Linux on x86_64 (MySQL Community Server - GPL)

$ mysqld --version
/usr/sbin/mysqld  Ver 8.0.16 for Linux on x86_64 (MySQL Community Server - GPL)

unixodbc version is 2.3.4

How to repeat:
1. Create a table with number type and blob type column and insert data to the table:
  CREATE TABLE t1 (
    uuid VARCHAR(36) NOT NULL PRIMARY KEY,
    num  TINYINT UNSIGNED NOT NULL,
    data BLOB
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
  INSERT INTO t1 (uuid, num, data) VALUES ("00000000-0000-0000-0000-000000000000", 7, "data");

2. Execute server-side prepared statement and check num value:
  SELECT * FROM t1 WHERE uuid = ?;

Minimal test case program is attached.

Note: minimal test case program works with connector odbc 5.3.10.
[18 Jun 2019 12:13] Jan Jary
minimal test case

Attachment: test3.c (text/plain), 4.90 KiB.

[6 Nov 2019 6:52] Bogdan Degtyariov
Verified, the problem is present in the ODBC driver
[6 Nov 2019 6:54] Bogdan Degtyariov
The problem manifested in this bug is of the same nature as in bug https://bugs.mysql.com/bug.php?id=97191, which is being worked on.

You can track the progress using the above link.
Marking this report as a duplicate.