[ https://issues.apache.org/jira/browse/CALCITE-1876?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16243441#comment-16243441 ]
Julian Hyde commented on CALCITE-1876: -------------------------------------- Reviewing and testing https://github.com/apache/calcite/pull/562/commits/969b3e192711984138ae414f87d23428f4d9a5ff now. > 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)