[ 
https://issues.apache.org/jira/browse/CALCITE-1876?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16086273#comment-16086273
 ] 

Julian Hyde commented on CALCITE-1876:
--------------------------------------

The CSV adapter was written as an example (hence its path example/csv). Let's 
keep it simple (and flawed, because the flaws are informative to people 
learning how to write an adapter). Let's modify the file adapter instead, which 
has (I believe) all of the capabilities of the CSV adapter and more.

> Create a rule to push the projections used in aggregate functions
> -----------------------------------------------------------------
>
>                 Key: CALCITE-1876
>                 URL: https://issues.apache.org/jira/browse/CALCITE-1876
>             Project: Calcite
>          Issue Type: Improvement
>          Components: csv-adapter
>            Reporter: Luis Fernando Kauer
>            Assignee: Julian Hyde
>            Priority: Minor
>
> From Julian Hyde;
> "Calcite should realize that Aggregate has an implied Project (because it 
> only uses a few columns) and push that projection into the CsvTableScan, but 
> it doesn’t."
> A query scans only the used projection when no aggregation is used:
> sql->explain plan for select name from emps;
> CsvTableScan(table=[[SALES, EMPS]], fields=[[1]])
> But it scans all the projections when an aggregation is used:
> sql->explain plan for select max(name) from emps;
> EnumerableAggregate(group=[{}], EXPR$0=[MAX($1)])
> CsvTableScan(table=[[SALES, EMPS]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to