-
Notifications
You must be signed in to change notification settings - Fork 742
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
chore(planner): Refine code #10488
chore(planner): Refine code #10488
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 1 Ignored Deployment
|
I did a test, and the rules can be classified and managed by modifying Rule.rs and heuristic.rs, so that all rule applications can be correctly mapped to each operator's own unique rule set. I originally submitted a PR today , but the logic of seeing all rule-related bitmaps was abandoned, so I closed the PR. As there are more and more rules, the impact on efficiency of each full traversal rule will become greater and greater. If necessary, I can resubmit a PR.
|
@dusx1981 Thanks for your concern. I removed the logic about operator-specific rule sets because in the current heuristic optimizer, the order of rule application matters(and that's why we use a |
@dusx1981 Thanks for your concern.
I removed the logic about operator-specific rule sets because in the current heuristic optimizer, the order of rule application matters(and that's why we use a `RuleList` instead of `RuleSet` to store the rewrite rules). `RuleSet` cannot represent this semantic well and will bring confusion.
In my new commit, the order in which the rules are applied is taken into account,and please review the PR
#10508
|
After the rules are classified and managed, it is easier to add new rules later, coupled with the impact of efficiency, isn’t it necessary to optimize the application of its own rules for each operator? optimized operator
|
Optimization of the heuristic optimizer
|
I hereby agree to the terms of the CLA available at: https://databend.rs/dev/policies/cla/
Summary