@Test public void testPrimitiveCharPadding() throws SerDeException { String[][] schema = { {"char1", "char(10)"}, }; HiveCharWritable[][] rows = new HiveCharWritable[][] { {charW("Hello", 10)}, {charW("world!", 10)}}; ArrowColumnarBatchSerDe serDe = new ArrowColumnarBatchSerDe(); StructObjectInspector rowOI = initSerDe(serDe, schema); ArrowWrapperWritable serialized = null; for (Object[] row : rows) { serialized = serDe.serialize(row, rowOI); } // Pass null to complete a batch if (serialized == null) { serialized = serDe.serialize(null, rowOI); } VarCharVector varCharVector = (VarCharVector) serialized.getVectorSchemaRoot().getFieldVectors().get(0); for (int i = 0; i < rows.length; i++) { assertEquals(rows[i][0].getPaddedValue().toString(), new String(varCharVector.get(i))); } }
final byte[] expectedValue = compareArray[start + i].getBytes(); assertFalse(newVarCharVector.isNull(i)); assertArrayEquals(expectedValue, newVarCharVector.get(i)); } else { assertTrue(newVarCharVector.isNull(i));
@Override final UTF8String getUTF8String(int rowId) { accessor.get(rowId, stringResult); if (stringResult.isSet == 0) { return null; } else { return UTF8String.fromAddress(null, stringResult.buffer.memoryAddress() + stringResult.start, stringResult.end - stringResult.start); } } }
@Override final UTF8String getUTF8String(int rowId) { accessor.get(rowId, stringResult); if (stringResult.isSet == 0) { return null; } else { return UTF8String.fromAddress(null, stringResult.buffer.memoryAddress() + stringResult.start, stringResult.end - stringResult.start); } } }
public void getFieldById(int fieldId, NullableVarCharHolder holder) { ((VarCharVector) vectors[fieldId]).get(currentIndex, holder); }
public void getFieldById(int fieldId, VarCharHolder holder) { ((VarCharVector) vectors[fieldId]).get(currentIndex); }
@Override byte[] getBytes(int inputIndex) { if(vector.isNull(inputIndex)){ return null; } return vector.get(inputIndex); }
@Override public byte[] getBytes(int index) { if (ac.isNull(index)) { return null; } return ac.get(index); }
public void read(NullableVarCharHolder h){ vector.get(idx(), h); }
/** * Get the variable length element at specified index as Text. * * @param index position of element to get * @return Text object for non-null element, null otherwise */ public Text getObject(int index) { Text result = new Text(); byte[] b; try { b = get(index); } catch (IllegalStateException e) { return null; } result.set(b); return result; }
@Override public InputStream getStream(int index) { if (ac.isNull(index)) { return null; } NullableVarCharHolder h = new NullableVarCharHolder(); ac.get(index, h); return new ByteBufInputStream(h.buffer.slice(h.start, h.end)); }
protected Object[] getRunResult(QueryType queryType, String planString) throws Exception { List<QueryDataBatch> resultList = testRunAndReturn(queryType, planString); List<Object> res = new ArrayList<>(); RecordBatchLoader loader = new RecordBatchLoader(getAllocator()); for(QueryDataBatch result : resultList) { if (result.getData() != null) { loader.load(result.getHeader().getDef(), result.getData()); ValueVector v = loader.iterator().next().getValueVector(); for (int j = 0; j < v.getValueCount(); j++) { if (v instanceof VarCharVector) { res.add(new String(((VarCharVector) v).get(j))); } else { res.add(v.getObject(j)); } } loader.clear(); result.release(); } } return res.toArray(); }
continue; String in = new String(str1V.get(i), Charsets.UTF_8); String upper = new String(upperStr1V.get(i), Charsets.UTF_8); assertTrue(in.toUpperCase().equals(upper)); String concat = new String(concatV.get(i), Charsets.UTF_8); assertTrue(concat.equals(in+"-"+in)); String format_number = new String(format_numberV.get(i), Charsets.UTF_8); nullableStr1 = new String(nullableStr1V.get(i), Charsets.UTF_8); upperNullableStr1 = new String(upperNullableStr1V.get(i), Charsets.UTF_8);
continue; String str1 = new String(str1V.get(i), Charsets.UTF_8); long str1Length = str1LengthV.get(i); assertTrue(str1.length() == str1Length);
((NullableVarCharHolder)holder).isSet = ((VarCharVector) vector).isSet(index); if (((NullableVarCharHolder)holder).isSet == 1) { ((VarCharVector) vector).get(index, (NullableVarCharHolder)holder);