[
https://issues.apache.org/jira/browse/HIVE-19131?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Laszlo Bodor updated HIVE-19131:
--------------------------------
Description:
DecimalColumnStatsMergerTest has a strange comparison logic, which needs to be
reviewed.
Regarding low and high values, it uses compareTo with the same direction, which
seems to be incorrect: old.compareTo(new) > 0 -> pick old value in both cases
{code:java}
Decimal lowValue = aggregateData.getLowValue() != null &&
(aggregateData.getLowValue().compareTo(newData.getLowValue()) > 0) ?
aggregateData .getLowValue() : newData.getLowValue();
aggregateData.setLowValue(lowValue);
Decimal highValue = aggregateData.getHighValue() != null &&
(aggregateData.getHighValue().compareTo(newData.getHighValue()) > 0) ?
aggregateData .getHighValue() : newData.getHighValue();
{code}
was:
DecimalColumnStatsMergerTest has a strange comparison logic, which needs to be
reviewed.
Regarding low and high values, it uses compareTo with the same direction, which
seems to be incorrect.
{code}
Decimal lowValue = aggregateData.getLowValue() != null &&
(aggregateData.getLowValue().compareTo(newData.getLowValue()) > 0) ?
aggregateData .getLowValue() : newData.getLowValue();
aggregateData.setLowValue(lowValue); Decimal highValue =
aggregateData.getHighValue() != null &&
(aggregateData.getHighValue().compareTo(newData.getHighValue()) > 0) ?
aggregateData .getHighValue() : newData.getHighValue();
{code}
> DecimalColumnStatsMergerTest comparison review
> ----------------------------------------------
>
> Key: HIVE-19131
> URL: https://issues.apache.org/jira/browse/HIVE-19131
> Project: Hive
> Issue Type: Bug
> Reporter: Laszlo Bodor
> Priority: Major
>
> DecimalColumnStatsMergerTest has a strange comparison logic, which needs to
> be reviewed.
> Regarding low and high values, it uses compareTo with the same direction,
> which seems to be incorrect: old.compareTo(new) > 0 -> pick old value in both
> cases
> {code:java}
> Decimal lowValue = aggregateData.getLowValue() != null &&
> (aggregateData.getLowValue().compareTo(newData.getLowValue()) > 0) ?
> aggregateData .getLowValue() : newData.getLowValue();
> aggregateData.setLowValue(lowValue);
> Decimal highValue = aggregateData.getHighValue() != null &&
> (aggregateData.getHighValue().compareTo(newData.getHighValue()) > 0) ?
> aggregateData .getHighValue() : newData.getHighValue();
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)