Search in sources :

Example 1 with DiscreteValues

use of com.facebook.presto.common.predicate.DiscreteValues in project presto by prestodb.

the class ExpressionDomainTranslator method toPredicate.

private Expression toPredicate(Domain domain, SymbolReference reference) {
    if (domain.getValues().isNone()) {
        return domain.isNullAllowed() ? new IsNullPredicate(reference) : FALSE_LITERAL;
    }
    if (domain.getValues().isAll()) {
        return domain.isNullAllowed() ? TRUE_LITERAL : new NotExpression(new IsNullPredicate(reference));
    }
    List<Expression> disjuncts = new ArrayList<>();
    disjuncts.addAll(domain.getValues().getValuesProcessor().transform(ranges -> extractDisjuncts(domain.getType(), ranges, reference), discreteValues -> extractDisjuncts(domain.getType(), discreteValues, reference), allOrNone -> {
        throw new IllegalStateException("Case should not be reachable");
    }));
    // Add nullability disjuncts
    if (domain.isNullAllowed()) {
        disjuncts.add(new IsNullPredicate(reference));
    }
    return combineDisjunctsWithDefault(disjuncts, TRUE_LITERAL);
}
Also used : WarningCollector(com.facebook.presto.spi.WarningCollector) SATURATED_FLOOR_CAST(com.facebook.presto.metadata.CastType.SATURATED_FLOOR_CAST) DiscreteValues(com.facebook.presto.common.predicate.DiscreteValues) IsNullPredicate(com.facebook.presto.sql.tree.IsNullPredicate) SortedRangeSet(com.facebook.presto.common.predicate.SortedRangeSet) PeekingIterator(com.google.common.collect.PeekingIterator) NOT_EQUAL(com.facebook.presto.sql.tree.ComparisonExpression.Operator.NOT_EQUAL) Preconditions.checkArgument(com.google.common.base.Preconditions.checkArgument) Map(java.util.Map) Marker(com.facebook.presto.common.predicate.Marker) BetweenPredicate(com.facebook.presto.sql.tree.BetweenPredicate) NotExpression(com.facebook.presto.sql.tree.NotExpression) SymbolReference(com.facebook.presto.sql.tree.SymbolReference) NullableValue(com.facebook.presto.common.predicate.NullableValue) InterpretedFunctionInvoker(com.facebook.presto.sql.InterpretedFunctionInvoker) ImmutableMap(com.google.common.collect.ImmutableMap) Collections.emptyList(java.util.Collections.emptyList) ImmutableList.toImmutableList(com.google.common.collect.ImmutableList.toImmutableList) Range(com.facebook.presto.common.predicate.Range) SqlParser(com.facebook.presto.sql.parser.SqlParser) Preconditions.checkState(com.google.common.base.Preconditions.checkState) TRUE_LITERAL(com.facebook.presto.sql.tree.BooleanLiteral.TRUE_LITERAL) BooleanLiteral(com.facebook.presto.sql.tree.BooleanLiteral) NullLiteral(com.facebook.presto.sql.tree.NullLiteral) ExpressionUtils.combineDisjunctsWithDefault(com.facebook.presto.sql.ExpressionUtils.combineDisjunctsWithDefault) LogicalBinaryExpression(com.facebook.presto.sql.tree.LogicalBinaryExpression) List(java.util.List) InPredicate(com.facebook.presto.sql.tree.InPredicate) OperatorNotFoundException(com.facebook.presto.metadata.OperatorNotFoundException) Optional(java.util.Optional) CAST(com.facebook.presto.metadata.CastType.CAST) GREATER_THAN_OR_EQUAL(com.facebook.presto.sql.tree.ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL) Ranges(com.facebook.presto.common.predicate.Ranges) Utils(com.facebook.presto.common.Utils) ExpressionUtils.combineConjuncts(com.facebook.presto.sql.ExpressionUtils.combineConjuncts) ExpressionUtils.and(com.facebook.presto.sql.ExpressionUtils.and) Collectors.collectingAndThen(java.util.stream.Collectors.collectingAndThen) ExpressionUtils(com.facebook.presto.sql.ExpressionUtils) ArrayList(java.util.ArrayList) LESS_THAN(com.facebook.presto.sql.tree.ComparisonExpression.Operator.LESS_THAN) InListExpression(com.facebook.presto.sql.tree.InListExpression) ImmutableList(com.google.common.collect.ImmutableList) Objects.requireNonNull(java.util.Objects.requireNonNull) Cast(com.facebook.presto.sql.tree.Cast) Comparator.comparing(java.util.Comparator.comparing) LESS_THAN_OR_EQUAL(com.facebook.presto.sql.tree.ComparisonExpression.Operator.LESS_THAN_OR_EQUAL) Iterators.peekingIterator(com.google.common.collect.Iterators.peekingIterator) Type(com.facebook.presto.common.type.Type) Nullable(javax.annotation.Nullable) ExpressionUtils.or(com.facebook.presto.sql.ExpressionUtils.or) FALSE_LITERAL(com.facebook.presto.sql.tree.BooleanLiteral.FALSE_LITERAL) Session(com.facebook.presto.Session) EQUAL(com.facebook.presto.sql.tree.ComparisonExpression.Operator.EQUAL) AstVisitor(com.facebook.presto.sql.tree.AstVisitor) Iterables.getOnlyElement(com.google.common.collect.Iterables.getOnlyElement) IsNotNullPredicate(com.facebook.presto.sql.tree.IsNotNullPredicate) ComparisonExpression(com.facebook.presto.sql.tree.ComparisonExpression) Domain(com.facebook.presto.common.predicate.Domain) TupleDomain(com.facebook.presto.common.predicate.TupleDomain) NodeRef(com.facebook.presto.sql.tree.NodeRef) Collectors.toList(java.util.stream.Collectors.toList) ExpressionAnalyzer(com.facebook.presto.sql.analyzer.ExpressionAnalyzer) Expression(com.facebook.presto.sql.tree.Expression) FunctionHandle(com.facebook.presto.spi.function.FunctionHandle) GREATER_THAN(com.facebook.presto.sql.tree.ComparisonExpression.Operator.GREATER_THAN) Block(com.facebook.presto.common.block.Block) ValueSet(com.facebook.presto.common.predicate.ValueSet) Metadata(com.facebook.presto.metadata.Metadata) NotExpression(com.facebook.presto.sql.tree.NotExpression) LogicalBinaryExpression(com.facebook.presto.sql.tree.LogicalBinaryExpression) InListExpression(com.facebook.presto.sql.tree.InListExpression) ComparisonExpression(com.facebook.presto.sql.tree.ComparisonExpression) Expression(com.facebook.presto.sql.tree.Expression) ArrayList(java.util.ArrayList) IsNullPredicate(com.facebook.presto.sql.tree.IsNullPredicate) NotExpression(com.facebook.presto.sql.tree.NotExpression)

