} else if (value instanceof boolean[]) { for (boolean v : (boolean[]) value) { writer.list(tagName).bit().writeBit(v ? 1 : 0); ListWriter listWriter = writer.list(tagName); for (byte v : bytes) { listWriter.integer().writeInt(v); listWriter.integer().writeInt(v); listWriter.integer().writeInt(v); listWriter.bigInt().writeBigInt(v); listWriter.float4().writeFloat4(v); listWriter.float8().writeFloat8(v); listWriter.float8().writeFloat8(v.doubleValue()); writeString(listWriter.varChar(), v); writeString(listWriter.varChar(), v.toString()); for (Object v : (List<?>) value) { if (v instanceof KeyValuePair) { listWriter.map().start(); writeString(listWriter.map().varChar("Key"), ((KeyValuePair) v).getKey()); writeString(listWriter.map().varChar("Value"), ((KeyValuePair) v).getValue().toString());
@Override public void writeDate(boolean isNull) throws IOException { DateWriter dt = writer.date(); if(!isNull){ work.prepareVarCharHolder(parser.getValueAsString(), varchar); dt.writeDate(StringFunctionHelpers.getDate(varchar.buffer, varchar.start, varchar.end)); } }
private void writeData(ListWriter list) throws IOException { list.startList(); outside: while (true) { try { switch (parser.nextToken()) { case START_ARRAY: writeData(list.list()); break; case START_OBJECT: if (!writeListDataIfTyped(list)) { writeData(list.map(), FieldSelection.ALL_VALID, false); list.bit().writeBit(0); break; list.bit().writeBit(1); break; .build(logger); case VALUE_NUMBER_FLOAT: list.float8().writeFloat8(parser.getDoubleValue()); break; case VALUE_NUMBER_INT: if (this.readNumbersAsDouble) { list.float8().writeFloat8(parser.getDoubleValue()); } else { list.bigInt().writeBigInt(parser.getLongValue()); list.endList();
case INT32: { if (type.getOriginalType() == null) { IntWriter writer = type.getRepetition() == Repetition.REPEATED ? mapWriter.list(name).integer() : mapWriter.integer(name); return new DrillIntConverter(writer); case INT_16 : case INT_32 : { IntWriter writer = type.getRepetition() == Repetition.REPEATED ? mapWriter.list(name).integer() : mapWriter.integer(name); return new DrillIntConverter(writer); ParquetReaderUtility.checkDecimalTypeEnabled(options); VarDecimalWriter writer = type.getRepetition() == Repetition.REPEATED ? mapWriter.list(name).varDecimal(type.getDecimalMetadata().getScale(), type.getDecimalMetadata().getPrecision()) : mapWriter.varDecimal(name, type.getDecimalMetadata().getScale(), type.getDecimalMetadata().getPrecision()); return new DrillVarDecimalConverter(writer, type.getDecimalMetadata().getPrecision(), DateWriter writer = type.getRepetition() == Repetition.REPEATED ? mapWriter.list(name).date() : mapWriter.date(name); switch(containsCorruptedDates) { case META_SHOWS_CORRUPTION: TimeWriter writer = type.getRepetition() == Repetition.REPEATED ? mapWriter.list(name).time() : mapWriter.time(name); return new DrillTimeConverter(writer); BigIntWriter writer = type.getRepetition() == Repetition.REPEATED ? mapWriter.list(name).bigInt() : mapWriter.bigInt(name); return new DrillBigIntConverter(writer); case INT_64 : case TIMESTAMP_MICROS: { BigIntWriter writer = type.getRepetition() == Repetition.REPEATED ? mapWriter.list(name).bigInt() : mapWriter.bigInt(name);
case TINYINT: if (repeated) { fieldReader.copyAsValue(mapWriter.list(MappifyUtility.fieldValue).tinyInt()); } else { fieldReader.copyAsValue(mapWriter.tinyInt(MappifyUtility.fieldValue)); case SMALLINT: if (repeated) { fieldReader.copyAsValue(mapWriter.list(MappifyUtility.fieldValue).smallInt()); } else { fieldReader.copyAsValue(mapWriter.smallInt(MappifyUtility.fieldValue)); case BIGINT: if (repeated) { fieldReader.copyAsValue(mapWriter.list(MappifyUtility.fieldValue).bigInt()); } else { fieldReader.copyAsValue(mapWriter.bigInt(MappifyUtility.fieldValue)); case INT: if (repeated) { fieldReader.copyAsValue(mapWriter.list(MappifyUtility.fieldValue).integer()); } else { fieldReader.copyAsValue(mapWriter.integer(MappifyUtility.fieldValue)); case UINT1: if (repeated) { fieldReader.copyAsValue(mapWriter.list(MappifyUtility.fieldValue).uInt1()); } else { fieldReader.copyAsValue(mapWriter.uInt1(MappifyUtility.fieldValue));
case TINYINT: if (repeated) { fieldReader.copyAsValue(mapWriter.list(fieldName).tinyInt()); } else { fieldReader.copyAsValue(mapWriter.tinyInt(fieldName)); case SMALLINT: if (repeated) { fieldReader.copyAsValue(mapWriter.list(fieldName).smallInt()); } else { fieldReader.copyAsValue(mapWriter.smallInt(fieldName)); case BIGINT: if (repeated) { fieldReader.copyAsValue(mapWriter.list(fieldName).bigInt()); } else { fieldReader.copyAsValue(mapWriter.bigInt(fieldName)); case INT: if (repeated) { fieldReader.copyAsValue(mapWriter.list(fieldName).integer()); } else { fieldReader.copyAsValue(mapWriter.integer(fieldName)); case UINT1: if (repeated) { fieldReader.copyAsValue(mapWriter.list(fieldName).uInt1()); } else { fieldReader.copyAsValue(mapWriter.uInt1(fieldName));
fieldReader.copyAsValue(listWriter.tinyInt()); break; case SMALLINT: fieldReader.copyAsValue(listWriter.smallInt()); break; case BIGINT: fieldReader.copyAsValue(listWriter.bigInt()); break; case INT: fieldReader.copyAsValue(listWriter.integer()); break; case UINT1: fieldReader.copyAsValue(listWriter.uInt1()); break; case UINT2: fieldReader.copyAsValue(listWriter.uInt2()); break; case UINT4: fieldReader.copyAsValue(listWriter.uInt4()); break; case UINT8: fieldReader.copyAsValue(listWriter.uInt8()); break; case DECIMAL9: fieldReader.copyAsValue(listWriter.decimal9()); break; case DECIMAL18: fieldReader.copyAsValue(listWriter.decimal18()); break;
private static FieldWriter getListWriterForReader(FieldReader reader, ListWriter writer) { switch (reader.getType().getMinorType()) { case TINYINT: return (FieldWriter) writer.tinyInt(); case UINT1: return (FieldWriter) writer.uInt1(); case UINT2: return (FieldWriter) writer.uInt2(); case SMALLINT: return (FieldWriter) writer.smallInt(); case INT: return (FieldWriter) writer.integer(); case UINT4: return (FieldWriter) writer.uInt4(); case FLOAT4: return (FieldWriter) writer.float4(); case TIME: return (FieldWriter) writer.time(); case INTERVALYEAR: return (FieldWriter) writer.intervalYear(); case BIGINT: return (FieldWriter) writer.bigInt(); case UINT8: return (FieldWriter) writer.uInt8(); case FLOAT8: return (FieldWriter) writer.float8(); case DATE: return (FieldWriter) writer.date(); case TIMESTAMP: return (FieldWriter) writer.timeStamp();
@Override public void eval() { Object[] tokens; if (in.isSet == 1) { String inputString = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(in.start, in.end, in.buffer); // Convert the iterable to an array as Janino will not handle generics. tokens = com.google.common.collect.Iterables.toArray(splitter.split(inputString), String.class); } else { tokens = new Object[0]; } org.apache.drill.exec.vector.complex.writer.BaseWriter.ListWriter list = writer.rootAsList(); list.startList(); org.apache.drill.exec.vector.complex.writer.VarCharWriter varCharWriter = list.varChar(); for (Object token : tokens) { final byte[] strBytes = ((String) token).getBytes(com.google.common.base.Charsets.UTF_8); buffer = buffer.reallocIfNeeded(strBytes.length); buffer.setBytes(0, strBytes); varCharWriter.writeVarChar(0, strBytes.length, buffer); } list.endList(); } }
@Override public void eval() { String inputString = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(in.start, in.end, in.buffer); // Convert the iterable to an array as Janino will not handle generics. Object[] tokens = com.google.common.collect.Iterables.toArray(splitter.split(inputString), String.class); org.apache.drill.exec.vector.complex.writer.BaseWriter.ListWriter list = writer.rootAsList(); list.startList(); for (Object token : tokens) { final byte[] strBytes = ((String) token).getBytes(com.google.common.base.Charsets.UTF_8); buffer = buffer.reallocIfNeeded(strBytes.length); buffer.setBytes(0, strBytes); list.varChar().writeVarChar(0, strBytes.length, buffer); } list.endList(); } }
public BitWriter bit(final String name) { return (map != null) ? map.bit(name) : list.bit(); }
public Float4Writer float4(final String name) { return (map != null) ? map.float4(name) : list.float4(); }
public BigIntWriter bigInt(final String name) { return (map != null) ? map.bigInt(name) : list.bigInt(); }
public Float8Writer float8(final String name) { return (map != null) ? map.float8(name) : list.float8(); }
@Override public Decimal18Writer decimal18(String name) { return (map != null) ? map.decimal18(name) : list.decimal18(); }
public void copyAsField(String name, MapWriter writer) { RepeatedDecimal18WriterImpl impl = (RepeatedDecimal18WriterImpl) writer.list(name).decimal18(); impl.vector.copyFromSafe(idx(), impl.idx(), vector); }
public void copyAsField(String name, MapWriter writer) { RepeatedBitWriterImpl impl = (RepeatedBitWriterImpl) writer.list(name).bit(); impl.vector.copyFromSafe(idx(), impl.idx(), vector); }
public void copyAsField(String name, MapWriter writer) { RepeatedDateWriterImpl impl = (RepeatedDateWriterImpl) writer.list(name).date(); impl.vector.copyFromSafe(idx(), impl.idx(), vector); }