Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-310

Queries with multi level map type causes NPE

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 0.4.0
    • None
    • None

    Description

      This issue is related to JIRA#: 307, which is the task to get rid of _MAP from drill sql.

      Easy way to reproduce this issue is to use the "donuts" schema and try and select a multi level map type as follows

      SELECT BATTERS.BATTER.ID from "/tmp/donuts.json";

      Following is the stack trace

      java.lang.NullPointerException
      at org.eigenbase.sql.validate.SqlValidatorUtil.lookupFieldType(SqlValidatorUtil.java:99)
      at org.eigenbase.sql.validate.SqlValidatorImpl$DeriveTypeVisitor.visit(SqlValidatorImpl.java:4328)
      at org.eigenbase.sql.validate.SqlValidatorImpl$DeriveTypeVisitor.visit(SqlValidatorImpl.java:4239)
      at org.eigenbase.sql.SqlIdentifier.accept(SqlIdentifier.java:266)
      at org.eigenbase.sql.validate.SqlValidatorImpl.deriveTypeImpl(SqlValidatorImpl.java:1521)
      at org.eigenbase.sql.validate.SqlValidatorImpl.deriveType(SqlValidatorImpl.java:1503)
      at org.eigenbase.sql.validate.SqlValidatorImpl.expandSelectItem(SqlValidatorImpl.java:435)
      at org.eigenbase.sql.validate.SqlValidatorImpl.validateSelectList(SqlValidatorImpl.java:3309)
      at org.eigenbase.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3045)
      at org.eigenbase.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:69)
      at org.eigenbase.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:90)
      at org.eigenbase.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:802)
      at org.eigenbase.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:790)
      at org.eigenbase.sql.SqlSelect.validate(SqlSelect.java:152)
      at org.eigenbase.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:753)
      at org.eigenbase.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:444)
      at org.eigenbase.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:445)
      at net.hydromatic.optiq.prepare.Prepare.prepareSql(Prepare.java:162)
      at net.hydromatic.optiq.prepare.Prepare.prepareSql(Prepare.java:131)
      at net.hydromatic.optiq.prepare.OptiqPrepareImpl.prepare2_(OptiqPrepareImpl.java:256)
      at net.hydromatic.optiq.prepare.OptiqPrepareImpl.prepare_(OptiqPrepareImpl.java:196)
      at net.hydromatic.optiq.prepare.OptiqPrepareImpl.prepareSql(OptiqPrepareImpl.java:169)
      at net.hydromatic.optiq.jdbc.OptiqStatement.parseQuery(OptiqStatement.java:402)
      at net.hydromatic.optiq.jdbc.OptiqStatement.execute(OptiqStatement.java:192)
      at sqlline.SqlLine$Commands.execute(SqlLine.java:3825)
      at sqlline.SqlLine$Commands.sql(SqlLine.java:3738)
      at sqlline.SqlLine.dispatch(SqlLine.java:882)
      at sqlline.SqlLine.begin(SqlLine.java:717)
      at sqlline.SqlLine.mainWithInputRedirection(SqlLine.java:460)
      at sqlline.SqlLine.main(SqlLine.java:443)

      Attachments

        Activity

          People

            mehant Mehant Baid
            mehant Mehant Baid
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: