Shane Harrelson <sh...@...> writes:
> I'd be worried that other 64 bit calculations are going wrong as well.
> 
> Can you verify what type sqlite3_int64 is being set to in your environment?
> 
> Also can you try the following (note the L suffix on the constants):
> 
> static const sqlite3_int64 max32BitValue =
>      (sqlite3_int64)2000000000L + (sqlite3_int64)2000000000L +
>      (sqlite3_int64)294967296L;
> 
Results not as I expected. Adding L didn't change anything.
However, removing the casts leaving just this:
  2000000000L + 2000000000L + 294967296L;
results in compiler error:
  Numeric constant too large in function winCurrentTime

Then I tried this:
  2L*2000000000L + 294967296L;
No compiler error but still left with a result of zero.

Remaining options which do work (with or without the L) are:
Amazingly: 4294967296L;
or this: 0x0100000000L;
or this: (sqlite3_int64)1<<32; // but only with typecast

4eanlss

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

Reply via email to