http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/676f5df6/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/ParquetRecordReader.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/ParquetRecordReader.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/ParquetRecordReader.java index bdfc860..7d0fc23 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/ParquetRecordReader.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/ParquetRecordReader.java @@ -180,7 +180,7 @@ public class ParquetRecordReader extends AbstractRecordReader { } } - private boolean fieldSelected(MaterializedField field){ + private boolean fieldSelected(MaterializedField field) { // TODO - not sure if this is how we want to represent this // for now it makes the existing tests pass, simply selecting // all available data if no columns are provided @@ -189,8 +189,8 @@ public class ParquetRecordReader extends AbstractRecordReader { } int i = 0; - for (SchemaPath expr : getColumns()){ - if ( field.matches(expr)){ + for (SchemaPath expr : getColumns()) { + if ( field.matches(expr)) { columnsFound[i] = true; return true; } @@ -237,7 +237,7 @@ public class ParquetRecordReader extends AbstractRecordReader { SchemaElement se = schemaElements.get(column.getPath()[0]); MajorType mt = ParquetToDrillTypeConverter.toMajorType(column.getType(), se.getType_length(), getDataMode(column), se); field = MaterializedField.create(toFieldName(column.getPath()),mt); - if ( ! fieldSelected(field)){ + if ( ! fieldSelected(field)) { continue; } columnsToScan++; @@ -246,7 +246,7 @@ public class ParquetRecordReader extends AbstractRecordReader { if (column.getMaxRepetitionLevel() > 0) { allFieldsFixedLength = false; } - if (column.getType() == PrimitiveType.PrimitiveTypeName.FIXED_LEN_BYTE_ARRAY){ + if (column.getType() == PrimitiveType.PrimitiveTypeName.FIXED_LEN_BYTE_ARRAY) { bitWidthAllFixedFields += se.getType_length() * 8; } else { bitWidthAllFixedFields += getTypeLengthInBits(column.getType()); @@ -278,7 +278,9 @@ public class ParquetRecordReader extends AbstractRecordReader { MajorType type = ParquetToDrillTypeConverter.toMajorType(column.getType(), schemaElement.getType_length(), getDataMode(column), schemaElement); field = MaterializedField.create(toFieldName(column.getPath()), type); // the field was not requested to be read - if ( ! fieldSelected(field)) continue; + if ( ! fieldSelected(field)) { + continue; + } fieldFixedLength = column.getType() != PrimitiveType.PrimitiveTypeName.BINARY; v = output.addField(field, (Class<? extends ValueVector>) TypeHelper.getValueVectorClass(type.getMinorType(), type.getMode())); @@ -353,14 +355,14 @@ public class ParquetRecordReader extends AbstractRecordReader { for (ColumnReader column : columnStatuses) { column.valuesReadInCurrentPass = 0; } - for (VarLengthColumn r : varLengthReader.columns){ + for (VarLengthColumn r : varLengthReader.columns) { r.valuesReadInCurrentPass = 0; } } public void readAllFixedFields(long recordsToRead) throws IOException { - for (ColumnReader crs : columnStatuses){ + for (ColumnReader crs : columnStatuses) { crs.processPages(recordsToRead); } } @@ -371,11 +373,11 @@ public class ParquetRecordReader extends AbstractRecordReader { long recordsToRead = 0; try { ColumnReader firstColumnStatus; - if (columnStatuses.size() > 0){ + if (columnStatuses.size() > 0) { firstColumnStatus = columnStatuses.iterator().next(); } else{ - if (varLengthReader.columns.size() > 0){ + if (varLengthReader.columns.size() > 0) { firstColumnStatus = varLengthReader.columns.iterator().next(); } else{ @@ -437,9 +439,10 @@ public class ParquetRecordReader extends AbstractRecordReader { } columnStatuses.clear(); - for (VarLengthColumn r : varLengthReader.columns){ + for (VarLengthColumn r : varLengthReader.columns) { r.clear(); } varLengthReader.columns.clear(); } + }
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/676f5df6/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/VarLenBinaryReader.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/VarLenBinaryReader.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/VarLenBinaryReader.java index 409f17d..68a7e2a 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/VarLenBinaryReader.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/VarLenBinaryReader.java @@ -25,7 +25,7 @@ public class VarLenBinaryReader { ParquetRecordReader parentReader; final List<VarLengthColumn> columns; - public VarLenBinaryReader(ParquetRecordReader parentReader, List<VarLengthColumn> columns){ + public VarLenBinaryReader(ParquetRecordReader parentReader, List<VarLengthColumn> columns) { this.parentReader = parentReader; this.columns = columns; } @@ -52,14 +52,15 @@ public class VarLenBinaryReader { do { lengthVarFieldsInCurrentRecord = 0; for (VarLengthColumn columnReader : columns) { - if ( ! exitLengthDeterminingLoop ) + if ( !exitLengthDeterminingLoop ) { exitLengthDeterminingLoop = columnReader.determineSize(recordsReadInCurrentPass, lengthVarFieldsInCurrentRecord); - else + } else { break; + } } // check that the next record will fit in the batch if (exitLengthDeterminingLoop || (recordsReadInCurrentPass + 1) * parentReader.getBitWidthAllFixedFields() + totalVariableLengthData - + lengthVarFieldsInCurrentRecord > parentReader.getBatchSize()){ + + lengthVarFieldsInCurrentRecord > parentReader.getBatchSize()) { break; } for (VarLengthColumn columnReader : columns ) { @@ -78,4 +79,5 @@ public class VarLenBinaryReader { } return recordsReadInCurrentPass; } + } http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/676f5df6/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/VarLengthColumnReaders.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/VarLengthColumnReaders.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/VarLengthColumnReaders.java index 99e6f53..83f9bde 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/VarLengthColumnReaders.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/VarLengthColumnReaders.java @@ -162,7 +162,6 @@ public class VarLengthColumnReaders { } } - public static class VarCharColumn extends VarLengthValuesColumn<VarCharVector> { // store a hard reference to the vector (which is also stored in the superclass) to prevent repetitive casting @@ -178,7 +177,9 @@ public class VarLengthColumnReaders { @Override public boolean setSafe(int index, DrillBuf bytebuf, int start, int length) { boolean success; - if(index >= varCharVector.getValueCapacity()) return false; + if (index >= varCharVector.getValueCapacity()) { + return false; + } if (usingDictionary) { DrillBuf b = DrillBuf.wrapByteBuffer(currDictValToWrite.toByteBuffer()); @@ -225,7 +226,9 @@ public class VarLengthColumnReaders { @Override public boolean setSafe(int index, DrillBuf value, int start, int length) { boolean success; - if(index >= vector.getValueCapacity()) return false; + if (index >= vector.getValueCapacity()) { + return false; + } if (usingDictionary) { DrillBuf b = DrillBuf.wrapByteBuffer(currDictValToWrite.toByteBuffer()); @@ -258,7 +261,9 @@ public class VarLengthColumnReaders { @Override public boolean setSafe(int index, DrillBuf value, int start, int length) { boolean success; - if(index >= varBinaryVector.getValueCapacity()) return false; + if (index >= varBinaryVector.getValueCapacity()) { + return false; + } if (usingDictionary) { DrillBuf b = DrillBuf.wrapByteBuffer(currDictValToWrite.toByteBuffer()); @@ -303,7 +308,9 @@ public class VarLengthColumnReaders { @Override public boolean setSafe(int index, DrillBuf value, int start, int length) { boolean success; - if(index >= nullableVarBinaryVector.getValueCapacity()) return false; + if (index >= nullableVarBinaryVector.getValueCapacity()) { + return false; + } if (usingDictionary) { DrillBuf b = DrillBuf.wrapByteBuffer(currDictValToWrite.toByteBuffer()); @@ -331,4 +338,5 @@ public class VarLengthColumnReaders { } } + } http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/676f5df6/exec/java-exec/src/main/java/org/apache/drill/exec/store/pojo/PojoDataType.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/pojo/PojoDataType.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/pojo/PojoDataType.java index c84f43c..c1e64e6 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/pojo/PojoDataType.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/pojo/PojoDataType.java @@ -34,45 +34,45 @@ public class PojoDataType { public List<SqlTypeName> types = Lists.newArrayList(); public List<String> names = Lists.newArrayList(); - public PojoDataType(Class<?> pojoClass){ + public PojoDataType(Class<?> pojoClass) { logger.debug(pojoClass.getName()); Field[] fields = pojoClass.getDeclaredFields(); - for(int i = 0; i < fields.length; i++){ + for (int i = 0; i < fields.length; i++) { Field f = fields[i]; - if(Modifier.isStatic(f.getModifiers())) continue; + if (Modifier.isStatic(f.getModifiers())) { + continue; + } Class<?> type = f.getType(); names.add(f.getName()); - if(type == int.class || type == Integer.class){ + if (type == int.class || type == Integer.class) { types.add(SqlTypeName.INTEGER); - }else if(type == boolean.class || type == Boolean.class){ + } else if(type == boolean.class || type == Boolean.class) { types.add(SqlTypeName.BOOLEAN); - }else if(type == long.class || type == Long.class){ + } else if(type == long.class || type == Long.class) { types.add(SqlTypeName.BIGINT); - }else if(type == double.class || type == Double.class){ + } else if(type == double.class || type == Double.class) { types.add(SqlTypeName.DOUBLE); - }else if(type == String.class){ + } else if(type == String.class) { types.add(SqlTypeName.VARCHAR); - }else if(type.isEnum()){ + } else if(type.isEnum()) { types.add(SqlTypeName.VARCHAR); - }else if (type == Timestamp.class) { + } else if (type == Timestamp.class) { types.add(SqlTypeName.TIMESTAMP); - }else{ + } else { throw new RuntimeException(String.format("PojoRecord reader doesn't yet support conversions from type [%s].", type)); } } } - - public RelDataType getRowType(RelDataTypeFactory f){ + public RelDataType getRowType(RelDataTypeFactory f) { List<RelDataType> fields = Lists.newArrayList(); - for(SqlTypeName n : types){ + for (SqlTypeName n : types) { fields.add(f.createSqlType(n)); } return f.createStructType(fields, names); } - } http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/676f5df6/exec/java-exec/src/main/java/org/apache/drill/exec/store/pojo/PojoRecordReader.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/pojo/PojoRecordReader.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/pojo/PojoRecordReader.java index 38160df..241fa95 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/pojo/PojoRecordReader.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/pojo/PojoRecordReader.java @@ -59,7 +59,7 @@ public class PojoRecordReader<T> extends AbstractRecordReader { private T currentPojo; private OperatorContext operatorContext; - public PojoRecordReader(Class<T> pojoClass, Iterator<T> iterator){ + public PojoRecordReader(Class<T> pojoClass, Iterator<T> iterator) { this.pojoClass = pojoClass; this.iterator = iterator; } @@ -74,40 +74,42 @@ public class PojoRecordReader<T> extends AbstractRecordReader { @Override public void setup(OutputMutator output) throws ExecutionSetupException { - try{ + try { Field[] fields = pojoClass.getDeclaredFields(); List<PojoWriter> writers = Lists.newArrayList(); - for(int i = 0; i < fields.length; i++){ + for (int i = 0; i < fields.length; i++) { Field f = fields[i]; - if(Modifier.isStatic(f.getModifiers())) continue; + if (Modifier.isStatic(f.getModifiers())) { + continue; + } Class<?> type = f.getType(); PojoWriter w = null; - if(type == int.class){ + if(type == int.class) { w = new IntWriter(f); - }else if(type == Integer.class){ + } else if(type == Integer.class) { w = new NIntWriter(f); - }else if(type == Long.class){ + } else if(type == Long.class) { w = new NBigIntWriter(f); - }else if(type == Boolean.class){ + } else if(type == Boolean.class) { w = new NBooleanWriter(f); - }else if(type == double.class){ + } else if(type == double.class) { w = new DoubleWriter(f); - }else if(type == Double.class){ + } else if(type == Double.class) { w = new NDoubleWriter(f); - }else if(type.isEnum()){ + } else if(type.isEnum()) { w = new EnumWriter(f, output.getManagedBuffer()); - }else if(type == boolean.class){ + } else if(type == boolean.class) { w = new BitWriter(f); - }else if(type == long.class){ + } else if(type == long.class) { w = new LongWriter(f); - }else if(type == String.class){ + } else if(type == String.class) { w = new StringWriter(f, output.getManagedBuffer()); - }else if (type == Timestamp.class) { + } else if (type == Timestamp.class) { w = new NTimeStampWriter(f); - }else{ + } else { throw new ExecutionSetupException(String.format("PojoRecord reader doesn't yet support conversions from type [%s].", type)); } writers.add(w); @@ -116,7 +118,7 @@ public class PojoRecordReader<T> extends AbstractRecordReader { this.writers = writers.toArray(new PojoWriter[writers.size()]); - }catch(SchemaChangeException e){ + } catch(SchemaChangeException e) { throw new ExecutionSetupException("Failure while setting up schema for PojoRecordReader.", e); } @@ -130,14 +132,14 @@ public class PojoRecordReader<T> extends AbstractRecordReader { } } - private void allocate(){ - for(PojoWriter writer : writers){ + private void allocate() { + for (PojoWriter writer : writers) { writer.allocate(); } } - private void setValueCount(int i){ - for(PojoWriter writer : writers){ + private void setValueCount(int i) { + for (PojoWriter writer : writers) { writer.setValueCount(i); } } @@ -146,32 +148,36 @@ public class PojoRecordReader<T> extends AbstractRecordReader { public int next() { boolean allocated = false; - try{ + try { int i =0; outside: - while(doCurrent || iterator.hasNext()){ - if(doCurrent){ + while (doCurrent || iterator.hasNext()) { + if (doCurrent) { doCurrent = false; - }else{ + } else { currentPojo = iterator.next(); } - if(!allocated){ + if (!allocated) { allocate(); allocated = true; } - for(PojoWriter writer : writers){ - if(!writer.writeField(currentPojo, i)){ + for (PojoWriter writer : writers) { + if (!writer.writeField(currentPojo, i)) { doCurrent = true; - if(i == 0) throw new IllegalStateException("Got into a position where we can't write data but the batch is empty."); + if (i == 0) { + throw new IllegalStateException("Got into a position where we can't write data but the batch is empty."); + } break outside; }; } i++; } - if(i != 0 ) setValueCount(i); + if (i != 0 ) { + setValueCount(i); + } return i; } catch (IllegalArgumentException | IllegalAccessException e) { throw new RuntimeException("Failure while trying to use PojoRecordReader.", e); @@ -182,5 +188,4 @@ public class PojoRecordReader<T> extends AbstractRecordReader { public void cleanup() { } - } http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/676f5df6/exec/java-exec/src/main/java/org/apache/drill/exec/store/pojo/Writers.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/pojo/Writers.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/pojo/Writers.java index b982c9e..fee011a 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/pojo/Writers.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/pojo/Writers.java @@ -41,11 +41,13 @@ import com.google.common.base.Charsets; public class Writers { static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(Writers.class); - public static class IntWriter extends AbstractWriter<IntVector>{ + public static class IntWriter extends AbstractWriter<IntVector> { public IntWriter(Field field) { super(field, Types.required(MinorType.INT)); - if(field.getType() != int.class) throw new IllegalStateException(); + if (field.getType() != int.class) { + throw new IllegalStateException(); + } } @Override @@ -60,7 +62,9 @@ public class Writers { public BitWriter(Field field) { super(field, Types.required(MinorType.BIT)); - if(field.getType() != boolean.class) throw new IllegalStateException(); + if (field.getType() != boolean.class) { + throw new IllegalStateException(); + } } @Override @@ -75,13 +79,14 @@ public class Writers { public LongWriter(Field field) { super(field, Types.required(MinorType.BIGINT)); - if(field.getType() != long.class) throw new IllegalStateException(); + if (field.getType() != long.class) { + throw new IllegalStateException(); + } } @Override public boolean writeField(Object pojo, int outboundIndex) throws IllegalArgumentException, IllegalAccessException { long l = field.getLong(pojo); - return vector.getMutator().setSafe(outboundIndex, l); } @@ -91,7 +96,9 @@ public class Writers { public DoubleWriter(Field field) { super(field, Types.required(MinorType.FLOAT8)); - if(field.getType() != double.class) throw new IllegalStateException(); + if (field.getType() != double.class) { + throw new IllegalStateException(); + } } @Override @@ -113,18 +120,18 @@ public class Writers { ensureLength(100); } - void ensureLength(int len){ + void ensureLength(int len) { data = data.reallocIfNeeded(len); } @Override - public void cleanup(){ + public void cleanup() { } public boolean writeString(String s, int outboundIndex) throws IllegalArgumentException, IllegalAccessException { - if(s == null){ + if (s == null) { return true; - }else{ + } else { h.isSet = 1; byte[] bytes = s.getBytes(Charsets.UTF_8); ensureLength(bytes.length); @@ -134,9 +141,7 @@ public class Writers { h.start = 0; h.end = bytes.length; return vector.getMutator().setSafe(outboundIndex, h); - } - } } @@ -144,13 +149,17 @@ public class Writers { public static class EnumWriter extends AbstractStringWriter{ public EnumWriter(Field field, DrillBuf managedBuf) { super(field, managedBuf); - if(!field.getType().isEnum()) throw new IllegalStateException(); + if (!field.getType().isEnum()) { + throw new IllegalStateException(); + } } @Override public boolean writeField(Object pojo, int outboundIndex) throws IllegalArgumentException, IllegalAccessException { Enum<?> e= ((Enum<?>) field.get(pojo)); - if(e == null) return true; + if (e == null) { + return true; + } return writeString(e.name(), outboundIndex); } } @@ -158,7 +167,9 @@ public class Writers { public static class StringWriter extends AbstractStringWriter { public StringWriter(Field field, DrillBuf managedBuf) { super(field, managedBuf); - if(field.getType() != String.class) throw new IllegalStateException(); + if (field.getType() != String.class) { + throw new IllegalStateException(); + } } @Override @@ -172,13 +183,15 @@ public class Writers { public NIntWriter(Field field) { super(field, Types.optional(MinorType.INT)); - if(field.getType() != Integer.class) throw new IllegalStateException(); + if (field.getType() != Integer.class) { + throw new IllegalStateException(); + } } @Override public boolean writeField(Object pojo, int outboundIndex) throws IllegalArgumentException, IllegalAccessException { Integer i = (Integer) field.get(pojo); - if(i != null){ + if (i != null) { return vector.getMutator().setSafe(outboundIndex, i); } return true; @@ -190,13 +203,15 @@ public class Writers { public NBigIntWriter(Field field) { super(field, Types.optional(MinorType.BIGINT)); - if(field.getType() != Long.class) throw new IllegalStateException(); + if (field.getType() != Long.class) { + throw new IllegalStateException(); + } } @Override public boolean writeField(Object pojo, int outboundIndex) throws IllegalArgumentException, IllegalAccessException { Long o = (Long) field.get(pojo); - if(o != null){ + if (o != null) { return vector.getMutator().setSafe(outboundIndex, o); } return true; @@ -208,13 +223,15 @@ public class Writers { public NBooleanWriter(Field field) { super(field, Types.optional(MinorType.BIT)); - if(field.getType() != Boolean.class) throw new IllegalStateException(); + if (field.getType() != Boolean.class) { + throw new IllegalStateException(); + } } @Override public boolean writeField(Object pojo, int outboundIndex) throws IllegalArgumentException, IllegalAccessException { Boolean o = (Boolean) field.get(pojo); - if(o != null){ + if (o != null) { return vector.getMutator().setSafe(outboundIndex, o ? 1 : 0); } return true; @@ -225,13 +242,15 @@ public class Writers { public NDoubleWriter(Field field) { super(field, Types.optional(MinorType.FLOAT8)); - if(field.getType() != Double.class) throw new IllegalStateException(); + if (field.getType() != Double.class) { + throw new IllegalStateException(); + } } @Override public boolean writeField(Object pojo, int outboundIndex) throws IllegalArgumentException, IllegalAccessException { Double o = (Double) field.get(pojo); - if(o != null){ + if (o != null) { return vector.getMutator().setSafe(outboundIndex, o); } return true; @@ -243,13 +262,15 @@ public class Writers { public NTimeStampWriter(Field field) { super(field, Types.optional(MinorType.TIMESTAMP)); - if(field.getType() != Timestamp.class) throw new IllegalStateException(); + if (field.getType() != Timestamp.class) { + throw new IllegalStateException(); + } } @Override public boolean writeField(Object pojo, int outboundIndex) throws IllegalArgumentException, IllegalAccessException { Timestamp o = (Timestamp) field.get(pojo); - if(o != null){ + if (o != null) { return vector.getMutator().setSafe(outboundIndex, o.getTime()); } return true; http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/676f5df6/exec/java-exec/src/main/java/org/apache/drill/exec/store/schedule/AssignmentCreator.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/schedule/AssignmentCreator.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/schedule/AssignmentCreator.java index 705688e..7e9c4c9 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/schedule/AssignmentCreator.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/schedule/AssignmentCreator.java @@ -101,8 +101,9 @@ public class AssignmentCreator<T extends CompleteWork> { final boolean requireAffinity = requiredPercentage > 0; int maxAssignments = (int) (workunits.size() / endpoints.size()); - if (maxAssignments < 1) + if (maxAssignments < 1) { maxAssignments = 1; + } for (Iterator<T> iter = workunits.iterator(); iter.hasNext();) { T unit = iter.next(); http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/676f5df6/exec/java-exec/src/main/java/org/apache/drill/exec/store/schedule/BlockMapBuilder.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/schedule/BlockMapBuilder.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/schedule/BlockMapBuilder.java index 149f9e1..1aac14c 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/schedule/BlockMapBuilder.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/schedule/BlockMapBuilder.java @@ -92,7 +92,9 @@ public class BlockMapBuilder { private FileStatus status; public FileStatusWork(FileStatus status) { - if(status.isDir()) throw new IllegalStateException("FileStatus work only works with files, not directories."); + if (status.isDir()) { + throw new IllegalStateException("FileStatus work only works with files, not directories."); + } this.status = status; } @@ -151,7 +153,7 @@ public class BlockMapBuilder { private ImmutableRangeMap<Long,BlockLocation> getBlockMap(FileStatus status) throws IOException{ ImmutableRangeMap<Long,BlockLocation> blockMap = blockMapMap.get(status.getPath()); - if(blockMap == null){ + if (blockMap == null) { blockMap = buildBlockMap(status); } return blockMap; @@ -194,9 +196,9 @@ public class BlockMapBuilder { // For each host in the current block location, add the intersecting bytes to the corresponding endpoint for (String host : hosts) { DrillbitEndpoint endpoint = getDrillBitEndpoint(host); - if(endpoint != null){ + if (endpoint != null) { endpointByteMap.add(endpoint, bytes); - }else{ + } else { logger.debug("Failure finding Drillbit running on host {}. Skipping affinity to that host.", host); } } @@ -226,4 +228,5 @@ public class BlockMapBuilder { watch.stop(); logger.debug("Took {} ms to build endpoint map", watch.elapsed(TimeUnit.MILLISECONDS)); } + } http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/676f5df6/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/local/LocalPStore.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/local/LocalPStore.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/local/LocalPStore.java index afaaad2..35e4aea 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/local/LocalPStore.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/local/LocalPStore.java @@ -45,7 +45,7 @@ public class LocalPStore<V> implements PStore<V>{ public LocalPStore(File base, PStoreConfig<V> config) { super(); this.basePath = new File(base, config.getName()); - if(!basePath.exists()){ + if (!basePath.exists()) { basePath.mkdirs(); } this.config = config; @@ -54,10 +54,12 @@ public class LocalPStore<V> implements PStore<V>{ @Override public Iterator<Entry<String, V>> iterator() { String[] f = basePath.list(); - if(f == null) return Collections.emptyIterator(); + if (f == null) { + return Collections.emptyIterator(); + } List<String> files = Lists.newArrayList(); - for(String s : f){ - if(s.endsWith(SUFFIX)){ + for (String s : f) { + if (s.endsWith(SUFFIX)) { files.add(s.substring(0, s.length() - SUFFIX.length())); } } @@ -81,42 +83,42 @@ public class LocalPStore<V> implements PStore<V>{ @Override public V get(String key) { - try(InputStream is = new FileInputStream(p(key))){ + try (InputStream is = new FileInputStream(p(key))) { return config.getSerializer().deserialize(IOUtils.toByteArray(is)); - }catch(IOException e){ + } catch (IOException e) { throw new RuntimeException(e); } } @Override public void put(String key, V value) { - try(OutputStream os = new FileOutputStream(p(key))){ + try (OutputStream os = new FileOutputStream(p(key))) { IOUtils.write(config.getSerializer().serialize(value), os); - }catch(IOException e){ + } catch (IOException e) { throw new RuntimeException(e); } } @Override public boolean putIfAbsent(String key, V value) { - try{ + try { File f = p(key); - if(f.exists()){ + if (f.exists()) { return false; - }else{ + } else { put(key, value); return true; } - }catch(IOException e){ + } catch (IOException e) { throw new RuntimeException(e); } } @Override public void delete(String key) { - try{ + try { p(key).delete(); - }catch(IOException e){ + } catch (IOException e) { throw new RuntimeException(e); } } @@ -148,12 +150,10 @@ public class LocalPStore<V> implements PStore<V>{ keys.remove(); } - - private class DeferredEntry implements Entry<String, V>{ + private class DeferredEntry implements Entry<String, V> { private String name; - public DeferredEntry(String name) { super(); this.name = name; @@ -176,4 +176,5 @@ public class LocalPStore<V> implements PStore<V>{ } } + } http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/676f5df6/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/local/LocalPStoreProvider.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/local/LocalPStoreProvider.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/local/LocalPStoreProvider.java index 5d97b1b..95fcf14 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/local/LocalPStoreProvider.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/local/LocalPStoreProvider.java @@ -43,7 +43,7 @@ public class LocalPStoreProvider implements PStoreProvider{ public LocalPStoreProvider(DrillConfig config) { path = new File(config.getString(ExecConstants.SYS_STORE_PROVIDER_LOCAL_PATH)); enableWrite = config.getBoolean(ExecConstants.SYS_STORE_PROVIDER_LOCAL_ENABLE_WRITE); - if(!enableWrite){ + if (!enableWrite) { pstores = Maps.newConcurrentMap(); } } @@ -58,12 +58,14 @@ public class LocalPStoreProvider implements PStoreProvider{ @Override public <V> PStore<V> getPStore(PStoreConfig<V> storeConfig) throws IOException { - if(enableWrite){ + if (enableWrite) { return new LocalPStore<V>(path, storeConfig); - }else{ + } else { PStore<V> p = new NoWriteLocalPStore<V>(); PStore<?> p2 = pstores.putIfAbsent(storeConfig, p); - if(p2 != null) return (PStore<V>) p2; + if(p2 != null) { + return (PStore<V>) p2; + } return p; } } http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/676f5df6/exec/java-exec/src/main/java/org/apache/drill/exec/store/text/DrillTextRecordWriter.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/text/DrillTextRecordWriter.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/text/DrillTextRecordWriter.java index b713a0c..31b1fbe 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/text/DrillTextRecordWriter.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/text/DrillTextRecordWriter.java @@ -51,7 +51,7 @@ public class DrillTextRecordWriter extends StringOutputRecordWriter { private boolean fRecordStarted = false; // true once the startRecord() is called until endRecord() is called private StringBuilder currentRecord; // contains the current record separated by field delimiter - public DrillTextRecordWriter(BufferAllocator allocator){ + public DrillTextRecordWriter(BufferAllocator allocator) { super(allocator); } @@ -97,16 +97,18 @@ public class DrillTextRecordWriter extends StringOutputRecordWriter { @Override public void startRecord() throws IOException { - if (fRecordStarted) + if (fRecordStarted) { throw new IOException("Previous record is not written completely"); + } fRecordStarted = true; } @Override public void endRecord() throws IOException { - if (!fRecordStarted) + if (!fRecordStarted) { throw new IOException("No record is in writing"); + } // remove the extra delimiter at the end currentRecord.deleteCharAt(currentRecord.length()-fieldDelimiter.length()); @@ -165,4 +167,5 @@ public class DrillTextRecordWriter extends StringOutputRecordWriter { throw ex; } } -} \ No newline at end of file + +} http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/676f5df6/exec/java-exec/src/main/java/org/apache/drill/exec/vector/BaseDataValueVector.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/BaseDataValueVector.java b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/BaseDataValueVector.java index 94e8300..bc3edaa 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/BaseDataValueVector.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/BaseDataValueVector.java @@ -66,11 +66,11 @@ public abstract class BaseDataValueVector extends BaseValueVector{ @Override - public DrillBuf[] getBuffers(boolean clear){ + public DrillBuf[] getBuffers(boolean clear) { DrillBuf[] out; - if(valueCount == 0){ + if (valueCount == 0) { out = new DrillBuf[0]; - }else{ + } else { out = new DrillBuf[]{data}; if (clear) { data.readerIndex(0); @@ -84,7 +84,9 @@ public abstract class BaseDataValueVector extends BaseValueVector{ } public int getBufferSize() { - if(valueCount == 0) return 0; + if (valueCount == 0) { + return 0; + } return data.writerIndex(); } @@ -92,11 +94,11 @@ public abstract class BaseDataValueVector extends BaseValueVector{ public abstract SerializedField getMetadata(); @Override - public DrillBuf getData(){ + public DrillBuf getData() { return data; } - public long getDataAddr(){ + public long getDataAddr() { return data.memoryAddress(); } @@ -105,6 +107,4 @@ public abstract class BaseDataValueVector extends BaseValueVector{ return Iterators.emptyIterator(); } - - } http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/676f5df6/exec/java-exec/src/main/java/org/apache/drill/exec/vector/BitVector.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/BitVector.java b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/BitVector.java index a28f919..6542fe7 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/BitVector.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/BitVector.java @@ -67,7 +67,9 @@ public final class BitVector extends BaseDataValueVector implements FixedWidthVe } public void allocateNew() { - if(!allocateNewSafe()) throw new OutOfMemoryRuntimeException(); + if (!allocateNewSafe()) { + throw new OutOfMemoryRuntimeException(); + } } public boolean allocateNewSafe() { @@ -84,7 +86,9 @@ public final class BitVector extends BaseDataValueVector implements FixedWidthVe valueCapacity = allocationValueCount; int valueSize = getSizeFromCount(allocationValueCount); data = allocator.buffer(valueSize); - if(data == null) return false; + if (data == null) { + return false; + } zeroVector(); return true; } @@ -125,8 +129,8 @@ public final class BitVector extends BaseDataValueVector implements FixedWidthVe this.mutator.set(outIndex, from.accessor.get(inIndex)); } - public boolean copyFromSafe(int inIndex, int outIndex, BitVector from){ - if(outIndex >= this.getValueCapacity()) { + public boolean copyFromSafe(int inIndex, int outIndex, BitVector from) { + if (outIndex >= this.getValueCapacity()) { decrementAllocationMonitor(); return false; } @@ -154,10 +158,10 @@ public final class BitVector extends BaseDataValueVector implements FixedWidthVe return new Accessor(); } - public TransferPair getTransferPair(){ + public TransferPair getTransferPair() { return new TransferImpl(getField()); } - public TransferPair getTransferPair(FieldReference ref){ + public TransferPair getTransferPair(FieldReference ref) { return new TransferImpl(getField().clone(ref)); } @@ -195,15 +199,15 @@ public final class BitVector extends BaseDataValueVector implements FixedWidthVe for (int i = 0; i < byteSize - 1; i++) { target.data.setByte(i, (((this.data.getByte(firstByte + i) & 0xFF) >>> offset) + (this.data.getByte(firstByte + i + 1) << (8 - offset)))); } - if (length % 8 != 0) + if (length % 8 != 0) { target.data.setByte(byteSize - 1, ((this.data.getByte(firstByte + byteSize - 1) & 0xFF) >>> offset)); - else + } else { target.data.setByte(byteSize - 1, (((this.data.getByte(firstByte + byteSize - 1) & 0xFF) >>> offset) + (this.data.getByte(firstByte + byteSize) << (8 - offset)))); + } } } - private class TransferImpl implements TransferPair { BitVector to; @@ -260,7 +264,7 @@ public final class BitVector extends BaseDataValueVector implements FixedWidthVe return Long.bitCount(b & (1L << bitIndex)); } - public boolean isNull(int index){ + public boolean isNull(int index) { return false; } @@ -381,4 +385,5 @@ public final class BitVector extends BaseDataValueVector implements FixedWidthVe } } -} \ No newline at end of file + +} http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/676f5df6/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/AbstractContainerVector.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/AbstractContainerVector.java b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/AbstractContainerVector.java index a6df3a3..096db6e 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/AbstractContainerVector.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/AbstractContainerVector.java @@ -33,10 +33,10 @@ public abstract class AbstractContainerVector implements ValueVector{ public abstract <T extends ValueVector> T get(String name, Class<T> clazz); public abstract int size(); - protected <T extends ValueVector> T typeify(ValueVector v, Class<T> clazz){ - if(clazz.isAssignableFrom(v.getClass())){ + protected <T extends ValueVector> T typeify(ValueVector v, Class<T> clazz) { + if (clazz.isAssignableFrom(v.getClass())) { return (T) v; - }else{ + } else { throw new IllegalStateException(String.format("Vector requested [%s] was different than type stored [%s]. Drill doesn't yet support hetergenous types.", clazz.getSimpleName(), v.getClass().getSimpleName())); } } @@ -45,10 +45,11 @@ public abstract class AbstractContainerVector implements ValueVector{ public abstract VectorWithOrdinal getVectorWithOrdinal(String name); - public TypedFieldId getFieldIdIfMatches(TypedFieldId.Builder builder, boolean addToBreadCrumb, PathSegment seg) { if (seg == null) { - if(addToBreadCrumb) builder.intermediateType(this.getField().getType()); + if (addToBreadCrumb) { + builder.intermediateType(this.getField().getType()); + } return builder.finalType(this.getField().getType()).build(); } @@ -72,7 +73,9 @@ public abstract class AbstractContainerVector implements ValueVector{ } VectorWithOrdinal vord = getVectorWithOrdinal(seg.isArray() ? null : seg.getNameSegment().getPath()); - if (vord == null) return null; + if (vord == null) { + return null; + } ValueVector v = vord.vector; if (addToBreadCrumb) { @@ -86,7 +89,9 @@ public abstract class AbstractContainerVector implements ValueVector{ return c.getFieldIdIfMatches(builder, addToBreadCrumb, seg.getChild()); } else { if (seg.isNamed()) { - if(addToBreadCrumb) builder.intermediateType(v.getField().getType()); + if(addToBreadCrumb) { + builder.intermediateType(v.getField().getType()); + } builder.finalType(v.getField().getType()); } else { builder.finalType(v.getField().getType().toBuilder().setMode(DataMode.OPTIONAL).build()); @@ -116,8 +121,9 @@ public abstract class AbstractContainerVector implements ValueVector{ this.getField().getType().getMode() == DataMode.REPEATED)) { // Use Repeated scalar type instead of Required List. VectorWithOrdinal vord = getVectorWithOrdinal(null); ValueVector v = vord.vector; - if (! (v instanceof AbstractContainerVector)) + if (! (v instanceof AbstractContainerVector)) { return v.getField().getType(); + } } else if (this.getField().getType().getMinorType() == MinorType.MAP && this.getField().getType().getMode() == DataMode.REPEATED) { // Use Required Map return this.getField().getType().toBuilder().setMode(DataMode.REQUIRED).build(); @@ -126,7 +132,7 @@ public abstract class AbstractContainerVector implements ValueVector{ return this.getField().getType(); } - protected boolean supportsDirectRead(){ + protected boolean supportsDirectRead() { return false; } @@ -134,10 +140,10 @@ public abstract class AbstractContainerVector implements ValueVector{ final ValueVector vector; final int ordinal; - public VectorWithOrdinal(ValueVector v, int ordinal){ + public VectorWithOrdinal(ValueVector v, int ordinal) { this.vector = v; this.ordinal = ordinal; } } -} +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/676f5df6/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/MapVector.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/MapVector.java b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/MapVector.java index 85067a1..037f1c7 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/MapVector.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/MapVector.java @@ -62,17 +62,17 @@ public class MapVector extends AbstractContainerVector { private MaterializedField field; private int valueCount; - public MapVector(String path, BufferAllocator allocator){ + public MapVector(String path, BufferAllocator allocator) { this.field = MaterializedField.create(SchemaPath.getSimplePath(path), TYPE); this.allocator = allocator; } - public MapVector(MaterializedField field, BufferAllocator allocator){ + public MapVector(MaterializedField field, BufferAllocator allocator) { this.field = field; this.allocator = allocator; } @Override - public int size(){ + public int size() { return vectors.size(); } @@ -95,15 +95,15 @@ public class MapVector extends AbstractContainerVector { transient private MapTransferPair ephPair; transient private MapSingleCopier ephPair2; - public boolean copyFromSafe(int fromIndex, int thisIndex, MapVector from){ - if(ephPair == null || ephPair.from != from){ + public boolean copyFromSafe(int fromIndex, int thisIndex, MapVector from) { + if(ephPair == null || ephPair.from != from) { ephPair = (MapTransferPair) from.makeTransferPair(this); } return ephPair.copyValueSafe(fromIndex, thisIndex); } - public boolean copyFromSafe(int fromSubIndex, int thisIndex, RepeatedMapVector from){ - if(ephPair2 == null || ephPair2.from != from){ + public boolean copyFromSafe(int fromSubIndex, int thisIndex, RepeatedMapVector from) { + if(ephPair2 == null || ephPair2.from != from) { ephPair2 = from.makeSingularCopier(this); } return ephPair2.copySafe(fromSubIndex, thisIndex); @@ -112,8 +112,7 @@ public class MapVector extends AbstractContainerVector { @Override public <T extends ValueVector> T addOrGet(String name, MajorType type, Class<T> clazz) { ValueVector v = vectors.get(name); - - if(v == null){ + if (v == null) { v = TypeHelper.getNewVector(field.getPath(), name, allocator, type); Preconditions.checkNotNull(v, String.format("Failure to create vector of type %s.", type)); put(name, v); @@ -122,9 +121,9 @@ public class MapVector extends AbstractContainerVector { } - protected void put(String name, ValueVector vv){ + protected void put(String name, ValueVector vv) { int ordinal = vectors.size(); - if(vectors.put(name, vv) != null){ + if (vectors.put(name, vv) != null) { throw new IllegalStateException(); } vectorIds.put(name, new VectorWithOrdinal(vv, ordinal)); @@ -138,19 +137,23 @@ public class MapVector extends AbstractContainerVector { return true; } - public Iterator<String> fieldNameIterator(){ + public Iterator<String> fieldNameIterator() { return vectors.keySet().iterator(); } @Override public void allocateNew() throws OutOfMemoryRuntimeException { - if(!allocateNewSafe()) throw new OutOfMemoryRuntimeException(); + if (!allocateNewSafe()) { + throw new OutOfMemoryRuntimeException(); + } } @Override public boolean allocateNewSafe() { - for(ValueVector v : vectors.values()){ - if(!v.allocateNewSafe()) return false; + for (ValueVector v : vectors.values()) { + if (!v.allocateNewSafe()) { + return false; + } } return true; } @@ -158,15 +161,19 @@ public class MapVector extends AbstractContainerVector { @Override public <T extends ValueVector> T get(String name, Class<T> clazz) { ValueVector v = vectors.get(name); - if(v == null) throw new IllegalStateException(String.format("Attempting to access invalid map field of name %s.", name)); + if (v == null) { + throw new IllegalStateException(String.format("Attempting to access invalid map field of name %s.", name)); + } return typeify(v, clazz); } @Override public int getBufferSize() { - if(valueCount == 0 || vectors.isEmpty()) return 0; + if (valueCount == 0 || vectors.isEmpty()) { + return 0; + } long buffer = 0; - for(ValueVector v : this){ + for (ValueVector v : this) { buffer += v.getBufferSize(); } @@ -175,7 +182,7 @@ public class MapVector extends AbstractContainerVector { @Override public void close() { - for(ValueVector v : this){ + for (ValueVector v : this) { v.close(); } } @@ -210,11 +217,11 @@ public class MapVector extends AbstractContainerVector { private TransferPair[] pairs; private MapVector to; - public MapTransferPair(SchemaPath path){ + public MapTransferPair(SchemaPath path) { MapVector v = new MapVector(MaterializedField.create(path, TYPE), allocator); pairs = new TransferPair[vectors.size()]; int i =0; - for(Map.Entry<String, ValueVector> e : vectors.entrySet()){ + for (Map.Entry<String, ValueVector> e : vectors.entrySet()) { TransferPair otherSide = e.getValue().getTransferPair(); v.put(e.getKey(), otherSide.getTo()); pairs[i++] = otherSide; @@ -222,14 +229,16 @@ public class MapVector extends AbstractContainerVector { this.to = v; } - public MapTransferPair(MapVector to){ + public MapTransferPair(MapVector to) { this.to = to; pairs = new TransferPair[vectors.size()]; int i =0; - for(Map.Entry<String, ValueVector> e : vectors.entrySet()){ + for (Map.Entry<String, ValueVector> e : vectors.entrySet()) { int preSize = to.vectors.size(); ValueVector v = to.addOrGet(e.getKey(), e.getValue().getField().getType(), e.getValue().getClass()); - if(to.vectors.size() != preSize) v.allocateNew(); + if (to.vectors.size() != preSize) { + v.allocateNew(); + } pairs[i++] = e.getValue().makeTransferPair(v); } } @@ -237,7 +246,7 @@ public class MapVector extends AbstractContainerVector { @Override public void transfer() { - for(TransferPair p : pairs){ + for (TransferPair p : pairs) { p.transfer(); } to.valueCount = valueCount; @@ -251,8 +260,10 @@ public class MapVector extends AbstractContainerVector { @Override public boolean copyValueSafe(int from, int to) { - for(TransferPair p : pairs){ - if(!p.copyValueSafe(from, to)) return false; + for (TransferPair p : pairs) { + if (!p.copyValueSafe(from, to)) { + return false; + } } return true; } @@ -266,7 +277,9 @@ public class MapVector extends AbstractContainerVector { @Override public int getValueCapacity() { - if(this.vectors.isEmpty()) return 0; + if (this.vectors.isEmpty()) { + return 0; + } return vectors.values().iterator().next().getValueCapacity(); } @@ -278,8 +291,8 @@ public class MapVector extends AbstractContainerVector { @Override public DrillBuf[] getBuffers(boolean clear) { List<DrillBuf> bufs = Lists.newArrayList(); - for(ValueVector v : vectors.values()){ - for(DrillBuf b : v.getBuffers(clear)){ + for (ValueVector v : vectors.values()) { + for (DrillBuf b : v.getBuffers(clear)) { bufs.add(b); } } @@ -296,12 +309,11 @@ public class MapVector extends AbstractContainerVector { MaterializedField fieldDef = MaterializedField.create(fmd); ValueVector v = vectors.get(fieldDef.getLastName()); - if(v == null) { + if (v == null) { // if we arrive here, we didn't have a matching vector. - v = TypeHelper.getNewVector(fieldDef, allocator); } - if (fmd.getValueCount() == 0){ + if (fmd.getValueCount() == 0) { v.clear(); } else { v.load(fmd, buf.slice(bufOffset, fmd.getBufferLength())); @@ -319,7 +331,7 @@ public class MapVector extends AbstractContainerVector { .setValueCount(valueCount); - for(ValueVector v : vectors.values()){ + for(ValueVector v : vectors.values()) { b.addChild(v.getMetadata()); } return b.build(); @@ -335,18 +347,18 @@ public class MapVector extends AbstractContainerVector { @Override public Object getObject(int index) { Map<String, Object> vv = new JsonStringHashMap(); - for(Map.Entry<String, ValueVector> e : vectors.entrySet()){ + for (Map.Entry<String, ValueVector> e : vectors.entrySet()) { ValueVector v = e.getValue(); String k = e.getKey(); Object value = v.getAccessor().getObject(index); - if(value != null){ + if (value != null) { vv.put(k, value); } } return vv; } - public void get(int index, ComplexHolder holder){ + public void get(int index, ComplexHolder holder) { reader.setPosition(index); holder.reader = reader; } @@ -370,10 +382,9 @@ public class MapVector extends AbstractContainerVector { //return new SingleMapReaderImpl(MapVector.this); return reader; } - } - public ValueVector getVectorById(int id){ + public ValueVector getVectorById(int id) { return vectorsById.get(id); } @@ -381,7 +392,7 @@ public class MapVector extends AbstractContainerVector { @Override public void setValueCount(int valueCount) { - for(ValueVector v : vectors.values()){ + for (ValueVector v : vectors.values()) { v.getMutator().setValueCount(valueCount); } MapVector.this.valueCount = valueCount; @@ -400,13 +411,14 @@ public class MapVector extends AbstractContainerVector { @Override public void clear() { valueCount = 0; - for(ValueVector v : vectors.values()){ + for (ValueVector v : vectors.values()) { v.clear();; } } @Override - public VectorWithOrdinal getVectorWithOrdinal(String name){ + public VectorWithOrdinal getVectorWithOrdinal(String name) { return vectorIds.get(name); } + } http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/676f5df6/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/RepeatedListVector.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/RepeatedListVector.java b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/RepeatedListVector.java index dd31316..9870dd5 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/RepeatedListVector.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/RepeatedListVector.java @@ -68,14 +68,14 @@ public class RepeatedListVector extends AbstractContainerVector implements Repea public static MajorType TYPE = Types.repeated(MinorType.LIST); - public RepeatedListVector(MaterializedField field, BufferAllocator allocator){ + public RepeatedListVector(MaterializedField field, BufferAllocator allocator) { this.allocator = allocator; this.offsets = new UInt4Vector(null, allocator); this.field = field; } @Override - public int size(){ + public int size() { return vector != null ? 1 : 0; } @@ -93,36 +93,40 @@ public class RepeatedListVector extends AbstractContainerVector implements Repea return primitiveVectors; } - public RepeatedListVector(SchemaPath path, BufferAllocator allocator){ + public RepeatedListVector(SchemaPath path, BufferAllocator allocator) { this(MaterializedField.create(path, TYPE), allocator); } transient private RepeatedListTransferPair ephPair; - public boolean copyFromSafe(int fromIndex, int thisIndex, RepeatedListVector from){ - if(ephPair == null || ephPair.from != from){ + public boolean copyFromSafe(int fromIndex, int thisIndex, RepeatedListVector from) { + if(ephPair == null || ephPair.from != from) { ephPair = (RepeatedListTransferPair) from.makeTransferPair(this); } return ephPair.copyValueSafe(fromIndex, thisIndex); } - public Mutator getMutator(){ + public Mutator getMutator() { return mutator; } @Override public void allocateNew() throws OutOfMemoryRuntimeException { - if(!allocateNewSafe()) throw new OutOfMemoryRuntimeException(); + if (!allocateNewSafe()) { + throw new OutOfMemoryRuntimeException(); + } } @Override public boolean allocateNewSafe() { - if(!offsets.allocateNewSafe()) return false; + if (!offsets.allocateNewSafe()) { + return false; + } offsets.zeroVector(); - if(vector != null){ + if (vector != null) { return vector.allocateNewSafe(); - }else{ + } else { return true; } @@ -134,13 +138,15 @@ public class RepeatedListVector extends AbstractContainerVector implements Repea offsets.getMutator().set(index+1, offsets.getAccessor().get(index)); } - public int add(int index){ + public int add(int index) { int endOffset = index+1; int currentChildOffset = offsets.getAccessor().get(endOffset); int newChildOffset = currentChildOffset + 1; boolean success = offsets.getMutator().setSafe(endOffset, newChildOffset); lastSet = index; - if(!success) return -1; + if (!success) { + return -1; + } // this is done at beginning so return the currentChildOffset, not the new offset. return currentChildOffset; @@ -152,7 +158,7 @@ public class RepeatedListVector extends AbstractContainerVector implements Repea populateEmpties(groupCount); offsets.getMutator().setValueCount(groupCount+1); - if(vector != null){ + if (vector != null) { int valueCount = offsets.getAccessor().get(groupCount); vector.getMutator().setValueCount(valueCount); } @@ -190,7 +196,7 @@ public class RepeatedListVector extends AbstractContainerVector implements Repea public Object getObject(int index) { List<Object> l = new JsonStringArrayList(); int end = offsets.getAccessor().get(index+1); - for(int i = offsets.getAccessor().get(index); i < end; i++){ + for (int i = offsets.getAccessor().get(index); i < end; i++) { l.add(vector.getAccessor().getObject(i)); } return l; @@ -201,31 +207,30 @@ public class RepeatedListVector extends AbstractContainerVector implements Repea return offsets.getAccessor().getValueCount() - 1; } - public void get(int index, RepeatedListHolder holder){ + public void get(int index, RepeatedListHolder holder) { assert index <= getValueCapacity(); holder.start = offsets.getAccessor().get(index); holder.end = offsets.getAccessor().get(index+1); } - public void get(int index, ComplexHolder holder){ + public void get(int index, ComplexHolder holder) { FieldReader reader = getReader(); reader.setPosition(index); holder.reader = reader; } - public void get(int index, int arrayIndex, ComplexHolder holder){ + public void get(int index, int arrayIndex, ComplexHolder holder) { RepeatedListHolder h = new RepeatedListHolder(); get(index, h); int offset = h.start + arrayIndex; - if(offset >= h.end){ + if (offset >= h.end) { holder.reader = NullReader.INSTANCE; - }else{ + } else { FieldReader r = vector.getAccessor().getReader(); r.setPosition(offset); holder.reader = r; } - } @Override @@ -256,14 +261,18 @@ public class RepeatedListVector extends AbstractContainerVector implements Repea @Override public void close() { offsets.close(); - if(vector != null) vector.close(); + if (vector != null) { + vector.close(); + } } @Override public void clear() { lastSet = 0; offsets.clear(); - if(vector != null) vector.clear(); + if (vector != null) { + vector.clear(); + } } @Override @@ -276,22 +285,21 @@ public class RepeatedListVector extends AbstractContainerVector implements Repea return new RepeatedListTransferPair(field.getPath()); } - public class RepeatedListTransferPair implements TransferPair{ private final RepeatedListVector from = RepeatedListVector.this; private final RepeatedListVector to; private final TransferPair vectorTransfer; - private RepeatedListTransferPair(RepeatedListVector to){ + private RepeatedListTransferPair(RepeatedListVector to) { this.to = to; - if(to.vector == null){ + if (to.vector == null) { to.vector = to.addOrGet(null, vector.getField().getType(), vector.getClass()); to.vector.allocateNew(); } this.vectorTransfer = vector.makeTransferPair(to.vector); } - private RepeatedListTransferPair(SchemaPath path){ + private RepeatedListTransferPair(SchemaPath path) { this.to = new RepeatedListVector(path, allocator); vectorTransfer = vector.getTransferPair(); this.to.vector = vectorTransfer.getTo(); @@ -315,18 +323,20 @@ public class RepeatedListVector extends AbstractContainerVector implements Repea throw new UnsupportedOperationException(); } - @Override public boolean copyValueSafe(int from, int to) { RepeatedListHolder holder = new RepeatedListHolder(); accessor.get(from, holder); int newIndex = this.to.offsets.getAccessor().get(to); //todo: make this a bulk copy. - for(int i = holder.start; i < holder.end; i++, newIndex++){ - if(!vectorTransfer.copyValueSafe(i, newIndex)) return false; + for (int i = holder.start; i < holder.end; i++, newIndex++) { + if (!vectorTransfer.copyValueSafe(i, newIndex)) { + return false; + } + } + if (!this.to.offsets.getMutator().setSafe(to + 1, newIndex)) { + return false; } - if(!this.to.offsets.getMutator().setSafe(to + 1, newIndex)) return false; - this.to.lastSet++; return true; } @@ -335,7 +345,9 @@ public class RepeatedListVector extends AbstractContainerVector implements Repea @Override public TransferPair makeTransferPair(ValueVector to) { - if(!(to instanceof RepeatedListVector ) ) throw new IllegalArgumentException("You can't make a transfer pair from an incompatible ."); + if (!(to instanceof RepeatedListVector ) ) { + throw new IllegalArgumentException("You can't make a transfer pair from an incompatible ."); + } return new RepeatedListTransferPair( (RepeatedListVector) to); } @@ -346,7 +358,9 @@ public class RepeatedListVector extends AbstractContainerVector implements Repea @Override public int getValueCapacity() { - if(vector == null) return offsets.getValueCapacity() - 1; + if (vector == null) { + return offsets.getValueCapacity() - 1; + } return Math.min(offsets.getValueCapacity() - 1, vector.getValueCapacity()); } @@ -360,7 +374,7 @@ public class RepeatedListVector extends AbstractContainerVector implements Repea return ArrayUtils.addAll(offsets.getBuffers(clear), vector.getBuffers(clear)); } - private void setVector(ValueVector v){ + private void setVector(ValueVector v) { field.addChild(v.getField()); this.vector = v; } @@ -372,11 +386,11 @@ public class RepeatedListVector extends AbstractContainerVector implements Repea int bufOffset = offsets.load(metadata.getValueCount()+1, buf); MaterializedField fieldDef = MaterializedField.create(childField); - if(vector == null) { + if (vector == null) { setVector(TypeHelper.getNewVector(fieldDef, allocator)); } - if (childField.getValueCount() == 0){ + if (childField.getValueCount() == 0) { vector.clear(); } else { vector.load(childField, buf.slice(bufOffset, childField.getBufferLength())); @@ -393,9 +407,9 @@ public class RepeatedListVector extends AbstractContainerVector implements Repea .build(); } - private void populateEmpties(int groupCount){ + private void populateEmpties(int groupCount) { int previousEnd = offsets.getAccessor().get(lastSet + 1); - for(int i = lastSet + 2; i <= groupCount; i++){ + for (int i = lastSet + 2; i <= groupCount; i++) { offsets.getMutator().setSafe(i, previousEnd); } lastSet = groupCount - 1; @@ -410,7 +424,7 @@ public class RepeatedListVector extends AbstractContainerVector implements Repea public <T extends ValueVector> T addOrGet(String name, MajorType type, Class<T> clazz) { Preconditions.checkArgument(name == null); - if(vector == null){ + if (vector == null) { vector = TypeHelper.getNewVector(MaterializedField.create(field.getPath().getUnindexedArrayChild(), type), allocator); } return typeify(vector, clazz); @@ -418,7 +432,9 @@ public class RepeatedListVector extends AbstractContainerVector implements Repea @Override public <T extends ValueVector> T get(String name, Class<T> clazz) { - if(name != null) return null; + if (name != null) { + return null; + } return typeify(vector, clazz); } @@ -437,9 +453,10 @@ public class RepeatedListVector extends AbstractContainerVector implements Repea @Override public VectorWithOrdinal getVectorWithOrdinal(String name) { - if(name != null) return null; + if (name != null) { + return null; + } return new VectorWithOrdinal(vector, 0); } - } http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/676f5df6/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/RepeatedMapVector.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/RepeatedMapVector.java b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/RepeatedMapVector.java index df5fdaa..7a7b11d 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/RepeatedMapVector.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/RepeatedMapVector.java @@ -68,7 +68,7 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat private final MaterializedField field; private int lastSet = -1; - public RepeatedMapVector(MaterializedField field, BufferAllocator allocator){ + public RepeatedMapVector(MaterializedField field, BufferAllocator allocator) { this.field = field; this.allocator = allocator; this.offsets = new UInt4Vector(null, allocator); @@ -80,19 +80,19 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat clear(); offsets.allocateNew(parentValueCount+1); offsets.zeroVector(); - for(ValueVector v : vectors.values()){ + for (ValueVector v : vectors.values()) { AllocationHelper.allocatePrecomputedChildCount(v, parentValueCount, 50, childValueCount); } mutator.reset(); accessor.reset(); } - public Iterator<String> fieldNameIterator(){ + public Iterator<String> fieldNameIterator() { return vectors.keySet().iterator(); } @Override - public int size(){ + public int size() { return vectors.size(); } @@ -117,36 +117,38 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat public <T extends ValueVector> T addOrGet(String name, MajorType type, Class<T> clazz) { ValueVector v = vectors.get(name); - if(v == null){ + if (v == null) { v = TypeHelper.getNewVector(field.getPath(), name, allocator, type); Preconditions.checkNotNull(v, String.format("Failure to create vector of type %s.", type)); put(name, v); } return typeify(v, clazz); - } @Override public <T extends ValueVector> T get(String name, Class<T> clazz) { ValueVector v = vectors.get(name); - if(v == null) throw new IllegalStateException(String.format("Attempting to access invalid map field of name %s.", name)); + if (v == null) { + throw new IllegalStateException(String.format("Attempting to access invalid map field of name %s.", name)); + } return typeify(v, clazz); } @Override public int getBufferSize() { - if(accessor.getValueCount() == 0 || vectors.isEmpty()) return 0; + if (accessor.getValueCount() == 0 || vectors.isEmpty()) { + return 0; + } long buffer = offsets.getBufferSize(); - for(ValueVector v : this){ + for (ValueVector v : this) { buffer += v.getBufferSize(); } - return (int) buffer; } @Override public void close() { - for(ValueVector v : this){ + for (ValueVector v : this) { v.close(); } } @@ -171,29 +173,32 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat return new MapTransferPair( (RepeatedMapVector) to); } - MapSingleCopier makeSingularCopier(MapVector to){ + MapSingleCopier makeSingularCopier(MapVector to) { return new MapSingleCopier(to); } - - class MapSingleCopier{ + class MapSingleCopier { private final TransferPair[] pairs; final RepeatedMapVector from = RepeatedMapVector.this; - public MapSingleCopier(MapVector to){ + public MapSingleCopier(MapVector to) { pairs = new TransferPair[vectors.size()]; int i =0; - for(Map.Entry<String, ValueVector> e : vectors.entrySet()){ + for (Map.Entry<String, ValueVector> e : vectors.entrySet()) { int preSize = to.vectors.size(); ValueVector v = to.addOrGet(e.getKey(), e.getValue().getField().getType(), e.getValue().getClass()); - if(to.vectors.size() != preSize) v.allocateNew(); + if (to.vectors.size() != preSize) { + v.allocateNew(); + } pairs[i++] = e.getValue().makeTransferPair(v); } } - public boolean copySafe(int fromSubIndex, int toIndex){ - for(TransferPair p : pairs){ - if(!p.copyValueSafe(fromSubIndex, toIndex)) return false; + public boolean copySafe(int fromSubIndex, int toIndex) { + for (TransferPair p : pairs) { + if (!p.copyValueSafe(fromSubIndex, toIndex)) { + return false; + } } return true; } @@ -206,15 +211,21 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat @Override public void allocateNew() throws OutOfMemoryRuntimeException { - if(!allocateNewSafe()) throw new OutOfMemoryRuntimeException(); + if (!allocateNewSafe()) { + throw new OutOfMemoryRuntimeException(); + } } @Override public boolean allocateNewSafe() { - if(!offsets.allocateNewSafe()) return false; + if (!offsets.allocateNewSafe()) { + return false; + } offsets.zeroVector(); - for(ValueVector v : vectors.values()){ - if(!v.allocateNewSafe()) return false; + for (ValueVector v : vectors.values()) { + if (!v.allocateNewSafe()) { + return false; + } } return true; } @@ -225,11 +236,11 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat private final RepeatedMapVector to; private final RepeatedMapVector from = RepeatedMapVector.this; - public MapTransferPair(SchemaPath path){ + public MapTransferPair(SchemaPath path) { RepeatedMapVector v = new RepeatedMapVector(MaterializedField.create(path, TYPE), allocator); pairs = new TransferPair[vectors.size()]; int i =0; - for(Map.Entry<String, ValueVector> e : vectors.entrySet()){ + for (Map.Entry<String, ValueVector> e : vectors.entrySet()) { TransferPair otherSide = e.getValue().getTransferPair(); v.put(e.getKey(), otherSide.getTo()); pairs[i++] = otherSide; @@ -237,14 +248,16 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat this.to = v; } - public MapTransferPair(RepeatedMapVector to){ + public MapTransferPair(RepeatedMapVector to) { this.to = to; pairs = new TransferPair[vectors.size()]; int i =0; - for(Map.Entry<String, ValueVector> e : vectors.entrySet()){ + for (Map.Entry<String, ValueVector> e : vectors.entrySet()) { int preSize = to.vectors.size(); ValueVector v = to.addOrGet(e.getKey(), e.getValue().getField().getType(), e.getValue().getClass()); - if(preSize != to.vectors.size()) v.allocateNew(); + if (preSize != to.vectors.size()) { + v.allocateNew(); + } pairs[i++] = e.getValue().makeTransferPair(v); } } @@ -253,7 +266,7 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat @Override public void transfer() { offsets.transferTo(to.offsets); - for(TransferPair p : pairs){ + for (TransferPair p : pairs) { p.transfer(); } clear(); @@ -270,12 +283,16 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat accessor.get(from, holder); int newIndex = this.to.offsets.getAccessor().get(to); //todo: make these bulk copies - for(int i = holder.start; i < holder.end; i++, newIndex++){ - for(TransferPair p : pairs){ - if(!p.copyValueSafe(i, newIndex)) return false; + for (int i = holder.start; i < holder.end; i++, newIndex++) { + for (TransferPair p : pairs) { + if (!p.copyValueSafe(i, newIndex)) { + return false; + } } } - if(!this.to.offsets.getMutator().setSafe(to+1, newIndex)) return false; + if (!this.to.offsets.getMutator().setSafe(to+1, newIndex)) { + return false; + } this.to.lastSet++; return true; } @@ -290,8 +307,8 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat transient private MapTransferPair ephPair; - public boolean copyFromSafe(int fromIndex, int thisIndex, RepeatedMapVector from){ - if(ephPair == null || ephPair.from != from){ + public boolean copyFromSafe(int fromIndex, int thisIndex, RepeatedMapVector from) { + if (ephPair == null || ephPair.from != from) { ephPair = (MapTransferPair) from.makeTransferPair(this); } return ephPair.copyValueSafe(fromIndex, thisIndex); @@ -311,8 +328,8 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat public DrillBuf[] getBuffers(boolean clear) { List<DrillBuf> bufs = Lists.newArrayList(offsets.getBuffers(clear)); - for(ValueVector v : vectors.values()){ - for(DrillBuf b : v.getBuffers(clear)){ + for (ValueVector v : vectors.values()) { + for (DrillBuf b : v.getBuffers(clear)) { bufs.add(b); } } @@ -328,14 +345,12 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat for (SerializedField fmd : fields) { MaterializedField fieldDef = MaterializedField.create(fmd); - ValueVector v = vectors.get(fieldDef.getLastName()); - if(v == null) { + if (v == null) { // if we arrive here, we didn't have a matching vector. - v = TypeHelper.getNewVector(fieldDef, allocator); } - if (fmd.getValueCount() == 0){ + if (fmd.getValueCount() == 0) { v.clear(); } else { v.load(fmd, buf.slice(bufOffset, fmd.getBufferLength())); @@ -351,16 +366,15 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat .getAsBuilder() // .setBufferLength(getBufferSize()) // .setValueCount(accessor.getValueCount()); - - for(ValueVector v : vectors.values()){ + for (ValueVector v : vectors.values()) { b.addChild(v.getMetadata()); } return b.build(); } - protected void put(String name, ValueVector vv){ + protected void put(String name, ValueVector vv) { int ordinal = vectors.size(); - if(vectors.put(name, vv) != null){ + if (vectors.put(name, vv) != null) { throw new IllegalStateException(); } vectorIds.put(name, new VectorWithOrdinal(vv, ordinal)); @@ -368,7 +382,6 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat field.addChild(vv.getField()); } - @Override public Mutator getMutator() { return mutator; @@ -380,13 +393,13 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat public Object getObject(int index) { List<Object> l = new JsonStringArrayList(); int end = offsets.getAccessor().get(index+1); - for(int i = offsets.getAccessor().get(index); i < end; i++){ + for (int i = offsets.getAccessor().get(index); i < end; i++) { Map<String, Object> vv = Maps.newLinkedHashMap(); - for(Map.Entry<String, ValueVector> e : vectors.entrySet()){ + for (Map.Entry<String, ValueVector> e : vectors.entrySet()) { ValueVector v = e.getValue(); String k = e.getKey(); Object value = v.getAccessor().getObject(i); - if(value != null){ + if (value != null) { vv.put(k,value); } } @@ -400,26 +413,26 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat return offsets.getAccessor().getValueCount() - 1; } - public void get(int index, RepeatedMapHolder holder){ + public void get(int index, RepeatedMapHolder holder) { assert index <= getValueCapacity(); holder.start = offsets.getAccessor().get(index); holder.end = offsets.getAccessor().get(index+1); } - public void get(int index, ComplexHolder holder){ + public void get(int index, ComplexHolder holder) { FieldReader reader = getReader(); reader.setPosition(index); holder.reader = reader; } - public void get(int index, int arrayIndex, ComplexHolder holder){ + public void get(int index, int arrayIndex, ComplexHolder holder) { RepeatedMapHolder h = new RepeatedMapHolder(); get(index, h); int offset = h.start + arrayIndex; - if(offset >= h.end){ + if (offset >= h.end) { holder.reader = NullReader.INSTANCE; - }else{ + } else { reader.setSinglePosition(index, arrayIndex); holder.reader = reader; } @@ -445,9 +458,9 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat } } - private void populateEmpties(int groupCount){ + private void populateEmpties(int groupCount) { int previousEnd = offsets.getAccessor().get(lastSet + 1); - for(int i = lastSet + 2; i <= groupCount; i++){ + for (int i = lastSet + 2; i <= groupCount; i++) { offsets.getMutator().setSafe(i, previousEnd); } lastSet = groupCount - 1; @@ -461,10 +474,12 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat offsets.getMutator().set(index+1, offsets.getAccessor().get(index)); } - public int add(int index){ + public int add(int index) { int nextOffset = offsets.getAccessor().get(index+1); boolean success = offsets.getMutator().setSafe(index+1, nextOffset+1); - if(!success) return -1; + if (!success) { + return -1; + } return nextOffset; } @@ -473,7 +488,7 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat populateEmpties(groupCount); offsets.getMutator().setValueCount(groupCount+1); int valueCount = offsets.getAccessor().get(groupCount); - for(ValueVector v : vectors.values()){ + for (ValueVector v : vectors.values()) { v.getMutator().setValueCount(valueCount); } } @@ -508,7 +523,7 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat public void clear() { lastSet = 0; offsets.clear(); - for(ValueVector v : vectors.values()){ + for(ValueVector v : vectors.values()) { v.clear();; } } @@ -518,7 +533,6 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat throw new UnsupportedOperationException(); } - @Override public VectorWithOrdinal getVectorWithOrdinal(String name) { return vectorIds.get(name); http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/676f5df6/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/StateTool.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/StateTool.java b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/StateTool.java index 99f6010..f5ed3a0 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/StateTool.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/StateTool.java @@ -22,10 +22,13 @@ import java.util.Arrays; public class StateTool { static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(StateTool.class); - public static <T extends Enum<?>> void check(T currentState, T... expectedStates){ - for(T s : expectedStates){ - if(s == currentState) return; + public static <T extends Enum<?>> void check(T currentState, T... expectedStates) { + for (T s : expectedStates) { + if (s == currentState) { + return; + } } throw new IllegalArgumentException(String.format("Expected to be in one of these states %s but was actuall in state %s", Arrays.toString(expectedStates), currentState)); } + } http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/676f5df6/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/fn/JsonReader.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/fn/JsonReader.java b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/fn/JsonReader.java index eab39b5..4e12b8b 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/fn/JsonReader.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/fn/JsonReader.java @@ -86,19 +86,21 @@ public class JsonReader { } private boolean containsStar() { - for (SchemaPath expr : this.columns){ - if (expr.getRootSegment().getPath().equals("*")) + for (SchemaPath expr : this.columns) { + if (expr.getRootSegment().getPath().equals("*")) { return true; + } } return false; } - private boolean fieldSelected(SchemaPath field){ - if (starRequested) + private boolean fieldSelected(SchemaPath field) { + if (starRequested) { return true; + } int i = 0; - for (SchemaPath expr : this.columns){ - if ( expr.contains(field)){ + for (SchemaPath expr : this.columns) { + if ( expr.contains(field)) { columnsFound[i] = true; return true; } @@ -122,7 +124,9 @@ public class JsonReader { parser = factory.createJsonParser(reader); reader.mark(MAX_RECORD_SIZE); JsonToken t = parser.nextToken(); - while(!parser.hasCurrentToken()) t = parser.nextToken(); + while (!parser.hasCurrentToken()) { + t = parser.nextToken(); + } switch (t) { @@ -146,7 +150,7 @@ public class JsonReader { } private void consumeEntireNextValue(JsonParser parser) throws IOException { - switch(parser.nextToken()){ + switch (parser.nextToken()) { case START_ARRAY: case START_OBJECT: int arrayAndObjectCounter = 1; @@ -176,9 +180,11 @@ public class JsonReader { private void writeData(MapWriter map) throws JsonParseException, IOException { // map.start(); - outside: while(true){ + outside: while(true) { JsonToken t = parser.nextToken(); - if(t == JsonToken.NOT_AVAILABLE || t == JsonToken.END_OBJECT) return; + if (t == JsonToken.NOT_AVAILABLE || t == JsonToken.END_OBJECT) { + return; + } assert t == JsonToken.FIELD_NAME : String.format("Expected FIELD_NAME but got %s.", t.name()); final String fieldName = parser.getText(); @@ -193,7 +199,7 @@ public class JsonReader { continue outside; } - switch(parser.nextToken()){ + switch(parser.nextToken()) { case START_ARRAY: writeData(map.list(fieldName)); break; @@ -258,13 +264,12 @@ public class JsonReader { throw new IllegalStateException("Unexpected token " + parser.getCurrentToken()); } - } map.end(); } - private void ensure(int length){ + private void ensure(int length) { workBuf = workBuf.reallocIfNeeded(length); } @@ -295,9 +300,9 @@ public class JsonReader { private void writeData(ListWriter list) throws JsonParseException, IOException { list.start(); - outside: while(true){ + outside: while (true) { - switch(parser.nextToken()){ + switch (parser.nextToken()) { case START_ARRAY: writeData(list.list()); break; @@ -364,7 +369,6 @@ public class JsonReader { } list.end(); - } public DrillBuf getWorkBuf() { http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/676f5df6/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/fn/JsonReaderWithState.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/fn/JsonReaderWithState.java b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/fn/JsonReaderWithState.java index 0636db6..ef995f8 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/fn/JsonReaderWithState.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/fn/JsonReaderWithState.java @@ -57,9 +57,9 @@ public class JsonReaderWithState { public WriteState write(ComplexWriter writer) throws JsonParseException, IOException { if (reader == null) { reader = splitter.getNextReader(); - if (reader == null) + if (reader == null) { return WriteState.NO_MORE; - + } } jsonReader.write(reader, writer); @@ -72,4 +72,5 @@ public class JsonReaderWithState { return WriteState.WRITE_SUCCEED; } } + }