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)

Reply via email to