-
Couldn't load subscription status.
- Fork 1.7k
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
Is your feature request related to a problem or challenge?
Datafusion currently knows hot to do the simplifications A OR (A AND B) -> A and A AND (B OR A) -> A but only does them when B is not nullable.
Describe the solution you'd like
We should perform the simplifications regardless of the nullabillity of B. Because the simplification still holds even if B is null see:
> CREATE TABLE t (v BOOLEAN) as values (true), (false), (NULL);
> select t.v, t2.v, t.v AND (t.v OR t2.v), t.v OR (t.v AND t2.v) from t cross join t as t2;
+-------+-------+---------------------+---------------------+
| v | v | t.v AND t.v OR t2.v | t.v OR t.v AND t2.v |
+-------+-------+---------------------+---------------------+
| true | true | true | true |
| true | false | true | true |
| true | | true | true |
| false | true | false | false |
| false | false | false | false |
| false | | false | false |
| | true | | |
| | false | | |
| | | | |
+-------+-------+---------------------+---------------------+
Describe alternatives you've considered
No response
Additional context
No response
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request