You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Aman Sinha (JIRA)" <ji...@apache.org> on 2015/06/25 03:04:06 UTC

[jira] [Created] (CALCITE-770) LogicalAggregate plan node looks incorrect when window functions are present

Aman Sinha created CALCITE-770:
----------------------------------

             Summary: LogicalAggregate plan node looks incorrect when window functions are present
                 Key: CALCITE-770
                 URL: https://issues.apache.org/jira/browse/CALCITE-770
             Project: Calcite
          Issue Type: Bug
    Affects Versions: 1.3.0-incubating
            Reporter: Aman Sinha
            Assignee: Julian Hyde


For the following query:
{code}
  select min(sal), max(sal), 
      rank() over (order by job), 
      sum(sal) over (order by job) 
    from emp 
  group by job, sal
{code}

I would have expected the LogicalAggregate to do the group-by and produce the MIN and MAX only.  The plan below shows 2 additional fields: agg#2=RANK and agg#3=SUM($1) .  I think this is incorrect because these functions should be associated with the LogicalWindow node only (which does not show up in the plan yet).   Converting the LogicalAggregate to a physical plan node creates difficulties due to this.  Is the physical aggregate supposed to only look at EXPR$1 and EXPR$2 and ignore agg#1, agg#2 ? 

{code}
LogicalProject(EXPR$0=[$2], EXPR$1=[$3], EXPR$2=[RANK() OVER (ORDER BY $0 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)], EXPR$3=[SUM($1) OVER (ORDER BY $0 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)])
  LogicalAggregate(group=[{0, 1}], EXPR$0=[MIN($1)], EXPR$1=[MAX($1)], agg#2=[RANK()], agg#3=[SUM($1)])
    LogicalProject(JOB=[$2], SAL=[$5])
      LogicalTableScan(table=[[CATALOG, SALES, EMP]])
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)