-
Notifications
You must be signed in to change notification settings - Fork 3.6k
[fix](rf)Fix ColumnPredicate rf may not reset judge #58466
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
|
run buildall |
TPC-H: Total hot run time: 34311 ms |
TPC-DS: Total hot run time: 184934 ms |
ClickBench: Total hot run time: 27.53 s |
|
run buildall |
TPC-H: Total hot run time: 34502 ms |
TPC-DS: Total hot run time: 185249 ms |
ClickBench: Total hot run time: 27.63 s |
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
BiteTheDDDDt
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
| void do_judge_selectivity(uint64_t filter_rows, uint64_t input_rows) const { | ||
| if ((_judge_counter--) == 0) { | ||
| void try_reset_judge_selectivity() const { | ||
| if (_can_ignore() && ((_judge_counter--) == 0)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why reset judge selectivity need _can_ignore()
HappenLee
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
Previously, if always_true() returned true, judge would not be reset.
it was reset inside do_judge_selectivity.
```
if (always_true()) {
return size;
}
uint16_t new_size = _evaluate_inner(column, sel, size);
if (_can_ignore()) {
do_judge_selectivity(size - new_size, size);
}
update_filter_info(size - new_size, size);
return new_size;
```
#58558) Cherry-picked from #58466 Co-authored-by: Mryange <[email protected]>
What problem does this PR solve?
Previously, if always_true() returned true, judge would not be reset.
it was reset inside do_judge_selectivity.
Check List (For Author)
Test
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)