[
https://issues.apache.org/jira/browse/ARROW-61?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15291231#comment-15291231
]
Vitalii Diravka commented on ARROW-61:
--------------------------------------
[~lfz_carlos] This is adjustScaleMultiply(long input, int factor) method. I
have already mentioned where it is in drill.
In apache arrow this is org/apache/arrow/vector/util/DecimalUtility.java class.
{code}
public static long adjustScaleMultiply(long input, int factor) {
int index = Math.abs(factor);
assert index >= 0 && index < scale_long_constants.length;
if (factor >= 0) {
return input * scale_long_constants[index];
} else {
return input / scale_long_constants[index];
}
}
{code}
> Method can return the value bigger than long MAX_VALUE
> ------------------------------------------------------
>
> Key: ARROW-61
> URL: https://issues.apache.org/jira/browse/ARROW-61
> Project: Apache Arrow
> Issue Type: Bug
> Components: Java - Vectors
> Environment: Apache Drill, Apache Arrow
> Reporter: Vitalii Diravka
> Labels: adjustScale, arrow, decimal
>
> Method org.apache.drill.exec.util.DecimalUtility.adjustScaleMultiply(long
> input, int factor) can return the value bigger than long max value.
> For example by comparison two decimal18 values 9223372036854775807 and 0.001.
> To adjust first value scale this method should return 9223372036854775807 *
> 1000 - bigger than long max value.
> Class DecimalUtility.java will be a part of org.apache.arrow after renaming
> described in [DRILL-4455 Depend on Apache Arrow for Vector and Memory|
> https://issues.apache.org/jira/browse/DRILL-4455]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)