@Override public void writeField() throws IOException { if (!reader.isSet()) { addField(fieldId, null); return; } reader.read(holder); // TODO: error check addField(fieldId, reader.readObject().toString()); } }
@Override public boolean getBoolean(int rowOffset) throws InvalidAccessException{ reader.setPosition(rowOffset); return reader.readBoolean(); }
public void eval() { org.apache.arrow.vector.types.Types.MinorType type1; if (input1.isSet()) { type1 = input1.getMinorType(); } else { type1 = org.apache.arrow.vector.types.Types.MinorType.NULL; } org.apache.arrow.vector.types.Types.MinorType type2; if (input2.isSet()) { type2 = input2.getMinorType(); } else { type2 = org.apache.arrow.vector.types.Types.MinorType.NULL; } out.isSet = 1; out.value = com.dremio.exec.expr.fn.impl.UnionFunctions.compareTypes(type1, type2); } }
@Override public double getDouble(int rowOffset) throws InvalidAccessException{ reader.setPosition(rowOffset); return reader.readDouble(); }
@Override public byte[] getBytes(int rowOffset) throws InvalidAccessException{ reader.setPosition(rowOffset); return reader.readByteArray(); }
public static void formatList(FieldReader input, byte[] delimiterArray, OutputStream output) { final MinorType mt = input.getMinorType(); try { JsonWriter jsonWriter = new JsonWriter(output, true, false); while (input.next()) { if (first) { first = false; FieldReader nestedReader = input.reader(); if (nestedReader.isSet()) { switch (nestedReader.getMinorType()) { case FLOAT4: output.write(String.valueOf(nestedReader.readFloat()).getBytes()); break; case FLOAT8: output.write(String.valueOf(nestedReader.readDouble()).getBytes()); break; case INT: output.write(String.valueOf(nestedReader.readInteger()).getBytes()); break; case SMALLINT: output.write(String.valueOf(nestedReader.readShort()).getBytes()); break; case TINYINT: output.write(String.valueOf(nestedReader.readByte()).getBytes()); break; case BIGINT: output.write(String.valueOf(nestedReader.readLong()).getBytes()); break;
@Override public void eval() { if (!in.isSet() || in.readObject() == null) { out.rootAsList(); return; if (in.getMinorType() != org.apache.arrow.vector.types.Types.MinorType.LIST) { throw new java.lang.UnsupportedOperationException( String.format("'sublist' is supported only on LIST type input. Given input type : %s", in.getMinorType().toString() java.util.List<?> input = (java.util.List<?>) in.readObject(); listWriter.startList(); int i = 0; while (in.next()) { ++i; if (i >= s && i < s + l) { workBuf = com.dremio.dac.explore.udfs.ExtractList.copy(in.reader(), (org.apache.arrow.vector.complex.writer.FieldWriter)listWriter, workBuf);
/** Helper method to get the values in given range in colBit vector used in this test class. */ private static List<Boolean> getBitValues(VectorContainer container, int start, int end) { FieldReader reader = container.getValueAccessorById(BitVector.class, 0).getValueVector().getReader(); List<Boolean> values = Lists.newArrayList(); for(int i=start; i<end; i++) { reader.setPosition(i); if (reader.isSet()) { values.add(reader.readBoolean()); } else { values.add(null); } } return values; }
/** Helper method to get the values in given range in colVarChar vector used in this test class. */ private static List<String> getVarCharValues(VectorContainer container, int start, int end) { FieldReader reader = container.getValueAccessorById(VarCharVector.class, 1).getValueVector().getReader(); List<String> values = Lists.newArrayList(); for(int i=start; i<end; i++) { reader.setPosition(i); if (reader.isSet()) { final Text val = reader.readText(); values.add(val == null ? null : val.toString()); } else { values.add(null); } } return values; }
@Override public void eval() { out.isSet = 1; if (!in.isSet() || in.readObject() == null) { out.value = 0; return; } if (in.getMinorType() != org.apache.arrow.vector.types.Types.MinorType.LIST) { throw new java.lang.UnsupportedOperationException( String.format("'array_length' is supported only on LIST type input. Given input type : %s", in.getMinorType().toString() ) ); } out.value = ((java.util.List<?>) in.readObject()).size(); } }
public ListJsonConverter(int fieldId, String fieldName, FieldReader reader) { super(fieldId, fieldName, reader); FieldReader fieldReader = reader.reader(); innerConverter = EventBasedRecordWriter.getConverter(JsonRecordWriter.this, 0, "inner", fieldReader.getMinorType(), fieldReader); }
public void setPosition(int index) { reader.setPosition(index); }
@Override public void writeBoolean(FieldReader reader) throws IOException { if (reader.isSet()) { writeBoolean(reader.readBoolean()); } else { writeBooleanNull(); } }
public void writeList(FieldReader reader, JsonOutputContext context) throws IOException { if (reader.isSet()) { writeStartArray(); while (reader.next()) { if (!context.okToWrite()) { context.setTruncated(); break; } writeUnion(reader.reader(), context); } writeEndArray(); } else { writeNull(context); } } }
@Override public boolean isNull(int rowOffset) { reader.setPosition(rowOffset); return reader.isSet(); }
public void eval() { if (in.isSet == 1) { in.reader.read(out); } else { out.isSet = 0; } } }
public MinorType getMinorType() { return reader.getMinorType(); }