diff options
author | Jinfeng Ni <jni@maprtech.com> | 2014-08-05 13:13:52 -0700 |
---|---|---|
committer | Jacques Nadeau <jacques@apache.org> | 2014-08-06 17:30:50 -0700 |
commit | 8c66525735d011c763a4ed913d46e07cd60aea23 (patch) | |
tree | 8a99039ff72409524b57de1fcf9bdb574cc1a85b /exec/java-exec/src/main | |
parent | 49d238eea601a6764129b9d64cf9bca440209e12 (diff) |
DRILL-1250 : Fix compilation error in generated code when Drill evaluates an expression that returns a repeated scalar value.
Diffstat (limited to 'exec/java-exec/src/main')
-rw-r--r-- | exec/java-exec/src/main/java/org/apache/drill/exec/expr/EvaluationVisitor.java | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/EvaluationVisitor.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/EvaluationVisitor.java index 73ce45e38..caf91793b 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/EvaluationVisitor.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/EvaluationVisitor.java @@ -265,14 +265,14 @@ public class EvaluationVisitor { final LogicalExpression child = e.getChild(); final HoldingContainer inputContainer = child.accept(this, generator); - final boolean complex = Types.isComplex(inputContainer.getMajorType()); - final boolean repeated = Types.isRepeated(inputContainer.getMajorType()); JBlock block = generator.getEvalBlock(); JExpression outIndex = generator.getMappingSet().getValueWriteIndex(); JVar vv = generator.declareVectorValueSetupAndMember(generator.getMappingSet().getOutgoing(), e.getFieldId()); - if (complex || repeated) { + // Only when the input is a reader, use writer interface to copy value. + // Otherwise, input is a holder and we use vv mutator to set value. + if (inputContainer.isReader()) { JType writerImpl = generator.getModel()._ref( TypeHelper.getWriterImpl(inputContainer.getMinorType(), inputContainer.getMajorType().getMode())); JType writerIFace = generator.getModel()._ref( |