Example 2 with DiscreteValues

use of com.facebook.presto.common.predicate.DiscreteValues in project presto by prestodb.

the class ExpressionDomainTranslator method extractDisjuncts.

private List<Expression> extractDisjuncts(Type type, DiscreteValues discreteValues, SymbolReference reference) {
    List<Expression> values = discreteValues.getValues().stream().map(object -> literalEncoder.toExpression(object, type)).collect(toList());
    // If values is empty, then the equatableValues was either ALL or NONE, both of which should already have been checked for
    checkState(!values.isEmpty());
    Expression predicate;
    if (values.size() == 1) {
        predicate = new ComparisonExpression(EQUAL, reference, getOnlyElement(values));
    } else {
        predicate = new InPredicate(reference, new InListExpression(values));
    }
    if (!discreteValues.isWhiteList()) {
        predicate = new NotExpression(predicate);
    }
    return ImmutableList.of(predicate);
}
Also used : WarningCollector(com.facebook.presto.spi.WarningCollector) SATURATED_FLOOR_CAST(com.facebook.presto.metadata.CastType.SATURATED_FLOOR_CAST) DiscreteValues(com.facebook.presto.common.predicate.DiscreteValues) IsNullPredicate(com.facebook.presto.sql.tree.IsNullPredicate) SortedRangeSet(com.facebook.presto.common.predicate.SortedRangeSet) PeekingIterator(com.google.common.collect.PeekingIterator) NOT_EQUAL(com.facebook.presto.sql.tree.ComparisonExpression.Operator.NOT_EQUAL) Preconditions.checkArgument(com.google.common.base.Preconditions.checkArgument) Map(java.util.Map) Marker(com.facebook.presto.common.predicate.Marker) BetweenPredicate(com.facebook.presto.sql.tree.BetweenPredicate) NotExpression(com.facebook.presto.sql.tree.NotExpression) SymbolReference(com.facebook.presto.sql.tree.SymbolReference) NullableValue(com.facebook.presto.common.predicate.NullableValue) InterpretedFunctionInvoker(com.facebook.presto.sql.InterpretedFunctionInvoker) ImmutableMap(com.google.common.collect.ImmutableMap) Collections.emptyList(java.util.Collections.emptyList) ImmutableList.toImmutableList(com.google.common.collect.ImmutableList.toImmutableList) Range(com.facebook.presto.common.predicate.Range) SqlParser(com.facebook.presto.sql.parser.SqlParser) Preconditions.checkState(com.google.common.base.Preconditions.checkState) TRUE_LITERAL(com.facebook.presto.sql.tree.BooleanLiteral.TRUE_LITERAL) BooleanLiteral(com.facebook.presto.sql.tree.BooleanLiteral) NullLiteral(com.facebook.presto.sql.tree.NullLiteral) ExpressionUtils.combineDisjunctsWithDefault(com.facebook.presto.sql.ExpressionUtils.combineDisjunctsWithDefault) LogicalBinaryExpression(com.facebook.presto.sql.tree.LogicalBinaryExpression) List(java.util.List) InPredicate(com.facebook.presto.sql.tree.InPredicate) OperatorNotFoundException(com.facebook.presto.metadata.OperatorNotFoundException) Optional(java.util.Optional) CAST(com.facebook.presto.metadata.CastType.CAST) GREATER_THAN_OR_EQUAL(com.facebook.presto.sql.tree.ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL) Ranges(com.facebook.presto.common.predicate.Ranges) Utils(com.facebook.presto.common.Utils) ExpressionUtils.combineConjuncts(com.facebook.presto.sql.ExpressionUtils.combineConjuncts) ExpressionUtils.and(com.facebook.presto.sql.ExpressionUtils.and) Collectors.collectingAndThen(java.util.stream.Collectors.collectingAndThen) ExpressionUtils(com.facebook.presto.sql.ExpressionUtils) ArrayList(java.util.ArrayList) LESS_THAN(com.facebook.presto.sql.tree.ComparisonExpression.Operator.LESS_THAN) InListExpression(com.facebook.presto.sql.tree.InListExpression) ImmutableList(com.google.common.collect.ImmutableList) Objects.requireNonNull(java.util.Objects.requireNonNull) Cast(com.facebook.presto.sql.tree.Cast) Comparator.comparing(java.util.Comparator.comparing) LESS_THAN_OR_EQUAL(com.facebook.presto.sql.tree.ComparisonExpression.Operator.LESS_THAN_OR_EQUAL) Iterators.peekingIterator(com.google.common.collect.Iterators.peekingIterator) Type(com.facebook.presto.common.type.Type) Nullable(javax.annotation.Nullable) ExpressionUtils.or(com.facebook.presto.sql.ExpressionUtils.or) FALSE_LITERAL(com.facebook.presto.sql.tree.BooleanLiteral.FALSE_LITERAL) Session(com.facebook.presto.Session) EQUAL(com.facebook.presto.sql.tree.ComparisonExpression.Operator.EQUAL) AstVisitor(com.facebook.presto.sql.tree.AstVisitor) Iterables.getOnlyElement(com.google.common.collect.Iterables.getOnlyElement) IsNotNullPredicate(com.facebook.presto.sql.tree.IsNotNullPredicate) ComparisonExpression(com.facebook.presto.sql.tree.ComparisonExpression) Domain(com.facebook.presto.common.predicate.Domain) TupleDomain(com.facebook.presto.common.predicate.TupleDomain) NodeRef(com.facebook.presto.sql.tree.NodeRef) Collectors.toList(java.util.stream.Collectors.toList) ExpressionAnalyzer(com.facebook.presto.sql.analyzer.ExpressionAnalyzer) Expression(com.facebook.presto.sql.tree.Expression) FunctionHandle(com.facebook.presto.spi.function.FunctionHandle) GREATER_THAN(com.facebook.presto.sql.tree.ComparisonExpression.Operator.GREATER_THAN) Block(com.facebook.presto.common.block.Block) ValueSet(com.facebook.presto.common.predicate.ValueSet) Metadata(com.facebook.presto.metadata.Metadata) ComparisonExpression(com.facebook.presto.sql.tree.ComparisonExpression) NotExpression(com.facebook.presto.sql.tree.NotExpression) LogicalBinaryExpression(com.facebook.presto.sql.tree.LogicalBinaryExpression) InListExpression(com.facebook.presto.sql.tree.InListExpression) ComparisonExpression(com.facebook.presto.sql.tree.ComparisonExpression) Expression(com.facebook.presto.sql.tree.Expression) InListExpression(com.facebook.presto.sql.tree.InListExpression) NotExpression(com.facebook.presto.sql.tree.NotExpression) InPredicate(com.facebook.presto.sql.tree.InPredicate)

