[jira] [Assigned] (CALCITE-3763) RelBuilder.aggregate should prune unused fields from the input, if the input is a Project

2020-01-31 Thread Julian Hyde (Jira)


 [ 
https://issues.apache.org/jira/browse/CALCITE-3763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Hyde reassigned CALCITE-3763:


Assignee: Julian Hyde  (was: Jin Xing)

> RelBuilder.aggregate should prune unused fields from the input, if the input 
> is a Project
> -
>
> Key: CALCITE-3763
> URL: https://issues.apache.org/jira/browse/CALCITE-3763
> Project: Calcite
>  Issue Type: Bug
>Reporter: Julian Hyde
>Assignee: Julian Hyde
>Priority: Major
>
> {{RelBuilder.aggregate}} should prune unused fields from the input, if the 
> input is a {{Project}}.
> Pruning fields during the planning process is desirable, but often cannot do 
> it - we are applying a {{RelOptRule}} that has to return the same fields, or 
> we don't want to add an extra Project do so the pruning. But when we are in 
> {{RelBuilder.aggregate}} and the input is a Project, neither of those 
> limitations apply. We already have a Project, we are just making it narrower; 
> and we know what fields the {{Aggregate}} will produce.
> For example,
> {code:sql}
> SELECT deptno, SUM(sal) FILTER (WHERE b)
> FROM (
>   SELECT deptno, empno + 10, sal, job = 'CLERK' AS b
>   FROM emp)
> GROUP BY deptno
> {code}
> becomes
> {code:sql}
> SELECT deptno, SUM(sal) FILTER (WHERE b)
> FROM (
>   SELECT deptno, sal, job = 'CLERK' AS b
>   FROM emp)
> GROUP BY deptno
> {code}
> If there are no fields used, remove the {{Project}}. (A {{RelNode}} with no 
> fields is not allowed.)
> {code:sql}
> SELECT COUNT(*) AS C
> FROM (
>  SELECT deptno, empno + 10, sal, job = 'CLERK' AS b
>  FROM emp)
> {code}
> becomes
> {code:sql}
> SELECT COUNT(*) AS c
> FROM emp
> {code}
> Add an option {{RelBuilder.Config.pruneInputOfAggregate}}, default true, so 
> that people can disable this rewrite if it causes problems.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (CALCITE-3763) RelBuilder.aggregate should prune unused fields from the input, if the input is a Project

2020-01-31 Thread Jin Xing (Jira)


 [ 
https://issues.apache.org/jira/browse/CALCITE-3763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jin Xing reassigned CALCITE-3763:
-

Assignee: Jin Xing

> RelBuilder.aggregate should prune unused fields from the input, if the input 
> is a Project
> -
>
> Key: CALCITE-3763
> URL: https://issues.apache.org/jira/browse/CALCITE-3763
> Project: Calcite
>  Issue Type: Bug
>Reporter: Julian Hyde
>Assignee: Jin Xing
>Priority: Major
>
> {{RelBuilder.aggregate}} should prune unused fields from the input, if the 
> input is a {{Project}}.
> Pruning fields during the planning process is desirable, but often cannot do 
> it - we are applying a {{RelOptRule}} that has to return the same fields, or 
> we don't want to add an extra Project do so the pruning. But when we are in 
> {{RelBuilder.aggregate}} and the input is a Project, neither of those 
> limitations apply. We already have a Project, we are just making it narrower; 
> and we know what fields the {{Aggregate}} will produce.
> For example,
> {code:sql}
> SELECT deptno, SUM(sal) FILTER (WHERE b)
> FROM (
>   SELECT deptno, empno + 10, sal, job = 'CLERK' AS b
>   FROM emp)
> GROUP BY deptno
> {code}
> becomes
> {code:sql}
> SELECT deptno, SUM(sal) FILTER (WHERE b)
> FROM (
>   SELECT deptno, sal, job = 'CLERK' AS b
>   FROM emp)
> GROUP BY deptno
> {code}
> If there are no fields used, remove the {{Project}}. (A {{RelNode}} with no 
> fields is not allowed.)
> {code:sql}
> SELECT COUNT(*) AS C
> FROM (
>  SELECT deptno, empno + 10, sal, job = 'CLERK' AS b
>  FROM emp)
> {code}
> becomes
> {code:sql}
> SELECT COUNT(*) AS c
> FROM emp
> {code}
> Add an option {{RelBuilder.Config.pruneInputOfAggregate}}, default true, so 
> that people can disable this rewrite if it causes problems.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)