You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kylin.apache.org by "Dong Li (JIRA)" <ji...@apache.org> on 2017/04/23 12:07:04 UTC

[jira] [Updated] (KYLIN-2538) extract(MONTH from CURRENT_DATE) cannot be selected as a column in sql

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

Dong Li updated KYLIN-2538:
---------------------------
    Description: 
From calcite SQL reference: CURRENT_DATE is a const to get the value of current value.
But in Kylin this SQL will fail with exceptions:
select extract(MONTH from CURRENT_DATE), count(*) from test_kylin_fact

Error message:
Error while executing SQL "select extract(MONTH from CURRENT_DATE), count(*) from test_kylin_fact LIMIT 50000": No TblColRef found in EXTRACT_DATE(FLAG(MONTH), Reinterpret(CURRENT_DATE))

Stacktrace:
Caused by: java.lang.IllegalStateException: No TblColRef found in EXTRACT_DATE(FLAG(MONTH), Reinterpret(CURRENT_DATE))
        at org.apache.kylin.query.relnode.OLAPProjectRel.buildColumnRowType(OLAPProjectRel.java:132)
        at org.apache.kylin.query.relnode.OLAPProjectRel.implementOLAP(OLAPProjectRel.java:117)
        at org.apache.kylin.query.relnode.OLAPRel$OLAPImplementor.visitChild(OLAPRel.java:83)
        at org.apache.kylin.query.relnode.OLAPLimitRel.implementOLAP(OLAPLimitRel.java:75)
        at org.apache.kylin.query.relnode.OLAPRel$OLAPImplementor.visitChild(OLAPRel.java:83)
        at org.apache.kylin.query.relnode.OLAPToEnumerableConverter.implement(OLAPToEnumerableConverter.java:85)
        at org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:108)
        at org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:92)
        at org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1248)
        at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:306)
        at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:203)

  was:
This SQL will fail with exceptions:
select extract(MONTH from CURRENT_DATE), count(*) from test_kylin_fact

Error message:
Error while executing SQL "select extract(MONTH from CURRENT_DATE), count(*) from test_kylin_fact LIMIT 50000": No TblColRef found in EXTRACT_DATE(FLAG(MONTH), Reinterpret(CURRENT_DATE))

Stacktrace:
Caused by: java.lang.IllegalStateException: No TblColRef found in EXTRACT_DATE(FLAG(MONTH), Reinterpret(CURRENT_DATE))
        at org.apache.kylin.query.relnode.OLAPProjectRel.buildColumnRowType(OLAPProjectRel.java:132)
        at org.apache.kylin.query.relnode.OLAPProjectRel.implementOLAP(OLAPProjectRel.java:117)
        at org.apache.kylin.query.relnode.OLAPRel$OLAPImplementor.visitChild(OLAPRel.java:83)
        at org.apache.kylin.query.relnode.OLAPLimitRel.implementOLAP(OLAPLimitRel.java:75)
        at org.apache.kylin.query.relnode.OLAPRel$OLAPImplementor.visitChild(OLAPRel.java:83)
        at org.apache.kylin.query.relnode.OLAPToEnumerableConverter.implement(OLAPToEnumerableConverter.java:85)
        at org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:108)
        at org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:92)
        at org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1248)
        at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:306)
        at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:203)


> extract(MONTH from CURRENT_DATE) cannot be selected as a column in sql
> ----------------------------------------------------------------------
>
>                 Key: KYLIN-2538
>                 URL: https://issues.apache.org/jira/browse/KYLIN-2538
>             Project: Kylin
>          Issue Type: Bug
>          Components: Query Engine
>            Reporter: Dong Li
>            Assignee: liyang
>
> From calcite SQL reference: CURRENT_DATE is a const to get the value of current value.
> But in Kylin this SQL will fail with exceptions:
> select extract(MONTH from CURRENT_DATE), count(*) from test_kylin_fact
> Error message:
> Error while executing SQL "select extract(MONTH from CURRENT_DATE), count(*) from test_kylin_fact LIMIT 50000": No TblColRef found in EXTRACT_DATE(FLAG(MONTH), Reinterpret(CURRENT_DATE))
> Stacktrace:
> Caused by: java.lang.IllegalStateException: No TblColRef found in EXTRACT_DATE(FLAG(MONTH), Reinterpret(CURRENT_DATE))
>         at org.apache.kylin.query.relnode.OLAPProjectRel.buildColumnRowType(OLAPProjectRel.java:132)
>         at org.apache.kylin.query.relnode.OLAPProjectRel.implementOLAP(OLAPProjectRel.java:117)
>         at org.apache.kylin.query.relnode.OLAPRel$OLAPImplementor.visitChild(OLAPRel.java:83)
>         at org.apache.kylin.query.relnode.OLAPLimitRel.implementOLAP(OLAPLimitRel.java:75)
>         at org.apache.kylin.query.relnode.OLAPRel$OLAPImplementor.visitChild(OLAPRel.java:83)
>         at org.apache.kylin.query.relnode.OLAPToEnumerableConverter.implement(OLAPToEnumerableConverter.java:85)
>         at org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:108)
>         at org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:92)
>         at org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1248)
>         at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:306)
>         at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:203)



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)