Example 3 with DiscreteValues

use of com.facebook.presto.common.predicate.DiscreteValues in project presto by prestodb.

the class RowExpressionDomainTranslator method extractDisjuncts.

private List<RowExpression> extractDisjuncts(Type type, DiscreteValues discreteValues, RowExpression reference) {
    List<RowExpression> values = discreteValues.getValues().stream().map(object -> toRowExpression(reference.getSourceLocation(), object, type)).collect(toList());
    // If values is empty, then the equatableValues was either ALL or NONE, both of which should already have been checked for
    checkState(!values.isEmpty());
    RowExpression predicate;
    if (values.size() == 1) {
        predicate = equal(reference, getOnlyElement(values));
    } else {
        predicate = in(reference, values);
    }
    if (!discreteValues.isWhiteList()) {
        predicate = not(functionResolution, predicate);
    }
    return ImmutableList.of(predicate);
}
Also used : FunctionAndTypeManager(com.facebook.presto.metadata.FunctionAndTypeManager) SATURATED_FLOOR_CAST(com.facebook.presto.metadata.CastType.SATURATED_FLOOR_CAST) IS_NULL(com.facebook.presto.spi.relation.SpecialFormExpression.Form.IS_NULL) DiscreteValues(com.facebook.presto.common.predicate.DiscreteValues) RowExpressionVisitor(com.facebook.presto.spi.relation.RowExpressionVisitor) VariableReferenceExpression(com.facebook.presto.spi.relation.VariableReferenceExpression) IS_DISTINCT_FROM(com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM) SortedRangeSet(com.facebook.presto.common.predicate.SortedRangeSet) StandardFunctionResolution(com.facebook.presto.spi.function.StandardFunctionResolution) PeekingIterator(com.google.common.collect.PeekingIterator) Preconditions.checkArgument(com.google.common.base.Preconditions.checkArgument) Map(java.util.Map) EQUAL(com.facebook.presto.common.function.OperatorType.EQUAL) FALSE_CONSTANT(com.facebook.presto.expressions.LogicalRowExpressions.FALSE_CONSTANT) AND(com.facebook.presto.spi.relation.SpecialFormExpression.Form.AND) LESS_THAN(com.facebook.presto.common.function.OperatorType.LESS_THAN) CallExpression(com.facebook.presto.spi.relation.CallExpression) Marker(com.facebook.presto.common.predicate.Marker) SpecialFormExpression(com.facebook.presto.spi.relation.SpecialFormExpression) IN(com.facebook.presto.spi.relation.SpecialFormExpression.Form.IN) RowExpressionInterpreter(com.facebook.presto.sql.planner.RowExpressionInterpreter) NullableValue(com.facebook.presto.common.predicate.NullableValue) InterpretedFunctionInvoker(com.facebook.presto.sql.InterpretedFunctionInvoker) ImmutableMap(com.google.common.collect.ImmutableMap) ImmutableList.toImmutableList(com.google.common.collect.ImmutableList.toImmutableList) DomainTranslator(com.facebook.presto.spi.relation.DomainTranslator) LambdaDefinitionExpression(com.facebook.presto.spi.relation.LambdaDefinitionExpression) LiteralEncoder.toRowExpression(com.facebook.presto.sql.planner.LiteralEncoder.toRowExpression) TRUE_CONSTANT(com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT) Range(com.facebook.presto.common.predicate.Range) Preconditions.checkState(com.google.common.base.Preconditions.checkState) ConnectorSession(com.facebook.presto.spi.ConnectorSession) FunctionMetadata(com.facebook.presto.spi.function.FunctionMetadata) List(java.util.List) OperatorNotFoundException(com.facebook.presto.metadata.OperatorNotFoundException) Optional(java.util.Optional) InputReferenceExpression(com.facebook.presto.spi.relation.InputReferenceExpression) CAST(com.facebook.presto.metadata.CastType.CAST) Ranges(com.facebook.presto.common.predicate.Ranges) DeterminismEvaluator(com.facebook.presto.spi.relation.DeterminismEvaluator) NOT_EQUAL(com.facebook.presto.common.function.OperatorType.NOT_EQUAL) Utils(com.facebook.presto.common.Utils) Collectors.collectingAndThen(java.util.stream.Collectors.collectingAndThen) ConstantExpression(com.facebook.presto.spi.relation.ConstantExpression) TypeSignatureProvider.fromTypes(com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes) Expressions.call(com.facebook.presto.sql.relational.Expressions.call) ArrayList(java.util.ArrayList) Inject(javax.inject.Inject) LESS_THAN_OR_EQUAL(com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL) ImmutableList(com.google.common.collect.ImmutableList) LogicalRowExpressions(com.facebook.presto.expressions.LogicalRowExpressions) Objects.requireNonNull(java.util.Objects.requireNonNull) BOOLEAN(com.facebook.presto.common.type.BooleanType.BOOLEAN) Form(com.facebook.presto.spi.relation.SpecialFormExpression.Form) OR(com.facebook.presto.spi.relation.SpecialFormExpression.Form.OR) Iterators.peekingIterator(com.google.common.collect.Iterators.peekingIterator) Type(com.facebook.presto.common.type.Type) Nullable(javax.annotation.Nullable) RowExpression(com.facebook.presto.spi.relation.RowExpression) LogicalRowExpressions.and(com.facebook.presto.expressions.LogicalRowExpressions.and) Iterables.getOnlyElement(com.google.common.collect.Iterables.getOnlyElement) OperatorType(com.facebook.presto.common.function.OperatorType) Domain(com.facebook.presto.common.predicate.Domain) TupleDomain(com.facebook.presto.common.predicate.TupleDomain) GREATER_THAN_OR_EQUAL(com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL) GREATER_THAN(com.facebook.presto.common.function.OperatorType.GREATER_THAN) OPTIMIZED(com.facebook.presto.spi.relation.ExpressionOptimizer.Level.OPTIMIZED) Collectors.toList(java.util.stream.Collectors.toList) BETWEEN(com.facebook.presto.common.function.OperatorType.BETWEEN) LogicalRowExpressions.or(com.facebook.presto.expressions.LogicalRowExpressions.or) FunctionHandle(com.facebook.presto.spi.function.FunctionHandle) Block(com.facebook.presto.common.block.Block) ValueSet(com.facebook.presto.common.predicate.ValueSet) Metadata(com.facebook.presto.metadata.Metadata) LiteralEncoder.toRowExpression(com.facebook.presto.sql.planner.LiteralEncoder.toRowExpression) RowExpression(com.facebook.presto.spi.relation.RowExpression)

