[Fix](predicate pushdown) Common expression not acting on any slot should not be pushed down#25901
Conversation
|
run buildall |
|
clang-tidy review says "All clean, LGTM! 👍" |
1 similar comment
|
clang-tidy review says "All clean, LGTM! 👍" |
| } | ||
| } | ||
|
|
||
| std::function<bool(const VExprSPtr&)> _conjunct_is_acting_on_a_slot = |
There was a problem hiding this comment.
那这应该定一一个 static bool VExpr::is_acting_on_a_slot() 吧?
| for (size_t i = 0; i < children_size; ++i) { | ||
| // If any child expr does not act on a column slot | ||
| // return false immediately. | ||
| if (!_conjunct_is_acting_on_a_slot(children[i])) { |
There was a problem hiding this comment.
这样做应该是不对的,应该是,只要有一个acting on slot,那么就应该是true;其他的是false
| // Two conjuncts. | ||
| // random() > 1 is executed by scan node, c1 > 0 is pushed down and executed by segment iterator | ||
| order_qt_6 """ | ||
| SELECT * FROM t_pushdown_common_expr WHERE random() > 1 AND c1 > 0 |
There was a problem hiding this comment.
寄一个select * from table where random() > 1 的测试case吧
|
(From new machine)TeamCity pipeline, clickbench performance test result: |
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
|
run buildall |
|
clang-tidy review says "All clean, LGTM! 👍" |
|
(From new machine)TeamCity pipeline, clickbench performance test result: |
…ould not be pushed down (apache#25901)
…ould not be pushed down (apache#25901)
…ould not be pushed down (apache#25901)
…ould not be pushed down (apache#25901) (apache#26215)
…ould not be pushed down (apache#25901)
Issue Number: close #25900
If conjunc does not act an any slot, do not push it down.