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)

Reply via email to