public void writeNull() { vector.setNull(idx()); vector.setValueCount(idx()+1); } }
/** Helper method which creates a test varchar vector */ private static VarCharVector testVarCharVector() { VarCharVector colVarCharV = new VarCharVector("colVarChar", ALLOCATOR); colVarCharV.allocateNew(500, 5); for(int i=0; i<TEST_VARCHAR_VALUES.size(); i++) { if (TEST_VARCHAR_VALUES.get(i) == null) { colVarCharV.setNull(i); } else { colVarCharV.set(i, TEST_VARCHAR_VALUES.get(i).getBytes()); } } return colVarCharV; }
static void populate(VarCharVector vector, byte[][] values){ vector.allocateNew(); Random r = new Random(); for(int i =0; i < values.length; i++){ byte[] val = values[i]; if(val != null){ vector.setSafe(i, val, 0, val.length); } else { // add noise. this confirms that after pivot, noise is gone. byte[] bytes = new byte[r.nextInt(15)]; r.nextBytes(bytes); vector.setSafe(i, bytes, 0, bytes.length); vector.setNull(i); } } vector.setValueCount(values.length); }
private void decodeVarChar(IntVector input, VarCharVector output, VarBinaryVector dictionary) { if (hasSv2) { final SelectionVector2 sv2 = incoming.getSelectionVector2(); for (int i = 0; i < recordsConsumedCurrentBatch; ++i) { final int svIndex = sv2.getIndex(i); // TODO : Implement CopySafe between varchar and varbinary vectors. if (!input.isNull(svIndex)) { output.setNull(svIndex); } else { final int id = input.get(svIndex); final byte[] value = dictionary.get(id); output.setSafe(svIndex, value, 0, value.length); } } } else { for (int i = 0; i < recordsConsumedCurrentBatch; ++i) { if (input.isNull(i)) { output.setNull(i); } else { final int id = input.get(i); final byte[] value = dictionary.get(id); output.setSafe(i, value, 0, value.length); } } } }
private static Pair<VarCharVector, ResultVerifier> testVarCharVector(final int startIndexInCurrentOutput, final int startIndexInJob) { VarCharVector colVarCharV = new VarCharVector("colVarChar", allocator); colVarCharV.allocateNew(500, 5); colVarCharV.set(0, "value1".getBytes()); colVarCharV.set(1, "long long long long long long long long long long long long long long long long value".getBytes() ); colVarCharV.set(2, "long long long long value".getBytes()); colVarCharV.setNull(3); colVarCharV.set(4, "l".getBytes()); ResultVerifier verifier = new ResultVerifier() { @Override public void verify(DataPOJO output) { int index = startIndexInCurrentOutput; int uIndex = startIndexInJob; assertEquals("value1", output.extractValue("colVarChar", index)); assertNull(output.extractUrl("colVarChar", index++)); uIndex++; assertEquals("long long long long long long ", output.extractValue("colVarChar", index)); assertEquals(cellUrl(uIndex++, "colVarChar"), output.extractUrl("colVarChar", index++)); assertEquals("long long long long value", output.extractValue("colVarChar", index)); assertNull(output.extractUrl("colVarChar", index++)); assertNull(output.extractValue("colVarChar", index)); assertNull(output.extractUrl("colVarChar", index++)); assertEquals("l", output.extractValue("colVarChar", index)); assertNull(output.extractUrl("colVarChar", index++)); } }; return Pair.of(colVarCharV, verifier); }