public synchronized Driver createDriver(DriverContext driverContext) { checkState(!closed, "DriverFactory is already closed"); requireNonNull(driverContext, "driverContext is null"); checkState(!closedLifespans.contains(driverContext.getLifespan()), "DriverFatory is already closed for driver group %s", driverContext.getLifespan()); encounteredLifespans.add(driverContext.getLifespan()); ImmutableList.Builder<Operator> operators = ImmutableList.builder(); for (OperatorFactory operatorFactory : operatorFactories) { Operator operator = operatorFactory.createOperator(driverContext); operators.add(operator); } return Driver.createDriver(driverContext, operators.build()); }
@Override public Operator createOperator(DriverContext driverContext) { checkState(!closed, "Factory is already closed"); OperatorContext context = driverContext.addOperatorContext(operatorId, planNodeId, TableFinishOperator.class.getSimpleName()); Operator statisticsAggregationOperator = statisticsAggregationOperatorFactory.createOperator(driverContext); boolean statisticsCpuTimerEnabled = !(statisticsAggregationOperator instanceof DevNullOperator) && isStatisticsCpuTimerEnabled(session); return new TableFinishOperator(context, tableFinisher, statisticsAggregationOperator, descriptor, statisticsCpuTimerEnabled); }
@Override public Operator createOperator(DriverContext driverContext) { checkState(!closed, "Factory is already closed"); OperatorContext context = driverContext.addOperatorContext(operatorId, planNodeId, TableWriterOperator.class.getSimpleName()); Operator statisticsAggregationOperator = statisticsAggregationOperatorFactory.createOperator(driverContext); boolean statisticsCpuTimerEnabled = !(statisticsAggregationOperator instanceof DevNullOperator) && isStatisticsCpuTimerEnabled(session); return new TableWriterOperator(context, createPageSink(), columnChannels, statisticsAggregationOperator, types, statisticsCpuTimerEnabled); }
public static List<Page> toPages(OperatorFactory operatorFactory, DriverContext driverContext, List<Page> input) { try (Operator operator = operatorFactory.createOperator(driverContext)) { return toPages(operator, input.iterator()); } catch (Exception e) { throwIfUnchecked(e); throw new RuntimeException(e); } }
private static boolean executeFilter(OperatorFactory operatorFactory, Session session) { return executeFilter(operatorFactory.createOperator(createDriverContext(session))); }
private Object selectSingleValue(OperatorFactory operatorFactory, Type type, Session session) { Operator operator = operatorFactory.createOperator(createDriverContext(session)); return selectSingleValue(operator, type); }
private static boolean executeFilterWithNoInputColumns(OperatorFactory operatorFactory, Session session) { return executeFilterWithNoInputColumns(operatorFactory.createOperator(createDriverContext(session))); }
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(); }
.addDriverContext(); try (Operator operator = operatorFactory.createOperator(driverContext)) { assertTrue(operator.needsInput()); operator.addInput(input);
private Operator interpretedFilterProject(Optional<Expression> filter, Expression projection, Type expectedType, Session session) { Optional<PageFilter> pageFilter = filter .map(expression -> new InterpretedPageFilter( expression, SYMBOL_TYPES, INPUT_MAPPING, metadata, SQL_PARSER, session)); PageProjection pageProjection = new InterpretedPageProjection(projection, SYMBOL_TYPES, INPUT_MAPPING, metadata, SQL_PARSER, session); assertEquals(pageProjection.getType(), expectedType); PageProcessor processor = new PageProcessor(pageFilter, ImmutableList.of(pageProjection)); OperatorFactory operatorFactory = new FilterAndProjectOperatorFactory( 0, new PlanNodeId("test"), () -> processor, ImmutableList.of(pageProjection.getType()), new DataSize(0, BYTE), 0); return operatorFactory.createOperator(createDriverContext(session)); }
Operator operator = joinOperatorFactory.createOperator(taskContext.addPipelineContext(0, true, true, false).addDriverContext());
private PartitionedOutputOperator createPartitionedOutputOperator() { PartitionFunction partitionFunction = new LocalPartitionGenerator(new InterpretedHashGenerator(ImmutableList.of(BIGINT), new int[] {0}), PARTITION_COUNT); PagesSerdeFactory serdeFactory = new PagesSerdeFactory(new BlockEncodingManager(new TypeRegistry()), false); OutputBuffers buffers = createInitialEmptyOutputBuffers(PARTITIONED); for (int partition = 0; partition < PARTITION_COUNT; partition++) { buffers = buffers.withBuffer(new OutputBuffers.OutputBufferId(partition), partition); } PartitionedOutputBuffer buffer = createPartitionedBuffer( buffers.withNoMoreBufferIds(), new DataSize(Long.MAX_VALUE, BYTE)); // don't let output buffer block PartitionedOutputFactory operatorFactory = new PartitionedOutputFactory( partitionFunction, ImmutableList.of(0), ImmutableList.of(Optional.empty()), false, OptionalInt.empty(), buffer, new DataSize(1, GIGABYTE)); return (PartitionedOutputOperator) operatorFactory .createOutputOperator(0, new PlanNodeId("plan-node-0"), TYPES, Function.identity(), serdeFactory) .createOperator(createDriverContext()); }
Operator operator = joinOperatorFactory.createOperator(taskContext.addPipelineContext(0, true, true, false).addDriverContext());
Operator operator = joinOperatorFactory.createOperator(driverContext); assertTrue(operator.needsInput()); operator.addInput(probeInput.get(0));
Operator operator = joinOperatorFactory.createOperator(driverContext); assertTrue(operator.needsInput()); operator.addInput(probeInput.get(0));
.addPipelineContext(0, true, true, false) .addDriverContext(); Operator operator = operatorFactory.createOperator(driverContext);
public synchronized Driver createDriver(DriverContext driverContext) { checkState(!closed, "DriverFactory is already closed"); requireNonNull(driverContext, "driverContext is null"); ImmutableList.Builder<Operator> operators = ImmutableList.builder(); for (OperatorFactory operatorFactory : operatorFactories) { Operator operator = operatorFactory.createOperator(driverContext); operators.add(operator); } return new Driver(driverContext, operators.build()); }
private Object selectSingleValue(OperatorFactory operatorFactory, Session session) { Operator operator = operatorFactory.createOperator(createDriverContext(session)); return selectSingleValue(operator); }
private static boolean executeFilterWithNoInputColumns(OperatorFactory operatorFactory, Session session) { return executeFilterWithNoInputColumns(operatorFactory.createOperator(createDriverContext(session))); }
private static boolean executeFilter(OperatorFactory operatorFactory, Session session) { return executeFilter(operatorFactory.createOperator(createDriverContext(session))); }