Skip to content
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

refactor(query): use InEvaluator to reuse the hashset #7814

Merged
merged 19 commits into from Sep 26, 2022

Conversation

sundy-li
Copy link
Member

@sundy-li sundy-li commented Sep 23, 2022

I hereby agree to the terms of the CLA available at: https://databend.rs/dev/policies/cla/

Summary

Summary about this PR

Fixes #7724

@vercel
Copy link

vercel bot commented Sep 23, 2022

The latest updates on your projects. Learn more about Vercel for Git ↗︎

1 Ignored Deployment
Name Status Preview Updated
databend ⬜️ Ignored (Inspect) Sep 26, 2022 at 4:32AM (UTC)

@sundy-li sundy-li changed the title refactor(query): use InEvalutorI to reuse the hashset refactor(query): use InEvalutor to reuse the hashset Sep 23, 2022
@mergify mergify bot added the pr-refactor this PR changes the code base without new features or bugfix label Sep 23, 2022
@sundy-li
Copy link
Member Author

sundy-li commented Sep 23, 2022

Performance improved ~10%, now the codes are a little duplicated, I'll refactor it after the new expression is added.

@sundy-li sundy-li marked this pull request as ready for review September 23, 2022 12:00
@RinChanNOWWW
Copy link
Member

RinChanNOWWW commented Sep 23, 2022

What's the difference between Scalar and PhysicalScalar? Why can't we deal with the special case create_by_values only in one eval method? And will all in operation go into create_by_values?

@RinChanNOWWW
Copy link
Member

Such sqls will turn into error:

mysql> select * from t4 where b in (a, c);
ERROR 1105 (HY000): Code: 1015, displayText = Should use in_evaulator (while in processor thread 1).
mysql> select * from t4 where b+1 in (select c from t4);
ERROR 1105 (HY000): Code: 1015, displayText = Invalid child expr in subquery.

@sundy-li sundy-li marked this pull request as draft September 24, 2022 11:04
@sundy-li sundy-li marked this pull request as ready for review September 26, 2022 00:41
@Xuanwo Xuanwo changed the title refactor(query): use InEvalutor to reuse the hashset refactor(query): use InEvalutor to reuse the hashset Sep 26, 2022
@RinChanNOWWW RinChanNOWWW changed the title refactor(query): use InEvalutor to reuse the hashset refactor(query): use InEvaluator to reuse the hashset Sep 26, 2022
@mergify mergify bot merged commit 46da962 into datafuselabs:main Sep 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr-refactor this PR changes the code base without new features or bugfix
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Feature: transform in scalar function to eq function
3 participants