> On Aug 25, 2018, at 5:21 PM, D Burgess <[email protected]> wrote:
> 
> The data includes unsigned 32 bit integers which are stored as float
> (don't ask me why, I guess the primary reason is the same reason that
> 32bit Lua uses floats as integers).

That seems like a mistake on their part, since unsigned 32-bit ints can 
obviously be stored in SQLite as 64-bit ints (without space penalty, since the 
database uses a variable-length encoding for ints.)

> 2. Mixed 64/32 bit system that has integers that use the full 64 bits.
> Numbers are sourced by realtime hardware.
> Absence of 64 bit unsigned means addition of few functions to handle
> inserts and display representation(s), numbers stored as text/blobs.

As I think I said before, you can store these as signed ints. Addition, 
subtraction and equality tests will work fine. Greater/less comparisons take 
either a bit of SQL logic or a custom C collation function. Other arithmetic 
operations require custom functions. But you save the extra overhead and 
complexity of blobs.

I’m not denying that bignums would be cool. But SQLite is a small database 
engine and there are a lot of cool features it deliberately omits.

—Jens
_______________________________________________
sqlite-users mailing list
[email protected]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to