Search in sources :

Example 6 with OrderByOperatorFactory

use of com.facebook.presto.operator.OrderByOperator.OrderByOperatorFactory in project presto by prestodb.

the class TestOrderByOperator method testReverseOrder.

@Test
public void testReverseOrder() throws Exception {
    List<Page> input = rowPagesBuilder(BIGINT, DOUBLE).row(1L, 0.1).row(2L, 0.2).pageBreak().row(-1L, -0.1).row(4L, 0.4).build();
    OrderByOperatorFactory operatorFactory = new OrderByOperatorFactory(0, new PlanNodeId("test"), ImmutableList.of(BIGINT, DOUBLE), ImmutableList.of(0), 10, ImmutableList.of(0), ImmutableList.of(DESC_NULLS_LAST), new PagesIndex.TestingFactory());
    MaterializedResult expected = resultBuilder(driverContext.getSession(), BIGINT).row(4L).row(2L).row(1L).row(-1L).build();
    assertOperatorEquals(operatorFactory, driverContext, input, expected);
}
Also used : PlanNodeId(com.facebook.presto.sql.planner.plan.PlanNodeId) OrderByOperatorFactory(com.facebook.presto.operator.OrderByOperator.OrderByOperatorFactory) Page(com.facebook.presto.spi.Page) MaterializedResult(com.facebook.presto.testing.MaterializedResult) Test(org.testng.annotations.Test)

Example 7 with OrderByOperatorFactory

use of com.facebook.presto.operator.OrderByOperator.OrderByOperatorFactory in project presto by prestodb.

the class TestOrderByOperator method testMultiFieldKey.

@Test
public void testMultiFieldKey() throws Exception {
    List<Page> input = rowPagesBuilder(VARCHAR, BIGINT).row("a", 1L).row("b", 2L).pageBreak().row("b", 3L).row("a", 4L).build();
    OrderByOperatorFactory operatorFactory = new OrderByOperatorFactory(0, new PlanNodeId("test"), ImmutableList.of(VARCHAR, BIGINT), ImmutableList.of(0, 1), 10, ImmutableList.of(0, 1), ImmutableList.of(ASC_NULLS_LAST, DESC_NULLS_LAST), new PagesIndex.TestingFactory());
    MaterializedResult expected = MaterializedResult.resultBuilder(driverContext.getSession(), VARCHAR, BIGINT).row("a", 4L).row("a", 1L).row("b", 3L).row("b", 2L).build();
    assertOperatorEquals(operatorFactory, driverContext, input, expected);
}
Also used : PlanNodeId(com.facebook.presto.sql.planner.plan.PlanNodeId) OrderByOperatorFactory(com.facebook.presto.operator.OrderByOperator.OrderByOperatorFactory) Page(com.facebook.presto.spi.Page) MaterializedResult(com.facebook.presto.testing.MaterializedResult) Test(org.testng.annotations.Test)

Example 8 with OrderByOperatorFactory

use of com.facebook.presto.operator.OrderByOperator.OrderByOperatorFactory in project presto by prestodb.

the class OrderByBenchmark method createOperatorFactories.

