[jira] [Assigned] (CALCITE-3763) RelBuilder.aggregate should prune unused fields from the input, if the input is a Project
[ 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
[ 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)