@Override public Optional<CardinalityEstimator> createCardinalityEstimator(int outputIndex, Configuration configuration) { return Optional.of(new FixedSizeCardinalityEstimator(1L)); } }
@Override public Optional<CardinalityEstimator> createCardinalityEstimator( final int outputIndex, final Configuration configuration) { assert outputIndex == 0; return Optional.of(new FixedSizeCardinalityEstimator(1)); } }
@Override public Optional<CardinalityEstimator> createCardinalityEstimator( final int outputIndex, final Configuration configuration) { Validate.inclusiveBetween(0, this.getNumOutputs() - 1, outputIndex); // TODO: Come up with a decent way to estimate the "distinctness" of reduction keys. return Optional.of(new FixedSizeCardinalityEstimator(1)); } }
@Override public Optional<CardinalityEstimator> createCardinalityEstimator( final int outputIndex, final Configuration configuration) { Validate.inclusiveBetween(0, this.getNumOutputs() - 1, outputIndex); return Optional.of(new FixedSizeCardinalityEstimator(1)); } }
@Override public Optional<CardinalityEstimator> createCardinalityEstimator( final int outputIndex, final Configuration configuration) { Validate.inclusiveBetween(0, this.getNumOutputs() - 1, outputIndex); // TODO: Incorporate OperatoContext would allow for precise estimation. return Optional.of(new FixedSizeCardinalityEstimator(this.sampleSizeFunction.applyAsInt(0))); } }