-Re: Review Request 21165: DRILL-626: Project push down into HBase scan
This is an automatically generated e-mail. To reply, visit:
Since the new Scan has the same rowtype as the original scan node, and we get the column count from RowType, when we compute the cost for this scan operator, I wonder if may lead to the same cost for the new scan and old scan operator. As a result, the new scan may not be chosen by optiq optimizer.
Probably, we need modify the code of getting column count in DrillScanRel.computeSelfCost().
Here, we override visitCall() in this visitor class. Do you think we override visitOver()? RexOver extendes RexCall, and also contains operands, though currently we do not support window function yet.
For RexLiteral, I think we had better use literal.getType().getSqlTypeName().
literal.getTypeName() returns a broad type of the literal. For example, all exact numbers, including integers have typeName "Decimal". If we use getTypeName(), then f[12.3] will also be pushed down into scan?
If we have a string literal in the query, then, this code will return a NamedSegment, and put the NamedSegment into the pushed column lists. For instance,
select 'abc', 'cde', regular_column from cp.`data.parquet`
if table happens to have column named 'abc', 'cde', then, the pushed columns means unnecessary scan cost.
- Jinfeng Ni
On May 7, 2014, 9:34 a.m., Aditya Kishore wrote: