use of io.prestosql.decoder.RowDecoder in project hetu-core by openlookeng.
the class TestRawDecoder method testFixedWithString.
@Test
public void testFixedWithString() {
String str = "Ich bin zwei Oeltanks";
byte[] row = str.getBytes(StandardCharsets.UTF_8);
DecoderTestColumnHandle row1 = new DecoderTestColumnHandle(0, "row1", createVarcharType(100), null, null, null, false, false, false);
DecoderTestColumnHandle row2 = new DecoderTestColumnHandle(1, "row2", createVarcharType(100), "0", null, null, false, false, false);
DecoderTestColumnHandle row3 = new DecoderTestColumnHandle(2, "row3", createVarcharType(100), "0:4", null, null, false, false, false);
DecoderTestColumnHandle row4 = new DecoderTestColumnHandle(3, "row4", createVarcharType(100), "5:8", null, null, false, false, false);
Set<DecoderColumnHandle> columns = ImmutableSet.of(row1, row2, row3, row4);
RowDecoder rowDecoder = DECODER_FACTORY.create(emptyMap(), columns);
Map<DecoderColumnHandle, FieldValueProvider> decodedRow = rowDecoder.decodeRow(row, null).orElseThrow(AssertionError::new);
assertEquals(decodedRow.size(), columns.size());
checkValue(decodedRow, row1, str);
checkValue(decodedRow, row2, str);
// these only work for single byte encodings...
checkValue(decodedRow, row3, str.substring(0, 4));
checkValue(decodedRow, row4, str.substring(5, 8));
}
use of io.prestosql.decoder.RowDecoder in project hetu-core by openlookeng.
the class TestRawDecoder method testEmptyRecord.
@Test
public void testEmptyRecord() {
byte[] emptyRow = new byte[0];
DecoderTestColumnHandle column = new DecoderTestColumnHandle(0, "row1", createUnboundedVarcharType(), null, "BYTE", null, false, false, false);
Set<DecoderColumnHandle> columns = ImmutableSet.of(column);
RowDecoder rowDecoder = DECODER_FACTORY.create(emptyMap(), columns);
Map<DecoderColumnHandle, FieldValueProvider> decodedRow = rowDecoder.decodeRow(emptyRow, null).orElseThrow(AssertionError::new);
checkIsNull(decodedRow, column);
}
use of io.prestosql.decoder.RowDecoder in project hetu-core by openlookeng.
the class TestRawDecoder method testSimple.
@Test
public void testSimple() {
ByteBuffer buf = ByteBuffer.allocate(100);
// 0 - 7
buf.putLong(4815162342L);
// 8 - 11
buf.putInt(12345678);
// 12 - 13
buf.putShort((short) 4567);
// 14
buf.put((byte) 123);
// 15+
buf.put("Ich bin zwei Oeltanks".getBytes(StandardCharsets.UTF_8));
byte[] row = new byte[buf.position()];
System.arraycopy(buf.array(), 0, row, 0, buf.position());
DecoderTestColumnHandle row1 = new DecoderTestColumnHandle(0, "row1", BigintType.BIGINT, "0", "LONG", null, false, false, false);
DecoderTestColumnHandle row2 = new DecoderTestColumnHandle(1, "row2", BigintType.BIGINT, "8", "INT", null, false, false, false);
DecoderTestColumnHandle row3 = new DecoderTestColumnHandle(2, "row3", BigintType.BIGINT, "12", "SHORT", null, false, false, false);
DecoderTestColumnHandle row4 = new DecoderTestColumnHandle(3, "row4", BigintType.BIGINT, "14", "BYTE", null, false, false, false);
DecoderTestColumnHandle row5 = new DecoderTestColumnHandle(4, "row5", createVarcharType(10), "15", null, null, false, false, false);
Set<DecoderColumnHandle> columns = ImmutableSet.of(row1, row2, row3, row4, row5);
RowDecoder rowDecoder = DECODER_FACTORY.create(emptyMap(), columns);
Map<DecoderColumnHandle, FieldValueProvider> decodedRow = rowDecoder.decodeRow(row, null).orElseThrow(AssertionError::new);
assertEquals(decodedRow.size(), columns.size());
checkValue(decodedRow, row1, 4815162342L);
checkValue(decodedRow, row2, 12345678);
checkValue(decodedRow, row3, 4567);
checkValue(decodedRow, row4, 123);
checkValue(decodedRow, row5, "Ich bin zw");
}
use of io.prestosql.decoder.RowDecoder in project hetu-core by openlookeng.
the class TestCsvDecoder method fieldValueDecoderFor.
private FieldValueProvider fieldValueDecoderFor(BigintType type, String csv) {
DecoderTestColumnHandle column = new DecoderTestColumnHandle(0, "column", type, "0", null, null, false, false, false);
Set<DecoderColumnHandle> columns = ImmutableSet.of(column);
RowDecoder rowDecoder = DECODER_FACTORY.create(emptyMap(), columns);
Map<DecoderColumnHandle, FieldValueProvider> decodedRow = rowDecoder.decodeRow(csv.getBytes(StandardCharsets.UTF_8), null).orElseThrow(AssertionError::new);
return decodedRow.get(column);
}
use of io.prestosql.decoder.RowDecoder in project hetu-core by openlookeng.
the class TestCsvDecoder method testLessTokensThanColumns.
@Test
public void testLessTokensThanColumns() {
String csv = "ala,10";
DecoderTestColumnHandle column1 = new DecoderTestColumnHandle(0, "column1", createVarcharType(10), "0", null, null, false, false, false);
DecoderTestColumnHandle column2 = new DecoderTestColumnHandle(1, "column2", BigintType.BIGINT, "1", null, null, false, false, false);
DecoderTestColumnHandle column3 = new DecoderTestColumnHandle(2, "column3", createVarcharType(10), "2", null, null, false, false, false);
DecoderTestColumnHandle column4 = new DecoderTestColumnHandle(0, "column4", BigintType.BIGINT, "3", null, null, false, false, false);
DecoderTestColumnHandle column5 = new DecoderTestColumnHandle(0, "column5", DoubleType.DOUBLE, "4", null, null, false, false, false);
DecoderTestColumnHandle column6 = new DecoderTestColumnHandle(0, "column6", BooleanType.BOOLEAN, "5", null, null, false, false, false);
Set<DecoderColumnHandle> columns = ImmutableSet.of(column1, column2, column3, column4, column5, column6);
RowDecoder rowDecoder = DECODER_FACTORY.create(emptyMap(), columns);
Map<DecoderColumnHandle, FieldValueProvider> decodedRow = rowDecoder.decodeRow(csv.getBytes(StandardCharsets.UTF_8), null).orElseThrow(AssertionError::new);
assertEquals(decodedRow.size(), columns.size());
checkValue(decodedRow, column1, "ala");
checkValue(decodedRow, column2, 10);
checkIsNull(decodedRow, column3);
checkIsNull(decodedRow, column4);
checkIsNull(decodedRow, column5);
checkIsNull(decodedRow, column6);
}
Aggregations