Opened 5 years ago
Closed 5 years ago
#2210 closed defect (fixed)
Fix type coercion rules
Reported by: | Dimitar Misev | Owned by: | dkamov |
---|---|---|---|
Priority: | major | Milestone: | 10.0 |
Component: | catalogmgr | Version: | 9.8 |
Keywords: | Cc: | Peter Baumann, Vlad Merticariu | |
Complexity: | Medium |
Description (last modified by )
The following changes need to be implemented in source:catalogmgr/ops.cc in order to make the type coercion rules more consistent. It will require updating oracles in the systemtest as well.
+, -, *
Type coercion rules are now
Should be
div
- Floating point operands should be supported
- Type rules should be same as above for +, -, *
mod
- Floating point operands should be supported (use std::remainder in code)
- Type rules should be mostly like +, -, *, except that the result is f only if both operands are floating point
abs
- Currently any operand results in a double
- The result should have the same type as the operand
sqrt, log, ln, exp, pow, sin, cos, tan, sinh, cosh, tanh, arcsin, arccos, arctan
- If both operands are f the result should be also float (now returns double in this case)
and, or, xor, not
- Should work as boolean logic operators on inputs of any type, including floating-point (currently they work as bitwise operators if inputs are not boolean)
count_cells
- Result type should be long instead of unsigned long
add_cells
- For signed/unsigned integer input the result should be long
Attachments (3)
Change History (6)
by , 5 years ago
Attachment: | binary_plus_now.png added |
---|
by , 5 years ago
Attachment: | binary_plus_todo.png added |
---|
by , 5 years ago
Attachment: | mod_todo.png added |
---|
comment:1 by , 5 years ago
Description: | modified (diff) |
---|
comment:2 by , 5 years ago
comment:3 by , 5 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
The rules are now in place and documented at http://doc.rasdaman.org/04_ql-guide.html#type-coercion-rules