Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
Impala 2.8.0
-
ghx-label-2
Description
When Kudu scans have predicates pushed to Kudu, the base implementation of ScanNode.getInputCardinality() is wrong:
@Override public long getInputCardinality() { if (getConjuncts().isEmpty() && hasLimit()) return getLimit(); return inputCardinality_; }
getConjuncts() won't contain the predicates pushed to Kudu. If such a query has a limit and there aren't any conjuncts applied at the scan node, then this function will return the limit as the input cardinality mistakenly.
This can result in a query running with the "small query" optimization when it should not be, i.e. it runs on a single node with a single scanner thread.