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

Anton Gozhiy closed DRILL-7041.
-------------------------------

> CompileException happens if a nested coalesce function returns null
> -------------------------------------------------------------------
>
>                 Key: DRILL-7041
>                 URL: https://issues.apache.org/jira/browse/DRILL-7041
>             Project: Apache Drill
>          Issue Type: Bug
>    Affects Versions: 1.16.0
>            Reporter: Anton Gozhiy
>            Assignee: Bohdan Kazydub
>            Priority: Major
>             Fix For: 1.16.0
>
>
> *Query:*
> {code:sql}
> select coalesce(coalesce(n_name1, n_name2), n_name) from 
> cp.`tpch/nation.parquet`
> {code}
> *Expected result:*
> Values from "n_name" column should be returned
> *Actual result:*
> An exception happens:
> {code}
> org.apache.drill.common.exceptions.UserRemoteException: SYSTEM ERROR: 
> CompileException: Line 57, Column 27: Assignment conversion not possible from 
> type "org.apache.drill.exec.expr.holders.NullableVarCharHolder" to type 
> "org.apache.drill.exec.vector.UntypedNullHolder" Fragment 0:0 Please, refer 
> to logs for more information. [Error Id: e54d5bfd-604d-4a39-b62f-33bb964e5286 
> on userf87d-pc:31010] (org.apache.drill.exec.exception.SchemaChangeException) 
> Failure while attempting to load generated class 
> org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.setupNewSchemaFromInput():573
>  
> org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.setupNewSchema():583
>  org.apache.drill.exec.record.AbstractUnaryRecordBatch.innerNext():101 
> org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext():143
>  org.apache.drill.exec.record.AbstractRecordBatch.next():186 
> org.apache.drill.exec.physical.impl.BaseRootExec.next():104 
> org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext():83 
> org.apache.drill.exec.physical.impl.BaseRootExec.next():94 
> org.apache.drill.exec.work.fragment.FragmentExecutor$1.run():297 
> org.apache.drill.exec.work.fragment.FragmentExecutor$1.run():284 
> java.security.AccessController.doPrivileged():-2 
> javax.security.auth.Subject.doAs():422 
> org.apache.hadoop.security.UserGroupInformation.doAs():1746 
> org.apache.drill.exec.work.fragment.FragmentExecutor.run():284 
> org.apache.drill.common.SelfCleaningRunnable.run():38 
> java.util.concurrent.ThreadPoolExecutor.runWorker():1149 
> java.util.concurrent.ThreadPoolExecutor$Worker.run():624 
> java.lang.Thread.run():748 Caused By 
> (org.apache.drill.exec.exception.ClassTransformationException) 
> java.util.concurrent.ExecutionException: 
> org.apache.drill.exec.exception.ClassTransformationException: Failure 
> generating transformation classes for value: package 
> org.apache.drill.exec.test.generated; import 
> org.apache.drill.exec.exception.SchemaChangeException; import 
> org.apache.drill.exec.expr.holders.BigIntHolder; import 
> org.apache.drill.exec.expr.holders.BitHolder; import 
> org.apache.drill.exec.expr.holders.NullableVarBinaryHolder; import 
> org.apache.drill.exec.expr.holders.NullableVarCharHolder; import 
> org.apache.drill.exec.expr.holders.VarCharHolder; import 
> org.apache.drill.exec.ops.FragmentContext; import 
> org.apache.drill.exec.record.RecordBatch; import 
> org.apache.drill.exec.vector.UntypedNullHolder; import 
> org.apache.drill.exec.vector.UntypedNullVector; import 
> org.apache.drill.exec.vector.VarCharVector; public class ProjectorGen35 { 
> BigIntHolder const6; BitHolder constant9; UntypedNullHolder constant13; 
> VarCharVector vv14; UntypedNullVector vv19; public void doEval(int inIndex, 
> int outIndex) throws SchemaChangeException { { UntypedNullHolder out0 = new 
> UntypedNullHolder(); if (constant9 .value == 1) { if (constant13 .isSet!= 0) 
> { out0 = constant13; } } else { VarCharHolder out17 = new VarCharHolder(); { 
> out17 .buffer = vv14 .getBuffer(); long startEnd = vv14 
> .getAccessor().getStartEnd((inIndex)); out17 .start = ((int) startEnd); out17 
> .end = ((int)(startEnd >> 32)); } //---- start of eval portion of 
> convertToNullableVARCHAR function. ----// NullableVarCharHolder out18 = new 
> NullableVarCharHolder(); { final NullableVarCharHolder output = new 
> NullableVarCharHolder(); VarCharHolder input = out17; 
> GConvertToNullableVarCharHolder_eval: { output.isSet = 1; output.start = 
> input.start; output.end = input.end; output.buffer = input.buffer; } out18 = 
> output; } //---- end of eval portion of convertToNullableVARCHAR function. 
> ----// if (out18 .isSet!= 0) { out0 = out18; } } if (!(out0 .isSet == 0)) { 
> vv19 .getMutator().set((outIndex), out0 .isSet, out0); } } } public void 
> doSetup(FragmentContext context, RecordBatch incoming, RecordBatch outgoing) 
> throws SchemaChangeException { { UntypedNullHolder out1 = new 
> UntypedNullHolder(); NullableVarBinaryHolder out2 = new 
> NullableVarBinaryHolder(); /** start SETUP for function isnotnull **/ { 
> NullableVarBinaryHolder input = out2; 
> GNullOpNullableVarBinaryHolder$IsNotNull_setup: {} } /** end SETUP for 
> function isnotnull **/ //---- start of eval portion of isnotnull function. 
> ----// BitHolder out3 = new BitHolder(); { final BitHolder out = new 
> BitHolder(); NullableVarBinaryHolder input = out2; 
> GNullOpNullableVarBinaryHolder$IsNotNull_eval: { out.value = (input.isSet == 
> 0 ? 0 : 1); } out3 = out; } //---- end of eval portion of isnotnull function. 
> ----// if (out3 .value == 1) { UntypedNullHolder out4 = new 
> UntypedNullHolder(); if (out4 .isSet!= 0) { out1 = out4; } } else { 
> UntypedNullHolder out5 = new UntypedNullHolder(); if (out5 .isSet!= 0) { out1 
> = out5; } } /** start SETUP for function castVARBINARY **/ { 
> UntypedNullHolder in = out1; BigIntHolder len = const6; 
> CastUntypedNullVarBinary_setup: {} } /** end SETUP for function castVARBINARY 
> **/ //---- start of eval portion of castVARBINARY function. ----// 
> NullableVarBinaryHolder out7 = new NullableVarBinaryHolder(); { if (out1 
> .isSet == 0) { out7 .isSet = 0; } else { final NullableVarBinaryHolder out = 
> new NullableVarBinaryHolder(); UntypedNullHolder in = out1; BigIntHolder len 
> = const6; CastUntypedNullVarBinary_eval: { out.isSet = 0; } out.isSet = 1; 
> out7 = out; out.isSet = 1; } } //---- end of eval portion of castVARBINARY 
> function. ----// /** start SETUP for function isnotnull **/ { 
> NullableVarBinaryHolder input = out7; 
> GNullOpNullableVarBinaryHolder$IsNotNull_setup: {} } /** end SETUP for 
> function isnotnull **/ //---- start of eval portion of isnotnull function. 
> ----// BitHolder out8 = new BitHolder(); { final BitHolder out = new 
> BitHolder(); NullableVarBinaryHolder input = out7; 
> GNullOpNullableVarBinaryHolder$IsNotNull_eval: { out.value = (input.isSet == 
> 0 ? 0 : 1); } out8 = out; } //---- end of eval portion of isnotnull function. 
> ----// constant9 = out8; UntypedNullHolder out10 = new UntypedNullHolder(); 
> if (out3 .value == 1) { UntypedNullHolder out11 = new UntypedNullHolder(); if 
> (out11 .isSet!= 0) { out10 = out11; } } else { UntypedNullHolder out12 = new 
> UntypedNullHolder(); if (out12 .isSet!= 0) { out10 = out12; } } constant13 = 
> out10; int[] fieldIds15 = new int[ 1 ] ; fieldIds15 [ 0 ] = 0; Object tmp16 = 
> (incoming).getValueAccessorById(VarCharVector.class, 
> fieldIds15).getValueVector(); if (tmp16 == null) { throw new 
> SchemaChangeException("Failure while loading vector vv14 with id: 
> TypedFieldId [fieldIds=[0], remainder=null]."); } vv14 = ((VarCharVector) 
> tmp16); /** start SETUP for function convertToNullableVARCHAR **/ { 
> GConvertToNullableVarCharHolder_setup: {} } /** end SETUP for function 
> convertToNullableVARCHAR **/ int[] fieldIds20 = new int[ 1 ] ; fieldIds20 [ 0 
> ] = 0; Object tmp21 = 
> (outgoing).getValueAccessorById(UntypedNullVector.class, 
> fieldIds20).getValueVector(); if (tmp21 == null) { throw new 
> SchemaChangeException("Failure while loading vector vv19 with id: 
> TypedFieldId [fieldIds=[0], remainder=null]."); } vv19 = ((UntypedNullVector) 
> tmp21); } } public void __DRILL_INIT__() throws SchemaChangeException { } } 
> org.apache.drill.exec.compile.CodeCompiler.createInstances():197 
> org.apache.drill.exec.compile.CodeCompiler.createInstance():163 
> org.apache.drill.exec.ops.BaseFragmentContext.getImplementationClass():57 
> org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.setupNewSchemaFromInput():570
>  
> org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.setupNewSchema():583
>  org.apache.drill.exec.record.AbstractUnaryRecordBatch.innerNext():101 
> org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext():143
>  org.apache.drill.exec.record.AbstractRecordBatch.next():186 
> org.apache.drill.exec.physical.impl.BaseRootExec.next():104 
> org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext():83 
> org.apache.drill.exec.physical.impl.BaseRootExec.next():94 
> org.apache.drill.exec.work.fragment.FragmentExecutor$1.run():297 
> org.apache.drill.exec.work.fragment.FragmentExecutor$1.run():284 
> java.security.AccessController.doPrivileged():-2 
> javax.security.auth.Subject.doAs():422 
> org.apache.hadoop.security.UserGroupInformation.doAs():1746 
> org.apache.drill.exec.work.fragment.FragmentExecutor.run():284 
> org.apache.drill.common.SelfCleaningRunnable.run():38 
> java.util.concurrent.ThreadPoolExecutor.runWorker():1149 
> java.util.concurrent.ThreadPoolExecutor$Worker.run():624 
> java.lang.Thread.run():748 Caused By 
> (java.util.concurrent.ExecutionException) 
> org.apache.drill.exec.exception.ClassTransformationException: Failure 
> generating transformation classes for value: package 
> org.apache.drill.exec.test.generated; import 
> org.apache.drill.exec.exception.SchemaChangeException; import 
> org.apache.drill.exec.expr.holders.BigIntHolder; import 
> org.apache.drill.exec.expr.holders.BitHolder; import 
> org.apache.drill.exec.expr.holders.NullableVarBinaryHolder; import 
> org.apache.drill.exec.expr.holders.NullableVarCharHolder; import 
> org.apache.drill.exec.expr.holders.VarCharHolder; import 
> org.apache.drill.exec.ops.FragmentContext; import 
> org.apache.drill.exec.record.RecordBatch; import 
> org.apache.drill.exec.vector.UntypedNullHolder; import 
> org.apache.drill.exec.vector.UntypedNullVector; import 
> org.apache.drill.exec.vector.VarCharVector; public class ProjectorGen35 { 
> BigIntHolder const6; BitHolder constant9; UntypedNullHolder constant13; 
> VarCharVector vv14; UntypedNullVector vv19; public void doEval(int inIndex, 
> int outIndex) throws SchemaChangeException { { UntypedNullHolder out0 = new 
> UntypedNullHolder(); if (constant9 .value == 1) { if (constant13 .isSet!= 0) 
> { out0 = constant13; } } else { VarCharHolder out17 = new VarCharHolder(); { 
> out17 .buffer = vv14 .getBuffer(); long startEnd = vv14 
> .getAccessor().getStartEnd((inIndex)); out17 .start = ((int) startEnd); out17 
> .end = ((int)(startEnd >> 32)); } //---- start of eval portion of 
> convertToNullableVARCHAR function. ----// NullableVarCharHolder out18 = new 
> NullableVarCharHolder(); { final NullableVarCharHolder output = new 
> NullableVarCharHolder(); VarCharHolder input = out17; 
> GConvertToNullableVarCharHolder_eval: { output.isSet = 1; output.start = 
> input.start; output.end = input.end; output.buffer = input.buffer; } out18 = 
> output; } //---- end of eval portion of convertToNullableVARCHAR function. 
> ----// if (out18 .isSet!= 0) { out0 = out18; } } if (!(out0 .isSet == 0)) { 
> vv19 .getMutator().set((outIndex), out0 .isSet, out0); } } } public void 
> doSetup(FragmentContext context, RecordBatch incoming, RecordBatch outgoing) 
> throws SchemaChangeException { { UntypedNullHolder out1 = new 
> UntypedNullHolder(); NullableVarBinaryHolder out2 = new 
> NullableVarBinaryHolder(); /** start SETUP for function isnotnull **/ { 
> NullableVarBinaryHolder input = out2; 
> GNullOpNullableVarBinaryHolder$IsNotNull_setup: {} } /** end SETUP for 
> function isnotnull **/ //---- start of eval portion of isnotnull function. 
> ----// BitHolder out3 = new BitHolder(); { final BitHolder out = new 
> BitHolder(); NullableVarBinaryHolder input = out2; 
> GNullOpNullableVarBinaryHolder$IsNotNull_eval: { out.value = (input.isSet == 
> 0 ? 0 : 1); } out3 = out; } //---- end of eval portion of isnotnull function. 
> ----// if (out3 .value == 1) { UntypedNullHolder out4 = new 
> UntypedNullHolder(); if (out4 .isSet!= 0) { out1 = out4; } } else { 
> UntypedNullHolder out5 = new UntypedNullHolder(); if (out5 .isSet!= 0) { out1 
> = out5; } } /** start SETUP for function castVARBINARY **/ { 
> UntypedNullHolder in = out1; BigIntHolder len = const6; 
> CastUntypedNullVarBinary_setup: {} } /** end SETUP for function castVARBINARY 
> **/ //---- start of eval portion of castVARBINARY function. ----// 
> NullableVarBinaryHolder out7 = new NullableVarBinaryHolder(); { if (out1 
> .isSet == 0) { out7 .isSet = 0; } else { final NullableVarBinaryHolder out = 
> new NullableVarBinaryHolder(); UntypedNullHolder in = out1; BigIntHolder len 
> = const6; CastUntypedNullVarBinary_eval: { out.isSet = 0; } out.isSet = 1; 
> out7 = out; out.isSet = 1; } } //---- end of eval portion of castVARBINARY 
> function. ----// /** start SETUP for function isnotnull **/ { 
> NullableVarBinaryHolder input = out7; 
> GNullOpNullableVarBinaryHolder$IsNotNull_setup: {} } /** end SETUP for 
> function isnotnull **/ //---- start of eval portion of isnotnull function. 
> ----// BitHolder out8 = new BitHolder(); { final BitHolder out = new 
> BitHolder(); NullableVarBinaryHolder input = out7; 
> GNullOpNullableVarBinaryHolder$IsNotNull_eval: { out.value = (input.isSet == 
> 0 ? 0 : 1); } out8 = out; } //---- end of eval portion of isnotnull function. 
> ----// constant9 = out8; UntypedNullHolder out10 = new UntypedNullHolder(); 
> if (out3 .value == 1) { UntypedNullHolder out11 = new UntypedNullHolder(); if 
> (out11 .isSet!= 0) { out10 = out11; } } else { UntypedNullHolder out12 = new 
> UntypedNullHolder(); if (out12 .isSet!= 0) { out10 = out12; } } constant13 = 
> out10; int[] fieldIds15 = new int[ 1 ] ; fieldIds15 [ 0 ] = 0; Object tmp16 = 
> (incoming).getValueAccessorById(VarCharVector.class, 
> fieldIds15).getValueVector(); if (tmp16 == null) { throw new 
> SchemaChangeException("Failure while loading vector vv14 with id: 
> TypedFieldId [fieldIds=[0], remainder=null]."); } vv14 = ((VarCharVector) 
> tmp16); /** start SETUP for function convertToNullableVARCHAR **/ { 
> GConvertToNullableVarCharHolder_setup: {} } /** end SETUP for function 
> convertToNullableVARCHAR **/ int[] fieldIds20 = new int[ 1 ] ; fieldIds20 [ 0 
> ] = 0; Object tmp21 = 
> (outgoing).getValueAccessorById(UntypedNullVector.class, 
> fieldIds20).getValueVector(); if (tmp21 == null) { throw new 
> SchemaChangeException("Failure while loading vector vv19 with id: 
> TypedFieldId [fieldIds=[0], remainder=null]."); } vv19 = ((UntypedNullVector) 
> tmp21); } } public void __DRILL_INIT__() throws SchemaChangeException { } } 
> org.apache.drill.shaded.guava.com.google.common.util.concurrent.AbstractFuture.getDoneValue():502
>  
> org.apache.drill.shaded.guava.com.google.common.util.concurrent.AbstractFuture.get():461
>  
> org.apache.drill.shaded.guava.com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get():83
>  
> org.apache.drill.shaded.guava.com.google.common.util.concurrent.Uninterruptibles.getUninterruptibly():142
>  
> org.apache.drill.shaded.guava.com.google.common.cache.LocalCache$Segment.getAndRecordStats():2453
>  
> org.apache.drill.shaded.guava.com.google.common.cache.LocalCache$Segment.loadSync():2417
>  
> org.apache.drill.shaded.guava.com.google.common.cache.LocalCache$Segment.lockedGetOrLoad():2299
>  
> org.apache.drill.shaded.guava.com.google.common.cache.LocalCache$Segment.get():2212
>  org.apache.drill.shaded.guava.com.google.common.cache.LocalCache.get():4147 
> org.apache.drill.shaded.guava.com.google.common.cache.LocalCache.getOrLoad():4151
>  
> org.apache.drill.shaded.guava.com.google.common.cache.LocalCache$LocalLoadingCache.get():5140
>  org.apache.drill.exec.compile.CodeCompiler.createInstances():186 
> org.apache.drill.exec.compile.CodeCompiler.createInstance():163 
> org.apache.drill.exec.ops.BaseFragmentContext.getImplementationClass():57 
> org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.setupNewSchemaFromInput():570
>  
> org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.setupNewSchema():583
>  org.apache.drill.exec.record.AbstractUnaryRecordBatch.innerNext():101 
> org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext():143
>  org.apache.drill.exec.record.AbstractRecordBatch.next():186 
> org.apache.drill.exec.physical.impl.BaseRootExec.next():104 
> org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext():83 
> org.apache.drill.exec.physical.impl.BaseRootExec.next():94 
> org.apache.drill.exec.work.fragment.FragmentExecutor$1.run():297 
> org.apache.drill.exec.work.fragment.FragmentExecutor$1.run():284 
> java.security.AccessController.doPrivileged():-2 
> javax.security.auth.Subject.doAs():422 
> org.apache.hadoop.security.UserGroupInformation.doAs():1746 
> org.apache.drill.exec.work.fragment.FragmentExecutor.run():284 
> org.apache.drill.common.SelfCleaningRunnable.run():38 
> java.util.concurrent.ThreadPoolExecutor.runWorker():1149 
> java.util.concurrent.ThreadPoolExecutor$Worker.run():624 
> java.lang.Thread.run():748 Caused By 
> (org.apache.drill.exec.exception.ClassTransformationException) Failure 
> generating transformation classes for value: package 
> org.apache.drill.exec.test.generated; import 
> org.apache.drill.exec.exception.SchemaChangeException; import 
> org.apache.drill.exec.expr.holders.BigIntHolder; import 
> org.apache.drill.exec.expr.holders.BitHolder; import 
> org.apache.drill.exec.expr.holders.NullableVarBinaryHolder; import 
> org.apache.drill.exec.expr.holders.NullableVarCharHolder; import 
> org.apache.drill.exec.expr.holders.VarCharHolder; import 
> org.apache.drill.exec.ops.FragmentContext; import 
> org.apache.drill.exec.record.RecordBatch; import 
> org.apache.drill.exec.vector.UntypedNullHolder; import 
> org.apache.drill.exec.vector.UntypedNullVector; import 
> org.apache.drill.exec.vector.VarCharVector; public class ProjectorGen35 { 
> BigIntHolder const6; BitHolder constant9; UntypedNullHolder constant13; 
> VarCharVector vv14; UntypedNullVector vv19; public void doEval(int inIndex, 
> int outIndex) throws SchemaChangeException { { UntypedNullHolder out0 = new 
> UntypedNullHolder(); if (constant9 .value == 1) { if (constant13 .isSet!= 0) 
> { out0 = constant13; } } else { VarCharHolder out17 = new VarCharHolder(); { 
> out17 .buffer = vv14 .getBuffer(); long startEnd = vv14 
> .getAccessor().getStartEnd((inIndex)); out17 .start = ((int) startEnd); out17 
> .end = ((int)(startEnd >> 32)); } //---- start of eval portion of 
> convertToNullableVARCHAR function. ----// NullableVarCharHolder out18 = new 
> NullableVarCharHolder(); { final NullableVarCharHolder output = new 
> NullableVarCharHolder(); VarCharHolder input = out17; 
> GConvertToNullableVarCharHolder_eval: { output.isSet = 1; output.start = 
> input.start; output.end = input.end; output.buffer = input.buffer; } out18 = 
> output; } //---- end of eval portion of convertToNullableVARCHAR function. 
> ----// if (out18 .isSet!= 0) { out0 = out18; } } if (!(out0 .isSet == 0)) { 
> vv19 .getMutator().set((outIndex), out0 .isSet, out0); } } } public void 
> doSetup(FragmentContext context, RecordBatch incoming, RecordBatch outgoing) 
> throws SchemaChangeException { { UntypedNullHolder out1 = new 
> UntypedNullHolder(); NullableVarBinaryHolder out2 = new 
> NullableVarBinaryHolder(); /** start SETUP for function isnotnull **/ { 
> NullableVarBinaryHolder input = out2; 
> GNullOpNullableVarBinaryHolder$IsNotNull_setup: {} } /** end SETUP for 
> function isnotnull **/ //---- start of eval portion of isnotnull function. 
> ----// BitHolder out3 = new BitHolder(); { final BitHolder out = new 
> BitHolder(); NullableVarBinaryHolder input = out2; 
> GNullOpNullableVarBinaryHolder$IsNotNull_eval: { out.value = (input.isSet == 
> 0 ? 0 : 1); } out3 = out; } //---- end of eval portion of isnotnull function. 
> ----// if (out3 .value == 1) { UntypedNullHolder out4 = new 
> UntypedNullHolder(); if (out4 .isSet!= 0) { out1 = out4; } } else { 
> UntypedNullHolder out5 = new UntypedNullHolder(); if (out5 .isSet!= 0) { out1 
> = out5; } } /** start SETUP for function castVARBINARY **/ { 
> UntypedNullHolder in = out1; BigIntHolder len = const6; 
> CastUntypedNullVarBinary_setup: {} } /** end SETUP for function castVARBINARY 
> **/ //---- start of eval portion of castVARBINARY function. ----// 
> NullableVarBinaryHolder out7 = new NullableVarBinaryHolder(); { if (out1 
> .isSet == 0) { out7 .isSet = 0; } else { final NullableVarBinaryHolder out = 
> new NullableVarBinaryHolder(); UntypedNullHolder in = out1; BigIntHolder len 
> = const6; CastUntypedNullVarBinary_eval: { out.isSet = 0; } out.isSet = 1; 
> out7 = out; out.isSet = 1; } } //---- end of eval portion of castVARBINARY 
> function. ----// /** start SETUP for function isnotnull **/ { 
> NullableVarBinaryHolder input = out7; 
> GNullOpNullableVarBinaryHolder$IsNotNull_setup: {} } /** end SETUP for 
> function isnotnull **/ //---- start of eval portion of isnotnull function. 
> ----// BitHolder out8 = new BitHolder(); { final BitHolder out = new 
> BitHolder(); NullableVarBinaryHolder input = out7; 
> GNullOpNullableVarBinaryHolder$IsNotNull_eval: { out.value = (input.isSet == 
> 0 ? 0 : 1); } out8 = out; } //---- end of eval portion of isnotnull function. 
> ----// constant9 = out8; UntypedNullHolder out10 = new UntypedNullHolder(); 
> if (out3 .value == 1) { UntypedNullHolder out11 = new UntypedNullHolder(); if 
> (out11 .isSet!= 0) { out10 = out11; } } else { UntypedNullHolder out12 = new 
> UntypedNullHolder(); if (out12 .isSet!= 0) { out10 = out12; } } constant13 = 
> out10; int[] fieldIds15 = new int[ 1 ] ; fieldIds15 [ 0 ] = 0; Object tmp16 = 
> (incoming).getValueAccessorById(VarCharVector.class, 
> fieldIds15).getValueVector(); if (tmp16 == null) { throw new 
> SchemaChangeException("Failure while loading vector vv14 with id: 
> TypedFieldId [fieldIds=[0], remainder=null]."); } vv14 = ((VarCharVector) 
> tmp16); /** start SETUP for function convertToNullableVARCHAR **/ { 
> GConvertToNullableVarCharHolder_setup: {} } /** end SETUP for function 
> convertToNullableVARCHAR **/ int[] fieldIds20 = new int[ 1 ] ; fieldIds20 [ 0 
> ] = 0; Object tmp21 = 
> (outgoing).getValueAccessorById(UntypedNullVector.class, 
> fieldIds20).getValueVector(); if (tmp21 == null) { throw new 
> SchemaChangeException("Failure while loading vector vv19 with id: 
> TypedFieldId [fieldIds=[0], remainder=null]."); } vv19 = ((UntypedNullVector) 
> tmp21); } } public void __DRILL_INIT__() throws SchemaChangeException { } } 
> org.apache.drill.exec.compile.ClassTransformer.getImplementationClass():330 
> org.apache.drill.exec.compile.ClassTransformer.getImplementationClass():223 
> org.apache.drill.exec.compile.CodeCompiler$CodeGenCompiler.compile():79 
> org.apache.drill.exec.compile.CodeCompiler.makeClass():229 
> org.apache.drill.exec.compile.CodeCompiler.access$300():41 
> org.apache.drill.exec.compile.CodeCompiler$Loader.load():212 
> org.apache.drill.exec.compile.CodeCompiler$Loader.load():209 
> org.apache.drill.shaded.guava.com.google.common.cache.LocalCache$LoadingValueReference.loadFuture():3708
>  
> org.apache.drill.shaded.guava.com.google.common.cache.LocalCache$Segment.loadSync():2416
>  
> org.apache.drill.shaded.guava.com.google.common.cache.LocalCache$Segment.lockedGetOrLoad():2299
>  
> org.apache.drill.shaded.guava.com.google.common.cache.LocalCache$Segment.get():2212
>  org.apache.drill.shaded.guava.com.google.common.cache.LocalCache.get():4147 
> org.apache.drill.shaded.guava.com.google.common.cache.LocalCache.getOrLoad():4151
>  
> org.apache.drill.shaded.guava.com.google.common.cache.LocalCache$LocalLoadingCache.get():5140
>  org.apache.drill.exec.compile.CodeCompiler.createInstances():186 
> org.apache.drill.exec.compile.CodeCompiler.createInstance():163 
> org.apache.drill.exec.ops.BaseFragmentContext.getImplementationClass():57 
> org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.setupNewSchemaFromInput():570
>  
> org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.setupNewSchema():583
>  org.apache.drill.exec.record.AbstractUnaryRecordBatch.innerNext():101 
> org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext():143
>  org.apache.drill.exec.record.AbstractRecordBatch.next():186 
> org.apache.drill.exec.physical.impl.BaseRootExec.next():104 
> org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext():83 
> org.apache.drill.exec.physical.impl.BaseRootExec.next():94 
> org.apache.drill.exec.work.fragment.FragmentExecutor$1.run():297 
> org.apache.drill.exec.work.fragment.FragmentExecutor$1.run():284 
> java.security.AccessController.doPrivileged():-2 
> javax.security.auth.Subject.doAs():422 
> org.apache.hadoop.security.UserGroupInformation.doAs():1746 
> org.apache.drill.exec.work.fragment.FragmentExecutor.run():284 
> org.apache.drill.common.SelfCleaningRunnable.run():38 
> java.util.concurrent.ThreadPoolExecutor.runWorker():1149 
> java.util.concurrent.ThreadPoolExecutor$Worker.run():624 
> java.lang.Thread.run():748 Caused By 
> (org.codehaus.commons.compiler.CompileException) Line 57, Column 27: 
> Assignment conversion not possible from type 
> "org.apache.drill.exec.expr.holders.NullableVarCharHolder" to type 
> "org.apache.drill.exec.vector.UntypedNullHolder" 
> org.codehaus.janino.UnitCompiler.compileError():12211 
> org.codehaus.janino.UnitCompiler.assignmentConversion():11062 
> org.codehaus.janino.UnitCompiler.compile2():3790 
> org.codehaus.janino.UnitCompiler.access$6100():215 
> org.codehaus.janino.UnitCompiler$13.visitAssignment():3754 
> org.codehaus.janino.UnitCompiler$13.visitAssignment():3734 
> org.codehaus.janino.Java$Assignment.accept():4477 
> org.codehaus.janino.UnitCompiler.compile():3734 
> org.codehaus.janino.UnitCompiler.compile2():2360 
> org.codehaus.janino.UnitCompiler.access$1800():215 
> org.codehaus.janino.UnitCompiler$6.visitExpressionStatement():1494 
> org.codehaus.janino.UnitCompiler$6.visitExpressionStatement():1487 
> org.codehaus.janino.Java$ExpressionStatement.accept():2874 
> org.codehaus.janino.UnitCompiler.compile():1487 
> org.codehaus.janino.UnitCompiler.compileStatements():1567 
> org.codehaus.janino.UnitCompiler.compile2():1553 
> org.codehaus.janino.UnitCompiler.access$1700():215 
> org.codehaus.janino.UnitCompiler$6.visitBlock():1493 
> org.codehaus.janino.UnitCompiler$6.visitBlock():1487 
> org.codehaus.janino.Java$Block.accept():2779 
> org.codehaus.janino.UnitCompiler.compile():1487 
> org.codehaus.janino.UnitCompiler.compile2():2476 
> org.codehaus.janino.UnitCompiler.access$1900():215 
> org.codehaus.janino.UnitCompiler$6.visitIfStatement():1495 
> org.codehaus.janino.UnitCompiler$6.visitIfStatement():1487 
> org.codehaus.janino.Java$IfStatement.accept():2950 
> org.codehaus.janino.UnitCompiler.compile():1487 
> org.codehaus.janino.UnitCompiler.compileStatements():1567 
> org.codehaus.janino.UnitCompiler.compile2():1553 
> org.codehaus.janino.UnitCompiler.access$1700():215 
> org.codehaus.janino.UnitCompiler$6.visitBlock():1493 
> org.codehaus.janino.UnitCompiler$6.visitBlock():1487 
> org.codehaus.janino.Java$Block.accept():2779 
> org.codehaus.janino.UnitCompiler.compile():1487 
> org.codehaus.janino.UnitCompiler.compile2():2468 
> org.codehaus.janino.UnitCompiler.access$1900():215 
> org.codehaus.janino.UnitCompiler$6.visitIfStatement():1495 
> org.codehaus.janino.UnitCompiler$6.visitIfStatement():1487 
> org.codehaus.janino.Java$IfStatement.accept():2950 
> org.codehaus.janino.UnitCompiler.compile():1487 
> org.codehaus.janino.UnitCompiler.compileStatements():1567 
> org.codehaus.janino.UnitCompiler.compile2():1553 
> org.codehaus.janino.UnitCompiler.access$1700():215 
> org.codehaus.janino.UnitCompiler$6.visitBlock():1493 
> org.codehaus.janino.UnitCompiler$6.visitBlock():1487 
> org.codehaus.janino.Java$Block.accept():2779 
> org.codehaus.janino.UnitCompiler.compile():1487 
> org.codehaus.janino.UnitCompiler.compileStatements():1567 
> org.codehaus.janino.UnitCompiler.compile():3388 
> org.codehaus.janino.UnitCompiler.compileDeclaredMethods():1357 
> org.codehaus.janino.UnitCompiler.compileDeclaredMethods():1330 
> org.codehaus.janino.UnitCompiler.compile2():822 
> org.codehaus.janino.UnitCompiler.compile2():432 
> org.codehaus.janino.UnitCompiler.access$400():215 
> org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration():411 
> org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration():406 
> org.codehaus.janino.Java$PackageMemberClassDeclaration.accept():1414 
> org.codehaus.janino.UnitCompiler.compile():406 
> org.codehaus.janino.UnitCompiler.compileUnit():378 
> org.apache.drill.exec.compile.JaninoClassCompiler.doCompile():77 
> org.apache.drill.exec.compile.JaninoClassCompiler.getByteCode():49 
> org.apache.drill.exec.compile.AbstractClassCompiler.getClassByteCode():53 
> org.apache.drill.exec.compile.ClassCompilerSelector.getClassByteCode():128 
> org.apache.drill.exec.compile.QueryClassLoader.getClassByteCode():90 
> org.apache.drill.exec.compile.ClassTransformer.getImplementationClass():238 
> org.apache.drill.exec.compile.ClassTransformer.getImplementationClass():223 
> org.apache.drill.exec.compile.CodeCompiler$CodeGenCompiler.compile():79 
> org.apache.drill.exec.compile.CodeCompiler.makeClass():229 
> org.apache.drill.exec.compile.CodeCompiler.access$300():41 
> org.apache.drill.exec.compile.CodeCompiler$Loader.load():212 
> org.apache.drill.exec.compile.CodeCompiler$Loader.load():209 
> org.apache.drill.shaded.guava.com.google.common.cache.LocalCache$LoadingValueReference.loadFuture():3708
>  
> org.apache.drill.shaded.guava.com.google.common.cache.LocalCache$Segment.loadSync():2416
>  
> org.apache.drill.shaded.guava.com.google.common.cache.LocalCache$Segment.lockedGetOrLoad():2299
>  
> org.apache.drill.shaded.guava.com.google.common.cache.LocalCache$Segment.get():2212
>  org.apache.drill.shaded.guava.com.google.common.cache.LocalCache.get():4147 
> org.apache.drill.shaded.guava.com.google.common.cache.LocalCache.getOrLoad():4151
>  
> org.apache.drill.shaded.guava.com.google.common.cache.LocalCache$LocalLoadingCache.get():5140
>  org.apache.drill.exec.compile.CodeCompiler.createInstances():186 
> org.apache.drill.exec.compile.CodeCompiler.createInstance():163 
> org.apache.drill.exec.ops.BaseFragmentContext.getImplementationClass():57 
> org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.setupNewSchemaFromInput():570
>  
> org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.setupNewSchema():583
>  org.apache.drill.exec.record.AbstractUnaryRecordBatch.innerNext():101 
> org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext():143
>  org.apache.drill.exec.record.AbstractRecordBatch.next():186 
> org.apache.drill.exec.physical.impl.BaseRootExec.next():104 
> org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext():83 
> org.apache.drill.exec.physical.impl.BaseRootExec.next():94 
> org.apache.drill.exec.work.fragment.FragmentExecutor$1.run():297 
> org.apache.drill.exec.work.fragment.FragmentExecutor$1.run():284 
> java.security.AccessController.doPrivileged():-2 
> javax.security.auth.Subject.doAs():422 
> org.apache.hadoop.security.UserGroupInformation.doAs():1746 
> org.apache.drill.exec.work.fragment.FragmentExecutor.run():284 
> org.apache.drill.common.SelfCleaningRunnable.run():38 
> java.util.concurrent.ThreadPoolExecutor.runWorker():1149 
> java.util.concurrent.ThreadPoolExecutor$Worker.run():624 
> java.lang.Thread.run():748
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to