I can't find working libdbi version

John Ralls jralls at ceridwen.us
Fri Jan 28 09:56:42 EST 2011


On Jan 28, 2011, at 4:26 AM, Christoph Holtermann wrote:

> Hello !
>> Good catch. I've changed the way doubles are serialized in r20177; please give it a try.
>> 
>> Regards,
>> John Ralls
>> 
> Thanks ! "make check" runs through without errors.
> 
> gnucash still doesn't like libdbi. Log says :
> * 13:13:08  WARN <gnc.backend.dbi> [conn_test_dbi_library()] Test_DBI_Library: Double Failed     1,797692e+307 !=      1,000000e+00
> 
> Well these two values are surely not the same.
> 
> Mysql log is
> 
> /usr/sbin/mysqld, Version: 5.1.54-log (SUSE MySQL RPM). started with:
> Tcp port: 3306  Unix socket: /var/run/mysql/mysql.sock
> Time                 Id Command    Argument
> 110128 13:15:29     4 Connect   christoph at localhost on gnucash
>                    4 Query     CREATE TEMPORARY TABLE numtest ( test_int BIGINT, test_unsigned BIGINT, test_double FLOAT8 )
>                    4 Query     INSERT INTO numtest VALUES (-9223372036854775807, 9223372036854775807, 1.7976921348623158e+307)
>                    4 Query     SELECT * FROM numtest
> 110128 13:15:32     4 Query     SHOW TABLES FROM gnucash LIKE 'gnclock'
>                    4 Query     BEGIN
>                    4 Query     SELECT * FROM gnclock WHERE Hostname = 'Holtermann' AND PID = '2705'
>                    4 Query     ROLLBACK
>                    4 Quit     
> 110128 13:15:40     3 Quit     
> 
> IT looks like this time only the part BEFORE the decimal separator has been READ. Because the correct value has been stored as far as i understand
> the log. ;-)


I was afraid of that. It seems libdbi is using sprintf to parse the double from the database, and the input is getting localized. Since thousands separators are (ignored) noise, it's overflowing the double. Maybe I can retrieve the field as a string and use g_ascii_strtod() to parse it. If that works I'll have something for you to test tomorrow. (I'm not likely to get to it before your bedtime!)

Regards,
John Ralls


More information about the gnucash-devel mailing list