public SetBuilderOperatorFactory( int operatorId, PlanNodeId planNodeId, Type type, int setChannel, Optional<Integer> hashChannel, int expectedPositions, JoinCompiler joinCompiler) { this.operatorId = operatorId; this.planNodeId = requireNonNull(planNodeId, "planNodeId is null"); Preconditions.checkArgument(setChannel >= 0, "setChannel is negative"); this.setProvider = new SetSupplier(requireNonNull(type, "type is null")); this.setChannel = setChannel; this.hashChannel = requireNonNull(hashChannel, "hashChannel is null"); this.expectedPositions = expectedPositions; this.joinCompiler = requireNonNull(joinCompiler, "joinCompiler is null"); }
public HashSemiJoinOperator(OperatorContext operatorContext, SetSupplier channelSetFuture, int probeJoinChannel) { this.operatorContext = requireNonNull(operatorContext, "operatorContext is null"); // todo pass in desired projection requireNonNull(channelSetFuture, "hashProvider is null"); checkArgument(probeJoinChannel >= 0, "probeJoinChannel is negative"); this.channelSetFuture = channelSetFuture.getChannelSet(); this.probeJoinChannel = probeJoinChannel; }
public SetBuilderOperator( OperatorContext operatorContext, SetSupplier setSupplier, int setChannel, Optional<Integer> hashChannel, int expectedPositions, JoinCompiler joinCompiler) { this.operatorContext = requireNonNull(operatorContext, "operatorContext is null"); this.setSupplier = requireNonNull(setSupplier, "setProvider is null"); this.setChannel = setChannel; this.hashChannel = requireNonNull(hashChannel, "hashChannel is null"); // Set builder is has a single channel which goes in channel 0, if hash is present, add a hachBlock to channel 1 Optional<Integer> channelSetHashChannel = hashChannel.isPresent() ? Optional.of(1) : Optional.empty(); this.channelSetBuilder = new ChannelSetBuilder( setSupplier.getType(), channelSetHashChannel, expectedPositions, requireNonNull(operatorContext, "operatorContext is null"), requireNonNull(joinCompiler, "joinCompiler is null")); }
public SetBuilderOperator( OperatorContext operatorContext, SetSupplier setSupplier, int setChannel, Optional<Integer> hashChannel, int expectedPositions) { this.operatorContext = requireNonNull(operatorContext, "operatorContext is null"); this.setSupplier = requireNonNull(setSupplier, "setProvider is null"); this.setChannel = setChannel; this.hashChannel = requireNonNull(hashChannel, "hashChannel is null"); // Set builder is has a single channel which goes in channel 0, if hash is present, add a hachBlock to channel 1 Optional<Integer> channelSetHashChannel = hashChannel.isPresent() ? Optional.of(1) : Optional.empty(); this.channelSetBuilder = new ChannelSetBuilder( setSupplier.getType(), channelSetHashChannel, expectedPositions, requireNonNull(operatorContext, "operatorContext is null")); }
public SetBuilderOperatorFactory( int operatorId, PlanNodeId planNodeId, Type type, int setChannel, Optional<Integer> hashChannel, int expectedPositions) { this.operatorId = operatorId; this.planNodeId = requireNonNull(planNodeId, "planNodeId is null"); Preconditions.checkArgument(setChannel >= 0, "setChannel is negative"); this.setProvider = new SetSupplier(requireNonNull(type, "type is null")); this.setChannel = setChannel; this.hashChannel = requireNonNull(hashChannel, "hashChannel is null"); this.expectedPositions = expectedPositions; }
public HashSemiJoinOperator(OperatorContext operatorContext, SetSupplier channelSetFuture, List<Type> probeTypes, int probeJoinChannel) { this.operatorContext = requireNonNull(operatorContext, "operatorContext is null"); // todo pass in desired projection requireNonNull(channelSetFuture, "hashProvider is null"); requireNonNull(probeTypes, "probeTypes is null"); checkArgument(probeJoinChannel >= 0, "probeJoinChannel is negative"); this.channelSetFuture = channelSetFuture.getChannelSet(); this.probeJoinChannel = probeJoinChannel; this.types = ImmutableList.<Type>builder() .addAll(probeTypes) .add(BOOLEAN) .build(); }
@Override public OperatorFactory duplicate() { return new SetBuilderOperatorFactory(operatorId, planNodeId, setProvider.getType(), setChannel, hashChannel, expectedPositions); } }
@Override public void finish() { if (finished) { return; } ChannelSet channelSet = channelSetBuilder.build(); setSupplier.setChannelSet(channelSet); operatorContext.recordGeneratedOutput(channelSet.getEstimatedSizeInBytes(), channelSet.size()); finished = true; }
@Override public void finish() { if (finished) { return; } ChannelSet channelSet = channelSetBuilder.build(); setSupplier.setChannelSet(channelSet); operatorContext.recordOutput(channelSet.getEstimatedSizeInBytes(), channelSet.size()); finished = true; }
@Override public OperatorFactory duplicate() { return new SetBuilderOperatorFactory(operatorId, planNodeId, setProvider.getType(), setChannel, hashChannel, expectedPositions, joinCompiler); } }