If any input col/ref is null then expression will evaluate to null and if no input col/ref is null then expression won't evaluate to null
If any input col/ref is null then expression will evaluate to null and if no input col/ref is null then expression won't evaluate to null
Expression that needs to be checked
Split the given AttributeSet to nullable and unresolvable.
Split the given AttributeSet to nullable and unresolvable.
DruidQueryBuilder
AttributeSet
Simplify Binary Predicate
Simplify Binary Predicate
DruidQueryBuilder
First child (Left)
Second child (Right)
If true this is a conjuction else disjunction
Simplify Cast expression by removing inner most cast if reduendant
Simplify Cast expression by removing inner most cast if reduendant
Inner Expression
Outer cast DataType
Simplify given Predicate.
Simplify given Predicate. Does rewrites for cast, Conj/Disj, not null expressions.
DruidQueryBuilder
Predicate
Simplify given predicates
Simplify given predicates
DruidQueryBuilder
Predicates
Given a list of exprs and two AttributeSet, split exprs into those that involves attributes only from first set, only from second set, from both and that doesn't belong to neither (i.
Given a list of exprs and two AttributeSet, split exprs into those that involves attributes only from first set, only from second set, from both and that doesn't belong to neither (i.e f(Literals)).
Expression List
First Attribute Set
Second Attribute Set
This is different from transformDown because if rule transforms an Expression, we don't try to apply any more transformation.
This is different from transformDown because if rule transforms an Expression, we don't try to apply any more transformation.
Expression
Rule to apply
Translate Give Aggregate to the below given child project
Translate Give Aggregate to the below given child project
GBKeys
Aggregate Keys
Optional filter
Child Project
Translate given expression by replacing the aliases with new expr (if they are present in the map)
Translate given expression by replacing the aliases with new expr (if they are present in the map)
Expression to translate
Map to aliases to new Expression that replaces it
Translate given expression through its child as an expression above grand child.
Translate given expression through its child as an expression above grand child. Currently we only translate through Project. TODO: add support for Aggregate, Window, Cube, GroupingSet
Expression to translate
Child node
Should we preserve alias of expression
Translate given seq of expressions below the child.
Translate given seq of expressions below the child.
Sequence of expressions to be translated
Child node
Should we preserve alias of expression