godfrey he created CALCITE-2068:
-----------------------------------
Summary: throws NPE in RelMdPercentageOriginalRows when
getPercentageOriginalRows returns null
Key: CALCITE-2068
URL: https://issues.apache.org/jira/browse/CALCITE-2068
Project: Calcite
Issue Type: Bug
Components: core
Affects Versions: 1.13.0
Reporter: godfrey he
Assignee: Julian Hyde
these two method will get NEP:
{code:title=RelMdPercentageOriginalRows.java|borderStyle=solid}
public Double getPercentageOriginalRows(Union rel, RelMetadataQuery mq) {
double numerator = 0.0;
double denominator = 0.0;
for (RelNode input : rel.getInputs()) {
double rowCount = mq.getRowCount(input);
double percentage = mq.getPercentageOriginalRows(input);
if (percentage != 0.0) {
denominator += rowCount / percentage;
numerator += rowCount;
}
}
return quotientForPercentage(numerator, denominator);
}
public Double getPercentageOriginalRows(Join rel, RelMetadataQuery mq) {
double left = mq.getPercentageOriginalRows(rel.getLeft());
double right = mq.getPercentageOriginalRows(rel.getRight());
return left * right;
}
{code}
getPercentageOriginalRows maybe return null, and assigning null to double will
get NPE.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)