You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Krystal (JIRA)" <ji...@apache.org> on 2014/07/22 00:12:46 UTC

[jira] [Commented] (DRILL-1164) Casting of a timestamp to date fails with complilation error

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

Krystal commented on DRILL-1164:
--------------------------------

server error:

org.codehaus.commons.compiler.CompileException: Line 97, Column 34: Cannot determine simple type name "DateMidnight"
org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.java:10056) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.getType2(UnitCompiler.java:5316) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.access$12600(UnitCompiler.java:182) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler$16.visitReferenceType(UnitCompiler.java:5101) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.Java$ReferenceType.accept(Java.java:2884) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.getType(UnitCompiler.java:5141) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.getType2(UnitCompiler.java:5598) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.access$15000(UnitCompiler.java:182) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler$16.visitNewClassInstance(UnitCompiler.java:5126) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.Java$NewClassInstance.accept(Java.java:4086) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.getType(UnitCompiler.java:5141) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.getType2(UnitCompiler.java:5579) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.access$16000(UnitCompiler.java:182) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler$16.visitParenthesizedExpression(UnitCompiler.java:5137) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.Java$ParenthesizedExpression.accept(Java.java:3831) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.getType(UnitCompiler.java:5141) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.findIMethod(UnitCompiler.java:7239) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:3860) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.access$6900(UnitCompiler.java:182) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler$10.visitMethodInvocation(UnitCompiler.java:3261) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.Java$MethodInvocation.accept(Java.java:3978) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:3288) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:4354) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2669) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.access$4500(UnitCompiler.java:182) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler$7.visitAssignment(UnitCompiler.java:2619) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.Java$Assignment.accept(Java.java:3409) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2654) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1634) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.access$1100(UnitCompiler.java:182) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler$4.visitExpressionStatement(UnitCompiler.java:940) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.Java$ExpressionStatement.accept(Java.java:2085) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:962) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1004) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:989) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.access$1000(UnitCompiler.java:182) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler$4.visitBlock(UnitCompiler.java:939) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.Java$Block.accept(Java.java:2005) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:962) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1327) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.access$900(UnitCompiler.java:182) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler$4.visitLabeledStatement(UnitCompiler.java:938) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.Java$LabeledStatement.accept(Java.java:1966) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:962) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1004) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:989) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.access$1000(UnitCompiler.java:182) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler$4.visitBlock(UnitCompiler.java:939) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.Java$Block.accept(Java.java:2005) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:962) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1736) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.access$1200(UnitCompiler.java:182) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler$4.visitIfStatement(UnitCompiler.java:941) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.Java$IfStatement.accept(Java.java:2145) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:962) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1004) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:989) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.access$1000(UnitCompiler.java:182) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler$4.visitBlock(UnitCompiler.java:939) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.Java$Block.accept(Java.java:2005) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:962) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1004) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:989) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.access$1000(UnitCompiler.java:182) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler$4.visitBlock(UnitCompiler.java:939) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.Java$Block.accept(Java.java:2005) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:962) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1004) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2284) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:826) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:798) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:503) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:389) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.access$400(UnitCompiler.java:182) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:343) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java:1136) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:350) ~[janino-2.7.4.jar:2.7.4]
org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:318) ~[janino-2.7.4.jar:2.7.4]
org.apache.drill.exec.compile.JaninoClassCompiler.getByteCode(JaninoClassCompiler.java:48) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.compile.AbstractClassCompiler.getClassByteCode(AbstractClassCompiler.java:43) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.compile.QueryClassLoader$ClassCompilerSelector.getClassByteCode(QueryClassLoader.java:127) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.compile.QueryClassLoader$ClassCompilerSelector.access$000(QueryClassLoader.java:100) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.compile.QueryClassLoader.getClassByteCode(QueryClassLoader.java:93) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.compile.ClassTransformer.getImplementationClass(ClassTransformer.java:254) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.ops.FragmentContext.getImplementationClass(FragmentContext.java:182) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.setupNewSchema(ProjectRecordBatch.java:296) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.record.AbstractSingleRecordBatch.innerNext(AbstractSingleRecordBatch.java:66) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext(ProjectRecordBatch.java:95) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:91) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next(IteratorValidatorBatchIterator.java:116) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:58) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext(ScreenCreator.java:97) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:48) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:100) ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.work.WorkManager$RunnableWrapper.run(WorkManager.java:242) [drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_45]
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_45]
java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]

