You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by "Mehant Baid (JIRA)" <ji...@apache.org> on 2013/11/23 07:25:35 UTC

[jira] [Updated] (DRILL-310) Queries with multi level map type causes NPE

     [ https://issues.apache.org/jira/browse/DRILL-310?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mehant Baid updated DRILL-310:
------------------------------

    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)
 

  was:
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

org.eigenbase.util.EigenbaseContextException: From line 1, column 31 to line 1, column 48
	at org.eigenbase.resource.EigenbaseResource$_Def12.ex(EigenbaseResource.java:1026)
	at org.eigenbase.sql.SqlUtil.newContextException(SqlUtil.java:739)
	at org.eigenbase.sql.SqlUtil.newContextException(SqlUtil.java:726)
	at org.eigenbase.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:3849)
	at org.eigenbase.sql.validate.IdentifierNamespace.validateImpl(IdentifierNamespace.java:78)
	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.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:2795)
	at org.eigenbase.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3032)
	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)
 


> Queries with multi level map type causes NPE
> --------------------------------------------
>
>                 Key: DRILL-310
>                 URL: https://issues.apache.org/jira/browse/DRILL-310
>             Project: Apache Drill
>          Issue Type: Bug
>            Reporter: Mehant Baid
>            Assignee: Mehant Baid
>
> 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)
>  



--
This message was sent by Atlassian JIRA
(v6.1#6144)