/** * Provides the type of input and output datasets. * * @return the {@link DataSetType} */ public DataSetType<Type> getType() { return this.getInputType0(); }
private SubplanPattern createSubplanPattern() { final OperatorPattern operatorPattern = new OperatorPattern<>( "intersect", new IntersectOperator<>(DataSetType.none()), false ); return SubplanPattern.createSingleton(operatorPattern); }
@Override public Optional<CardinalityEstimator> createCardinalityEstimator( final int outputIndex, final Configuration configuration) { Validate.inclusiveBetween(0, this.getNumOutputs() - 1, outputIndex); // The current idea: We assume that one side is duplicate-free and included in the other. // TODO: Find a better estimator. return Optional.of(new DefaultCardinalityEstimator( .5d, 2, this.isSupportingBroadcastInputs(), inputCards -> Math.min(inputCards[0], inputCards[1]) )); } }
private SubplanPattern createSubplanPattern() { final OperatorPattern operatorPattern = new OperatorPattern<>( "intersect", new IntersectOperator<>(DataSetType.none()), false ); return SubplanPattern.createSingleton(operatorPattern); }