You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Vladimir Sitnikov (JIRA)" <ji...@apache.org> on 2014/06/26 09:13:25 UTC

[jira] [Commented] (OPTIQ-312) Need PushProjectThroughWindowRel

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

Vladimir Sitnikov commented on OPTIQ-312:
-----------------------------------------

It looks like there's a simple solution: ensure the first "CalcRelSplitter level" is CalcRelType, that triggers projection optimization and results in the desired plan without new rules.
See https://github.com/julianhyde/optiq/pull/307



> Need PushProjectThroughWindowRel
> --------------------------------
>
>                 Key: OPTIQ-312
>                 URL: https://issues.apache.org/jira/browse/OPTIQ-312
>             Project: optiq
>          Issue Type: Improvement
>            Reporter: Vladimir Sitnikov
>            Assignee: Julian Hyde
>            Priority: Minor
>
> Currently optiq does not push projects through {{WindowRel}}, thus it feeds excessive data to {{WindowRel}}.
> {code:sql}
> select *
>   from (
>     select "empid", "deptno", count(*) over (partition by "deptno") c
>       from "hr"."emps"
>  )
>  where "deptno"=10 and "empid"=100{code}
> Optiq should recognize it is required to track just fields {{empid}} and {{deptno}}.
> However the java code is as follows (note that empid, name, salary, and commission are projected):
> {code:java}
> /*  47 */       _list.add(new Object[] {
> /*  48 */         row.empid,
> /*  49 */         row.deptno,
> /*  50 */         row.name,
> /*  51 */         row.salary,
> /*  52 */         row.commission,
> /*  53 */         COUNTa0w0});
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)