On Tue, Jan 31, 2012 at 4:32 PM, Richard D Watkins <
richard.d.watk...@seagate.com> wrote:

> I have some very large integers I need to insert and retrieve from SQLite
> without losing any digits. These numbers can be up to 8 bytes (20 digits)
> long.
>

SQLite integers are 8-byte twos-complement with a range of
-9223372036854775808 to 9223372036854775807 (19 digits).  Anything outside
this range is converted to double, and is thus subject to the 17-digit
approximation.  We do test the boundary cases carefully, so we know
everything works over the full range specified above.

Do you think your python interface layer might be doing the unwanted
conversion to floating point for you?


>
> The SQLite documentation says INTEGER datatypes can hold values up to 8
> bytes long, however, when I insert any number greater than 17 digits, it
> gets converted into a REAL, and truncated to 17 significant digits.
>
> I have found only one way to insert/fetch these values without losing
> digits:  define the column affinity to be TEXT, convert the value to a
> string in Python, then insert it into the SQLite database. The fetched
> value will be TEXT and contain all digits.
>
>
> However, if I do any arithmetic on it as the query executes, the value gets
> converted to REAL, truncated, then the truncated value is used in the
> arithmetic.
>
> I have a SQLite database version 3.7.8.  I'm developing in Python version
> 2.4.4 and using PySqlite version 2.6.3.
>
> I'm aware of Adapters and Converters. They would have to be made such that
> the returned value is converted back to a TEXT value before SQLite returns
> the value to the program. This might work, but I would prefer to let SQLite
> do the manipulation in the usual manner.
>
> Is there any way to insert integers of any size, then retrieve them with a
> query that might do math or other manipulations on the values, without
> losing digits?
>
> Thanks!!
>
> Regards,
> Richard Watkins
> Product Development & Systems Engineering
> phone: 720-684-2193
> email: richard.watk...@seagate.com
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>



-- 
D. Richard Hipp
d...@sqlite.org
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to