quxiucheng created CALCITE-3474:
-----------------------------------
Summary: SqlSimpleParser simplifySql Query token.s
NullPointerException
Key: CALCITE-3474
URL: https://issues.apache.org/jira/browse/CALCITE-3474
Project: Calcite
Issue Type: Bug
Components: core
Affects Versions: 1.21.0
Reporter: quxiucheng
Fix For: next
SQL:
{code:java}
select ^ from (select * from sales.emp ) a
{code}
use SqlSimpleParser parse sql
Exception:
{code:java}
java.lang.NullPointerExceptionjava.lang.NullPointerException at
org.apache.calcite.sql.advise.SqlSimpleParser$Query.contains(SqlSimpleParser.java:818)
at
org.apache.calcite.sql.advise.SqlSimpleParser$Query.simplify(SqlSimpleParser.java:548)
at
org.apache.calcite.sql.advise.SqlSimpleParser$Query.simplifyList(SqlSimpleParser.java:508)
at
org.apache.calcite.sql.advise.SqlSimpleParser.simplifySql(SqlSimpleParser.java:171)
at
org.apache.calcite.sql.advise.SqlSimpleParser.simplifySql(SqlSimpleParser.java:141)
at org.apache.calcite.sql.advise.SqlAdvisor.simplifySql(SqlAdvisor.java:556)
at
org.apache.calcite.sql.advise.SqlAdvisor.getCompletionHints0(SqlAdvisor.java:222)
at
org.apache.calcite.sql.advise.SqlAdvisor.getCompletionHints(SqlAdvisor.java:192)
{code}
cause:
SqlSimpleParser Token.s
s is null
{code:java}
private boolean contains(String hintToken) {
for (Token token : tokenList) {
switch (token.type) {
case ID:
// exception
if (token.s.equals(hintToken)) {
return true;
}
break;
case QUERY:
if (((Query) token).contains(hintToken)) {
return true;
}
break;
}
}
return false;
}
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)