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
As is known to us, Filter currently only supports "AND" logic among atomic expressions (atomic expression refers to the expressions that are supported by schema->operator). @fzh,@egraldlo: Maybe it is the time to support "OR" logic in Filter Iterator.
In my opinion, we can make a further step rather than only supporting "OR" logic. In other words, we can leverage "ExpressItem" to support any desirable logic of the filter condition. If we do, the filter iterator based on ExpressItem will be very similar to project iterator.
Considering the currently poor performance of ExpressItem, we would better keep two versions of Filter Iterator: the current one and the one based on ExpressItem. When there is only "AND" logic and Atomic expressions in the filter condition, we use the current filter iterator for performance concern. And when there are complex expresses or "OR" logic, we use the Filter iterator based on Expression.
@egraldlo: please make sure the codes of ExpressItem and project in your latest commit are stable and up to date. If so, I will begin to implement the new filter iterator based on your latest commit.
The text was updated successfully, but these errors were encountered:
4.条件下推
1)(OR_clause) AND (OR_clause) And (OR_clause)...[OR clause 为主体是or结构,或者单个表达式的]
2)OR_clause下推的限度是TB_set(OR_clause中涉及到的表集合为TB_set)中表最早出现的位置
eg: TA.a>0 or TB.a<0
As is known to us, Filter currently only supports "AND" logic among atomic expressions (atomic expression refers to the expressions that are supported by schema->operator).
@fzh,@egraldlo: Maybe it is the time to support "OR" logic in Filter Iterator.
In my opinion, we can make a further step rather than only supporting "OR" logic. In other words, we can leverage "ExpressItem" to support any desirable logic of the filter condition. If we do, the filter iterator based on ExpressItem will be very similar to project iterator.
Considering the currently poor performance of ExpressItem, we would better keep two versions of Filter Iterator: the current one and the one based on ExpressItem. When there is only "AND" logic and Atomic expressions in the filter condition, we use the current filter iterator for performance concern. And when there are complex expresses or "OR" logic, we use the Filter iterator based on Expression.
@egraldlo: please make sure the codes of ExpressItem and project in your latest commit are stable and up to date. If so, I will begin to implement the new filter iterator based on your latest commit.
The text was updated successfully, but these errors were encountered: