try (Closer closer = Closer.create()) { AtomicReference<MaterializedResult.Builder> builder = new AtomicReference<>(); PageConsumerOutputFactory outputFactory = new PageConsumerOutputFactory(types -> { builder.compareAndSet(null, MaterializedResult.resultBuilder(session, types)); return builder.get()::page;
List<Driver> drivers = localQueryRunner.createDrivers( query, new PageConsumerOperator.PageConsumerOutputFactory(types -> output::add), taskContext);
try (Closer closer = Closer.create()) { AtomicReference<MaterializedResult.Builder> builder = new AtomicReference<>(); PageConsumerOutputFactory outputFactory = new PageConsumerOutputFactory(types -> { builder.compareAndSet(null, MaterializedResult.resultBuilder(session, types)); return builder.get()::page;
List<Driver> drivers = localQueryRunner.createDrivers( query, new PageConsumerOperator.PageConsumerOutputFactory(types -> output::add), taskContext);
private RevocableMemoryOperator setupConsumeRevocableMemory(DataSize reservedPerPage, long numberOfPages) { AtomicReference<RevocableMemoryOperator> createOperator = new AtomicReference<>(); setUp(() -> { DriverContext driverContext = taskContext.addPipelineContext(0, false, false, false).addDriverContext(); OperatorContext revokableOperatorContext = driverContext.addOperatorContext( Integer.MAX_VALUE, new PlanNodeId("revokable_operator"), TableScanOperator.class.getSimpleName()); OutputFactory outputFactory = new PageConsumerOutputFactory(types -> (page -> {})); Operator outputOperator = outputFactory.createOutputOperator(2, new PlanNodeId("output"), ImmutableList.of(), Function.identity(), new TestingPagesSerdeFactory()).createOperator(driverContext); RevocableMemoryOperator revocableMemoryOperator = new RevocableMemoryOperator(revokableOperatorContext, reservedPerPage, numberOfPages); createOperator.set(revocableMemoryOperator); Driver driver = Driver.createDriver(driverContext, revocableMemoryOperator, outputOperator); return ImmutableList.of(driver); }); return createOperator.get(); }
private RevocableMemoryOperator setupConsumeRevocableMemory(DataSize reservedPerPage, long numberOfPages) { AtomicReference<RevocableMemoryOperator> createOperator = new AtomicReference<>(); setUp(() -> { DriverContext driverContext = taskContext.addPipelineContext(0, false, false, false).addDriverContext(); OperatorContext revokableOperatorContext = driverContext.addOperatorContext( Integer.MAX_VALUE, new PlanNodeId("revokable_operator"), TableScanOperator.class.getSimpleName()); OutputFactory outputFactory = new PageConsumerOutputFactory(types -> (page -> {})); Operator outputOperator = outputFactory.createOutputOperator(2, new PlanNodeId("output"), ImmutableList.of(), Function.identity(), new TestingPagesSerdeFactory()).createOperator(driverContext); RevocableMemoryOperator revocableMemoryOperator = new RevocableMemoryOperator(revokableOperatorContext, reservedPerPage, numberOfPages); createOperator.set(revocableMemoryOperator); Driver driver = Driver.createDriver(driverContext, revocableMemoryOperator, outputOperator); return ImmutableList.of(driver); }); return createOperator.get(); }
private void setUpCountStarFromOrdersWithJoin() { // query will reserve all memory in the user pool and discard the output setUp(() -> { OutputFactory outputFactory = new PageConsumerOutputFactory(types -> (page -> {})); return localQueryRunner.createDrivers("SELECT COUNT(*) FROM orders JOIN lineitem ON CAST(orders.orderkey AS VARCHAR) = CAST(lineitem.orderkey AS VARCHAR)", outputFactory, taskContext); }); }
private void setUpCountStarFromOrdersWithJoin() { // query will reserve all memory in the user pool and discard the output setUp(() -> { OutputFactory outputFactory = new PageConsumerOutputFactory(types -> (page -> {})); return localQueryRunner.createDrivers("SELECT COUNT(*) FROM orders JOIN lineitem ON CAST(orders.orderkey AS VARCHAR) = CAST(lineitem.orderkey AS VARCHAR)", outputFactory, taskContext); }); }