You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thanks to the issue: #1619 Arrow-datafusion decided to add bitwise operation (using the standards of postgresql db). But, an optimizer of these expressions does not exist, therefore a lot of bitwise operations execute slowly due to useless work.
I decided to solve this problem.
Is your feature request related to a problem or challenge? Please describe what you are trying to do.
Corresponding issues and pull requests: #3430 #1619
Describe the solution you'd like
Below, there are rules, on which it is built the optimizer: First table (null and 0):
Thanks to the issue: #1619 Arrow-datafusion decided to add bitwise operation (using the standards of postgresql db). But, an optimizer of these expressions does not exist, therefore a lot of bitwise operations execute slowly due to useless work.
I decided to solve this problem.
Is your feature request related to a problem or challenge? Please describe what you are trying to do.
Corresponding issues and pull requests:
#3430
#1619
Describe the solution you'd like
Below, there are rules, on which it is built the optimizer:
First table (null and 0):
Second table (equality):
*if A not nullable
Third table (bitwise not (Negative, see https://github.com/apache/arrow-datafusion/blob/main/datafusion/expr/src/expr.rs#L122-L123)):
*If A not nullable
*! - Bitwise NOT (Negative)
Fourth table (InList):
*If B not null
*Considering Commutativity
Fifth table (cross values):
*Some values were taken from fourth table.
*If A and B not nullable
*Considering Commutativity
Describe alternatives you've considered
If bitwise operations are not very popular, that PR can slightly slow down performance.
The text was updated successfully, but these errors were encountered: