aboutsummaryrefslogtreecommitdiff
path: root/exec/vector/src/main/codegen/templates/ComplexReaders.java
diff options
context:
space:
mode:
Diffstat (limited to 'exec/vector/src/main/codegen/templates/ComplexReaders.java')
-rw-r--r--exec/vector/src/main/codegen/templates/ComplexReaders.java66
1 files changed, 39 insertions, 27 deletions
diff --git a/exec/vector/src/main/codegen/templates/ComplexReaders.java b/exec/vector/src/main/codegen/templates/ComplexReaders.java
index 1f0b92b02..d72c7c696 100644
--- a/exec/vector/src/main/codegen/templates/ComplexReaders.java
+++ b/exec/vector/src/main/codegen/templates/ComplexReaders.java
@@ -53,20 +53,20 @@ public class ${nullMode}${name}ReaderImpl extends AbstractFieldReader {
private final ${nullMode}${name}Vector vector;
- public ${nullMode}${name}ReaderImpl(${nullMode}${name}Vector vector){
+ public ${nullMode}${name}ReaderImpl(${nullMode}${name}Vector vector) {
super();
this.vector = vector;
}
- public MajorType getType(){
+ public MajorType getType() {
return vector.getField().getType();
}
- public MaterializedField getField(){
+ public MaterializedField getField() {
return vector.getField();
}
- public boolean isSet(){
+ public boolean isSet() {
<#if nullMode == "Nullable">
return !vector.getAccessor().isNull(idx());
<#else>
@@ -74,76 +74,85 @@ public class ${nullMode}${name}ReaderImpl extends AbstractFieldReader {
</#if>
}
-
-
-
<#if mode == "Repeated">
- public void copyAsValue(${minor.class?cap_first}Writer writer){
+ public void copyAsValue(${minor.class?cap_first}Writer writer) {
Repeated${minor.class?cap_first}WriterImpl impl = (Repeated${minor.class?cap_first}WriterImpl) writer;
impl.vector.copyFromSafe(idx(), impl.idx(), vector);
}
-
- public void copyAsField(String name, MapWriter writer){
- Repeated${minor.class?cap_first}WriterImpl impl = (Repeated${minor.class?cap_first}WriterImpl) writer.list(name).${lowerName}();
+
+ <#if minor.class == "VarDecimal">
+ public void copyAsField(String name, MapWriter writer, int scale, int precision) {
+ Repeated${minor.class?cap_first}WriterImpl impl
+ = (Repeated${minor.class?cap_first}WriterImpl) writer.list(name).${lowerName}(scale, precision);
+ <#else>
+ public void copyAsField(String name, MapWriter writer) {
+ Repeated${minor.class?cap_first}WriterImpl impl = (Repeated${minor.class?cap_first}WriterImpl) writer.list(name).${lowerName}();
+ </#if>
impl.vector.copyFromSafe(idx(), impl.idx(), vector);
}
- public int size(){
+ public int size() {
return vector.getAccessor().getInnerValueCountAt(idx());
}
- public void read(int arrayIndex, ${minor.class?cap_first}Holder h){
+ public void read(int arrayIndex, ${minor.class?cap_first}Holder h) {
vector.getAccessor().get(idx(), arrayIndex, h);
}
- public void read(int arrayIndex, Nullable${minor.class?cap_first}Holder h){
+
+ public void read(int arrayIndex, Nullable${minor.class?cap_first}Holder h) {
vector.getAccessor().get(idx(), arrayIndex, h);
}
- public ${friendlyType} read${safeType}(int arrayIndex){
+ public ${friendlyType} read${safeType}(int arrayIndex) {
return vector.getAccessor().getSingleObject(idx(), arrayIndex);
}
- public List<Object> readObject(){
+ public List<Object> readObject() {
return (List<Object>) (Object) vector.getAccessor().getObject(idx());
}
<#else>
- public void copyAsValue(${minor.class?cap_first}Writer writer){
+ public void copyAsValue(${minor.class?cap_first}Writer writer) {
${nullMode}${minor.class?cap_first}WriterImpl impl = (${nullMode}${minor.class?cap_first}WriterImpl) writer;
impl.vector.copyFromSafe(idx(), impl.idx(), vector);
}
-
- public void copyAsField(String name, MapWriter writer){
+
+ <#if minor.class == "VarDecimal">
+ public void copyAsField(String name, MapWriter writer, int scale, int precision) {
+ ${nullMode}${minor.class?cap_first}WriterImpl impl
+ = (${nullMode}${minor.class?cap_first}WriterImpl) writer.${lowerName}(name, scale, precision);
+<#else>
+ public void copyAsField(String name, MapWriter writer) {
${nullMode}${minor.class?cap_first}WriterImpl impl = (${nullMode}${minor.class?cap_first}WriterImpl) writer.${lowerName}(name);
+ </#if>
impl.vector.copyFromSafe(idx(), impl.idx(), vector);
}
<#if nullMode != "Nullable">
- public void read(${minor.class?cap_first}Holder h){
+ public void read(${minor.class?cap_first}Holder h) {
vector.getAccessor().get(idx(), h);
}
</#if>
- public void read(Nullable${minor.class?cap_first}Holder h){
+ public void read(Nullable${minor.class?cap_first}Holder h) {
vector.getAccessor().get(idx(), h);
}
- public ${friendlyType} read${safeType}(){
+ public ${friendlyType} read${safeType}() {
return vector.getAccessor().getObject(idx());
}
- public void copyValue(FieldWriter w){
+ public void copyValue(FieldWriter w) {
}
- public Object readObject(){
+ public Object readObject() {
return vector.getAccessor().getObject(idx());
}
-
</#if>
}
</#if>
@@ -155,7 +164,7 @@ package org.apache.drill.exec.vector.complex.reader;
<#include "/@includes/vv_imports.ftl" />
@SuppressWarnings("unused")
-public interface ${name}Reader extends BaseReader{
+public interface ${name}Reader extends BaseReader {
<#if mode == "Repeated">
public int size();
@@ -171,8 +180,11 @@ public interface ${name}Reader extends BaseReader{
</#if>
public boolean isSet();
public void copyAsValue(${minor.class}Writer writer);
+ <#if minor.class == "VarDecimal">
+ public void copyAsField(String name, ${minor.class}Writer writer, int scale, int precision);
+ <#else>
public void copyAsField(String name, ${minor.class}Writer writer);
-
+ </#if>
}