benj created DRILL-6943:
---------------------------
Summary: SELECT n time the same field in json
Key: DRILL-6943
URL: https://issues.apache.org/jira/browse/DRILL-6943
Project: Apache Drill
Issue Type: Bug
Components: Storage - JSON
Affects Versions: 1.14.0
Reporter: benj
json file mytest.json
===
{a:10}
===
SELECT a FROM mydfs.tmp2.`mytest2.json`;
=> OK
SELECT a,a FROM mydfs.tmp2.`mytest2.json`;
=> OK
SELECT a,a,a FROM mydfs.tmp2.`mytest2.json`;
=> ERROR the first time (see the message below), but OK the following times
(without any change)
Note that the error can reappear if we add an additional "a" in the request
Error message :
{noformat}
org.objectweb.asm.tree.analysis.AnalyzerException: Error at instruction 43:
Expected an object reference, but found .
at org.objectweb.asm.tree.analysis.Analyzer.analyze(Analyzer.java:294)
at
org.objectweb.asm.util.CheckMethodAdapter$1.visitEnd(CheckMethodAdapter.java:450)
at org.objectweb.asm.MethodVisitor.visitEnd(MethodVisitor.java:877)
at
org.objectweb.asm.util.CheckMethodAdapter.visitEnd(CheckMethodAdapter.java:1028)
at org.objectweb.asm.MethodVisitor.visitEnd(MethodVisitor.java:877)
at
org.apache.drill.exec.compile.CheckMethodVisitorFsm.visitEnd(CheckMethodVisitorFsm.java:114)
at org.objectweb.asm.MethodVisitor.visitEnd(MethodVisitor.java:877)
at
org.apache.drill.exec.compile.CheckMethodVisitorFsm.visitEnd(CheckMethodVisitorFsm.java:114)
at org.objectweb.asm.MethodVisitor.visitEnd(MethodVisitor.java:877)
at org.objectweb.asm.MethodVisitor.visitEnd(MethodVisitor.java:877)
at
org.apache.drill.exec.compile.bytecode.InstructionModifier.visitEnd(InstructionModifier.java:508)
at org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:837)
at
org.apache.drill.exec.compile.bytecode.ScalarReplacementNode.visitEnd(ScalarReplacementNode.java:87)
at org.objectweb.asm.MethodVisitor.visitEnd(MethodVisitor.java:877)
at
org.apache.drill.exec.compile.bytecode.AloadPopRemover.visitEnd(AloadPopRemover.java:136)
at org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:837)
at org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:726)
at org.objectweb.asm.tree.ClassNode.accept(ClassNode.java:412)
at
org.apache.drill.exec.compile.MergeAdapter.getMergedClass(MergeAdapter.java:238)
at
org.apache.drill.exec.compile.ClassTransformer.getImplementationClass(ClassTransformer.java:289)
at
org.apache.drill.exec.compile.ClassTransformer.getImplementationClass(ClassTransformer.java:228)
at
org.apache.drill.exec.compile.CodeCompiler$CodeGenCompiler.compile(CodeCompiler.java:79)
at
org.apache.drill.exec.compile.CodeCompiler.makeClass(CodeCompiler.java:229)
at
org.apache.drill.exec.compile.CodeCompiler.access$300(CodeCompiler.java:41)
at
org.apache.drill.exec.compile.CodeCompiler$Loader.load(CodeCompiler.java:212)
at
org.apache.drill.exec.compile.CodeCompiler$Loader.load(CodeCompiler.java:209)
at
com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527)
at
com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319)
at
com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)
at com.google.common.cache.LocalCache.get(LocalCache.java:3937)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)
at
com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824)
at
org.apache.drill.exec.compile.CodeCompiler.createInstances(CodeCompiler.java:186)
at
org.apache.drill.exec.compile.CodeCompiler.createInstance(CodeCompiler.java:163)
at
org.apache.drill.exec.ops.BaseFragmentContext.getImplementationClass(BaseFragmentContext.java:56)
at
org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.setupNewSchemaFromInput(ProjectRecordBatch.java:567)
at
org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.setupNewSchema(ProjectRecordBatch.java:580)
at
org.apache.drill.exec.record.AbstractUnaryRecordBatch.innerNext(AbstractUnaryRecordBatch.java:101)
at
org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext(ProjectRecordBatch.java:142)
at
org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:172)
at
org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:103)
at
org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext(ScreenCreator.java:83)
at
org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:93)
at
org.apache.drill.exec.work.fragment.FragmentExecutor$1.run(FragmentExecutor.java:294)
at
org.apache.drill.exec.work.fragment.FragmentExecutor$1.run(FragmentExecutor.java:281)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
at
org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:281)
at
org.apache.drill.common.SelfCleaningRunnable.run(SelfCleaningRunnable.java:38)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.objectweb.asm.tree.analysis.AnalyzerException: Expected an
object reference, but found .
at
org.objectweb.asm.tree.analysis.BasicVerifier.copyOperation(BasicVerifier.java:80)
at
org.objectweb.asm.tree.analysis.BasicVerifier.copyOperation(BasicVerifier.java:47)
at org.objectweb.asm.tree.analysis.Frame.execute(Frame.java:276)
at org.objectweb.asm.tree.analysis.Analyzer.analyze(Analyzer.java:199)
... 53 more
{noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)