Hey all,
It appears that I have found a bug in sqlite3-ruby relating to 64bit
integer inserts.
http://rubyforge.org/tracker/index.php?func=detail&aid=18087&group_id=254&atid=1043
I figured I should say something here in case someone else hits it too.
There
is a patch attached to the above ticket that works for me, but may not
be the
best solution for the issue.
If you are inserting into a column, and the value is greater than a C
‘int’ but
still a Ruby Fixnum, you will see an exception.
I’ve attached a program that you can use to test to see if you are
affected.
$ ruby sqlite-64bit-test.rb
Ruby : 1.8.6 (2007-09-24
patchlevel 111) [x86_64-linux]
system maximumn ‘int’ : 1073741823
Last Fixnum : 4611686018427387903 is a
Fixnum
First Bignum : 4611686018427387904 is a
Bignum
Insert 1073741823 into sqlite : Succeeded (returned
1073741823 as a String)
Insert 4611686018427387904 into sqlite : Succeeded (returned
4611686018427387904 as a String)
Insert 4611686018427387903 into sqlite : Failed because integer
4611686018427387903 too big to convert to `int’
enjoy,
-jeremy