Package io.trino.sql
Class ExpressionUtils
java.lang.Object
io.trino.sql.ExpressionUtils
-
Method Summary
Modifier and TypeMethodDescriptionstatic Expressionand(Expression... expressions) static Expressionand(Collection<Expression> expressions) static ExpressioncombineConjuncts(Metadata metadata, Expression... expressions) static ExpressioncombineConjuncts(Metadata metadata, Collection<Expression> expressions) static ExpressioncombineConjunctsWithDuplicates(Collection<Expression> expressions) static ExpressioncombineDisjuncts(Metadata metadata, Expression... expressions) static ExpressioncombineDisjuncts(Metadata metadata, Collection<Expression> expressions) static ExpressioncombineDisjunctsWithDefault(Metadata metadata, Collection<Expression> expressions, Expression emptyDefault) static ExpressioncombinePredicates(Metadata metadata, LogicalExpression.Operator operator, Expression... expressions) static ExpressioncombinePredicates(Metadata metadata, LogicalExpression.Operator operator, Collection<Expression> expressions) static Function<Expression, Expression> expressionOrNullSymbols(Predicate<Symbol>... nullSymbolScopes) static List<Expression> extractConjuncts(Expression expression) static List<Expression> extractDisjuncts(Expression expression) static List<Expression> extractPredicates(LogicalExpression expression) static List<Expression> extractPredicates(LogicalExpression.Operator operator, Expression expression) static ExpressionfilterConjuncts(Metadata metadata, Expression expression, Predicate<Expression> predicate) static ExpressionfilterDeterministicConjuncts(Metadata metadata, Expression expression) static ExpressionfilterNonDeterministicConjuncts(Metadata metadata, Expression expression) static Map<NodeRef<Expression>, Type> getExpressionTypes(PlannerContext plannerContext, Session session, Expression expression, TypeProvider types) Deprecated.static booleanisEffectivelyLiteral(PlannerContext plannerContext, Session session, Expression expression) Returns whether expression is effectively literal.static ExpressionlogicalExpression(LogicalExpression.Operator operator, Collection<Expression> expressions) static Expressionor(Expression... expressions) static Expressionor(Collection<Expression> expressions) static ExpressionrewriteIdentifiersToSymbolReferences(Expression expression)
-
Method Details
-
extractConjuncts
-
extractDisjuncts
-
extractPredicates
-
extractPredicates
public static List<Expression> extractPredicates(LogicalExpression.Operator operator, Expression expression) -
and
-
and
-
or
-
or
-
logicalExpression
public static Expression logicalExpression(LogicalExpression.Operator operator, Collection<Expression> expressions) -
combinePredicates
public static Expression combinePredicates(Metadata metadata, LogicalExpression.Operator operator, Expression... expressions) -
combinePredicates
public static Expression combinePredicates(Metadata metadata, LogicalExpression.Operator operator, Collection<Expression> expressions) -
combineConjuncts
-
combineConjuncts
-
combineConjunctsWithDuplicates
-
combineDisjuncts
-
combineDisjuncts
-
combineDisjunctsWithDefault
public static Expression combineDisjunctsWithDefault(Metadata metadata, Collection<Expression> expressions, Expression emptyDefault) -
filterDeterministicConjuncts
-
filterNonDeterministicConjuncts
-
filterConjuncts
public static Expression filterConjuncts(Metadata metadata, Expression expression, Predicate<Expression> predicate) -
expressionOrNullSymbols
@SafeVarargs public static Function<Expression,Expression> expressionOrNullSymbols(Predicate<Symbol>... nullSymbolScopes) -
isEffectivelyLiteral
public static boolean isEffectivelyLiteral(PlannerContext plannerContext, Session session, Expression expression) Returns whether expression is effectively literal. An effectively literal expression is a simple constant value, or null, in eitherLiteralform, or other form returned byLiteralEncoder. In particular, other constant expressions like a deterministic function call with constant arguments are not considered effectively literal. -
getExpressionTypes
@Deprecated public static Map<NodeRef<Expression>,Type> getExpressionTypes(PlannerContext plannerContext, Session session, Expression expression, TypeProvider types) Deprecated. -
rewriteIdentifiersToSymbolReferences
-
TypeAnalyzer.getTypes(Session, TypeProvider, Expression).