Aleksandr Efimov has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/24913


Change subject: IMPALA-15394: Keep count(*) scans out of the HBO key of a 
regular scan
......................................................................

IMPALA-15394: Keep count(*) scans out of the HBO key of a regular scan

An HdfsScanNode with the count(*) optimization reads row counts from
file metadata and returns one row per file or row group. Its cardinality
is the number of files, and HBO stores that under the same key as a
regular scan of the same table and conjuncts, because
generateHboKeyString() does not include countStarSlot_. The next regular
scan then takes the file count as its cardinality from HBO.

For example, after "SELECT count(*) FROM t" on a Parquet table with 15
files and 13.66M rows, "SELECT * FROM t" is planned with
cardinality=15 (from HBO), and every estimate above the scan follows.

This patch adds a <COUNT_STAR> marker to the scan key when the
optimization is applied, so the two kinds of runs get separate keys.

Testing:
- Added HboKeyStringTest.testCountStarScanNodeKey.

Change-Id: I03183aa998f90bf834dba4ce9ad2f2e57fef1140
---
M fe/src/main/java/org/apache/impala/planner/HdfsScanNode.java
M fe/src/test/java/org/apache/impala/planner/HboKeyStringTest.java
2 files changed, 28 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/13/24913/1
--
To view, visit http://gerrit.cloudera.org:8080/24913
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I03183aa998f90bf834dba4ce9ad2f2e57fef1140
Gerrit-Change-Number: 24913
Gerrit-PatchSet: 1
Gerrit-Owner: Aleksandr Efimov <[email protected]>

Reply via email to