Example 4 with DiscreteValues

use of com.facebook.presto.common.predicate.DiscreteValues in project presto by prestodb.

the class KuduClientSession method addConstraintPredicates.

/**
 * translates TupleDomain to KuduPredicates.
 *
 * @return false if TupleDomain or one of its domains is none
 */
private boolean addConstraintPredicates(KuduTable table, KuduScanToken.KuduScanTokenBuilder builder, TupleDomain<ColumnHandle> constraintSummary) {
    if (constraintSummary.isNone()) {
        return false;
    } else if (!constraintSummary.isAll()) {
        Schema schema = table.getSchema();
        for (TupleDomain.ColumnDomain<ColumnHandle> columnDomain : constraintSummary.getColumnDomains().get()) {
            int position = ((KuduColumnHandle) columnDomain.getColumn()).getOrdinalPosition();
            ColumnSchema columnSchema = schema.getColumnByIndex(position);
            Domain domain = columnDomain.getDomain();
            if (domain.isNone()) {
                return false;
            } else if (domain.isAll()) {
            // no restriction
            } else if (domain.isOnlyNull()) {
                builder.addPredicate(KuduPredicate.newIsNullPredicate(columnSchema));
            } else if (domain.getValues().isAll() && domain.isNullAllowed()) {
                builder.addPredicate(KuduPredicate.newIsNotNullPredicate(columnSchema));
            } else if (domain.isSingleValue()) {
                KuduPredicate predicate = createEqualsPredicate(columnSchema, domain.getSingleValue());
                builder.addPredicate(predicate);
            } else {
                ValueSet valueSet = domain.getValues();
                if (valueSet instanceof EquatableValueSet) {
                    DiscreteValues discreteValues = valueSet.getDiscreteValues();
                    KuduPredicate predicate = createInListPredicate(columnSchema, discreteValues);
                    builder.addPredicate(predicate);
                } else if (valueSet instanceof SortedRangeSet) {
                    Ranges ranges = ((SortedRangeSet) valueSet).getRanges();
                    Range span = ranges.getSpan();
                    Marker low = span.getLow();
                    if (!low.isLowerUnbounded()) {
                        KuduPredicate.ComparisonOp op = (low.getBound() == Marker.Bound.ABOVE) ? KuduPredicate.ComparisonOp.GREATER : KuduPredicate.ComparisonOp.GREATER_EQUAL;
                        KuduPredicate predicate = createComparisonPredicate(columnSchema, op, low.getValue());
                        builder.addPredicate(predicate);
                    }
                    Marker high = span.getHigh();
                    if (!high.isUpperUnbounded()) {
                        KuduPredicate.ComparisonOp op = (low.getBound() == Marker.Bound.BELOW) ? KuduPredicate.ComparisonOp.LESS : KuduPredicate.ComparisonOp.LESS_EQUAL;
                        KuduPredicate predicate = createComparisonPredicate(columnSchema, op, high.getValue());
                        builder.addPredicate(predicate);
                    }
                } else {
                    throw new IllegalStateException("Unexpected domain: " + domain);
                }
            }
        }
    }
    return true;
}
Also used : Ranges(com.facebook.presto.common.predicate.Ranges) Schema(org.apache.kudu.Schema) ColumnSchema(org.apache.kudu.ColumnSchema) EquatableValueSet(com.facebook.presto.common.predicate.EquatableValueSet) ColumnSchema(org.apache.kudu.ColumnSchema) Marker(com.facebook.presto.common.predicate.Marker) Range(com.facebook.presto.common.predicate.Range) KuduPredicate(org.apache.kudu.client.KuduPredicate) SortedRangeSet(com.facebook.presto.common.predicate.SortedRangeSet) DiscreteValues(com.facebook.presto.common.predicate.DiscreteValues) Domain(com.facebook.presto.common.predicate.Domain) TupleDomain(com.facebook.presto.common.predicate.TupleDomain) EquatableValueSet(com.facebook.presto.common.predicate.EquatableValueSet) ValueSet(com.facebook.presto.common.predicate.ValueSet)

