You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Piotr Bojko (JIRA)" <ji...@apache.org> on 2018/08/30 11:44:00 UTC
[jira] [Updated] (CALCITE-2511) Possible bug in parsing
implementation of rown_num select
[ https://issues.apache.org/jira/browse/CALCITE-2511?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Piotr Bojko updated CALCITE-2511:
---------------------------------
Description:
I've found a possible bug.
With following view:
{code:json}
{
"name": "STEPS",
"type": "view",
"sql": [
"WITH ALLROWS AS ( ",
" SELECT ",
" ROW_NUMBER() OVER W AS IDX, I.ID ISSUE, COALESCE(CG.AUTHOR, I.REPORTER) AS AUTHOR, COALESCE(CI.OLDVALUE, I.STATUS) AS STATUS, I.CREATED AS STARTDATE, CG.CREATED AS ENDDATE ",
" FROM ISSUES AS I ",
" JOIN INTERNAL.CHANGEGROUP AS CG ON CG.ISSUEID = I.ID ",
" JOIN INTERNAL.CHANGEITEM AS CI ON CI.GROUPID = CG.ID ",
" WHERE CI.FIELDTYPE = 'jira' AND CI.FIELD = 'status' ",
" WINDOW w AS (PARTITION BY i.id ORDER BY CG.CREATED) ",
") ",
"SELECT ISSUE, AUTHOR, STATUS, STARTDATE, ENDDATE ",
"FROM ALLROWS WHERE ALLROWS.IDX <= 1 ",
"UNION ALL ",
"SELECT I.ID AS ISSUE, CG.AUTHOR, CI.NEWVALUE AS STATUS, CG.CREATED AS STARTDATE, LEAD(CG.CREATED, 1) OVER W AS ENDDATE ",
"FROM ISSUES i ",
"JOIN INTERNAL.CHANGEGROUP AS CG ON CG.ISSUEID = I.ID ",
"JOIN INTERNAL.CHANGEITEM AS CI ON CI.GROUPID = CG.ID ",
"WHERE CI.FIELDTYPE = 'jira' AND CI.FIELD = 'status' ",
"WINDOW W AS (PARTITION BY I.ID ORDER BY CG.CREATED) "
]
},
{code}
When performig
{code:sql}
SELECT * FROM STEPS
{code}
The result is
{noformat}
Line 1556, Column 0: Java$AmbiguousName is not allowed as an expression statement. Expressions statements must be one of assignments, method invocations, or object allocations..
{noformat}
As an attachment, I've attached implementation. Clearly the line 1555/1556 is wrong...
I've discovered then, when removing *WHERE ALLROWS.IDX <= 1* - all is ok.
was:
I've found a possible bug.
With following view:
{code:json}
{
"name": "STEPS",
"type": "view",
"sql": [
"WITH ALLROWS AS ( ",
" SELECT ",
" ROW_NUMBER() OVER W AS IDX, I.ID ISSUE, COALESCE(CG.AUTHOR, I.REPORTER) AS AUTHOR, COALESCE(CI.OLDVALUE, I.STATUS) AS STATUS, I.CREATED AS STARTDATE, CG.CREATED AS ENDDATE ",
" FROM ISSUES AS I ",
" JOIN INTERNAL.CHANGEGROUP AS CG ON CG.ISSUEID = I.ID ",
" JOIN INTERNAL.CHANGEITEM AS CI ON CI.GROUPID = CG.ID ",
" WHERE CI.FIELDTYPE = 'jira' AND CI.FIELD = 'status' ",
" WINDOW w AS (PARTITION BY i.id ORDER BY CG.CREATED) ",
") ",
"SELECT ISSUE, AUTHOR, STATUS, STARTDATE, ENDDATE ",
"FROM ALLROWS WHERE ALLROWS.IDX <= 1 ",
"UNION ALL ",
"SELECT I.ID AS ISSUE, CG.AUTHOR, CI.NEWVALUE AS STATUS, CG.CREATED AS STARTDATE, LEAD(CG.CREATED, 1) OVER W AS ENDDATE ",
"FROM ISSUES i ",
"JOIN INTERNAL.CHANGEGROUP AS CG ON CG.ISSUEID = I.ID ",
"JOIN INTERNAL.CHANGEITEM AS CI ON CI.GROUPID = CG.ID ",
"WHERE CI.FIELDTYPE = 'jira' AND CI.FIELD = 'status' ",
"WINDOW W AS (PARTITION BY I.ID ORDER BY CG.CREATED) "
]
},
{code}
When performig
{code:sql}
SELECT * FROM STEPS
{code}
The result is
{noformat}
Line 1556, Column 0: Java$AmbiguousName is not allowed as an expression statement. Expressions statements must be one of assignments, method invocations, or object allocations..
{noformat}
As an attachment, I've attached implementation. Clearly the line 1555/1556 is wrong...
> Possible bug in parsing implementation of rown_num select
> ---------------------------------------------------------
>
> Key: CALCITE-2511
> URL: https://issues.apache.org/jira/browse/CALCITE-2511
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.17.0, 1.18.0
> Reporter: Piotr Bojko
> Assignee: Julian Hyde
> Priority: Major
> Attachments: implementation.java
>
>
> I've found a possible bug.
> With following view:
> {code:json}
> {
> "name": "STEPS",
> "type": "view",
> "sql": [
> "WITH ALLROWS AS ( ",
> " SELECT ",
> " ROW_NUMBER() OVER W AS IDX, I.ID ISSUE, COALESCE(CG.AUTHOR, I.REPORTER) AS AUTHOR, COALESCE(CI.OLDVALUE, I.STATUS) AS STATUS, I.CREATED AS STARTDATE, CG.CREATED AS ENDDATE ",
> " FROM ISSUES AS I ",
> " JOIN INTERNAL.CHANGEGROUP AS CG ON CG.ISSUEID = I.ID ",
> " JOIN INTERNAL.CHANGEITEM AS CI ON CI.GROUPID = CG.ID ",
> " WHERE CI.FIELDTYPE = 'jira' AND CI.FIELD = 'status' ",
> " WINDOW w AS (PARTITION BY i.id ORDER BY CG.CREATED) ",
> ") ",
> "SELECT ISSUE, AUTHOR, STATUS, STARTDATE, ENDDATE ",
> "FROM ALLROWS WHERE ALLROWS.IDX <= 1 ",
> "UNION ALL ",
> "SELECT I.ID AS ISSUE, CG.AUTHOR, CI.NEWVALUE AS STATUS, CG.CREATED AS STARTDATE, LEAD(CG.CREATED, 1) OVER W AS ENDDATE ",
> "FROM ISSUES i ",
> "JOIN INTERNAL.CHANGEGROUP AS CG ON CG.ISSUEID = I.ID ",
> "JOIN INTERNAL.CHANGEITEM AS CI ON CI.GROUPID = CG.ID ",
> "WHERE CI.FIELDTYPE = 'jira' AND CI.FIELD = 'status' ",
> "WINDOW W AS (PARTITION BY I.ID ORDER BY CG.CREATED) "
> ]
> },
> {code}
> When performig
> {code:sql}
> SELECT * FROM STEPS
> {code}
> The result is
> {noformat}
> Line 1556, Column 0: Java$AmbiguousName is not allowed as an expression statement. Expressions statements must be one of assignments, method invocations, or object allocations..
> {noformat}
> As an attachment, I've attached implementation. Clearly the line 1555/1556 is wrong...
> I've discovered then, when removing *WHERE ALLROWS.IDX <= 1* - all is ok.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)