[ https://issues.apache.org/jira/browse/KYLIN-1732?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
liyang updated KYLIN-1732: -------------------------- Issue Type: New Feature (was: Bug) > Support Window Function > ----------------------- > > Key: KYLIN-1732 > URL: https://issues.apache.org/jira/browse/KYLIN-1732 > Project: Kylin > Issue Type: New Feature > Components: Query Engine > Affects Versions: v1.5.2 > Reporter: Yerui Sun > Assignee: liyang > > Kylin didn't support window function yet. Here's a test query: > {code} > select lstg_format_name, count(*) over(partition by lstg_format_name) > from kylin_sales > {code} > The query threw a exception and here's the error log and stack trace: > {code} > Error while executing SQL "select lstg_format_name, count(*) over(partition > by lstg_format_name) from kylin_sales LIMIT 50000": cannot translate call > COUNT() OVER (PARTITION BY $t3 RANGE BETWEEN UNBOUNDED PRECEDING AND > UNBOUNDED FOLLOWING) > {code} > {code} > Caused by: java.lang.RuntimeException: cannot translate call COUNT() OVER > (PARTITION BY $t3 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) > at > org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:533) > at > org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507) > at > org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219) > at > org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472) > at > org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219) > at > org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:214) > at > org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateList(RexToLixTranslator.java:700) > at > org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateProjects(RexToLixTranslator.java:189) > at > org.apache.calcite.adapter.enumerable.EnumerableCalc.implement(EnumerableCalc.java:188) > at > org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97) > at > org.apache.kylin.query.relnode.OLAPRel$JavaImplementor.visitChild(OLAPRel.java:183) > at > org.apache.calcite.adapter.enumerable.EnumerableLimit.implement(EnumerableLimit.java:106) > at > org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97) > at > org.apache.kylin.query.relnode.OLAPRel$JavaImplementor.visitChild(OLAPRel.java:183) > at > org.apache.kylin.query.relnode.OLAPToEnumerableConverter.implement(OLAPToEnumerableConverter.java:108) > at > org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:102) > at > org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:92) > at > org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1171) > at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:297) > at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:196) > at > org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:721) > at > org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:588) > at > org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:558) > at > org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:214) > at > org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:573) > at > org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:571) > at > org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:135) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)