Riza Suminto has uploaded this change for review. ( http://gerrit.cloudera.org:8080/22897
Change subject: IMPALA-14071: Refactor MathUtil.saturatingMultiplyCardinalities() ...................................................................... IMPALA-14071: Refactor MathUtil.saturatingMultiplyCardinalities() There are multiple ways to do cardinality multipication that also avoid integer overflow. Some helper methods available are: MathUtil.saturatingMultiplyCardinalities() PlanNode.checkedMultiply() LongMath.saturatingMultiply() This patch intent to simplify things by unifying MathUtil.saturatingMultiplyCardinalities() with PlanNode.checkedMultiply(). The latter is maintained, while also adding cardinality Preconditions check. Similar Preconditions checks are also added into PlanNode.checkedAdd(). Also fixed bug in ExchangeNode.estimateTotalQueueByteSize() that prevent calculation against negative cardinality or negative num nodes. Testing: - Pass CardinalityTest and MathUtilTest. Change-Id: I505ab11cfa1024feb4ceac4cffe9c3283be228ce --- M fe/src/main/java/org/apache/impala/planner/AggregationNode.java M fe/src/main/java/org/apache/impala/planner/ExchangeNode.java M fe/src/main/java/org/apache/impala/planner/HdfsScanNode.java M fe/src/main/java/org/apache/impala/planner/PlanNode.java M fe/src/main/java/org/apache/impala/util/MathUtil.java M fe/src/test/java/org/apache/impala/planner/CardinalityTest.java M fe/src/test/java/org/apache/impala/util/MathUtilTest.java 7 files changed, 44 insertions(+), 50 deletions(-) git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/97/22897/1 -- To view, visit http://gerrit.cloudera.org:8080/22897 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I505ab11cfa1024feb4ceac4cffe9c3283be228ce Gerrit-Change-Number: 22897 Gerrit-PatchSet: 1 Gerrit-Owner: Riza Suminto <[email protected]>
