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

ASF GitHub Bot commented on DRILL-6020:
---------------------------------------

Github user MitchelLabonte commented on the issue:

    https://github.com/apache/drill/pull/1068
  
    @vvysotskyi
    This is happening because the type is cached as a json object from the 
previous row. The fix is similar to the getFieldIdIfMatches() method so it 
looks like this is intended behaviour.
    As you can see in the unit test, the results are what is expected after the 
fix. I am not sure what else could be done. 


> NullPointerException with Union setting on when querying JSON untyped path
> --------------------------------------------------------------------------
>
>                 Key: DRILL-6020
>                 URL: https://issues.apache.org/jira/browse/DRILL-6020
>             Project: Apache Drill
>          Issue Type: Bug
>    Affects Versions: 1.11.0
>            Reporter: Mitchel Labonte
>             Fix For: 1.13.0
>
>
> h1. Steps to reproduce
> alter session set `exec.enable_union_type`=true;
> select tb.level1.dta from dfs.`file.json` tb;
> *Content of file.json:*
> {noformat}
> {"level1":{"dta":{"test":"test"}}}
> {"level1":{"dta":"test"}}
> {noformat}
> h1. Stack trace
> Error: SYSTEM ERROR: NullPointerException
> Fragment 0:0
> [Error Id: fe267584-32f3-413c-a77c-fc5b5c1ba513 on localhost:31010]
>   (java.lang.NullPointerException) null
>     
> org.apache.drill.exec.vector.complex.FieldIdUtil.getFieldIdIfMatchesUnion():34
>     org.apache.drill.exec.vector.complex.FieldIdUtil.getFieldIdIfMatches():135
>     org.apache.drill.exec.vector.complex.FieldIdUtil.getFieldIdIfMatches():130
>     org.apache.drill.exec.vector.complex.FieldIdUtil.getFieldId():201
>     org.apache.drill.exec.record.SimpleVectorWrapper.getFieldIdIfMatches():102
>     org.apache.drill.exec.record.VectorContainer.getValueVectorId():298
>     org.apache.drill.exec.physical.impl.ScanBatch.getValueVectorId():313
>     
> org.apache.drill.exec.expr.ExpressionTreeMaterializer$MaterializeVisitor.visitSchemaPath():289
>     
> org.apache.drill.exec.expr.ExpressionTreeMaterializer$MaterializeVisitor.visitSchemaPath():272
>     org.apache.drill.common.expression.SchemaPath.accept():150
>     
> org.apache.drill.exec.expr.ExpressionTreeMaterializer$AbstractMaterializeVisitor.visitFunctionCall():399
>     
> org.apache.drill.exec.expr.ExpressionTreeMaterializer$AbstractMaterializeVisitor.visitFunctionCall():331
>     org.apache.drill.common.expression.FunctionCall.accept():60
>     org.apache.drill.exec.expr.ExpressionTreeMaterializer.materialize():169
>     org.apache.drill.exec.expr.ExpressionTreeMaterializer.materialize():147
>     
> org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.setupNewSchema():421
>     org.apache.drill.exec.record.AbstractSingleRecordBatch.innerNext():78
>     
> org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext():133
>     org.apache.drill.exec.record.AbstractRecordBatch.next():162
>     org.apache.drill.exec.physical.impl.BaseRootExec.next():105
>     
> org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext():81
>     org.apache.drill.exec.physical.impl.BaseRootExec.next():95
>     org.apache.drill.exec.work.fragment.FragmentExecutor$1.run():234
>     org.apache.drill.exec.work.fragment.FragmentExecutor$1.run():227
>     java.security.AccessController.doPrivileged():-2
>     javax.security.auth.Subject.doAs():422
>     org.apache.hadoop.security.UserGroupInformation.doAs():1657
>     org.apache.drill.exec.work.fragment.FragmentExecutor.run():227
>     org.apache.drill.common.SelfCleaningRunnable.run():38
>     java.util.concurrent.ThreadPoolExecutor.runWorker():1142
>     java.util.concurrent.ThreadPoolExecutor$Worker.run():617
>     java.lang.Thread.run():745 (state=,code=0)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to