2015-07-28 11:52 GMT-05:00 Richard Hipp <drh at sqlite.org>:
> On 7/28/15, Rafa? Ponikwia <rp at antsolutions.pl> wrote:
>> Hi,
>> I'm using sqlite3 TCL extension from Teapot (version 64-bit). When I try
>> to insert number bigger than signed 32-bit it inserts wrong number to
>> database.
>> % sqlite3 db C:/tmp/test.sqlite
>> % db eval {
      CREATE TABLE test (num NUMERIC);
      INSERT INTO test (num) VALUES ($l1), ($l2), ($l3);
      SELECT * FROM test;
 }
>> 2147483647 2147483649 -2147483647
>>
>
> I get the correct answer (2147483647 2147483649 2147483649) when I try
> this on 64-bit Ubuntu.

Tried this on both cygwin64 and mingw-w64 (64-bit), getting the same
correct answer in both environments. e.g.:
    >tclsh86
    % set tcl_platform(pointerSize)
    8
    % package require sqlite3
    3.8.11.1
    % info loaded
    {C:/cygwin64/lib/sqlite3.8.11.1/sqlite38111.dll Sqlite3}
    % set l1 [expr {2 ** 31 - 1}]
    2147483647
    % set l2 2147483649
    2147483649
    % set l3 [expr {$l1 + 2}]
    2147483649
    % sqlite3 db test.sqlite
    % db eval {
          CREATE TABLE test (num NUMERIC);
          INSERT INTO test (num) VALUES ($l1), ($l2), ($l3);
          SELECT * FROM test;
     }
    2147483647 2147483649 2147483649
    %

@Andreas: could this be a compiler issue?

Regards,
        Jan Nijtmans

Reply via email to