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)