use of org.apache.drill.exec.physical.rowSet.RowSet in project drill by apache.
the class TestSortEmitOutcome method testTopNMultipleOutputBatch.
@Test
public void testTopNMultipleOutputBatch() {
final RowSet.SingleRowSet nonEmptyInputRowSet2 = operatorFixture.rowSetBuilder(inputSchema).addRow(4, 40, "item4").addRow(2, 20, "item2").addRow(5, 50, "item5").addRow(3, 30, "item3").build();
final RowSet.SingleRowSet expectedRowSet1 = operatorFixture.rowSetBuilder(inputSchema).addRow(1, 10, "item1").build();
final RowSet.SingleRowSet expectedRowSet2 = operatorFixture.rowSetBuilder(inputSchema).addRow(2, 20, "item2").addRow(3, 30, "item3").addRow(4, 40, "item4").addRow(5, 50, "item5").build();
inputContainer.add(nonEmptyInputRowSet.container());
inputContainer.add(emptyInputRowSet.container());
inputContainer.add(nonEmptyInputRowSet2.container());
inputOutcomes.add(OK_NEW_SCHEMA);
inputOutcomes.add(EMIT);
inputOutcomes.add(OK);
final MockRecordBatch mockInputBatch = new MockRecordBatch(operatorFixture.getFragmentContext(), opContext, inputContainer, inputOutcomes, emptyInputRowSet.container().getSchema());
sortBatch = new ExternalSortBatch(sortPopConfig, operatorFixture.getFragmentContext(), mockInputBatch);
// BuildSchema phase output
assertTrue(sortBatch.next() == OK_NEW_SCHEMA);
// Output batch 1 for first EMIT outcome
assertTrue(sortBatch.next() == OK_NEW_SCHEMA);
assertEquals(1, sortBatch.getRecordCount());
// verify results
RowSet actualRowSet1 = HyperRowSetImpl.fromContainer(sortBatch.getContainer(), sortBatch.getSelectionVector4());
new RowSetComparison(expectedRowSet1).verify(actualRowSet1);
// Output batch 2 for first EMIT outcome
assertTrue(sortBatch.next() == EMIT);
assertEquals(0, sortBatch.getRecordCount());
// Output batch for OK outcome
assertTrue(sortBatch.next() == OK);
assertEquals(4, sortBatch.getRecordCount());
// verify results
RowSet actualRowSet2 = HyperRowSetImpl.fromContainer(sortBatch.getContainer(), sortBatch.getSelectionVector4());
new RowSetComparison(expectedRowSet2).verify(actualRowSet2);
// Output batch for NONE outcome
assertTrue(sortBatch.next() == NONE);
// Release memory for row sets
nonEmptyInputRowSet2.clear();
expectedRowSet2.clear();
expectedRowSet1.clear();
}
use of org.apache.drill.exec.physical.rowSet.RowSet in project drill by apache.
the class TestSortImpl method runLargeSortTest.
/**
* Run a full-blown sort test with multiple input batches. Because we want to
* generate multiple inputs, we don't create them statically. Instead, we generate
* them on the fly using a data generator. A matching data validator verifies the
* output. Here, we are focusing on overall test flow. Separate, detailed, unit
* tests have already probed the details of each sort component and data type,
* so we don't need to repeat that whole exercise here; using integer keys is
* sufficient.
*
* @param fixture the operator test fixture
* @param dataGen input batch generator
* @param validator validates output batches
*/
public void runLargeSortTest(OperatorFixture fixture, DataGenerator dataGen, DataValidator validator) {
SortImpl sort = makeSortImpl(fixture, Ordering.ORDER_ASC, Ordering.NULLS_UNSPECIFIED);
int batchCount = 0;
RowSet input;
while ((input = dataGen.nextRowSet()) != null) {
batchCount++;
if (batchCount == 1) {
// Simulates a NEW_SCHEMA event
sort.setSchema(input.container().getSchema());
}
// Simulates an OK event
sort.addBatch(input.vectorAccessible());
}
// Simulate returning results
SortResults results = sort.startMerge();
if (results.getContainer() != dest) {
dest.clear();
dest = results.getContainer();
}
while (results.next()) {
RowSet output = toRowSet(results, dest);
validator.validate(output);
}
validator.validateDone();
results.close();
dest.clear();
sort.close();
sort.opContext().close();
}
use of org.apache.drill.exec.physical.rowSet.RowSet in project drill by apache.
the class TestPcapngStatRecordReader method testExplicitQuery.
@Test
public void testExplicitQuery() throws Exception {
String sql = "select path, shb_hardware, shb_os, if_name, isb_ifrecv from dfs.`pcapng/sniff.pcapng`";
QueryBuilder builder = client.queryBuilder().sql(sql);
RowSet sets = builder.rowSet();
TupleMetadata schema = new SchemaBuilder().addNullable("path", MinorType.VARCHAR).addNullable("shb_hardware", MinorType.VARCHAR).addNullable("shb_os", MinorType.VARCHAR).addNullable("if_name", MinorType.VARCHAR).addNullable("isb_ifrecv", MinorType.BIGINT).buildSchema();
RowSet expected = new RowSetBuilder(client.allocator(), schema).addRow("sniff.pcapng", "Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz (with SSE4.2)", "Mac OS X 10.13.3, build 17D47 (Darwin 17.4.0)", null, null).addRow("sniff.pcapng", null, null, "en0", null).addRow("sniff.pcapng", null, null, null, 123).build();
assertEquals(3, sets.rowCount());
new RowSetComparison(expected).verifyAndClearAll(sets);
}
use of org.apache.drill.exec.physical.rowSet.RowSet in project drill by apache.
the class TestPcapngStatRecordReader method testValidHeaders.
@Test
public void testValidHeaders() throws Exception {
String sql = "select * from dfs.`pcapng/sniff.pcapng`";
RowSet sets = client.queryBuilder().sql(sql).rowSet();
TupleMetadata schema = new SchemaBuilder().addNullable("path", MinorType.VARCHAR).addNullable("shb_hardware", MinorType.VARCHAR).addNullable("shb_os", MinorType.VARCHAR).addNullable("shb_userappl", MinorType.VARCHAR).addNullable("if_name", MinorType.VARCHAR).addNullable("if_description", MinorType.VARCHAR).addNullable("if_ipv4addr", MinorType.VARCHAR).addNullable("if_ipv6addr", MinorType.VARCHAR).addNullable("if_macaddr", MinorType.VARCHAR).addNullable("if_euiaddr", MinorType.VARCHAR).addNullable("if_speed", MinorType.INT).addNullable("if_tsresol", MinorType.INT).addNullable("if_tzone", MinorType.INT).addNullable("if_os", MinorType.VARCHAR).addNullable("if_fcslen", MinorType.INT).addNullable("if_tsoffset", MinorType.INT).addNullable("ns_dnsname", MinorType.VARCHAR).addNullable("ns_dnsip4addr", MinorType.VARCHAR).addNullable("ns_dnsip6addr", MinorType.VARCHAR).addNullable("isb_starttime", MinorType.TIMESTAMP).addNullable("isb_endtime", MinorType.TIMESTAMP).addNullable("isb_ifrecv", MinorType.BIGINT).addNullable("isb_ifdrop", MinorType.BIGINT).addNullable("isb_filteraccept", MinorType.BIGINT).addNullable("isb_osdrop", MinorType.BIGINT).addNullable("isb_usrdeliv", MinorType.BIGINT).build();
RowSet expected = new RowSetBuilder(client.allocator(), schema).build();
new RowSetComparison(expected).verifyAndClearAll(sets);
}
use of org.apache.drill.exec.physical.rowSet.RowSet in project drill by apache.
the class TestPcapngRecordReader method testDistinctQuery.
@Test
public void testDistinctQuery() throws Exception {
String sql = "select distinct `timestamp`, src_ip from dfs.`pcapng/sniff.pcapng`";
QueryBuilder builder = client.queryBuilder().sql(sql);
RowSet sets = builder.rowSet();
assertEquals(119, sets.rowCount());
sets.clear();
}
Aggregations