Description:
Hi,
System: FreeBSD 7.0 amd64
MySQL: 5.1.20-beta
MyODBC 3.51.19
libiodbc: 3.52.5
All worked fine with MySQL 5.1.19-beta.
After upgrading to MySQL 5.1.20-beta, SQLGetData() won't work.
I neither upgrade libiodbc nor MyODBC.
I have this problem with all tests that include SQLGetData().
And I have no idea, if it is a bug in the MySQL Client, the iodbc or the MySQL ODBC.
When I only use iodbctest, the result is like this:
SQL>select * from test.bla;
Statement executed. 5 rows affected.
SQL>show databases;
Statement executed. 6 rows affected.
Also at c-programms and c-tests, I will get the number of rows but it seems, that the content wouldn't be carried forward.
I get no errors.
And insert, create and other statements work fine.
I'll append a truss file and my c-test-programm here.
I made a truss and I think, these are the relevant parts:
....
open("/usr/share/locale/de_DE.UTF-8/LC_NUMERIC",O_RDONLY,05213720646000) = 4 (0x4)
....
connect(4,{ AF_INET 127.0.0.1:3306 },16) = 0 (0x0)
setsockopt(0x4,0xffff,0x1006,0x7fffffff5710,0x10) ERR#33 'Numerical argument out of domain'
setsockopt(0x4,0xffff,0x1005,0x7fffffff5710,0x10) ERR#33 'Numerical argument out of domain'
....
After this the connect is ok and the create table and inserts will work fine.
...
write(1," SQLRETURN of SQLExecDirect from"...,47) = 47 (0x2f)
open("/usr/share/locale/English/LC_NUMERIC",O_RDONLY,05213720646000) ERR#2 'No such file or directory'
write(1,"result of select: id: 0, random "...,39) = 39 (0x27)
open("/usr/share/locale/English/LC_NUMERIC",O_RDONLY,05213720646000) ERR#2 'No such file or directory'
write(1,"result of select: id: 0, random "...,39) = 39 (0x27)
open("/usr/share/locale/English/LC_NUMERIC",O_RDONLY,05213720646000) ERR#2 'No such file or directory'
write(1,"result of select: id: 0, random "...,39) = 39 (0x27)
open("/usr/share/locale/English/LC_NUMERIC",O_RDONLY,05213720646000) ERR#2 'No such file or directory'
write(1,"result of select: id: 0, random "...,39) = 39 (0x27)
open("/usr/share/locale/English/LC_NUMERIC",O_RDONLY,05213720646000) ERR#2 'No such file or directory'
write(1,"result of select: id: 0, random "...,39) = 39 (0x27)
Here it fails. Of course there is no directory in /usr/share/locale with the name English.
I have no idea, who tries to call this directory and I have no idea, how I can figure out this. Trying to figure out this with gdb failed.
Also all work fine on my FreeBSD 32bit system it's only 64bit.
How to repeat:
I can repeat it with every test or testcase that includes a SQLGetData().
Suggested fix:
I have no idea ...