| Bug #74273 | Unsupported buffer type for mysql_stmt_bind_result function | ||
|---|---|---|---|
| Submitted: | 8 Oct 2014 14:48 | Modified: | 5 Mar 2024 10:32 |
| Reporter: | Milosz Bodzek | Email Updates: | |
| Status: | Not a Bug | Impact on me: | |
| Category: | Connector / C++ | Severity: | S3 (Non-critical) |
| Version: | 1.1.4 | OS: | Linux (Ubuntu 14.04 64 bit) |
| Assigned to: | Assigned Account | CPU Architecture: | Any |
[10 Oct 2014 12:26]
Hemant Dangi
MYSQL_TYPE_GEOMETRY is not supported by mysql_stmt_bind_result returning error. Error: Using unsupported buffer type: 253 (parameter: 1) So error need to be resolved in C/C first.
[10 Oct 2014 12:34]
Hemant Dangi
Added bugs for C/C bugs#74315.
[13 Oct 2014 10:19]
MySQL Verification Team
Hello Milosz/Hemant, Thank you for the bug report and test case. Thanks, Umesh
[13 Oct 2014 10:21]
MySQL Verification Team
// [root@cluster-repo mysql-advanced-5.6.22]# ./test_geometryCC Using unsupported buffer type: 255 (parameter: 2)
[16 Jan 2015 12:54]
Hemant Dangi
Resolution depends upon bug#74315 marked for C API.
[5 Mar 2024 10:32]
Bogdan Degtyariov
Posted by developer: In Connector/C++ columns of type GEOMETRY can be accessed only as raw bytes using getBlob()/setBlob() methods of the classic (JDBC) API. Connector does not interpret GEOMETRY data in any way -- to transform them to other formats (WKT, WKB) one can use SQL functions such as ST_AsText(), ST_AsBinary(). As far as Connector/C++ is concerned everything works as expected. The original issue concerns only CAPI of the MySQL client library (the mysql_stmt_bind_result() function) and is handled by bug#19804341.

Description: Call function mysql_stmt_bind_result (with simple select that contain geometry data type and buffer with type MYSQL_TYPE_GEOMETRY) fail. Call mysql_stmt_error function after that return message: "Using unsupported buffer type: 255 (parameter: 2)" How to repeat: 1. Create database with geometry data: CREATE DATABASE `MigrationTestGeometry` /*!40100 DEFAULT CHARACTER SET latin1 */; CREATE TABLE `geom` ( `id` int(11) NOT NULL AUTO_INCREMENT, `data` geometry DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; INSERT INTO geom(data) VALUES (GeomFromText('POINT(1 1)')); 2. In C++ code connect to that database and create select staement: SELECT id, data FROM geom; 3. Call mysql_stmt_bind_result(_select_stmt, &(rowbuffer[0])) with that select staement and buffer that have buffer_type = MYSQL_TYPE_GEOMETRY Function will return false and call mysql_stmt_error function after that return message: "Using unsupported buffer type: 255 (parameter: 2)"