You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Jacques Nadeau (JIRA)" <ji...@apache.org> on 2014/07/31 07:55:39 UTC

[jira] [Updated] (DRILL-1173) Query CSV file works fine, add an AND clause and it blows up

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

Jacques Nadeau updated DRILL-1173:
----------------------------------

    Fix Version/s:     (was: 0.4.0)
                   0.5.0

> Query CSV file works fine, add an AND clause and it blows up
> ------------------------------------------------------------
>
>                 Key: DRILL-1173
>                 URL: https://issues.apache.org/jira/browse/DRILL-1173
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Client - CLI
>    Affects Versions: 1.0.0
>         Environment: Linux Mint, Java 1.7.0_51
>            Reporter: Jim Scott
>             Fix For: 0.5.0
>
>
> I have a simple CSV address list file.
> When I run this query it runs fine:
> !sql select columns[4] as first, columns[6] as last from dfs.`/data/AddressList.csv` where columns[4] like '%B%';
> When I run this query the following error occurs:
> !sql select columns[4] as first, columns[6] as last from dfs.`/data/AddressList.csv` where columns[4] like '%B%' and columns[6] like '%S%';
> Exception in thread "343e9a34-bf64-4e8a-817d-91f0884dd086:frag:0:0 - Producer Thread" java.lang.UnsupportedOperationException: Attemped to access a DeadBuf. This would happen if you attempted to interact with a buffer that has been moved or not yet initialized.
> 	at org.apache.drill.exec.record.DeadBuf.getInt(DeadBuf.java:240)
> 	at org.apache.drill.exec.vector.UInt4Vector$Accessor.get(UInt4Vector.java:293)
> 	at org.apache.drill.exec.vector.RepeatedVarCharVector$Mutator.setValueCount(RepeatedVarCharVector.java:463)
> 	at org.apache.drill.exec.store.text.DrillTextRecordReader.next(DrillTextRecordReader.java:160)
> 	at org.apache.drill.exec.physical.impl.ScanBatch.next(ScanBatch.java:138)
> 	at org.apache.drill.exec.physical.impl.producer.ProducerConsumerBatch$Producer.run(ProducerConsumerBatch.java:122)
> 	at java.lang.Thread.run(Thread.java:744)
> Query failed: org.apache.drill.exec.rpc.RpcException: Remote failure while running query.[error_id: "348b4278-1e73-4211-a4a7-787ff6bfd582"
> endpoint {
>   address: "blandserver"
>   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 java.util.regex.Pattern;
> import org.apache.drill.exec.exception.SchemaChangeException;
> import org.apache.drill.exec.expr.holders.NullableBitHolder;
> 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.RepeatedVarCharVector;
> import org.apache.drill.exec.vector.ValueHolderHelper;
> public class FiltererGen24 {
>     Pattern work1;
>     RepeatedVarCharVector vv2;
>     VarCharHolder string6;
>     VarCharHolder constant7;
>     Pattern work9;
>     RepeatedVarCharVector vv10;
>     VarCharHolder string14;
>     VarCharHolder constant15;
>     public boolean doEval(int inIndex, int outIndex)
>         throws SchemaChangeException
>     {
>         {
>             NullableBitHolder out0 = new NullableBitHolder();
>             AndOP0:
>             {
>                 NullableVarCharHolder out5 = new NullableVarCharHolder();
>                 int isNull = 0;
>                 complex:
>                 vv2 .getAccessor().getReader().setPosition((inIndex));
>                 vv2 .getAccessor().getReader().read(6, out5);
>                 //---- start of eval portion of like function. ----//
>                 NullableBitHolder out8 = new NullableBitHolder();
>                 {
>                     if (out5 .isSet == 0) {
>                         out8 .isSet = 0;
>                     } else {
>                         final NullableBitHolder out = new NullableBitHolder();
>                         NullableVarCharHolder input = out5;
>                         VarCharHolder pattern = constant7;
>                         Pattern regPattern = work1;
>                          
> StringFunctions$Like_eval: {
>     out.value = regPattern.matcher(input.toString()).matches() ? 1 : 0;
> }
>  
>                         work1 = regPattern;
>                         out.isSet = 1;
>                         out8 = out;
>                         out.isSet = 1;
>                     }
>                 }
>                 //---- end of eval portion of like function. ----//
>                 if ((out8 .isSet == 1)&&(out8 .value!= 1)) {
>                     out0 .isSet = 1;
>                     out0 .value = 0;
>                     break AndOP0;
>                 }
>                 NullableVarCharHolder out13 = new NullableVarCharHolder();
>                 int isNull = 0;
>                 complex:
>                 vv10 .getAccessor().getReader().setPosition((inIndex));
>                 vv10 .getAccessor().getReader().read(4, out13);
>                 //---- start of eval portion of like function. ----//
>                 NullableBitHolder out16 = new NullableBitHolder();
>                 {
>                     if (out13 .isSet == 0) {
>                         out16 .isSet = 0;
>                     } else {
>                         final NullableBitHolder out = new NullableBitHolder();
>                         NullableVarCharHolder input = out13;
>                         VarCharHolder pattern = constant15;
>                         Pattern regPattern = work9;
>                          
> StringFunctions$Like_eval: {
>     out.value = regPattern.matcher(input.toString()).matches() ? 1 : 0;
> }
>  
>                         work9 = regPattern;
>                         out.isSet = 1;
>                         out16 = out;
>                         out.isSet = 1;
>                     }
>                 }
>                 //---- end of eval portion of like function. ----//
>                 if ((out16 .isSet == 1)&&(out16 .value!= 1)) {
>                     out0 .isSet = 1;
>                     out0 .value = 0;
>                     break AndOP0;
>                 }
>                 if ((out8 .isSet*out16 .isSet) == 0) {
>                     out0 .isSet = 0;
>                 } else {
>                     out0 .isSet = 1;
>                     out0 .value = 1;
>                 }
>             }
>             return (out0 .value == 1);
>         }
>     }
>     public void doSetup(FragmentContext context, RecordBatch incoming, RecordBatch outgoing)
>         throws SchemaChangeException
>     {
>         {
>             int[] fieldIds3 = new int[ 1 ] ;
>             fieldIds3 [ 0 ] = 0;
>             Object tmp4 = (incoming).getValueAccessorById(RepeatedVarCharVector.class, fieldIds3).getValueVector();
>             if (tmp4 == null) {
>                 throw new SchemaChangeException("Failure while loading vector vv2 with id: org.apache.drill.exec.record.TypedFieldId@33526f4d.");
>             }
>             vv2 = ((RepeatedVarCharVector) tmp4);
>             string6 = ValueHolderHelper.getVarCharHolder("%S%");
>             constant7 = string6;
>             /** start SETUP for function like **/ 
>             {
>                 VarCharHolder pattern = constant7;
>                 Pattern regPattern = work1;
>                  
> StringFunctions$Like_setup: {
>     regPattern = java.util.regex.Pattern.compile(org.apache.drill.exec.expr.fn.impl.RegexpUtil.sqlToRegexLike(pattern.toString()));
> }
>  
>                 work1 = regPattern;
>             }
>             /** end SETUP for function like **/ 
>             int[] fieldIds11 = new int[ 1 ] ;
>             fieldIds11 [ 0 ] = 0;
>             Object tmp12 = (incoming).getValueAccessorById(RepeatedVarCharVector.class, fieldIds11).getValueVector();
>             if (tmp12 == null) {
>                 throw new SchemaChangeException("Failure while loading vector vv10 with id: org.apache.drill.exec.record.TypedFieldId@335267cb.");
>             }
>             vv10 = ((RepeatedVarCharVector) tmp12);
>             string14 = ValueHolderHelper.getVarCharHolder("%B%");
>             constant15 = string14;
>             /** start SETUP for function like **/ 
>             {
>                 VarCharHolder pattern = constant15;
>                 Pattern regPattern = work9;
>                  
> StringFunctions$Like_setup: {
>     regPattern = java.util.regex.Pattern.compile(org.apache.drill.exec.expr.fn.impl.RegexpUtil.sqlToRegexLike(pattern.toString()));
> }
>  
>                 work9 = regPattern;
>             }
>             /** end SETUP for function like **/ 
>         }
>     }
> }
>  ] < CompileException:[ Line 65, Column 27: Redefinition of local variable "isNull"  ]"
> ]Error: exception while executing query (state=,code=0)



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