Aggregations

DiscreteValues (com.facebook.presto.common.predicate.DiscreteValues)4 Domain (com.facebook.presto.common.predicate.Domain)4 Marker (com.facebook.presto.common.predicate.Marker)4 Range (com.facebook.presto.common.predicate.Range)4 Ranges (com.facebook.presto.common.predicate.Ranges)4 SortedRangeSet (com.facebook.presto.common.predicate.SortedRangeSet)4 TupleDomain (com.facebook.presto.common.predicate.TupleDomain)4 ValueSet (com.facebook.presto.common.predicate.ValueSet)4 Utils (com.facebook.presto.common.Utils)3 Block (com.facebook.presto.common.block.Block)3 NullableValue (com.facebook.presto.common.predicate.NullableValue)3 Type (com.facebook.presto.common.type.Type)3 CAST (com.facebook.presto.metadata.CastType.CAST)3 SATURATED_FLOOR_CAST (com.facebook.presto.metadata.CastType.SATURATED_FLOOR_CAST)3 Metadata (com.facebook.presto.metadata.Metadata)3 OperatorNotFoundException (com.facebook.presto.metadata.OperatorNotFoundException)3 FunctionHandle (com.facebook.presto.spi.function.FunctionHandle)3 InterpretedFunctionInvoker (com.facebook.presto.sql.InterpretedFunctionInvoker)3 Preconditions.checkArgument (com.google.common.base.Preconditions.checkArgument)3 Preconditions.checkState (com.google.common.base.Preconditions.checkState)3