Opened 6 years ago
Last modified 5 years ago
#1935 assigned defect
Implement support for 64-bit int base types — at Version 1
Reported by: | Dimitar Misev | Owned by: | ahambasan |
---|---|---|---|
Priority: | major | Milestone: | 11.0 |
Component: | raslib | Version: | development |
Keywords: | Cc: | Peter Baumann | |
Complexity: | Medium |
Description (last modified by )
The base types of values that an array can have currently supported by rasdaman are listed here: http://doc.rasdaman.org/04_ql-guide.html#base-types
The highest precision integer is limited to 32-bit, and we need to extent it to 64 bit (std::int64_t and std::uint64_t). In rasdaman these will be named:
long long
/longlong
unsigned long long
/ulonglong
Suffix for literal constants (cf. http://doc.rasdaman.org/04_ql-guide.html#atomic-constants) should ll
and ull
respectively.
Typedefs r_LongLong and r_ULongLong should be added here: http://rasdaman.org/browser/raslib/odmgtypes.hh#L100
From there search for r_Long / r_ULong / QT_LONG / QT_ULONG
to determine if there's any other classes / constants / enum types / switches that need to be extended. There's definitely changes to be done in: raslib, qlparser, relcatalogif, catalogmgr, clientcomm/servercomm, rasql/directql/rasj
In the end the following should work:
rasql -q 'select -1125899906842624ll' rasql -q 'select 1125899906842624ull' rasql -q 'select <[0:0] -1125899906842624ll>' rasql -q 'select <[0:0] 1125899906842624ull>' rasql -q 'select add_cells(<[0:0] -1125899906842624ll>)' rasql -q 'select add_cells(<[0:0] 1125899906842624ull>)' rasql -q 'create collection testlonglong LongLongSet' rasql -q 'create collection testulonglong ULongLongSet' rasql -q 'insert into testlonglong values <[0:0,0:0] -1125899906842624ll>' rasql -q 'insert into testulonglong values <[0:0,0:0] 1125899906842624ull>' rasql -q 'select add_cells(c) from testlonglong as c' rasql -q 'select add_cells(c) from testlonglong as c'