> Casting of a timestamp to date fails with complilation error
> ------------------------------------------------------------
>
>                 Key: DRILL-1164
>                 URL: https://issues.apache.org/jira/browse/DRILL-1164
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Functions - Drill
>            Reporter: Krystal
>
> git.commit.id.abbrev=e5c2da0
> I have the following data as timestamp:
> 0: jdbc:drill:schema=dfs> select create_time from student_v where student_id=15;
> +-------------+
> | create_time |
> +-------------+
> | 2014-11-12 12:38:15.0 |
> +-------------+
> It fails with compilation error when I cast the create_time column to a date:
> 0: jdbc:drill:schema=dfs> select cast(create_time as date) from student_v where student_id=15;
> Query failed: org.apache.drill.exec.rpc.RpcException: Remote failure while running query.[error_id: "5645a2df-cf15-4e14-aa88-c10559169348"
> endpoint {
>   address: "qa-node64.qa.lab"
>   user_port: 31010
>   control_port: 31011
>   data_port: 31012
> }
> error_type: 0
> message: "Screen received stop request sent. < SchemaChangeException:[ Failure while attempting to load generated class ] < 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.BitHolder;
> import org.apache.drill.exec.expr.holders.NullableDateHolder;
> import org.apache.drill.exec.expr.holders.NullableTimeStampHolder;
> import org.apache.drill.exec.expr.holders.NullableVarBinaryHolder;
> import org.apache.drill.exec.ops.FragmentContext;
> import org.apache.drill.exec.record.RecordBatch;
> import org.apache.drill.exec.vector.NullableDateVector;
> import org.apache.drill.exec.vector.NullableVarBinaryVector;
> public class ProjectorGen94 {
>     NullableVarBinaryVector vv0;
>     NullableDateVector vv6;
>     public void doSetup(FragmentContext context, RecordBatch incoming, RecordBatch outgoing)
>         throws SchemaChangeException
>     {
>         {
>             int[] fieldIds1 = new int[ 1 ] ;
>             fieldIds1 [ 0 ] = 1;
>             Object tmp2 = (incoming).getValueAccessorById(NullableVarBinaryVector.class, fieldIds1).getValueVector();
>             if (tmp2 == null) {
>                 throw new SchemaChangeException("Failure while loading vector vv0 with id: org.apache.drill.exec.record.TypedFieldId@c2277e8e.");
>             }
>             vv0 = ((NullableVarBinaryVector) tmp2);
>             /** start SETUP for function castTIMESTAMP **/ 
>             {
>                  {}
>             }
>             /** end SETUP for function castTIMESTAMP **/ 
>             /** start SETUP for function castDATE **/ 
>             {
>                  {}
>             }
>             /** end SETUP for function castDATE **/ 
>             int[] fieldIds7 = new int[ 1 ] ;
>             fieldIds7 [ 0 ] = 0;
>             Object tmp8 = (outgoing).getValueAccessorById(NullableDateVector.class, fieldIds7).getValueVector();
>             if (tmp8 == null) {
>                 throw new SchemaChangeException("Failure while loading vector vv6 with id: org.apache.drill.exec.record.TypedFieldId@8cbf8a9.");
>             }
>             vv6 = ((NullableDateVector) tmp8);
>         }
>     }
>     public boolean doEval(int inIndex, int outIndex)
>         throws SchemaChangeException
>     {
>         {
>             NullableVarBinaryHolder out3 = new NullableVarBinaryHolder();
>             out3 .isSet = vv0 .getAccessor().isSet((inIndex));
>             if (out3 .isSet == 1) {
>                 {
>                     vv0 .getAccessor().get((inIndex), out3);
>                 }
>             }
>             //---- start of eval portion of castTIMESTAMP function. ----//
>             NullableTimeStampHolder out4 = new NullableTimeStampHolder();
>             {
>                 if (out3 .isSet == 0) {
>                     out4 .isSet = 0;
>                 } else {
>                     final NullableTimeStampHolder out = new NullableTimeStampHolder();
>                     NullableVarBinaryHolder in = out3;
>                      
> CastVarCharToTimeStamp_eval: {
>     byte[] buf = new byte[in.end - in.start];
>     in.buffer.getBytes(in.start, buf, 0, in.end - in.start);
>     String input = new String(buf, com.google.common.base.Charsets.UTF_8);
>     org.joda.time.format.DateTimeFormatter f = org.apache.drill.exec.expr.fn.impl.DateUtility.getDateTimeFormatter();
>     out.value = org.joda.time.DateTime.parse(input, f).withZoneRetainFields(org.joda.time.DateTimeZone.UTC).getMillis();
> }
>  
>                     out.isSet = 1;
>                     out4 = out;
>                     out.isSet = 1;
>                 }
>             }
>             //---- end of eval portion of castTIMESTAMP function. ----//
>             //---- start of eval portion of castDATE function. ----//
>             NullableDateHolder out5 = new NullableDateHolder();
>             {
>                 if (out4 .isSet == 0) {
>                     out5 .isSet = 0;
>                 } else {
>                     final NullableDateHolder out = new NullableDateHolder();
>                     NullableTimeStampHolder in = out4;
>                      
> CastTimeStampToDate_eval: {
>     out.value = (new DateMidnight(in.value, DateTimeZone.UTC)).getMillis();
> }
>  
>                     out.isSet = 1;
>                     out5 = out;
>                     out.isSet = 1;
>                 }
>             }
>             //---- end of eval portion of castDATE function. ----//
>             BitHolder out9 = new BitHolder();
>             out9 .value = 1;
>             if (!(out5 .isSet == 0)) {
>                 if (!vv6 .getMutator().setSafe((outIndex), out5 .value)) {
>                     out9 .value = 0;
>                 }
>             } else {
>                 if (!vv6 .getMutator().isSafe((outIndex))) {
>                     out9 .value = 0;
>                 }
>             }
>             if (out9 .value == 0) {
>                 return false;
>             }
>         }
>         {
>             return true;
>         }
>     }
> }
>  ] < CompileException:[ Line 97, Column 34: Cannot determine simple type name "DateMidnight" ]"
> ]Error: exception while executing query (state=,code=0)



--
This message was sent by Atlassian JIRA
(v6.2#6252)