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

Mihai Budiu commented on CALCITE-6986:
--------------------------------------

I managed to fix it almost completely, except that I cannot get the generated 
parser handle correctly an empty string.
The Token parser throws an out of bound exception.
Maybe this is a javacc bug?
I will work around by never passing an empty string to the parser, but that's 
ugly.

{code}
java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
        at 
org.apache.calcite.sql.parser.impl.SimpleCharStream.readChar(SimpleCharStream.java:195)
        at 
org.apache.calcite.sql.parser.impl.SimpleCharStream.BeginToken(SimpleCharStream.java:134)
        at 
org.apache.calcite.sql.parser.impl.SqlParserImplTokenManager.getNextToken(SqlParserImplTokenManager.java:26469)
        at 
org.apache.calcite.sql.parser.impl.SqlParserImpl.jj_ntk(SqlParserImpl.java:44484)
        at 
org.apache.calcite.sql.parser.impl.SqlParserImpl.SqlStmtList(SqlParserImpl.java:3082)
        at 
org.apache.calcite.sql.parser.impl.SqlParserImpl.parseSqlStmtList(SqlParserImpl.java:213)
{code}

> Parser rejects SQL sources that produce an empty statement list
> ---------------------------------------------------------------
>
>                 Key: CALCITE-6986
>                 URL: https://issues.apache.org/jira/browse/CALCITE-6986
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.39.0
>            Reporter: Mihai Budiu
>            Priority: Minor
>
> The following SqlParserTest returns a SqlParseException:
> {code}
>     sql(" ").ok("");
> {code}
> Stack trace:
> {code}
>       at 
> org.apache.calcite.sql.parser.impl.SqlParserImpl.generateParseException(SqlParserImpl.java:44127)
>       at 
> org.apache.calcite.sql.parser.impl.SqlParserImpl.jj_consume_token(SqlParserImpl.java:43938)
>       at 
> org.apache.calcite.sql.parser.impl.SqlParserImpl.SqlStmt(SqlParserImpl.java:4127)
>       at 
> org.apache.calcite.sql.parser.impl.SqlParserImpl.SqlStmtEof(SqlParserImpl.java:4139)
>       at 
> org.apache.calcite.sql.parser.impl.SqlParserImpl.parseSqlStmtEof(SqlParserImpl.java:209)
>       at 
> org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:172)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to