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 Dimitar Misev)

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'

Change History (1)

comment:1 by Dimitar Misev, 6 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.