[ https://issues.apache.org/jira/browse/CALCITE-5069?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Xurenhe reopened CALCITE-5069: ------------------------------ > Method of minus's getRowCount has not consider 'except all' > ----------------------------------------------------------- > > Key: CALCITE-5069 > URL: https://issues.apache.org/jira/browse/CALCITE-5069 > Project: Calcite > Issue Type: Improvement > Components: core > Reporter: Xurenhe > Assignee: Xurenhe > Priority: Major > > Current code of *RelMdRowCount* has not consider 'except all', it should be > double. > It's similar to > [CALCITE-3287|https://issues.apache.org/jira/browse/CALCITE-3287] and > [CALCITE-3988|https://issues.apache.org/jira/browse/CALCITE-3988] > CODE: *RelMdRowCount#getRowCount(Minus, RelMetadataQuery)* > > {code:java} > // now > public @Nullable Double getRowCount(Minus rel, RelMetadataQuery mq) { > Double rowCount = null; > for (RelNode input : rel.getInputs()) { > Double partialRowCount = mq.getRowCount(input); > if (rowCount == null > || partialRowCount != null && partialRowCount < rowCount) { > rowCount = partialRowCount; > } > } > return rowCount; > } > // right > public @Nullable Double getRowCount(Minus rel, RelMetadataQuery mq) { > Double rowCount = null; > for (RelNode input : rel.getInputs()) { > Double partialRowCount = mq.getRowCount(input); > if (rowCount == null > || partialRowCount != null && partialRowCount < rowCount) { > rowCount = partialRowCount; > } > } > if (rowCount == null || !rel.all) { > return rowCount; > } else { > return rowCount * 2; > } > }{code} > > -- This message was sent by Atlassian Jira (v8.20.1#820001)