Vladimir Sitnikov created CALCITE-4531:
------------------------------------------

             Summary: Deprecate RexLiteral#intValue since it performs silent 
truncation
                 Key: CALCITE-4531
                 URL: https://issues.apache.org/jira/browse/CALCITE-4531
             Project: Calcite
          Issue Type: Improvement
          Components: core
            Reporter: Vladimir Sitnikov


{{RexLiteral#intValue}} is prone to errors since it silently truncates values 
to {{int}} so the developers might fail to know that at the compile time.

It might be safer to expose {{BigDecimal}} or {{intValueExact}} or 
{{doubleValue}} alternatives which would be "enough for all the possible cases".

An alternative option is to mark the method as deprecated, so every use of the 
method would require users to suppress the warning, so they know why the method 
is deprecated.

I guess the most common use case for {{RexLiteral.intValue}} is {{offset}} and 
{{fetch}} in {{Sort}}, however, the misuse is hard to spot, and it might result 
in hard to notice data corruptions.





--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to