Opened 6 years ago
Last modified 5 years ago
#1935 assigned defect
Implement support for 64-bit int base types — at Version 4
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 encode(<[0:0] -1125899906842624ll>, "csv")' rasql -q 'select encode(<[0:0] 1125899906842624ull>, "csv")' 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>'
Change History (4)
comment:1 by , 6 years ago
Description: | modified (diff) |
---|
comment:2 by , 6 years ago
Description: | modified (diff) |
---|
comment:3 by , 6 years ago
comment:4 by , 6 years ago
Description: | modified (diff) |
---|
In catalogmgr throw an error if the base type is longlong/ulonglong for now.