bug-apl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-apl] Sqlite provider truncates integers in results


From: Elias Mårtenson
Subject: Re: [Bug-apl] Sqlite provider truncates integers in results
Date: Tue, 14 Feb 2017 21:31:49 +0800

I've taken a look at this now, and I believe this patch should fix your problem. Please try it, and I'd like to ask Jürgen to merge it.

Regards,
Elias



Index: src/sql/SqliteResultValue.cc
===================================================================
--- src/sql/SqliteResultValue.cc        (revision 885)
+++ src/sql/SqliteResultValue.cc        (working copy)
@@ -60,7 +60,7 @@
         int type = sqlite3_column_type( statement, i );
         switch( type ) {
         case SQLITE_INTEGER:
-            value = new IntResultValue( sqlite3_column_int( statement, i ) );
+            value = new IntResultValue( sqlite3_column_int64( statement, i ) );
             break;
         case SQLITE_FLOAT:
             value = new DoubleResultValue( sqlite3_column_double( statement, i ) );
Index: src/sql/SqliteResultValue.hh
===================================================================
--- src/sql/SqliteResultValue.hh        (revision 885)
+++ src/sql/SqliteResultValue.hh        (working copy)
@@ -36,12 +36,12 @@
 
 class IntResultValue : public ResultValue {
 public:
-    IntResultValue( int value_in ) : value( value_in ) {}
+    IntResultValue( APL_Integer value_in ) : value( value_in ) {}
     virtual ~IntResultValue() {}
     virtual void update( Cell *cell, Value & cell_owner ) const;
 
 private:
-    int value;
+    APL_Integer value;
 };
 
 class DoubleResultValue : public ResultValue {


On 12 February 2017 at 19:18, Elias Mårtenson <address@hidden> wrote:
Thanks. I'll take a look at this today or tomorrow if no one else does it before me. Ma ☺️

On 12 Feb 2017 7:13 PM, "Kacper Gutowski" <address@hidden> wrote:
The sqlite provider seems to silently truncate integer values in results:

      )COPY 5 SQL
DUMPED 2017-02-12 10:13:53 (GMT+1)
      db←'sqlite' SQL∆Connect ':memory:'
      'create table a(b)' SQL∆Exec[db] ⍬

      'insert into a values(?),(?)' SQL∆Exec[db] 2⋆31 32

      'select b from a' SQL∆Select[db] ⍬
¯2147483648
          0
      'select cast(b as real) from a' SQL∆Select[db] ⍬
2147483648
4294967296


-k



reply via email to

[Prev in Thread] Current Thread [Next in Thread]