@Override
protected List<? extends OperatorFactory> createOperatorFactories() {
    List<Type> tableScanTypes = getColumnTypes("orders", "totalprice", "clerk");
    OperatorFactory tableScanOperator = createTableScanOperator(0, new PlanNodeId("test"), "orders", "totalprice", "clerk");
    LimitOperatorFactory limitOperator = new LimitOperatorFactory(1, new PlanNodeId("test"), ROWS);
    OrderByOperatorFactory orderByOperator = new OrderByOperatorFactory(2, new PlanNodeId("test"), tableScanTypes, ImmutableList.of(1), ROWS, ImmutableList.of(0), ImmutableList.of(ASC_NULLS_LAST), new PagesIndex.TestingFactory(false), false, Optional.empty(), new OrderingCompiler());
    return ImmutableList.of(tableScanOperator, limitOperator, orderByOperator);
}
Also used : PlanNodeId(com.facebook.presto.spi.plan.PlanNodeId) Type(com.facebook.presto.common.type.Type) LimitOperatorFactory(com.facebook.presto.operator.LimitOperator.LimitOperatorFactory) OperatorFactory(com.facebook.presto.operator.OperatorFactory) LimitOperatorFactory(com.facebook.presto.operator.LimitOperator.LimitOperatorFactory) OrderByOperatorFactory(com.facebook.presto.operator.OrderByOperator.OrderByOperatorFactory) OrderByOperatorFactory(com.facebook.presto.operator.OrderByOperator.OrderByOperatorFactory) OrderingCompiler(com.facebook.presto.sql.gen.OrderingCompiler) PagesIndex(com.facebook.presto.operator.PagesIndex)

Example 9 with OrderByOperatorFactory

use of com.facebook.presto.operator.OrderByOperator.OrderByOperatorFactory in project presto by prestodb.

the class TestOrderByOperator method testMultiFieldKey.

@Test(dataProvider = "spillEnabled")
public void testMultiFieldKey(boolean spillEnabled, boolean revokeMemoryWhenAddingPages, long memoryLimit) {
    List<Page> input = rowPagesBuilder(VARCHAR, BIGINT).row("a", 1L).row("b", 2L).pageBreak().row("b", 3L).row("a", 4L).build();
    OrderByOperatorFactory operatorFactory = new OrderByOperatorFactory(0, new PlanNodeId("test"), ImmutableList.of(VARCHAR, BIGINT), ImmutableList.of(0, 1), 10, ImmutableList.of(0, 1), ImmutableList.of(ASC_NULLS_LAST, DESC_NULLS_LAST), new PagesIndex.TestingFactory(false), spillEnabled, Optional.of(spillerFactory), new OrderingCompiler());
    DriverContext driverContext = createDriverContext(memoryLimit);
    MaterializedResult expected = MaterializedResult.resultBuilder(driverContext.getSession(), VARCHAR, BIGINT).row("a", 4L).row("a", 1L).row("b", 3L).row("b", 2L).build();
    assertOperatorEquals(operatorFactory, driverContext, input, expected, revokeMemoryWhenAddingPages);
}
Also used : PlanNodeId(com.facebook.presto.spi.plan.PlanNodeId) OrderByOperatorFactory(com.facebook.presto.operator.OrderByOperator.OrderByOperatorFactory) OrderingCompiler(com.facebook.presto.sql.gen.OrderingCompiler) Page(com.facebook.presto.common.Page) OperatorAssertion.toMaterializedResult(com.facebook.presto.operator.OperatorAssertion.toMaterializedResult) MaterializedResult(com.facebook.presto.testing.MaterializedResult) Test(org.testng.annotations.Test)

Aggregations

OrderByOperatorFactory (com.facebook.presto.operator.OrderByOperator.OrderByOperatorFactory)9 Test (org.testng.annotations.Test)8 MaterializedResult (com.facebook.presto.testing.MaterializedResult)7 PlanNodeId (com.facebook.presto.spi.plan.PlanNodeId)6 OrderingCompiler (com.facebook.presto.sql.gen.OrderingCompiler)6 Page (com.facebook.presto.common.Page)5 OperatorAssertion.toMaterializedResult (com.facebook.presto.operator.OperatorAssertion.toMaterializedResult)4 Page (com.facebook.presto.spi.Page)3 PlanNodeId (com.facebook.presto.sql.planner.plan.PlanNodeId)3 Type (com.facebook.presto.common.type.Type)1 LimitOperatorFactory (com.facebook.presto.operator.LimitOperator.LimitOperatorFactory)1 OperatorFactory (com.facebook.presto.operator.OperatorFactory)1 PagesIndex (com.facebook.presto.operator.PagesIndex)1 DataSize (io.airlift.units.DataSize)1